- Bowling feel: impulse contact solver, string pinsetter cycle, in-world lengthwise return rack and visible ball return lift - Ball weights: 4/5/6/7 kg selection with equal launch work physics, momentum balance, and projected picking - Audio: dedicated MCI channels with 7 synthesized waveaudio cues (release, rolling, impacts, applause, pinsetter, return) - First-person animations: 33-frame player underarm throw/follow-through sequence (player-underarm-v2) - Visitors: 10 persistent shared cast identities with exclusive reservations, activity transitions, and chair sit/rise animations - Tests & verification: comprehensive native regression test suites and updated documentation - Synchronize binaries and update launcher hash to 536E23BED4055562BC63871826FF44FFED037923A9BE8E0F591131DB4FBD104B
196 lines
5.7 KiB
PHP
196 lines
5.7 KiB
PHP
MODE_BOWLING equ 30
|
|
INTERACT_BOWL_PLAY equ 56
|
|
BP_DIRECTION equ 0
|
|
BP_POWER equ 1
|
|
BP_RELEASE equ 2
|
|
BP_ROLL equ 3
|
|
BP_SETTLE equ 4
|
|
BP_BOT equ 5
|
|
BP_FINISHED equ 6
|
|
BP_RESET equ 7
|
|
BP_RETURN equ 8
|
|
BP_SELECT_BALL equ 9
|
|
BP_RELEASE_MS equ 700
|
|
BP_RESET_MS equ 5200
|
|
BP_RETURN_MS equ 2800
|
|
BP_BODY_COUNT equ 11
|
|
BP_BALL_BODY equ 10
|
|
BP_PIN_GRAMS equ 1600
|
|
PoolSqrt3D PROTO :DWORD
|
|
BowlingPlayContact3D PROTO :DWORD,:DWORD
|
|
BowlingPlayKick3D PROTO :DWORD,:DWORD,:DWORD
|
|
NormalizeBowlingPinAxis3D PROTO :DWORD
|
|
BowlingPlayReady3D PROTO
|
|
BowlingPlayTether3D PROTO :DWORD
|
|
BowlingPlayDeckBounds3D PROTO :DWORD
|
|
BowlingRollGlyph3D PROTO :DWORD,:DWORD,:DWORD
|
|
BowlingAudioOpen3D PROTO
|
|
BowlingAudioClose3D PROTO
|
|
BowlingAudioUpdate3D PROTO
|
|
DrawBowlingPlayerHand3D PROTO
|
|
RenderBowlingReactions3D PROTO
|
|
RenderBowlingPinsetter3D PROTO
|
|
BowlingPinsetterPose3D PROTO :DWORD
|
|
BowlingPinsetterEase3D PROTO :DWORD,:DWORD
|
|
BowlingPinsetterGate3D PROTO
|
|
CompleteBowlingRoll3D PROTO
|
|
BowlingReturnCamera3D PROTO :DWORD
|
|
BowlingReturnBallPose3D PROTO
|
|
RenderBowlingReturnMachine3D PROTO :DWORD
|
|
RenderBowlingReturnedBall3D PROTO
|
|
BeginBowlingPlay3D PROTO :DWORD
|
|
LeaveBowlingPlay3D PROTO
|
|
ResetBowlingPlay3D PROTO
|
|
BowlingPlayStartAim3D PROTO
|
|
HandleBowlingPlay3D PROTO
|
|
RenderBowlingPlay3D PROTO
|
|
BowlingPlayRack3D PROTO
|
|
BowlingPlayLaunch3D PROTO
|
|
BowlingPlayStep3D PROTO
|
|
BowlingPlayFinishRoll3D PROTO
|
|
BowlingPlayNext3D PROTO
|
|
BowlingPlayHit3D PROTO :DWORD,:DWORD,:DWORD
|
|
DrawBowlingPlayPin3D PROTO :DWORD,:DWORD
|
|
BowlingFrameTotal3D PROTO :DWORD,:DWORD
|
|
DrawBowlingPlayScores3D PROTO
|
|
InitBowlingBallSurface3D PROTO
|
|
InitBowlingSetterSurface3D PROTO
|
|
DrawBowlingGaugeLine3D PROTO :DWORD,:DWORD,:DWORD,:DWORD
|
|
BowlingApplyBallMass3D PROTO
|
|
HandleBowlingWeight3D PROTO :DWORD
|
|
DrawBowlingWeight3D PROTO
|
|
BowlingBallMaterial3D PROTO :DWORD
|
|
BowlingRackCamera3D PROTO
|
|
RenderBowlingBallRack3D PROTO :DWORD,:DWORD
|
|
BowlingRackScreen3D PROTO :DWORD
|
|
BowlingTintBallPixel3D PROTO :DWORD,:DWORD
|
|
BowlingTintHand3D PROTO :DWORD,:DWORD
|
|
.data
|
|
bpActive3D dd 0
|
|
bpLane3D dd 1
|
|
bpTarget3D dd 1
|
|
bpState3D dd BP_DIRECTION
|
|
bpClock3D dd 0
|
|
bpTime3D dd 0
|
|
bpAim3D dd 0
|
|
bpPower3D dd 50
|
|
bpLockedAim3D dd 0
|
|
bpLockedPower3D dd 50
|
|
bpWeightKg3D dd 6
|
|
bpBotWeightKg3D dd 6
|
|
bpShotWeightKg3D dd 6
|
|
bpBallGrams3D dd 6000
|
|
bpLaunchSpeed3D dd 0
|
|
bpReferenceKg3D dd 6
|
|
bpLaneDistance3D dd FP_1*193/10
|
|
bpTickMs3D dd 16
|
|
bpSecondMs3D dd 1000
|
|
bpRackHitX3D dd 4 dup(0)
|
|
bpRackHitY3D dd 4 dup(0)
|
|
bpRackHitRadius3D dd 4 dup(0)
|
|
bpRackHandFrame3D dd -1
|
|
bpRackHandKg3D dd -1
|
|
bpTintedHand3D AnimPack3D <>
|
|
bpBallMaterials3D dd 255,256,253,257
|
|
bpBallColors3D dd 0057C78Ch,00D26B65h,005B8DE8h,00D8AB55h
|
|
bpLast3D dd 0
|
|
bpLastKind3D dd 0
|
|
bpGutter3D dd 0
|
|
bpAccumulator3D dd 0
|
|
bpScoreOpen3D dd 0
|
|
bpBallX3D dd 0
|
|
bpBallY3D dd 0
|
|
bpBallVX3D dd 0
|
|
bpBallVY3D dd 0
|
|
bpHitMask3D dd 0
|
|
; Inverse masses are Q16, normalized to a 1600-gram pin. Last body is the ball.
|
|
bpPinX3D dd BP_BODY_COUNT dup(0)
|
|
bpPinY3D dd BP_BODY_COUNT dup(0)
|
|
bpPinVX3D dd BP_BODY_COUNT dup(0)
|
|
bpPinVY3D dd BP_BODY_COUNT dup(0)
|
|
bpInvMass3D dd 10 dup(FP_1),BP_PIN_GRAMS*FP_1/6000
|
|
bpRadius3D dd 10 dup(24),31
|
|
bpPinTilt3D dd 10 dup(0)
|
|
bpPinTiltV3D dd 10 dup(0)
|
|
bpPinAxisX3D dd 10 dup(0)
|
|
bpPinAxisY3D dd 10 dup(-FP_1)
|
|
bpPinSpin3D dd 10 dup(0)
|
|
bpPinContactTick3D dd 10 dup(0)
|
|
bpPhysicsTicks3D dd 0
|
|
bpEndTicks3D dd 0
|
|
bpImpactEnergy3D dd 0
|
|
bpImpactCooldown3D dd 0
|
|
bpReaction3D dd 0
|
|
bpReactionTime3D dd 0
|
|
bpAudioReady3D dd 0
|
|
bpAudioRolling3D dd 0
|
|
bpAudioReturning3D dd 0
|
|
bpAudioReleased3D dd 0
|
|
bpAudioVolume3D dd -1
|
|
bpHandArt3D AnimPack3D <>
|
|
bpHandPath3D db "assets\animations\bowling\player-underarm-v2.bin",0
|
|
bpGlyph3D db 0,0
|
|
bpPinSectionHeight3D dd FP_1*14/100,FP_1*27/100,FP_1*285/1000,FP_1*35/100
|
|
bpPinSectionRadius3D dd FP_1*90/1000,FP_1*37/1000,FP_1*39/1000,FP_1*55/1000
|
|
bpPinSectionLength3D dd FP_1*145/1000,FP_1*65/1000,FP_1*16/1000,FP_1*65/1000
|
|
bpPinSectionMaterial3D dd 239,239,240,239
|
|
bpRenderNX3D dd 0
|
|
bpRenderNY3D dd 0
|
|
bpRenderNZ3D dd FP_1
|
|
bpRenderUX3D dd FP_1
|
|
bpRenderUY3D dd 0
|
|
bpRenderVX3D dd 0
|
|
bpRenderVY3D dd FP_1
|
|
bpRenderVZ3D dd 0
|
|
bpVisualPinX3D dd 0
|
|
bpVisualPinY3D dd 0
|
|
bpVisualPinTilt3D dd 0
|
|
bpVisualPinLift3D dd 0
|
|
bpAfterReturn3D dd BP_DIRECTION
|
|
bpReturnedX3D dd 0
|
|
bpReturnedY3D dd 0
|
|
bpReturnedZ3D dd 0
|
|
bpReturnedPhase3D dd 0
|
|
include src_graphics\bowling_audio_data.inc
|
|
bpCentre3D dd 0
|
|
bpHomeX3D dd 0
|
|
bpHomeY3D dd 0
|
|
bpHomeAngle3D dd 0
|
|
bpText3D db 24 dup(0)
|
|
bpMonitorTexts3D dd OFFSET bpDirectionText,OFFSET bpPowerText,OFFSET bpRollText,OFFSET bpRollText
|
|
dd OFFSET bpResultText,OFFSET bpBot,OFFSET bpScoreText,OFFSET bpResetText,OFFSET bpReturnText,OFFSET bpSelectBallText
|
|
.data?
|
|
bpBallSurface3D dd 4*64*64 dup(?)
|
|
bpTintedHandPixels3D dd 256*256 dup(?)
|
|
bpSetterSurface3D dd 64*64 dup(?)
|
|
.data
|
|
bpPlayPrompt db 200,195,208,192,210,220,32,194,32,193,206,211,203,200,205,195,0
|
|
bpTitle db 193,206,211,203,200,205,195,0
|
|
bpYou db 194,219,0
|
|
bpBot db 204,192,202,209,0
|
|
bpDirectionText db 205,192,207,208,192,194,203,197,205,200,197,0
|
|
bpPowerText db 209,200,203,192,0
|
|
bpRollText db 193,208,206,209,206,202,0
|
|
bpResultText db 209,193,200,210,206,0
|
|
bpWinText db 194,219,32,207,206,193,197,196,200,203,200,0
|
|
bpLoseText db 207,206,193,197,196,200,203,32,204,192,202,209,0
|
|
bpDrawText db 205,200,215,220,223,0
|
|
bpAgainText db 209,205,206,194,192,0
|
|
bpExitText db 194,219,201,210,200,0
|
|
bpFrameText db 212,208,197,201,204,0
|
|
bpScoreText db 209,215,168,210,0
|
|
bpGutterText db 198,197,203,206,193,0
|
|
bpStrikeText db 209,210,208,192,201,202,0
|
|
bpSpareText db 209,207,221,208,0
|
|
bpResetText db 211,209,210,192,205,206,194,202,192,0
|
|
bpReturnText db 194,206,199,194,208,192,210,32,216,192,208,192,0
|
|
bpKilogramsText db ' ',202,195,0
|
|
bpKg4Text db '4 ',202,195,0
|
|
bpKg5Text db '5 ',202,195,0
|
|
bpKg6Text db '6 ',202,195,0
|
|
bpKg7Text db '7 ',202,195,0
|
|
bpWeightLabels3D dd OFFSET bpKg4Text,OFFSET bpKg5Text,OFFSET bpKg6Text,OFFSET bpKg7Text
|
|
bpSelectBallText db 194,219,193,206,208,32,216,192,208,192,0
|
|
bpTakeBallText db 194,199,223,210,220,0
|
|
bpChangeBallText db 216,192,208,0
|
|
.code
|