mirror of
https://github.com/Mr-X-GTA/GTAV-Classes-1.git
synced 2026-10-10 03:43:17 +08:00
Update to 1.67 (#117)
This commit is contained in:
+465
-463
File diff suppressed because it is too large
Load Diff
+285
-285
@@ -6,352 +6,352 @@
|
||||
|
||||
enum class eActivityType
|
||||
{
|
||||
HeistPrep = 233,
|
||||
Gunrunning = 180,
|
||||
Sightseer = 142,
|
||||
HeadHunter = 166,
|
||||
BuySpecialCargo = 167,
|
||||
SellSpecialCargo = 168,
|
||||
DefendSpecialCargo = 169,
|
||||
StealVehicle = 178,
|
||||
ExportVehicle = 188,
|
||||
Gunrunning2 = 225,
|
||||
GunrunningSell = 226,
|
||||
GunrunningDefend = 227,
|
||||
BikerSell = 190,
|
||||
BikerDefend = 191,
|
||||
BusinessResupply = 192,
|
||||
Survival = 3,
|
||||
Darts = 14,
|
||||
ArmWresling = 15,
|
||||
GangAttack = 6,
|
||||
PilotSchool = 122,
|
||||
Golf = 11,
|
||||
ShootingRange = 13,
|
||||
Tennis = 12,
|
||||
BaseJump = 8,
|
||||
Deathmatch = 1,
|
||||
ImpromptuDeathmatch = 5,
|
||||
Mission = 0,
|
||||
Race = 2,
|
||||
ExecutiveDeathmatch = 148,
|
||||
MarkedForDeath = 151,
|
||||
PiracyPrevention = 152,
|
||||
MostWanted = 153,
|
||||
AssetRecovery = 157,
|
||||
HostileTakeover = 159,
|
||||
Point2Point = 162,
|
||||
AmphibiousAssault = 216,
|
||||
Velocity = 219,
|
||||
GunsForHire = 185,
|
||||
ByThePound = 182,
|
||||
RippingItUp = 194,
|
||||
RaceToPoint = 189,
|
||||
HitAndRide = 193,
|
||||
CriminalMischief = 205,
|
||||
WeaponOfChoice = 186,
|
||||
FragileGoods = 207,
|
||||
Torched = 208,
|
||||
Outrider = 209,
|
||||
WheelieRider = 210,
|
||||
POW = 183,
|
||||
ExecutiveSearch = 199,
|
||||
StandYourGround = 201,
|
||||
AutoBuyout = 163,
|
||||
DueDiligence = 160,
|
||||
MarketManipulation = 154,
|
||||
CourierService = 155,
|
||||
Skydive = 267
|
||||
HeistPrep = 233,
|
||||
Gunrunning = 180,
|
||||
Sightseer = 142,
|
||||
HeadHunter = 166,
|
||||
BuySpecialCargo = 167,
|
||||
SellSpecialCargo = 168,
|
||||
DefendSpecialCargo = 169,
|
||||
StealVehicle = 178,
|
||||
ExportVehicle = 188,
|
||||
Gunrunning2 = 225,
|
||||
GunrunningSell = 226,
|
||||
GunrunningDefend = 227,
|
||||
BikerSell = 190,
|
||||
BikerDefend = 191,
|
||||
BusinessResupply = 192,
|
||||
Survival = 3,
|
||||
Darts = 14,
|
||||
ArmWresling = 15,
|
||||
GangAttack = 6,
|
||||
PilotSchool = 122,
|
||||
Golf = 11,
|
||||
ShootingRange = 13,
|
||||
Tennis = 12,
|
||||
BaseJump = 8,
|
||||
Deathmatch = 1,
|
||||
ImpromptuDeathmatch = 5,
|
||||
Mission = 0,
|
||||
Race = 2,
|
||||
ExecutiveDeathmatch = 148,
|
||||
MarkedForDeath = 151,
|
||||
PiracyPrevention = 152,
|
||||
MostWanted = 153,
|
||||
AssetRecovery = 157,
|
||||
HostileTakeover = 159,
|
||||
Point2Point = 162,
|
||||
AmphibiousAssault = 216,
|
||||
Velocity = 219,
|
||||
GunsForHire = 185,
|
||||
ByThePound = 182,
|
||||
RippingItUp = 194,
|
||||
RaceToPoint = 189,
|
||||
HitAndRide = 193,
|
||||
CriminalMischief = 205,
|
||||
WeaponOfChoice = 186,
|
||||
FragileGoods = 207,
|
||||
Torched = 208,
|
||||
Outrider = 209,
|
||||
WheelieRider = 210,
|
||||
POW = 183,
|
||||
ExecutiveSearch = 199,
|
||||
StandYourGround = 201,
|
||||
AutoBuyout = 163,
|
||||
DueDiligence = 160,
|
||||
MarketManipulation = 154,
|
||||
CourierService = 155,
|
||||
Skydive = 267
|
||||
};
|
||||
|
||||
enum class eBossGoonFlags
|
||||
{
|
||||
kOneOnOneDM = 4,
|
||||
kJoinSuccess = 7,
|
||||
kJoinFail = 8,
|
||||
kSpectating = 24
|
||||
kOneOnOneDM = 4,
|
||||
kJoinSuccess = 7,
|
||||
kJoinFail = 8,
|
||||
kSpectating = 24
|
||||
};
|
||||
|
||||
enum class eGoonInviteType
|
||||
{
|
||||
DEBUG,
|
||||
NEARBY,
|
||||
FRIENDS,
|
||||
CREW,
|
||||
INDIVIDUAL,
|
||||
LOOKING_FOR_WORK
|
||||
DEBUG,
|
||||
NEARBY,
|
||||
FRIENDS,
|
||||
CREW,
|
||||
INDIVIDUAL,
|
||||
LOOKING_FOR_WORK
|
||||
};
|
||||
|
||||
enum class eBossVehicleState
|
||||
{
|
||||
NONE,
|
||||
SPAWNED,
|
||||
DESTROYED = 3
|
||||
NONE,
|
||||
SPAWNED,
|
||||
DESTROYED = 3
|
||||
};
|
||||
|
||||
enum class eMCRole
|
||||
{
|
||||
PROSPECT = -1,
|
||||
VICE_PRESIDENT,
|
||||
ROAD_CAPTAIN,
|
||||
SERGEANT_IN_ARMS,
|
||||
ENFORCER
|
||||
PROSPECT = -1,
|
||||
VICE_PRESIDENT,
|
||||
ROAD_CAPTAIN,
|
||||
SERGEANT_IN_ARMS,
|
||||
ENFORCER
|
||||
};
|
||||
|
||||
enum class eClubhouseActivity
|
||||
{
|
||||
NONE = -1,
|
||||
DARTS,
|
||||
ARM_WRESTLING
|
||||
NONE = -1,
|
||||
DARTS,
|
||||
ARM_WRESTLING
|
||||
};
|
||||
|
||||
struct MC_STYLE
|
||||
{
|
||||
SCR_BOOL Enabled;
|
||||
SCR_INT BossOutfitType;
|
||||
SCR_INT GoonOutfitType;
|
||||
SCR_ARRAY<uint64_t, 7> GoonOutfitIndices; // one outfit for each goon, size is 7 instead of 8 for some reason
|
||||
SCR_ARRAY<uint64_t, 7> GoonOutfitIndicesOverride;
|
||||
SCR_INT PAD_0019;
|
||||
SCR_BOOL HeadgearEnabled;
|
||||
SCR_BOOL EmblemEnabled;
|
||||
SCR_BOOL Enabled;
|
||||
SCR_INT BossOutfitType;
|
||||
SCR_INT GoonOutfitType;
|
||||
SCR_ARRAY<uint64_t, 7> GoonOutfitIndices; // one outfit for each goon, size is 7 instead of 8 for some reason
|
||||
SCR_ARRAY<uint64_t, 7> GoonOutfitIndicesOverride;
|
||||
SCR_INT PAD_0019;
|
||||
SCR_BOOL HeadgearEnabled;
|
||||
SCR_BOOL EmblemEnabled;
|
||||
};
|
||||
static_assert(sizeof(MC_STYLE) == 22 * 8);
|
||||
|
||||
struct VEHICLE_EXPORT
|
||||
{
|
||||
SCR_ARRAY<uint64_t, 4> SellingVehicleIndices;
|
||||
SCR_INT PAD_0005; // this is set to zero in all export scripts and never read
|
||||
SCR_ARRAY<uint64_t, 4> SellingVehicleIndices;
|
||||
SCR_INT PAD_0005; // this is set to zero in all export scripts and never read
|
||||
};
|
||||
static_assert(sizeof(VEHICLE_EXPORT) == 6 * 8);
|
||||
|
||||
struct HANGAR_CARGO
|
||||
{
|
||||
SCR_INT PAD_0000; // unused?
|
||||
SCR_ARRAY<uint64_t, 20> DeliverableTypes;
|
||||
SCR_INT CargoType;
|
||||
SCR_INT PAD_0000; // unused?
|
||||
SCR_ARRAY<uint64_t, 20> DeliverableTypes;
|
||||
SCR_INT CargoType;
|
||||
};
|
||||
static_assert(sizeof(HANGAR_CARGO) == 23 * 8);
|
||||
|
||||
struct CASINO_HEIST_PREP
|
||||
{
|
||||
SCR_INT PrepIndex;
|
||||
SCR_INT SupportCrewMemberIndex; // only set on preps 1 through 3
|
||||
SCR_INT LoadoutIndex; // only set on prep 1 and 2
|
||||
SCR_INT PrepIndex;
|
||||
SCR_INT SupportCrewMemberIndex; // only set on preps 1 through 3
|
||||
SCR_INT LoadoutIndex; // only set on prep 1 and 2
|
||||
};
|
||||
static_assert(sizeof(CASINO_HEIST_PREP) == 3 * 8);
|
||||
|
||||
struct LEAVE_IN_HELI
|
||||
{
|
||||
SCR_INT Flags;
|
||||
PLAYER_INDEX Owner;
|
||||
SCR_INT SeatIndex;
|
||||
SCR_INT Flags;
|
||||
PLAYER_INDEX Owner;
|
||||
SCR_INT SeatIndex;
|
||||
};
|
||||
static_assert(sizeof(LEAVE_IN_HELI) == 3 * 8);
|
||||
|
||||
struct BOSS_GOON
|
||||
{
|
||||
PLAYER_INDEX Boss; // leader of CEO/MC
|
||||
SCR_INT TimeBecameBoss;
|
||||
SCR_INT TimeBecameGoon;
|
||||
SCR_INT LastPayTime;
|
||||
SCR_BITSET<eBossGoonFlags> Flags;
|
||||
SCR_INT Flags2; // TODO
|
||||
SCR_INT Flags3; // TODO
|
||||
SCR_INT TotalBossGoonTime;
|
||||
SCR_ARRAY<uint64_t, 2> BossGoonUUID;
|
||||
SCR_ARRAY<uint64_t, 8> Goons;
|
||||
SCR_INT GoonsRequestingJoin; // bitset
|
||||
SCR_INT PayGrade;
|
||||
SCR_INT InvitesByBosses; // bitset
|
||||
SCR_INT TransitionBossPersistanceStage;
|
||||
SCR_INT EndBeingGoonReason;
|
||||
SCR_INT PAD_0025; // TODO
|
||||
PLAYER_INDEX JoiningBoss;
|
||||
alignas(8) eGoonInviteType JoinedInviteType;
|
||||
SCR_INT NumBossDeathsSinceLastPay;
|
||||
SCR_VEC3 PAD_0029; // TODO
|
||||
alignas(8) eActivityType UnkActivity;
|
||||
alignas(8) eActivityType CurrentActivity;
|
||||
PLAYER_INDEX JoustTarget;
|
||||
PLAYER_INDEX ExecutiveDeathmatchTarget;
|
||||
MP_SCRIPT_DATA ActiveScript;
|
||||
PLAYER_INDEX PAD_0057;
|
||||
PLAYER_INDEX PAD_0058;
|
||||
alignas(8) eBossVehicleState BossVehicleState;
|
||||
SCR_INT BossVehicleSpawnState;
|
||||
PLAYER_INDEX PlayerInsideBossVehicle;
|
||||
SCR_HASH BossVehicleModel;
|
||||
TIMER LastBossVehicleSpawnTimer;
|
||||
TIMER BossVehicleInvincibleTimer;
|
||||
SCR_VEC3 BossVehicleSpawnedPosition;
|
||||
alignas(8) HudColor BossVehicleHudColor;
|
||||
TEXT_LABEL_15 BossVehicleTextLabel;
|
||||
SCR_INT BossVehicleNetId;
|
||||
MC_STYLE MCStyle;
|
||||
uint64_t PAD_0098[3]; // unused
|
||||
SCR_INT FriendlyFireDisabledPlayers;
|
||||
SCR_INT PiracyPreventionYachtIndex; // not used by the scripts
|
||||
SCR_INT BossGoonMissionLaunchState;
|
||||
SCR_INT ColorSlot;
|
||||
TEXT_LABEL_63 MCName;
|
||||
SCR_INT Language; // can be used to get the system language of player
|
||||
SCR_INT SpawnableBossVehicles;
|
||||
SCR_INT AutoBuyoutDeliveryLocationIndex;
|
||||
SCR_INT AutoBuyoutDeliveryLocationSubIndex;
|
||||
SCR_INT PAD_0125; // unused
|
||||
SCR_ARRAY<SCR_VEC3, 8> PAD_0126; // TODO
|
||||
SCR_ARRAY<SCR_VEC3, 8> ContrabandPositions; // positions of cargo used to notify players to destroy them when they get near
|
||||
SCR_HASH ContrabandPickupModel;
|
||||
PLAYER_INDEX StealingContrabandVehiclePlayerIndex;
|
||||
SCR_INT PAD_0178; // TODO
|
||||
SCR_HASH ContrabandPickupModel2;
|
||||
SCR_BOOL DestroyedCargo;
|
||||
SCR_INT VIPGameplayDisabledTimer;
|
||||
SCR_INT SettingUpBusiness;
|
||||
uint64_t PAD_0183[4]; // TODO some unknown contraband struct
|
||||
VEHICLE_EXPORT VehicleExport;
|
||||
uint64_t PAD_0193[12]; // TODO
|
||||
SCR_ARRAY<uint64_t, 6> ActiveFreemodeEvents; // force thunder
|
||||
uint64_t PAD_0212[22]; // I'm not even going to bother with this one
|
||||
HANGAR_CARGO HangarCargo;
|
||||
uint64_t PAD_0236[23]; // not going to bother with this one either
|
||||
SCR_ARRAY<uint64_t, 20> CasinoDeliverables;
|
||||
SCR_INT CasinoLimoDestination;
|
||||
SCR_BOOL CasinoLimoActive;
|
||||
SCR_BOOL CasinoLuxuryCarActive;
|
||||
SCR_HASH CasinoLuxuryCarModel;
|
||||
CASINO_HEIST_PREP CasinoHeistPrep;
|
||||
SCR_INT CayoPrepIndex;
|
||||
SCR_INT CompanySUVDestination;
|
||||
SCR_BOOL CompanySUVActive;
|
||||
SCR_ARRAY<uint64_t, 8> ContrabandIndices; // type of selling cargo
|
||||
SCR_ARRAY<uint64_t, 10> VehicleExportIndices; // not sure what this is
|
||||
SCR_INT VehicleExportMissionType; // valid range is 2000 to 2010, 2000 = 0, 2001 = 1 etc
|
||||
SCR_ARRAY<uint64_t, 4> VehicleExportSellingIndices;
|
||||
SCR_BOOL PAD_0337; // TODO
|
||||
TEXT_LABEL_63 GangName; // CEO Name
|
||||
TEXT_LABEL_63 ClubhouseName; // cut content?
|
||||
SCR_INT SourcingContrabandType;
|
||||
SCR_INT FragileGoodsMissionType;
|
||||
SCR_INT SalvageMissionType;
|
||||
SCR_INT DoomsdayPrepIndex;
|
||||
SCR_INT VehicleExportIndex; // another one...
|
||||
SCR_INT PAD_0375; // unused
|
||||
SCR_INT BunkerSourceIndex; // check gb_gunrunning func_1540
|
||||
SCR_ARRAY<uint64_t, 8> BunkerCargoIndices;
|
||||
uint64_t PAD_0386[5];
|
||||
uint64_t PAD_0391[2]; // unused
|
||||
uint64_t PAD_0393[15]; // smuggler data
|
||||
SCR_INT LastBossWorkTime; // seconds since epoch
|
||||
uint64_t PAD_0409[19];
|
||||
SCR_BOOL IsMC;
|
||||
alignas(8) eMCRole MCRole; // applies to goons only, boss is always the MC president
|
||||
SCR_BOOL FormationFlyingAssist;
|
||||
SCR_INT PAD_0431; // always set to zero and not read
|
||||
SCR_BOOL MCFormationActive;
|
||||
SCR_BOOL MCFormationHelpShown;
|
||||
TIMER MCFormationHealthBonusTimer;
|
||||
TIMER MCFormationLastHealthBonusTimer;
|
||||
TIMER MCFormationBreakTimer;
|
||||
SCR_INT PAD_0440; // unused
|
||||
SCR_BOOL MCFormationAssist;
|
||||
SCR_BOOL MCRidingStyleRelaxed;
|
||||
SCR_FLOAT PAD_0443; // set from a tunable
|
||||
SCR_FLOAT PAD_0444; // set from a tunable
|
||||
uint64_t PAD_0445[16]; // somewhat unused, a few fields are accessed in the business battle script
|
||||
SCR_INT ClothingValue; // total value of equipped clothing used by criminal damage
|
||||
PLAYER_INDEX Adversary; // for common adversary calculations?
|
||||
SCR_HASH ContrabandType; // unknown HASH_ENUM
|
||||
SCR_INT HitAndRideGangType;
|
||||
SCR_BOOL IsMC2;
|
||||
SCR_INT BossGoonVersion;
|
||||
SCR_INT MCTotalContributionPoints;
|
||||
SCR_INT MCContributionPoints;
|
||||
SCR_INT FavoriteBikeStyle; // not read by the scripts
|
||||
SCR_INT GreatestFormationTimeIndex;
|
||||
SCR_INT FormationTime;
|
||||
SCR_BOOL RidingFavoriteMotorcycle;
|
||||
SCR_INT ContrabandSellLocation;
|
||||
SCR_INT BusinessBattleType;
|
||||
SCR_INT PAD_0475;
|
||||
SCR_INT NightclubMissionIndex;
|
||||
SCR_INT NightclubDefendMissionIndex;
|
||||
uint64_t PAD_0478[18]; // TODO
|
||||
SCR_BOOL DoubleActionCacheLocationRevealed;
|
||||
PLAYER_INDEX Boss; // leader of CEO/MC
|
||||
SCR_INT TimeBecameBoss;
|
||||
SCR_INT TimeBecameGoon;
|
||||
SCR_INT LastPayTime;
|
||||
SCR_BITSET<eBossGoonFlags> Flags;
|
||||
SCR_INT Flags2; // TODO
|
||||
SCR_INT Flags3; // TODO
|
||||
SCR_INT TotalBossGoonTime;
|
||||
SCR_ARRAY<uint64_t, 2> BossGoonUUID;
|
||||
SCR_ARRAY<uint64_t, 8> Goons;
|
||||
SCR_INT GoonsRequestingJoin; // bitset
|
||||
SCR_INT PayGrade;
|
||||
SCR_INT InvitesByBosses; // bitset
|
||||
SCR_INT TransitionBossPersistanceStage;
|
||||
SCR_INT EndBeingGoonReason;
|
||||
SCR_INT PAD_0025; // TODO
|
||||
PLAYER_INDEX JoiningBoss;
|
||||
alignas(8) eGoonInviteType JoinedInviteType;
|
||||
SCR_INT NumBossDeathsSinceLastPay;
|
||||
SCR_VEC3 PAD_0029; // TODO
|
||||
alignas(8) eActivityType UnkActivity;
|
||||
alignas(8) eActivityType CurrentActivity;
|
||||
PLAYER_INDEX JoustTarget;
|
||||
PLAYER_INDEX ExecutiveDeathmatchTarget;
|
||||
MP_SCRIPT_DATA ActiveScript;
|
||||
PLAYER_INDEX PAD_0057;
|
||||
PLAYER_INDEX PAD_0058;
|
||||
alignas(8) eBossVehicleState BossVehicleState;
|
||||
SCR_INT BossVehicleSpawnState;
|
||||
PLAYER_INDEX PlayerInsideBossVehicle;
|
||||
SCR_HASH BossVehicleModel;
|
||||
TIMER LastBossVehicleSpawnTimer;
|
||||
TIMER BossVehicleInvincibleTimer;
|
||||
SCR_VEC3 BossVehicleSpawnedPosition;
|
||||
alignas(8) HudColor BossVehicleHudColor;
|
||||
TEXT_LABEL_15 BossVehicleTextLabel;
|
||||
SCR_INT BossVehicleNetId;
|
||||
MC_STYLE MCStyle;
|
||||
uint64_t PAD_0098[3]; // unused
|
||||
SCR_INT FriendlyFireDisabledPlayers;
|
||||
SCR_INT PiracyPreventionYachtIndex; // not used by the scripts
|
||||
SCR_INT BossGoonMissionLaunchState;
|
||||
SCR_INT ColorSlot;
|
||||
TEXT_LABEL_63 MCName;
|
||||
SCR_INT Language; // can be used to get the system language of player
|
||||
SCR_INT SpawnableBossVehicles;
|
||||
SCR_INT AutoBuyoutDeliveryLocationIndex;
|
||||
SCR_INT AutoBuyoutDeliveryLocationSubIndex;
|
||||
SCR_INT PAD_0125; // unused
|
||||
SCR_ARRAY<SCR_VEC3, 8> PAD_0126; // TODO
|
||||
SCR_ARRAY<SCR_VEC3, 8> ContrabandPositions; // positions of cargo used to notify players to destroy them when they get near
|
||||
SCR_HASH ContrabandPickupModel;
|
||||
PLAYER_INDEX StealingContrabandVehiclePlayerIndex;
|
||||
SCR_INT PAD_0178; // TODO
|
||||
SCR_HASH ContrabandPickupModel2;
|
||||
SCR_BOOL DestroyedCargo;
|
||||
SCR_INT VIPGameplayDisabledTimer; // @181 as of 1.67
|
||||
SCR_INT SettingUpBusiness;
|
||||
uint64_t PAD_0183[4]; // TODO some unknown contraband struct
|
||||
VEHICLE_EXPORT VehicleExport;
|
||||
uint64_t PAD_0193[12]; // TODO
|
||||
SCR_ARRAY<uint64_t, 7> ActiveFreemodeEvents; // force thunder
|
||||
uint64_t PAD_0212[22]; // I'm not even going to bother with this one
|
||||
HANGAR_CARGO HangarCargo;
|
||||
uint64_t PAD_0236[23]; // not going to bother with this one either
|
||||
SCR_ARRAY<uint64_t, 20> CasinoDeliverables;
|
||||
SCR_INT CasinoLimoDestination;
|
||||
SCR_BOOL CasinoLimoActive;
|
||||
SCR_BOOL CasinoLuxuryCarActive;
|
||||
SCR_HASH CasinoLuxuryCarModel;
|
||||
CASINO_HEIST_PREP CasinoHeistPrep;
|
||||
SCR_INT CayoPrepIndex;
|
||||
SCR_INT CompanySUVDestination;
|
||||
SCR_BOOL CompanySUVActive;
|
||||
SCR_ARRAY<uint64_t, 8> ContrabandIndices; // type of selling cargo
|
||||
SCR_ARRAY<uint64_t, 10> VehicleExportIndices; // not sure what this is
|
||||
SCR_INT VehicleExportMissionType; // valid range is 2000 to 2010, 2000 = 0, 2001 = 1 etc
|
||||
SCR_ARRAY<uint64_t, 4> VehicleExportSellingIndices;
|
||||
SCR_BOOL PAD_0337; // TODO
|
||||
TEXT_LABEL_63 GangName; // CEO Name
|
||||
TEXT_LABEL_63 ClubhouseName; // cut content?
|
||||
SCR_INT SourcingContrabandType;
|
||||
SCR_INT FragileGoodsMissionType;
|
||||
SCR_INT SalvageMissionType;
|
||||
SCR_INT DoomsdayPrepIndex;
|
||||
SCR_INT VehicleExportIndex; // another one...
|
||||
SCR_INT PAD_0375; // unused
|
||||
SCR_INT BunkerSourceIndex; // check gb_gunrunning func_1540
|
||||
SCR_ARRAY<uint64_t, 8> BunkerCargoIndices;
|
||||
uint64_t PAD_0386[5];
|
||||
uint64_t PAD_0391[2]; // unused
|
||||
uint64_t PAD_0393[15]; // smuggler data
|
||||
SCR_INT LastBossWorkTime; // seconds since epoch
|
||||
uint64_t PAD_0409[19];
|
||||
SCR_BOOL IsMC;
|
||||
alignas(8) eMCRole MCRole; // applies to goons only, boss is always the MC president
|
||||
SCR_BOOL FormationFlyingAssist;
|
||||
SCR_INT PAD_0431; // always set to zero and not read
|
||||
SCR_BOOL MCFormationActive;
|
||||
SCR_BOOL MCFormationHelpShown;
|
||||
TIMER MCFormationHealthBonusTimer;
|
||||
TIMER MCFormationLastHealthBonusTimer;
|
||||
TIMER MCFormationBreakTimer;
|
||||
SCR_INT PAD_0440; // unused
|
||||
SCR_BOOL MCFormationAssist;
|
||||
SCR_BOOL MCRidingStyleRelaxed;
|
||||
SCR_FLOAT PAD_0443; // set from a tunable
|
||||
SCR_FLOAT PAD_0444; // set from a tunable
|
||||
uint64_t PAD_0445[16]; // somewhat unused, a few fields are accessed in the business battle script
|
||||
SCR_INT ClothingValue; // total value of equipped clothing used by criminal damage
|
||||
PLAYER_INDEX Adversary; // for common adversary calculations?
|
||||
SCR_HASH ContrabandType; // unknown HASH_ENUM
|
||||
SCR_INT HitAndRideGangType;
|
||||
SCR_BOOL IsMC2;
|
||||
SCR_INT BossGoonVersion;
|
||||
SCR_INT MCTotalContributionPoints;
|
||||
SCR_INT MCContributionPoints;
|
||||
SCR_INT FavoriteBikeStyle; // not read by the scripts
|
||||
SCR_INT GreatestFormationTimeIndex;
|
||||
SCR_INT FormationTime;
|
||||
SCR_BOOL RidingFavoriteMotorcycle;
|
||||
SCR_INT ContrabandSellLocation;
|
||||
SCR_INT BusinessBattleType;
|
||||
SCR_INT PAD_0475;
|
||||
SCR_INT NightclubMissionIndex;
|
||||
SCR_INT NightclubDefendMissionIndex;
|
||||
uint64_t PAD_0478[18]; // TODO
|
||||
SCR_BOOL DoubleActionCacheLocationRevealed;
|
||||
};
|
||||
static_assert(sizeof(BOSS_GOON) == 497 * 8);
|
||||
static_assert(sizeof(BOSS_GOON) == 498 * 8);
|
||||
|
||||
struct MC_STATS
|
||||
{
|
||||
SCR_INT FormationTime0;
|
||||
SCR_INT FormationTime1;
|
||||
SCR_INT FormationTime2;
|
||||
SCR_INT FormationTime3;
|
||||
SCR_INT MembersMarkedForDeath;
|
||||
SCR_INT MCKills;
|
||||
SCR_INT MCDeaths;
|
||||
SCR_INT RivalPresidentKills;
|
||||
SCR_INT RivalCEOAndVIPKills;
|
||||
SCR_INT MeleeKills;
|
||||
SCR_INT ClubhouseContractsComplete;
|
||||
SCR_INT ClubhouseContractEarnings;
|
||||
SCR_INT ClubworkCompleted;
|
||||
SCR_INT ClubChallengesCompleted;
|
||||
SCR_INT MemberChallengesCompleted;
|
||||
SCR_INT FormationTime0;
|
||||
SCR_INT FormationTime1;
|
||||
SCR_INT FormationTime2;
|
||||
SCR_INT FormationTime3;
|
||||
SCR_INT MembersMarkedForDeath;
|
||||
SCR_INT MCKills;
|
||||
SCR_INT MCDeaths;
|
||||
SCR_INT RivalPresidentKills;
|
||||
SCR_INT RivalCEOAndVIPKills;
|
||||
SCR_INT MeleeKills;
|
||||
SCR_INT ClubhouseContractsComplete;
|
||||
SCR_INT ClubhouseContractEarnings;
|
||||
SCR_INT ClubworkCompleted;
|
||||
SCR_INT ClubChallengesCompleted;
|
||||
SCR_INT MemberChallengesCompleted;
|
||||
};
|
||||
static_assert(sizeof(MC_STATS) == 15 * 8);
|
||||
|
||||
|
||||
struct GBPD_FM_3_Entry
|
||||
{
|
||||
alignas(8) eActivityType CurrentActivity; // enum is outdated
|
||||
SCR_INT Flags; // TODO
|
||||
alignas(8) eActivityType CurrentFreemodeActivity; // subset of CurrentActivity
|
||||
SCR_INT SeatingFlags;
|
||||
SCR_VEC3 CurrentFreemodeActivityObjectivePosition;
|
||||
SCR_INT VehiclesNearbyActivityObjective; // only used by challenges and checkpoints
|
||||
SCR_BOOL PassiveMode;
|
||||
SCR_BOOL TimeTrialActive; // verify
|
||||
BOSS_GOON BossGoon;
|
||||
uint64_t PAD_507[3]; // unused
|
||||
SCR_INT ScriptEventReplayProtectionCounter;
|
||||
TIMER CoronaForcedLaunchTimer;
|
||||
LEAVE_IN_HELI LeaveInHeli;
|
||||
SCR_INT OfficeDesktopFlags; // bit 0 -> login, bit 1 -> map
|
||||
uint64_t PAD_514[8]; // some IE stuff, most of it is unused
|
||||
SCR_INT IlluminatedClothingState;
|
||||
SCR_INT MatchHistoryId1; // used for telemetry
|
||||
SCR_INT MatchHistoryId2;
|
||||
alignas(8) eClubhouseActivity ClubhouseActivity;
|
||||
SCR_INT ClubhouseFont;
|
||||
SCR_INT ClubhouseColor;
|
||||
SCR_INT ClubhouseEmblem;
|
||||
SCR_BOOL ClubhouseHideSignage;
|
||||
uint64_t PAD_0533[2]; // facility exit
|
||||
uint64_t PAD_0535[6]; // no clue what this is
|
||||
MC_STATS MCStats;
|
||||
uint64_t PAD_0556[29];
|
||||
SCR_HASH ForcedWeapon;
|
||||
SCR_INT HangarCargoMissionLocationIndex;
|
||||
SCR_VEC3 AvengerPosition;
|
||||
SCR_VEC3 TerrorbytePosition;
|
||||
SCR_VEC3 AcidLabPosition;
|
||||
PLAYER_INDEX DeliveringExportVehicleOwner;
|
||||
uint64_t PAD_0597[2]; // TODO
|
||||
SCR_INT BountyAmount; // values above 10000 will prevent payout
|
||||
PLAYER_INDEX BountyPlacedBy;
|
||||
SCR_INT PAD_0601; // unused, set to -1 by business_battles_sell and never read
|
||||
SCR_INT CurrentlyUsingArenaTurretIndex; // works similar to the vars found in GlobalPlayerBD
|
||||
SCR_INT CurrentlyUsingArenaTurretActivatedTime;
|
||||
SCR_INT CasinoStoryProgress;
|
||||
SCR_INT CasinoFlowProgress;
|
||||
SCR_ARRAY<uint64_t, 1> DailyObjectiveFlags;
|
||||
alignas(8) eActivityType CurrentActivity; // enum is outdated
|
||||
SCR_INT Flags; // TODO
|
||||
alignas(8) eActivityType CurrentFreemodeActivity; // subset of CurrentActivity
|
||||
SCR_INT SeatingFlags;
|
||||
SCR_VEC3 CurrentFreemodeActivityObjectivePosition;
|
||||
SCR_INT VehiclesNearbyActivityObjective; // only used by challenges and checkpoints
|
||||
SCR_BOOL PassiveMode;
|
||||
SCR_BOOL TimeTrialActive; // verify
|
||||
BOSS_GOON BossGoon;
|
||||
uint64_t PAD_507[3]; // unused
|
||||
SCR_INT ScriptEventReplayProtectionCounter;
|
||||
TIMER CoronaForcedLaunchTimer;
|
||||
LEAVE_IN_HELI LeaveInHeli;
|
||||
SCR_INT OfficeDesktopFlags; // bit 0 -> login, bit 1 -> map
|
||||
uint64_t PAD_514[8]; // some IE stuff, most of it is unused
|
||||
SCR_INT IlluminatedClothingState;
|
||||
SCR_INT MatchHistoryId1; // used for telemetry
|
||||
SCR_INT MatchHistoryId2;
|
||||
alignas(8) eClubhouseActivity ClubhouseActivity;
|
||||
SCR_INT ClubhouseFont;
|
||||
SCR_INT ClubhouseColor;
|
||||
SCR_INT ClubhouseEmblem;
|
||||
SCR_BOOL ClubhouseHideSignage;
|
||||
uint64_t PAD_0533[2]; // facility exit
|
||||
uint64_t PAD_0535[6]; // no clue what this is
|
||||
MC_STATS MCStats;
|
||||
uint64_t PAD_0556[29];
|
||||
SCR_HASH ForcedWeapon;
|
||||
SCR_INT HangarCargoMissionLocationIndex;
|
||||
SCR_VEC3 AvengerPosition;
|
||||
SCR_VEC3 TerrorbytePosition;
|
||||
SCR_VEC3 AcidLabPosition;
|
||||
PLAYER_INDEX DeliveringExportVehicleOwner;
|
||||
uint64_t PAD_0597[2]; // TODO
|
||||
SCR_INT BountyAmount; // values above 10000 will prevent payout
|
||||
PLAYER_INDEX BountyPlacedBy;
|
||||
SCR_INT PAD_0601; // unused, set to -1 by business_battles_sell and never read
|
||||
SCR_INT CurrentlyUsingArenaTurretIndex; // works similar to the vars found in GlobalPlayerBD
|
||||
SCR_INT CurrentlyUsingArenaTurretActivatedTime;
|
||||
SCR_INT CasinoStoryProgress;
|
||||
SCR_INT CasinoFlowProgress;
|
||||
SCR_ARRAY<uint64_t, 1> DailyObjectiveFlags; // @607 as of 1.67
|
||||
};
|
||||
static_assert(sizeof(GBPD_FM_3_Entry) == 608 * 8);
|
||||
static_assert(sizeof(GBPD_FM_3_Entry) == 609 * 8);
|
||||
|
||||
struct GPBD_FM_3
|
||||
{
|
||||
SCR_ARRAY<GBPD_FM_3_Entry, 32> Entries;
|
||||
SCR_ARRAY<GBPD_FM_3_Entry, 32> Entries;
|
||||
};
|
||||
static_assert(sizeof(GPBD_FM_3) == 19457 * 8);
|
||||
static_assert(sizeof(GPBD_FM_3) == 19489 * 8);
|
||||
@@ -49,9 +49,9 @@ struct GSBD_FM
|
||||
SCR_ARRAY<uint64_t, 2> MuggingPlayers; // 0 = mugger, 1 = merryweather mercs
|
||||
SCR_ARRAY<uint64_t, 2> MuggedPlayers;
|
||||
uint64_t PAD_0112[4]; // unused
|
||||
SCR_ARRAY<uint64_t, 60> PAD_0116; // TODO
|
||||
SCR_ARRAY<uint64_t, 61> PAD_0116; // TODO
|
||||
SCR_INT ShopProcessingBitset;
|
||||
SCR_ARRAY<uint64_t, 79> ActiveContactServiceBitsets;
|
||||
SCR_ARRAY<uint64_t, NUM_CONTACTS> ActiveContactServiceBitsets;
|
||||
SCR_ARRAY<ACTIVE_CONTACT_SERVICE, 32> ActiveContactServices;
|
||||
PLAYER_INDEX SpectatorTVWantedPlayer;
|
||||
SCR_BOOL SpectatorTVWantedClosing;
|
||||
@@ -63,4 +63,4 @@ struct GSBD_FM
|
||||
BIKER_CONTRACTS_SERVER BikerContracts;
|
||||
SCR_ARRAY<uint64_t, 32> DoubleActionCacheLocationRevealed;
|
||||
};
|
||||
static_assert(sizeof(GSBD_FM) == 574 * 8);
|
||||
static_assert(sizeof(GSBD_FM) == 576 * 8);
|
||||
+561
-566
File diff suppressed because it is too large
Load Diff
@@ -4,13 +4,13 @@
|
||||
|
||||
struct g_AMC_playerBD_Entry
|
||||
{
|
||||
SCR_ARRAY<TIMER, 79> UsedContactServicesTimer; // only index 2 (mugger) is actually used by the scripts. the rest is just a waste of bandwidth
|
||||
SCR_ARRAY<uint64_t, 79> ContactServiceCooldowns; // same as above
|
||||
SCR_ARRAY<TIMER, NUM_CONTACTS> UsedContactServicesTimer; // only index 2 (mugger) is actually used by the scripts. the rest is just a waste of bandwidth
|
||||
SCR_ARRAY<uint64_t, NUM_CONTACTS> ContactServiceCooldowns; // same as above
|
||||
};
|
||||
static_assert(sizeof(g_AMC_playerBD_Entry) == 239 * 8);
|
||||
static_assert(sizeof(g_AMC_playerBD_Entry) == 242 * 8);
|
||||
|
||||
struct g_AMC_playerBD
|
||||
{
|
||||
SCR_ARRAY<g_AMC_playerBD_Entry, 32> Entries;
|
||||
SCR_ARRAY<g_AMC_playerBD_Entry, 32> Entries;
|
||||
};
|
||||
static_assert(sizeof(g_AMC_playerBD) == 7649 * 8);
|
||||
static_assert(sizeof(g_AMC_playerBD) == 7745 * 8);
|
||||
+29
-27
@@ -39,11 +39,11 @@ using Vector3 = rage::scrVector;
|
||||
template <int SIZE>
|
||||
struct SCR_TEXT_LABEL
|
||||
{
|
||||
alignas(8) char Data[SIZE];
|
||||
alignas(8) char Data[SIZE];
|
||||
private:
|
||||
alignas(8) char _PAD[SIZE];
|
||||
alignas(8) char _PAD[SIZE];
|
||||
public:
|
||||
operator char* () { return Data; }
|
||||
operator char* () { return Data; }
|
||||
};
|
||||
|
||||
#define TEXT_LABEL_15 SCR_TEXT_LABEL<16>
|
||||
@@ -54,41 +54,41 @@ public:
|
||||
template <typename T, int SIZE>
|
||||
struct SCR_ARRAY
|
||||
{
|
||||
SCR_INT Size;
|
||||
alignas(8) T Data[SIZE];
|
||||
SCR_INT Size;
|
||||
alignas(8) T Data[SIZE];
|
||||
|
||||
T& operator [](int index)
|
||||
{
|
||||
return Data[index];
|
||||
}
|
||||
T& operator [](int index)
|
||||
{
|
||||
return Data[index];
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct SCR_BITSET
|
||||
{
|
||||
alignas(8) int Value;
|
||||
alignas(8) int Value;
|
||||
|
||||
bool IsSet(T val)
|
||||
{
|
||||
return Value & (1 << (int)val);
|
||||
}
|
||||
bool IsSet(T val)
|
||||
{
|
||||
return Value & (1 << (int)val);
|
||||
}
|
||||
|
||||
void Set(T val)
|
||||
{
|
||||
Value |= (1 << (int)val);
|
||||
}
|
||||
void Set(T val)
|
||||
{
|
||||
Value |= (1 << (int)val);
|
||||
}
|
||||
|
||||
void Clear(T val)
|
||||
{
|
||||
Value &= ~(1 << (int)val);
|
||||
}
|
||||
void Clear(T val)
|
||||
{
|
||||
Value &= ~(1 << (int)val);
|
||||
}
|
||||
};
|
||||
|
||||
struct Color3
|
||||
{
|
||||
SCR_INT R;
|
||||
SCR_INT G;
|
||||
SCR_INT B;
|
||||
SCR_INT R;
|
||||
SCR_INT G;
|
||||
SCR_INT B;
|
||||
};
|
||||
static_assert(sizeof(Color3) == 3 * 8);
|
||||
|
||||
@@ -96,6 +96,8 @@ static_assert(sizeof(Color3) == 3 * 8);
|
||||
struct GAMER_HANDLE
|
||||
{
|
||||
private:
|
||||
uint64_t Data[13];
|
||||
uint64_t Data[13];
|
||||
};
|
||||
static_assert(sizeof(GAMER_HANDLE) == 13 * 8);
|
||||
static_assert(sizeof(GAMER_HANDLE) == 13 * 8);
|
||||
|
||||
#define NUM_CONTACTS 80
|
||||
Reference in New Issue
Block a user