X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fscreens.c;h=c0a3b8c64a93b851a9b24380d3cde2c3786cc0b5;hp=f2076dce3518fe3f447e08ff04066f710eb90daf;hb=3d97e3d9c20a984e70dae5e63e7c5069fb136c91;hpb=34efaa3925a28cb95ecb05bf2c693c16f6edfe2f diff --git a/src/screens.c b/src/screens.c index f2076dce..c0a3b8c6 100644 --- a/src/screens.c +++ b/src/screens.c @@ -158,7 +158,7 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) (x == 15 && level_nr < leveldir[leveldir_nr].levels - 1)) && button) { - static long level_delay = 0; + static unsigned long level_delay = 0; int step = (button == 1 ? 1 : button == 2 ? 5 : 10); int new_level_nr, old_level_nr = level_nr; int font_color = (leveldir[leveldir_nr].readonly ? FC_RED : FC_YELLOW); @@ -656,7 +656,7 @@ void DrawHelpScreen() void HandleHelpScreen(int button) { - static long hs_delay = 0; + static unsigned long hs_delay = 0; int num_helpscreen_els_pages = (num_helpscreen_els + MAX_HELPSCREEN_ELS-1) / MAX_HELPSCREEN_ELS; int button_released = !button; @@ -710,7 +710,6 @@ void HandleHelpScreen(int button) void HandleTypeName(int newxpos, KeySym key) { static int xpos = 0, ypos = 2; - unsigned char ascii; if (newxpos) { @@ -723,9 +722,11 @@ void HandleTypeName(int newxpos, KeySym key) if (((key >= XK_A && key <= XK_Z) || (key >= XK_a && key <= XK_z)) && xpos < MAX_NAMELEN - 1) { + char ascii; + if (key >= XK_A && key <= XK_Z) ascii = 'A' + (char)(key - XK_A); - if (key >= XK_a && key <= XK_z) + else ascii = 'a' + (char)(key - XK_a); setup.player_name[xpos] = ascii; @@ -800,9 +801,10 @@ void HandleChooseLevel(int mx, int my, int dx, int dy, int button) { static int choice = 3; static int first_entry = 0; - static long choose_delay = 0; + static unsigned long choose_delay = 0; static int redraw = TRUE; int x = (mx + 32 - SX) / 32, y = (my + 32 - SY) / 32; + int step = (button == 1 ? 1 : button == 2 ? 5 : 10); int num_page_entries; if (num_leveldirs <= MAX_LEVEL_SERIES_ON_SCREEN) @@ -850,7 +852,13 @@ void HandleChooseLevel(int mx, int my, int dx, int dy, int button) if (first_entry > 0 && (dy || DelayReached(&choose_delay, 150))) { +#if 0 first_entry--; +#else + first_entry -= step; + if (first_entry < 0) + first_entry = 0; +#endif drawChooseLevelList(first_entry, num_page_entries); drawChooseLevelInfo(first_entry); DrawGraphic(0, choice - 1, GFX_KUGEL_ROT); @@ -862,7 +870,13 @@ void HandleChooseLevel(int mx, int my, int dx, int dy, int button) if (first_entry + num_page_entries < num_leveldirs && (dy || DelayReached(&choose_delay, 150))) { +#if 0 first_entry++; +#else + first_entry += step; + if (first_entry + num_page_entries > num_leveldirs) + first_entry = num_leveldirs - num_page_entries; +#endif drawChooseLevelList(first_entry, num_page_entries); drawChooseLevelInfo(first_entry + num_page_entries - 1); DrawGraphic(0, choice - 1, GFX_KUGEL_ROT); @@ -1119,12 +1133,18 @@ void HandleSetupScreen(int mx, int my, int dx, int dy, int button) } else if (y==7) { +#if 0 if (setup.double_buffering) DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE); else DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW); setup.double_buffering = !setup.double_buffering; setup.direct_draw = !setup.double_buffering; +#else + DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW); + setup.double_buffering = TRUE; + setup.direct_draw = !setup.double_buffering; +#endif } else if (y==8) { @@ -1388,7 +1408,7 @@ void HandleSetupInputScreen(int mx, int my, int dx, int dy, int button) if (y == 3 && ((x == 1 && !button) || ((x == 11 || x == 13) && button))) { - static long delay = 0; + static unsigned long delay = 0; if (!DelayReached(&delay, 150)) goto out;