933 lines
36 KiB
Python
Executable File
933 lines
36 KiB
Python
Executable File
USING "global_block_defines.sch"
|
|
|
|
// Allow the globals to be created
|
|
//GLOBALS TRUE //GLOBALS_BLOCK_STANDARD TRUE
|
|
|
|
|
|
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
USING "commands_entity.sch"
|
|
USING "commands_player.sch"
|
|
USING "commands_script.sch"
|
|
USING "commands_streaming.sch"
|
|
USING "commands_pad.sch"
|
|
//USING "Flow_Mission_Data_GTA5.sch"
|
|
USING "Flow_Heist_Data_GTA5.sch"
|
|
USING "script_player.sch"
|
|
USING "streamed_scripts.sch"
|
|
USING "respawn_location_data.sch"
|
|
USING "stripclub_public.sch"
|
|
USING "properties_public.sch"
|
|
USING "trains_control_public.sch"
|
|
USING "charsheet_public.sch"
|
|
USING "CompletionPercentage_public.sch"
|
|
USING "mission_flow_initialiser.sch"
|
|
USING "decorator_initialiser.sch"
|
|
USING "friends_public.sch"
|
|
USING "flow_reset_GAME.sch"
|
|
USING "blip_ambient.sch"
|
|
|
|
// All the registration headers required to specify which global variables need to be saved
|
|
USING "flow_globals_reg.sch"
|
|
USING "heist_globals_reg.sch"
|
|
USING "stripclub_globals_reg.sch"
|
|
USING "pilotschool_globals_reg.sch"
|
|
USING "shop_globals_reg.sch"
|
|
USING "ambient_globals_reg.sch"
|
|
USING "player_ped_globals_reg.sch"
|
|
USING "charsheet_globals_reg.sch"
|
|
USING "respawn_location_globals_reg.sch"
|
|
USING "family_globals_reg.sch"
|
|
USING "player_scene_globals_reg.sch"
|
|
USING "friends_globals_reg.sch"
|
|
USING "comms_control_globals_reg.sch"
|
|
USING "code_control_globals_reg.sch"
|
|
USING "building_globals_reg.sch"
|
|
USING "vehicle_gen_globals_reg.sch"
|
|
USING "flow_help_globals_reg.sch"
|
|
USING "CompletionPercentage_globals_reg.sch"
|
|
USING "Cellphone_Settings_globals_reg.sch"
|
|
USING "social_globals_reg.sch"
|
|
USING "finance_globals_reg.sch"
|
|
USING "random_char_globals_reg.sch"
|
|
USING "towing_globals_reg.sch"
|
|
USING "assassin_globals_reg.sch"
|
|
USING "basejump_globals_reg.sch"
|
|
USING "trafficking_globals_reg.sch"
|
|
USING "taxi_globals_reg.sch"
|
|
USING "offroad_globals_reg.sch"
|
|
USING "golf_globals_reg.sch"
|
|
USING "range_globals_reg.sch"
|
|
USING "tennis_globals_reg.sch"
|
|
USING "sptt_globals_reg.sch"
|
|
USING "Triathlon_globals_reg.sch"
|
|
USING "shoprobberies_globals_reg.sch"
|
|
USING "shrink_globals_reg.sch"
|
|
USING "country_race_globals_reg.sch"
|
|
//USING "freemode_stunt_jumps.sch"
|
|
USING "specialPed_globals_reg.sch"
|
|
USING "email_globals_reg.sch"
|
|
USING "darts_globals_reg.sch"
|
|
USING "sea_race_globals_reg.sch"
|
|
USING "street_race_globals_reg.sch"
|
|
USING "rampage_globals_reg.sch"
|
|
USING "debug_channels_core.sch"
|
|
USING "feed_globals_reg.sch"
|
|
USING "snapshots_globals_reg.sch"
|
|
USING "BailBond_globals_reg.sch"
|
|
USING "properties_globals_reg.sch"
|
|
USING "mp_saved_vehicles_globals_reg.sch"
|
|
//USING "mp_saved_buddies_globals_reg.sch"
|
|
USING "mp_saved_carapp_globals_reg.sch"
|
|
USING "mp_saved_general_globals_reg.sch"
|
|
USING "mp_saved_big_ass_vehicles_globals_reg.sch"
|
|
USING "mp_saved_property_globals_reg.sch"
|
|
USING "mp_saved_bounty_reg.sch"
|
|
USING "MP_Globals_Block_MP_SG.sch"
|
|
USING "random_event_globals_reg.sch"
|
|
USING "ScriptSaves_Procs.sch"
|
|
USING "flyUnderBridges.sch"
|
|
USING "savegame_patching.sch"
|
|
USING "screens_header.sch"
|
|
USING "video_editor.sch"
|
|
USING "PreloadStartupScripts.sch"
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
USING "cellphone_public.sch"
|
|
#ENDIF
|
|
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
//
|
|
// MISSION NAME : startup.sc
|
|
// AUTHOR : Keith
|
|
// DESCRIPTION : Contains all code that is immediately required when the game
|
|
// starts (ie: registering object scripts; restart points;
|
|
// creating player; etc).
|
|
//
|
|
// Sets up the Globals.
|
|
// Sets up the Persistent Globals.
|
|
//
|
|
// This script will load the main_persistent script then terminate.
|
|
//
|
|
// GTA 5 SAVED VARS : After the first WAIT(0), all the global variables that form part
|
|
// of the save game need to be registered. This not only names
|
|
// all the variables, but also restores the variables from a
|
|
// previous save.
|
|
// Each system will have it's own global save variables. Each system
|
|
// will need an 'initialised' flag global save variable. Each
|
|
// time the game runs, startup.sc will set the initialised flag
|
|
// to FALSE. It will then reload the most recent save. If that
|
|
// system already contains initialised saved data then that
|
|
// initialised flag will have been saved as TRUE. When the system
|
|
// is launched it should initialise the global save variables only
|
|
// if the initialised variable is FALSE - if TRUE it should ignore
|
|
// the variables because they will have been reloaded with the
|
|
// desired values from the previous session.
|
|
// Each system should create a _reg.sch version of their global header
|
|
// file with functions that specify the variables to be registered.
|
|
// This file should be stored in shared/globals/registration/.
|
|
//
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
// *****************************************************************************************
|
|
|
|
|
|
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
eLevelIndex eLocalCachedLevel
|
|
#ENDIF
|
|
|
|
//FLOAT fInitialPlayerHeading = 135.0000
|
|
|
|
GAME_TYPE eGameType
|
|
|
|
PROC Set_Network_Privilege_Bools()
|
|
g_bHaveFull_NetworkPrivileges = TRUE
|
|
g_bHaveFriend_NetworkPrivileges = TRUE
|
|
CPRINTLN(DEBUG_INIT, "Set_Network_Privilege_Bools - Setting g_bHaveFull_NetworkPrivileges to [", g_bHaveFull_NetworkPrivileges, "] and setting g_bHaveFriend_NetworkPrivileges to [", g_bHaveFriend_NetworkPrivileges, "]")
|
|
ENDPROC
|
|
|
|
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
|
|
/// PURPOSE:
|
|
/// Requests a script, waits for it to stream in, then launches it
|
|
PROC Request_And_Launch_Script_With_Wait(INT iScriptHash, INT iStackSize)
|
|
REQUEST_SCRIPT_WITH_NAME_HASH(iScriptHash)
|
|
WHILE NOT HAS_SCRIPT_WITH_NAME_HASH_LOADED(iScriptHash)
|
|
WAIT(0)
|
|
REQUEST_SCRIPT_WITH_NAME_HASH(iScriptHash)
|
|
ENDWHILE
|
|
START_NEW_SCRIPT_WITH_NAME_HASH(iScriptHash, iStackSize)
|
|
ENDPROC
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
FUNC STRING GET_GLOBAL_REGISTRATION_SCRIPT_DEBUG_PRINT(GLOBAL_REGISTRATION_SCRIPT eRegScript)
|
|
SWITCH eRegScript
|
|
CASE MP_REGISTRATION RETURN "MP_REGISTRATION"
|
|
CASE MP_FM_REGISTRATION RETURN "MP_FM_REGISTRATION"
|
|
CASE TUNABLES_REGISTRATION RETURN "TUNABLES_REGISTRATION"
|
|
CASE SC_LB_GLOBAL_BLOCK RETURN "SC_LB_GLOBAL_BLOCK"
|
|
CASE MP_SAVE_GAME_GLOBAL_BLOCK RETURN "MP_SAVE_GAME_GLOBAL_BLOCK"
|
|
CASE MP_PROP_GLOBAL_BLOCK RETURN "MP_PROP_GLOBAL_BLOCK"
|
|
CASE MP_PROP_SPECIAL_GLOBAL_BLOCK RETURN "MP_PROP_SPECIAL_GLOBAL_BLOCK"
|
|
CASE TITLE_UPDATE_REGISTRATION RETURN "TITLE_UPDATE_REGISTRATION"
|
|
CASE TITLE_UPDATE_REGISTRATION_2 RETURN "TITLE_UPDATE_REGISTRATION_2"
|
|
CASE GLOBALS_FMMC_STRUCT_REGISTRATION RETURN "GLOBALS_FMMC_STRUCT_REGISTRATION"
|
|
CASE GLOBALS_FMMCSTRUCT2_REGISTRATION RETURN "GLOBALS_FMMCSTRUCT2_REGISTRATION"
|
|
CASE SP_DLC_REGISTRATION RETURN "SP_DLC_REGISTRATION"
|
|
CASE SP_PILOTSCHOOL_REG RETURN "SP_PILOTSCHOOL_REG"
|
|
ENDSWITCH
|
|
RETURN ""
|
|
ENDFUNC
|
|
#ENDIF
|
|
|
|
FUNC BOOL HAS_REGISTRATION_REQUIREMENT_BEEN_MET(GLOBAL_REGISTRATION_SCRIPT eRegScript, INT iLaunchedBitSet)
|
|
|
|
SWITCH eRegScript
|
|
CASE SP_DLC_REGISTRATION
|
|
IF NOT IS_BIT_SET(iLaunchedBitSet, ENUM_TO_INT(TITLE_UPDATE_REGISTRATION_2))
|
|
CPRINTLN(DEBUG_INIT, "REGISTER_ALL_SCRIPT_GLOBALS - HAS_REGISTRATION_REQUIREMENT_BEEN_MET = FALSE: ", GET_GLOBAL_REGISTRATION_SCRIPT_DEBUG_PRINT(eRegScript), ".")
|
|
RETURN FALSE
|
|
ENDIF
|
|
BREAK
|
|
CASE SP_PILOTSCHOOL_REG
|
|
IF NOT IS_BIT_SET(iLaunchedBitSet, ENUM_TO_INT(SP_DLC_REGISTRATION))
|
|
CPRINTLN(DEBUG_INIT, "REGISTER_ALL_SCRIPT_GLOBALS - HAS_REGISTRATION_REQUIREMENT_BEEN_MET = FALSE: ", GET_GLOBAL_REGISTRATION_SCRIPT_DEBUG_PRINT(eRegScript), ".")
|
|
RETURN FALSE
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL IS_A_REGISTRATION_REQUIREMENT(GLOBAL_REGISTRATION_SCRIPT eRegScript)
|
|
|
|
SWITCH eRegScript
|
|
CASE TITLE_UPDATE_REGISTRATION_2
|
|
CASE SP_DLC_REGISTRATION
|
|
RETURN TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC REGISTER_ALL_SCRIPT_GLOBALS()
|
|
|
|
GLOBAL_REGISTRATION_SCRIPT eRegScript
|
|
BOOL bFinished
|
|
INT iLaunchedBitSet
|
|
|
|
WHILE NOT bFinished
|
|
bFinished = TRUE
|
|
REPEAT GLOBAL_REGISTRATION_SCRIPT_MAX eRegScript
|
|
IF NOT IS_BIT_SET(iLaunchedBitSet, ENUM_TO_INT(eRegScript))
|
|
INT iScriptHash = GET_GLOBAL_REGISTRATION_SCRIPT_HASH(eRegScript)
|
|
REQUEST_SCRIPT_WITH_NAME_HASH(iScriptHash)
|
|
IF HAS_SCRIPT_WITH_NAME_HASH_LOADED(iScriptHash)
|
|
AND HAS_REGISTRATION_REQUIREMENT_BEEN_MET(eRegScript, iLaunchedBitSet)
|
|
CPRINTLN(DEBUG_INIT, "REGISTER_ALL_SCRIPT_GLOBALS - About to request and launch: ", GET_GLOBAL_REGISTRATION_SCRIPT_DEBUG_PRINT(eRegScript), ".")
|
|
START_NEW_SCRIPT_WITH_NAME_HASH(iScriptHash, DEFAULT_STACK_SIZE)
|
|
SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(iScriptHash)
|
|
SET_BIT(iLaunchedBitSet, ENUM_TO_INT(eRegScript))
|
|
//Bail if we have a requirement so we launch the other script the next frame.
|
|
IF IS_A_REGISTRATION_REQUIREMENT(eRegScript)
|
|
CPRINTLN(DEBUG_INIT, "REGISTER_ALL_SCRIPT_GLOBALS - IS_A_REGISTRATION_REQUIREMENT: ", GET_GLOBAL_REGISTRATION_SCRIPT_DEBUG_PRINT(eRegScript), ".")
|
|
bFinished = FALSE
|
|
BREAKLOOP
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_INIT, "REGISTER_ALL_SCRIPT_GLOBALS - Waiting on: ", GET_GLOBAL_REGISTRATION_SCRIPT_DEBUG_PRINT(eRegScript), ".")
|
|
bFinished = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDREPEAT
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
CONST_INT __ASSERT_IF_SAVEGAME_SIZES_DIFFER 1
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
INT RunningTotalOfStructures = 0
|
|
|
|
PROC VerifySizeOfSavedStructure(INT SizeOfMostRecentStructure, STRING NameOfMostRecentStructure, BOOL bSP = TRUE)
|
|
CPRINTLN(DEBUG_INIT, "SIZE_OF(", NameOfMostRecentStructure, ") = ", SizeOfMostRecentStructure)
|
|
|
|
RunningTotalOfStructures += SizeOfMostRecentStructure
|
|
|
|
INT SizeOfRegisteredVariables = GET_SIZE_OF_SAVE_DATA(bSP)
|
|
|
|
IF RunningTotalOfStructures <> SizeOfRegisteredVariables
|
|
CPRINTLN(DEBUG_INIT, "Size of registered save variables differs from actual size of structure")
|
|
CPRINTLN(DEBUG_INIT, "Size of all structures so far = ", RunningTotalOfStructures)
|
|
CPRINTLN(DEBUG_INIT, "SizeOfRegisteredVariables = ", SizeOfRegisteredVariables)
|
|
CPRINTLN(DEBUG_INIT, "Most Recent Structure = ", NameOfMostRecentStructure)
|
|
#IF __ASSERT_IF_SAVEGAME_SIZES_DIFFER
|
|
SCRIPT_ASSERT("Size of save struct differs from size of registered save variables - check TTY")
|
|
#ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
#ENDIF // IS_DEBUG_BUILD
|
|
|
|
|
|
|
|
|
|
// ===========================================================================================================
|
|
|
|
SCRIPT
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
eLocalCachedLevel = GET_INDEX_OF_CURRENT_LEVEL()
|
|
DEBUG_REGISTER_CHANNELS()
|
|
#ENDIF
|
|
|
|
|
|
CPRINTLN(DEBUG_INIT, "Script initialisation began.")
|
|
CPRINTLN(DEBUG_INIT, "Starting in game level ", DEBUG_GET_LEVEL_NAME(eLocalCachedLevel), ".")
|
|
|
|
PRELOAD_ALL_STARTUP_SCRIPTS()
|
|
|
|
// Graeme - this doesn't seem like a good thing to do, but I need to make the script either safe for network game
|
|
// or make it clean up when HAS_FORCE_CLEANUP_OCCURRED(FORCE_CLEANUP_FLAG_SP_TO_MP) returns TRUE.
|
|
// The second option doesn't seem like a good idea either. How are we going to deal with the player entering
|
|
// multiplayer while this script is running e.g. the player accepts an invite on the XMB/Dashboard
|
|
NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME()
|
|
|
|
//B*-2286368, confirm not in director mode/ animal form on startup
|
|
SET_PLAYER_IS_IN_DIRECTOR_MODE(FALSE)
|
|
SET_PLAYER_IS_IN_ANIMAL_FORM(FALSE)
|
|
|
|
// First thing we need to do is remove the prologue light IPL groups to fix bug # 1717335
|
|
PRINTLN("Removing prologue IPL light groups on startup")
|
|
REMOVE_IPL("prologue_DistantLights")
|
|
REMOVE_IPL("prologue_LODLights")
|
|
|
|
eGameType = eGameGTA
|
|
|
|
//For bug 2149703 where JPN Final bail doesn't look like the game is faded out.
|
|
#IF IS_JAPANESE_BUILD
|
|
IF IS_SCREEN_FADED_IN() OR IS_SCREEN_FADING_IN()
|
|
CPRINTLN(DEBUG_INIT, "Game started faded in, fading out here. fadeout")
|
|
#IF USE_FINAL_PRINTS
|
|
PRINTLN_FINAL("BC: Game started faded in, fading out here. fadeout ")
|
|
#ENDIF
|
|
DO_SCREEN_FADE_OUT(0)
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
#IF FEATURE_SP_DLC_SELECTION
|
|
|
|
// =================================================
|
|
// DLC SELECTION SCREEN
|
|
// =================================================
|
|
|
|
IF IS_DLC_PRESENT(HASH("dlc_agentTrevor"))
|
|
OR IS_DLC_PRESENT(HASH("spNorman"))
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
IF GET_COMMANDLINE_PARAM_EXISTS("ForceClifford")
|
|
eGameType = eGameClifford
|
|
ELIF GET_COMMANDLINE_PARAM_EXISTS("ForceNorman")
|
|
eGameType = eGameNorman
|
|
ELSE
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_FLOW, "<DLC_SELECT> DLC selection beginning.")
|
|
SHUTDOWN_LOADING_SCREEN()
|
|
DO_SCREEN_FADE_in(0)
|
|
|
|
BOOL bChoiceMade = false
|
|
INT iSelectionChoiceTimer
|
|
FLOAT fCliffordX, fCliffordY
|
|
FLOAT fNormanX, fNormanY
|
|
INT fStickLeftX,fStickLeftY,fStickRightX,fStickRightY
|
|
|
|
fCliffordX = 0.6
|
|
fCliffordY = 0.5
|
|
fNormanX = 0.5
|
|
fNormanY = 0.6
|
|
|
|
fStickLeftX= 0
|
|
fStickLeftY= 0
|
|
fStickRightX= 0
|
|
fStickRightY= 0
|
|
|
|
IF IS_DLC_PRESENT(HASH("spNorman"))
|
|
AND NOT IS_DLC_PRESENT(HASH("dlc_agentTrevor"))
|
|
fNormanX = 0.6
|
|
fNormanY = 0.5
|
|
ENDIF
|
|
|
|
WHILE !bChoiceMade
|
|
DRAW_RECT(0.5, 0.5, 1.0, 1.0, 0, 0, 0, 255)
|
|
SET_TEXT_CENTRE(TRUE)
|
|
|
|
GET_CONTROL_VALUE_OF_ANALOGUE_STICKS(fStickLeftX,fStickLeftY,fStickRightX,fStickRightY,true)
|
|
|
|
SWITCH eGameType
|
|
|
|
//GTA selected
|
|
CASE eGameGTA
|
|
|
|
//Green selected GTAV.
|
|
SET_TEXT_SCALE(0.6, 0.6)
|
|
SET_TEXT_COLOUR(0,255,0,255)
|
|
DISPLAY_TEXT(0.4, 0.5, "DBG_GTAV")
|
|
|
|
//Red un-selected Clifford and Norman.
|
|
IF IS_DLC_PRESENT(HASH("dlc_agentTrevor"))
|
|
SET_TEXT_SCALE(0.4, 0.4)
|
|
SET_TEXT_COLOUR(255,0,0,150)
|
|
DISPLAY_TEXT(fCliffordX, fCliffordY, "DBG_CLIF")
|
|
ENDIF
|
|
IF IS_DLC_PRESENT(HASH("spNorman"))
|
|
SET_TEXT_SCALE(0.4, 0.4)
|
|
SET_TEXT_COLOUR(255,0,0,150)
|
|
DISPLAY_TEXT(fNormanX, fNormanY, "DBG_NORM")
|
|
ENDIF
|
|
|
|
|
|
//Input detection.
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
#IF IS_DEBUG_BUILD
|
|
OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_RETURN)
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_FLOW, "<DLC_SELECT> Original GTA V selected.")
|
|
bChoiceMade = TRUE
|
|
DO_SCREEN_FADE_OUT(0)
|
|
|
|
ELIF fStickLeftX < -80
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
#IF IS_DEBUG_BUILD
|
|
OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_LEFT)
|
|
#ENDIF
|
|
IF GET_GAME_TIMER() - iSelectionChoiceTimer > 250
|
|
IF NOT IS_DLC_PRESENT(HASH("spNorman"))
|
|
eGameType = eGameClifford
|
|
ELSE
|
|
eGameType = eGameNorman
|
|
ENDIF
|
|
iSelectionChoiceTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
|
|
ELIF fStickLeftX > 80
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
#IF IS_DEBUG_BUILD
|
|
OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_RIGHT)
|
|
#ENDIF
|
|
IF GET_GAME_TIMER() - iSelectionChoiceTimer > 250
|
|
IF NOT IS_DLC_PRESENT(HASH("dlc_agentTrevor"))
|
|
eGameType = eGameNorman
|
|
ELSE
|
|
eGameType = eGameClifford
|
|
ENDIF
|
|
iSelectionChoiceTimer = GET_GAME_TIMER()
|
|
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//Clifford DLC selected.
|
|
CASE eGameClifford
|
|
|
|
//Green selected Clifford.
|
|
SET_TEXT_SCALE(0.6, 0.6)
|
|
SET_TEXT_COLOUR(0,255,0,255)
|
|
DISPLAY_TEXT(fCliffordX, fCliffordY, "DBG_CLIF")
|
|
|
|
//Red un-selected GTAV and Norman.
|
|
SET_TEXT_SCALE(0.4, 0.4)
|
|
SET_TEXT_COLOUR(255,0,0,150)
|
|
DISPLAY_TEXT(0.4, 0.5, "DBG_GTAV")
|
|
|
|
IF IS_DLC_PRESENT(HASH("spNorman"))
|
|
SET_TEXT_SCALE(0.4, 0.4)
|
|
SET_TEXT_COLOUR(255,0,0,150)
|
|
DISPLAY_TEXT(fNormanX, fNormanY, "DBG_NORM")
|
|
ENDIF
|
|
|
|
//Input detection.
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
#IF IS_DEBUG_BUILD
|
|
OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_RETURN)
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_FLOW, "<DLC_SELECT> DLC Clifford selected.")
|
|
bChoiceMade = TRUE
|
|
DO_SCREEN_FADE_OUT(0)
|
|
|
|
ELIF fStickLeftX < -80
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
#IF IS_DEBUG_BUILD
|
|
OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_LEFT)
|
|
#ENDIF
|
|
IF GET_GAME_TIMER() - iSelectionChoiceTimer > 250
|
|
eGameType = eGameGTA
|
|
iSelectionChoiceTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
|
|
ELIF fStickLeftX > 80
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
#IF IS_DEBUG_BUILD
|
|
OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_RIGHT)
|
|
#ENDIF
|
|
IF GET_GAME_TIMER() - iSelectionChoiceTimer > 250
|
|
IF IS_DLC_PRESENT(HASH("spNorman"))
|
|
eGameType = eGameNorman
|
|
ELSE
|
|
eGameType = eGameGTA
|
|
ENDIF
|
|
iSelectionChoiceTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
|
|
//Norman selected.
|
|
CASE eGameNorman
|
|
|
|
//Green selected Norman.
|
|
SET_TEXT_SCALE(0.6, 0.6)
|
|
SET_TEXT_COLOUR(0,255,0,255)
|
|
DISPLAY_TEXT(fNormanX, fNormanY, "DBG_NORM")
|
|
|
|
//Red un-selected GTAV and Clifford.
|
|
SET_TEXT_SCALE(0.4, 0.4)
|
|
SET_TEXT_COLOUR(255,0,0,150)
|
|
DISPLAY_TEXT(0.4, 0.5, "DBG_GTAV")
|
|
|
|
IF IS_DLC_PRESENT(HASH("dlc_agentTrevor"))
|
|
SET_TEXT_SCALE(0.4, 0.4)
|
|
SET_TEXT_COLOUR(255,0,0,150)
|
|
DISPLAY_TEXT(fCliffordX, fCliffordY, "DBG_CLIF")
|
|
ENDIF
|
|
|
|
//Input detection.
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
#IF IS_DEBUG_BUILD
|
|
OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_RETURN)
|
|
#ENDIF
|
|
CPRINTLN(DEBUG_FLOW, "<DLC_SELECT> DLC Norman selected.")
|
|
//will be setting globals to false here
|
|
bChoiceMade = TRUE
|
|
DO_SCREEN_FADE_OUT(0)
|
|
|
|
ELIF fStickLeftX < -80
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
#IF IS_DEBUG_BUILD
|
|
OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_LEFT)
|
|
#ENDIF
|
|
IF GET_GAME_TIMER() - iSelectionChoiceTimer > 250
|
|
IF IS_DLC_PRESENT(HASH("dlc_agentTrevor"))
|
|
eGameType = eGameClifford
|
|
ELSE
|
|
eGameType = eGameGTA
|
|
ENDIF
|
|
iSelectionChoiceTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
|
|
ELIF fStickLeftX > 80
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
#IF IS_DEBUG_BUILD
|
|
OR IS_KEYBOARD_KEY_JUST_PRESSED(KEY_RIGHT)
|
|
#ENDIF
|
|
IF GET_GAME_TIMER() - iSelectionChoiceTimer > 250
|
|
eGameType = eGameGTA
|
|
iSelectionChoiceTimer = GET_GAME_TIMER()
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
WAIT(0)
|
|
ENDWHILE
|
|
CPRINTLN(DEBUG_FLOW, "<DLC_SELECT> DLC selection finished.")
|
|
#IF IS_DEBUG_BUILD
|
|
ENDIF
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
// =================================================
|
|
// DLC SELECTION SCREEN - END
|
|
// =================================================
|
|
|
|
#ENDIF //FEATURE_SP_DLC_SELECTION
|
|
|
|
|
|
//Cache and store whether or not we are booting directly into MP.
|
|
//Read this now to avoid the decision changing during init rountines!
|
|
BOOL bLocalMultiplayerOnStartup = LOAD_SCREEN_CHOICE_IS_MULTIPLAYER()
|
|
|
|
//Don't allow boots into Multiplayer for test levels.
|
|
#IF IS_DEBUG_BUILD
|
|
IF eLocalCachedLevel != LEVEL_GTA5
|
|
CPRINTLN(DEBUG_INIT, "Overriding startup choice to be SP as we are loading test level ", DEBUG_GET_LEVEL_NAME(eLocalCachedLevel), ".")
|
|
bLocalMultiplayerOnStartup = FALSE
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
IF IS_COMMANDLINE_END_USER_BENCHMARK()
|
|
OR LANDING_SCREEN_STARTED_END_USER_BENCHMARK()
|
|
CPRINTLN(DEBUG_INIT, "<LOAD-CHOICE> Overriding startup choice to be SP as we are loading an automatic benchmark.")
|
|
bLocalMultiplayerOnStartup = FALSE
|
|
ENDIF
|
|
|
|
IF bLocalMultiplayerOnStartup
|
|
CPRINTLN(DEBUG_INIT, "<LOAD-CHOICE> Commmiting to loading screen selection as multiplayer is selected.")
|
|
#IF USE_FINAL_PRINTS
|
|
PRINTLN_FINAL("<2140379> <LOAD-CHOICE> Commmiting to loading screen selection as multiplayer is selected.")
|
|
#ENDIF
|
|
|
|
COMMIT_TO_LOADINGSCREEN_SELCTION()
|
|
CPRINTLN(DEBUG_INIT, "<LOAD-CHOICE> Commmiting to loading screen selection.")
|
|
#IF USE_FINAL_PRINTS
|
|
PRINTLN_FINAL("<2140379> <LOAD-CHOICE> Commmiting to loading screen selection.")
|
|
#ENDIF
|
|
ENDIF
|
|
|
|
// Setup streaming budgets.
|
|
SET_INSTANCE_PRIORITY_MODE(INSTANCE_MODE_SINGLEPLAYER)
|
|
|
|
// By default, switch off the blue 'locate' lines
|
|
#IF IS_DEBUG_BUILD
|
|
SET_DEBUG_ACTIVE(FALSE)
|
|
#ENDIF
|
|
|
|
// ------------------------ REGISTER OTHER GLOBAL BLOCKS -----------------------------------
|
|
REGISTER_ALL_SCRIPT_GLOBALS()
|
|
|
|
CPRINTLN(DEBUG_INIT, "startup.sc - about to reset iBitFieldOfRegisteredSaveData")
|
|
iBitFieldOfRegisteredSaveData = 0
|
|
|
|
CPRINTLN(DEBUG_INIT, "sp_dlc_registration.sc - about to set SP_DLC_SAVE_DATA_HAS_BEEN_REGISTERED")
|
|
SET_BIT(iBitFieldOfRegisteredSaveData, SP_DLC_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
|
|
CPRINTLN(DEBUG_INIT, "sp_pilotschool_reg.sc - about to set SP_PILOTSCHOOL_SAVE_DATA_HAS_BEEN_REGISTERED")
|
|
SET_BIT(iBitFieldOfRegisteredSaveData, SP_PILOTSCHOOL_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
|
|
INT i
|
|
REPEAT MAX_MP_PROPERTIES+1 i
|
|
GET_MP_PROPERTY_DETAILS_FULL(mpProperties[i],i)
|
|
PRINTLN("MP_PROP_GLOBAL_BLOCK: filled in details for MP property #",i)
|
|
ENDREPEAT
|
|
|
|
Register_All_ReplayEditor_Fx()
|
|
|
|
CPRINTLN(DEBUG_INIT, "Core variables initialised.")
|
|
|
|
// Re-create any global array data prior to reloading any saved data.
|
|
SWITCH eGameType
|
|
CASE eGameGTA
|
|
CPRINTLN(DEBUG_INIT, "About to request and launch GLOBALS_BLOCK_STANDARD.")
|
|
Request_And_Launch_Script_With_Wait(HASH("standard_global_init"), DEFAULT_STACK_SIZE)
|
|
SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(HASH("standard_global_init"))
|
|
BREAK
|
|
|
|
#IF FEATURE_SP_DLC_SELECTION
|
|
CASE eGameClifford
|
|
CPRINTLN(DEBUG_INIT, "About to request and launch GLOBALS_BLOCK_STANDARD.")
|
|
Request_And_Launch_Script_With_Wait(HASH("sp_clifford_init"), DEFAULT_STACK_SIZE)
|
|
SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(HASH("sp_clifford_init"))
|
|
BREAK
|
|
CASE eGameNorman
|
|
CPRINTLN(DEBUG_INIT, "About to request and launch GLOBALS_BLOCK_STANDARD.")
|
|
Request_And_Launch_Script_With_Wait(HASH("sp_norman_init"), DEFAULT_STACK_SIZE)
|
|
SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(HASH("sp_norman_init"))
|
|
BREAK
|
|
#ENDIF //FEATURE_SP_DLC_SELECTION
|
|
|
|
ENDSWITCH
|
|
|
|
// IMPORTANT: THERE SHOULD BE NO 'WAIT' COMMANDS BEFORE HERE
|
|
WAIT (0)
|
|
|
|
g_bIsStartUp = TRUE // Used to stop SET_GLOBAL_INSTANCE_PRIORITY_SP being called in main_persistant.sc
|
|
g_bRunMultiplayerOnStartup = bLocalMultiplayerOnStartup
|
|
|
|
//Store out what level we are running to a global.
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_INIT, "Cached the level being run as ", DEBUG_GET_LEVEL_NAME(eLocalCachedLevel), ".")
|
|
g_eCachedLevel = eLocalCachedLevel
|
|
#ENDIF
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
|
|
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
// SAVE GLOBALS REGISTRATION and RELOADING
|
|
// This will need to default the initialised flags for each system to FALSE
|
|
// Once all globals for a system are initialised it's initialised flag will
|
|
// be set to TRUE and saved. After a reload the flag will therefore be
|
|
// FALSE if no data for that system has previously been saved, or TRUE
|
|
// if the globals for that system have already been initialised and saved.
|
|
// NOTE: After a reload, the system should initialise its global saved variables
|
|
// if the flag is FALSE and leave them alone if the flag is TRUE.
|
|
// NOTE: If all global saved variables for a system are re-initialised prior to
|
|
// this reload, then an 'initialised' flag isn't needed because there is no
|
|
// initialisation being done after the reload takes place.
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
|
|
// Mission Flow Globals are initialised PRIOR to reloading the save, so don't need an initialised flag for them
|
|
// KGM TEMP: Don't really want to reload anything at the moment until flow mode is activated
|
|
// Register all the global save variables
|
|
// (Add a _reg.sch header script to shared/globals/registration for each system)
|
|
|
|
SWITCH eGameType
|
|
|
|
CASE eGameGTA
|
|
|
|
g_bLoadedClifford = FALSE
|
|
g_bLoadedNorman = FALSE
|
|
CPRINTLN(DEBUG_INIT, "About to request and launch GLOBALS_BLOCK_STANDARD.")
|
|
Request_And_Launch_Script_With_Wait(HASH("standard_global_reg"), DEFAULT_STACK_SIZE)
|
|
SET_SCRIPT_AS_NO_LONGER_NEEDED("standard_global_reg")
|
|
|
|
WHILE (NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_DLC_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
OR NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_PILOTSCHOOL_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
OR NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, STANDARD_GLOBAL_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
)
|
|
IF NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_DLC_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
CPRINTLN(DEBUG_INIT, "startup.sc - SP_DLC_SAVE_DATA_HAS_BEEN_REGISTERED is not set")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_PILOTSCHOOL_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
CPRINTLN(DEBUG_INIT, "startup.sc - SP_PILOTSCHOOL_SAVE_DATA_HAS_BEEN_REGISTERED is not set")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, STANDARD_GLOBAL_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
CPRINTLN(DEBUG_INIT, "startup.sc - STANDARD_GLOBAL_SAVE_DATA_HAS_BEEN_REGISTERED is not set")
|
|
ENDIF
|
|
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
// Something must be registered here as the first script to run must register atleast one global.
|
|
START_SAVE_DATA(g_savedGlobals, SIZE_OF(g_savedGlobals.fSaveVersion), TRUE)
|
|
REGISTER_FLOAT_TO_SAVE(g_savedGlobals.fSaveVersion , "fSaveVersion")
|
|
STOP_SAVE_DATA()
|
|
|
|
// Store out the version of the savefile we just loaded and then overwrite this value with our
|
|
// local savefile version. This will be written to any savefiles we make this session.
|
|
// This must run after the SECOND registration of g_savedGlobals.fSaveVersion.
|
|
// The first registration is done in Standard_global_reg.sc - if we write the value of g_savedGlobals.fSaveVersion
|
|
// before the second registration we can lose it's new value.
|
|
IF g_bRestoredSaveThisSession
|
|
g_fLoadedSaveVersion = g_savedGlobals.fSaveVersion
|
|
ENDIF
|
|
g_savedGlobals.fSaveVersion = SAVE_GAME_VERSION
|
|
|
|
IF g_bRestoredSaveThisSession
|
|
CPRINTLN(DEBUG_INIT, "-------------------------------------------")
|
|
CPRINTLN(DEBUG_INIT, "Local Save Version: ", SAVE_GAME_VERSION)
|
|
CPRINTLN(DEBUG_INIT, "Loaded Save Version: ", g_fLoadedSaveVersion)
|
|
CPRINTLN(DEBUG_INIT, "New Save Version: ", g_savedGlobals.fSaveVersion)
|
|
CPRINTLN(DEBUG_INIT, "-------------------------------------------")
|
|
|
|
//Have we loaded a save from an older version of the game. If so apply any required data patches.
|
|
IF g_fLoadedSaveVersion != SAVE_GAME_VERSION
|
|
CPRINTLN(DEBUG_INIT, "<SAVE-PATCH> Applying save game script patching.")
|
|
APPLY_SAVEGAME_PATCHING(g_fLoadedSaveVersion)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
#IF FEATURE_SP_DLC_SELECTION
|
|
CASE eGameClifford
|
|
|
|
g_bLoadedClifford = TRUE
|
|
g_bLoadedNorman = FALSE
|
|
|
|
CPRINTLN(DEBUG_INIT, "About to request and launch GLOBALS_BLOCK_SP_CLF_DLC.")
|
|
Request_And_Launch_Script_With_Wait(HASH("sp_clifford_reg"), DEFAULT_STACK_SIZE)
|
|
SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(HASH("sp_clifford_reg"))
|
|
|
|
WHILE (NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_DLC_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
OR NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_PILOTSCHOOL_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
OR NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_CLIFFORD_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
)
|
|
IF NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_DLC_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
CPRINTLN(DEBUG_INIT, "startup.sc - SP_DLC_SAVE_DATA_HAS_BEEN_REGISTERED is not set")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_PILOTSCHOOL_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
CPRINTLN(DEBUG_INIT, "startup.sc - SP_PILOTSCHOOL_SAVE_DATA_HAS_BEEN_REGISTERED is not set")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_CLIFFORD_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
CPRINTLN(DEBUG_INIT, "startup.sc - SP_CLIFFORD_SAVE_DATA_HAS_BEEN_REGISTERED is not set")
|
|
ENDIF
|
|
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
START_SAVE_DATA(g_savedGlobals, SIZE_OF(g_savedGlobals.fSaveVersion), TRUE)
|
|
REGISTER_FLOAT_TO_SAVE(g_savedGlobals.fSaveVersion , "fSaveVersion")
|
|
STOP_SAVE_DATA()
|
|
BREAK
|
|
|
|
CASE eGameNorman
|
|
|
|
g_bLoadedClifford = FALSE
|
|
g_bLoadedNorman = TRUE
|
|
|
|
Request_And_Launch_Script_With_Wait(HASH("sp_norman_reg"), DEFAULT_STACK_SIZE)
|
|
SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(HASH("sp_norman_reg"))
|
|
|
|
WHILE (NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_DLC_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
OR NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_PILOTSCHOOL_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
OR NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_NORMAN_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
)
|
|
IF NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_DLC_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
CPRINTLN(DEBUG_INIT, "startup.sc - SP_DLC_SAVE_DATA_HAS_BEEN_REGISTERED is not set")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_PILOTSCHOOL_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
CPRINTLN(DEBUG_INIT, "startup.sc - SP_PILOTSCHOOL_SAVE_DATA_HAS_BEEN_REGISTERED is not set")
|
|
ENDIF
|
|
|
|
IF NOT IS_BIT_SET(iBitFieldOfRegisteredSaveData, SP_NORMAN_SAVE_DATA_HAS_BEEN_REGISTERED)
|
|
CPRINTLN(DEBUG_INIT, "startup.sc - SP_NORMAN_SAVE_DATA_HAS_BEEN_REGISTERED is not set")
|
|
ENDIF
|
|
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
START_SAVE_DATA(g_savedGlobals, SIZE_OF(g_savedGlobals.fSaveVersion), TRUE)
|
|
REGISTER_FLOAT_TO_SAVE(g_savedGlobals.fSaveVersion , "fSaveVersion")
|
|
STOP_SAVE_DATA()
|
|
BREAK
|
|
|
|
#ENDIF //FEATURE_SP_DLC_SELECTION
|
|
|
|
ENDSWITCH
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
#IF SCRIPT_PROFILER_ACTIVE
|
|
CPRINTLN(DEBUG_INIT, "About to request and launch profiler registration.")
|
|
Request_And_Launch_Script_With_Wait(HASH("profiler_registration"), DEFAULT_STACK_SIZE)
|
|
SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(HASH("profiler_registration"))
|
|
#ENDIF
|
|
#ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
RunningTotalOfStructures = 0
|
|
#ENDIF
|
|
|
|
TEXT_LABEL_63 textLabel63
|
|
//INT iSizeOfNonSavedData = 0
|
|
// iSizeOfNonSavedData += SIZE_OF(g_savedMPGlobalsNew.g_savedMPGlobals[i].MpSavedGeneral.iMultiPropertyValueArray)
|
|
START_SAVE_DATA(g_savedMPGlobalsNew, SIZE_OF(g_savedMPGlobalsNew), FALSE)
|
|
START_SAVE_ARRAY_WITH_SIZE(g_savedMPGlobalsNew.g_savedMPGlobals, SIZE_OF(g_savedMPGlobalsNew.g_savedMPGlobals), "g_savedMPGlobals")
|
|
#IF IS_DEBUG_BUILD
|
|
VerifySizeOfSavedStructure(1, "g_savedMPGlobals",FALSE)
|
|
#ENDIF
|
|
REPEAT SAVE_GAME_CHARACTER_SLOTS i
|
|
//iSizeOfNonSavedData = 0
|
|
// REGISTER_MP_VEHICLES_SAVED_GLOBALS(g_savedMPGlobalsNew.g_savedMPGlobals[i],i)
|
|
// #IF IS_DEBUG_BUILD
|
|
// textLabel63 = "g_savedMPGlobals.MpSavedVehicles"
|
|
// textLabel63 += i
|
|
// VerifySizeOfSavedStructure(SIZE_OF(g_savedMPGlobalsNew.g_savedMPGlobals[i].MpSavedVehicles), textLabel63,FALSE)
|
|
// #ENDIF
|
|
REGISTER_MP_BIG_ASS_VEHICLES_SAVED_GLOBALS(g_savedMPGlobalsNew.g_savedMPGlobals[i],i)
|
|
#IF IS_DEBUG_BUILD
|
|
textLabel63 = "g_savedMPGlobals.MpSavedBigAssVehicles"
|
|
textLabel63 += i
|
|
VerifySizeOfSavedStructure(SIZE_OF(g_savedMPGlobalsNew.g_savedMPGlobals[i].MpSavedBigAssVehicles),textLabel63 ,FALSE)
|
|
#ENDIF
|
|
REGISTER_MP_PROPERTY_SAVED_GLOBALS(g_savedMPGlobalsNew.g_savedMPGlobals[i],i)
|
|
#IF IS_DEBUG_BUILD
|
|
textLabel63 = "g_savedMPGlobals.MpSavedProperty"
|
|
textLabel63 += i
|
|
VerifySizeOfSavedStructure(SIZE_OF(g_savedMPGlobalsNew.g_savedMPGlobals[i].MpSavedProperty), textLabel63,FALSE)
|
|
#ENDIF
|
|
/* REGISTER_MP_BUDDIES_SAVED_GLOBALS()
|
|
#IF IS_DEBUG_BUILD
|
|
VerifySizeOfSavedStructure(SIZE_OF(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedBuddies), "g_savedMPGlobals.MpSavedBuddies",FALSE)
|
|
#ENDIF*/
|
|
REGISTER_MP_CARAPP_SAVED_GLOBALS(g_savedMPGlobalsNew.g_savedMPGlobals[i],i)
|
|
#IF IS_DEBUG_BUILD
|
|
textLabel63 = "g_savedMPGlobals.MpSavedCarApp"
|
|
textLabel63 += i
|
|
VerifySizeOfSavedStructure(SIZE_OF(g_savedMPGlobalsNew.g_savedMPGlobals[i].MpSavedCarApp),textLabel63 ,FALSE)
|
|
#ENDIF
|
|
REGISTER_MP_GENERAL_SAVED_GLOBALS(g_savedMPGlobalsNew.g_savedMPGlobals[i],i)
|
|
#IF IS_DEBUG_BUILD
|
|
textLabel63 = "g_savedMPGlobals.MpSavedGeneral"
|
|
textLabel63 += i
|
|
VerifySizeOfSavedStructure(SIZE_OF(g_savedMPGlobalsNew.g_savedMPGlobals[i].MpSavedGeneral),textLabel63,FALSE)
|
|
//iSizeOfNonSavedData += SIZE_OF(g_savedMPGlobalsNew.g_savedMPGlobals[i].MpSavedGeneral.iMultiPropertyValueArray)
|
|
#ENDIF
|
|
REGISTER_MP_BOUNTY_SAVED_GLOBALS(g_savedMPGlobalsNew.g_savedMPGlobals[i],i)
|
|
#IF IS_DEBUG_BUILD
|
|
textLabel63 = "g_savedMPGlobals.MpSavedBounty"
|
|
textLabel63 += i
|
|
VerifySizeOfSavedStructure(SIZE_OF(g_savedMPGlobalsNew.g_savedMPGlobals[i].MpSavedBounty),textLabel63 ,FALSE)
|
|
#ENDIF
|
|
REGISTER_MP_ATM_SAVED_GLOBALS(g_savedMPGlobalsNew.g_savedMPGlobals[i],i)
|
|
#IF IS_DEBUG_BUILD
|
|
textLabel63 = "g_savedMPGlobals.MpSavedATM"
|
|
textLabel63 += i
|
|
VerifySizeOfSavedStructure(SIZE_OF(g_savedMPGlobalsNew.g_savedMPGlobals[i].MpSavedATM), textLabel63,FALSE)
|
|
#ENDIF
|
|
|
|
INIT_ALL_MP_SCRIPT_SAVES(g_savedMPGlobalsNew.g_savedMPGlobals[i],i)
|
|
#IF IS_DEBUG_BUILD
|
|
textLabel63 = "g_savedMPGlobals.mpSaveData"
|
|
textLabel63 += i
|
|
VerifySizeOfSavedStructure(SIZE_OF(g_savedMPGlobalsNew.g_savedMPGlobals[i].mpSaveData),textLabel63 ,FALSE)
|
|
#ENDIF
|
|
ENDREPEAT
|
|
STOP_SAVE_STRUCT()
|
|
STOP_SAVE_DATA()
|
|
|
|
INT SizeOfMPStruct = SIZE_OF(g_savedMPGlobalsNew)// - iSizeOfNonSavedData
|
|
INT SizeOfMPRegisteredVariables = GET_SIZE_OF_SAVE_DATA(FALSE)
|
|
CPRINTLN(DEBUG_INIT, "SizeOfMPStruct = ", SizeOfMPStruct)
|
|
CPRINTLN(DEBUG_INIT, "SizeOfMPRegisteredVariables = ", SizeOfMPRegisteredVariables)
|
|
|
|
#IF __ASSERT_IF_SAVEGAME_SIZES_DIFFER
|
|
IF SizeOfMPStruct <> SizeOfMPRegisteredVariables
|
|
SCRIPT_ASSERT("Size of MP save struct differs from size of registered MP save variables - check TTY")
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
CPRINTLN(DEBUG_INIT, "Saved MP globals registered and restored.")
|
|
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
// SAVE GLOBALS REGISTRATION and RELOADING - END
|
|
// -----------------------------------------------------------------------------------------------------------
|
|
|
|
// Start fetching all the commerce product data from the cloud
|
|
IF NOT IS_COMMERCE_DATA_VALID()
|
|
AND NOT IS_COMMERCE_DATA_FETCH_IN_PROGRESS()
|
|
CPRINTLN(DEBUG_INIT, "Fetching thin commerce data.")
|
|
TRIGGER_COMMERCE_DATA_FETCH(FALSE)
|
|
ENDIF
|
|
|
|
// Fix for bug 1310944 - Can someone use this new script command to
|
|
// prevent prologue nodes from streaming in when the map isn't loaded?
|
|
SET_ALLOW_STREAM_PROLOGUE_NODES(FALSE)
|
|
|
|
//Ensure code don't think we're still in animal form.
|
|
SET_PLAYER_IS_IN_ANIMAL_FORM(FALSE)
|
|
|
|
// Set the network privilage bools
|
|
Set_Network_Privilege_Bools()
|
|
|
|
//Populate array with tunnel locations
|
|
POPULATE_TUNNEL_INTERIOR_INDEX_LIST()
|
|
|
|
|
|
CPRINTLN(DEBUG_INIT, "Startup.sc ended.")
|
|
TERMINATE_THIS_THREAD()
|
|
ENDSCRIPT
|