projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20100719-1-src
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index 8236de116efc9e0c3f2a2c12d064967ac044fac5..e75235853eec0be2caa54fbf912a3f6a5b933e36 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-4355,21
+4355,26
@@
void InitGame()
}
#if NEW_TILESIZE
}
#if NEW_TILESIZE
-#if 1
- // if (TILESIZE_VAR < TILESIZE && EVEN(SCR_FIELDX))
+
+ if (lev_fieldx + (SBX_Left < 0 ? 2 : 0) <= SCR_FIELDX)
+ SBX_Left = SBX_Right = -1 * (SCR_FIELDX - lev_fieldx) / 2;
+
+ if (lev_fieldy + (SBY_Upper < 0 ? 2 : 0) <= SCR_FIELDY)
+ SBY_Upper = SBY_Lower = -1 * (SCR_FIELDY - lev_fieldy) / 2;
+
if (EVEN(SCR_FIELDX))
if (EVEN(SCR_FIELDX))
- {
SBX_Left--;
SBX_Left--;
- // SBX_Right++;
- }
-#endif
-#e
ndif
+ if (EVEN(SCR_FIELDY))
+ SBY_Upper--;
+
+#e
lse
if (lev_fieldx + (SBX_Left == -1 ? 2 : 0) <= SCR_FIELDX)
SBX_Left = SBX_Right = -1 * (SCR_FIELDX - lev_fieldx) / 2;
if (lev_fieldy + (SBY_Upper == -1 ? 2 : 0) <= SCR_FIELDY)
SBY_Upper = SBY_Lower = -1 * (SCR_FIELDY - lev_fieldy) / 2;
if (lev_fieldx + (SBX_Left == -1 ? 2 : 0) <= SCR_FIELDX)
SBX_Left = SBX_Right = -1 * (SCR_FIELDX - lev_fieldx) / 2;
if (lev_fieldy + (SBY_Upper == -1 ? 2 : 0) <= SCR_FIELDY)
SBY_Upper = SBY_Lower = -1 * (SCR_FIELDY - lev_fieldy) / 2;
+#endif
/* if local player not found, look for custom element that might create
the player (make some assumptions about the right custom element) */
/* if local player not found, look for custom element that might create
the player (make some assumptions about the right custom element) */
@@
-4480,6
+4485,10
@@
void InitGame()
local_player->jy - MIDPOSY);
}
local_player->jy - MIDPOSY);
}
+#if 0
+ printf("::: %d, %d (initial)\n", scroll_x, scroll_y);
+#endif
+
#if 0
/* do not use PLAYING mask for fading out from main screen */
game_status = GAME_MODE_MAIN;
#if 0
/* do not use PLAYING mask for fading out from main screen */
game_status = GAME_MODE_MAIN;
@@
-4629,6
+4638,17
@@
void InitGame()
MapTapeButtons();
#endif
MapTapeButtons();
#endif
+ if (!game.restart_level && !tape.playing)
+ {
+ LevelStats_incPlayed(level_nr);
+
+ SaveLevelSetup_SeriesInfo();
+
+#if 0
+ printf("::: PLAYING LEVEL (%d)\n", LevelStats_getPlayed(level_nr));
+#endif
+ }
+
game.restart_level = FALSE;
}
game.restart_level = FALSE;
}
@@
-4872,6
+4892,17
@@
void GameWon()
local_player->LevelSolved_SaveTape = tape.recording;
local_player->LevelSolved_SaveScore = !tape.playing;
local_player->LevelSolved_SaveTape = tape.recording;
local_player->LevelSolved_SaveScore = !tape.playing;
+ if (!tape.playing)
+ {
+ LevelStats_incSolved(level_nr);
+
+ SaveLevelSetup_SeriesInfo();
+
+#if 0
+ printf("::: LEVEL SOLVED (%d)\n", LevelStats_getSolved(level_nr));
+#endif
+ }
+
if (tape.auto_play) /* tape might already be stopped here */
tape.auto_play_level_solved = TRUE;
if (tape.auto_play) /* tape might already be stopped here */
tape.auto_play_level_solved = TRUE;
@@
-5076,6
+5107,7
@@
void GameEnd()
if (level_nr == leveldir_current->handicap_level)
{
leveldir_current->handicap_level++;
if (level_nr == leveldir_current->handicap_level)
{
leveldir_current->handicap_level++;
+
SaveLevelSetup_SeriesInfo();
}
SaveLevelSetup_SeriesInfo();
}