KAZIK/tools/tests/unavailable_test.inc
Artvasil09 3ad5bf4c9d Develop assembly-only casino scenes and native games
Add native Durak, poker, blackjack, roulette, Buckshot and billiards scenes with animation assets and regression tests. Improve arrival, city, hall, profiles, shops, audio and exit handling; remove the portable C game core and refresh shipping executables.
2026-10-08 22:39:19 +03:00

85 lines
2 KiB
PHP

.data
unavailableTestIds3D dd INTERACT_SLOTS_777,INTERACT_SLOTS_CLOVER
dd INTERACT_ONLINE_RR,INTERACT_UMAMUSUME,INTERACT_HELL_TOWER,INTERACT_TERMINAL,INTERACT_OBSERVER
unavailableTestPath3D db "build\actions\unavailable.bmp",0
.code
RunUnavailableTest3D PROC uses ebx esi edi
local oldBank:DWORD,oldMode:DWORD,oldX:DWORD,oldY:DWORD,oldAngle:DWORD
mov eax,bankroll
mov oldBank,eax
mov eax,engineMode
mov oldMode,eax
mov eax,playerX
mov oldX,eax
mov eax,playerY
mov oldY,eax
mov eax,playerAngle
mov oldAngle,eax
xor esi,esi
unavailable_test_next:
mov engineMode,MODE_WALK
mov eax,unavailableTestIds3D[esi*4]
mov interactTargetId,eax
call Trigger3DInteraction
cmp engineMode,MODE_UNAVAILABLE
jne unavailable_test_fail
call TableBusy3D
test eax,eax
jnz unavailable_test_fail
; No input: stay open, without blocking the frame loop.
call HandleUnavailable3D
cmp engineMode,MODE_UNAVAILABLE
jne unavailable_test_fail
call RenderUnavailable3D
cmp esi,0
jne @F
invoke WriteActionSnapshot3D,OFFSET unavailableTestPath3D
test eax,eax
jz unavailable_test_fail
@@:
mov eax,esi
and eax,3
cmp eax,3
je unavailable_test_click
mov ebx,20h
cmp eax,0
jne @F
mov ebx,45h
@@:
cmp eax,2
jne @F
mov ebx,0Dh
@@:
mov pressedKeys3D[ebx],1
jmp unavailable_test_close
unavailable_test_click:
mov mouseX3D,160
mov mouseY3D,145
mov mouseClick3D,1
unavailable_test_close:
call HandleUnavailable3D
cmp engineMode,MODE_WALK
jne unavailable_test_fail
mov eax,oldBank
cmp bankroll,eax
jne unavailable_test_fail
mov eax,oldX
cmp playerX,eax
jne unavailable_test_fail
mov eax,oldY
cmp playerY,eax
jne unavailable_test_fail
mov eax,oldAngle
cmp playerAngle,eax
jne unavailable_test_fail
inc esi
cmp esi,7
jb unavailable_test_next
mov eax,oldMode
mov engineMode,eax
xor eax,eax
ret
unavailable_test_fail:
mov eax,270
ret
RunUnavailableTest3D ENDP