added using old BD engine for tapes from 4.4.0.0-test-3 and earlier
authorHolger Schemel <holger.schemel@virtion.de>
Wed, 27 Nov 2024 20:20:46 +0000 (21:20 +0100)
committerHolger Schemel <holger.schemel@virtion.de>
Wed, 27 Nov 2024 18:22:01 +0000 (19:22 +0100)
src/tools.c

index 8416aae1c1c7588df7d01d6775fedcbae9f7a4fd..e59ee2c3a2a7bf1f6c0bf336f49bd2c8c43bf57b 100644 (file)
@@ -10673,8 +10673,23 @@ int getBeltSwitchElementFromBeltNrAndBeltDir(int belt_nr, int belt_dir)
 
 boolean useOldEngine_BD(void)
 {
-  // only use old BD game engine if playing specifically tagged tapes
-  return (tape.playing && (tape.property_bits & TAPE_PROPERTY_BD_OLD_ENGINE));
+  // never use old BD game engine for new games (but only when playing tapes)
+  if (!tape.playing)
+    return FALSE;
+
+  // use old BD game engine if playing specifically tagged native BD replays
+  if (tape.bd_replay)
+    return TRUE;
+
+  // use old BD game engine if playing specifically tagged or patched tapes
+  if (tape.property_bits & TAPE_PROPERTY_BD_OLD_ENGINE)
+    return TRUE;
+
+  // use old BD game engine if playing tapes from old 4.4.0.0 pre-release versions
+  if (tape.game_version < VERSION_IDENT_FULL(4,4,0,0, 0,4,0))
+    return TRUE;
+
+  return FALSE;
 }
 
 boolean getTimePlayed_BD(void)