- Billiards: add native Russian Pyramid & American Eight-Ball pool with physics prediction, controls, and regression tests - Scratch Tickets: add dedicated counter, mat presentation, elliptical coin scraping, 4 ticket types, and payout effects - First-Person Dice: add native dice scene, hand anchor frames, throwing animation, and table perspective - City Wake & Weather: add arrival cutscene, alley geometry, weather/rain effects, and lighter/rocker animation - World Dressing: add hall paintings, furniture packs, hall lighting, and scene regression tests - Build & Tooling: update build.bat for modern MSVC toolchain, update launcher hash, and refresh shipping binaries
80 lines
2.4 KiB
PHP
80 lines
2.4 KiB
PHP
.data
|
|
hallFurnitureCardShot3D db "build\actions\hall-card-furniture-v5.bmp",0
|
|
hallFurnitureSkillShot3D db "build\actions\hall-skill-furniture-v5.bmp",0
|
|
hallFurnitureLoungeShot3D db "build\actions\hall-lounge-v5.bmp",0
|
|
.code
|
|
TestHallFurniture3D PROC uses ebx esi edi
|
|
cmp hallCardFurniture3D.imageWidth,320
|
|
jne furniture_test_fail
|
|
cmp hallCardFurniture3D.height,208
|
|
jne furniture_test_fail
|
|
cmp hallSkillFurniture3D.imageWidth,224
|
|
jne furniture_test_fail
|
|
cmp hallSkillFurniture3D.height,368
|
|
jne furniture_test_fail
|
|
cmp hallSlotFurniture3D.frames,3
|
|
jne furniture_test_fail
|
|
cmp hallStationPacks3D[12*4],OFFSET hallSkillFurniture3D
|
|
jne furniture_test_fail
|
|
cmp hallSpriteHeights3D[12*4],FP_1*9/5
|
|
jne furniture_test_fail
|
|
; New decor has floor anchors, valid rooms, collision and preserved walking routes.
|
|
xor esi,esi
|
|
furniture_test_positions:
|
|
imul ebx,esi,SIZEOF CityProp3D
|
|
cmp hallLoungeDecor3D[ebx].groundZ,0
|
|
jne furniture_test_fail
|
|
mov eax,hallLoungeDecor3D[ebx].posX
|
|
sar eax,16
|
|
mov edx,hallLoungeDecor3D[ebx].posY
|
|
sar edx,16
|
|
shl edx,5
|
|
add eax,edx
|
|
cmp casinoMap[eax],0
|
|
jne furniture_test_fail
|
|
invoke CanWalk3D,hallLoungeDecor3D[ebx].posX,hallLoungeDecor3D[ebx].posY
|
|
test eax,eax
|
|
jnz furniture_test_fail
|
|
inc esi
|
|
cmp esi,HALL_DECOR_COUNT
|
|
jb furniture_test_positions
|
|
invoke CanWalk3D,16*FP_1,18*FP_1
|
|
cmp eax,1
|
|
jne furniture_test_fail
|
|
mov engineMode,MODE_WALK
|
|
mov viewHorizon3D,HALF_H
|
|
mov viewEye3D,HALL_STANDING_EYE
|
|
mov playerAngle,384
|
|
mov playerX,12*FP_1+FP_HALF
|
|
mov playerY,11*FP_1
|
|
call UpdateCamera3D
|
|
call RenderCeilingAndFloor
|
|
call RenderWalls
|
|
call PrepareCityDepth3D
|
|
call RenderSprites
|
|
call RenderHall3D
|
|
invoke WriteActionSnapshot3D,OFFSET hallFurnitureCardShot3D
|
|
mov playerX,18*FP_1
|
|
mov playerY,18*FP_1
|
|
call UpdateCamera3D
|
|
call RenderCeilingAndFloor
|
|
call RenderWalls
|
|
call PrepareCityDepth3D
|
|
call RenderSprites
|
|
call RenderHall3D
|
|
invoke WriteActionSnapshot3D,OFFSET hallFurnitureSkillShot3D
|
|
mov playerX,14*FP_1
|
|
mov playerY,22*FP_1
|
|
call UpdateCamera3D
|
|
call RenderCeilingAndFloor
|
|
call RenderWalls
|
|
call PrepareCityDepth3D
|
|
call RenderSprites
|
|
call RenderHall3D
|
|
invoke WriteActionSnapshot3D,OFFSET hallFurnitureLoungeShot3D
|
|
mov eax,1
|
|
ret
|
|
furniture_test_fail:
|
|
xor eax,eax
|
|
ret
|
|
TestHallFurniture3D ENDP
|