X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fscreens.c;h=16f08ca7d2c458456156098bc2f67c86e23b14b3;hb=209871b6f17880f98d41cf7d7953f6bf2227a16c;hp=0da69783facb5efcaa718d3191a2a785a44ed3c9;hpb=4ec434ee1acb955d0e2e8c33558e5f9226904174;p=rocksndiamonds.git diff --git a/src/screens.c b/src/screens.c index 0da69783..16f08ca7 100644 --- a/src/screens.c +++ b/src/screens.c @@ -58,8 +58,16 @@ void DrawMainMenu() int i; char *name_text = (!options.network && setup.team_mode ? "Team:" : "Name:"); + /* needed if last screen was the playing screen, invoked from level editor */ + if (level_editor_test_game) + { + game_status = LEVELED; + DrawLevelEd(); + return; + } + /* needed if last screen was the level editor */ - UnmapLevelEditorControlButtons(); + UnmapLevelEditorGadgets(); FadeSounds(); GetPlayerConfig(); @@ -81,13 +89,21 @@ void DrawMainMenu() DrawMicroLevel(MICROLEV_XPOS,MICROLEV_YPOS); + DrawTextF(7*32 + 6, 3*32 + 9, FC_RED, "%d-%d", + leveldir[leveldir_nr].first_level, + leveldir[leveldir_nr].last_level); + + if (leveldir[leveldir_nr].readonly) + { + DrawTextF(15*32 + 6, 3*32 + 9 - 7, FC_RED, "READ"); + DrawTextF(15*32 + 6, 3*32 + 9 + 7, FC_RED, "ONLY"); + } + for(i=2; i<10; i++) DrawGraphic(0, i, GFX_KUGEL_BLAU); DrawGraphic(10, 3, GFX_PFEIL_L); DrawGraphic(14, 3, GFX_PFEIL_R); - DrawTextF(15*32 + 6, 3*32 + 9, FC_RED, "%d", leveldir[leveldir_nr].levels); - DrawText(SX + 56, SY + 326, "A Game by Artsoft Entertainment", FS_SMALL, FC_RED); @@ -157,8 +173,8 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) y = choice; } - if (y == 4 && ((x == 11 && level_nr > 0) || - (x == 15 && level_nr < leveldir[leveldir_nr].levels - 1)) && + if (y == 4 && ((x == 11 && level_nr > leveldir[leveldir_nr].first_level) || + (x == 15 && level_nr < leveldir[leveldir_nr].last_level)) && button) { static unsigned long level_delay = 0; @@ -167,12 +183,13 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button) int font_color = (leveldir[leveldir_nr].readonly ? FC_RED : FC_YELLOW); new_level_nr = level_nr + (x == 11 ? -step : +step); - if (new_level_nr < 0) - new_level_nr = 0; - if (new_level_nr > leveldir[leveldir_nr].levels - 1) - new_level_nr = leveldir[leveldir_nr].levels - 1; + if (new_level_nr < leveldir[leveldir_nr].first_level) + new_level_nr = leveldir[leveldir_nr].first_level; + if (new_level_nr > leveldir[leveldir_nr].last_level) + new_level_nr = leveldir[leveldir_nr].last_level; - if (old_level_nr == new_level_nr || !DelayReached(&level_delay, 150)) + if (old_level_nr == new_level_nr || + !DelayReached(&level_delay, GADGET_FRAME_DELAY)) goto out; level_nr = new_level_nr; @@ -377,8 +394,8 @@ static int helpscreen_action[] = GFX_DIAMANT,1,10, HA_NEXT, GFX_LIFE,1,100, HA_NEXT, GFX_LIFE_ASYNC,1,100, HA_NEXT, - GFX_SIEB_LEER,4,2, HA_NEXT, - GFX_SIEB2_LEER,4,2, HA_NEXT, + GFX_SIEB_INAKTIV,4,2, HA_NEXT, + GFX_SIEB2_INAKTIV,4,2, HA_NEXT, GFX_AUSGANG_ZU,1,100, GFX_AUSGANG_ACT,4,2, GFX_AUSGANG_AUF+0,4,2, GFX_AUSGANG_AUF+3,1,2, GFX_AUSGANG_AUF+2,1,2, GFX_AUSGANG_AUF+1,1,2, HA_NEXT, @@ -853,7 +870,7 @@ void HandleChooseLevel(int mx, int my, int dx, int dy, int button) if (x == 1 && y == 2) { if (first_entry > 0 && - (dy || DelayReached(&choose_delay, 150))) + (dy || DelayReached(&choose_delay, GADGET_FRAME_DELAY))) { #if 0 first_entry--; @@ -871,7 +888,7 @@ void HandleChooseLevel(int mx, int my, int dx, int dy, int button) else if (x == 1 && y > num_page_entries + 2) { if (first_entry + num_page_entries < num_leveldirs && - (dy || DelayReached(&choose_delay, 150))) + (dy || DelayReached(&choose_delay, GADGET_FRAME_DELAY))) { #if 0 first_entry++; @@ -1413,7 +1430,7 @@ void HandleSetupInputScreen(int mx, int my, int dx, int dy, int button) { static unsigned long delay = 0; - if (!DelayReached(&delay, 150)) + if (!DelayReached(&delay, GADGET_FRAME_DELAY)) goto out; player_nr = (player_nr + (x == 11 ? -1 : +1) + MAX_PLAYERS) % MAX_PLAYERS;