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

113 lines
3.2 KiB
XML
Executable File

//Bit field of available buddies
ENUM GOLF_BUDDIES
GB_NONE = 0,
GB_MALE1 = 1,
//GB_CAR_THEFT_VICTIM = 1
GB_MALE3 = 2,
//GB_FEMALE2 = 16,
GB_MALE4 = 4,
GB_MALE5 = 8,
GB_DOMESTIC = 16,
//GB_FEMALE3 = 128,
//GB_FEMALE4 = 256,
//GB_FEMALE5 = 512,
GB_ALL_UNLOCKED = 31, //all flags set to true
GB_MAX_BUDDIES = 32 //max buddies is one bit higher then the buddy wit the highest values bit
ENDENUM
ENUM GOLF_SAVED_FLAGS
GSAVE_NONE = 0,
GSAVE_MICHAEL_UNLOCKED_DOMESTIC = BIT0,
GSAVE_TREVOR_UNLOCKED_DOMESTIC = BIT1,
GSAVE_FRANKLIN_UNLOCKED_DOMESTIC = BIT2
ENDENUM
STRUCT GolfHoleDataSaved
FLOAT fLongestDriveHole
FLOAT fLongestPuttHole
ENDSTRUCT
STRUCT GolfCourseDataSaved
GolfHoleDataSaved sHole[9]
// INT iLowestScoreFront // Removing since we only have front 9
// INT iLowestScoreBack // Removing since we only have front 9
// INT iLowestScoreTotal Moving to stat list
// FLOAT fAveragePutts Moving to stat list
// FLOAT fFairwayDrives // Moving to stat list
ENDSTRUCT
STRUCT GolfDataSaved
GolfCourseDataSaved sCourse[1] // This will need increasing if we get more than 1 course
INT iNumPuttsTotal
INT iNumFairwayDrivesTotal
INT iNumHolesPlayed
GOLF_BUDDIES unlockedBuddies
GOLF_SAVED_FLAGS golfSavedFlags
INT iNumRoundsPlayedSP, iNumRoundsPlayedMP, iNumGolfWins
INT iBestRound = 82
INT iNumRoundsWithCharacter[3]
FLOAT fLongestDrive
FLOAT fLongestPutt
FLOAT fAveragePutts
FLOAT fAverageFairwayDrives
ENDSTRUCT
ENUM GLOBAL_GOLF_CONTROL_FLAGS
GGCF_NO_FLAGS = 0,
GGCF_PLAYER_SKIP = BIT0,
GGCF_PLAYER_DONE_WITH_HOLE = BIT1,
GGCF_START_GOLF_GAME = BIT2,
GGCF_AMBIENT_GOLFERS_STREAMED_IN = BIT3,
GGCF_PLAYER_ADDRESSING_BALL = BIT4,
GGCF_PLAYER_QUIT_MP_GOLF = BIT5,
GGCF_PLAYER_HOLE_IN_ONE = BIT6
ENDENUM
STRUCT GolfGlobals
INT CurrrentPlayerHole = -1
INT GlobalGolfControlFlag
ENDSTRUCT
GolfGlobals g_sGolfGlobals
PROC UNLOCK_GOLF_BUDDY(GolfDataSaved &savedData, GOLF_BUDDIES unlockBuddy)
savedData.unlockedBuddies = savedData.unlockedBuddies | unlockBuddy
ENDPROC
PROC LOCK_GOLF_BUDDIES(GolfDataSaved &savedData, GOLF_BUDDIES lockBuddy)
savedData.unlockedBuddies -= (savedData.unlockedBuddies & lockBuddy)
ENDPROC
FUNC BOOL IS_GOLF_BUDDY_UNLOCKED(GolfDataSaved &savedData, GOLF_BUDDIES Buddy)
RETURN (savedData.unlockedBuddies & Buddy) != GB_NONE
ENDFUNC
PROC SET_GLOBAL_GOLF_CONTROL_FLAG(GLOBAL_GOLF_CONTROL_FLAGS golfControlFlags)
g_sGolfGlobals.GlobalGolfControlFlag = g_sGolfGlobals.GlobalGolfControlFlag | ENUM_TO_INT(golfControlFlags)
ENDPROC
PROC CLEAR_GLOBAL_GOLF_CONTROL_FLAG(GLOBAL_GOLF_CONTROL_FLAGS golfControlFlags)
g_sGolfGlobals.GlobalGolfControlFlag -= g_sGolfGlobals.GlobalGolfControlFlag & ENUM_TO_INT(golfControlFlags)
ENDPROC
FUNC BOOL IS_GLOBAL_GOLF_CONTROL_FLAG_SET(GLOBAL_GOLF_CONTROL_FLAGS golfControlFlags)
RETURN (g_sGolfGlobals.GlobalGolfControlFlag & ENUM_TO_INT(golfControlFlags)) != ENUM_TO_INT(GGCF_NO_FLAGS)
ENDFUNC
FUNC INT GET_PRICE_OF_GOLF_GAME(BOOL bFriendActivity)
IF bFriendActivity
RETURN 200
ELSE
RETURN 100
ENDIF
ENDFUNC
FUNC BOOL IS_GOLF_CLUB_OPEN_AT_TIME_OF_DAY(INT iHour)
RETURN iHour> 6 AND iHour < 18
ENDFUNC