Quote: "so the first two ifs work. The little sprite moves to the right or down only when the mouse is in the appropriate spot...but the last two ifs dont do anything as far as i can tell. This is probably something blindingly obvious or stupid."
Well, I can calm you down, it's not stupid, just something you might not know. The
dbMouseMove-commands check the mouse movement since the
last time you called these commands!
So if you call them twice in your loop they will allways return 0 the second time, because nothing has changed in between the calls.
Try something like this:
int move_x = dbMouseMoveX(),
move_y = dbMouseMoveY();
if ( move_x > 0 ) {...}
if ( move_y > 0 ) {...}
if ( move_x < 0 ) {...}
if ( move_y < 0 ) {...}
See the difference? You only call them once like that. Hope this helps a bit.
Now the plot thickens, the fps decreases, and the awesomeness goes through the roof.