.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