static int setup_mode = SETUP_MODE_MAIN;
static int info_mode = INFO_MODE_MAIN;
-#define mSX (SX + (game_status >= GAME_MODE_MAIN && \
- game_status <= GAME_MODE_SETUP ? \
- menu.draw_xoffset[game_status] : menu.draw_xoffset_default))
-#define mSY (SY + (game_status >= GAME_MODE_MAIN && \
- game_status <= GAME_MODE_SETUP ? \
- menu.draw_yoffset[game_status] : menu.draw_yoffset_default))
+#define DRAW_OFFSET_MODE(x) (x >= GAME_MODE_MAIN && \
+ x <= GAME_MODE_SETUP ? x : \
+ x == GAME_MODE_PSEUDO_TYPENAME ? \
+ GAME_MODE_MAIN : GAME_MODE_DEFAULT)
+
+#define mSX (SX + menu.draw_xoffset[DRAW_OFFSET_MODE(game_status)])
+#define mSY (SY + menu.draw_yoffset[DRAW_OFFSET_MODE(game_status)])
#define NUM_MENU_ENTRIES_ON_SCREEN (menu.list_size[game_status] > 2 ? \
menu.list_size[game_status] : \
if (new_level_nr > leveldir_current->last_level)
new_level_nr = leveldir_current->last_level;
-#if 1
if (setup.handicap && new_level_nr > leveldir_current->handicap_level)
{
/* skipping levels is only allowed when trying to skip single level */
new_level_nr = leveldir_current->handicap_level;
}
-#else
- if (setup.handicap && new_level_nr > leveldir_current->handicap_level)
- new_level_nr = leveldir_current->handicap_level;
-#endif
if (new_level_nr != old_level_nr)
{
}
else if (y == 5)
{
- if (setup.autorecord)
- TapeStartRecording();
-
-#if defined(NETWORK_AVALIABLE)
- if (options.network)
- SendToServer_StartPlaying();
- else
-#endif
- {
- game_status = GAME_MODE_PLAYING;
- StopAnimation();
- InitGame();
- }
+ StartGameActions(options.network, setup.autorecord, NEW_RANDOMIZE);
}
else if (y == 6)
{
game_status = GAME_MODE_SETUP;
setup_mode = SETUP_MODE_MAIN;
+
DrawSetupScreen();
}
else if (y == 7)
{
SaveLevelSetup_LastSeries();
SaveLevelSetup_SeriesInfo();
+
if (Request("Do you really want to quit ?", REQ_ASK | REQ_STAY_CLOSED))
game_status = GAME_MODE_QUIT;
}
for (i = 0; i < MAX_INFO_ELEMENTS_ON_SCREEN; i++)
infoscreen_step[i] = infoscreen_frame[i] = 0;
- SetMainBackgroundImage(IMG_BACKGROUND_INFO);
ClearWindow();
DrawHeadline();
void DrawInfoScreen_HelpText(int element, int action, int direction, int ypos)
{
-#if 0
- int font_nr = FONT_TEXT_2;
-#else
int font_nr = FONT_LEVEL_NUMBER;
-#endif
int font_width = getFontWidth(font_nr);
int sx = mSX + MINI_TILEX + TILEX + MINI_TILEX;
int sy = mSY + 65 + 2 * 32 + 1;
void DrawInfoScreen_Elements()
{
+ SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_ELEMENTS);
+
LoadHelpAnimInfo();
LoadHelpTextInfo();
void DrawInfoScreen_Music()
{
+ SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_MUSIC);
+
ClearWindow();
DrawHeadline();
int ystart = 150, ystep = 30;
int ybottom = SYSIZE - 20;
+ SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_CREDITS);
+
FadeSoundsAndMusic();
ClearWindow();
int ystart = 150, ystep = 30;
int ybottom = SYSIZE - 20;
+ SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_PROGRAM);
+
ClearWindow();
DrawHeadline();
int ystart = 150;
int ybottom = SYSIZE - 20;
char *filename = getLevelSetInfoFilename();
-#if 0
- int font_nr = FONT_TEXT_2;
-#else
int font_nr = FONT_LEVEL_NUMBER;
-#endif
int font_width = getFontWidth(font_nr);
int font_height = getFontHeight(font_nr);
int pad_x = 32;
int max_chars_per_line = (SXSIZE - 2 * pad_x) / font_width;
int max_lines_per_screen = (SYSIZE - pad_y) / font_height - 1;
+ SetMainBackgroundImageIfDefined(IMG_BACKGROUND_INFO_LEVELSET);
+
ClearWindow();
DrawHeadline();
(value_ptr == &setup.fullscreen && !video.fullscreen_available))
setup_info[i].type |= TYPE_GHOSTED;
-#if 0
- if (setup_info[i].type & TYPE_STRING ||
- (setup_info[i].type & TYPE_SWITCH && setup_mode == SETUP_MODE_EDITOR))
- font_nr = FONT_MENU_2;
-#else
if (setup_info[i].type & TYPE_STRING)
font_nr = FONT_MENU_2;
-#endif
DrawText(mSX + 32, mSY + ypos * 32, setup_info[i].text, font_nr);
custom_key = setup.input[player_nr].key;
DrawText(mSX+11*32, mSY+2*32, int2str(player_nr +1, 1), FONT_INPUT_1_ACTIVE);
-#if 1
+
ClearRectangleOnBackground(drawto, mSX + 8 * TILEX, mSY + 2 * TILEY,
TILEX, TILEY);
DrawGraphicThruMaskExt(drawto, mSX + 8 * TILEX, mSY + 2 * TILEY,
PLAYER_NR_GFX(IMG_PLAYER_1, player_nr), 0);
-#else
- DrawGraphicThruMask(8, 2, PLAYER_NR_GFX(IMG_PLAYER_1, player_nr), 0);
-#endif
if (setup.input[player_nr].use_joystick)
{
}
else
{
+ if (game.restart_level)
+ StartGameActions(options.network, setup.autorecord, NEW_RANDOMIZE);
+
if (local_player->LevelSolved)
GameWon();
}
}
+void StartGameActions(boolean init_network_game, boolean record_tape,
+ long random_seed)
+{
+ if (record_tape)
+ TapeStartRecording(random_seed);
+
+#if defined(NETWORK_AVALIABLE)
+ if (init_network_game)
+ {
+ SendToServer_StartPlaying();
+
+ return;
+ }
+#endif
+
+ StopAnimation();
+
+ game_status = GAME_MODE_PLAYING;
+
+ InitRND(random_seed);
+
+ InitGame();
+}
+
/* ---------- new screen button stuff -------------------------------------- */
/* graphic position and size values for buttons and scrollbars */