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

128 lines
5.8 KiB
XML
Executable File

//╔═════════════════════════════════════════════════════════════════════════════╗
//║ ║
//║ Author: Ben Rollinson Date: 05/07/2012 ║
//║ ║
//╠═════════════════════════════════════════════════════════════════════════════╣
//║ ║
//║ Trigger Scene Globals ║
//║ ║
//║ All globals required to handle trigger scenes in the triggering system. ║
//║ ║
//╚═════════════════════════════════════════════════════════════════════════════╝
USING "rage_builtins.sch"
USING "charsheet_global_definitions.sch"
USING "load_queue_private.sch"
CONST_INT MAX_TRIG_SCENE_VEHICLES 8
CONST_INT MAX_TRIG_SCENE_PEDS 18
CONST_INT MAX_TRIG_SCENE_OBJECTS 8
CONST_INT MAX_TRIG_SCENE_ROPES 4
CONST_FLOAT TS_DEFAULT_FRIEND_REJECT_DISTANCE 50.0
CONST_INT TS_LOCK_IN_TIMEOUT_TIME 12000 //The time after the player locks in after which the mission will automatically trigger.
STRUCT TRIGGER_SCENE_ASSETS
VEHICLE_INDEX veh[MAX_TRIG_SCENE_VEHICLES]
PED_INDEX ped[MAX_TRIG_SCENE_PEDS]
OBJECT_INDEX object[MAX_TRIG_SCENE_OBJECTS]
ROPE_INDEX rope[MAX_TRIG_SCENE_ROPES]
REL_GROUP_HASH relGroup
SCENARIO_BLOCKING_INDEX scenarioBlocking
structPedsForConversation conversation // this doesn't need to be passed between scripts but is the best place for it to minimise globals
LoadQueueMedium loadQueue
BOOL flag //Multi-purpose flag.
INT id //Multi-purpose id.
INT timer //Multi-purpose timer.
BLIP_INDEX blip
ENDSTRUCT
// A single assets struct to be used by all trigger scenes.
// Only possible assuming there are never two trigger scenes active at the same time with
// overlapping scene areas.
TRIGGER_SCENE_ASSETS g_sTriggerSceneAssets
//Trigger scene specific persistent variables.
BOOL g_bLester1DoorKnocked
BOOL g_bAgencyP1HelpDisplayed = FALSE
BOOL g_bAgencyP1OnlyMissionLeft = FALSE
TIMEOFDAY g_eAgencyP1TimeNextHelp = INVALID_TIMEOFDAY
//Jewel Prep 2A
TEXT_LABEL_63 g_JHP2A_string_WayPoint = "" // Waypoint recording that is used as the route
TIMEOFDAY g_JHP2A_tod_NextTriggerTime = INVALID_TIMEOFDAY // Time of day used to enable/disable the blip
INT g_JHP2A_iTriggerRunCount = 0
//Jewel Prep 1b
TEXT_LABEL_63 g_JP1b_string_WayPoint = "" // Waypoint recording that is used as the route
TIMEOFDAY g_JP1b_tod_NextTriggerTime = INVALID_TIMEOFDAY // Time of day used to enable/disable the blip
INT g_JP1b_iTriggerRunCount = 0
//Rural prep 1
TEXT_LABEL_63 g_RHP_string_WayPoint = "" // Waypoint recording that is used as the route
TIMEOFDAY g_RHP_tod_NextTriggerTime = INVALID_TIMEOFDAY // Time of day used to enable/disable the blip
INT g_RHP_iTriggerRunCount = 0
//Finale Heist 2A/2B
BOOL g_FH2_bTimelapseTriggeredInside = FALSE
BOOL g_FHP3_FirstGauntWarn = TRUE
TIMEOFDAY g_FHPC_tod_NextRemindTime = INVALID_TIMEOFDAY // Time of day used to remind the player of Gaunlet task
// Function pointer types for trigger scenes.
TYPEDEF PROC ResetTriggerScene()
TYPEDEF PROC RequestTriggerSceneAssets()
TYPEDEF PROC ReleaseTriggerSceneAssets()
TYPEDEF FUNC BOOL HaveTriggerSceneAssetsLoaded()
TYPEDEF PROC CreateTriggerScene()
TYPEDEF PROC ReleaseTriggerScene()
TYPEDEF PROC DeleteTriggerScene()
TYPEDEF PROC UpdateTriggerScene()
TYPEDEF PROC AmbientUpdateTriggerScene()
TYPEDEF FUNC BOOL HasTriggerSceneBeenTriggered()
TYPEDEF FUNC BOOL HasTriggerSceneBeenDisrupted()
TYPEDEF FUNC BOOL IsTriggerSceneBlocked()
// Struct representing a single trigger scene instance.
STRUCT TRIGGER_SCENE
SP_MISSIONS eMission // Singleplay mission this scene is bound to.
INT iStateBitset // A bitfield containing all state and setting flags for this trigger scene. See TriggerSceneSettings for indexes.
FLOAT fLoadDistance // The distance from the scene's blip at which the scene streams in.
FLOAT fUnloadDistance // The distance from the scene's blip at which the scene streams out.
FLOAT fFriendRejectDistance // The distance from the scene's blip at which friends who can't trigger the mission get rejected.
FLOAT fBattleBuddyCallDistance // The distance from the scene's blip at which the player can call in battle buddies.
INT iFriendsToAcceptBitset // Bitset containing which friends should be allowed to trigger this mission with the player.
ENDSTRUCT
//Trigger scene control functions/procedure pointers.
STRUCT TRIGGER_SCENE_POINTERS
BOOL bSceneBound
ResetTriggerScene RESET_TRIGGER_SCENE
RequestTriggerSceneAssets REQUEST_TRIGGER_SCENE_ASSETS
ReleaseTriggerSceneAssets RELEASE_TRIGGER_SCENE_ASSETS
HaveTriggerSceneAssetsLoaded HAVE_TRIGGER_SCENE_ASSETS_LOADED
CreateTriggerScene CREATE_TRIGGER_SCENE
ReleaseTriggerScene RELEASE_TRIGGER_SCENE
DeleteTriggerScene DELETE_TRIGGER_SCENE
UpdateTriggerScene UPDATE_TRIGGER_SCENE
AmbientUpdateTriggerScene AMBIENT_UPDATE_TRIGGER_SCENE
HasTriggerSceneBeenTriggered HAS_TRIGGER_SCENE_BEEN_TRIGGERED
HasTriggerSceneBeenDisrupted HAS_TRIGGER_SCENE_BEEN_DISRUPTED
IsTriggerSceneBlocked IS_TRIGGER_SCENE_BLOCKED
ENDSTRUCT
BOOL g_bBlockTriggerSceneLoadDuringSwitch = FALSE
BOOL g_bPlayerLockedInToTrigger = FALSE