UpdateInteriorTravel3D PROTO UpdateInteriorEye3D PROTO UpdateStairHeight3D PROTO RenderWalkableStairs3D PROTO RenderUpperLounge3D PROTO RenderHallPortals3D PROTO CheckUpperInteractions3D PROTO InteriorDoorCanWalk3D PROTO :DWORD,:DWORD UpperCanWalk3D PROTO :DWORD,:DWORD ResolveUpperMaterial3D PROTO :DWORD InitUpperSurfaces3D PROTO DrawUpperGameTable3D PROTO :DWORD,:DWORD BeginWalkableStairs3D PROTO :DWORD,:DWORD RenderInteriorViews3D PROTO DrawInteriorView3D PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD TryUpperInteraction3D PROTO TryWalkUpperPortal3D PROTO UpdateUpperEffects3D PROTO ApplyUpperPortalGlow3D PROTO INTERACT_UPPER_LEFT equ 43 INTERACT_UPPER_RIGHT equ 44 ; stairRoute: 1=basement, 2=upper lounge. Direction is controlled by movement. .data stairRoute3D dd 0 basementDoorTarget3D dd 0 basementDoorOpen3D dd 0 interiorDoorClock3D dd -1 portalRendering3D dd 0 portalPixelsWritten3D dd 0 upperLeverMask3D dd 0 upperPortalReady3D dd 0 upperPortalEntered3D dd 0 upperEffectClock3D dd -1 upperLeverTime3D dd 0,0 upperGamesArt3D AnimPack3D <> upperPortalArt3D AnimPack3D <> upperLeverArt3D AnimPack3D <> upperBarArt3D AnimPack3D <> upperBrazierArt3D AnimPack3D <> upperGamesPath3D db "assets\animations\hall\upper-games-v2.bin",0 upperPortalPath3D db "assets\animations\hall\upper-portal-v3.bin",0 upperLeverPath3D db "assets\animations\hall\upper-levers-v3.bin",0 upperBarPath3D db "assets\animations\hall\upper-bar-v2.bin",0 upperBrazierPath3D db "assets\animations\hall\upper-braziers-v3.bin",0 upperLeftPrompt3D db 69,58,32,207,206,210,223,205,211,210,220,32,203,197,194,219,201,32,208,219,215,192,195,0 upperRightPrompt3D db 69,58,32,207,206,210,223,205,211,210,220,32,207,208,192,194,219,201,32,208,219,215,192,195,0 upperPortalPrompt3D db 69,58,32,194,206,201,210,200,32,194,32,193,192,216,205,222,32,192,196,192,0 upperPortalLocked3D db 205,211,198,205,206,32,207,206,210,223,205,211,210,220,32,206,193,192,32,208,219,215,192,195,192,0 upperPortal3D CityProp3D upperBrazier3D CityProp3D <0,FP_1*236/10,FP_1*55/100,FP_1*11/10,0,OFFSET upperBrazierArt3D> upperLever3D CityProp3D <0,FP_1*226/10,FP_1*45/100,FP_1*85/100,0,OFFSET upperLeverArt3D> upperStool3D CityProp3D <0,FP_1*157/10,FP_1*55/100,FP_1*9/10,1,OFFSET upperBarArt3D> upperSofa3D CityProp3D upperMaterialArt3D AnimPack3D <> upperMaterialPath3D db "assets\animations\hall\upper-materials-v1.bin",0 upperBarName3D db 205,206,215,205,206,201,32,193,192,208,32,34,199,192,210,204,197,205,200,197,34,0 upperStairPrompt3D db 203,197,209,210,205,200,214,192,32,205,192,32,194,210,206,208,206,201,32,221,210,192,198,0 upperExitPrompt3D db 203,197,209,210,205,200,214,192,32,194,32,195,203,192,194,205,219,201,32,199,192,203,0 upperBarTender3D CityProp3D <26*FP_1,14*FP_1,FP_1,FP_1,0,OFFSET hallBartender3D,FP_1*9/20> upperTable3D CityProp3D <8*FP_1,7*FP_1,FP_1*8/5,FP_1*17/20,0,OFFSET hallBackFurniture3D> upperChair3D CityProp3D <8*FP_1,9*FP_1,FP_1*3/4,FP_1,0,OFFSET hallChairFurniture3D> upperStationX3D dd 7*FP_1,12*FP_1,9*FP_1 upperStationY3D dd 17*FP_1,18*FP_1,FP_1*237/10 upperDealer3D CityProp3D <0,0,FP_1*3/5,FP_1*7/5,0,OFFSET hallProps3D> upperGuest3D CityProp3D <0,0,FP_1*3/5,FP_1*6/5,5,0> upperGuestX3D dd FP_1*48/10,FP_1*64/10,FP_1*143/10 upperGuestY3D dd FP_1*231/10,FP_1*231/10,FP_1*231/10 upperGuestFrame3D dd 11,35,5 .data? upperFeltPixels3D dd 1024 dup(?) upperKeyPixels3D dd 1024 dup(?) upperGlowPixels3D dd 1024 dup(?) portalClipTop3D dd SCREEN_W dup(?) portalClipBottom3D dd SCREEN_W dup(?) portalClipDepth3D dd SCREEN_W dup(?) portalSourcePixels3D dd SCREEN_SIZE dup(?) portalSourceDepth3D dd SCREEN_SIZE dup(?) portalSourceWalls3D dd SCREEN_W dup(?) .code