.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