tape.bd_replay = TRUE;
+ // use old BD game engine if playing specifically tagged BD replays
+ if (leveldir_current->replay_with_old_engine)
+ tape.property_bits |= TAPE_PROPERTY_BD_OLD_ENGINE;
+
// all time calculations only used to display approximate tape time
int cave_speed = cave->speed;
int milliseconds_game = 0;
Print("Special tape properties: ");
if (tape->property_bits == TAPE_PROPERTY_NONE)
Print("[none]");
+ if (tape->property_bits & TAPE_PROPERTY_BD_OLD_ENGINE)
+ Print("[bd_old_engine]");
if (tape->property_bits & TAPE_PROPERTY_EM_RANDOM_BUG)
Print("[em_random_bug]");
if (tape->property_bits & TAPE_PROPERTY_GAME_SPEED)
// values for tape properties stored in tape file
#define TAPE_PROPERTY_NONE 0
#define TAPE_PROPERTY_LEVEL_SOLVED (1 << 0)
-#define TAPE_PROPERTY_UNUSED_BIT_1 (1 << 1)
+#define TAPE_PROPERTY_BD_OLD_ENGINE (1 << 1)
#define TAPE_PROPERTY_UNUSED_BIT_2 (1 << 2)
#define TAPE_PROPERTY_UNUSED_BIT_3 (1 << 3)
#define TAPE_PROPERTY_UNUSED_BIT_4 (1 << 4)
boolean useOldEngine_BD(void)
{
- return (tape.playing &&
- tape.bd_replay &&
- leveldir_current->replay_with_old_engine);
+ // only use old BD game engine if playing specifically tagged tapes
+ return (tape.playing && (tape.property_bits & TAPE_PROPERTY_BD_OLD_ENGINE));
}
boolean swapTiles_EM(boolean is_pre_emc_cave)