Add native assembly scenes and assets for Slots (777), Coin flip, and European Roulette; add 3D hall furniture packs and prompts; improve Russian UI strings in CP1251; update launcher hash and rebuild shipping binaries.
171 lines
7.9 KiB
PHP
171 lines
7.9 KiB
PHP
CITY_BLACK equ 0
|
|
CITY_WAKE equ 1
|
|
CITY_SMOKE equ 2
|
|
CITY_TOSS equ 3
|
|
CITY_TURN_ALLEY equ 4
|
|
CITY_ALLEY equ 5
|
|
CITY_TURN_STREET equ 6
|
|
CITY_STREET equ 7
|
|
CITY_TURN_DOOR equ 8
|
|
CITY_DOOR equ 9
|
|
CITY_BUILDING_STOREYS equ 7
|
|
CITY_STOREY_HEIGHT equ FP_1*6/5
|
|
LoadCityArrival3D PROTO
|
|
RenderCityArrival3D PROTO
|
|
HandleCityApproach3D PROTO
|
|
PositionCityCamera3D PROTO
|
|
FadeCityFrame3D PROTO :DWORD
|
|
CITY_LIGHT_W equ 512
|
|
CITY_LIGHT_H equ 256
|
|
BuildCityLighting3D PROTO
|
|
AddCityLight3D PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
|
|
SampleCityLight3D PROTO :DWORD,:DWORD
|
|
ShadeCityGround3D PROTO :DWORD,:DWORD,:DWORD,:DWORD
|
|
IsCityEmissive3D PROTO :DWORD,:DWORD
|
|
include src_graphics\city_map.inc
|
|
.data
|
|
worldMap3D dd OFFSET casinoMap
|
|
viewHorizon3D dd HALF_H
|
|
floorTexture3D dd 3
|
|
outdoorRender3D dd 0
|
|
cityLighting3D dd 1
|
|
cityLightReady3D dd 0
|
|
viewEye3D dd FP_1*17/20
|
|
viewCeiling3D dd FP_1*5/2
|
|
cityPhase3D dd CITY_BLACK
|
|
cityTime3D dd 0
|
|
cityClock3D dd 0
|
|
cityDurations3D dd 700,3100,2400,1500,1200,5400,900,7500,900,2800
|
|
cityTilesPack3D AnimPack3D <>
|
|
cityHandsPack3D AnimPack3D <>
|
|
cityPropsPack3D AnimPack3D <>
|
|
citySmokePack3D AnimPack3D <>
|
|
cityCarsPack3D AnimPack3D <>
|
|
cityBinPack3D AnimPack3D <>
|
|
cityCloudPack3D AnimPack3D <>
|
|
cityTilesPath3D db "assets\animations\arrival\city-tiles-v4.bin",0
|
|
cityHandsPath3D db "assets\animations\arrival\city-hands.bin",0
|
|
cityPropsPath3D db "assets\animations\arrival\city-props.bin",0
|
|
citySmokePath3D db "assets\animations\arrival\city-smoke.bin",0
|
|
cityCarsPath3D db "assets\animations\arrival\city-cars.bin",0
|
|
cityBinPath3D db "assets\animations\arrival\city-bin-materials.bin",0
|
|
cityCloudPath3D db "assets\animations\arrival\city-clouds.bin",0
|
|
include src_graphics\city_smoke_anchors.inc
|
|
cityFingerX3D dd 104,116,132,148,151,140,130,110,100,94,92,90,108,106,110,112
|
|
cityFingerY3D dd 128,111,91,72,55,45,32,27,69,77,77,90,95,116,130,135
|
|
cityMouthX3D dd 0
|
|
cityMouthY3D dd 0
|
|
cityHandX3D dd 0
|
|
cityHandY3D dd 0
|
|
cityCigaretteX3D dd 0
|
|
cityCigaretteY3D dd 0
|
|
cityBackdrop3D dd 0
|
|
CityProp3D STRUCT
|
|
posX dd ?
|
|
posY dd ?
|
|
worldW dd ?
|
|
worldH dd ?
|
|
frame dd ?
|
|
asset dd ?
|
|
groundZ dd 0
|
|
CityProp3D ENDS
|
|
CITY_PROP_COUNT equ 47
|
|
CITY_FIRST_CAR equ 9
|
|
CITY_TRAFFIC_EAST equ 14
|
|
CITY_TRAFFIC_WEST equ 15
|
|
CITY_PEDESTRIAN_COUNT equ 6
|
|
CityWalkRoute3D STRUCT
|
|
objectIndex dd ?
|
|
minX dd ?
|
|
maxX dd ?
|
|
curbY dd ?
|
|
phaseOffset dd ?
|
|
halfPeriod dd ?
|
|
firstFrame dd ?
|
|
poseMs dd ?
|
|
CityWalkRoute3D ENDS
|
|
; Crops are measured from actual opaque pixels once, before the intro starts.
|
|
CitySpriteCrop3D STRUCT
|
|
pixelX dd ?
|
|
pixelY dd ?
|
|
pixelW dd ?
|
|
pixelH dd ?
|
|
CitySpriteCrop3D ENDS
|
|
cityStreetCrops3D CitySpriteCrop3D 8 dup(<>)
|
|
cityObjects3D CityProp3D <(8*FP_1+FP_1/3),(26*FP_1+FP_1/3),FP_1*3/2,FP_1*5/4,0,OFFSET cityPropsPack3D>
|
|
CityProp3D <(9*FP_1+FP_1/3),(27*FP_1),FP_1,FP_1*3/4,1,OFFSET cityPropsPack3D>
|
|
CityProp3D <(8*FP_1+FP_1/8),(27*FP_1),FP_1/2,FP_1/3,2,OFFSET cityPropsPack3D>
|
|
CityProp3D <(9*FP_1+FP_1*7/8),(25*FP_1+FP_HALF),FP_1/3,FP_1*3/2,4,OFFSET cityPropsPack3D>
|
|
CityProp3D <(9*FP_1+FP_HALF),(22*FP_1),FP_1/2,FP_1/2,5,OFFSET cityPropsPack3D>
|
|
CityProp3D <11*FP_1,FP_1*333/20,FP_1,3*FP_1,3,OFFSET cityPropsPack3D>
|
|
CityProp3D <17*FP_1,FP_1*259/20,FP_1,3*FP_1,3,OFFSET cityPropsPack3D>
|
|
CityProp3D <25*FP_1,FP_1*333/20,FP_1,3*FP_1,3,OFFSET cityPropsPack3D>
|
|
CityProp3D <(27*FP_1),(12*FP_1+FP_HALF),FP_1*3/4,FP_1/2,5,OFFSET cityPropsPack3D>
|
|
CityProp3D <(12*FP_1),(16*FP_1),FP_1*3,FP_1*9/5,0,OFFSET cityCarsPack3D>
|
|
CityProp3D <(19*FP_1),(16*FP_1),FP_1*3,FP_1*9/5,8,OFFSET cityCarsPack3D>
|
|
CityProp3D <(26*FP_1),(16*FP_1),FP_1*3,FP_1*9/5,0,OFFSET cityCarsPack3D>
|
|
CityProp3D <14*FP_1,FP_1*333/20,FP_1*3/5,FP_1/2,33,OFFSET hallStreetLife3D>
|
|
CityProp3D <23*FP_1,FP_1*259/20,FP_1*3/5,FP_1*11/10,38,OFFSET hallStreetLife3D>
|
|
CityProp3D <4*FP_1,14*FP_1,FP_1*3,FP_1*9/5,8,OFFSET cityCarsPack3D>
|
|
CityProp3D <28*FP_1,15*FP_1+FP_1/5,FP_1*3,FP_1*9/5,0,OFFSET cityCarsPack3D>
|
|
cityNearMan3D LABEL BYTE
|
|
CityProp3D <12*FP_1,FP_1*253/20,FP_1*7/10,FP_1*27/20,0,OFFSET hallStreetLife3D>
|
|
cityFarWoman3D LABEL BYTE
|
|
CityProp3D <26*FP_1,FP_1*169/10,FP_1*4/5,FP_1*7/5,16,OFFSET hallStreetLife3D>
|
|
CityProp3D <26*FP_1,FP_1*259/20,FP_1*4/5,FP_1,34,OFFSET hallStreetLife3D>
|
|
CityProp3D <10*FP_1+FP_HALF,FP_1*333/20,FP_1*4/5,FP_1*6/5,35,OFFSET hallStreetLife3D>
|
|
CityProp3D <21*FP_1,FP_1*259/20,FP_1/4,FP_1*23/50,36,OFFSET hallStreetLife3D>
|
|
CityProp3D <28*FP_1,FP_1*333/20,2*FP_1,FP_1*17/10,39,OFFSET hallStreetLife3D>
|
|
CityProp3D <34*FP_1,FP_1*259/20,FP_1,3*FP_1,3,OFFSET cityPropsPack3D>
|
|
; Another walking pair occupies the near and far curbs, not the traffic lanes.
|
|
cityNearWoman3D LABEL BYTE
|
|
CityProp3D <14*FP_1,FP_1*63/5,FP_1*4/5,FP_1*7/5,16,OFFSET hallStreetLife3D>
|
|
cityFarMan3D LABEL BYTE
|
|
CityProp3D <22*FP_1,FP_1*337/20,FP_1*7/10,FP_1*27/20,0,OFFSET hallStreetLife3D>
|
|
; Near-side street furniture is staggered along the route and clear of its center.
|
|
CityProp3D <12*FP_1,FP_1*259/20,FP_1*3/5,FP_1/2,33,OFFSET hallStreetLife3D>
|
|
CityProp3D <14*FP_1+FP_HALF,FP_1*259/20,FP_1*4/5,FP_1*6/5,35,OFFSET hallStreetLife3D>
|
|
CityProp3D <19*FP_1,FP_1*259/20,FP_1*4/5,FP_1,34,OFFSET hallStreetLife3D>
|
|
CityProp3D <16*FP_1,FP_1*259/20,FP_1/4,FP_1*23/50,36,OFFSET hallStreetLife3D>
|
|
CityProp3D <18*FP_1,FP_1*259/20,FP_1/4,FP_1*23/50,36,OFFSET hallStreetLife3D>
|
|
CityProp3D <24*FP_1,FP_1*259/20,FP_1/4,FP_1*23/50,36,OFFSET hallStreetLife3D>
|
|
; Independent outdoor walkers replace the stationary indoor visitor billboards.
|
|
cityEntryMan3D LABEL BYTE
|
|
CityProp3D <20*FP_1+FP_HALF,9*FP_1,FP_1*7/10,FP_1*27/20,0,OFFSET hallStreetLife3D>
|
|
cityEntryWoman3D LABEL BYTE
|
|
CityProp3D <24*FP_1+FP_HALF,9*FP_1,FP_1*4/5,FP_1*7/5,16,OFFSET hallStreetLife3D>
|
|
CityProp3D <13*FP_1,FP_1*333/20,FP_1*4/5,FP_1,34,OFFSET hallStreetLife3D>
|
|
CityProp3D <21*FP_1,FP_1*333/20,FP_1*4/5,FP_1*6/5,35,OFFSET hallStreetLife3D>
|
|
CityProp3D <24*FP_1,FP_1*333/20,FP_1,3*FP_1,3,OFFSET cityPropsPack3D>
|
|
CityProp3D <27*FP_1,FP_1*259/20,FP_1,3*FP_1,3,OFFSET cityPropsPack3D>
|
|
; These props continue beyond the first intersection, where the camera can see them.
|
|
CityProp3D <33*FP_1,FP_1*333/20,FP_1*3/5,FP_1/2,33,OFFSET hallStreetLife3D>
|
|
CityProp3D <37*FP_1,FP_1*259/20,FP_1*4/5,FP_1*6/5,35,OFFSET hallStreetLife3D>
|
|
CityProp3D <36*FP_1,FP_1*333/20,FP_1,3*FP_1,3,OFFSET cityPropsPack3D>
|
|
CityProp3D <39*FP_1,FP_1*259/20,FP_1*3/5,FP_1*11/10,38,OFFSET hallStreetLife3D>
|
|
CityProp3D <44*FP_1,FP_1*259/20,FP_1,3*FP_1,3,OFFSET cityPropsPack3D>
|
|
CityProp3D <45*FP_1,FP_1*333/20,2*FP_1,FP_1*17/10,39,OFFSET hallStreetLife3D>
|
|
CityProp3D <20*FP_1,FP_1*333/20,2*FP_1,FP_1*17/10,39,OFFSET hallStreetLife3D>
|
|
CityProp3D <26*FP_1,FP_1*333/20,FP_1/4,FP_1*23/50,36,OFFSET hallStreetLife3D>
|
|
CityProp3D <19*FP_1,FP_1*333/20,FP_1/4,FP_1*23/50,36,OFFSET hallStreetLife3D>
|
|
CityProp3D <13*FP_1,FP_1*259/20,FP_1/4,FP_1*23/50,36,OFFSET hallStreetLife3D>
|
|
cityObjectsEnd3D LABEL BYTE
|
|
.errnz ((cityObjectsEnd3D-cityObjects3D)/SIZEOF CityProp3D)-CITY_PROP_COUNT
|
|
cityWalkRoutes3D CityWalkRoute3D <(cityNearMan3D-cityObjects3D)/SIZEOF CityProp3D,10*FP_1,28*FP_1,FP_1*253/20,0,32000,0,140>
|
|
CityWalkRoute3D <(cityFarWoman3D-cityObjects3D)/SIZEOF CityProp3D,10*FP_1,28*FP_1,FP_1*169/10,32000,32000,16,160>
|
|
CityWalkRoute3D <(cityNearWoman3D-cityObjects3D)/SIZEOF CityProp3D,11*FP_1,27*FP_1,FP_1*63/5,21000,30000,16,155>
|
|
CityWalkRoute3D <(cityFarMan3D-cityObjects3D)/SIZEOF CityProp3D,10*FP_1,28*FP_1,FP_1*337/20,13000,34000,0,145>
|
|
CityWalkRoute3D <(cityEntryMan3D-cityObjects3D)/SIZEOF CityProp3D,20*FP_1+FP_1/5,21*FP_1+FP_1/5,9*FP_1,0,4000,0,140>
|
|
CityWalkRoute3D <(cityEntryWoman3D-cityObjects3D)/SIZEOF CityProp3D,23*FP_1+FP_1*4/5,24*FP_1+FP_1*4/5,9*FP_1,4000,5200,16,160>
|
|
IFDEF CASINO_ACTION_TEST
|
|
cityVisiblePixels3D dd CITY_PROP_COUNT dup(0)
|
|
ENDIF
|
|
cityObjectOrder3D dd CITY_PROP_COUNT dup(0)
|
|
cityObjectDepth3D dd CITY_PROP_COUNT dup(0)
|
|
.data?
|
|
cityLightMap3D dd CITY_LIGHT_W*CITY_LIGHT_H dup(?)
|
|
cityDepthBuffer3D dd SCREEN_SIZE dup(?)
|
|
IFDEF CASINO_ACTION_TEST
|
|
cityPixelOwner3D dd SCREEN_SIZE dup(?)
|
|
ENDIF
|
|
.code
|