Files
2025-09-29 00:52:08 +02:00

76 lines
2.5 KiB
XML
Executable File

////////////////////////////////////////////////////////////////////
// //
// SCRIPT NAME : Darts_Board.sch //
// AUTHOR : Lino Manansala //
// DESCRIPTION : Board Defs //
// //
//////////////////////////////////////////////////////////////
USING "globals.sch"
USING "commands_misc.sch"
USING "commands_object.sch"
USING "commands_entity.sch"
USING "commands_streaming.sch"
USING "Darts_Args.sch"
//MODEL_NAMES modelDartBoard = PROP_DART_BD_01
MODEL_NAMES modelDartBoard = PROP_DART_BD_CAB_01
//Darts Board
STRUCT DARTS_BOARD
OBJECT_INDEX oiDartBoard
VECTOR vDartBoard
FLOAT fBoardHeading
ENDSTRUCT
//VECTOR vLostHideoutDartBoard = << 989.097, -100.356, 75.579 >>
//FLOAT fLostHideoutDartBoardHeading = 222.400
INT iScoreForSection[21]
//offset of the reticule from the object, to get as close to the board as possible
FLOAT fDartBoardOriginOffset = 0.063 //0.08 //0.18
//offset of the center of the object to the center of the board
VECTOR exactCentreOfBoardXZOffset = << -0.0035, 0.0, -0.001 >>
PROC INIT_BOARD(DARTS_BOARD & DartsBoard, DARTS_ARGS & DartsArgs)
DartsBoard.vDartBoard = DartsArgs.vDartBoard
DartsBoard.fBoardHeading = DartsArgs.fBoardHeading
IF DOES_ENTITY_EXIST(DartsArgs.oiDartBoard)
DartsBoard.oiDartBoard = DartsArgs.oiDartBoard
ENDIF
// The scores on the dartboard, running clockwise from the 20
iScoreForSection[0] = 20 iScoreForSection[10] = 3
iScoreForSection[1] = 1 iScoreForSection[11] = 19
iScoreForSection[2] = 18 iScoreForSection[12] = 7
iScoreForSection[3] = 4 iScoreForSection[13] = 16
iScoreForSection[4] = 13 iScoreForSection[14] = 8
iScoreForSection[5] = 6 iScoreForSection[15] = 11
iScoreForSection[6] = 10 iScoreForSection[16] = 14
iScoreForSection[7] = 15 iScoreForSection[17] = 9
iScoreForSection[8] = 2 iScoreForSection[18] = 12
iScoreForSection[9] = 17 iScoreForSection[19] = 5
iScoreForSection[20] = 20
ENDPROC
FUNC VECTOR GET_DB_VECTOR(DARTS_BOARD& DB)
RETURN DB.vDartBoard
ENDFUNC
PROC SET_DB_VECTOR(DARTS_BOARD& DB, VECTOR vDartBoard)
DB.vDartBoard = vDartboard
ENDPROC
FUNC FLOAT GET_DB_HEADING(DARTS_BOARD& DB)
RETURN DB.fBoardHeading
ENDFUNC
PROC SET_DB_HEADING(DARTS_BOARD& DB, FLOAT fHeading)
DB.fBoardHeading = fHeading
ENDPROC