X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=d5256fd4ed0cd9b6b1bb62e7b3c319aa540b09eb;hb=bbea8429d449be9badea09afeb8ab7b4e4a42877;hp=5164505efa8a7e7d0dd81b163095a7fd3335756e;hpb=58ea80c54f5a1e6605e2c33b554dff1fcc0c26b5;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 5164505e..d5256fd4 100644 --- a/src/game.c +++ b/src/game.c @@ -1963,12 +1963,12 @@ static void InitField(int x, int y, boolean init_game) break; case EL_EMC_MAGIC_BALL: - if (game.ball_state) + if (game.ball_active) Feld[x][y] = EL_EMC_MAGIC_BALL_ACTIVE; break; case EL_EMC_MAGIC_BALL_SWITCH: - if (game.ball_state) + if (game.ball_active) Feld[x][y] = EL_EMC_MAGIC_BALL_SWITCH_ACTIVE; break; @@ -2366,9 +2366,9 @@ static void UpdateGameControlValues(void) (exit_closed ? EL_EXIT_CLOSED : EL_EXIT_OPEN); game_panel_controls[GAME_PANEL_EMC_MAGIC_BALL].value = - (game.ball_state ? EL_EMC_MAGIC_BALL_ACTIVE : EL_EMC_MAGIC_BALL); + (game.ball_active ? EL_EMC_MAGIC_BALL_ACTIVE : EL_EMC_MAGIC_BALL); game_panel_controls[GAME_PANEL_EMC_MAGIC_BALL_SWITCH].value = - (game.ball_state ? EL_EMC_MAGIC_BALL_SWITCH_ACTIVE : + (game.ball_active ? EL_EMC_MAGIC_BALL_SWITCH_ACTIVE : EL_EMC_MAGIC_BALL_SWITCH); game_panel_controls[GAME_PANEL_LIGHT_SWITCH].value = @@ -3255,6 +3255,8 @@ static void InitGameEngine(void) // ---------- initialize graphics engine ------------------------------------ game.scroll_delay_value = (game.forced_scroll_delay_value != -1 ? game.forced_scroll_delay_value : + level.game_engine_type == GAME_ENGINE_TYPE_EM && + !setup.forced_scroll_delay ? 0 : setup.scroll_delay ? setup.scroll_delay_value : 0); game.scroll_delay_value = MIN(MAX(MIN_SCROLL_DELAY, game.scroll_delay_value), MAX_SCROLL_DELAY); @@ -3617,7 +3619,7 @@ void InitGame(void) game.lenses_time_left = 0; game.magnify_time_left = 0; - game.ball_state = level.ball_state_initial; + game.ball_active = level.ball_active_initial; game.ball_content_nr = 0; game.explosions_delayed = TRUE; @@ -3751,12 +3753,13 @@ void InitGame(void) // use preferred player also in local single-player mode if (!network.enabled && !game.team_mode) { - int old_index_nr = local_player->index_nr; int new_index_nr = setup.network_player_nr; if (new_index_nr >= 0 && new_index_nr < MAX_PLAYERS) { - stored_player[old_index_nr].connected_locally = FALSE; + for (i = 0; i < MAX_PLAYERS; i++) + stored_player[i].connected_locally = FALSE; + stored_player[new_index_nr].connected_locally = TRUE; } } @@ -3938,7 +3941,7 @@ void InitGame(void) game.centered_player_nr = (network_playing ? local_player->index_nr : -1); game.centered_player_nr_next = game.centered_player_nr; game.set_centered_player = FALSE; - game.set_centered_player_fast = FALSE; + game.set_centered_player_wrap = FALSE; if (network_playing && tape.recording) { @@ -14223,13 +14226,13 @@ static int DigField(struct PlayerInfo *player, { int xx, yy; - game.ball_state = !game.ball_state; + game.ball_active = !game.ball_active; SCAN_PLAYFIELD(xx, yy) { int e = Feld[xx][yy]; - if (game.ball_state) + if (game.ball_active) { if (e == EL_EMC_MAGIC_BALL) CreateField(xx, yy, EL_EMC_MAGIC_BALL_ACTIVE);