X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame.c;h=a516155ce76b269b2704d5ecc3ffe2112899e4c1;hb=ed44c040b637f60a46e9051d1e939e62d3646a0b;hp=d835b19f8cb9b11be758fdfe42502cc754d138d6;hpb=f7132b81a5b7559991e1048ab8680c65cc4b98c2;p=rocksndiamonds.git diff --git a/src/game.c b/src/game.c index d835b19f..a516155c 100644 --- a/src/game.c +++ b/src/game.c @@ -1840,13 +1840,30 @@ static void InitFieldForEngine_RND(int x, int y) int element = Tile[x][y]; // convert BD engine elements to corresponding R'n'D engine elements - element = (element == EL_BDX_EMPTY ? EL_EMPTY : - element == EL_BDX_PLAYER ? EL_PLAYER_1 : - element == EL_BDX_INBOX ? EL_PLAYER_1 : - element == EL_BDX_SAND_1 ? EL_SAND : - element == EL_BDX_STEELWALL ? EL_STEELWALL : - element == EL_BDX_EXIT_CLOSED ? EL_EXIT_CLOSED : - element == EL_BDX_EXIT_OPEN ? EL_EXIT_OPEN : + element = (element == EL_BDX_EMPTY ? EL_EMPTY : + element == EL_BDX_PLAYER ? EL_PLAYER_1 : + element == EL_BDX_INBOX ? EL_PLAYER_1 : + element == EL_BDX_SAND_1 ? EL_SAND : + element == EL_BDX_WALL ? EL_BD_WALL : + element == EL_BDX_STEELWALL ? EL_STEELWALL : + element == EL_BDX_ROCK ? EL_BD_ROCK : + element == EL_BDX_DIAMOND ? EL_BD_DIAMOND : + element == EL_BDX_AMOEBA_1 ? EL_BD_AMOEBA : + element == EL_BDX_MAGIC_WALL ? EL_BD_MAGIC_WALL : + element == EL_BDX_BUTTERFLY_1_RIGHT ? EL_BD_BUTTERFLY_RIGHT : + element == EL_BDX_BUTTERFLY_1_UP ? EL_BD_BUTTERFLY_UP : + element == EL_BDX_BUTTERFLY_1_LEFT ? EL_BD_BUTTERFLY_LEFT : + element == EL_BDX_BUTTERFLY_1_DOWN ? EL_BD_BUTTERFLY_DOWN : + element == EL_BDX_BUTTERFLY_1 ? EL_BD_BUTTERFLY : + element == EL_BDX_FIREFLY_1_RIGHT ? EL_BD_FIREFLY_RIGHT : + element == EL_BDX_FIREFLY_1_UP ? EL_BD_FIREFLY_UP : + element == EL_BDX_FIREFLY_1_LEFT ? EL_BD_FIREFLY_LEFT : + element == EL_BDX_FIREFLY_1_DOWN ? EL_BD_FIREFLY_DOWN : + element == EL_BDX_FIREFLY_1 ? EL_BD_FIREFLY : + element == EL_BDX_EXPANDABLE_WALL_HORIZONTAL ? EL_BD_EXPANDABLE_WALL : + element == EL_BDX_WALL_DIAMOND ? EL_WALL_BD_DIAMOND : + element == EL_BDX_EXIT_CLOSED ? EL_EXIT_CLOSED : + element == EL_BDX_EXIT_OPEN ? EL_EXIT_OPEN : element); Tile[x][y] = element; @@ -16595,6 +16612,8 @@ static ListNode *SaveEngineSnapshotBuffers(void) if (level.game_engine_type == GAME_ENGINE_TYPE_RND) SaveEngineSnapshotValues_RND(); + if (level.game_engine_type == GAME_ENGINE_TYPE_BD) + SaveEngineSnapshotValues_BD(); if (level.game_engine_type == GAME_ENGINE_TYPE_EM) SaveEngineSnapshotValues_EM(); if (level.game_engine_type == GAME_ENGINE_TYPE_SP) @@ -16606,6 +16625,8 @@ static ListNode *SaveEngineSnapshotBuffers(void) if (level.game_engine_type == GAME_ENGINE_TYPE_RND) SaveSnapshotBuffer(&buffers, ARGS_ADDRESS_AND_SIZEOF(engine_snapshot_rnd)); + if (level.game_engine_type == GAME_ENGINE_TYPE_BD) + SaveSnapshotBuffer(&buffers, ARGS_ADDRESS_AND_SIZEOF(engine_snapshot_bd)); if (level.game_engine_type == GAME_ENGINE_TYPE_EM) SaveSnapshotBuffer(&buffers, ARGS_ADDRESS_AND_SIZEOF(engine_snapshot_em)); if (level.game_engine_type == GAME_ENGINE_TYPE_SP) @@ -16745,6 +16766,8 @@ static void LoadEngineSnapshotValues(void) if (level.game_engine_type == GAME_ENGINE_TYPE_RND) LoadEngineSnapshotValues_RND(); + if (level.game_engine_type == GAME_ENGINE_TYPE_BD) + LoadEngineSnapshotValues_BD(); if (level.game_engine_type == GAME_ENGINE_TYPE_EM) LoadEngineSnapshotValues_EM(); if (level.game_engine_type == GAME_ENGINE_TYPE_SP)