761 lines
30 KiB
XML
Executable File
761 lines
30 KiB
XML
Executable File
USING "globals.sch"
|
|
USING "commands_camera.sch"
|
|
USING "minigames_helpers.sch"
|
|
USING "script_usecontext.sch"
|
|
|
|
CONST_FLOAT MG_BIG_MESSAGE_ANIM_TIME 0.15
|
|
CONST_FLOAT MG_BIG_MESSAGE_ANIM_TIME_SLOW 0.3
|
|
|
|
ENUM MG_BIG_MESSAGE_TYPE
|
|
MG_BIG_MESSAGE_WASTED,
|
|
MG_BIG_MESSAGE_BUSTED,
|
|
MG_BIG_MESSAGE_CENTERED,
|
|
MG_BIG_MESSAGE_CENTERED_TOP,
|
|
MG_BIG_MESSAGE_MIDSIZED,
|
|
MG_BIG_MESSAGE_MISSION_END,
|
|
MG_BIG_MESSAGE_MISSION_PASSED,
|
|
MG_BIG_MESSAGE_MISSION_FAILED
|
|
ENDENUM
|
|
|
|
/// PURPOSE: Used for the splash state
|
|
ENUM MG_FAIL_SPLASH_STATE
|
|
FAIL_SPLASH_STATE_INVALID = -1,
|
|
FAIL_SPLASH_STATE_INIT,
|
|
FAIL_SPLASH_STATE_DISPLAY,
|
|
FAIL_SPLASH_STATE_WAIT_FOR_INPUT,
|
|
FAIL_SPLASH_STATE_TRANSITION_OUT_INIT,
|
|
FAIL_SPLASH_STATE_TRANSITION_OUT
|
|
ENDENUM
|
|
|
|
ENUM MG_FAIL_SPLASH_FLAGS
|
|
FAIL_SPLASH_EMPTY = 0,
|
|
FAIL_SPLASH_ENABLE_PLAYER_CONTROL = BIT0,
|
|
FAIL_SPLASH_ALLOW_ABANDON = BIT1,
|
|
FAIL_SPLASH_ENABLE_SOUNDS = BIT2,
|
|
FAIL_SPLASH_ENABLE_FX = BIT3,
|
|
FAIL_SPLASH_HIDE_BUTTONS = BIT4,
|
|
FAIL_SPLASH_ANIMATE_SUB = BIT5,
|
|
FAIL_SPLASH_FADE_ON_RETRY = BIT6,
|
|
|
|
FAIL_SPLASH_DEFAULT_FLAGS = BIT1 + BIT2 + BIT3 + BIT6// + BIT5//allow abandon, enable sounds, enable vfx, DON'T animate sub, fade out on retry. (dont hide buttons or enable player control)
|
|
ENDENUM
|
|
|
|
STRUCT MG_FAIL_SPLASH
|
|
MG_FAIL_SPLASH_STATE eState
|
|
structTimer ButtonInput
|
|
structTimer AbandonSplash
|
|
structTimer tStraplineTimer
|
|
SIMPLE_USE_CONTEXT context
|
|
FLOAT fTransitionUpTime, fButtonDelay
|
|
BOOL bAnimStarted
|
|
BOOL bTransOut
|
|
BOOL bRetry
|
|
ENDSTRUCT
|
|
|
|
//RANKUP AND WEAPON PUCHASE IS NOT SUPPORTED!!! (BUT CAN BE IF NEEDED) -AsD
|
|
|
|
STRUCT SCRIPT_SCALEFORM_BIG_MESSAGE
|
|
SCALEFORM_INDEX siMovie
|
|
INT iDuration
|
|
structTimer movieTimer
|
|
ENDSTRUCT
|
|
|
|
FUNC SCALEFORM_INDEX REQUEST_MG_BIG_MESSAGE()
|
|
RETURN REQUEST_SCALEFORM_MOVIE("MP_BIG_MESSAGE_FREEMODE")
|
|
ENDFUNC
|
|
|
|
FUNC SCALEFORM_INDEX REQUEST_MIDSIZED_MESSAGE()
|
|
RETURN REQUEST_SCALEFORM_MOVIE("MIDSIZED_MESSAGE")
|
|
ENDFUNC
|
|
|
|
PROC CLEANUP_MG_BIG_MESSAGE(SCRIPT_SCALEFORM_BIG_MESSAGE & scaleformStruct)
|
|
IF HAS_SCALEFORM_MOVIE_LOADED(scaleformStruct.siMovie)
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(scaleformStruct.siMovie)
|
|
scaleformStruct.siMovie = NULL
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC STRING GET_STRING_FROM_BIG_MESSAGE_TYPE_ENUM(MG_BIG_MESSAGE_TYPE eMessageType)
|
|
SWITCH eMessageType
|
|
CASE MG_BIG_MESSAGE_WASTED
|
|
RETURN "SHOW_WASTED_MP_MESSAGE"
|
|
CASE MG_BIG_MESSAGE_BUSTED
|
|
RETURN "SHOW_BUSTED_MP_MESSAGE"
|
|
CASE MG_BIG_MESSAGE_CENTERED
|
|
RETURN "SHOW_CENTERED_MP_MESSAGE_LARGE"
|
|
CASE MG_BIG_MESSAGE_CENTERED_TOP
|
|
RETURN "SHOW_CENTERED_TOP_MP_MESSAGE"
|
|
CASE MG_BIG_MESSAGE_MIDSIZED
|
|
RETURN "SHOW_MIDSIZED_MESSAGE"
|
|
CASE MG_BIG_MESSAGE_MISSION_END
|
|
RETURN "SHOW_MISSION_END_MP_MESSAGE"
|
|
CASE MG_BIG_MESSAGE_MISSION_PASSED
|
|
RETURN "SHOW_MISSION_PASSED_MESSAGE"
|
|
CASE MG_BIG_MESSAGE_MISSION_FAILED
|
|
RETURN "SHOW_MISSION_FAILED_MP_MESSAGE"
|
|
|
|
DEFAULT
|
|
PRINTLN("minigame_big_message - GET_STRING_FROM_BIG_MESSAGE_TYPE_ENUM - Could't find a matching string. Returning default")
|
|
RETURN "SHOW_CENTERED_MP_MESSAGE_LARGE"
|
|
ENDSWITCH
|
|
ENDFUNC
|
|
|
|
|
|
/// PURPOSE:
|
|
/// Set big message for a given duration
|
|
/// PARAMS:
|
|
/// scaleformStruct -
|
|
/// labeToDisp - big message text label
|
|
/// strapLine - byline for the big message
|
|
/// iDuration - duration in milliseconds
|
|
/// eMessageType - Tells us what scaleform method we want to call
|
|
PROC SET_SCALEFORM_BIG_MESSAGE(SCRIPT_SCALEFORM_BIG_MESSAGE & scaleformStruct, STRING labeToDisp, STRING strapLine = NULL, INT iDuration = 4000, HUD_COLOURS eHudColor = HUD_COLOUR_YELLOW, MG_BIG_MESSAGE_TYPE eMessageType = MG_BIG_MESSAGE_CENTERED, BOOL bAnimated = FALSE, FLOAT fAnimationDuration = 0.0)
|
|
STRING sMethodName = GET_STRING_FROM_BIG_MESSAGE_TYPE_ENUM(eMessageType)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "RESET_MOVIE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, sMethodName)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(labeToDisp)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
|
|
SET_COLOUR_OF_NEXT_TEXT_COMPONENT(eHudColor)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(labeToDisp)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(strapline)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(strapline)
|
|
ENDIF
|
|
IF bAnimated
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(100)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF bAnimated
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "TRANSITION_UP")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fAnimationDuration)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
// Restart our timer for updating.
|
|
RESTART_TIMER_NOW(scaleformStruct.movieTimer)
|
|
|
|
// Store the duration.
|
|
scaleformStruct.iDuration = iDuration
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Set big message with a number token
|
|
/// UPDATE: this has been changed to support hud coloring. details in the params.
|
|
/// PARAMS:
|
|
/// scaleformStruct - local big message scaleform
|
|
/// labeToDisp - main splash text string - this needs to be in this format: ~a~ ~1~
|
|
/// iNum - Number to insert into the string.
|
|
/// iDuration - duration in milliseconds
|
|
/// eMessageType - Tells us what scaleform method we want to call
|
|
PROC SET_SCALEFORM_BIG_MESSAGE_WITH_NUMBER(SCRIPT_SCALEFORM_BIG_MESSAGE & scaleformStruct, STRING labeToDisp, INT iNum, STRING strapLine = NULL, INT iDuration = 4000, HUD_COLOURS eHudColor = HUD_COLOUR_YELLOW, MG_BIG_MESSAGE_TYPE eMessageType = MG_BIG_MESSAGE_CENTERED, BOOL bAnimated = FALSE, FLOAT fAnimationDuration = 0.0)
|
|
STRING sMethodName = GET_STRING_FROM_BIG_MESSAGE_TYPE_ENUM(eMessageType)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "RESET_MOVIE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, sMethodName)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("GEN_BIGM_NUM")
|
|
SET_COLOUR_OF_NEXT_TEXT_COMPONENT(eHudColor)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(labeToDisp)
|
|
SET_COLOUR_OF_NEXT_TEXT_COMPONENT(eHudColor)
|
|
ADD_TEXT_COMPONENT_INTEGER(iNum)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(strapline)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(strapline)
|
|
ENDIF
|
|
IF bAnimated
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(100)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF bAnimated
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "TRANSITION_UP")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fAnimationDuration)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
// Restart our timer for updating.
|
|
RESTART_TIMER_NOW(scaleformStruct.movieTimer)
|
|
|
|
// Store the duration.
|
|
scaleformStruct.iDuration = iDuration
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Set big message with a number token
|
|
/// PARAMS:
|
|
/// scaleformStruct -
|
|
/// label - splash text string
|
|
/// iNum - Number to insert into the string.
|
|
/// iDuration - duration in milliseconds
|
|
/// eMessageType - Tells us what scaleform method we want to call
|
|
PROC SET_SCALEFORM_BIG_MESSAGE_WITH_NUMBER_IN_STRAPLINE(SCRIPT_SCALEFORM_BIG_MESSAGE & scaleformStruct, STRING labeToDisp, INT iNum, STRING strapLine = NULL, INT iDuration = 4000, HUD_COLOURS eHudColor = HUD_COLOUR_YELLOW, MG_BIG_MESSAGE_TYPE eMessageType = MG_BIG_MESSAGE_CENTERED, BOOL bAnimated = FALSE, FLOAT fAnimationDuration = 0.0)
|
|
STRING sMethodName = GET_STRING_FROM_BIG_MESSAGE_TYPE_ENUM(eMessageType)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, sMethodName)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
|
|
SET_COLOUR_OF_NEXT_TEXT_COMPONENT(eHudColor)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(labeToDisp)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(labeToDisp)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(strapline)
|
|
ADD_TEXT_COMPONENT_INTEGER(iNum)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
IF bAnimated
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(100)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF bAnimated
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "TRANSITION_UP")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fAnimationDuration)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
// Restart our timer for updating.
|
|
RESTART_TIMER_NOW(scaleformStruct.movieTimer)
|
|
|
|
// Store the duration.
|
|
scaleformStruct.iDuration = iDuration
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Set big message with a number token
|
|
/// PARAMS:
|
|
/// scaleformStruct -
|
|
/// label - splash text string
|
|
/// iNum - Time in milliseconds to display in the strapline.
|
|
/// iDuration - duration in milliseconds
|
|
/// eMessageType - Tells us what scaleform method we want to call
|
|
PROC SET_SCALEFORM_BIG_MESSAGE_WITH_TIME_IN_STRAPLINE(SCRIPT_SCALEFORM_BIG_MESSAGE & scaleformStruct, STRING labeToDisp, INT iNum, STRING strapLine = NULL, INT iDuration = 4000, HUD_COLOURS eHudColor = HUD_COLOUR_YELLOW, MG_BIG_MESSAGE_TYPE eMessageType = MG_BIG_MESSAGE_CENTERED, BOOL bAnimated = FALSE, FLOAT fAnimationDuration = 0.0)
|
|
STRING sMethodName = GET_STRING_FROM_BIG_MESSAGE_TYPE_ENUM(eMessageType)
|
|
|
|
IF IS_STRING_EMPTY_HUD(strapLine)
|
|
strapLine = "STRING"
|
|
ENDIF
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, sMethodName)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
|
|
SET_COLOUR_OF_NEXT_TEXT_COMPONENT(eHudColor)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(labeToDisp)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(strapLine)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TIME(iNum, TIME_FORMAT_MINUTES | TIME_FORMAT_SECONDS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
IF bAnimated
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(100)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF bAnimated
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "TRANSITION_UP")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fAnimationDuration)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
// Restart our timer for updating.
|
|
RESTART_TIMER_NOW(scaleformStruct.movieTimer)
|
|
|
|
// Store the duration.
|
|
scaleformStruct.iDuration = iDuration
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Set big message for a given duration
|
|
/// PARAMS:
|
|
/// scaleformIndex -
|
|
/// label - splash text string
|
|
/// iNum - Number to insert into the string.
|
|
/// iDuration - duration in milliseconds
|
|
/// eMessageType - Tells us what scaleform method we want to call
|
|
PROC SET_SCALEFORM_BIG_MESSAGE_WITH_STRING_IN_STRAPLINE(SCRIPT_SCALEFORM_BIG_MESSAGE & scaleformStruct, STRING labeToDisp, STRING strapLine, STRING subString, INT iDuration = 4000, HUD_COLOURS eHudColor = HUD_COLOUR_YELLOW, MG_BIG_MESSAGE_TYPE eMessageType = MG_BIG_MESSAGE_CENTERED, BOOL bAnimated = FALSE, FLOAT fAnimationDuration = 0.0)
|
|
STRING sMethodName = GET_STRING_FROM_BIG_MESSAGE_TYPE_ENUM(eMessageType)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, sMethodName)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(labeToDisp)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
|
|
SET_COLOUR_OF_NEXT_TEXT_COMPONENT(eHudColor)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(labeToDisp)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(strapLine)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(subString)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
IF bAnimated
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(100)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF bAnimated
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "TRANSITION_UP")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fAnimationDuration)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
// Restart our timer for updating.
|
|
RESTART_TIMER_NOW(scaleformStruct.movieTimer)
|
|
|
|
// Store the duration.
|
|
scaleformStruct.iDuration = iDuration
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Set big message for a given duration using the player's username/gamertag
|
|
/// Used mainly in MP
|
|
/// PARAMS:
|
|
/// scaleformStruct -
|
|
/// label - splash text string
|
|
/// iNum - Number to insert into the string.
|
|
/// iDuration - duration in milliseconds
|
|
/// eMessageType - Tells us what scaleform method we want to call
|
|
PROC SET_SCALEFORM_BIG_MESSAGE_WITH_PLAYER_NAME_IN_STRAPLINE(SCRIPT_SCALEFORM_BIG_MESSAGE & scaleformStruct, STRING labeToDisp, STRING strapLine, STRING sPlayerName, INT iDuration = 4000, HUD_COLOURS eHudColor = HUD_COLOUR_YELLOW, MG_BIG_MESSAGE_TYPE eMessageType = MG_BIG_MESSAGE_CENTERED, BOOL bAnimated = FALSE, FLOAT fAnimationDuration = 0.0)
|
|
STRING sMethodName = GET_STRING_FROM_BIG_MESSAGE_TYPE_ENUM(eMessageType)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "RESET_MOVIE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, sMethodName)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(labeToDisp)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
|
|
SET_COLOUR_OF_NEXT_TEXT_COMPONENT(eHudColor)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(labeToDisp)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(strapLine)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(sPlayerName)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
IF bAnimated
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(100)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF bAnimated
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "TRANSITION_UP")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fAnimationDuration)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
// Restart our timer for updating.
|
|
RESTART_TIMER_NOW(scaleformStruct.movieTimer)
|
|
|
|
// Store the duration.
|
|
scaleformStruct.iDuration = iDuration
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Renders a scaleform splash movie.
|
|
/// RETURNS:
|
|
/// FALSE when the movie is done drawing and you should move on.
|
|
FUNC BOOL UPDATE_SCALEFORM_BIG_MESSAGE(SCRIPT_SCALEFORM_BIG_MESSAGE & scaleformStruct, BOOL bAllowSkip = FALSE, BOOL bDrawHigh=FALSE)
|
|
IF NOT IS_TIMER_STARTED(scaleformStruct.movieTimer)
|
|
RESTART_TIMER_NOW(scaleformStruct.movieTimer)
|
|
ENDIF
|
|
|
|
// Hide the reticle.
|
|
HIDE_HUD_COMPONENT_THIS_FRAME(NEW_HUD_RETICLE)
|
|
|
|
// Draw the moobie.
|
|
//SET_SCRIPT_GFX_DRAW_ORDER(GFX_ORDER_BEFORE_HUD)
|
|
IF NOT bDrawHigh
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(scaleformStruct.siMovie, 255, 255, 255, 255)
|
|
ELIF bDrawHigh
|
|
// Force all movies to use fullscreen now
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(scaleformStruct.siMovie, 255, 255, 255, 255)
|
|
ENDIF
|
|
|
|
// If we can skip, detect that button press
|
|
IF bAllowSkip
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// When it's no longer visible, return FALSE. -- Changed. Now, when its curation is up, return FALSE
|
|
IF (scaleformStruct.iDuration = -1)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
// Is it time to leave?
|
|
IF (GET_TIMER_IN_SECONDS(scaleformStruct.movieTimer) * 1000.0 > TO_FLOAT(scaleformStruct.iDuration))
|
|
CANCEL_TIMER(scaleformStruct.movieTimer)
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Checks to see if this scaleform splash would be displaying. Mainly for Golf, as golf was using an odd method to check this.
|
|
FUNC BOOL WOULD_SCALEFORM_BIG_MESSAGE_BE_VISIBLE(SCRIPT_SCALEFORM_BIG_MESSAGE & scaleformStruct)
|
|
IF NOT IS_TIMER_STARTED(scaleformStruct.movieTimer)
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
RETURN (GET_TIMER_IN_SECONDS(scaleformStruct.movieTimer) * 1000.0 <= TO_FLOAT(scaleformStruct.iDuration))
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Call this prior to MG_UPDATE_FAIL_SPLASH_SCREEN
|
|
/// PARAMS:
|
|
/// splash - the splash struct to be used for the splash screen
|
|
PROC MG_INIT_FAIL_SPLASH_SCREEN(MG_FAIL_SPLASH& splash, FLOAT fTransitionUpTime = 0.3, FLOAT fButtonDelay = 2.0)
|
|
IF IS_TIMER_STARTED(splash.ButtonInput)
|
|
CANCEL_TIMER(splash.ButtonInput)
|
|
ENDIF
|
|
|
|
IF IS_TIMER_STARTED(splash.AbandonSplash)
|
|
CANCEL_TIMER(splash.AbandonSplash)
|
|
ENDIF
|
|
|
|
CLEANUP_SIMPLE_USE_CONTEXT(splash.context)
|
|
splash.fTransitionUpTime = fTransitionUpTime
|
|
splash.fButtonDelay = fButtonDelay
|
|
splash.bTransOut = TRUE
|
|
splash.bAnimStarted = FALSE
|
|
splash.eState = FAIL_SPLASH_STATE_INIT
|
|
ENDPROC
|
|
|
|
|
|
/// PURPOSE:
|
|
/// Updates and runs the Fail splash screen UI for all mini games. It uses a state machine, so you will need to create an MG_FAIL_SPLASH struct inside your scripts as well as a
|
|
/// SCRIPT_SCALEFORM_BIG_MESSAGE struct. You will need to call this until it returns true. Once it does, catch bShouldRestart which will tell you what the player has chosen.
|
|
/// Call MG_INIT_FAIL_SPLASH_SCREEN before calling this
|
|
/// PARAMS:
|
|
/// scaleformStruct - the big message struct, necessary for the scaleform movie. Make sure this persists
|
|
/// splashStruct - the MG_FAIL_SPLASH struct that is necessary for the state machine. Make sure this persists
|
|
/// strapLine - the strapline text (reserved for fail reasons)
|
|
/// bShouldRetry - this will return whether the player has chosen to retry or not.
|
|
/// eFlags - Flags that you wish to enable for the function. Can be found in MG_FAIL_SPLASH_FLAGS
|
|
/// fAbandonTime - the amount of time before the fail screen clears and returns FALSE in the bShouldRetry. (Only applicable if you have chosen to allow abandoning)
|
|
/// RETURNS:
|
|
/// True once the player has made a choice
|
|
FUNC BOOL MG_UPDATE_FAIL_SPLASH_SCREEN(SCRIPT_SCALEFORM_BIG_MESSAGE& scaleformStruct, MG_FAIL_SPLASH& splashStruct, STRING sFailString, STRING sFailStrapline, BOOL& bShouldRetry, MG_FAIL_SPLASH_FLAGS eFlags = FAIL_SPLASH_DEFAULT_FLAGS, GFX_DRAW_ORDER drawOrder = GFX_ORDER_AFTER_FADE, BOOL bButtonsIgnoreFade = TRUE, FLOAT fAbandonTime = 15.0, BOOL bAllowSetNoLoadingScreen = TRUE)
|
|
SWITCH splashStruct.eState
|
|
CASE FAIL_SPLASH_STATE_INIT
|
|
//Fade screen out, slow time
|
|
IF NOT IS_SCREEN_FADED_OUT() OR IS_SCREEN_FADING_OUT()
|
|
DO_SCREEN_FADE_OUT(DEFAULT_FADE_TIME_LONG)
|
|
REPLAY_PREVENT_RECORDING_THIS_FRAME() //B* 2447830
|
|
ENDIF
|
|
IF bAllowSetNoLoadingScreen
|
|
PRINTLN("MG_UPDATE_FAIL_SPLASH_SCREEN() - Setting SET_NO_LOADING_SCREEN(TRUE)")
|
|
SET_NO_LOADING_SCREEN(TRUE)
|
|
ENDIF
|
|
SET_TIME_SCALE(FAIL_EFFECT_SLO_MO)
|
|
IF IS_BITMASK_ENUM_AS_ENUM_SET( eFlags, FAIL_SPLASH_ENABLE_SOUNDS )
|
|
IF REQUEST_SCRIPT_AUDIO_BANK("generic_failed")
|
|
splashStruct.eState = FAIL_SPLASH_STATE_DISPLAY
|
|
ENDIF
|
|
ELSE
|
|
splashStruct.eState = FAIL_SPLASH_STATE_DISPLAY
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE FAIL_SPLASH_STATE_DISPLAY
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "SHOW_CENTERED_MP_MESSAGE_LARGE")
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("STRING")
|
|
SET_COLOUR_OF_NEXT_TEXT_COMPONENT(HUD_COLOUR_RED)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(sFailString)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sFailStrapline)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(100)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE()
|
|
|
|
IF IS_BITMASK_ENUM_AS_ENUM_SET(eFlags, FAIL_SPLASH_ANIMATE_SUB)
|
|
IF NOT splashStruct.bAnimStarted
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "TRANSITION_UP")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(splashStruct.fTransitionUpTime)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
splashStruct.bAnimStarted = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF NOT IS_BITMASK_ENUM_AS_ENUM_SET( eFlags, FAIL_SPLASH_ENABLE_PLAYER_CONTROL )
|
|
DISABLE_ALL_CONTROL_ACTIONS( PLAYER_CONTROL )
|
|
ENDIF
|
|
|
|
INIT_SIMPLE_USE_CONTEXT(splashStruct.context, FALSE, TRUE, TRUE, TRUE)
|
|
ADD_SIMPLE_USE_CONTEXT_INPUT(splashStruct.context, "IB_RETRY", FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
ADD_SIMPLE_USE_CONTEXT_INPUT(splashStruct.context, "FE_HLP16", FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL)
|
|
|
|
IF IS_BITMASK_ENUM_AS_ENUM_SET( eFlags, FAIL_SPLASH_ENABLE_SOUNDS )
|
|
PLAY_SOUND_FRONTEND(-1, "ScreenFlash", "MissionFailedSounds")
|
|
ENDIF
|
|
|
|
IF IS_BITMASK_ENUM_AS_ENUM_SET( eFlags, FAIL_SPLASH_ENABLE_FX )
|
|
SWITCH GET_CURRENT_PLAYER_PED_ENUM()
|
|
CASE CHAR_MICHAEL
|
|
ANIMPOSTFX_PLAY( "MinigameEndMichael", 500, FALSE )
|
|
BREAK
|
|
CASE CHAR_FRANKLIN
|
|
ANIMPOSTFX_PLAY( "MinigameEndFranklin", 500, FALSE )
|
|
BREAK
|
|
CASE CHAR_TREVOR
|
|
ANIMPOSTFX_PLAY( "MinigameEndTrevor", 500, FALSE )
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
IF NOT IS_TIMER_STARTED(splashStruct.ButtonInput)
|
|
START_TIMER_NOW(splashStruct.ButtonInput)
|
|
ENDIF
|
|
|
|
IF IS_BITMASK_ENUM_AS_ENUM_SET( eFlags, FAIL_SPLASH_ALLOW_ABANDON )
|
|
IF NOT IS_TIMER_STARTED(splashStruct.AbandonSplash)
|
|
START_TIMER_NOW(splashStruct.AbandonSplash)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
splashStruct.eState = FAIL_SPLASH_STATE_WAIT_FOR_INPUT
|
|
BREAK
|
|
|
|
CASE FAIL_SPLASH_STATE_WAIT_FOR_INPUT
|
|
|
|
HIDE_LOADING_ON_FADE_THIS_FRAME()
|
|
|
|
IF IS_BITMASK_ENUM_AS_ENUM_SET(eFlags, FAIL_SPLASH_ANIMATE_SUB)
|
|
IF NOT splashStruct.bAnimStarted
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "TRANSITION_UP")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(splashStruct.fTransitionUpTime)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
splashStruct.bAnimStarted = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
SET_SCRIPT_GFX_DRAW_ORDER(drawOrder)
|
|
UPDATE_SCALEFORM_BIG_MESSAGE(scaleformStruct)
|
|
IF NOT IS_BITMASK_ENUM_AS_ENUM_SET(eFlags, FAIL_SPLASH_HIDE_BUTTONS) AND
|
|
(GET_TIMER_IN_SECONDS(splashStruct.ButtonInput) >= splashStruct.fButtonDelay OR IS_SCREEN_FADED_OUT())
|
|
|
|
UPDATE_SIMPLE_USE_CONTEXT( splashStruct.context, DEFAULT, drawOrder, bButtonsIgnoreFade)
|
|
SET_MOUSE_CURSOR_THIS_FRAME()
|
|
|
|
IF IS_CONTROL_JUST_RELEASED(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
splashStruct.bRetry = TRUE
|
|
PLAY_SOUND_FRONTEND(-1, "YES", "HUD_FRONTEND_DEFAULT_SOUNDSET")
|
|
IF NOT IS_BITMASK_ENUM_AS_ENUM_SET( eFlags, FAIL_SPLASH_ENABLE_PLAYER_CONTROL )
|
|
ENABLE_ALL_CONTROL_ACTIONS( PLAYER_CONTROL )
|
|
ENDIF
|
|
CLEANUP_SIMPLE_USE_CONTEXT(splashStruct.context)
|
|
splashStruct.eState = FAIL_SPLASH_STATE_TRANSITION_OUT_INIT
|
|
RETURN FALSE
|
|
ELIF IS_CONTROL_JUST_RELEASED( FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL )
|
|
splashStruct.bRetry = FALSE
|
|
PLAY_SOUND_FRONTEND(-1, "NO", "HUD_FRONTEND_DEFAULT_SOUNDSET")
|
|
IF NOT IS_BITMASK_ENUM_AS_ENUM_SET( eFlags, FAIL_SPLASH_ENABLE_PLAYER_CONTROL )
|
|
ENABLE_ALL_CONTROL_ACTIONS( PLAYER_CONTROL )
|
|
ENDIF
|
|
CLEANUP_SIMPLE_USE_CONTEXT(splashStruct.context)
|
|
splashStruct.eState = FAIL_SPLASH_STATE_TRANSITION_OUT_INIT
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDIF
|
|
IF IS_BITMASK_ENUM_AS_ENUM_SET( eFlags, FAIL_SPLASH_ALLOW_ABANDON )
|
|
IF GET_TIMER_IN_SECONDS(splashStruct.AbandonSplash) >= fAbandonTime
|
|
splashStruct.bRetry = FALSE
|
|
PLAY_SOUND_FRONTEND(-1, "NO", "HUD_FRONTEND_DEFAULT_SOUNDSET")
|
|
IF NOT IS_BITMASK_ENUM_AS_ENUM_SET( eFlags, FAIL_SPLASH_ENABLE_PLAYER_CONTROL )
|
|
ENABLE_ALL_CONTROL_ACTIONS( PLAYER_CONTROL )
|
|
ENDIF
|
|
CLEANUP_SIMPLE_USE_CONTEXT(splashStruct.context)
|
|
splashStruct.eState = FAIL_SPLASH_STATE_TRANSITION_OUT_INIT
|
|
RETURN FALSE
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
CASE FAIL_SPLASH_STATE_TRANSITION_OUT_INIT
|
|
UPDATE_SCALEFORM_BIG_MESSAGE(scaleformStruct)
|
|
|
|
//No longer required as minigames don't transition out of fail screen
|
|
// BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "TRANSITION_OUT")
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.5)
|
|
// END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
//Set time scale back, fade-in screen
|
|
SET_TIME_SCALE(1)
|
|
|
|
//Fix for 2100094: Don't fade in after selecting to exit from the stunt plane time
|
|
//trials or pilot school fail screen. If the player dies during the fail sequence
|
|
//it is possible to see code respawn the player. If we stay faded until the menu fades
|
|
//us back in we can hide the issue. There was also no reason to fade in anyway. -BenR
|
|
IF splashStruct.bRetry OR NOT ( ARE_STRINGS_EQUAL("stunt_plane_races", GET_THIS_SCRIPT_NAME()) OR
|
|
ARE_STRINGS_EQUAL("pilot_school", GET_THIS_SCRIPT_NAME()) OR
|
|
(ARE_STRINGS_EQUAL("bj", GET_THIS_SCRIPT_NAME()) AND IS_PED_INJURED(PLAYER_PED_ID()) ))
|
|
DO_SCREEN_FADE_IN(DEFAULT_FADE_TIME_LONG)
|
|
ENDIF
|
|
|
|
IF IS_BITMASK_ENUM_AS_ENUM_SET(eFlags, FAIL_SPLASH_FADE_ON_RETRY)
|
|
AND splashStruct.bRetry
|
|
DO_SCREEN_FADE_OUT(500)
|
|
ENDIF
|
|
|
|
RESTART_TIMER_NOW(splashStruct.AbandonSplash)
|
|
IF bAllowSetNoLoadingScreen
|
|
PRINTLN("MG_UPDATE_FAIL_SPLASH_SCREEN() - Clearing SET_NO_LOADING_SCREEN(FALSE)")
|
|
SET_NO_LOADING_SCREEN(FALSE)
|
|
ENDIF
|
|
splashStruct.eState = FAIL_SPLASH_STATE_TRANSITION_OUT
|
|
BREAK
|
|
CASE FAIL_SPLASH_STATE_TRANSITION_OUT
|
|
IF GET_TIMER_IN_SECONDS(splashStruct.AbandonSplash) <= 0.1
|
|
UPDATE_SCALEFORM_BIG_MESSAGE(scaleformStruct)
|
|
ELSE
|
|
bShouldRetry = splashStruct.bRetry
|
|
RETURN TRUE
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
//-----------------------------------------------------------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------------------------------------------------------
|
|
//
|
|
// Fade out effect stuff
|
|
//
|
|
//-----------------------------------------------------------------------------------------------------------------------------
|
|
ENUM MG_FAIL_FADE_EFFECT_STATE
|
|
MG_FAIL_FADE_EFFECT_STATE_INVALID = -1,
|
|
MG_FAIL_FADE_EFFECT_STATE_INIT,
|
|
MG_FAIL_FADE_EFFECT_STATE_UPDATE,
|
|
MG_FAIL_FADE_EFFECT_STATE_WAIT_FOR_INPUT,
|
|
MG_FAIL_FADE_EFFECT_STATE_WAIT_FOR_RESTART,
|
|
MG_FAIL_FADE_EFFECT_IDLE
|
|
ENDENUM
|
|
|
|
ENUM MG_FAIL_FADE_EFFECT_FLAGS
|
|
MG_FAIL_FADE_EFFECT_NONE = 0,
|
|
MG_FAIL_FADE_TRIGGERED_TEXT_HIT_SFX = BIT1,
|
|
MG_FAIL_FADE_TRIGGERED_BED_SFX = BIT2
|
|
ENDENUM
|
|
|
|
STRUCT MG_FAIL_FADE_EFFECT
|
|
MG_FAIL_FADE_EFFECT_STATE efailFadeEffectState
|
|
structTimer tProgressTimer
|
|
INT iFlags
|
|
BOOL bHasMenu
|
|
ENDSTRUCT
|
|
|
|
PROC SET_FAIL_FADE_EFFECT_SCRIPT_CONTROL(BOOL bEnable)
|
|
IF bEnable
|
|
//setup for escaping off mission death
|
|
SET_FADE_IN_AFTER_DEATH_ARREST(FALSE)
|
|
PAUSE_DEATH_ARREST_RESTART(TRUE)
|
|
SET_FADE_OUT_AFTER_DEATH(FALSE)
|
|
SET_CURRENT_MINIGAME_TO_BYPASS_RESPAWN_CUTSCENE(TRUE)
|
|
g_bBlockWastedTitle = TRUE
|
|
ELSE
|
|
//setup for off mission death
|
|
SET_FADE_IN_AFTER_DEATH_ARREST(TRUE)
|
|
PAUSE_DEATH_ARREST_RESTART(FALSE)
|
|
SET_FADE_OUT_AFTER_DEATH(TRUE)
|
|
SET_CURRENT_MINIGAME_TO_BYPASS_RESPAWN_CUTSCENE(FALSE)
|
|
g_bBlockWastedTitle = FALSE
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
PROC MG_INIT_FAIL_FADE_EFFECT(MG_FAIL_FADE_EFFECT& failFadeEffect, BOOL bHasMenu = FALSE)
|
|
failFadeEffect.efailFadeEffectState = MG_FAIL_FADE_EFFECT_STATE_INIT
|
|
failFadeEffect.iFlags = 0
|
|
failFadeEffect.bHasMenu = bHasMenu
|
|
REQUEST_SCRIPT_AUDIO_BANK("OFFMISSION_WASTED")
|
|
ENDPROC
|
|
|
|
FUNC BOOL MG_UPDATE_FAIL_FADE_EFFECT(MG_FAIL_FADE_EFFECT& failFadeEffect, MG_FAIL_SPLASH& failSplash, SCRIPT_SCALEFORM_BIG_MESSAGE& bigMessage, STRING sTitle, STRING sStrapLine, BOOL& bShouldRetry, MG_FAIL_SPLASH_FLAGS eSplashFlags = FAIL_SPLASH_DEFAULT_FLAGS)
|
|
|
|
|
|
SWITCH failFadeEffect.efailFadeEffectState
|
|
|
|
CASE MG_FAIL_FADE_EFFECT_STATE_INIT
|
|
failFadeEffect.efailFadeEffectState = MG_FAIL_FADE_EFFECT_STATE_UPDATE
|
|
START_AUDIO_SCENE("DEATH_SCENE")
|
|
PLAY_SOUND_FRONTEND(-1, "ScreenFlash", "WastedSounds")
|
|
START_TIMER_NOW_SAFE(failFadeEffect.tProgressTimer)
|
|
MG_RESET_FAIL_EFFECT_VARS()
|
|
MG_INIT_FAIL_SPLASH_SCREEN(failSplash, 0.15 * FAIL_OUT_EFFECT_SLO_MO, 0.5)
|
|
SET_NO_LOADING_SCREEN(TRUE)
|
|
BREAK
|
|
|
|
CASE MG_FAIL_FADE_EFFECT_STATE_UPDATE
|
|
IF MG_DO_FAIL_BLUR_EFFECT() OR IS_SCREEN_FADED_OUT()
|
|
|
|
failFadeEffect.efailFadeEffectState = MG_FAIL_FADE_EFFECT_STATE_WAIT_FOR_INPUT
|
|
ENDIF
|
|
IF NOT IS_BITMASK_AS_ENUM_SET(failFadeEffect.iFlags, MG_FAIL_FADE_TRIGGERED_BED_SFX)
|
|
IF REQUEST_SCRIPT_AUDIO_BANK("OFFMISSION_WASTED")
|
|
PLAY_SOUND_FRONTEND(-1, "Bed", "WastedSounds")
|
|
SET_BITMASK_AS_ENUM(failFadeEffect.iFlags, MG_FAIL_FADE_TRIGGERED_BED_SFX)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF TIMERA() > 1500 * FAIL_EFFECT_SLO_MO
|
|
PRINTLN("we should be showing the splash now!!!!")
|
|
IF NOT IS_BITMASK_AS_ENUM_SET(failFadeEffect.iFlags, MG_FAIL_FADE_TRIGGERED_TEXT_HIT_SFX)
|
|
PLAY_SOUND_FRONTEND(-1, "TextHit", "WastedSounds") //play this once
|
|
SET_BITMASK_AS_ENUM(failFadeEffect.iFlags, MG_FAIL_FADE_TRIGGERED_TEXT_HIT_SFX)
|
|
ENDIF
|
|
MG_UPDATE_FAIL_SPLASH_SCREEN(bigMessage, failSplash, sTitle, sStrapLine, bShouldRetry, eSplashFlags - (FAIL_SPLASH_ENABLE_SOUNDS & eSplashFlags) - (FAIL_SPLASH_ALLOW_ABANDON & eSplashFlags) /*- (FAIL_SPLASH_ANIMATE_SUB & eSplashFlags)*/| FAIL_SPLASH_HIDE_BUTTONS, GFX_ORDER_AFTER_FADE, TRUE, DEFAULT, FALSE)
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE MG_FAIL_FADE_EFFECT_STATE_WAIT_FOR_INPUT
|
|
IF MG_UPDATE_FAIL_SPLASH_SCREEN(bigMessage, failSplash, sTitle, sStrapLine, bShouldRetry, eSplashFlags - (FAIL_SPLASH_ENABLE_FX & eSplashFlags) - (FAIL_SPLASH_ENABLE_SOUNDS & eSplashFlags) - (FAIL_SPLASH_ALLOW_ABANDON & eSplashFlags), GFX_ORDER_AFTER_FADE, TRUE)
|
|
MG_DO_FAIL_EFFECT(FALSE, TRUE)
|
|
MG_DO_FAIL_OUT_EFFECT(FALSE, TRUE)
|
|
MG_RESET_FAIL_EFFECT_VARS()
|
|
IF bShouldRetry
|
|
IGNORE_NEXT_RESTART(TRUE)
|
|
ELSE
|
|
IF NOT failFadeEffect.bHasMenu //if we have a menu, skip this.
|
|
SET_CURRENT_MINIGAME_TO_BYPASS_RESPAWN_CUTSCENE(FALSE)
|
|
ENDIF
|
|
ENDIF
|
|
SET_NO_LOADING_SCREEN(FALSE)
|
|
PAUSE_DEATH_ARREST_RESTART(FALSE)
|
|
failFadeEffect.efailFadeEffectState = MG_FAIL_FADE_EFFECT_STATE_WAIT_FOR_RESTART
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE MG_FAIL_FADE_EFFECT_STATE_WAIT_FOR_RESTART
|
|
IF IS_PLAYER_PLAYING(PLAYER_ID())
|
|
SET_FADE_IN_AFTER_DEATH_ARREST(TRUE)
|
|
MG_DO_FAIL_EFFECT(FALSE, TRUE)
|
|
MG_DO_FAIL_OUT_EFFECT(FALSE, TRUE)
|
|
STOP_AUDIO_SCENE("DEATH_SCENE")
|
|
SET_NO_LOADING_SCREEN(FALSE)
|
|
RETURN TRUE
|
|
ELSE
|
|
PRINTLN("player not playing")
|
|
ENDIF
|
|
// RETURN TRUE
|
|
BREAK
|
|
|
|
CASE MG_FAIL_FADE_EFFECT_IDLE
|
|
PRINTLN("finished")
|
|
SET_NO_LOADING_SCREEN(FALSE)
|
|
RETURN TRUE
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC MG_CLEANUP_FAIL_FADE_EFFECT()
|
|
MG_RESET_FAIL_EFFECT_VARS()
|
|
MG_DO_FAIL_EFFECT(FALSE, TRUE)
|
|
MG_DO_FAIL_OUT_EFFECT(FALSE, TRUE)
|
|
ENDPROC
|
|
|
|
|