229 lines
8.0 KiB
Python
Executable File
229 lines
8.0 KiB
Python
Executable File
//////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// SCRIPT NAME : line_activation_test.sc //
|
|
// AUTHOR : Kenneth Ross //
|
|
// DESCRIPTION : Used to setup line activation locates. Displays //
|
|
// locate outline and spheres when player activates. //
|
|
// //
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
USING "buildtype.sch"
|
|
|
|
#IF IS_FINAL_BUILD
|
|
SCRIPT
|
|
ENDSCRIPT
|
|
#ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
CONST_INT MAX_ACTIVATION_TESTS 5
|
|
|
|
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
USING "commands_script.sch"
|
|
USING "lineactivation.sch"
|
|
USING "shared_debug.sch"
|
|
|
|
ENUM STAGE_CONTROL_ENUM
|
|
STAGE_INIT = 0,
|
|
STAGE_UPDATE,
|
|
STAGE_CLEANUP
|
|
ENDENUM
|
|
STAGE_CONTROL_ENUM eStage = STAGE_INIT
|
|
|
|
STRUCT ACTIVATION_PARAM_STRUCT
|
|
VECTOR vCoord
|
|
FLOAT fCoordHeading
|
|
FLOAT fLocateSize
|
|
|
|
INT iDirection
|
|
INT iActiveSide
|
|
INT iEaseOfActivation
|
|
|
|
BOOL bCheckStationary
|
|
BOOL bActive
|
|
BOOL bSnapToPlayer
|
|
ENDSTRUCT
|
|
ACTIVATION_PARAM_STRUCT sActivationParams[MAX_ACTIVATION_TESTS]
|
|
|
|
WIDGET_GROUP_ID widgetID
|
|
BOOL bOutputData
|
|
|
|
/// PURPOSE: Output all the data so we can copy/paste
|
|
PROC DO_OUTPUT_TO_SCRIPT()
|
|
|
|
INT i
|
|
TEXT_LABEL_31 sDirection, sActiveSide, sEaseOfActivation, sStationary
|
|
|
|
OPEN_DEBUG_FILE()
|
|
SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
SAVE_STRING_TO_DEBUG_FILE("/* LINE ACTIVATION TEST */")
|
|
SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
|
|
REPEAT MAX_ACTIVATION_TESTS i
|
|
IF sActivationParams[i].bActive
|
|
IF sActivationParams[i].iDirection = 0 sDirection = "ECOMPASS_NORTH"
|
|
ELIF sActivationParams[i].iDirection = 0 sDirection = "ECOMPASS_EAST"
|
|
ELIF sActivationParams[i].iDirection = 0 sDirection = "ECOMPASS_WEST"
|
|
ELIF sActivationParams[i].iDirection = 0 sDirection = "ECOMPASS_SOUTH"
|
|
ENDIF
|
|
|
|
IF sActivationParams[i].iActiveSide = 0 sActiveSide = "EACTIVESIDE_ONEWAY"
|
|
ELIF sActivationParams[i].iActiveSide = 0 sActiveSide = "EACTIVESIDE_OPPOSITES"
|
|
ELIF sActivationParams[i].iActiveSide = 0 sActiveSide = "EACTIVESIDE_FOURCORNERS"
|
|
ENDIF
|
|
|
|
IF sActivationParams[i].iEaseOfActivation = 0 sEaseOfActivation = "EACTIVATIONEASE_HARD"
|
|
ELIF sActivationParams[i].iEaseOfActivation = 0 sEaseOfActivation = "EACTIVATIONEASE_MEDIUM"
|
|
ELIF sActivationParams[i].iEaseOfActivation = 0 sEaseOfActivation = "EACTIVATIONEASE_EASY"
|
|
ENDIF
|
|
|
|
IF sActivationParams[i].bCheckStationary sStationary = "TRUE"
|
|
ELIF NOT sActivationParams[i].bCheckStationary sStationary = "FALSE"
|
|
ENDIF
|
|
|
|
SAVE_STRING_TO_DEBUG_FILE("Coord = ") SAVE_VECTOR_TO_DEBUG_FILE(sActivationParams[i].vCoord) SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
SAVE_STRING_TO_DEBUG_FILE("CoordHeading = ") SAVE_FLOAT_TO_DEBUG_FILE(sActivationParams[i].fCoordHeading) SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
SAVE_STRING_TO_DEBUG_FILE("Direction = ") SAVE_STRING_TO_DEBUG_FILE(sDirection) SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
SAVE_STRING_TO_DEBUG_FILE("LocateSize = ") SAVE_FLOAT_TO_DEBUG_FILE(sActivationParams[i].fLocateSize) SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
SAVE_STRING_TO_DEBUG_FILE("activeSide = ") SAVE_STRING_TO_DEBUG_FILE(sActiveSide) SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
SAVE_STRING_TO_DEBUG_FILE("Ease_of_activation = ") SAVE_STRING_TO_DEBUG_FILE(sEaseOfActivation) SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
SAVE_STRING_TO_DEBUG_FILE("Check_stationary = ") SAVE_STRING_TO_DEBUG_FILE(sStationary) SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
|
|
SAVE_STRING_TO_DEBUG_FILE("IF IS_PLAYER_ACTIVATING_COORD(Coord, CoordHeading, Direction, LocateSize, activeSide, Ease_of_activation, Check_stationary)")
|
|
|
|
SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
|
|
SAVE_STRING_TO_DEBUG_FILE("IF IS_PLAYER_ACTIVATING_COORD(")
|
|
SAVE_VECTOR_TO_DEBUG_FILE(sActivationParams[i].vCoord)
|
|
SAVE_STRING_TO_DEBUG_FILE(", ")
|
|
SAVE_FLOAT_TO_DEBUG_FILE(sActivationParams[i].fCoordHeading)
|
|
SAVE_STRING_TO_DEBUG_FILE(", ")
|
|
SAVE_STRING_TO_DEBUG_FILE(sDirection)
|
|
SAVE_STRING_TO_DEBUG_FILE(", ")
|
|
SAVE_FLOAT_TO_DEBUG_FILE(sActivationParams[i].fLocateSize)
|
|
SAVE_STRING_TO_DEBUG_FILE(", ")
|
|
SAVE_STRING_TO_DEBUG_FILE(sActiveSide)
|
|
SAVE_STRING_TO_DEBUG_FILE(", ")
|
|
SAVE_STRING_TO_DEBUG_FILE(sEaseOfActivation)
|
|
SAVE_STRING_TO_DEBUG_FILE(", ")
|
|
SAVE_STRING_TO_DEBUG_FILE(sStationary)
|
|
SAVE_STRING_TO_DEBUG_FILE(")")
|
|
|
|
SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
SAVE_NEWLINE_TO_DEBUG_FILE()
|
|
ENDIF
|
|
CLOSE_DEBUG_FILE()
|
|
ENDREPEAT
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Setup the widgets and default data
|
|
PROC DO_INITIALISE()
|
|
|
|
INT i
|
|
TEXT_LABEL_31 sTempLabel
|
|
|
|
// Set up widgets
|
|
START_WIDGET_GROUP("Line Activation Test")
|
|
|
|
ADD_WIDGET_BOOL("Output data", bOutputData)
|
|
|
|
REPEAT MAX_ACTIVATION_TESTS i
|
|
|
|
// Set some default states
|
|
sActivationParams[i].bSnapToPlayer = TRUE
|
|
sActivationParams[i].fLocateSize = 0.4
|
|
|
|
sTempLabel = "Test[" sTempLabel += i sTempLabel += "]"
|
|
widgetID = START_WIDGET_GROUP(sTempLabel)
|
|
ADD_WIDGET_BOOL("Active", sActivationParams[i].bActive)
|
|
ADD_WIDGET_BOOL("Snap To Player", sActivationParams[i].bSnapToPlayer)
|
|
ADD_WIDGET_VECTOR_SLIDER("Coord", sActivationParams[i].vCoord, -10000.0, 10000.0, 0.01)
|
|
ADD_WIDGET_FLOAT_SLIDER("Heading", sActivationParams[i].fCoordHeading, 0.0, 360.0, 1.0)
|
|
ADD_WIDGET_FLOAT_SLIDER("Locate Size", sActivationParams[i].fLocateSize, 0.0, 50.0, 0.2)
|
|
ADD_WIDGET_INT_SLIDER("Direction", sActivationParams[i].iDirection, 0, 3, 1)
|
|
ADD_WIDGET_INT_SLIDER("Side", sActivationParams[i].iActiveSide, 0, 2, 1)
|
|
ADD_WIDGET_INT_SLIDER("Ease", sActivationParams[i].iEaseOfActivation, 0, 2, 1)
|
|
ADD_WIDGET_BOOL("Check Stationary", sActivationParams[i].bCheckStationary)
|
|
STOP_WIDGET_GROUP()
|
|
ENDREPEAT
|
|
|
|
STOP_WIDGET_GROUP()
|
|
SETTIMERA(0)
|
|
eStage = STAGE_UPDATE
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Update locate positions, play anims, set anim phase etc.
|
|
PROC DO_UPDATE()
|
|
|
|
IF (TIMERA() < 8000)
|
|
SET_TEXT_SCALE(0.35,0.35)
|
|
SET_TEXT_CENTRE(TRUE)
|
|
DISPLAY_TEXT_WITH_LITERAL_STRING(0.5, 0.05, "STRING", "Turn on debug lines and spheres in RAG/Script/Draw Debug Lines And Spheres")
|
|
ENDIF
|
|
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
IF bOutputData
|
|
DO_OUTPUT_TO_SCRIPT()
|
|
bOutputData = FALSE
|
|
ENDIF
|
|
|
|
INT i
|
|
REPEAT MAX_ACTIVATION_TESTS i
|
|
IF sActivationParams[i].bSnapToPlayer
|
|
sActivationParams[i].vCoord = GET_ENTITY_COORDS(PLAYER_PED_ID())
|
|
sActivationParams[i].bSnapToPlayer = FALSE
|
|
ENDIF
|
|
|
|
IF sActivationParams[i].bActive
|
|
IF IS_PLAYER_ACTIVATING_COORD(sActivationParams[i].vCoord, sActivationParams[i].fCoordHeading, INT_TO_ENUM(ECOMPASS, sActivationParams[i].iDirection),sActivationParams[i].fLocateSize, INT_TO_ENUM(EACTIVESIDE, sActivationParams[i].iActiveSide), INT_TO_ENUM(EACTIVATIONEASE, sActivationParams[i].iEaseOfActivation), sActivationParams[i].bCheckStationary)
|
|
DRAW_DEBUG_SPHERE(sActivationParams[i].vCoord, 0.1, 0, 255, 0, 255)
|
|
DRAW_DEBUG_LINE(sActivationParams[i].vCoord, GET_OFFSET_FROM_COORD_AND_HEADING_IN_WORLD_COORDS(sActivationParams[i].vCoord, sActivationParams[i].fCoordHeading, <<0.0, 0.5, 0.0>>), 0, 255, 0, 255)
|
|
ELSE
|
|
DRAW_DEBUG_SPHERE(sActivationParams[i].vCoord, 0.1, 255, 0, 0, 255)
|
|
DRAW_DEBUG_LINE(sActivationParams[i].vCoord, GET_OFFSET_FROM_COORD_AND_HEADING_IN_WORLD_COORDS(sActivationParams[i].vCoord, sActivationParams[i].fCoordHeading, <<0.0, 0.5, 0.0>>), 255, 0, 0, 255)
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_F)
|
|
eStage = STAGE_CLEANUP
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Remove any widgets and terminate
|
|
PROC DO_CLEANUP()
|
|
|
|
// Remove widgets
|
|
IF DOES_WIDGET_GROUP_EXIST(widgetID)
|
|
DELETE_WIDGET_GROUP(widgetID)
|
|
ENDIF
|
|
|
|
TERMINATE_THIS_THREAD()
|
|
ENDPROC
|
|
|
|
|
|
SCRIPT
|
|
|
|
WHILE TRUE
|
|
|
|
WAIT(0)
|
|
|
|
SWITCH eStage
|
|
CASE STAGE_INIT
|
|
DO_INITIALISE()
|
|
BREAK
|
|
|
|
CASE STAGE_UPDATE
|
|
DO_UPDATE()
|
|
BREAK
|
|
|
|
CASE STAGE_CLEANUP
|
|
DO_CLEANUP()
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDWHILE
|
|
|
|
ENDSCRIPT
|
|
#ENDIF |