X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsystem.c;h=7fcb784d66c9f7608f00dad238a52b76cc0ce464;hp=15e86a4afbc7084012132acac0f133577914085f;hb=8e4eb47925648cd84d134dfe05ca7fb30727dc24;hpb=c38790fcee093efb156366bb4a02dbde55085ca4 diff --git a/src/libgame/system.c b/src/libgame/system.c index 15e86a4a..7fcb784d 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -317,6 +317,9 @@ void InitGfxCustomArtworkInfo(void) void InitGfxOtherSettings(void) { gfx.cursor_mode = CURSOR_DEFAULT; + gfx.cursor_mode_override = CURSOR_UNDEFINED; + gfx.cursor_mode_final = gfx.cursor_mode; + gfx.mouse_x = 0; gfx.mouse_y = 0; } @@ -1552,6 +1555,7 @@ void SetMouseCursor(int mode) static struct MouseCursorInfo *cursor_none = NULL; static struct MouseCursorInfo *cursor_playfield = NULL; struct MouseCursorInfo *cursor_new; + int mode_final = mode; if (cursor_none == NULL) cursor_none = get_cursor_from_image(cursor_image_none); @@ -1559,13 +1563,17 @@ void SetMouseCursor(int mode) if (cursor_playfield == NULL) cursor_playfield = get_cursor_from_image(cursor_image_playfield); - cursor_new = (mode == CURSOR_DEFAULT ? NULL : - mode == CURSOR_NONE ? cursor_none : - mode == CURSOR_PLAYFIELD ? cursor_playfield : NULL); + if (gfx.cursor_mode_override != CURSOR_UNDEFINED) + mode_final = gfx.cursor_mode_override; + + cursor_new = (mode_final == CURSOR_DEFAULT ? NULL : + mode_final == CURSOR_NONE ? cursor_none : + mode_final == CURSOR_PLAYFIELD ? cursor_playfield : NULL); SDLSetMouseCursor(cursor_new); gfx.cursor_mode = mode; + gfx.cursor_mode_final = mode_final; } @@ -1615,6 +1623,11 @@ void SetAudioMode(boolean enabled) // event functions // ============================================================================ +void InitEventFilter(EventFilter filter_function) +{ + SDL_SetEventFilter(filter_function, NULL); +} + boolean PendingEvent(void) { return (SDL_PollEvent(NULL) ? TRUE : FALSE);