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.
173 lines
3.9 KiB
PHP
173 lines
3.9 KiB
PHP
RenderRRPartyCharacters3D PROC uses ebx esi edi
|
|
local px:DWORD,frame:DWORD,ink:DWORD
|
|
xor ebx,ebx
|
|
rr_party_draw_guest:
|
|
cmp ebx,rrPartyCount3D
|
|
jae rr_party_draw_done
|
|
mov esi,rrPartyX3D[ebx*4]
|
|
cmp rrPartyCount3D,2
|
|
jne @F
|
|
imul esi,ebx,200
|
|
add esi,132
|
|
@@:
|
|
mov px,esi
|
|
mov frame,ebx
|
|
lea edi,[ebx+1]
|
|
mov ink,00D7C7A4h
|
|
bt rrPartyAlive3D,edi
|
|
jnc rr_party_inactive
|
|
cmp rr3d_turn,edi
|
|
jne rr_party_draw_body
|
|
cmp rr3d_state,RR_RAISE
|
|
je rr_party_active_body
|
|
cmp rr3d_state,RR_FIRE
|
|
je rr_party_active_body
|
|
cmp rr3d_state,RR_DRY
|
|
jne rr_party_draw_body
|
|
rr_party_active_body:
|
|
add frame,3
|
|
mov ink,00FFE09Ah
|
|
rr_party_draw_body:
|
|
mov animOpacity3D,255
|
|
jmp rr_party_body
|
|
rr_party_inactive:
|
|
mov ink,00697873h
|
|
cmp rr3d_turn,edi
|
|
jne rr_party_caption
|
|
cmp rr3d_state,RR_DRY
|
|
jne rr_party_caption
|
|
mov eax,700
|
|
sub eax,rr3d_timer
|
|
jle rr_party_caption
|
|
imul eax,255
|
|
xor edx,edx
|
|
mov ecx,700
|
|
div ecx
|
|
mov animOpacity3D,eax
|
|
rr_party_body:
|
|
invoke DrawAnimSprite3D,OFFSET rrPartyArt3D,frame,px,48,176,176
|
|
rr_party_caption:
|
|
mov animOpacity3D,255
|
|
lea eax,[esi+16]
|
|
invoke DrawBuckshotText3D,eax,38,rrPartyNames3D[ebx*4],ink
|
|
mov ecx,OFFSET rrPartyOutText3D
|
|
bt rrPartyAlive3D,edi
|
|
jnc @F
|
|
mov ecx,OFFSET rrPartyAliveText3D
|
|
cmp rr3d_state,RR_READY
|
|
je @F
|
|
cmp rr3d_state,RR_WIN
|
|
je @F
|
|
cmp rr3d_turn,edi
|
|
jne @F
|
|
mov ecx,OFFSET rrPartyTurnText3D
|
|
@@:
|
|
lea eax,[esi+16]
|
|
invoke DrawBuckshotText3D,eax,230,ecx,ink
|
|
inc ebx
|
|
jmp rr_party_draw_guest
|
|
rr_party_draw_done:
|
|
mov animOpacity3D,255
|
|
ret
|
|
RenderRRPartyCharacters3D ENDP
|
|
|
|
; A shared tabletop revolver is passed to the highlighted seat; no extra arm layer.
|
|
RenderRRPartyGun3D PROC uses ebx
|
|
local target:DWORD,t:DWORD,px:DWORD,py:DWORD
|
|
mov ebx,rr3d_turn
|
|
dec ebx
|
|
cmp ebx,3
|
|
jae rr_party_gun_done
|
|
mov eax,rrPartyX3D[ebx*4]
|
|
cmp rrPartyCount3D,2
|
|
jne @F
|
|
imul eax,ebx,200
|
|
add eax,132
|
|
@@:
|
|
add eax,88
|
|
shr eax,1
|
|
mov target,eax
|
|
mov eax,750
|
|
cmp rr3d_state,RR_RAISE
|
|
jne @F
|
|
mov eax,rr3d_timer
|
|
cmp eax,750
|
|
jbe @F
|
|
mov eax,750
|
|
@@:
|
|
mov t,eax
|
|
mov eax,target
|
|
sub eax,160
|
|
imul eax,t
|
|
cdq
|
|
mov ecx,750
|
|
idiv ecx
|
|
add eax,160
|
|
mov px,eax
|
|
mov eax,19
|
|
imul eax,t
|
|
xor edx,edx
|
|
div ecx
|
|
mov edx,151
|
|
sub edx,eax
|
|
mov py,edx
|
|
invoke DrawRouletteSprite3D,0,px,py,98,52,0
|
|
rr_party_gun_done:
|
|
ret
|
|
RenderRRPartyGun3D ENDP
|
|
|
|
RenderRRPartyControls3D PROC uses ebx esi
|
|
cmp rrPartyCount3D,1
|
|
jbe @F
|
|
invoke DrawBuckshotText3D,244,414,OFFSET rrPartyPoolText3D,00EBD5A0h
|
|
mov eax,rrPartyStake3D
|
|
test eax,eax
|
|
jnz rr_party_pool_locked
|
|
mov eax,rr3d_bet
|
|
rr_party_pool_locked:
|
|
imul eax,rrPartySize3D
|
|
invoke DrawBuckshotNumber3D,296,414,eax,00FFFFFFh
|
|
@@:
|
|
cmp rr3d_state,RR_READY
|
|
jne rr_party_controls_done
|
|
invoke DrawBuckshotText3D,280,462,OFFSET rrPartyCountText3D,00D7C7A4h
|
|
xor ebx,ebx
|
|
rr_party_control:
|
|
mov esi,ebx
|
|
imul esi,20
|
|
add esi,188
|
|
mov eax,0025352Dh
|
|
mov ecx,00766B51h
|
|
lea edx,[ebx+1]
|
|
cmp edx,rrPartyCount3D
|
|
jne @F
|
|
mov eax,003D6546h
|
|
mov ecx,00EBD5A0h
|
|
@@:
|
|
invoke DrawBoxBorder,esi,226,18,13,eax,ecx,1
|
|
lea ecx,rrPartyDigits3D[ebx*2]
|
|
lea eax,[esi*2+14]
|
|
invoke DrawBuckshotText3D,eax,462,ecx,00EFE7D4h
|
|
inc ebx
|
|
cmp ebx,3
|
|
jb rr_party_control
|
|
rr_party_controls_done:
|
|
ret
|
|
RenderRRPartyControls3D ENDP
|
|
|
|
RenderRussianExit3D PROC
|
|
cmp engineMode,MODE_RUSSIAN
|
|
jne rr_party_exit_done
|
|
cmp cardExitActive3D,0
|
|
jne rr_party_exit_show
|
|
cmp rr3d_state,RR_READY
|
|
je rr_party_exit_show
|
|
cmp rr3d_state,RR_WIN
|
|
je rr_party_exit_show
|
|
cmp rr3d_state,RR_PLAYER
|
|
jne rr_party_exit_done
|
|
rr_party_exit_show:
|
|
call RenderCardExit3D
|
|
rr_party_exit_done:
|
|
ret
|
|
RenderRussianExit3D ENDP
|