{
{
DOOR_1,
- IMG_DOOR_1_GFX_PART_1,
+ IMG_GFX_DOOR_1_PART_1,
&door_1.part_1
},
{
DOOR_1,
- IMG_DOOR_1_GFX_PART_2,
+ IMG_GFX_DOOR_1_PART_2,
&door_1.part_2
},
{
DOOR_1,
- IMG_DOOR_1_GFX_PART_3,
+ IMG_GFX_DOOR_1_PART_3,
&door_1.part_3
},
{
DOOR_1,
- IMG_DOOR_1_GFX_PART_4,
+ IMG_GFX_DOOR_1_PART_4,
&door_1.part_4
},
{
DOOR_1,
- IMG_DOOR_1_GFX_PART_5,
+ IMG_GFX_DOOR_1_PART_5,
&door_1.part_5
},
{
DOOR_1,
- IMG_DOOR_1_GFX_PART_6,
+ IMG_GFX_DOOR_1_PART_6,
&door_1.part_6
},
{
DOOR_1,
- IMG_DOOR_1_GFX_PART_7,
+ IMG_GFX_DOOR_1_PART_7,
&door_1.part_7
},
{
DOOR_1,
- IMG_DOOR_1_GFX_PART_8,
+ IMG_GFX_DOOR_1_PART_8,
&door_1.part_8
},
{
DOOR_2,
- IMG_DOOR_2_GFX_PART_1,
+ IMG_GFX_DOOR_2_PART_1,
&door_2.part_1
},
{
DOOR_2,
- IMG_DOOR_2_GFX_PART_2,
+ IMG_GFX_DOOR_2_PART_2,
&door_2.part_2
},
{
DOOR_2,
- IMG_DOOR_2_GFX_PART_3,
+ IMG_GFX_DOOR_2_PART_3,
&door_2.part_3
},
{
DOOR_2,
- IMG_DOOR_2_GFX_PART_4,
+ IMG_GFX_DOOR_2_PART_4,
&door_2.part_4
},
{
DOOR_2,
- IMG_DOOR_2_GFX_PART_5,
+ IMG_GFX_DOOR_2_PART_5,
&door_2.part_5
},
{
DOOR_2,
- IMG_DOOR_2_GFX_PART_6,
+ IMG_GFX_DOOR_2_PART_6,
&door_2.part_6
},
{
DOOR_2,
- IMG_DOOR_2_GFX_PART_7,
+ IMG_GFX_DOOR_2_PART_7,
&door_2.part_7
},
{
DOOR_2,
- IMG_DOOR_2_GFX_PART_8,
+ IMG_GFX_DOOR_2_PART_8,
&door_2.part_8
},
void DrawEnvelopeRequest(char *text)
{
- int last_game_status = game_status; /* save current game status */
char *text_final = text;
char *text_door_style = NULL;
int graphic = IMG_BACKGROUND_REQUEST;
tile_size, tile_size);
/* force DOOR font inside door area */
- SetGameStatus(GAME_MODE_PSEUDO_DOOR);
+ SetFontStatus(GAME_MODE_PSEUDO_DOOR);
DrawTextBuffer(sx + sx_offset, sy + sy_offset, text_final, font_nr,
line_length, -1, max_lines, line_spacing, mask_mode,
request.autowrap, request.centered, FALSE);
- SetGameStatus(last_game_status); /* restore current game status */
+ ResetFontStatus();
for (i = 0; i < NUM_TOOL_BUTTONS; i++)
RedrawGadget(tool_gadget[i]);
boolean show_level_border = (BorderElement != EL_EMPTY);
int level_xsize = lev_fieldx + (show_level_border ? 2 : 0);
int level_ysize = lev_fieldy + (show_level_border ? 2 : 0);
- int last_game_status = game_status; /* save current game status */
if (restart)
{
DrawTextSAligned(pos->x, pos->y, label_text, font_nr, pos->align);
}
- SetGameStatus(last_game_status); /* restore current game status */
-
return;
}
DrawPreviewLevelLabelExt(label_state);
}
-
- SetGameStatus(last_game_status); /* restore current game status */
}
void DrawPreviewLevelInitial()
static boolean RequestDoor(char *text, unsigned int req_state)
{
unsigned int old_door_state;
- int last_game_status = game_status; /* save current game status */
int max_request_line_len = MAX_REQUEST_LINE_FONT1_LEN;
int font_nr = FONT_TEXT_2;
char *text_ptr;
DrawBackground(DX, DY, DXSIZE, DYSIZE);
/* force DOOR font inside door area */
- SetGameStatus(GAME_MODE_PSEUDO_DOOR);
+ SetFontStatus(GAME_MODE_PSEUDO_DOOR);
/* write text for request */
for (text_ptr = text, ty = 0; ty < MAX_REQUEST_LINES; ty++)
// text_ptr += tl + (tc == ' ' || tc == '?' || tc == '!' ? 1 : 0);
}
- SetGameStatus(last_game_status); /* restore current game status */
+ ResetFontStatus();
if (req_state & REQ_ASK)
{
}
doors[] =
{
- { DOOR_1, IMG_DOOR_1_GFX_PART_1, IMG_DOOR_1_GFX_PART_8, &door_1 },
- { DOOR_2, IMG_DOOR_2_GFX_PART_1, IMG_DOOR_2_GFX_PART_8, &door_2 },
+ { DOOR_1, IMG_GFX_DOOR_1_PART_1, IMG_GFX_DOOR_1_PART_8, &door_1 },
+ { DOOR_2, IMG_GFX_DOOR_2_PART_1, IMG_GFX_DOOR_2_PART_8, &door_2 },
{ -1, -1, -1, NULL }
};
} toolbutton_info[NUM_TOOL_BUTTONS] =
{
{
- IMG_REQUEST_BUTTON_GFX_YES, &request.button.yes,
+ IMG_GFX_REQUEST_BUTTON_YES, &request.button.yes,
TOOL_CTRL_ID_YES, "yes"
},
{
- IMG_REQUEST_BUTTON_GFX_NO, &request.button.no,
+ IMG_GFX_REQUEST_BUTTON_NO, &request.button.no,
TOOL_CTRL_ID_NO, "no"
},
{
- IMG_REQUEST_BUTTON_GFX_CONFIRM, &request.button.confirm,
+ IMG_GFX_REQUEST_BUTTON_CONFIRM, &request.button.confirm,
TOOL_CTRL_ID_CONFIRM, "confirm"
},
{
- IMG_REQUEST_BUTTON_GFX_PLAYER_1, &request.button.player_1,
+ IMG_GFX_REQUEST_BUTTON_PLAYER_1, &request.button.player_1,
TOOL_CTRL_ID_PLAYER_1, "player 1"
},
{
- IMG_REQUEST_BUTTON_GFX_PLAYER_2, &request.button.player_2,
+ IMG_GFX_REQUEST_BUTTON_PLAYER_2, &request.button.player_2,
TOOL_CTRL_ID_PLAYER_2, "player 2"
},
{
- IMG_REQUEST_BUTTON_GFX_PLAYER_3, &request.button.player_3,
+ IMG_GFX_REQUEST_BUTTON_PLAYER_3, &request.button.player_3,
TOOL_CTRL_ID_PLAYER_3, "player 3"
},
{
- IMG_REQUEST_BUTTON_GFX_PLAYER_4, &request.button.player_4,
+ IMG_GFX_REQUEST_BUTTON_PLAYER_4, &request.button.player_4,
TOOL_CTRL_ID_PLAYER_4, "player 4"
}
};
*height = MAX(*height, height2);
}
+void SetAnimStatus(int anim_status_new)
+{
+ if (anim_status_new == GAME_MODE_MAIN)
+ anim_status_new = GAME_MODE_PSEUDO_MAINONLY;
+
+ global.anim_status_next = anim_status_new;
+
+ // directly set screen modes that are entered without fading
+ if ((global.anim_status == GAME_MODE_PSEUDO_MAINONLY &&
+ global.anim_status_next == GAME_MODE_PSEUDO_TYPENAME) ||
+ (global.anim_status == GAME_MODE_PSEUDO_TYPENAME &&
+ global.anim_status_next == GAME_MODE_PSEUDO_MAINONLY))
+ global.anim_status = global.anim_status_next;
+}
+
void SetGameStatus(int game_status_new)
{
game_status = game_status_new;
- global.anim_status_next = game_status;
+ SetAnimStatus(game_status_new);
+}
+
+void SetFontStatus(int game_status_new)
+{
+ static int last_game_status = -1;
+
+ if (game_status_new != -1)
+ {
+ // set game status for font use after storing last game status
+ last_game_status = game_status;
+ game_status = game_status_new;
+ }
+ else
+ {
+ // reset game status after font use from last stored game status
+ game_status = last_game_status;
+ }
+}
+
+void ResetFontStatus()
+{
+ SetFontStatus(-1);
}
void ChangeViewportPropertiesIfNeeded()