KAZIK/src_graphics/unavailable.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

64 lines
1.7 KiB
PHP

; A nonblocking native modal never starts a console game or changes a stake.
.code
BeginUnavailable3D PROC uses esi edi
lea esi, screenBuffer
lea edi, unavailableBackground3D
mov ecx, SCREEN_SIZE
rep movsd
mov engineMode, MODE_UNAVAILABLE
mov paused3D, 0
call ClearKeys3D
mov mouseClick3D, 0
ret
BeginUnavailable3D ENDP
HandleUnavailable3D PROC
invoke Pressed3D, 45h
test eax, eax
jnz unavailable_close
invoke Pressed3D, 20h
test eax, eax
jnz unavailable_close
invoke Pressed3D, 0Dh
test eax, eax
jnz unavailable_close
cmp mouseClick3D, 0
je unavailable_input_done
cmp mouseX3D, 128
jb unavailable_input_done
cmp mouseX3D, 192
ja unavailable_input_done
cmp mouseY3D, 135
jb unavailable_input_done
cmp mouseY3D, 155
ja unavailable_input_done
unavailable_close:
mov engineMode, MODE_WALK
call ClearKeys3D
unavailable_input_done:
mov mouseClick3D, 0
ret
HandleUnavailable3D ENDP
RenderUnavailable3D PROC uses esi edi
lea esi, unavailableBackground3D
lea edi, screenBuffer
mov ecx, SCREEN_SIZE
rep movsd
cmp engineMode, MODE_UNAVAILABLE
jne unavailable_render_done
lea edi, screenBuffer
mov ecx, SCREEN_SIZE
unavailable_dim:
mov eax, [edi]
and eax, 00FEFEFEh
shr eax, 1
stosd
loop unavailable_dim
invoke DrawBoxBorder, 52, 88, 216, 80, 00171D20h, 00B49D63h, 1
invoke DrawString8x8, 84, 108, OFFSET unavailableText3D, 00ECD9A8h
invoke DrawBoxBorder, 128, 135, 64, 20, 00303C3Ch, 006C7E7Eh, 1
invoke DrawString8x8, 132, 142, OFFSET unavailableClose3D, 00FFFFFFh
unavailable_render_done:
ret
RenderUnavailable3D ENDP