X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fevents.c;h=79ffdd4ad02613fb5bf65e609be6ed563b87405b;hb=efd0d0abb853018aa3ccc3c727b39bd7f5ba679d;hp=95d3752203352663e0def25858d35f4a4fa6c53b;hpb=4bca9bc5f299a9b287134b06e41b147f506792b4;p=rocksndiamonds.git diff --git a/src/events.c b/src/events.c index 95d37522..79ffdd4a 100644 --- a/src/events.c +++ b/src/events.c @@ -1,26 +1,27 @@ /*********************************************************** -* Rocks'n'Diamonds -- McDuffin Strikes Back! * +* Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* (c) 1995-98 Artsoft Entertainment * -* Holger Schemel * -* Oststrasse 11a * -* 33604 Bielefeld * -* phone: ++49 +521 290471 * -* email: aeglos@valinor.owl.de * +* (c) 1995-2001 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * *----------------------------------------------------------* -* events.c * +* events.c * ***********************************************************/ +#include "libgame/libgame.h" + #include "events.h" #include "init.h" #include "screens.h" #include "tools.h" #include "game.h" #include "editor.h" -#include "misc.h" +#include "files.h" #include "tape.h" #include "joystick.h" -#include "buttons.h" #include "network.h" /* values for key_status */ @@ -45,6 +46,23 @@ int FilterMouseMotionEvents(const Event *event) return 1; } +/* this is only really needed for non-SDL targets to filter unwanted events; + when using SDL with properly installed event filter, this function can be + replaced with a simple "NextEvent()" call, but it doesn't hurt either */ + +static boolean NextValidEvent(Event *event) +{ + while (PendingEvent()) + { + NextEvent(event); + + if (FilterMouseMotionEvents(event)) + return TRUE; + } + + return FALSE; +} + void EventLoop(void) { while(1) @@ -53,9 +71,7 @@ void EventLoop(void) { Event event; - NextEvent(&event); - - if (FilterMouseMotionEvents(&event)) + if (NextValidEvent(&event)) { switch(event.type) { @@ -550,6 +566,12 @@ void HandleKey(Key key, int key_status) HandleChooseLevel(0,0, 0,SCR_FIELDY, MB_MENU_MARK); break; +#ifdef DEBUG + case KSYM_t: + DumpTape(&tape); + break; +#endif + default: break; }