Files
gtav-src/script/dev_ng/singleplayer/include/globals/launcher_globals.sch
T
2025-09-29 00:52:08 +02:00

96 lines
3.3 KiB
Scheme
Executable File

// launcher_globals.sch
USING "minigame_globals.sch"
USING "commands_brains.sch"
BOOL g_MG_Bypass_Respawn_Cutscene = FALSE
BOOL g_MG_Slash_Showing = FALSE
ENUM LAUNCHED_SCRIPT_FLAGS
LAUNCHED_SCRIPT_MinigameFailed = 0,
LAUNCHED_SCRIPT_AirTraffickingFailed,
LAUNCHED_SCRIPT_GroundTraffickingFailed,
LAUNCHED_SCRIPT_TowingFailed
ENDENUM
STRUCT LauncherDataSaved
INT iLauncherFlags
ENDSTRUCT
// Launcher data. Does not need to be saved.
LauncherDataSaved sLauncherData
PROC Store_Launcher_Flag_Data(LAUNCHED_SCRIPT_FLAGS flagToSet)
sLauncherData.iLauncherFlags = ENUM_TO_INT(flagToSet)
ENDPROC
PROC SET_CURRENT_MINIGAME_TO_BYPASS_RESPAWN_CUTSCENE(BOOL thisBool)
IF g_OnMissionState = MISSION_TYPE_MINIGAME OR g_OnMissionState = MISSION_TYPE_MINIGAME_FRIENDS OR g_OnMissionState = MISSION_TYPE_RANDOM_EVENT
g_MG_Bypass_Respawn_Cutscene = thisBool
IF thisBool
PRINTLN("SUCESSFUL CALLING SET_CURRENT_MINIGAME_TO_BYPASS_RESPAWN_CUTSCENE(TRUE)")
ELSE
PRINTLN("SUCESSFUL CALLING SET_CURRENT_MINIGAME_TO_BYPASS_RESPAWN_CUTSCENE(FALSE)")
ENDIF
ELSE
IF thisBool
PRINTLN("UNSUCCESSFUL CALLING SET_CURRENT_MINIGAME_TO_BYPASS_RESPAWN_CUTSCENE(TRUE)")
ELSE
PRINTLN("SUCESSFUL CALLING SET_CURRENT_MINIGAME_TO_BYPASS_RESPAWN_CUTSCENE(FALSE)")
ENDIF
g_MG_Bypass_Respawn_Cutscene = FALSE
ENDIF
PRINTLN("g_MG_Bypass_Respawn_Cutscene is (1 for true)", g_MG_Bypass_Respawn_Cutscene)
ENDPROC
FUNC BOOL IS_CURRENT_MINIGAME_SET_TO_BYPASS_RESPAWN_CUTSCENE()
IF g_OnMissionState = MISSION_TYPE_MINIGAME OR g_OnMissionState = MISSION_TYPE_MINIGAME_FRIENDS OR g_OnMissionState = MISSION_TYPE_RANDOM_EVENT
RETURN g_MG_Bypass_Respawn_Cutscene
ELSE
g_MG_Bypass_Respawn_Cutscene = FALSE
RETURN FALSE
ENDIF
ENDFUNC
FUNC BOOL IS_MINIGAME_SPLASH_SHOWING()
IF g_OnMissionState = MISSION_TYPE_MINIGAME OR g_OnMissionState = MISSION_TYPE_MINIGAME_FRIENDS
RETURN g_MG_Slash_Showing
ELSE
//PRINTLN("We're not in a MINIGAME")
g_MG_Slash_Showing = FALSE
RETURN FALSE
ENDIF
ENDFUNC
PROC SET_MINIGAME_SPLASH_SHOWING(BOOL thisBool)
IF g_OnMissionState = MISSION_TYPE_MINIGAME OR g_OnMissionState = MISSION_TYPE_MINIGAME_FRIENDS
g_MG_Slash_Showing = thisBool
ELSE
g_MG_Slash_Showing = FALSE
ENDIF
ENDPROC
PROC RESET_MINI_GAME_TENNIS_LAUNCHERS()
VECTOR vMyCurrentPlayerCoords
STRING launcherScriptName = "launcher_tennis"
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
vMyCurrentPlayerCoords = GET_ENTITY_COORDS(PLAYER_PED_ID())
ELSE
EXIT //leave if the ped is injured.
ENDIF
CPRINTLN(DEBUG_SCRIPT_LAUNCH, "Checking promximity to ", launcherScriptName)
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("launcher_tennis")) = 0
//check if im in range of one of the points
IF IS_PLAYER_WITHIN_RANGE_OF_TENNIS_LAUNCHER(vMyCurrentPlayerCoords, MG_BRAIN_ACTIVATION_RANGE_MEDIUM)
CPRINTLN(DEBUG_SCRIPT_LAUNCH, "Reactivating script brains for", launcherScriptName)
REACTIVATE_NAMED_WORLD_BRAINS_WAITING_TILL_OUT_OF_RANGE(launcherScriptName)
ELSE
CPRINTLN(DEBUG_SCRIPT_LAUNCH, "player isn't within range of any ", launcherScriptName, " points")
ENDIF
ELSE
CPRINTLN(DEBUG_SCRIPT_LAUNCH, launcherScriptName, " currently has at least one script already running")
ENDIF
ENDPROC