projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added global animation actions executed after init/anim/post delay
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index ed560daf5257ca5b269cb707961fdbf5fb7687f3..f0d6aff1d4517c50d0b7aeff690535828c3514c9 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-3354,7
+3354,7
@@
void InitGame(void)
SetGameStatus(GAME_MODE_PLAYING);
if (level_editor_test_game)
SetGameStatus(GAME_MODE_PLAYING);
if (level_editor_test_game)
- FadeSkipNextFade
In
();
+ FadeSkipNextFade
Out
();
else
FadeSetEnterScreen();
else
FadeSetEnterScreen();
@@
-3365,8
+3365,10
@@
void InitGame(void)
ExpireSoundLoops(TRUE);
ExpireSoundLoops(TRUE);
- if (!level_editor_test_game)
- FadeOut(fade_mask);
+ FadeOut(fade_mask);
+
+ if (level_editor_test_game)
+ FadeSkipNextFadeIn();
// needed if different viewport properties defined for playing
ChangeViewportPropertiesIfNeeded();
// needed if different viewport properties defined for playing
ChangeViewportPropertiesIfNeeded();
@@
-11465,8
+11467,9
@@
static void GameActionsExt(void)
stored_player[map_player_action[local_player->index_nr]].effective_action =
summarized_player_action;
stored_player[map_player_action[local_player->index_nr]].effective_action =
summarized_player_action;
+ // summarize all actions at centered player in local team mode
if (tape.recording &&
if (tape.recording &&
- setup.team_mode &&
+ setup.team_mode &&
!network.enabled &&
setup.input_on_focus &&
game.centered_player_nr != -1)
{
setup.input_on_focus &&
game.centered_player_nr != -1)
{
@@
-12179,12
+12182,17
@@
void GameActions_RND(void)
DrawAllPlayers();
PlayAllPlayersSound();
DrawAllPlayers();
PlayAllPlayersSound();
- if (local_player->show_envelope != 0 && (!local_player->active ||
- local_player->MovPos == 0))
+ for (i = 0; i < MAX_PLAYERS; i++)
{
{
- ShowEnvelope(local_player->show_envelope - EL_ENVELOPE_1);
+ struct PlayerInfo *player = &stored_player[i];
+
+ if (player->show_envelope != 0 && (!player->active ||
+ player->MovPos == 0))
+ {
+ ShowEnvelope(player->show_envelope - EL_ENVELOPE_1);
- local_player->show_envelope = 0;
+ player->show_envelope = 0;
+ }
}
// use random number generator in every frame to make it less predictable
}
// use random number generator in every frame to make it less predictable
@@
-12526,10
+12534,11
@@
boolean MovePlayer(struct PlayerInfo *player, int dx, int dy)
}
else
{
}
else
{
- int offset = game.scroll_delay_value;
+ int offset
_raw
= game.scroll_delay_value;
if (jx != old_jx) // player has moved horizontally
{
if (jx != old_jx) // player has moved horizontally
{
+ int offset = MIN(offset_raw, (SCR_FIELDX - 2) / 2);
int offset_x = offset * (player->MovDir == MV_LEFT ? +1 : -1);
int new_scroll_x = jx - MIDPOSX + offset_x;
int offset_x = offset * (player->MovDir == MV_LEFT ? +1 : -1);
int new_scroll_x = jx - MIDPOSX + offset_x;
@@
-12550,6
+12559,7
@@
boolean MovePlayer(struct PlayerInfo *player, int dx, int dy)
}
else // player has moved vertically
{
}
else // player has moved vertically
{
+ int offset = MIN(offset_raw, (SCR_FIELDY - 2) / 2);
int offset_y = offset * (player->MovDir == MV_UP ? +1 : -1);
int new_scroll_y = jy - MIDPOSY + offset_y;
int offset_y = offset * (player->MovDir == MV_UP ? +1 : -1);
int new_scroll_y = jy - MIDPOSY + offset_y;