X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=62c70419496359931596b6111216080ebed8c4db;hb=7d171d862abdecced79f60535b49a686386cefe1;hp=7d0c60eb83580239c4ea956f11e205189bbc1409;hpb=cee436b68cda95e13abc810235a11ce94bc79c95;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index 7d0c60eb..62c70419 100644 --- a/src/game.c +++ b/src/game.c @@ -2061,15 +2061,9 @@ void InitGame() CloseDoor(DOOR_CLOSE_1); /* !!! FIX THIS (START) !!! */ - if (level.file_info.type == LEVEL_FILE_TYPE_EM) + if (level.game_engine_type == GAME_ENGINE_TYPE_EM) { - if (em_main_init_game(level_nr, level.file_info.filename) != 0) - { - game_status = GAME_MODE_MAIN; - DrawMainMenu(); - - return; - } + InitGameEngine_EM(); } else { @@ -8535,8 +8529,8 @@ void AdvanceFrameAndPlayerCounters(int player_nr) void GameActions() { - static unsigned long action_delay = 0; - unsigned long action_delay_value; + static unsigned long game_frame_delay = 0; + unsigned long game_frame_delay_value; int magic_wall_x = 0, magic_wall_y = 0; int i, x, y, element, graphic; byte *recorded_player_action; @@ -8548,15 +8542,15 @@ void GameActions() if (game_status != GAME_MODE_PLAYING) return; - action_delay_value = + game_frame_delay_value = (tape.playing && tape.fast_forward ? FfwdFrameDelay : GameFrameDelay); if (tape.playing && tape.warp_forward && !tape.pausing) - action_delay_value = 0; + game_frame_delay_value = 0; /* ---------- main game synchronization point ---------- */ - WaitUntilDelayReached(&action_delay, action_delay_value); + WaitUntilDelayReached(&game_frame_delay, game_frame_delay_value); if (network_playing && !network_player_action_received) { @@ -8595,6 +8589,7 @@ void GameActions() recorded_player_action = (tape.playing ? TapePlayAction() : NULL); #if 1 + /* !!! CHECK THIS (tape.pausing is always FALSE here!) !!! */ if (recorded_player_action == NULL && tape.pausing) return; #endif @@ -12399,6 +12394,11 @@ static void PlayLevelMusic() PlayMusic(MAP_NOCONF_MUSIC(level_nr)); /* from music dir */ } +void PlayLevelSound_EM(int x, int y, int element, int action) +{ + PlayLevelSoundElementAction(x, y, element, action); +} + void RaiseScore(int value) { local_player->score += value;