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

53 lines
2.3 KiB
PHP

.data
CityBuilding3D STRUCT
minX dd ?
maxX dd ?
minY dd ?
maxY dd ?
roofZ dd ?
material dd ?
CityBuilding3D ENDS
CITY_DISTANT_BUILDINGS equ 23
citySkyline3D CityBuilding3D <33*FP_1,42*FP_1,-2*FP_1,11*FP_1,7*FP_1,65>
CityBuilding3D <46*FP_1,56*FP_1,-1*FP_1,11*FP_1,9*FP_1,66>
CityBuilding3D <33*FP_1,42*FP_1,17*FP_1,27*FP_1,8*FP_1,67>
CityBuilding3D <46*FP_1,56*FP_1,17*FP_1,28*FP_1,7*FP_1,65>
CityBuilding3D <46*FP_1,56*FP_1,31*FP_1,40*FP_1,12*FP_1,66>
CityBuilding3D <3*FP_1,7*FP_1,35*FP_1,39*FP_1,12*FP_1,67>
CityBuilding3D <11*FP_1,17*FP_1,38*FP_1,44*FP_1,21*FP_1,65>
CityBuilding3D <20*FP_1,25*FP_1,36*FP_1,40*FP_1,10*FP_1,66>
CityBuilding3D <-10*FP_1,-6*FP_1,18*FP_1,23*FP_1,13*FP_1,67>
CityBuilding3D <-15*FP_1,-11*FP_1,7*FP_1,12*FP_1,17*FP_1,66>
CityBuilding3D <-7*FP_1,-3*FP_1,1*FP_1,5*FP_1,9*FP_1,65>
CityBuilding3D <4*FP_1,9*FP_1,-9*FP_1,-5*FP_1,12*FP_1,66>
CityBuilding3D <15*FP_1,19*FP_1,-14*FP_1,-10*FP_1,18*FP_1,67>
CityBuilding3D <27*FP_1,31*FP_1,-8*FP_1,-4*FP_1,10*FP_1,65>
CityBuilding3D <59*FP_1,68*FP_1,17*FP_1,29*FP_1,10*FP_1,66>
CityBuilding3D <46*FP_1,56*FP_1,-13*FP_1,-5*FP_1,17*FP_1,67>
CityBuilding3D <71*FP_1,82*FP_1,17*FP_1,30*FP_1,12*FP_1,65>
CityBuilding3D <59*FP_1,68*FP_1,-12*FP_1,11*FP_1,11*FP_1,66>
CityBuilding3D <33*FP_1,42*FP_1,-18*FP_1,-5*FP_1,16*FP_1,65>
CityBuilding3D <33*FP_1,42*FP_1,31*FP_1,42*FP_1,14*FP_1,66>
CityBuilding3D <71*FP_1,82*FP_1,-20*FP_1,11*FP_1,14*FP_1,67>
CityBuilding3D <59*FP_1,68*FP_1,32*FP_1,44*FP_1,17*FP_1,65>
CityBuilding3D <85*FP_1,96*FP_1,18*FP_1,42*FP_1,22*FP_1,66>
.code
; A second world-space district is drawn before foreground walls, with its own depth.
DrawCitySkyline3D PROC uses ebx esi edi
lea edi, cityDepthBuffer3D
mov eax, 7FFFFFFFh
mov ecx, SCREEN_SIZE
rep stosd
call PrepareCityRays3D
mov cityBackdrop3D, 1
lea esi, citySkyline3D
mov ebx, CITY_DISTANT_BUILDINGS
city_skyline_building:
invoke DrawCityBoxSides3D, [esi].CityBuilding3D.minX,[esi].CityBuilding3D.maxX,[esi].CityBuilding3D.minY,[esi].CityBuilding3D.maxY,0,[esi].CityBuilding3D.roofZ,[esi].CityBuilding3D.material
add esi, SIZEOF CityBuilding3D
dec ebx
jnz city_skyline_building
mov cityBackdrop3D, 0
ret
DrawCitySkyline3D ENDP