projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed playfield flashing black when game started from level editor
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index d517cdc06587c182cfb5f522b6beddb064dc4af1..99540b18d9622ef055a0066d41c7e32f8dbb53d6 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-3365,7
+3365,8
@@
void InitGame(void)
ExpireSoundLoops(TRUE);
ExpireSoundLoops(TRUE);
- FadeOut(fade_mask);
+ if (!level_editor_test_game)
+ FadeOut(fade_mask);
// needed if different viewport properties defined for playing
ChangeViewportPropertiesIfNeeded();
// needed if different viewport properties defined for playing
ChangeViewportPropertiesIfNeeded();
@@
-4503,7
+4504,7
@@
void GameWon(void)
int i;
// do not start end game actions before the player stops moving (to exit)
int i;
// do not start end game actions before the player stops moving (to exit)
- if (local_player->MovPos)
+ if (local_player->
active && local_player->
MovPos)
return;
game.LevelSolved_GameWon = TRUE;
return;
game.LevelSolved_GameWon = TRUE;
@@
-12164,7
+12165,8
@@
void GameActions_RND(void)
DrawAllPlayers();
PlayAllPlayersSound();
DrawAllPlayers();
PlayAllPlayersSound();
- if (local_player->show_envelope != 0 && local_player->MovPos == 0)
+ if (local_player->show_envelope != 0 && (!local_player->active ||
+ local_player->MovPos == 0))
{
ShowEnvelope(local_player->show_envelope - EL_ENVELOPE_1);
{
ShowEnvelope(local_player->show_envelope - EL_ENVELOPE_1);
@@
-13451,6
+13453,9
@@
void RemovePlayer(struct PlayerInfo *player)
player->present = FALSE;
player->active = FALSE;
player->present = FALSE;
player->active = FALSE;
+ // required for some CE actions (even if the player is not active anymore)
+ player->MovPos = 0;
+
if (!ExplodeField[jx][jy])
StorePlayer[jx][jy] = 0;
if (!ExplodeField[jx][jy])
StorePlayer[jx][jy] = 0;