Add rooftop elevator, lounge, volumetric city, river and animated traffic. Prune invisible mesh faces, clip CPU surfaces, streamline compositing and add automatic/F8 roof quality profiles with renderer diagnostics. Include dartboard/reticle improvements, tracked fortune orb numerals and fate-session visuals, native regression tests, compatible jukebox IDs and updated shipping executables.
156 lines
3.6 KiB
PHP
156 lines
3.6 KiB
PHP
RenderRoofCityLamps3D PROC uses ebx esi edi
|
|
local px:DWORD,py:DWORD,x1:DWORD,y1:DWORD
|
|
xor esi,esi
|
|
roof_city_lamp:
|
|
mov eax,roofCityLamps3D[esi*8]
|
|
mov px,eax
|
|
mov edx,roofCityLamps3D[esi*8+4]
|
|
mov py,edx
|
|
invoke ProjectCityPoint3D,eax,edx
|
|
cmp edx,FP_1
|
|
jle roof_city_lamp_next
|
|
cmp edx,180*FP_1
|
|
ja roof_city_lamp_next
|
|
cmp eax,-8
|
|
jl roof_city_lamp_next
|
|
cmp eax,SCREEN_W+8
|
|
jg roof_city_lamp_next
|
|
mov eax,px
|
|
add eax,FP_1/12
|
|
mov x1,eax
|
|
mov eax,py
|
|
add eax,FP_1/12
|
|
mov y1,eax
|
|
invoke DrawRoofSolid3D,px,x1,py,y1,ROOF_CITY_STREET_Z,ROOF_CITY_STREET_Z+5*FP_1,ROOF_METAL
|
|
mov eax,px
|
|
sub eax,FP_1/5
|
|
mov edx,px
|
|
add edx,FP_1/5
|
|
mov ecx,py
|
|
sub ecx,FP_1/5
|
|
mov edi,py
|
|
add edi,FP_1/5
|
|
invoke DrawRoofSolid3D,eax,edx,ecx,edi,ROOF_CITY_STREET_Z+FP_1*49/10,ROOF_CITY_STREET_Z+FP_1*51/10,ROOF_LIGHT
|
|
roof_city_lamp_next:
|
|
inc esi
|
|
cmp esi,ROOF_CITY_LAMP_COUNT
|
|
jb roof_city_lamp
|
|
ret
|
|
RenderRoofCityLamps3D ENDP
|
|
|
|
DrawRoofCar3D PROC uses ebx esi edi centreX:DWORD,centreY:DWORD,axis:DWORD,style:DWORD
|
|
local x0:DWORD,x1:DWORD,y0:DWORD,y1:DWORD,bodyMat:DWORD,cabinX0:DWORD,cabinX1:DWORD
|
|
local cabinY0:DWORD,cabinY1:DWORD
|
|
invoke ProjectCityPoint3D,centreX,centreY
|
|
cmp edx,FP_1
|
|
jle roof_car_done
|
|
cmp eax,-30
|
|
jl roof_car_done
|
|
cmp eax,SCREEN_W+30
|
|
jg roof_car_done
|
|
mov ebx,FP_1*19/10
|
|
mov ecx,FP_1*8/10
|
|
cmp axis,0
|
|
je @F
|
|
xchg ebx,ecx
|
|
@@:
|
|
mov eax,centreX
|
|
sub eax,ebx
|
|
mov x0,eax
|
|
mov eax,centreX
|
|
add eax,ebx
|
|
mov x1,eax
|
|
mov eax,centreY
|
|
sub eax,ecx
|
|
mov y0,eax
|
|
mov eax,centreY
|
|
add eax,ecx
|
|
mov y1,eax
|
|
mov bodyMat,ROOF_CITY_ROOF
|
|
test style,1
|
|
jz @F
|
|
mov bodyMat,ROOF_BRASS
|
|
@@:
|
|
invoke DrawRoofSolid3D,x0,x1,y0,y1,ROOF_CITY_STREET_Z+FP_1/4,ROOF_CITY_STREET_Z+FP_1*85/100,bodyMat
|
|
mov ebx,FP_1*9/10
|
|
mov ecx,FP_1*65/100
|
|
cmp axis,0
|
|
je @F
|
|
xchg ebx,ecx
|
|
@@:
|
|
mov eax,centreX
|
|
sub eax,ebx
|
|
mov cabinX0,eax
|
|
mov eax,centreX
|
|
add eax,ebx
|
|
mov cabinX1,eax
|
|
mov eax,centreY
|
|
sub eax,ecx
|
|
mov cabinY0,eax
|
|
mov eax,centreY
|
|
add eax,ecx
|
|
mov cabinY1,eax
|
|
invoke DrawRoofSolid3D,cabinX0,cabinX1,cabinY0,cabinY1,ROOF_CITY_STREET_Z+FP_1*85/100,ROOF_CITY_STREET_Z+FP_1*135/100,ROOF_MODERN_FACADE+1
|
|
roof_car_done:
|
|
ret
|
|
DrawRoofCar3D ENDP
|
|
|
|
RenderRoofTraffic3D PROC uses ebx esi edi
|
|
local px:DWORD,py:DWORD,material:DWORD
|
|
xor esi,esi
|
|
roof_city_car:
|
|
mov eax,esi
|
|
imul eax,17000
|
|
add eax,animationClock3D
|
|
mov ecx,393
|
|
mul ecx
|
|
mov ecx,340*FP_1
|
|
div ecx
|
|
sub edx,160*FP_1
|
|
mov px,edx
|
|
mov py,-FP_1*59/10
|
|
test esi,1
|
|
jz @F
|
|
neg edx
|
|
mov px,edx
|
|
mov py,-FP_1*81/10
|
|
@@:
|
|
cmp esi,4
|
|
jb roof_city_car_x
|
|
mov eax,px
|
|
mov py,eax
|
|
mov px,FP_1*391/10
|
|
test esi,1
|
|
jz @F
|
|
mov px,FP_1*369/10
|
|
@@:
|
|
invoke DrawRoofCar3D,px,py,1,esi
|
|
jmp roof_city_car_next
|
|
roof_city_car_x:
|
|
invoke DrawRoofCar3D,px,py,0,esi
|
|
roof_city_car_next:
|
|
inc esi
|
|
cmp esi,8
|
|
jb roof_city_car
|
|
xor esi,esi
|
|
roof_city_boat:
|
|
imul eax,esi,47000
|
|
add eax,animationClock3D
|
|
mov ecx,98
|
|
mul ecx
|
|
mov ecx,340*FP_1
|
|
div ecx
|
|
sub edx,160*FP_1
|
|
mov px,edx
|
|
mov py,68*FP_1
|
|
invoke DrawRoofEllipsoid3D,px,py,ROOF_CITY_STREET_Z-FP_1*16/10,3*FP_1,FP_1,FP_1/2,ROOF_CITY_ROOF
|
|
mov eax,px
|
|
sub eax,FP_1
|
|
mov ebx,px
|
|
add ebx,FP_1
|
|
invoke DrawRoofSolid3D,eax,ebx,FP_1*674/10,FP_1*686/10,ROOF_CITY_STREET_Z-FP_1*14/10,ROOF_CITY_STREET_Z-FP_1*7/10,ROOF_PLASTER
|
|
inc esi
|
|
cmp esi,3
|
|
jb roof_city_boat
|
|
ret
|
|
RenderRoofTraffic3D ENDP
|