/* map gadgets for main menu screen */
MapTapeButtons();
+ /* level_nr may have set to value over handicap with level editor */
+ if (setup.handicap && level_nr > leveldir[leveldir_nr].handicap_level)
+ level_nr = leveldir[leveldir_nr].handicap_level;
+
GetPlayerConfig();
LoadLevel(level_nr);
if (new_level_nr > leveldir[leveldir_nr].last_level)
new_level_nr = leveldir[leveldir_nr].last_level;
+ if (setup.handicap && new_level_nr > leveldir[leveldir_nr].handicap_level)
+ new_level_nr = leveldir[leveldir_nr].handicap_level;
+
if (old_level_nr == new_level_nr ||
!DelayReached(&level_delay, GADGET_FRAME_DELAY))
goto out;
if (num_leveldirs)
{
game_status = CHOOSELEVEL;
- SaveLevelSetup();
+ SaveLevelSetup_LastSeries();
+ SaveLevelSetup_SeriesInfo(leveldir_nr);
DrawChooseLevel();
}
}
#endif
{
game_status = PLAYING;
+ StopAnimation();
InitGame();
}
}
}
else if (y == 10)
{
- SaveLevelSetup();
+ SaveLevelSetup_LastSeries();
+ SaveLevelSetup_SeriesInfo(leveldir_nr);
if (Request("Do you really want to quit ?", REQ_ASK | REQ_STAY_CLOSED))
game_status = EXITGAME;
}
else
{
leveldir_nr = first_entry + y - 3;
- level_nr =
- getLastPlayedLevelOfLevelSeries(leveldir[leveldir_nr].filename);
+ LoadLevelSetup_SeriesInfo(leveldir_nr);
- SaveLevelSetup();
+ SaveLevelSetup_LastSeries();
+ SaveLevelSetup_SeriesInfo(leveldir_nr);
TapeErase();
game_status = MAINMENU;
{ &setup.sound, "Sound:", },
{ &setup.sound_loops, " Sound Loops:" },
{ &setup.sound_music, " Game Music:" },
+#if 0
{ &setup.toons, "Toons:" },
{ &setup.double_buffering, "Buffered gfx:" },
+#endif
{ &setup.scroll_delay, "Scroll Delay:" },
{ &setup.soft_scrolling, "Soft Scroll.:" },
{ &setup.fading, "Fading:" },
{ &setup.quick_doors, "Quick Doors:" },
{ &setup.autorecord, "Auto-Record:" },
{ &setup.team_mode, "Team-Mode:" },
+ { &setup.handicap, "Handicap:" },
+ { &setup.time_limit, "Timelimit:" },
{ NULL, "Input Devices" },
{ NULL, "" },
{ NULL, "Exit" },
}
setup.sound_music = !setup.sound_music;
}
+
+#if 0
else if (y==6)
{
if (setup.toons)
setup.direct_draw = !setup.double_buffering;
#endif
}
- else if (y==8)
+#endif
+
+ else if (y==6)
{
if (setup.scroll_delay)
DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE);
DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW);
setup.scroll_delay = !setup.scroll_delay;
}
- else if (y==9)
+ else if (y==7)
{
if (setup.soft_scrolling)
DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE);
DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW);
setup.soft_scrolling = !setup.soft_scrolling;
}
- else if (y==10)
+ else if (y==8)
{
if (setup.fading)
DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE);
DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW);
setup.fading = !setup.fading;
}
- else if (y==11)
+ else if (y==9)
{
if (setup.quick_doors)
DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE);
DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW);
setup.quick_doors = !setup.quick_doors;
}
- else if (y==12)
+ else if (y==10)
{
if (setup.autorecord)
DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE);
DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW);
setup.autorecord = !setup.autorecord;
}
- else if (y==13)
+ else if (y==11)
{
if (setup.team_mode)
DrawText(SX+14*32, SY+yy*32,"off",FS_BIG,FC_BLUE);
DrawText(SX+14*32, SY+yy*32,"on ",FS_BIG,FC_YELLOW);
setup.team_mode = !setup.team_mode;
}
+ else if (y==12)
+ {
+ if (setup.handicap)
+ 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.handicap = !setup.handicap;
+ }
+ else if (y==13)
+ {
+ if (setup.time_limit)
+ 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.time_limit = !setup.time_limit;
+ }
else if (y==14)
{
game_status = SETUPINPUT;