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