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.
49 lines
1.4 KiB
NASM
49 lines
1.4 KiB
NASM
; Exercise the shipping object's light shader without a window or any save writes.
|
|
.686
|
|
.model flat, stdcall
|
|
option casemap:none
|
|
include kernel32.inc
|
|
BuildCityLighting3D PROTO
|
|
SampleCityLight3D PROTO :DWORD,:DWORD
|
|
IsCityEmissive3D PROTO :DWORD,:DWORD
|
|
ShadeCityGround3D PROTO :DWORD,:DWORD,:DWORD,:DWORD
|
|
.code
|
|
RunCityLightProbe PROC
|
|
call BuildCityLighting3D
|
|
invoke SampleCityLight3D, 17*65536, 65536*259/20
|
|
cmp eax, 230
|
|
jb city_probe_failed
|
|
invoke SampleCityLight3D, -1, 14*65536
|
|
test eax, eax
|
|
jnz city_probe_failed
|
|
invoke SampleCityLight3D, 64*65536, 14*65536
|
|
test eax, eax
|
|
jnz city_probe_failed
|
|
invoke IsCityEmissive3D, 00E9B149h, 65
|
|
cmp eax, 1
|
|
jne city_probe_failed
|
|
invoke IsCityEmissive3D, 00E9B149h, 57
|
|
test eax, eax
|
|
jnz city_probe_failed
|
|
; Green/blue panes must not pass a wrapped unsigned R-G or G-B difference.
|
|
invoke IsCityEmissive3D, 00B4F088h, 65
|
|
test eax, eax
|
|
jnz city_probe_failed
|
|
invoke IsCityEmissive3D, 00F064F0h, 65
|
|
test eax, eax
|
|
jnz city_probe_failed
|
|
invoke IsCityEmissive3D, 00FFFFFFh, 65
|
|
test eax, eax
|
|
jnz city_probe_failed
|
|
invoke ShadeCityGround3D, 001E1E1Eh, 17*65536, 65536*259/20, 160
|
|
mov edx, eax
|
|
shr edx, 16
|
|
and edx, 255
|
|
and eax, 255
|
|
cmp edx, eax
|
|
jbe city_probe_failed
|
|
invoke ExitProcess, 0
|
|
city_probe_failed:
|
|
invoke ExitProcess, 1
|
|
RunCityLightProbe ENDP
|
|
END RunCityLightProbe
|