projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed and enhanced screen fading and global border handling
[rocksndiamonds.git]
/
src
/
screens.c
diff --git
a/src/screens.c
b/src/screens.c
index d1b80e26eddf43d8ec759c59adbeba7eaffc38ec..99dedcefa3c9d446f5538bf5e8b5aa5b73700da4 100644
(file)
--- a/
src/screens.c
+++ b/
src/screens.c
@@
-1417,19
+1417,32
@@
void DrawMainMenuExt(int fade_mask, boolean do_fading)
/* needed if last screen (level choice) changed graphics, sounds or music */
ReloadCustomArtwork(0);
/* needed if last screen (level choice) changed graphics, sounds or music */
ReloadCustomArtwork(0);
+#if 1
+ /* needed if different viewport properties defined for menues */
+ ChangeViewportPropertiesIfNeeded();
+#endif
+
if (redraw_mask & REDRAW_ALL)
fade_mask = REDRAW_ALL;
if (redraw_mask & REDRAW_ALL)
fade_mask = REDRAW_ALL;
+ if (CheckIfRedrawGlobalBorderIsNeeded())
+ fade_mask = REDRAW_ALL;
+
FadeOut(fade_mask);
FadeOut(fade_mask);
+#if 0
/* needed if different viewport properties defined for menues */
ChangeViewportPropertiesIfNeeded();
/* needed if different viewport properties defined for menues */
ChangeViewportPropertiesIfNeeded();
+#endif
/* needed if last screen was the editor screen */
UndrawSpecialEditorDoor();
SetDrawtoField(DRAW_BACKBUFFER);
/* needed if last screen was the editor screen */
UndrawSpecialEditorDoor();
SetDrawtoField(DRAW_BACKBUFFER);
+ /* reset drawing area change flag */
+ DrawingAreaChanged();
+
if (CheckTitleScreen(levelset_has_changed))
{
game_status = GAME_MODE_TITLE;
if (CheckTitleScreen(levelset_has_changed))
{
game_status = GAME_MODE_TITLE;
@@
-1452,8
+1465,10
@@
void DrawMainMenuExt(int fade_mask, boolean do_fading)
SetMainBackgroundImage(IMG_BACKGROUND_MAIN);
SetMainBackgroundImage(IMG_BACKGROUND_MAIN);
+#if 1
if (fade_mask == REDRAW_ALL)
RedrawGlobalBorder();
if (fade_mask == REDRAW_ALL)
RedrawGlobalBorder();
+#endif
ClearField();
ClearField();
@@
-1487,6
+1502,11
@@
void DrawMainMenuExt(int fade_mask, boolean do_fading)
DrawMaskedBorder(REDRAW_ALL);
DrawMaskedBorder(REDRAW_ALL);
+#if 0
+ if (redraw_mask & REDRAW_ALL)
+ fade_mask = REDRAW_ALL;
+#endif
+
FadeIn(fade_mask);
FadeSetEnterMenu();
FadeIn(fade_mask);
FadeSetEnterMenu();
@@
-1884,6
+1904,11
@@
void HandleMainMenu(int mx, int my, int dx, int dy, int button)
{
game_status = GAME_MODE_SCORES;
{
game_status = GAME_MODE_SCORES;
+#if 1
+ /* required before door position may be changed in next step */
+ CloseDoor(DOOR_CLOSE_ALL);
+#endif
+
ChangeViewportPropertiesIfNeeded();
DrawHallOfFame(-1);
ChangeViewportPropertiesIfNeeded();
DrawHallOfFame(-1);
@@
-2122,6
+2147,9
@@
static void DrawInfoScreen_Main(int fade_mask, boolean do_fading)
{
int i;
{
int i;
+ if (CheckIfRedrawGlobalBorderIsNeeded())
+ fade_mask = REDRAW_ALL;
+
UnmapAllGadgets();
FreeScreenGadgets();
UnmapAllGadgets();
FreeScreenGadgets();
@@
-5731,6
+5759,9
@@
static void DrawSetupScreen_Generic()
char *title_string = NULL;
int i;
char *title_string = NULL;
int i;
+ if (CheckIfRedrawGlobalBorderIsNeeded())
+ fade_mask = REDRAW_ALL;
+
UnmapAllGadgets();
FreeScreenGadgets();
UnmapAllGadgets();
FreeScreenGadgets();