Files
gtav-src/script/dev_ng/singleplayer/scripts/main/landing_pre_startup.sc
T
2025-09-29 00:52:08 +02:00

86 lines
2.3 KiB
Python
Executable File

USING "globals.sch"
USING "mp_globals_new_features_TU.sch"
USING "commands_landingpage.sch"
USING "commands_script.sch"
USING "commands_streaming.sch"
USING "stack_sizes.sch"
USING "Transition_Controller.sch"
USING "PreloadStartupScripts.sch"
#IF IS_DEBUG_BUILD
USING "commands_debug.sch"
#ENDIF
#IF FEATURE_GEN9_STANDALONE
FUNC STRING GET_STARTUP_SCRIPT_NAME()
STRING initialScriptName = "startup"
IF NOT IS_GAME_INSTALLED()
initialScriptName = "startup_install"
ENDIF
RETURN initialScriptName
ENDFUNC
PROC REQUEST_AND_LAUNCH_STARTUP_SCRIPT_WITH_WAIT()
STRING initialScriptName = GET_STARTUP_SCRIPT_NAME()
#IF IS_DEBUG_BUILD
IF GET_COMMANDLINE_PARAM_EXISTS("startupscript")
initialScriptName = GET_COMMANDLINE_PARAM("startupscript")
ENDIF
#ENDIF
PRINTLN("[LANDING_PRE_STARTUP] Requesting ", initialScriptName)
REQUEST_SCRIPT(initialScriptName)
WHILE NOT HAS_SCRIPT_LOADED(initialScriptName)
PRINTLN("[LANDING_PRE_STARTUP] Requesting ", initialScriptName)
REQUEST_SCRIPT(initialScriptName)
WAIT(0)
ENDWHILE
PRINTLN("[LANDING_PRE_STARTUP] Calling START_NEW_SCRIPT for ", initialScriptName)
START_NEW_SCRIPT(initialScriptName, DEFAULT_STACK_SIZE)
SET_SCRIPT_AS_NO_LONGER_NEEDED(initialScriptName)
ENDPROC
#ENDIF // FEATURE_GEN9_STANDALONE
SCRIPT
#IF FEATURE_GEN9_STANDALONE
NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME()
IF IS_GAME_INSTALLED()
REQUEST_SCRIPT(GET_STARTUP_SCRIPT_NAME())
PRELOAD_ALL_STARTUP_SCRIPTS()
ENDIF
WHILE IS_LANDING_PAGE_ACTIVE()
WAIT(0)
ENDWHILE
// We don't register log channels until startup. Rather than change this, let's just print without one.
PRINTLN("[LANDING_PRE_STARTUP] Finished running MAINTAIN_INITIAL_LANDING_PAGE")
// After the initial Landing Page (if enabled) we still need to load the game session. Scripts must wait until this is complete.
#IF IS_DEBUG_BUILD
INT iWaitStartedAt = GET_FRAME_COUNT()
#ENDIF
WHILE NOT IS_SESSION_INITIALIZED()
#IF IS_DEBUG_BUILD
IF (GET_FRAME_COUNT() - iWaitStartedAt) % 30 = 0
PRINTLN("[LANDING_PRE_STARTUP] Waiting for game session")
ENDIF
#ENDIF
WAIT(0)
ENDWHILE
PRINTLN("[LANDING_PRE_STARTUP] Calling REQUEST_AND_LAUNCH_STARTUP_SCRIPT_WITH_WAIT")
REQUEST_AND_LAUNCH_STARTUP_SCRIPT_WITH_WAIT()
#ENDIF // FEATURE_GEN9_STANDALONE
ENDSCRIPT