1131 lines
45 KiB
Scheme
Executable File
1131 lines
45 KiB
Scheme
Executable File
// minigame_UIInputs.sch
|
|
USING "minigames_helpers.sch"
|
|
|
|
CONST_INT MAX_INST_BUTTONS_PER_LABEL 2
|
|
CONST_INT MAX_INST_BUTTONS 4
|
|
CONST_INT ANALOG_OFFSET 128
|
|
|
|
ENUM MINIGAME_INST_ORIENTATION
|
|
SF_UI_Horizontal = 0,
|
|
SF_UI_Vertical = 1
|
|
ENDENUM
|
|
|
|
STRUCT SCRIPT_SCALEFORM_UI
|
|
SCALEFORM_INDEX sfMov = NULL
|
|
INT iBools = 0
|
|
|
|
MINIGAME_INST_ORIENTATION eOrient = SF_UI_Horizontal
|
|
|
|
// Can have 2 buttons per label.
|
|
CONTROL_ACTION eInputs[MAX_INST_BUTTONS*MAX_INST_BUTTONS_PER_LABEL]
|
|
STRING eButtons[MAX_INST_BUTTONS*MAX_INST_BUTTONS_PER_LABEL]
|
|
STRING sLabels[MAX_INST_BUTTONS]
|
|
ENDSTRUCT
|
|
|
|
ENUM SCRIPT_SCALEFORM_BOOLS
|
|
SF_UI_LOADED = BIT0,
|
|
SF_UI_CREATED_ButtonDown = BIT1,
|
|
SF_UI_CREATED_ButtonUp = BIT2,
|
|
SF_UI_IsForMenu = BIT3
|
|
ENDENUM
|
|
|
|
/// PURPOSE:
|
|
/// Checks to see if the script scaleform UI passed in is valid or not, also checks to see if it's loaded..
|
|
/// RETURNS:
|
|
/// TRUE if valid and loaded. Also sets an internal flag that says the mov is loaded.
|
|
FUNC BOOL IS_SCRIPT_SCALEFORM_UI_VALID_AND_LOADED(SCRIPT_SCALEFORM_UI & sfMovieStruct)
|
|
IF (sfMovieStruct.sfMov <> NULL)
|
|
IF HAS_SCALEFORM_MOVIE_LOADED(sfMovieStruct.sfMov)
|
|
SET_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_LOADED)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Sets up the instructions for use
|
|
/// NOTE, iNumCols is a funny param. If it's set to 0, it makes one horizontal bar of commands. If it's set to 1, it
|
|
/// draws 1 vertical bar.
|
|
/// RETURNS:
|
|
/// The movie that has been requested
|
|
PROC SETUP_MINIGAME_INSTRUCTIONS(SCRIPT_SCALEFORM_UI & sfMovieStruct, BOOL bVertical,
|
|
STRING eButton1 = NULL, STRING sLabel1 = NULL,
|
|
STRING eButton2 = NULL, STRING sLabel2 = NULL,
|
|
STRING eButton3 = NULL, STRING sLabel3 = NULL,
|
|
STRING eButton4 = NULL, STRING sLabel4 = NULL)
|
|
|
|
IF (sfMovieStruct.sfMov = NULL)
|
|
sfMovieStruct.sfMov = REQUEST_SCALEFORM_MOVIE_INSTANCE("instructional_buttons")
|
|
ENDIF
|
|
sfMovieStruct.iBools = 0
|
|
|
|
sfMovieStruct.eInputs[0] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[1] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[2] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[3] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[4] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[5] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[6] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[7] = MAX_INPUTS
|
|
|
|
sfMovieStruct.eButtons[0] = eButton1
|
|
sfMovieStruct.eButtons[1] = eButton2
|
|
sfMovieStruct.eButtons[2] = eButton3
|
|
sfMovieStruct.eButtons[3] = eButton4
|
|
sfMovieStruct.eButtons[4] = NULL//INT_TO_ENUM(TEXT_LABEL_63, -1)
|
|
sfMovieStruct.eButtons[5] = NULL//INT_TO_ENUM(TEXT_LABEL_63, -1)
|
|
sfMovieStruct.eButtons[6] = NULL//INT_TO_ENUM(TEXT_LABEL_63, -1)
|
|
sfMovieStruct.eButtons[7] = NULL//INT_TO_ENUM(TEXT_LABEL_63, -1)
|
|
|
|
sfMovieStruct.sLabels[0] = sLabel1
|
|
sfMovieStruct.sLabels[1] = sLabel2
|
|
sfMovieStruct.sLabels[2] = sLabel3
|
|
sfMovieStruct.sLabels[3] = sLabel4
|
|
|
|
IF bVertical
|
|
sfMovieStruct.eOrient = SF_UI_Vertical
|
|
ELSE
|
|
sfMovieStruct.eOrient = SF_UI_Horizontal
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_MOVIE_LOADED(sfMovieStruct.sfMov)
|
|
SET_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_LOADED)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Sets up the instructions for use
|
|
/// NOTE, iNumCols is a funny param. If it's set to 0, it makes one horizontal bar of commands. If it's set to 1, it
|
|
/// draws 1 vertical bar.
|
|
/// RETURNS:
|
|
/// The movie that has been requested
|
|
PROC SETUP_MINIGAME_INSTRUCTION_INPUTS(SCRIPT_SCALEFORM_UI & sfMovieStruct, BOOL bVertical,
|
|
CONTROL_ACTION eInput1 = MAX_INPUTS, STRING sLabel1 = NULL,
|
|
CONTROL_ACTION eInput2 = MAX_INPUTS, STRING sLabel2 = NULL,
|
|
CONTROL_ACTION eInput3 = MAX_INPUTS, STRING sLabel3 = NULL,
|
|
CONTROL_ACTION eInput4 = MAX_INPUTS, STRING sLabel4 = NULL)
|
|
|
|
IF (sfMovieStruct.sfMov = NULL)
|
|
sfMovieStruct.sfMov = REQUEST_SCALEFORM_MOVIE_INSTANCE("instructional_buttons")
|
|
ENDIF
|
|
sfMovieStruct.iBools = 0
|
|
|
|
sfMovieStruct.eInputs[0] = eInput1
|
|
sfMovieStruct.eInputs[1] = eInput2
|
|
sfMovieStruct.eInputs[2] = eInput3
|
|
sfMovieStruct.eInputs[3] = eInput4
|
|
sfMovieStruct.eInputs[4] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[5] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[6] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[7] = MAX_INPUTS
|
|
|
|
sfMovieStruct.eButtons[0] = PICK_STRING(eInput1 != MAX_INPUTS, GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, eInput1), "")
|
|
sfMovieStruct.eButtons[1] = PICK_STRING(eInput2 != MAX_INPUTS, GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, eInput2), "")
|
|
sfMovieStruct.eButtons[2] = PICK_STRING(eInput3 != MAX_INPUTS, GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, eInput3), "")
|
|
sfMovieStruct.eButtons[3] = PICK_STRING(eInput4 != MAX_INPUTS, GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, eInput4), "")
|
|
sfMovieStruct.eButtons[4] = NULL//INT_TO_ENUM(TEXT_LABEL_63, -1)
|
|
sfMovieStruct.eButtons[5] = NULL//INT_TO_ENUM(TEXT_LABEL_63, -1)
|
|
sfMovieStruct.eButtons[6] = NULL//INT_TO_ENUM(TEXT_LABEL_63, -1)
|
|
sfMovieStruct.eButtons[7] = NULL//INT_TO_ENUM(TEXT_LABEL_63, -1)
|
|
|
|
sfMovieStruct.sLabels[0] = sLabel1
|
|
sfMovieStruct.sLabels[1] = sLabel2
|
|
sfMovieStruct.sLabels[2] = sLabel3
|
|
sfMovieStruct.sLabels[3] = sLabel4
|
|
|
|
IF bVertical
|
|
sfMovieStruct.eOrient = SF_UI_Vertical
|
|
ELSE
|
|
sfMovieStruct.eOrient = SF_UI_Horizontal
|
|
ENDIF
|
|
|
|
IF HAS_SCALEFORM_MOVIE_LOADED(sfMovieStruct.sfMov)
|
|
SET_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_LOADED)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Sets a set of MINIGAME_INSTRUCTIONS as part of a UI, so that they're shifted and attached to that UI.
|
|
PROC SET_INSTRUCTIONS_ATTACHED_TO_MINIGAME_UI(SCRIPT_SCALEFORM_UI & sfMovieStruct, BOOL bIsAttached = TRUE)
|
|
IF bIsAttached
|
|
SET_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_IsForMenu)
|
|
sfMovieStruct.eOrient = SF_UI_Horizontal
|
|
ELSE
|
|
CLEAR_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_IsForMenu)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Pushes a minigame instruction into a movie.
|
|
/// PARAMS:
|
|
/// instrToAdd - the butotn press to give the instruction
|
|
/// labelToAdd - the label to give the instruction
|
|
/// bInFirstEmpty - If this is TRUE, it ignores iAtIndex, and inserts it into the first empty slot (where the instruction is still null)
|
|
/// iAtSlot - If this is > 0, and bInFirstEmpty = FALSE, it overwrites an instruction at the given slot. If that slot is empty, it will fill it in.
|
|
PROC INSERT_MINIGAME_INSTRUCTION(SCRIPT_SCALEFORM_UI & sfMovieStruct, STRING instrToAdd, STRING labelToAdd, BOOL bInFirstEmpty = TRUE, INT iAtSlot = -1)
|
|
IF NOT IS_SCRIPT_SCALEFORM_UI_VALID_AND_LOADED(sfMovieStruct)
|
|
DEBUG_MESSAGE("INSERT_MINIGAME_INSTRUCTION failing.")
|
|
EXIT
|
|
ENDIF
|
|
|
|
CLEAR_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
|
|
INT index
|
|
IF bInFirstEmpty
|
|
REPEAT MAX_INST_BUTTONS index
|
|
IF IS_STRING_NULL_OR_EMPTY(sfMovieStruct.sLabels[index])
|
|
sfMovieStruct.eInputs[index] = MAX_INPUTS
|
|
sfMovieStruct.eButtons[index] = instrToAdd
|
|
sfMovieStruct.sLabels[index] = labelToAdd
|
|
ENDIF
|
|
ENDREPEAT
|
|
ELSE
|
|
// Check to see what iAtIndex is, that's where the instruction is going.
|
|
IF (iAtSlot > 0)
|
|
sfMovieStruct.eInputs[iAtSlot] = MAX_INPUTS
|
|
sfMovieStruct.eButtons[iAtSlot] = instrToAdd
|
|
sfMovieStruct.sLabels[iAtSlot] = labelToAdd
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Pushes a minigame instruction into a movie.
|
|
/// PARAMS:
|
|
/// instrToAdd - the butotn press to give the instruction
|
|
/// labelToAdd - the label to give the instruction
|
|
/// bInFirstEmpty - If this is TRUE, it ignores iAtIndex, and inserts it into the first empty slot (where the instruction is still null)
|
|
/// iAtSlot - If this is > 0, and bInFirstEmpty = FALSE, it overwrites an instruction at the given slot. If that slot is empty, it will fill it in.
|
|
PROC INSERT_MINIGAME_INSTRUCTION_INPUT(SCRIPT_SCALEFORM_UI & sfMovieStruct, CONTROL_ACTION inputToAdd, STRING labelToAdd, BOOL bInFirstEmpty = TRUE, INT iAtSlot = -1)
|
|
IF NOT IS_SCRIPT_SCALEFORM_UI_VALID_AND_LOADED(sfMovieStruct)
|
|
DEBUG_MESSAGE("INSERT_MINIGAME_INSTRUCTION failing.")
|
|
EXIT
|
|
ENDIF
|
|
|
|
CLEAR_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
|
|
INT index
|
|
IF bInFirstEmpty
|
|
REPEAT MAX_INST_BUTTONS index
|
|
IF IS_STRING_NULL_OR_EMPTY(sfMovieStruct.sLabels[index])
|
|
sfMovieStruct.eInputs[index] = inputToAdd
|
|
sfMovieStruct.eButtons[index] = PICK_STRING(inputToAdd != MAX_INPUTS, GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, inputToAdd), "")
|
|
sfMovieStruct.sLabels[index] = labelToAdd
|
|
ENDIF
|
|
ENDREPEAT
|
|
ELSE
|
|
// Check to see what iAtIndex is, that's where the instruction is going.
|
|
IF (iAtSlot > 0)
|
|
sfMovieStruct.eInputs[iAtSlot] = inputToAdd
|
|
sfMovieStruct.eButtons[iAtSlot] = PICK_STRING(inputToAdd != MAX_INPUTS, GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, inputToAdd), "")
|
|
sfMovieStruct.sLabels[iAtSlot] = labelToAdd
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles a single use context using the scaleform UI
|
|
/// USES ONLY TRIGGERBUTTON and TRIGGERLABEL
|
|
/// PARAMS:
|
|
/// sfMovieStruct - The VALID movie.
|
|
/// RETURNS:
|
|
/// TRUE if it was pressed. FALSE if not.
|
|
PROC UPDATE_SIMPLE_INSTRUCTION(SCRIPT_SCALEFORM_UI & sfMovieStruct)
|
|
IF NOT IS_SCRIPT_SCALEFORM_UI_VALID_AND_LOADED(sfMovieStruct)
|
|
DEBUG_MESSAGE("UPDATE_SIMPLE_INSTRUCTION failing.")
|
|
EXIT
|
|
ENDIF
|
|
// Always draw the prompt and monitor input.
|
|
IF IS_BITMASK_AS_ENUM_SET(sfMovieStruct.iBools, SF_UI_IsForMenu)
|
|
DRAW_SCALEFORM_MOVIE(sfMovieStruct.sfMov, 0.39,0.467,1.0,1.0,255,255,255,0)
|
|
ELSE
|
|
DRAW_SCALEFORM_MOVIE(sfMovieStruct.sfMov, 0.5,0.5,1.0,1.0,255,255,255,0)
|
|
ENDIF
|
|
|
|
// If controls have changed, re-calculate button strings
|
|
IF HAVE_CONTROLS_CHANGED(FRONTEND_CONTROL)
|
|
INT index
|
|
REPEAT COUNT_OF(sfMovieStruct.eInputs) index
|
|
IF sfMovieStruct.eInputs[index] != MAX_INPUTS
|
|
sfMovieStruct.eButtons[index] = GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, sfMovieStruct.eInputs[index])
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
CLEAR_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
ENDIF
|
|
|
|
// If we're loaded, this is a simple instruction. OOnly has a single button down. Track that.
|
|
IF NOT IS_BITMASK_AS_ENUM_SET(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_CLEAR_SPACE")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(200.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT_EMPTY")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(sfMovieStruct.eButtons[0])
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sfMovieStruct.sLabels[0])
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "DRAW_INSTRUCTIONAL_BUTTONS")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(sfMovieStruct.eOrient)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_BACKGROUND_COLOUR")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(80)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
SET_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Handles a single use context using the scaleform UI
|
|
/// USES ONLY TRIGGERBUTTON and TRIGGERLABEL
|
|
/// PARAMS:
|
|
/// sfMovieStruct - The VALID movie.
|
|
/// RETURNS:
|
|
/// TRUE if it was pressed. FALSE if not.
|
|
PROC UPDATE_MINIGAME_INSTRUCTIONS_NOW(SCRIPT_SCALEFORM_UI & sfMovieStruct)
|
|
IF NOT IS_SCRIPT_SCALEFORM_UI_VALID_AND_LOADED(sfMovieStruct)
|
|
DEBUG_MESSAGE("UPDATE_SIMPLE_INSTRUCTION failing.")
|
|
EXIT
|
|
ENDIF
|
|
|
|
INT index = 0
|
|
|
|
// Always draw the prompt and monitor input.
|
|
IF IS_BITMASK_AS_ENUM_SET(sfMovieStruct.iBools, SF_UI_IsForMenu)
|
|
DRAW_SCALEFORM_MOVIE(sfMovieStruct.sfMov, 0.39,0.467,1.0,1.0,255,255,255,0)
|
|
ELSE
|
|
DRAW_SCALEFORM_MOVIE(sfMovieStruct.sfMov, 0.5,0.5,1.0,1.0,255,255,255,0)
|
|
ENDIF
|
|
|
|
// If controls have changed, re-calculate button strings
|
|
IF HAVE_CONTROLS_CHANGED(FRONTEND_CONTROL)
|
|
REPEAT COUNT_OF(sfMovieStruct.eInputs) index
|
|
IF sfMovieStruct.eInputs[index] != MAX_INPUTS
|
|
sfMovieStruct.eButtons[index] = GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, sfMovieStruct.eInputs[index])
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
CLEAR_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
ENDIF
|
|
|
|
// If we're loaded, this is a simple instruction. OOnly has a single button down. Track that.
|
|
IF NOT IS_BITMASK_AS_ENUM_SET(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_CLEAR_SPACE")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(200.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT_EMPTY")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
FLOAT fSlot = 0
|
|
REPEAT MAX_INST_BUTTONS index
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(sfMovieStruct.sLabels[index])
|
|
// May need to draw multi labels if we've got a multi button in this slot.
|
|
IF (NOT IS_STRING_NULL_OR_EMPTY(sfMovieStruct.eButtons[index + MAX_INST_BUTTONS]))
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fSlot)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(sfMovieStruct.eButtons[index + MAX_INST_BUTTONS])
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(sfMovieStruct.eButtons[index])
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sfMovieStruct.sLabels[index])
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fSlot)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(sfMovieStruct.eButtons[index])
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sfMovieStruct.sLabels[index])
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
// Advance a slot.
|
|
fSlot += 1
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "DRAW_INSTRUCTIONAL_BUTTONS")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(sfMovieStruct.eOrient)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_BACKGROUND_COLOUR")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(80)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
SET_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Always draws the subset of up to 8 instructions, doesn't require a button to be held down to display the menu.
|
|
/// Basically the same as DRAW_MINIGAME_INSTRUCTIONS, but always creates the menu instead of waiting for a button.
|
|
PROC DRAW_MINIGAME_INSTRUCTIONS_NOW(SCRIPT_SCALEFORM_UI & sfMovieStruct)
|
|
IF NOT IS_SCRIPT_SCALEFORM_UI_VALID_AND_LOADED(sfMovieStruct)
|
|
DEBUG_MESSAGE("DRAW_MINIGAME_INSTRUCTIONS_NOW failing.")
|
|
EXIT
|
|
ENDIF
|
|
|
|
// Always draw.
|
|
// IF IS_BITMASK_AS_ENUM_SET(sfMovieStruct.iBools, SF_UI_IsForMenu)
|
|
// DRAW_SCALEFORM_MOVIE(sfMovieStruct.sfMov, 0.39,0.467,1.0,1.0,255,255,255,0)
|
|
// ELSE
|
|
// DRAW_SCALEFORM_MOVIE(sfMovieStruct.sfMov, 0.5,0.5,1.0,1.0,255,255,255,0)
|
|
// ENDIF
|
|
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(sfMovieStruct.sfMov,255,255,255,0)
|
|
|
|
// If controls have changed, re-calculate button strings
|
|
IF HAVE_CONTROLS_CHANGED(FRONTEND_CONTROL)
|
|
INT index
|
|
REPEAT COUNT_OF(sfMovieStruct.eInputs) index
|
|
IF sfMovieStruct.eInputs[index] != MAX_INPUTS
|
|
sfMovieStruct.eButtons[index] = GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, sfMovieStruct.eInputs[index])
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
CLEAR_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
ENDIF
|
|
|
|
// Only need to call this block once.
|
|
IF NOT IS_BITMASK_AS_ENUM_SET(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_CLEAR_SPACE")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(200.0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT_EMPTY")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
FLOAT fSlot = 0
|
|
INT index
|
|
REPEAT MAX_INST_BUTTONS index
|
|
// If there's a 2nd instruction in that slot, print that. Otherwise, print nothing.
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(sfMovieStruct.sLabels[index])
|
|
IF NOT IS_STRING_NULL_OR_EMPTY(sfMovieStruct.eButtons[index + MAX_INST_BUTTONS])
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fSlot)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(sfMovieStruct.eButtons[index + MAX_INST_BUTTONS])
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(sfMovieStruct.eButtons[index])
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sfMovieStruct.sLabels[index])
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fSlot)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(sfMovieStruct.eButtons[index])
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sfMovieStruct.sLabels[index])
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
fSlot += 1
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "DRAW_INSTRUCTIONAL_BUTTONS")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(sfMovieStruct.eOrient)))
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_BACKGROUND_COLOUR")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(80)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
SET_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Draws up to 8 minigame instructions on screen. Hides until a button is pressed, then pops up all the instructions while it's pressed.
|
|
/// PARAMS:
|
|
/// sfMovieStruct - the movie struct
|
|
//PROC DRAW_MINIGAME_INSTRUCTIONS(SCRIPT_SCALEFORM_UI & sfMovieStruct)
|
|
// IF NOT IS_SCRIPT_SCALEFORM_UI_VALID_AND_LOADED(sfMovieStruct)
|
|
// DEBUG_MESSAGE("DRAW_MINIGAME_INSTRUCTIONS failing.")
|
|
// EXIT
|
|
// ENDIF
|
|
//
|
|
// // Always draw.
|
|
// IF IS_BITMASK_AS_ENUM_SET(sfMovieStruct.iBools, SF_UI_IsForMenu)
|
|
// DRAW_SCALEFORM_MOVIE(sfMovieStruct.sfMov, 0.39,0.467,1.0,1.0,255,255,255,0)
|
|
// ELSE
|
|
// DRAW_SCALEFORM_MOVIE(sfMovieStruct.sfMov, 0.5,0.5,1.0,1.0,255,255,255,0)
|
|
// ENDIF
|
|
//
|
|
// IF IS_CONTROL_PRESSED(FRONTEND_CONTROL, padButton)
|
|
// // If the button is pressed, we need to call the new setup, but only once!
|
|
// IF NOT IS_BITMASK_AS_ENUM_SET(sfMovieStruct.iBools, SF_UI_CREATED_ButtonDown)
|
|
// BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_CLEAR_SPACE")
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(200.0)
|
|
// END_SCALEFORM_MOVIE_METHOD()
|
|
//
|
|
// BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT_EMPTY")
|
|
// END_SCALEFORM_MOVIE_METHOD()
|
|
//
|
|
// FLOAT fSlot = 0
|
|
// INT index
|
|
// FOR index = 1 TO MAX_INST_BUTTONS - 1
|
|
// IF NOT IS_STRING_NULL_OR_EMPTY(sfMovieStruct.sLabels[index])
|
|
// IF (ENUM_TO_INT(sfMovieStruct.eButtons[index + MAX_INST_BUTTONS]) > -1)
|
|
// BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT")
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fSlot)
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(sfMovieStruct.eButtons[index + MAX_INST_BUTTONS])))
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(sfMovieStruct.eButtons[index])))
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sfMovieStruct.sLabels[index])
|
|
// END_SCALEFORM_MOVIE_METHOD()
|
|
//
|
|
// ELSE
|
|
// BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT")
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fSlot)
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(sfMovieStruct.eButtons[index])))
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sfMovieStruct.sLabels[index])
|
|
// END_SCALEFORM_MOVIE_METHOD()
|
|
// ENDIF
|
|
//
|
|
// fSlot += 1
|
|
// ENDIF
|
|
// ENDFOR
|
|
//
|
|
// BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "DRAW_INSTRUCTIONAL_BUTTONS")
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(sfMovieStruct.eOrient)))
|
|
// END_SCALEFORM_MOVIE_METHOD()
|
|
//
|
|
// BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_BACKGROUND_COLOUR")
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(80)
|
|
// END_SCALEFORM_MOVIE_METHOD()
|
|
//
|
|
// SET_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_CREATED_ButtonDown)
|
|
// CLEAR_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
// ENDIF
|
|
// ELSE
|
|
// // If the button is not set, then we need to call the enw setup, but only once!
|
|
// IF NOT IS_BITMASK_AS_ENUM_SET(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
// BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_CLEAR_SPACE")
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(200.0)
|
|
// END_SCALEFORM_MOVIE_METHOD()
|
|
//
|
|
// BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT_EMPTY")
|
|
// END_SCALEFORM_MOVIE_METHOD()
|
|
//
|
|
// BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_DATA_SLOT")
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(sfMovieStruct.eButtons[0])))
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sfMovieStruct.sLabels[0])
|
|
// END_SCALEFORM_MOVIE_METHOD()
|
|
//
|
|
// BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "DRAW_INSTRUCTIONAL_BUTTONS")
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(ENUM_TO_INT(sfMovieStruct.eOrient)))
|
|
// END_SCALEFORM_MOVIE_METHOD()
|
|
//
|
|
// BEGIN_SCALEFORM_MOVIE_METHOD(sfMovieStruct.sfMov, "SET_BACKGROUND_COLOUR")
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0)
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(80)
|
|
// END_SCALEFORM_MOVIE_METHOD()
|
|
//
|
|
// SET_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_CREATED_ButtonUp)
|
|
// CLEAR_BITMASK_AS_ENUM(sfMovieStruct.iBools, SF_UI_CREATED_ButtonDown)
|
|
// ENDIF
|
|
// ENDIF
|
|
//
|
|
//ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Cleans the script scaleform UI struct. Should be called before re-use.
|
|
PROC CLEANUP_MINIGAME_INSTRUCTIONS(SCRIPT_SCALEFORM_UI & sfMovieStruct)
|
|
IF (sfMovieStruct.sfMov <> NULL)
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(sfMovieStruct.sfMov)
|
|
sfMovieStruct.sfMov = NULL
|
|
ENDIF
|
|
|
|
sfMovieStruct.iBools = 0
|
|
sfMovieStruct.eOrient = SF_UI_Horizontal
|
|
sfMovieStruct.eButtons[0] = NULL
|
|
sfMovieStruct.eButtons[1] = NULL
|
|
sfMovieStruct.eButtons[2] = NULL
|
|
sfMovieStruct.eButtons[3] = NULL
|
|
sfMovieStruct.eButtons[4] = NULL
|
|
sfMovieStruct.eButtons[5] = NULL
|
|
sfMovieStruct.eButtons[6] = NULL
|
|
sfMovieStruct.eButtons[7] = NULL
|
|
|
|
sfMovieStruct.eInputs[0] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[1] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[2] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[3] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[4] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[5] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[6] = MAX_INPUTS
|
|
sfMovieStruct.eInputs[7] = MAX_INPUTS
|
|
|
|
sfMovieStruct.sLabels[0] = NULL
|
|
sfMovieStruct.sLabels[1] = NULL
|
|
sfMovieStruct.sLabels[2] = NULL
|
|
sfMovieStruct.sLabels[3] = NULL
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///////////////////////
|
|
/// INTRO UI ///
|
|
///////////////////////
|
|
PROC INTROUI_SET_DATA_SLOT_2STRINGS(SCALEFORM_INDEX introUI, INT iSlot1, INT iSlot2, STRING Label, STRING Value)
|
|
IF IS_STRING_NULL(Label)
|
|
Label = ""
|
|
ENDIF
|
|
IF IS_STRING_NULL(Value)
|
|
Value = ""
|
|
ENDIF
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(introUI, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(Value)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(Label)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC INTROUI_SET_DATA_SLOT(SCALEFORM_INDEX introUI, INT iSlot1, INT iSlot2, INT iSlot3, FLOAT fSlot4, STRING sText)
|
|
IF IS_STRING_NULL(sText)
|
|
sText = ""
|
|
ENDIF
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(introUI, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot3)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fSlot4)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sText)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// This is for UI slots that need an extra data slot (currently, TIME.)
|
|
PROC INTROUI_SET_DATA_SLOT_5(SCALEFORM_INDEX introUI, INT iSlot1, INT iSlot2, INT iSlot3, FLOAT fSlot4, FLOAT fSlot5, STRING sText)
|
|
IF IS_STRING_NULL(sText)
|
|
sText = ""
|
|
ENDIF
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(introUI, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iSlot3)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fSlot4)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(fSlot5)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sText)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC INTROUI_SET_MISSION_TITLE(SCALEFORM_INDEX introUI, STRING sTitle = NULL, STRING sText = NULL)
|
|
IF IS_STRING_NULL(sTitle)
|
|
sTitle = ""
|
|
ENDIF
|
|
IF IS_STRING_NULL(sText)
|
|
sText = ""
|
|
ENDIF
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(introUI, "SET_MISSION_TITLE")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sTitle)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sText)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC INTROUI_SET_MISSION_TITLE_WITH_SUBSTRING(SCALEFORM_INDEX introUI, STRING sTitle = NULL, STRING sText = NULL, STRING sTextInsert = NULL)
|
|
IF IS_STRING_NULL(sTitle)
|
|
sTitle = ""
|
|
ENDIF
|
|
IF IS_STRING_NULL(sText)
|
|
sText = ""
|
|
ENDIF
|
|
IF IS_STRING_NULL(sTextInsert)
|
|
sTextInsert = ""
|
|
ENDIF
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(introUI, "SET_MISSION_TITLE")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sTitle)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sText)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(sTextInsert)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC INTROUI_SET_MISSION_BG_COLOUR(SCALEFORM_INDEX introUI, INT iRed = 214, INT iGreen = 189, INT iBlue = 97)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(introUI, "SET_MISSION_BG_COLOUR")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iRed)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iGreen)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iBlue)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC INTROUI_SET_MISSION_SUBTITLE_COLOUR(SCALEFORM_INDEX introUI, INT iRed = 0, INT iGreen = 0, INT iBlue = 0)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(introUI, "SET_MISSION_SUBTITLE_COLOUR")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iRed)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iGreen)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iBlue)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC INTROUI_SET_MEDAL(SCALEFORM_INDEX introUI, INT iMedal = 0)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(introUI, "SET_MEDAL")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMedal)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC INTROUI_SET_TOTAL_STRING(SCALEFORM_INDEX introUI, STRING sTotalString)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(introUI, "SET_TOTAL")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(-99)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(-99)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sTotalString)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC INTROUI_DRAW_MENU_LIST(SCALEFORM_INDEX introUI)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(introUI, "DRAW_MENU_LIST")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC INTROUI_HIGHLIGHT_ITEM(SCALEFORM_INDEX introUI, INT iHighlight = 0, BOOL bHighlight = FALSE)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(introUI, "HIGHLIGHT_ITEM")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iHighlight)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(bHighlight)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
FUNC SCALEFORM_INDEX REQUEST_INTRO_UI()
|
|
RETURN REQUEST_SCALEFORM_MOVIE("mission_complete")
|
|
ENDFUNC
|
|
|
|
PROC SETUP_INTRO_UI_BASIC(SCALEFORM_INDEX introUI, STRING sTitle, STRING sDetails)
|
|
INTROUI_SET_MISSION_TITLE(introUI, sTitle, sDetails)
|
|
|
|
INTROUI_SET_MISSION_BG_COLOUR(introUI, 214, 189, 97)
|
|
INTROUI_SET_MISSION_SUBTITLE_COLOUR(introUI, 0, 0, 0)
|
|
INTROUI_SET_MEDAL(introUI, 0)
|
|
INTROUI_DRAW_MENU_LIST(introUI)
|
|
INTROUI_HIGHLIGHT_ITEM(introUI, 0)
|
|
ENDPROC
|
|
|
|
PROC SETUP_INTRO_UI_WITH_SUBSTRING(SCALEFORM_INDEX introUI, STRING sTitle, STRING sDetails, STRING sTextInsert)
|
|
INTROUI_SET_MISSION_TITLE_WITH_SUBSTRING(introUI, sTitle, sDetails, sTextInsert)
|
|
|
|
INTROUI_SET_MISSION_BG_COLOUR(introUI, 214, 189, 97)
|
|
INTROUI_SET_MISSION_SUBTITLE_COLOUR(introUI, 0, 0, 0)
|
|
INTROUI_SET_MEDAL(introUI, 0)
|
|
INTROUI_DRAW_MENU_LIST(introUI)
|
|
INTROUI_HIGHLIGHT_ITEM(introUI, 0)
|
|
ENDPROC
|
|
|
|
PROC ADD_INTRO_UI_DATA_ITEM(SCALEFORM_INDEX introUI, STRING sItem, INT iSlot, INT iType, INT iCheckboxStatus, INT iData)
|
|
INTROUI_SET_DATA_SLOT(introUI, iSlot, iCheckboxStatus, iType, TO_FLOAT(iData), sItem)
|
|
ENDPROC
|
|
|
|
PROC ADD_INTRO_UI_LIST_ITEM(SCALEFORM_INDEX introUI, STRING sItem, INT iSlot)
|
|
INTROUI_SET_DATA_SLOT(introUI, iSlot, 0, 7, 0.0, sItem)
|
|
ENDPROC
|
|
|
|
PROC CLEAR_INTRO_UI_SLOTS(SCALEFORM_INDEX introUI)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(introUI, "SET_DATA_SLOT_EMPTY")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC SELECT_INTRO_UI_LIST_ITEM(SCALEFORM_INDEX introUI, INT iSlot, BOOL bHighlight)
|
|
INTROUI_HIGHLIGHT_ITEM(introUI, iSlot, bHighlight)
|
|
ENDPROC
|
|
|
|
PROC DISPLAY_INTRO_UI(SCALEFORM_INDEX introUI)
|
|
DRAW_SCALEFORM_MOVIE(introUI, 0.1632, 0.307, 0.225, 0.5111, 255, 255, 255, 0)
|
|
ENDPROC
|
|
|
|
PROC CLEANUP_INTRO_UI(SCALEFORM_INDEX introUI)
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(introUI)
|
|
ENDPROC
|
|
|
|
///////////////////////
|
|
/// QUIT UI ///
|
|
///////////////////////
|
|
PROC QUITUI_SET_TEXT(SCALEFORM_INDEX quitUI, STRING sTitle = NULL, STRING sText = NULL)
|
|
IF IS_STRING_NULL(sTitle)
|
|
sTitle = ""
|
|
ENDIF
|
|
IF IS_STRING_NULL(sText)
|
|
sText = ""
|
|
ENDIF
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(quitUI, "SET_TEXT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sTitle)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sText)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
/// PURPOSE:
|
|
/// Set the quit text with a title, all text, and substring with a number.
|
|
/// PARAMS:
|
|
/// quitUI -
|
|
/// sTitle -
|
|
/// sText -
|
|
/// iNum -
|
|
PROC QUITUI_SET_TEXT_WITH_NUMBER_SUBSTRING(SCALEFORM_INDEX quitUI, STRING sTitle = NULL, STRING sText = NULL, INT iNum = -1)
|
|
IF IS_STRING_NULL(sTitle)
|
|
sTitle = ""
|
|
ENDIF
|
|
IF IS_STRING_NULL(sText)
|
|
sText = ""
|
|
ENDIF
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(quitUI, "SET_TEXT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(sTitle)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(sText)
|
|
ADD_TEXT_COMPONENT_INTEGER(iNum)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC QUITUI_TRANSITION_IN(SCALEFORM_INDEX quitUI, INT iMSIn = 0)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(quitUI, "TRANSITION_IN")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMSIn)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
PROC QUITUI_TRANSITION_OUT(SCALEFORM_INDEX quitUI, INT iMSOut = 0)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(quitUI, "TRANSITION_OUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iMSOut)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
|
|
FUNC SCALEFORM_INDEX REQUEST_QUIT_UI()
|
|
RETURN REQUEST_SCALEFORM_MOVIE("mission_quit")
|
|
ENDFUNC
|
|
|
|
PROC SETUP_QUIT_UI(SCALEFORM_INDEX quitUI, STRING sTitle, STRING sDetails)
|
|
|
|
QUITUI_SET_TEXT(quitUI, sTitle, sDetails)
|
|
QUITUI_TRANSITION_IN(quitUI, 0)
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Sets text with a number and transitions in
|
|
/// PARAMS:
|
|
/// quitUI -
|
|
/// sTitle -
|
|
/// sDetails -
|
|
/// iNum -
|
|
PROC SETUP_QUIT_UI_WITH_NUMBER_SUBSTRING(SCALEFORM_INDEX quitUI, STRING sTitle, STRING sDetails, INT iNum)
|
|
QUITUI_SET_TEXT_WITH_NUMBER_SUBSTRING(quitUI, sTitle, sDetails, iNum)
|
|
QUITUI_TRANSITION_IN(quitUI, 0)
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Nearly the same as SETUP function but doens't call QUITUI_TRANSITION_IN
|
|
/// PARAMS:
|
|
/// quitUI -
|
|
/// sTitle -
|
|
/// sDetails -
|
|
/// iNum -
|
|
PROC UPDATE_QUIT_UI_WITH_NUMBER_SUBSTRING(SCALEFORM_INDEX quitUI, STRING sTitle, STRING sDetails, INT iNum)
|
|
QUITUI_SET_TEXT_WITH_NUMBER_SUBSTRING(quitUI, sTitle, sDetails, iNum)
|
|
ENDPROC
|
|
|
|
PROC DISPLAY_QUIT_UI(SCALEFORM_INDEX quitUI)
|
|
SET_SCRIPT_GFX_DRAW_ORDER(GFX_ORDER_BEFORE_HUD)
|
|
DRAW_SCALEFORM_MOVIE(quitUI, 0.5,0.5,1.0 ,1.0 ,255,255,255,0)
|
|
ENDPROC
|
|
|
|
PROC CLEANUP_QUIT_UI(SCALEFORM_INDEX quitUI)
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(quitUI)
|
|
ENDPROC
|
|
|
|
|
|
CONST_INT DEFAULT_SPLASH_DURATION 4000
|
|
CONST_INT DEFAULT_SPLASH_R 253
|
|
CONST_INT DEFAULT_SPLASH_G 214
|
|
CONST_INT DEFAULT_SPLASH_B 83
|
|
CONST_INT DEFAULT_SPLASH_A 255
|
|
CONST_INT SPLASH_RED_R 235
|
|
CONST_INT SPLASH_RED_G 36
|
|
CONST_INT SPLASH_RED_B 39
|
|
|
|
STRUCT SCRIPT_SCALEFORM_SPLASH
|
|
SCALEFORM_INDEX siMovie
|
|
INT iDuration
|
|
structTimer movieTimer
|
|
ENDSTRUCT
|
|
|
|
/// PURPOSE:
|
|
/// Asks for the scaleform splash text ui.
|
|
FUNC SCALEFORM_INDEX REQUEST_SCALEFORM_SPLASH_UI()
|
|
RETURN REQUEST_SCALEFORM_MOVIE("SPLASH_TEXT")
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Set splash text for a given duration
|
|
/// PARAMS:
|
|
/// scaleformIndex -
|
|
/// label - splash text string
|
|
/// iDuration - duration in milliseconds
|
|
PROC SET_SCALEFORM_SPLASH_TEXT(SCRIPT_SCALEFORM_SPLASH & scaleformStruct, STRING labeToDisp, INT iDuration = DEFAULT_SPLASH_DURATION,
|
|
INT iColor_R = DEFAULT_SPLASH_R, INT iColor_G = DEFAULT_SPLASH_G, INT iColor_B = DEFAULT_SPLASH_B, INT iColor_A = DEFAULT_SPLASH_A)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "SET_SPLASH_TEXT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(labeToDisp)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iDuration)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_R)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_G)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_B)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_A)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
// Restart our timer for updating.
|
|
RESTART_TIMER_NOW(scaleformStruct.movieTimer)
|
|
|
|
// Store the duration.
|
|
scaleformStruct.iDuration = iDuration
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Set splash text for a given duration
|
|
/// PARAMS:
|
|
/// scaleformIndex -
|
|
/// label - splash text string
|
|
/// iNum - Number to insert into the string.
|
|
/// iDuration - duration in milliseconds
|
|
PROC SET_SCALEFORM_SPLASH_TEXT_WITH_NUMBER(SCRIPT_SCALEFORM_SPLASH & scaleformStruct, STRING labeToDisp, INT iNum, INT iDuration = DEFAULT_SPLASH_DURATION,
|
|
INT iColor_R = DEFAULT_SPLASH_R, INT iColor_G = DEFAULT_SPLASH_G, INT iColor_B = DEFAULT_SPLASH_B, INT iColor_A = DEFAULT_SPLASH_A)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "SET_SPLASH_TEXT")
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(labeToDisp)
|
|
ADD_TEXT_COMPONENT_INTEGER(iNum)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iDuration)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_R)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_G)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_B)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_A)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
// Restart our timer for updating.
|
|
RESTART_TIMER_NOW(scaleformStruct.movieTimer)
|
|
|
|
// Store the duration.
|
|
scaleformStruct.iDuration = iDuration
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Set splash text for a given duration
|
|
/// PARAMS:
|
|
/// scaleformIndex -
|
|
/// label - splash text string
|
|
/// iNum - Number to insert into the string.
|
|
/// iDuration - duration in milliseconds
|
|
PROC SET_SCALEFORM_SPLASH_TEXT_WITH_STRING(SCRIPT_SCALEFORM_SPLASH & scaleformStruct, STRING labeToDisp, STRING subString, INT iDuration = DEFAULT_SPLASH_DURATION,
|
|
INT iColor_R = DEFAULT_SPLASH_R, INT iColor_G = DEFAULT_SPLASH_G, INT iColor_B = DEFAULT_SPLASH_B, INT iColor_A = DEFAULT_SPLASH_A)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "SET_SPLASH_TEXT")
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(labeToDisp)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL(subString)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iDuration)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_R)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_G)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_B)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_A)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
// Restart our timer for updating.
|
|
RESTART_TIMER_NOW(scaleformStruct.movieTimer)
|
|
|
|
// Store the duration.
|
|
scaleformStruct.iDuration = iDuration
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Set splash text for a given duration using the player's username/gamertag
|
|
/// Used mainly in MP
|
|
/// PARAMS:
|
|
/// scaleformIndex -
|
|
/// label - splash text string
|
|
/// iNum - Number to insert into the string.
|
|
/// iDuration - duration in milliseconds
|
|
PROC SET_SCALEFORM_SPLASH_TEXT_WITH_PLAYER_NAME(SCRIPT_SCALEFORM_SPLASH & scaleformStruct, STRING labeToDisp, STRING sPlayerName, INT iDuration = DEFAULT_SPLASH_DURATION,
|
|
INT iColor_R = DEFAULT_SPLASH_R, INT iColor_G = DEFAULT_SPLASH_G, INT iColor_B = DEFAULT_SPLASH_B, INT iColor_A = DEFAULT_SPLASH_A)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "SET_SPLASH_TEXT")
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING(labeToDisp)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(sPlayerName)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iDuration)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_R)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_G)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_B)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_A)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
// 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_SPLASH(SCRIPT_SCALEFORM_SPLASH & scaleformStruct, BOOL bAllowSkip = 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)
|
|
DRAW_SCALEFORM_MOVIE(scaleformStruct.siMovie, 0.5, 0.5, 1.0 ,1.0, 255,255,255,0)
|
|
|
|
// 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_SPLASH_BE_VISIBLE(SCRIPT_SCALEFORM_SPLASH & 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:
|
|
/// When attempting to manually control the entering and exiting of the scaleform splash text, use this function to set the text
|
|
// to display. DOES NOT TAKE A TIME AS YOU MUST USE SPLASH_TEXT_TRANSITION_IN & SPLASH_TEXT_TRANSITION_OUT.
|
|
PROC SET_SCALEFORM_SPLASH_TEXT_LABEL(SCRIPT_SCALEFORM_SPLASH & scaleformStruct, STRING labeToDisp,
|
|
INT iColor_R = DEFAULT_SPLASH_R, INT iColor_G = DEFAULT_SPLASH_G, INT iColor_B = DEFAULT_SPLASH_B, INT iColor_A = DEFAULT_SPLASH_A,
|
|
BOOL bStartNow = FALSE)
|
|
scaleformStruct.iDuration = -1
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "SPLASH_TEXT_LABEL")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(labeToDisp)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_R)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_G)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_B)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iColor_A)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF bStartNow
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "SPLASH_TEXT_TRANSITION_IN")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// When you want to manually control when your splash text comes in, use this.
|
|
/// YOU MUST CALL UPDATE_SCALEFORM_SPLASH & SPLASH_TEXT_TRANSITION_OUT, manually.
|
|
PROC SPLASH_TEXT_TRANSITION_IN(SCRIPT_SCALEFORM_SPLASH & scaleformStruct)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "SPLASH_TEXT_TRANSITION_IN")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// When you want to manually control when your splash text goes out, use this.
|
|
/// YOU MUST CALL UPDATE_SCALEFORM_SPLASH & SPLASH_TEXT_TRANSITION_IN, manually.
|
|
PROC SPLASH_TEXT_TRANSITION_OUT(SCRIPT_SCALEFORM_SPLASH & scaleformStruct)
|
|
scaleformStruct.iDuration = 300
|
|
RESTART_TIMER_NOW(scaleformStruct.movieTimer)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(scaleformStruct.siMovie, "SPLASH_TEXT_TRANSITION_OUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(300)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDPROC
|
|
|
|
/// PURPOSE:
|
|
/// Functional replacement of GET_POSITION_OF_ANALOGUE_STICKS usable for release as per Imran's email
|
|
/// PARAMS:
|
|
/// returnLeftX -
|
|
/// returnLeftY -
|
|
/// returnRightX -
|
|
/// returnRightY -
|
|
/// bIsControlEnabled - GET_CONTROL_NORMAL won't return values if player control has been disabled, so we'll need to know if player's control has been taken away.
|
|
/// You can use IS_PLAYER_CONTROL_ON(PLAYER_ID()) as the last parameter to perform a check every frame.
|
|
PROC GET_ANALOG_STICK_VALUES(INT &returnLeftX, INT &returnLeftY, INT &returnRightX, INT &returnRightY, BOOL bIsControlEnabled = TRUE, BOOL bUnboundValues = TRUE)
|
|
FLOAT LeftX, LeftY, RightX, RightY
|
|
IF bUnboundValues = FALSE
|
|
IF bIsControlEnabled
|
|
LeftX = GET_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_LEFT_AXIS_X)
|
|
LeftY = GET_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y)
|
|
RightX = GET_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_X)
|
|
RightY = GET_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_Y)
|
|
ELSE
|
|
LeftX = GET_DISABLED_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_LEFT_AXIS_X)
|
|
LeftY = GET_DISABLED_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y)
|
|
RightX = GET_DISABLED_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_X)
|
|
RightY = GET_DISABLED_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_Y)
|
|
ENDIF
|
|
ELSE
|
|
IF bIsControlEnabled
|
|
LeftX = GET_CONTROL_UNBOUND_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_LEFT_AXIS_X)
|
|
LeftY = GET_CONTROL_UNBOUND_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y)
|
|
RightX = GET_CONTROL_UNBOUND_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_X)
|
|
RightY = GET_CONTROL_UNBOUND_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_Y)
|
|
ELSE
|
|
LeftX = GET_DISABLED_CONTROL_UNBOUND_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_LEFT_AXIS_X)
|
|
LeftY = GET_DISABLED_CONTROL_UNBOUND_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_LEFT_AXIS_Y)
|
|
RightX = GET_DISABLED_CONTROL_UNBOUND_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_X)
|
|
RightY = GET_DISABLED_CONTROL_UNBOUND_NORMAL(PLAYER_CONTROL, INPUT_SCRIPT_RIGHT_AXIS_Y)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
returnLeftX = ROUND(ANALOG_OFFSET * LeftX)
|
|
returnLeftY = ROUND(ANALOG_OFFSET * LeftY)
|
|
returnRightX = ROUND(ANALOG_OFFSET * RightX)
|
|
returnRightY = ROUND(ANALOG_OFFSET * RightY)
|
|
ENDPROC
|
|
|
|
PROC GET_ANALOG_STICK_VALUES_MOVE_INPUT(FLOAT &returnLeftX, FLOAT &returnLeftY, FLOAT &returnRightX, FLOAT &returnRightY, BOOL bIsControlEnabled = TRUE)
|
|
FLOAT LeftX, LeftY, RightX, RightY
|
|
IF bIsControlEnabled
|
|
LeftX = GET_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_MOVE_LR)
|
|
LeftY = GET_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_MOVE_UD)
|
|
RightX = GET_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_LOOK_LR)
|
|
RightY = GET_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_LOOK_UD)
|
|
ELSE
|
|
LeftX = GET_DISABLED_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_MOVE_LR)
|
|
LeftY = GET_DISABLED_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_MOVE_UD)
|
|
RightX = GET_DISABLED_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_LOOK_LR)
|
|
RightY = GET_DISABLED_CONTROL_NORMAL(PLAYER_CONTROL, INPUT_LOOK_UD)
|
|
ENDIF
|
|
|
|
returnLeftX = (LeftX + 1) / 2 //ROUND(ANALOG_OFFSET * LeftX)
|
|
returnLeftY = (LeftY + 1) / 2 //ROUND(ANALOG_OFFSET * LeftY)
|
|
returnRightX = (RightX + 1) / 2 //ROUND(ANALOG_OFFSET * RightX)
|
|
returnRightY = (RightY + 1) / 2 //ROUND(ANALOG_OFFSET * RightY)
|
|
ENDPROC
|
|
|