KAZIK/src_graphics/bowling_data.inc
Artvasil09 3150d217b5 feat: add playable bowling match mode and calibrate rooftop character scaling
- Add playable ten-frame bowling against bot with two timing gates (direction/power) and fixed-step physics

- Add lane match interaction, shaded ball surface, pin collisions, bonus balls, and live score sheet

- Scale rooftop terrace visitor sprites to eye level according to the taller rooftop standing eye height

- Resolve mode and interaction ID conflicts with Hell FPS (MODE_BOWLING=30, INTERACT_BOWL_PLAY=56)

- Update launcher hash, installer package, and expansion regression test suites
2026-11-01 22:50:33 +03:00

99 lines
3.3 KiB
PHP

HALL_BOWLING equ 5
INTERACT_BOWL_SEAT equ 53
INTERACT_BOWL_WATCH equ 54
BW_MATERIAL equ 230
BW_LAST_MATERIAL equ 253
BW_LANES equ 8
BW_LANE_STEP equ FP_1*19/10
InitBowling3D PROTO
LoadBowling3D PROTO
FreeBowling3D PROTO
ResolveBowlingSurface3D PROTO :DWORD
UpdateBowling3D PROTO
BowlingTravel3D PROTO
BowlingEye3D PROTO
BowlingCanWalk3D PROTO :DWORD,:DWORD
CheckBowlingInteractions3D PROTO
TryBowlingInteraction3D PROTO
RenderBowling3D PROTO
RenderBowlingEntrance3D PROTO
RenderBowlingPlanes3D PROTO
RenderBowlingLanes3D PROTO
RenderBowlingVisitors3D PROTO
DrawBowlingPin3D PROTO :DWORD,:DWORD,:DWORD
DrawBowlingBall3D PROTO :DWORD,:DWORD,:DWORD
BowlingImpact3D PROTO :DWORD
BowlingRegisterRoll3D PROTO :DWORD,:DWORD
BowlingScore3D PROTO :DWORD
BowlingMonitorText3D PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD
RefreshBowlingMonitors3D PROTO
.data
bwArt3D AnimPack3D <>
bwMotionArt3D AnimPack3D <>
bwSeatedArt3D AnimPack3D <>
bwArtPath3D db "assets\animations\bowling\materials-v1.bin",0
bwMotionPath3D db "assets\animations\bowling\bowlers-v1.bin",0
bwSeatedPath3D db "assets\animations\bowling\seated-v1.bin",0
bwEntrancePrompt3D db 193,206,211,203,200,205,195,0
bwExitPrompt3D db 202,192,199,200,205,206,0
bwSeatPrompt3D db 207,208,200,209,197,209,210,220,0
bwStandPrompt3D db 194,209,210,192,210,220,0
bwWatchPrompt3D db 205,192,193,203,222,196,192,210,220,32,199,192,32,200,195,208,206,201,0
bwBarName3D db 193,192,208,32,193,206,211,203,200,205,195,192,0
bwLaneWord3D db "LANE ",0
bwPlayerA3D db "A",0
bwPlayerB3D db "B",0
bwFreeText3D db "FREE",0
bwFrameText3D db "FRAME",0
bwPhaseTexts3D dd OFFSET bwRestText3D,OFFSET bwPickText3D,OFFSET bwThrowText3D
dd OFFSET bwRollText3D,OFFSET bwSweepText3D,OFFSET bwReturnText3D,OFFSET bwRestText3D
bwRestText3D db "NEXT PLAYER",0
bwPickText3D db "READY",0
bwThrowText3D db "APPROACH",0
bwRollText3D db "BALL IN PLAY",0
bwSweepText3D db "PINSETTER",0
bwReturnText3D db "BALL RETURN",0
bwSignText3D db "BOWLING",0
bwLoungeText3D db "LOUNGE",0
bwEightText3D db "8 LANES",0
bwClock3D dd -1
bwMonitorClock3D dd -1
bwRng3D dd 312871
bwSeat3D dd 0
bwSeatTarget3D dd 0
bwWatchLane3D dd 0
bwReturnX3D dd 0
bwReturnY3D dd 0
bwReturnAngle3D dd 0
bwBusy3D dd 1,0,0,1,0,0,1,0
bwCharacterIds3D dd 0,1,6,7,8,9,2,3,6,7,8,9,4,5,6,7
bwState3D dd BW_LANES dup(0)
bwTime3D dd BW_LANES dup(0)
bwTurn3D dd BW_LANES dup(0)
bwBall3D dd BW_LANES dup(0)
bwFirstHit3D dd BW_LANES dup(0)
bwRack3D dd BW_LANES dup(1023)
bwHit3D dd BW_LANES dup(0)
bwAim3D dd BW_LANES dup(0)
bwNewRack3D dd BW_LANES dup(0)
bwFrameDone3D dd BW_LANES dup(0)
bwFrames3D dd 16 dup(0)
bwRollCount3D dd 16 dup(0)
bwScores3D dd 16 dup(0)
bwRolls3D dd 16*24 dup(0)
bwPinX3D dd 0,-FP_1*16/100,FP_1*16/100,-FP_1*32/100,0,FP_1*32/100
dd -FP_1*48/100,-FP_1*16/100,FP_1*16/100,FP_1*48/100
bwPinY3D dd FP_1*47/10,FP_1*44/10,FP_1*44/10
dd FP_1*41/10,FP_1*41/10,FP_1*41/10
dd FP_1*38/10,FP_1*38/10,FP_1*38/10,FP_1*38/10
bwVisitorX3D dd 22*FP_1,27*FP_1,25*FP_1,29*FP_1,25*FP_1,27*FP_1,29*FP_1
bwVisitorY3D dd FP_1*134/10,FP_1*194/10,FP_1*68/10,FP_1*68/10
dd FP_1*68/10,FP_1*68/10,FP_1*68/10
bwActor3D CityProp3D <0,0,FP_1*19/10,FP_1*19/10,0,OFFSET bwMotionArt3D>
bwSmallActor3D CityProp3D <0,0,FP_1*135/100,FP_1*135/100,0,OFFSET bwSeatedArt3D>
.data?
bwMonitors3D dd BW_LANES*128*64 dup(?)
bwSignPixels3D dd 128*64 dup(?)
.code
include src_graphics\bowling_layout.inc
include src_graphics\bowling_play_data.inc