- Native player-controlled stairs, upper lounge bar, and Hell Tower infernal portal - Cabaret stage with musical acts, audience seating, and interaction - Dedicated cash/trophy wall terminals with native balance and achievement screens - Projecting 3D wall lanterns with ray/plane intersection - Six roaming guests with seated poses and card rank rendering updates - Synchronized launcher hash and updated binaries
172 lines
9.5 KiB
PHP
172 lines
9.5 KiB
PHP
MODE_BAR equ 14
|
|
MODE_STAIRS equ 15
|
|
INTERACT_BAR equ 21
|
|
INTERACT_BASEMENT equ 22
|
|
INTERACT_UPSTAIRS equ 23
|
|
INTERACT_BILLIARDS equ 24
|
|
RenderCeilingAndFloor PROTO
|
|
RenderSprites PROTO
|
|
InitHall3D PROTO
|
|
LoadHallAssets3D PROTO
|
|
FreeHallAssets3D PROTO
|
|
CheckHallInteractions3D PROTO
|
|
TriggerHallInteraction3D PROTO
|
|
RenderHall3D PROTO
|
|
HandleBar3D PROTO
|
|
RenderBar3D PROTO
|
|
HandleStairs3D PROTO
|
|
RenderStairs3D PROTO
|
|
RenderCityGuards3D PROTO
|
|
CanWalkHall3D PROTO :DWORD,:DWORD
|
|
RenderCityFacade3D PROTO
|
|
UpdateHall3D PROTO
|
|
UpdatePatrons3D PROTO
|
|
RenderPatrons3D PROTO
|
|
ResolveWorldSurface3D PROTO :DWORD
|
|
include src_graphics\hall_layout.inc
|
|
.data
|
|
ALIGN 4
|
|
tableInvDelta3D dd 241 dup(0)
|
|
tableStepRatio3D dd 241 dup(0)
|
|
hallSign3D AnimPack3D <>
|
|
hallSignPath3D db "assets\animations\hall\sign.bin",0
|
|
hallCityDetail3D AnimPack3D <>
|
|
hallCityDetailPath3D db "assets\animations\hall\city-detail.bin",0
|
|
hallRoomMaterials3D AnimPack3D <>
|
|
hallRoomMaterialsPath3D db "assets\animations\hall\room-materials.bin",0
|
|
hallPatrons3D AnimPack3D <>
|
|
hallPatronsPath3D db "assets\animations\hall\patrons.bin",0
|
|
hallStreetLife3D AnimPack3D <>
|
|
hallStreetLifePath3D db "assets\animations\hall\street-life-v4.bin",0
|
|
hallRoomHD3D AnimPack3D <>
|
|
hallArchitecture3D AnimPack3D <>
|
|
hallArchitectureHD3D AnimPack3D <>
|
|
hallDecorPack3D AnimPack3D <>
|
|
hallRoomHDPath3D db "assets\animations\hall\room-materials-hd.bin",0
|
|
hallArchitecturePath3D db "assets\animations\hall\architecture.bin",0
|
|
hallArchitectureHDPath3D db "assets\animations\hall\architecture-hd.bin",0
|
|
hallDecorPath3D db "assets\animations\hall\architecture-props.bin",0
|
|
patronClock3D dd 0
|
|
HALL_PATRON_COUNT equ 16
|
|
hallGuests3D CityProp3D <18*FP_1,18*FP_1,FP_1*3/5,FP_1*6/5,0,OFFSET hallPatrons3D>
|
|
CityProp3D <22*FP_1,20*FP_1,FP_1*3/5,FP_1*6/5,4,OFFSET hallPatrons3D>
|
|
CityProp3D <3*FP_1,27*FP_1+FP_HALF,FP_1*3/5,FP_1*4/5,8,OFFSET hallPatrons3D>
|
|
CityProp3D <10*FP_1,27*FP_1+FP_HALF,FP_1*3/5,FP_1*4/5,10,OFFSET hallPatrons3D>
|
|
CityProp3D <13*FP_1+FP_HALF,8*FP_1+FP_HALF,FP_1*3/5,FP_1*6/5,12,OFFSET hallPatrons3D>
|
|
CityProp3D <21*FP_1+FP_HALF,8*FP_1+FP_HALF,FP_1*3/5,FP_1*6/5,13,OFFSET hallPatrons3D>
|
|
CityProp3D <5*FP_1,15*FP_1,FP_1*3/5,FP_1*6/5,12,OFFSET hallPatrons3D>
|
|
CityProp3D <10*FP_1,25*FP_1,FP_1*3/5,FP_1*6/5,13,OFFSET hallPatrons3D>
|
|
CityProp3D <4*FP_1,27*FP_1,2*FP_1,2*FP_1,14,OFFSET hallPatrons3D>
|
|
CityProp3D <9*FP_1,27*FP_1,2*FP_1,2*FP_1,14,OFFSET hallPatrons3D>
|
|
CityProp3D <4*FP_1,24*FP_1+FP_1*4/5,FP_1/2,FP_1*3/5,15,OFFSET hallPatrons3D>
|
|
CityProp3D <8*FP_1,24*FP_1+FP_1*4/5,FP_1/2,FP_1*3/5,15,OFFSET hallPatrons3D>
|
|
CityProp3D <11*FP_1+FP_HALF,8*FP_1+FP_HALF,FP_1*3/5,FP_1*4/5,8,OFFSET hallPatrons3D>
|
|
CityProp3D <19*FP_1+FP_HALF,8*FP_1+FP_HALF,FP_1*3/5,FP_1*4/5,10,OFFSET hallPatrons3D>
|
|
CityProp3D <23*FP_1+FP_HALF,8*FP_1+FP_HALF,FP_1*3/5,FP_1*4/5,8,OFFSET hallPatrons3D>
|
|
CityProp3D <15*FP_1+FP_HALF,10*FP_1+FP_HALF,FP_1*3/5,FP_1*4/5,10,OFFSET hallPatrons3D>
|
|
HALL_LIGHT_COUNT equ 6
|
|
hallLights3D CityProp3D <12*FP_1+FP_HALF,8*FP_1,FP_1*3/4,FP_1*13/20,0,OFFSET hallDecorPack3D,FP_1*37/20>
|
|
CityProp3D <16*FP_1+FP_HALF,10*FP_1,FP_1*3/4,FP_1*13/20,0,OFFSET hallDecorPack3D,FP_1*37/20>
|
|
CityProp3D <20*FP_1+FP_HALF,8*FP_1,FP_1*3/4,FP_1*13/20,0,OFFSET hallDecorPack3D,FP_1*37/20>
|
|
CityProp3D <24*FP_1+FP_HALF,8*FP_1,FP_1*3/4,FP_1*13/20,0,OFFSET hallDecorPack3D,FP_1*37/20>
|
|
CityProp3D <6*FP_1,23*FP_1,FP_1*3/4,FP_1*13/20,0,OFFSET hallDecorPack3D,FP_1*37/20>
|
|
CityProp3D <9*FP_1,27*FP_1,FP_1*3/4,FP_1*13/20,0,OFFSET hallDecorPack3D,FP_1*37/20>
|
|
bunkerDisplay3D CityProp3D <19*FP_1,16*FP_1+FP_HALF,FP_1*6/5,FP_1*6/5,3,OFFSET hallDecorPack3D>
|
|
bunkerDesk3D CityProp3D <15*FP_1,14*FP_1+FP_HALF,FP_1*3/2,FP_1,4,OFFSET hallDecorPack3D,FP_1/2>
|
|
hallLevel3D dd 0
|
|
hallBartender3D AnimPack3D <>
|
|
hallProps3D AnimPack3D <>
|
|
hallDrink3D AnimPack3D <>
|
|
hallBartenderPath3D db "assets\animations\hall\bartender-v4.bin",0
|
|
hallPropsPath3D db "assets\animations\hall\props.bin",0
|
|
hallDrinkPath3D db "assets\animations\hall\drink-v4.bin",0
|
|
hallLegacyPack3D AnimPack3D <314D4E41h,128,128,1,128*128*4,0>
|
|
hallSpriteTemp3D CityProp3D <>
|
|
; Tight sprite bounds: table height includes its legs; cabinets are not table-sized.
|
|
hallSpriteWidths3D dd 3 dup(FP_1*3/5),4 dup(FP_1*8/5),2 dup(FP_1),3 dup(FP_1*8/5),FP_1,FP_1*8/5,FP_1,FP_1,FP_1,5 dup(FP_1*8/5)
|
|
hallSpriteHeights3D dd 3 dup(FP_1*6/5),4 dup(FP_1*17/20),2 dup(FP_1*3/2),3 dup(FP_1*17/20),FP_1*9/5,FP_1*17/20,FP_1,FP_1*3/2,FP_1*3/2,5 dup(FP_1*17/20)
|
|
hallCardFurniture3D AnimPack3D <>
|
|
hallWheelFurniture3D AnimPack3D <>
|
|
hallBackFurniture3D AnimPack3D <>
|
|
hallSkillFurniture3D AnimPack3D <>
|
|
hallChairFurniture3D AnimPack3D <>
|
|
hallLampFurniture3D AnimPack3D <>
|
|
hallRopeFurniture3D AnimPack3D <>
|
|
hallSlotFurniture3D AnimPack3D <>
|
|
hallCardFurniturePath3D db "assets\animations\hall\card-table-v5.bin",0
|
|
hallWheelFurniturePath3D db "assets\animations\hall\roulette-table-v5.bin",0
|
|
hallBackFurniturePath3D db "assets\animations\hall\backroom-table-v5.bin",0
|
|
hallSkillFurniturePath3D db "assets\animations\hall\skill-cabinet-v5.bin",0
|
|
hallChairFurniturePath3D db "assets\animations\hall\lounge-chair-v5.bin",0
|
|
hallLampFurniturePath3D db "assets\animations\hall\lamp-table-v5.bin",0
|
|
hallRopeFurniturePath3D db "assets\animations\hall\velvet-rope-v5.bin",0
|
|
hallSlotFurniturePath3D db "assets\animations\hall\slot-cabinets-v5.bin",0
|
|
; Station order matches InitializeCasinoSprites3D; zero retains animated legacy art.
|
|
hallStationPacks3D dd 3 dup(0),OFFSET hallCardFurniture3D,OFFSET hallWheelFurniture3D
|
|
dd 2 dup(OFFSET hallCardFurniture3D),2 dup(OFFSET hallSlotFurniture3D)
|
|
dd 3 dup(OFFSET hallCardFurniture3D),OFFSET hallSkillFurniture3D,OFFSET hallCardFurniture3D
|
|
dd 3 dup(0),OFFSET hallBackFurniture3D,OFFSET hallCardFurniture3D
|
|
dd 2 dup(OFFSET hallBackFurniture3D),0
|
|
HALL_DECOR_COUNT equ 12
|
|
hallLoungeDecor3D CityProp3D <13*FP_1,19*FP_1,FP_1*3/4,FP_1,0,OFFSET hallChairFurniture3D>
|
|
CityProp3D <14*FP_1,19*FP_1,FP_1*3/5,FP_1*7/10,0,OFFSET hallLampFurniture3D>
|
|
CityProp3D <15*FP_1,19*FP_1,FP_1*3/4,FP_1,0,OFFSET hallChairFurniture3D>
|
|
CityProp3D <27*FP_1,18*FP_1,FP_1*3/4,FP_1,0,OFFSET hallChairFurniture3D>
|
|
CityProp3D <28*FP_1,18*FP_1,FP_1*3/5,FP_1*7/10,0,OFFSET hallLampFurniture3D>
|
|
CityProp3D <29*FP_1,18*FP_1,FP_1*3/4,FP_1,0,OFFSET hallChairFurniture3D>
|
|
CityProp3D <3*FP_1,18*FP_1,FP_1*3/4,FP_1,0,OFFSET hallChairFurniture3D>
|
|
CityProp3D <4*FP_1,18*FP_1,FP_1*3/5,FP_1*7/10,0,OFFSET hallLampFurniture3D>
|
|
CityProp3D <5*FP_1,18*FP_1,FP_1*3/4,FP_1,0,OFFSET hallChairFurniture3D>
|
|
CityProp3D <6*FP_1,6*FP_1,FP_1*9/5,FP_1*7/10,0,OFFSET hallRopeFurniture3D>
|
|
CityProp3D <26*FP_1,6*FP_1,FP_1*9/5,FP_1*7/10,0,OFFSET hallRopeFurniture3D>
|
|
CityProp3D <28*FP_1,22*FP_1,FP_1*9/5,FP_1*7/10,0,OFFSET hallRopeFurniture3D>
|
|
HALL_PROP_COUNT equ 19
|
|
hallObjects3D CityProp3D <12*FP_1+FP_HALF,7*FP_1,FP_1*3/5,FP_1*6/5,0,OFFSET hallProps3D>
|
|
CityProp3D <16*FP_1+FP_HALF,9*FP_1,FP_1*3/5,FP_1*6/5,2,OFFSET hallProps3D>
|
|
CityProp3D <20*FP_1+FP_HALF,7*FP_1,FP_1*3/5,FP_1*6/5,1,OFFSET hallProps3D>
|
|
CityProp3D <24*FP_1+FP_HALF,7*FP_1,FP_1*3/5,FP_1*6/5,0,OFFSET hallProps3D>
|
|
CityProp3D <6*FP_1,22*FP_1+FP_HALF,FP_1,FP_1,0,OFFSET hallBartender3D,FP_1*9/20>
|
|
CityProp3D <27*FP_1,25*FP_1,FP_1*5/2,FP_1,4,OFFSET hallProps3D>
|
|
CityProp3D <28*FP_1+FP_HALF,10*FP_1+FP_HALF,FP_1*3/2,FP_1*9/5,5,OFFSET hallProps3D>
|
|
CityProp3D <3*FP_1,4*FP_1,FP_1*5/2,FP_1,6,OFFSET hallProps3D>
|
|
CityProp3D <27*FP_1,4*FP_1,FP_1*5/2,FP_1,6,OFFSET hallProps3D>
|
|
CityProp3D <3*FP_1,29*FP_1,FP_1*5/2,FP_1,6,OFFSET hallProps3D>
|
|
CityProp3D <10*FP_1,29*FP_1,FP_1*5/2,FP_1,6,OFFSET hallProps3D>
|
|
CityProp3D <11*FP_1+FP_HALF,11*FP_1+FP_HALF,FP_1/2,FP_1*5/2,7,OFFSET hallProps3D>
|
|
CityProp3D <24*FP_1+FP_HALF,11*FP_1+FP_HALF,FP_1/2,FP_1*5/2,7,OFFSET hallProps3D>
|
|
CityProp3D <11*FP_1+FP_HALF,19*FP_1+FP_HALF,FP_1/2,FP_1*5/2,7,OFFSET hallProps3D>
|
|
CityProp3D <24*FP_1+FP_HALF,19*FP_1+FP_HALF,FP_1/2,FP_1*5/2,7,OFFSET hallProps3D>
|
|
CityProp3D <16*FP_1,2*FP_1+FP_HALF,10*FP_1,FP_1*5/2,8,OFFSET hallProps3D>
|
|
CityProp3D <6*FP_1,13*FP_1,FP_1*3/5,FP_1*6/5,0,OFFSET hallProps3D>
|
|
CityProp3D <10*FP_1,14*FP_1,FP_1*3/5,FP_1*6/5,1,OFFSET hallProps3D>
|
|
CityProp3D <14*FP_1,14*FP_1,FP_1*3/5,FP_1*6/5,2,OFFSET hallProps3D>
|
|
bunkerMerchant3D CityProp3D <16*FP_1,13*FP_1,FP_1*3/2,FP_1*6/5,0,OFFSET merchantPack3D,FP_1/8>
|
|
bunkerDoor3D CityProp3D <16*FP_1,27*FP_1,FP_1*3/2,FP_1*7/5,5,OFFSET hallProps3D,FP_1>
|
|
cityGuardLeft3D CityProp3D <21*FP_1+FP_1*4/5,8*FP_1+FP_HALF,FP_1*17/20,FP_1*7/5,0,OFFSET guardPack3D>
|
|
cityGuardRight3D CityProp3D <23*FP_1+FP_1/5,8*FP_1+FP_HALF,FP_1*17/20,FP_1*7/5,0,OFFSET guardPack3D>
|
|
hallBarPrompt3D db 69,58,32,202,206,202,210,197,201,203,220,205,219,201,32,193,192,208,0
|
|
hallBunkerPrompt3D db 69,58,32,207,206,196,194,192,203,32,47,32,204,192,195,192,199,200,205,0
|
|
hallUpPrompt3D db 69,58,32,205,192,194,197,208,213,0
|
|
hallPoolPrompt3D db 69,58,32,193,200,203,220,223,208,196,0
|
|
barName3D db 193,192,208,32,209,210,192,208,206,195,206,32,195,206,208,206,196,192,0
|
|
barDrinks3D db 49,32,213,192,201,193,206,203,32,36,49,48,48,0
|
|
barDrinks23D db 50,32,202,206,202,210,197,201,203,220,32,36,50,48,48,0
|
|
barDrinks33D db 51,32,194,206,196,192,32,36,48,0
|
|
barPoor3D db 204,192,203,206,32,212,200,216,197,202,0
|
|
barMixText3D db 209,204,197,216,200,194,192,197,204,0
|
|
barDrinkText3D db 194,192,216,197,32,199,196,206,208,206,194,220,197,0
|
|
barTime3D dd 0
|
|
barPhase3D dd 0
|
|
barSelection3D dd 0
|
|
barPrice3D dd 100,200,0
|
|
barStrength3D dd 20000,35000,0
|
|
barIntoxication3D dd 0
|
|
stairsTime3D dd 0
|
|
stairsReturnX3D dd 0
|
|
stairsReturnY3D dd 0
|
|
stairsReturnAngle3D dd 0
|
|
include src_graphics\world_dressing_data.inc
|
|
include src_graphics\terminal_data.inc
|
|
include src_graphics\hall_expansion_data.inc
|
|
include src_graphics\cabaret_data.inc
|
|
.code
|