Files
2025-09-29 00:52:08 +02:00

129 lines
3.9 KiB
Scheme
Executable File

CONST_INT TENNIS_MP_MISSION_ID 27
CONST_INT TENNIS_MP_MAX_PARTICIPANTS 2
ENUM TENNIS_GLOBAL_FLAGS_ENUM
TGF_READY_FOR_FM_INTRO = 1,
TGF_START_AMBIENT_TENNIS = 2,
TGF_AMANDA_IS_OPP = 4,
TGF_AMBIENT_SHUTDOWN = 8,
TGF_DEFAULT_CAM_DYNA = 16,
TGF_ONE_SET_FINISHED = 32,
TGF_STR_INFO_SHOWN = 64,
TGF_PRELOADED_PLAYER_OUTFIT = 128,
TGF_TREVOR_MEETS_MICHAEL = 256,
TGF_QUIT_FROM_TENNIS_MP = 512
ENDENUM
FUNC STRING GET_STRING_FROM_TENNIS_GLOBAL_FLAG(TENNIS_GLOBAL_FLAGS_ENUM eFlag)
SWITCH eFlag
CASE TGF_READY_FOR_FM_INTRO RETURN "TGF_READY_FOR_FM_INTRO"
CASE TGF_START_AMBIENT_TENNIS RETURN "TGF_START_AMBIENT_TENNIS"
CASE TGF_AMANDA_IS_OPP RETURN "TGF_AMANDA_IS_OPP"
CASE TGF_AMBIENT_SHUTDOWN RETURN "TGF_AMBIENT_SHUTDOWN"
CASE TGF_DEFAULT_CAM_DYNA RETURN "TGF_DEFAULT_CAM_DYNA"
CASE TGF_ONE_SET_FINISHED RETURN "TGF_ONE_SET_FINISHED"
CASE TGF_STR_INFO_SHOWN RETURN "TGF_STR_INFO_SHOWN"
CASE TGF_PRELOADED_PLAYER_OUTFIT RETURN "TGF_PRELOADED_PLAYER_OUTFIT"
CASE TGF_TREVOR_MEETS_MICHAEL RETURN "TGF_TREVOR_MEETS_MICHAEL"
CASE TGF_QUIT_FROM_TENNIS_MP RETURN "TGF_QUIT_FROM_TENNIS_MP"
ENDSWITCH
RETURN "Unknown TENNIS_GLOBAL_FLAGS_ENUM"
ENDFUNC
STRUCT TennisDataSaved
INT iTotalAces
INT iTotalAced
INT iTotalPoints
INT iHighestDeuce
INT iGamesWon
INT iGamesLost
INT iSetsWon
INT iSetsLost
INT iMatchesWon
INT iMatchesLost
INT iTotalOOB
INT iTotalFaults
INT iSwingsForStrength
INT iSavedFlags
ENDSTRUCT
ENUM TENNISCOURT_LOCATION
TC_VENICE_1 = 0, // Player's court.
TC_VENICE_2,
TC_VENICE_3,
TC_VENICE_4,
TC_VENICE_5,
TC_VENICE_6,
TC_VENICE_7,
TC_VENICE_8,
TC_POSH_THEFT_MISSION,
TC_MICHAELS // Mike's house.
ENDENUM
STRUCT TennisLaunchData
TENNISCOURT_LOCATION eCourtToLaunch
BOOL bFreemodeIntro = FALSE // Flag to determine if the game is launching regularly or in the freemode intro
FLOAT fMaxDistForIntro // The distance used to terminate if the game is in the freemode intro
INT iStartDelay // The delay of the first serve if the game is in the freemode intro
ENDSTRUCT
TENNIS_GLOBAL_FLAGS_ENUM TENNIS_GLOBAL_FLAGS
/// PURPOSE:
/// These flags ARE NOT saved in save game data
/// PARAMS:
/// eFlag -
PROC SET_TENNIS_GLOBAL_FLAG(TENNIS_GLOBAL_FLAGS_ENUM eFlag)
CDEBUG2LN(DEBUG_TENNIS, "SET_TENNIS_GLOBAL_FLAG :: setting ", GET_STRING_FROM_TENNIS_GLOBAL_FLAG(eFlag))
TENNIS_GLOBAL_FLAGS |= eFlag
ENDPROC
/// PURPOSE:
/// These flags ARE NOT saved in save game data
/// PARAMS:
/// eFlag -
PROC CLEAR_TENNIS_GLOBAL_FLAG(TENNIS_GLOBAL_FLAGS_ENUM eFlag)
CDEBUG2LN(DEBUG_TENNIS, "CLEAR_TENNIS_GLOBAL_FLAG :: clearing ", GET_STRING_FROM_TENNIS_GLOBAL_FLAG(eFlag))
TENNIS_GLOBAL_FLAGS -= TENNIS_GLOBAL_FLAGS & eFlag
ENDPROC
/// PURPOSE:
/// These flags ARE NOT saved in save game data
/// PARAMS:
/// eFlag -
/// RETURNS:
///
FUNC BOOL IS_TENNIS_GLOBAL_FLAG_SET(TENNIS_GLOBAL_FLAGS_ENUM eFlag)
RETURN (ENUM_TO_INT(TENNIS_GLOBAL_FLAGS) & ENUM_TO_INT(eFlag)) <> 0
ENDFUNC
/// PURPOSE:
/// These flags ARE saved in save game data
/// PARAMS:
/// eFlag -
PROC SET_TENNIS_SAVED_GLOBAL_FLAG(TennisDataSaved &sSaved, TENNIS_GLOBAL_FLAGS_ENUM eFlag)
sSaved.iSavedFlags = sSaved.iSavedFlags | ENUM_TO_INT(eFlag)
ENDPROC
/// PURPOSE:
/// These flags ARE saved in save game data
/// PARAMS:
/// sSaved -
/// eFlag -
PROC CLEAR_TENNIS_SAVED_GLOBAL_FLAG(TennisDataSaved &sSaved, TENNIS_GLOBAL_FLAGS_ENUM eFlag)
sSaved.iSavedFlags -= sSaved.iSavedFlags & ENUM_TO_INT(eFlag)
ENDPROC
/// PURPOSE:
/// These flags ARE saved in save game data
/// PARAMS:
/// sSaved -
/// eFlag -
/// RETURNS:
///
FUNC BOOL IS_TENNIS_SAVED_GLOBAL_FLAG_SET(TennisDataSaved &sSaved, TENNIS_GLOBAL_FLAGS_ENUM eFlag)
RETURN (ENUM_TO_INT(sSaved.iSavedFlags) & ENUM_TO_INT(eFlag)) <> 0
ENDFUNC