KAZIK/tools/tests/check_slot_build.py
Artvasil09 881a0061dc Add native NPC visitors with contracts, Clover slots, Pyramid, and party table scenes
Implement 32x32 BFS visitor navigation and daily contracts system with companion .npc journals; add native assembly scenes for Clover slots, Pyramid cards, Blackjack Party and Russian Party; package animation and sprite packs; add comprehensive offline test suites and rebuild shipping binaries.
2026-10-13 09:47:33 +03:00

26 lines
1.1 KiB
Python

"""Require the shipped slot machine to use the same code as the native tests."""
from pathlib import Path
from check_card_exit_build import Coff
ROOT = Path(__file__).resolve().parents[2]
def main():
tested = Coff(ROOT / "build/actions/actions-test.obj")
shipped = Coff(ROOT / "build/graphics/poker.obj")
functions = {"InitNativeSlots3D": 0, "FreeNativeSlots3D": 0,
"StartNativeSlots3D": 0, "HandleNativeSlots3D": 0,
"RenderNativeSlots3D": 0, "SlotMultiplier3D": 12,
"SettleNativeSlots3D": 0, "SlotEscape3D": 0, "SlotExitMouse3D": 0,
"SlotReelPosition3D": 4, "DrawSlotReel3D": 4,
"DrawSlotSymbol3D": 12, "DrawSlotTotals3D": 12, "Trigger3DInteraction": 0,
"StartCasino3D": 0, "CardTableEscape3D": 0}
for name, size in functions.items():
symbol = f"_{name}@{size}"
assert tested.signature(symbol) == shipped.signature(symbol), name
print("PASS: shipping slot rules, input, reels, exit and renderer match tested MASM code")
if __name__ == "__main__":
main()