258 lines
9.1 KiB
Scheme
Executable File
258 lines
9.1 KiB
Scheme
Executable File
USING "commands_graphics.sch"
|
|
USING "commands_debug.sch"
|
|
USING "globals.sch"
|
|
USING "script_useContext.sch"
|
|
USING "minigame_big_message.sch"
|
|
USING "minigame_midsized_message.sch"
|
|
USING "tennis_player.sch"
|
|
USING "end_screen.sch"
|
|
USING "net_celebration_screen.sch"
|
|
|
|
ENUM TENNIS_HEADSET_ENUM
|
|
THE_NONE = 0,
|
|
THE_INACTIVE,
|
|
THE_ACTIVE,
|
|
THE_MUTED,
|
|
THE_MAX_STATES
|
|
ENDENUM
|
|
|
|
FUNC STRING GET_STRING_FROM_TENNIS_HEADSET_ENUM( TENNIS_HEADSET_ENUM eState )
|
|
SWITCH eState
|
|
CASE THE_NONE RETURN "THE_NONE"
|
|
CASE THE_INACTIVE RETURN "THE_INACTIVE"
|
|
CASE THE_ACTIVE RETURN "THE_ACTIVE"
|
|
CASE THE_MUTED RETURN "THE_MUTED"
|
|
CASE THE_MAX_STATES RETURN "THE_MAX_STATES"
|
|
ENDSWITCH
|
|
RETURN "unknown TENNIS_HEADSET_ENUM"
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
ENUM UI_STATE_ENUM
|
|
TENNIS_UI_SET_INIT, //0
|
|
TENNIS_UI_SET_SELECT,
|
|
TENNIS_UI_SET_CONVO,
|
|
TENNIS_UI_DIFF_INIT,
|
|
TENNIS_UI_DIFF_SELECT,
|
|
TENNIS_UI_REMATCH, //5
|
|
TENNIS_UI_AIM,
|
|
TENNIS_UI_SPIN1,
|
|
TENNIS_UI_SPIN2,
|
|
TENNIS_UI_STROKES,
|
|
TENNIS_UI_HELP_SERVE, //10
|
|
TENNIS_UI_PLAYING,
|
|
TENNIS_UI_STRONG_SWING,
|
|
TENNIS_UI_VETERAN,
|
|
TENNIS_UI_SCOREBOARD,
|
|
TENNIS_UI_FAR_AWAY, //15
|
|
TENNIS_UI_STR_INFO,
|
|
TENNIS_UI_QUIT
|
|
ENDENUM
|
|
|
|
ENUM TENNIS_UI_FLAGS
|
|
TUF_SHOW_SCOREBOARD = BIT0,
|
|
TUF_SHOW_SERVE_METER = BIT1,
|
|
TUF_NO_SPLASH = BIT2,
|
|
TUF_ANALOG_UP = BIT3,
|
|
TUF_ANALOG_DOWN = BIT4,
|
|
TUF_QUIT_WAIT = BIT5,
|
|
TUF_MP_QUIT_BUTTON_SET = BIT6,
|
|
TUF_SWING_METER_POS_SET = BIT7,
|
|
TUF_UI_POST_SERVE = BIT8,
|
|
TUF_NO_DYNA_CAM = BIT9,
|
|
TUF_SECOND_SERVE = BIT10,
|
|
TUF_FOULED = BIT11,
|
|
TUF_SIDE_CHANGING = BIT12,
|
|
TUF_SHOW_SERVE_MESSAGE = BIT13,
|
|
TUF_TIMER_SOUND_PLAYED = BIT14,
|
|
TUF_ANALOG_LEFT = BIT15,
|
|
TUF_PLAYER_CARD_SHOULD_SHOW = BIT16, // Quit Flag
|
|
TUF_SCOREBOARD_SHOULD_SHOW = BIT17, // Quit Flag
|
|
TUF_HIDING_SCORE_UI = BIT18,
|
|
TUF_SHOW_OPP_X_MARKER = BIT19, // Used when we want to show the opponent's X Marker (MP Tutorial only right now)
|
|
TUF_HIT_BEFORE_BOUNCE = BIT20, // Used when the opponent hit the ball before a bounce on a serve
|
|
TUF_SCLB_BUTTONS_INITED = BIT21,
|
|
TUF_QUIT_OUTSIDE_COURT = BIT22,
|
|
TUF_RETURNING_FROM_QUIT = BIT23,
|
|
TUF_GAME_WON = BIT24, // MP ONLY
|
|
TUF_SET_WON = BIT25, // MP ONLY
|
|
TUF_MATCH_WON = BIT26, // Function differs between MP and SP. In MP it's a trigger, in SP it's a gate.
|
|
TUF_TIEBREAK_HELP_SHOULD_SHOW = BIT27,
|
|
TUF_STATE_CONTROL_FLAG = BIT28,
|
|
TUF_ANALOG_RIGHT = BIT29,
|
|
TUF_SHOW_SCLB = BIT30
|
|
ENDENUM
|
|
|
|
FUNC STRING GET_STRING_FROM_TENNIS_UI_FLAG(TENNIS_UI_FLAGS eFlag)
|
|
RETURN PICK_STRING(eFlag = TUF_SHOW_SCOREBOARD, "TUF_SHOW_SCOREBOARD",
|
|
PICK_STRING(eFlag = TUF_SHOW_SERVE_METER, "TUF_SHOW_SERVE_METER",
|
|
PICK_STRING(eFlag = TUF_NO_SPLASH, "TUF_NO_SPLASH",
|
|
PICK_STRING(eFlag = TUF_ANALOG_UP, "TUF_ANALOG_UP",
|
|
PICK_STRING(eFlag = TUF_ANALOG_DOWN, "TUF_ANALOG_DOWN",
|
|
PICK_STRING(eFlag = TUF_QUIT_WAIT, "TUF_QUIT_WAIT",
|
|
PICK_STRING(eFlag = TUF_MP_QUIT_BUTTON_SET, "TUF_MP_QUIT_BUTTON_SET",
|
|
PICK_STRING(eFlag = TUF_SWING_METER_POS_SET, "TUF_SWING_METER_POS_SET",
|
|
PICK_STRING(eFlag = TUF_UI_POST_SERVE, "TUF_UI_POST_SERVE",
|
|
PICK_STRING(eFlag = TUF_NO_DYNA_CAM, "TUF_NO_DYNA_CAM",
|
|
PICK_STRING(eFlag = TUF_SECOND_SERVE, "TUF_SECOND_SERVE",
|
|
PICK_STRING(eFlag = TUF_FOULED, "TUF_FOULED",
|
|
PICK_STRING(eFlag = TUF_SIDE_CHANGING, "TUF_SIDE_CHANGING",
|
|
PICK_STRING(eFlag = TUF_SHOW_SERVE_MESSAGE, "TUF_SHOW_SERVE_MESSAGE",
|
|
PICK_STRING(eFlag = TUF_TIMER_SOUND_PLAYED, "TUF_TIMER_SOUND_PLAYED",
|
|
PICK_STRING(eFlag = TUF_ANALOG_LEFT, "TUF_ANALOG_LEFT",
|
|
PICK_STRING(eFlag = TUF_PLAYER_CARD_SHOULD_SHOW, "TUF_PLAYER_CARD_SHOULD_SHOW",
|
|
PICK_STRING(eFlag = TUF_SCOREBOARD_SHOULD_SHOW, "TUF_SCOREBOARD_SHOULD_SHOW",
|
|
PICK_STRING(eFlag = TUF_HIDING_SCORE_UI, "TUF_HIDING_SCORE_UI",
|
|
PICK_STRING(eFlag = TUF_SHOW_OPP_X_MARKER, "TUF_SHOW_OPP_X_MARKER",
|
|
PICK_STRING(eFlag = TUF_HIT_BEFORE_BOUNCE, "TUF_HIT_BEFORE_BOUNCE",
|
|
PICK_STRING(eFlag = TUF_SCLB_BUTTONS_INITED, "TUF_SCLB_BUTTONS_INITED",
|
|
PICK_STRING(eFlag = TUF_QUIT_OUTSIDE_COURT, "TUF_QUIT_OUTSIDE_COURT",
|
|
PICK_STRING(eFlag = TUF_RETURNING_FROM_QUIT, "TUF_RETURNING_FROM_QUIT",
|
|
PICK_STRING(eFlag = TUF_GAME_WON, "TUF_GAME_WON",
|
|
PICK_STRING(eFlag = TUF_SET_WON, "TUF_SET_WON",
|
|
PICK_STRING(eFlag = TUF_MATCH_WON, "TUF_MATCH_WON",
|
|
PICK_STRING(eFlag = TUF_TIEBREAK_HELP_SHOULD_SHOW, "TUF_TIEBREAK_HELP_SHOULD_SHOW",
|
|
PICK_STRING(eFlag = TUF_STATE_CONTROL_FLAG, "TUF_STATE_CONTROL_FLAG",
|
|
PICK_STRING(eFlag = TUF_ANALOG_RIGHT, "TUF_ANALOG_RIGHT",
|
|
PICK_STRING(eFlag = TUF_SHOW_SCLB, "TUF_SHOW_SCLB",
|
|
"Unknown TENNIS_UI_FLAGS enum")))))))))))))))))))))))))))))))
|
|
ENDFUNC
|
|
|
|
ENUM TENNIS_HEADSHOT_STATE
|
|
THS_REGISTER_PEDHEADSHOT = 0,
|
|
THS_IS_PEDHEADSHOT_VALID,
|
|
THS_IS_PEDHEADSHOT_READY,
|
|
THS_REQUEST_STREAMED_TEXTURE_DICT,
|
|
THS_HAS_STREAMED_TEXTURE_DICT_LOADED,
|
|
THS_FINISHED
|
|
ENDENUM
|
|
|
|
STRUCT TENNIS_MP_HEADSHOT_STRUCT
|
|
TEXT_LABEL_31 headShotTxd
|
|
PEDHEADSHOT_ID myPedHeadshot
|
|
INT iFailSafe
|
|
TENNIS_HEADSHOT_STATE eHeadshotState
|
|
ENDSTRUCT
|
|
|
|
ENUM TENNIS_UI_SECONDARY_FLAGS
|
|
TUSF_END_SCREEN_INITED = BIT0,
|
|
TUSF_MISSION_END_STINGER = BIT1,
|
|
TUSF_STOP_PROCESS_SCOREBOARD_THIS_FRAME = BIT2,
|
|
TUSF_SCLB_BUTTONS_INITED_OFFLINE = BIT3,
|
|
TUSF_SCLB_PROFILE_BUTTON_SHOWN = BIT4
|
|
ENDENUM
|
|
|
|
FUNC STRING GET_STRING_FROM_TENNIS_UI_FLAG_SET_TWO(TENNIS_UI_SECONDARY_FLAGS eFlag)
|
|
SWITCH eFlag
|
|
CASE TUSF_END_SCREEN_INITED RETURN "TUSF_END_SCREEN_INITED"
|
|
CASE TUSF_MISSION_END_STINGER RETURN "TUSF_MISSION_END_STINGER"
|
|
CASE TUSF_STOP_PROCESS_SCOREBOARD_THIS_FRAME RETURN "TUSF_STOP_PROCESS_SCOREBOARD_THIS_FRAME"
|
|
CASE TUSF_SCLB_BUTTONS_INITED_OFFLINE RETURN "TUSF_SCLB_BUTTONS_INITED_OFFLINE"
|
|
CASE TUSF_SCLB_PROFILE_BUTTON_SHOWN RETURN "TUSF_SCLB_PROFILE_BUTTON_SHOWN"
|
|
ENDSWITCH
|
|
RETURN "Unknown TENNIS_UI_SECONDARY_FLAGS enum"
|
|
ENDFUNC
|
|
|
|
STRUCT TENNIS_UI
|
|
BLIP_INDEX oppBlip
|
|
SIMPLE_USE_CONTEXT useContext
|
|
SCALEFORM_INDEX scorePanelSF
|
|
SCALEFORM_INDEX leaderboardUI
|
|
SCRIPT_SHARD_BIG_MESSAGE matchUI
|
|
INT iUIFlags
|
|
INT iPrevUIFlags
|
|
structTimer sUITimer
|
|
FLOAT fAwardViewTime
|
|
TEXT_LABEL_31 sHeadTextures[TENNIS_PLAYERS]
|
|
INT iBeepWait, iBeepTimeStamp, iMenuStamp
|
|
#IF IS_TENNIS_MULTIPLAYER
|
|
TENNIS_MP_HEADSHOT_STRUCT sHeadshots[2]
|
|
#ENDIF
|
|
END_SCREEN_DATASET thisEsd
|
|
TENNIS_UI_SECONDARY_FLAGS eUISecFlags
|
|
INT iXPToGive
|
|
INT iBets
|
|
INT iScorecardInputLockoutFrameStamp
|
|
// #IF IS_TENNIS_MULTIPLAYER
|
|
SCRIPT_SHARD_BIG_MESSAGE uiShardMS
|
|
// #ENDIF
|
|
ENDSTRUCT
|
|
|
|
PROC SET_TENNIS_UI_SCORECARD_INPUT_LOCKOUT_FRAME_STAMP(TENNIS_UI &thisUI, INT iNewStamp)
|
|
CDEBUG2LN(DEBUG_TENNIS, "SET_TENNIS_UI_SCORECARD_INPUT_LOCKOUT_FRAME_STAMP with iNewStamp=", iNewStamp)
|
|
thisUI.iScorecardInputLockoutFrameStamp = iNewStamp
|
|
ENDPROC
|
|
|
|
FUNC INT GET_TENNIS_UI_SCORECARD_INPUT_LOCKOUT_FRAME_STAMP(TENNIS_UI &thisUI)
|
|
RETURN thisUI.iScorecardInputLockoutFrameStamp
|
|
ENDFUNC
|
|
|
|
PROC DRAW_TENNIS_HELP_KEYS(INT iTimer = 0)
|
|
IF g_bResultScreenDisplaying
|
|
SET_RESULT_SCREEN_DISPLAYING_STATE(FALSE)
|
|
ENDIF
|
|
INT iScreenX, iDummy
|
|
GET_SCREEN_RESOLUTION(iScreenX, iDummy)
|
|
DRAW_MENU_HELP_SCALEFORM(iScreenX, -1, iTimer)
|
|
ENDPROC
|
|
|
|
PROC DRAW_TENNIS_INTRO_UI()
|
|
DRAW_MENU(TRUE, -1, TRUE)
|
|
ENDPROC
|
|
|
|
PROC UPDATE_TENNIS_SIMPLE_USE_CONTEXT(SIMPLE_USE_CONTEXT& useContext, BOOL bJPButtonSwitch = TRUE)
|
|
// CDEBUG3LN(DEBUG_TENNIS, "UPDATE_TENNIS_SIMPLE_USE_CONTEXT called, bJPButtonSwitch=", PICK_STRING(bJPBUttonSwitch, "TRUE", "FALSE"))
|
|
#IF IS_TENNIS_MULTIPLAYER
|
|
IF NETWORK_TEXT_CHAT_IS_TYPING()
|
|
EXIT
|
|
ENDIF
|
|
#ENDIF
|
|
UPDATE_SIMPLE_USE_CONTEXT(useContext, default, default, default, bJPButtonSwitch)
|
|
ENDPROC
|
|
|
|
PROC SET_TENNIS_UI_XP_TO_GIVE(TENNIS_UI &thisUI, INT iNewXP)
|
|
CPRINTLN(DEBUG_TENNIS, "SET_TENNIS_UI_XP_TO_GIVE :: iNewXP=", iNewXP)
|
|
thisUI.iXPToGive = iNewXP
|
|
ENDPROC
|
|
|
|
FUNC INT GET_TENNIS_UI_XP_TO_GIVE(TENNIS_UI &thisUI)
|
|
RETURN thisUI.iXPToGive
|
|
ENDFUNC
|
|
|
|
PROC SET_TENNIS_UI_BETS_DATA(TENNIS_UI &thisUI, INT iNewBetsData)
|
|
CPRINTLN(DEBUG_TENNIS, "SET_TENNIS_UI_BETS_DATA :: iNewBetsData=", iNewBetsData)
|
|
thisUI.iBets = iNewBetsData
|
|
ENDPROC
|
|
|
|
FUNC INT GET_TENNIS_UI_BETS_DATA(TENNIS_UI &thisUI)
|
|
RETURN thisUI.iBets
|
|
ENDFUNC
|
|
|
|
PROC SET_TENNIS_UI_SECONDARY_FLAG(TENNIS_UI &thisUI, TENNIS_UI_SECONDARY_FLAGS eFlag)
|
|
CDEBUG2LN(DEBUG_TENNIS, "SET_TENNIS_UI_SECONDARY_FLAG :: Setting ", GET_STRING_FROM_TENNIS_UI_FLAG_SET_TWO(eFlag))
|
|
thisUI.eUISecFlags = thisUI.eUISecFlags | eFlag
|
|
ENDPROC
|
|
|
|
PROC CLEAR_TENNIS_UI_SECONDARY_FLAG(TENNIS_UI &thisUI, TENNIS_UI_SECONDARY_FLAGS eFlag)
|
|
CDEBUG2LN(DEBUG_TENNIS, "CLEAR_TENNIS_UI_SECONDARY_FLAG :: Clearing ", GET_STRING_FROM_TENNIS_UI_FLAG_SET_TWO(eFlag))
|
|
thisUI.eUISecFlags -= thisUI.eUISecFlags & eFlag
|
|
ENDPROC
|
|
|
|
FUNC BOOL IS_TENNIS_UI_SECONDARY_FLAG_SET(TENNIS_UI &thisUI, TENNIS_UI_SECONDARY_FLAGS eFlag)
|
|
RETURN (ENUM_TO_INT(thisUI.eUISecFlags) & ENUM_TO_INT(eFlag)) <> 0
|
|
ENDFUNC
|
|
|
|
PROC DESTROY_TENNIS_BLIP(BLIP_INDEX& blip)
|
|
IF DOES_BLIP_EXIST(blip)
|
|
REMOVE_BLIP(blip)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC SET_TENNIS_UI_MENU_STAMP(TENNIS_UI &thisUI, INT iNewStamp)
|
|
thisUI.iMenuStamp = iNewStamp
|
|
ENDPROC
|
|
|
|
FUNC INT GET_TENNIS_UI_MENU_STAMP(TENNIS_UI &thisUI)
|
|
RETURN thisUI.iMenuStamp
|
|
ENDFUNC
|