For the init function... if init == false then return 1.It looks like you're missing a few pairs of parentheses:
SDL_Quit; // Does nothingif (!init) // Does not behave as expected; same as writing: if ( init == null ) return 1;
And it doesn't hurt to let know if your application doesn't load resources correctly:image = load_image("background.bmp"); if ( !image ) return -2;
Am I doing that wrong?
PS: Still not working... hmm...