; All game and camera logic is native MASM; offline tooling only packs artwork. MODE_DARTS equ 27 INTERACT_DARTS equ 47 DT_AIM equ 0 DT_RELEASE equ 1 DT_FLIGHT equ 2 DT_IMPACT equ 3 DT_RETURN equ 4 DT_WIN equ 5 DT_WALL equ 2700 DT_FOCAL equ 950 DT_THROW_MS equ 1200 BeginDarts3D PROTO HandleDarts3D PROTO RenderDarts3D PROTO LoadDarts3D PROTO FreeDarts3D PROTO ResetDarts3D PROTO DartsAim3D PROTO ThrowDarts3D PROTO DartsCamera3D PROTO DartsPath3D PROTO :DWORD PrepareDartsRays3D PROTO DrawDartsTrail3D PROTO DrawDartsLine3D PROTO :SDWORD,:SDWORD,:SDWORD,:SDWORD,:DWORD DartsBotAim3D PROTO DartsRecordScore3D PROTO UpdateDartsWall3D PROTO DartsWallText3D PROTO :DWORD,:DWORD,:DWORD DrawDartsScoreboard3D PROTO DrawDartsProps3D PROTO DrawDartsArm3D PROTO :DWORD,:SDWORD,:SDWORD DrawDartsReticle3D PROTO :SDWORD,:SDWORD DartsScore3D PROTO :SDWORD,:SDWORD SettleDarts3D PROTO DrawDartsRoom3D PROTO DrawDartsModel3D PROTO :SDWORD,:SDWORD,:SDWORD DartsProject3D PROTO :SDWORD,:SDWORD,:SDWORD DrawHallDarts3D PROTO ResolveDartsSurface3D PROTO .data dtBoard3D AnimPack3D <> dtHands3D AnimPack3D <> dtDart3D AnimPack3D <> dtWall3D AnimPack3D <> dtChair3D AnimPack3D <> dtTable3D AnimPack3D <> dtRoom3D AnimPack3D <> dtBoardPath db "assets\animations\darts\board-v2.bin",0 dtHandsPath db "assets\animations\darts\arm-throw-v3.bin",0 dtDartPath db "assets\animations\darts\dart-views-v1.bin",0 dtWallPath db "assets\animations\darts\lounge-wall-v1.bin",0 dtChairPath db "assets\animations\hall\lounge-chair-v5.bin",0 dtTablePath db "assets\animations\hall\lamp-table-v5.bin",0 dtRoomPath db "assets\animations\hall\room-materials-hd.bin",0 dtState3D dd DT_AIM dtTimer3D dd 0 dtClock3D dd 0 dtRemaining3D dd 500 dtVisitStart3D dd 500 dtScores3D dd 500,500 dtActor3D dd 0 dtWinner3D dd 0 dtBotTimer3D dd 0 dtBotPrepared3D dd 0 dtBotAimX3D dd 0 dtBotAimY3D dd 0 dtBotDesired3D dd 60 dtCursorX3D dd 320*256 dtCursorY3D dd 214*256 dtScoreOpen3D dd 0 dtHistoryRows3D dd 1 dtHistory3D dd 64 dup(0) dtWallDirty3D dd 1 dtVisit3D dd 1 dtCount3D dd 0 dtThrows3D dd 0 dtLast3D dd 0 dtMultiplier3D dd 0 dtBust3D dd 0 dtError3D dd 0 dtHolding3D dd 0 dtHoldTime3D dd 0 dtMouseReleased3D dd 0 dtAimX3D dd 0 dtAimY3D dd 0 dtHitX3D dd 0 dtHitY3D dd 0 dtMarkX3D dd 3 dup(0) dtMarkY3D dd 3 dup(0) dtMarkScore3D dd 3 dup(0) dtShotX3D dd 0 dtShotY3D dd 0 dtShotZ3D dd 0 dtCamX3D dd 0 dtCamY3D dd 0 dtCamZ3D dd 0 dtLens3D dd DT_FOCAL dtYawSin3D dd 0 dtYawCos3D dd 65536 dtLookX3D dd 0 dtLookY3D dd 0 dtScreenX3D dd 320 dtScreenY3D dd 214 include src_graphics\darts_art.inc dtSector3D dd 20,1,18,4,13,6,10,15,2,17,3,19,7,16,8,11,14,9,12,5 dtAngleFactor3D REAL8 10430.37835047045 dtTitle db 196,192,208,210,209,32,53,48,48,0 dtYou db 194,219,0 dtBot db 204,192,202,209,0 dtYourTurn db 194,192,216,32,213,206,196,0 dtBotTurn db 213,206,196,32,204,192,202,209,192,0 dtYouWin db 194,219,32,207,206,193,197,196,200,203,200,0 dtBotWin db 204,192,202,209,32,207,206,193,197,196,200,203,0 dtScoreTitle db 209,215,197,210,32,204,192,210,215,192,0 ; Fixed wall-axis furniture planes: axis, fixed coordinate, range, bottom/top, pack. dtProps3D dd 0,2150,-1800,-1000,-1730,-380,OFFSET dtChair3D dd 1,1950,1050,1850,-1730,-380,OFFSET dtChair3D dd 1,1950,100,900,-1730,-380,OFFSET dtChair3D dd 1,1780,850,1200,-1730,-680,OFFSET dtTable3D dtThrow db 193,208,206,209,206,202,0 dtLeft db 206,209,210,192,203,206,209,220,0 dtVisit db 207,206,196,213,206,196,0 dtWin db 195,206,210,206,194,206,33,32,208,206,194,205,206,32,205,206,203,220,0 dtBust db 207,197,208,197,193,206,208,0 dtMiss db 204,200,204,206,0 dtNext db 196,192,203,220,216,197,0 dtAgain db 209,205,206,194,192,0 dtExit db 194,32,213,206,203,203,0 dtPrompt db 69,58,32,196,192,208,210,209,0 dtLoading db 205,197,32,211,196,192,203,206,209,220,32,199,192,195,208,211,199,200,210,220,32,196,192,208,210,209,0 dtHold db 203,202,204,0 dtBull db 66,85,76,76,0 dtDouble db 68,0 dtTriple db 84,0 dtSingle db 83,0 dtTarget db 214,197,203,220,0 dtReticleOffsets3D dd -3,0,-2,0,2,0,3,0,0,-3,0,-2,0,2,0,3,0,0 .data? dtRayX3D dd 640 dup(?) dtRayZ3D dd 640 dup(?) dtRayDepth3D dd 640 dup(?) dtRayU3D dd 640 dup(?) dtRayFront3D dd 640 dup(?) dtRayHitX3D dd 640 dup(?) .code