projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20070913-1-src
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index 7d83c63f8800dca7c19354af58e6c83de955348f..2cd5f41f7c9b42d5e41e3d761fb8affab20bda05 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-2111,8
+2111,17
@@
void InitGameControlValues()
void UpdatePlayfieldElementCount()
{
void UpdatePlayfieldElementCount()
{
+ boolean use_element_count = FALSE;
int i, j, x, y;
int i, j, x, y;
+ /* first check if it is needed at all to calculate playfield element count */
+ for (i = GAME_PANEL_ELEMENT_COUNT_1; i <= GAME_PANEL_ELEMENT_COUNT_8; i++)
+ if (!PANEL_DEACTIVATED(game_panel_controls[i].pos))
+ use_element_count = TRUE;
+
+ if (!use_element_count)
+ return;
+
for (i = 0; i < MAX_NUM_ELEMENTS; i++)
element_info[i].element_count = 0;
for (i = 0; i < MAX_NUM_ELEMENTS; i++)
element_info[i].element_count = 0;
@@
-2342,8
+2351,7
@@
void UpdateGameControlValues()
for (i = 0; i < NUM_PANEL_ELEMENTS; i++)
game_panel_controls[GAME_PANEL_ELEMENT_COUNT_1 + i].value =
(IS_VALID_ELEMENT(game.panel.element_count[i].id) ?
for (i = 0; i < NUM_PANEL_ELEMENTS; i++)
game_panel_controls[GAME_PANEL_ELEMENT_COUNT_1 + i].value =
(IS_VALID_ELEMENT(game.panel.element_count[i].id) ?
- element_info[game.panel.element_count[i].id].element_count :
- EL_UNDEFINED);
+ element_info[game.panel.element_count[i].id].element_count : 0);
for (i = 0; i < NUM_PANEL_CE_SCORE; i++)
game_panel_controls[GAME_PANEL_CE_SCORE_1 + i].value =
for (i = 0; i < NUM_PANEL_CE_SCORE; i++)
game_panel_controls[GAME_PANEL_CE_SCORE_1 + i].value =
@@
-2654,6
+2662,15
@@
void DisplayGameControlValues()
game_status = GAME_MODE_PLAYING;
}
game_status = GAME_MODE_PLAYING;
}
+void UpdateAndDisplayGameControlValues()
+{
+ if (tape.warp_forward)
+ return;
+
+ UpdateGameControlValues();
+ DisplayGameControlValues();
+}
+
void DrawGameValue_Emeralds(int value)
{
struct TextPosInfo *pos = &game.panel.gems;
void DrawGameValue_Emeralds(int value)
{
struct TextPosInfo *pos = &game.panel.gems;
@@
-4205,8
+4222,12
@@
void InitGame()
SetPanelBackground();
SetDrawBackgroundMask(REDRAW_DOOR_1);
SetPanelBackground();
SetDrawBackgroundMask(REDRAW_DOOR_1);
+#if 1
+ UpdateAndDisplayGameControlValues();
+#else
UpdateGameDoorValues();
DrawGameDoorValues();
UpdateGameDoorValues();
DrawGameDoorValues();
+#endif
if (!game.restart_level)
{
if (!game.restart_level)
{
@@
-9505,9
+9526,6
@@
void DrawTwinkleOnField(int x, int y)
{
MovDelay[x][y]--;
{
MovDelay[x][y]--;
- if (setup.direct_draw && MovDelay[x][y])
- SetDrawtoField(DRAW_BUFFERED);
-
DrawLevelElementAnimation(x, y, Feld[x][y]);
if (MovDelay[x][y] != 0)
DrawLevelElementAnimation(x, y, Feld[x][y]);
if (MovDelay[x][y] != 0)
@@
-9516,18
+9534,6
@@
void DrawTwinkleOnField(int x, int y)
10 - MovDelay[x][y]);
DrawGraphicThruMask(SCREENX(x), SCREENY(y), IMG_TWINKLE_WHITE, frame);
10 - MovDelay[x][y]);
DrawGraphicThruMask(SCREENX(x), SCREENY(y), IMG_TWINKLE_WHITE, frame);
-
- if (setup.direct_draw)
- {
- int dest_x, dest_y;
-
- dest_x = FX + SCREENX(x) * TILEX;
- dest_y = FY + SCREENY(y) * TILEY;
-
- BlitBitmap(drawto_field, window,
- dest_x, dest_y, TILEX, TILEY, dest_x, dest_y);
- SetDrawtoField(DRAW_DIRECT);
- }
}
}
}
}
}
}
@@
-11428,8
+11434,12
@@
static void CheckLevelTime()
DrawVideoDisplay(VIDEO_STATE_TIME_ON, TapeTime);
}
DrawVideoDisplay(VIDEO_STATE_TIME_ON, TapeTime);
}
+#if 1
+ UpdateAndDisplayGameControlValues();
+#else
UpdateGameDoorValues();
DrawGameDoorValues();
UpdateGameDoorValues();
DrawGameDoorValues();
+#endif
}
void AdvanceFrameAndPlayerCounters(int player_nr)
}
void AdvanceFrameAndPlayerCounters(int player_nr)
@@
-12495,7
+12505,7
@@
void ScrollLevel(int dx, int dy)
#else
#else
-#if
1
+#if
0
/* !!! DOES NOT WORK FOR DIAGONAL PLAYER RELOCATION !!! */
int xsize = (BX2 - BX1 + 1);
int ysize = (BY2 - BY1 + 1);
/* !!! DOES NOT WORK FOR DIAGONAL PLAYER RELOCATION !!! */
int xsize = (BX2 - BX1 + 1);
int ysize = (BY2 - BY1 + 1);