Files
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

370 lines
18 KiB
C++

//
// VehicleCatalog.h
//
// Copyright (C) 1999-2014 Rockstar Games. All Rights Reserved.
//
// Stores the contents of the transaction server catalog for vehicle mods
//
#ifndef INC_NET_VEHCILE_CATALOG_H_
#define INC_NET_VEHCILE_CATALOG_H_
namespace packed_stats
{
//Used for packed stats
#define NUM_PACKED_INT_PER_STAT 8
#define NUM_PACKED_BOOL_PER_STAT 64
#define NUM_INT_PER_STAT 8
#define NUM_BOOL_PER_STAT 1
//Packed stats enum in script - needs to match stats_helper_packed_enums.sch
enum eScriptPackedStatsEnum
{
////////////////////////////////////////////////////////////////////////////////////////
/// MULTI PLAYER PLAYER CHARACTER BOOLEAN PACKED STATS
////////////////////////////////////////////////////////////////////////////////////////
START_MP_CHAR_BOOL_PACKED = 0,
END_MP_CHAR_BOOL_PACKED = START_MP_CHAR_BOOL_PACKED+192, //DO NOT CHANGE
////////////////////////////////////////////////////////////////////////////////////////
/// SINGLE PLAYER PLAYER CHARACTER BOOLEAN PACKED STATS
////////////////////////////////////////////////////////////////////////////////////////
START_SP_CHAR_BOOL_PACKED = END_MP_CHAR_BOOL_PACKED,
END_SP_CHAR_BOOL_PACKED = START_SP_CHAR_BOOL_PACKED + 192, //DO NOT CHANGE
////////////////////////////////////////////////////////////////////////////////////////
/// MULTI PLAYER PLAYER CHARACTER INTEGER PACKED STATS
////////////////////////////////////////////////////////////////////////////////////////
START_MP_CHAR_INT_PACKED = END_SP_CHAR_BOOL_PACKED,
END_MP_CHAR_INT_PACKED = START_MP_CHAR_INT_PACKED+73, //DO NOT CHANGE
////////////////////////////////////////////////////////////////////////////////////////
/// SINGLE PLAYER PLAYER CHARACTER INTEGER PACKED STATS
////////////////////////////////////////////////////////////////////////////////////////
START_SP_CHAR_INT_PACKED = END_MP_CHAR_INT_PACKED,
END_SP_CHAR_INT_PACKED = START_SP_CHAR_INT_PACKED+56, //DO NOT CHANGE
////////////////////////////////////////////////////////////////////////////////////////
/// MULTIPLAYER PLAYER BOOLEAN PACKED STATS
////////////////////////////////////////////////////////////////////////////////////////
START_MP_BOOL_PACKED = END_SP_CHAR_INT_PACKED,
END_MP_BOOL_PACKED = START_MP_BOOL_PACKED+192, //DO NOT CHANGE
////////////////////////////////////////////////////////////////////////////////////////
/// SINGLE PLAYER BOOLEAN PACKED STATS
////////////////////////////////////////////////////////////////////////////////////////
START_SP_BOOL_PACKED = END_MP_BOOL_PACKED,
END_SP_BOOL_PACKED = START_SP_BOOL_PACKED+576, //DO NOT CHANGE
////////////////////////////////////////////////////////////////////////////////////////
/// MULTI PLAYER INTEGER PACKED STATS
////////////////////////////////////////////////////////////////////////////////////////
START_MP_INT_PACKED = END_SP_BOOL_PACKED,
END_MP_INT_PACKED = START_MP_INT_PACKED+24, //DO NOT CHANGE -BenR
////////////////////////////////////////////////////////////////////////////////////////
/// SINGLE PLAYER INTEGER PACKED STATS
////////////////////////////////////////////////////////////////////////////////////////
START_SP_INT_PACKED = END_MP_INT_PACKED,
END_SP_INT_PACKED = START_SP_INT_PACKED+56, //DO NOT CHANGE -BenR
// Multiplayer TITLE UPDATE INTEGER NON CHARACTER
START_TU_MP_INT_PACKED = END_SP_INT_PACKED,
END_TU_MP_INT_PACKED = START_TU_MP_INT_PACKED+32, //4 stats
// Multiplayer TITLE UPDATE INTEGER CHARACTER
START_TU_MP_CHAR_INT_PACKED = END_TU_MP_INT_PACKED,
END_TU_MP_CHAR_INT_PACKED = START_TU_MP_CHAR_INT_PACKED+1526, //127 stats
// Multiplayer TITLE UPDATE BOOLEAN NON CHARACTER
START_TU_MP_BOOL_PACKED = END_TU_MP_CHAR_INT_PACKED,
END_TU_MP_BOOL_PACKED = START_TU_MP_BOOL_PACKED+192, //3 stats
// Multiplayer TITLE UPDATE BOOLEAN CHARACTER
START_TU_MP_CHAR_BOOL_PACKED = END_TU_MP_BOOL_PACKED,
END_TU_MP_CHAR_BOOL_PACKED = START_TU_MP_CHAR_BOOL_PACKED+768,//12 stats
////////////////////////////////////////////////////////////////////////////////////////
/// NEXT GEN PACKED STATS
////////////////////////////////////////////////////////////////////////////////////////
START_NG_MP_CHAR_INT_PACKED = END_TU_MP_CHAR_BOOL_PACKED,
END_NG_MP_CHAR_INT_PACKED = START_NG_MP_CHAR_INT_PACKED+264, //33 stats
START_NG_MP_INT_PACKED = END_NG_MP_CHAR_INT_PACKED,
END_NG_MP_INT_PACKED = START_NG_MP_INT_PACKED + 64, //8 stat
START_NG_MP_CHAR_BOOL_PACKED = END_NG_MP_INT_PACKED,
END_NG_MP_CHAR_BOOL_PACKED = START_NG_MP_CHAR_BOOL_PACKED+128, //2 stats
START_NG_MP_BOOL_PACKED = END_NG_MP_CHAR_BOOL_PACKED,
END_NG_MP_BOOL_PACKED = START_NG_MP_BOOL_PACKED +64, //1 stats
////////////////////////////////////////////////////////////////////////////////////////
/// LOWRIDER STATS
////////////////////////////////////////////////////////////////////////////////////////
START_NG_MP_LOWRIDER_VEH_PACKED = END_NG_MP_BOOL_PACKED,
END_NG_MP_LOWRIDER_VEH_PACKED = START_NG_MP_LOWRIDER_VEH_PACKED+1628+1, //204 new stats (1629/8 = 203.625 stats but need to round up so 204 stats)
// New tattoos for Tattos LOWRIDER and BEYOND
START_NG_TATTOOS_PURCHASED = END_NG_MP_LOWRIDER_VEH_PACKED+1,
END_NG_TATTOOS_PURCHASED = START_NG_TATTOOS_PURCHASED+384, // 64 * 6
START_NG_MP_APARTMENT_VEH_PACKED = END_NG_TATTOOS_PURCHASED,
END_NG_MP_APARTMENT_VEH_PACKED = START_NG_MP_APARTMENT_VEH_PACKED+848+1, //107 new stats (849/8 = 106.125 stats but need to round up so 107 stats)
////////////////////////////////////////////////////////////////////////////////////////
/// LOWRIDER 2 STATS
////////////////////////////////////////////////////////////////////////////////////////
START_NG_MP_LOWRIDER2_PACKED = END_NG_MP_APARTMENT_VEH_PACKED,
// Vehicle Colour 5
START_LOWRIDER2_VEHICLE_LIVERY2,
END_LOWRIDER2_VEHICLE_LIVERY2 = START_LOWRIDER2_VEHICLE_LIVERY2+49,
END_NG_MP_LOWRIDER2_PACKED = END_LOWRIDER2_VEHICLE_LIVERY2+1, //7 new stats (51/8 = 6.375 stats but need to round to 7
//////////////////////////////////////////////////////////////////////////
///
//////////////////////////////////////////////////////////////////////////
START_NG_DLC_MP_INT_PACKED = END_NG_MP_LOWRIDER2_PACKED,
END_NG_DLC_MP_INT_PACKED = START_NG_DLC_MP_INT_PACKED + 8, //1 stat
START_NG_DLC_MP_BOOL_PACKED = END_NG_DLC_MP_INT_PACKED,
END_NG_DLC_MP_BOOL_PACKED = START_NG_DLC_MP_BOOL_PACKED +64, //1 stats
START_NG_DLC_MP_CHAR_BOOL_PACKED = END_NG_DLC_MP_BOOL_PACKED,
END_NG_DLC_MP_CHAR_BOOL_PACKED = START_NG_DLC_MP_CHAR_BOOL_PACKED+256, //4 stats
START_NG_DLC_MP_CHAR_INT_PACKED = END_NG_DLC_MP_CHAR_BOOL_PACKED,
END_NG_DLC_MP_CHAR_INT_PACKED = START_NG_DLC_MP_CHAR_INT_PACKED+40, //5 stats
//////////////////////////////////////////////////////////////////////////
/// BIKERS STATS
//////////////////////////////////////////////////////////////////////////
//Line 2983: START_NG_MP_BIKER_PACKED = END_NG_DLC_MP_CHAR_INT_PACKED,
//Line 3640: END_NG_MP_BIKER_PACKED = START_NG_MP_BIKER_PACKED+1680, //210 new stats (1675/8 = 209.375 but we round up so 210)
START_NG_MP_BIKERS_CHAR_INT_PACKED = END_NG_DLC_MP_CHAR_INT_PACKED,
END_NG_MP_BIKERS_CHAR_INT_PACKED = START_NG_MP_BIKERS_CHAR_INT_PACKED + 1680, //210 new stats
//Line 3643: START_DLC_BIKER_MP_CHAR_BOOL_PACKED = END_NG_MP_BIKER_PACKED,
//Line 3747: END_DLC_BIKER_MP_CHAR_BOOL_PACKED = START_DLC_BIKER_MP_CHAR_BOOL_PACKED + 192 //(3 stats)
START_NG_MP_BIKERS_CHAR_BOOL_PACKED = END_NG_MP_BIKERS_CHAR_INT_PACKED,
END_NG_MP_BIKERS_CHAR_BOOL_PACKED = START_NG_MP_BIKERS_CHAR_BOOL_PACKED + 192, //2 stats
//////////////////////////////////////////////////////////////////////////
/// IMPORT EXPORT STATS
//////////////////////////////////////////////////////////////////////////
//Line 3752: START_NG_MP_IMPEXP_PACKED = END_DLC_BIKER_MP_CHAR_BOOL_PACKED,
//Line 5794: END_NG_MP_IMPEXP_PACKED = START_NG_MP_IMPEXP_PACKED+5711+1 //714 new stats (5711/8 = 713.875 but we round up so 714)
START_NG_MP_IMPEXP_CHAR_INT_PACKED = END_NG_MP_BIKERS_CHAR_BOOL_PACKED,
END_NG_MP_IMPEXP_CHAR_INT_PACKED = START_NG_MP_IMPEXP_CHAR_INT_PACKED + 5711 + 1, //714 new stats
//////////////////////////////////////////////////////////////////////////
/// GUNRUNNING STATS
//////////////////////////////////////////////////////////////////////////
START_NG_MP_GUNRUNNING_CHAR_INT_PACKED = END_NG_MP_IMPEXP_CHAR_INT_PACKED,
END_NG_MP_GUNRUNNING_CHAR_INT_PACKED = START_NG_MP_GUNRUNNING_CHAR_INT_PACKED + 104, //13 new stats
START_NG_MP_GUNRUNNING_CHAR_BOOL_PACKED = END_NG_MP_GUNRUNNING_CHAR_INT_PACKED,
END_NG_MP_GUNRUNNING_CHAR_BOOL_PACKED = START_NG_MP_GUNRUNNING_CHAR_BOOL_PACKED + 192, //3 new stats
START_NG_MP_GUNRUNNING_TATOOS_CHAR_BOOL_PACKED = END_NG_MP_GUNRUNNING_CHAR_BOOL_PACKED + 1,
END_NG_MP_GUNRUNNING_TATOOS_CHAR_BOOL_PACKED = START_NG_MP_GUNRUNNING_TATOOS_CHAR_BOOL_PACKED + 384, //6 new stats
//////////////////////////////////////////////////////////////////////////
/// SMUGGLER STATS
//////////////////////////////////////////////////////////////////////////
START_NG_MP_SMUGGLER_CHAR_BOOL_PACKED = END_NG_MP_GUNRUNNING_TATOOS_CHAR_BOOL_PACKED,
END_NG_MP_SMUGGLER_CHAR_BOOL_PACKED = START_NG_MP_SMUGGLER_CHAR_BOOL_PACKED + 64, //1 new stat
START_NG_MP_SMUGGLER_CHAR_INT_PACKED = END_NG_MP_SMUGGLER_CHAR_BOOL_PACKED,
END_NG_MP_SMUGGLER_CHAR_INT_PACKED = START_NG_MP_SMUGGLER_CHAR_INT_PACKED + 2088, //261 new stats
//////////////////////////////////////////////////////////////////////////
/// GANG OPS STATS
//////////////////////////////////////////////////////////////////////////
START_NG_MP_GANGOPS_CHAR_BOOL_PACKED = END_NG_MP_SMUGGLER_CHAR_INT_PACKED,
END_NG_MP_GANGOPS_CHAR_BOOL_PACKED = START_NG_MP_GANGOPS_CHAR_BOOL_PACKED + 64, //1 new stat
START_NG_MP_GANGOPS_CHAR_INT_PACKED = END_NG_MP_GANGOPS_CHAR_BOOL_PACKED,
END_NG_MP_GANGOPS_CHAR_INT_PACKED = START_NG_MP_GANGOPS_CHAR_INT_PACKED + 856, //107 new stats
//////////////////////////////////////////////////////////////////////////
/// BUSINESS BATTLES STATS
//////////////////////////////////////////////////////////////////////////
START_NG_MP_BUSINESS_BATTLES_CHAR_INT_PACKED = END_NG_MP_GANGOPS_CHAR_INT_PACKED,
END_NG_MP_BUSINESS_BATTLES_CHAR_INT_PACKED = START_NG_MP_BUSINESS_BATTLES_CHAR_INT_PACKED + 3048, //381 new stats
START_NG_MP_BUSINESS_BATTLES_CHAR_BOOL_PACKED = END_NG_MP_BUSINESS_BATTLES_CHAR_INT_PACKED,
END_NG_MP_BUSINESS_BATTLES_CHAR_BOOL_PACKED = START_NG_MP_BUSINESS_BATTLES_CHAR_BOOL_PACKED + 128, //2 stat
//////////////////////////////////////////////////////////////////////////
/// ARENA WARS
//////////////////////////////////////////////////////////////////////////
START_NG_MP_ARENA_WARS_CHAR_INT_PACKED = END_NG_MP_BUSINESS_BATTLES_CHAR_BOOL_PACKED,
END_NG_MP_ARENA_WARS_CHAR_INT_PACKED = START_NG_MP_ARENA_WARS_CHAR_INT_PACKED + 2768, // 346 stat
START_NG_MP_ARENA_WARS_CHAR_BOOL_PACKED = END_NG_MP_ARENA_WARS_CHAR_INT_PACKED,
END_NG_MP_ARENA_WARS_CHAR_BOOL_PACKED = START_NG_MP_ARENA_WARS_CHAR_BOOL_PACKED + 576, //9 stat
//////////////////////////////////////////////////////////////////////////
/// VINEWOOD / CASINO
//////////////////////////////////////////////////////////////////////////
START_NG_MP_VINEWOOD_CHAR_INT_PACKED = END_NG_MP_ARENA_WARS_CHAR_BOOL_PACKED,
END_NG_MP_VINEWOOD_CHAR_INT_PACKED = START_NG_MP_VINEWOOD_CHAR_INT_PACKED + 1272, // 159 stat
START_NG_MP_VINEWOOD_CHAR_BOOL_PACKED = END_NG_MP_VINEWOOD_CHAR_INT_PACKED,
END_NG_MP_VINEWOOD_CHAR_BOOL_PACKED = START_NG_MP_VINEWOOD_CHAR_BOOL_PACKED + 448, //7 stat
//////////////////////////////////////////////////////////////////////////
/// CASINO HEIST
//////////////////////////////////////////////////////////////////////////
START_NG_MP_CASINO_HEIST_CHAR_INT_PACKED = END_NG_MP_VINEWOOD_CHAR_BOOL_PACKED,
END_NG_MP_CASINO_HEIST_CHAR_INT_PACKED = START_NG_MP_CASINO_HEIST_CHAR_INT_PACKED + 840, // 105 stat
START_NG_MP_CASINO_HEIST_CHAR_BOOL_PACKED = END_NG_MP_CASINO_HEIST_CHAR_INT_PACKED,
END_NG_MP_CASINO_HEIST_CHAR_BOOL_PACKED = START_NG_MP_CASINO_HEIST_CHAR_BOOL_PACKED + 256, //4 stat
START_NG_MP_HEIST3TATTOOSTAT_BOOL_PACKED = END_NG_MP_CASINO_HEIST_CHAR_BOOL_PACKED + 1, // We need a +1 here to match what script has.
END_NG_MP_HEIST3TATTOOSTAT_BOOL_PACKED = START_NG_MP_HEIST3TATTOOSTAT_BOOL_PACKED + 128, //2 stat
//////////////////////////////////////////////////////////////////////////
/// SU20
//////////////////////////////////////////////////////////////////////////
START_NG_MP_SU20_CHAR_INT_PACKED = END_NG_MP_HEIST3TATTOOSTAT_BOOL_PACKED,
END_NG_MP_SU20_CHAR_INT_PACKED = START_NG_MP_SU20_CHAR_INT_PACKED + 1744, // 218 stat
START_NG_MP_SU20_CHAR_BOOL_PACKED = END_NG_MP_SU20_CHAR_INT_PACKED,
END_NG_MP_SU20_CHAR_BOOL_PACKED = START_NG_MP_SU20_CHAR_BOOL_PACKED + 128, //2 stat
START_NG_MP_SU20_CHAR_TATTOOSTAT_BOOL_PACKED = END_NG_MP_SU20_CHAR_BOOL_PACKED,
END_NG_MP_SU20_CHAR_TATTOOSTAT_BOOL_PACKED = START_NG_MP_SU20_CHAR_TATTOOSTAT_BOOL_PACKED + 128, //2 stat
//////////////////////////////////////////////////////////////////////////
/// HEIST ISLAND
//////////////////////////////////////////////////////////////////////////
START_NG_MP_HEIST_ISLAND_CHAR_INT_PACKED = END_NG_MP_SU20_CHAR_TATTOOSTAT_BOOL_PACKED,
END_NG_MP_HEIST_ISLAND_CHAR_INT_PACKED = START_NG_MP_HEIST_ISLAND_CHAR_INT_PACKED + 32, // 4 stat
START_NG_MP_HEIST_ISLAND_CHAR_BOOL_PACKED = END_NG_MP_HEIST_ISLAND_CHAR_INT_PACKED,
END_NG_MP_HEIST_ISLAND_CHAR_BOOL_PACKED = START_NG_MP_HEIST_ISLAND_CHAR_BOOL_PACKED + 192, //3 stat
//////////////////////////////////////////////////////////////////////////
/// THE TUNER
//////////////////////////////////////////////////////////////////////////
START_NG_MP_TUNER_CHAR_INT_PACKED = END_NG_MP_HEIST_ISLAND_CHAR_BOOL_PACKED,
END_NG_MP_TUNER_CHAR_INT_PACKED = START_NG_MP_TUNER_CHAR_INT_PACKED + 1000, // 125 stat
START_NG_MP_TUNER_CHAR_BOOL_PACKED = END_NG_MP_TUNER_CHAR_INT_PACKED,
END_NG_MP_TUNER_CHAR_BOOL_PACKED = START_NG_MP_TUNER_CHAR_BOOL_PACKED + 576, // 9 stat
//////////////////////////////////////////////////////////////////////////
/// FIXER
//////////////////////////////////////////////////////////////////////////
START_NG_MP_FIXER_CHAR_BOOL_PACKED = END_NG_MP_TUNER_CHAR_BOOL_PACKED,
END_NG_MP_FIXER_CHAR_BOOL_PACKED = START_NG_MP_FIXER_CHAR_BOOL_PACKED + 128, // 2 stat
START_NG_MP_FIXER_CHAR_TATTOOSTAT_BOOL_PACKED = END_NG_MP_FIXER_CHAR_BOOL_PACKED,
END_NG_MP_FIXER_CHAR_TATTOOSTAT_BOOL_PACKED = START_NG_MP_FIXER_CHAR_TATTOOSTAT_BOOL_PACKED + 64, // 1 stat
START_NG_MP_FIXER_CHAR_INT_PACKED = END_NG_MP_FIXER_CHAR_TATTOOSTAT_BOOL_PACKED,
END_NG_MP_FIXER_CHAR_INT_PACKED = START_NG_MP_FIXER_CHAR_INT_PACKED + 1648, // 206 stat
//////////////////////////////////////////////////////////////////////////
/// GEN9
//////////////////////////////////////////////////////////////////////////
START_NG_MP_GEN9_CHAR_BOOL_PACKED = END_NG_MP_FIXER_CHAR_INT_PACKED,
END_NG_MP_GEN9_CHAR_BOOL_PACKED = START_NG_MP_GEN9_CHAR_BOOL_PACKED + 128, // 2 stat
//////////////////////////////////////////////////////////////////////////
/// DLC12022
//////////////////////////////////////////////////////////////////////////
START_NG_MP_DLC12022_CHAR_BOOL_PACKED = END_NG_MP_GEN9_CHAR_BOOL_PACKED,
END_NG_MP_DLC12022_CHAR_BOOL_PACKED = START_NG_MP_DLC12022_CHAR_BOOL_PACKED + 512, // 8 stat
START_NG_MP_DLC12022_CHAR_INT_PACKED = END_NG_MP_DLC12022_CHAR_BOOL_PACKED,
END_NG_MP_DLC12022_CHAR_INT_PACKED = START_NG_MP_DLC12022_CHAR_INT_PACKED + 1864, // 233 stat
//////////////////////////////////////////////////////////////////////////
/// DLC22022
//////////////////////////////////////////////////////////////////////////
START_NG_MP_DLC22022_CHAR_BOOL_PACKED = END_NG_MP_DLC12022_CHAR_INT_PACKED,
END_NG_MP_DLC22022_CHAR_BOOL_PACKED = START_NG_MP_DLC22022_CHAR_BOOL_PACKED + 320, // 5 stat
START_NG_MP_DLC22022_CHAR_INT_PACKED = END_NG_MP_DLC22022_CHAR_BOOL_PACKED,
END_NG_MP_DLC22022_CHAR_INT_PACKED = START_NG_MP_DLC22022_CHAR_INT_PACKED + 80, // 10 stat
//////////////////////////////////////////////////////////////////////////
END_LAST_ENUM_VALUE = END_NG_MP_DLC22022_CHAR_INT_PACKED
};
/*
When we add new Start/End enum stats we should add here
the CompileTimeAssert checks with the values script gives us.
This will reduce issues with being out of sync. See bug
url:bugstar:6536259 for details.
*/
//Verify it matches script enum value - START_NG_MP_SU20_INT_PACKED = 28483
CompileTimeAssert(eScriptPackedStatsEnum::START_NG_MP_SU20_CHAR_INT_PACKED == 28483);
//Verify it matches script enum value - START_NG_MP_HEIST_ISLAND_CHAR_INT_PACKED = 30483
CompileTimeAssert(eScriptPackedStatsEnum::START_NG_MP_HEIST_ISLAND_CHAR_INT_PACKED == 30483);
//Verify it matches script enum value - START_NG_MP_TUNER_CHAR_INT_PACKED = 30707
CompileTimeAssert(eScriptPackedStatsEnum::START_NG_MP_TUNER_CHAR_INT_PACKED == 30707);
//Verify it matches script enum value - END_NG_MP_DLC12022_CHAR_INT_PACKED = 36627
CompileTimeAssert(eScriptPackedStatsEnum::END_NG_MP_DLC12022_CHAR_INT_PACKED == 36627);
//Verify it matches script enum value - END_NG_MP_DLC22022_CHAR_INT_PACKED = 36627
CompileTimeAssert(eScriptPackedStatsEnum::END_NG_MP_DLC22022_CHAR_INT_PACKED == 37027);
//Verify last matches matches the last script enum
// This value MUST be asked to scripters not calculated.
#define END_LAST_ENUM_VALUE_ON_SCRIPT ( 37027 )
CompileTimeAssert(eScriptPackedStatsEnum::END_LAST_ENUM_VALUE == END_LAST_ENUM_VALUE_ON_SCRIPT);
//////////////////////////////////////////////////////////////////////////
void GetStatEnumInfo(const int statEnum, int& startOffset, int& endOffset, bool& isBoolean, bool& isCharacter);
int GetStatIndex(const int statEnum, const int startOffset, const bool isBoolean);
bool GetIsCharacterStat(const int statEnum);
bool GetIsPlayerStat(const int statEnum);
bool GetIsIntType(const int statEnum);
bool GetIsBooleanType(const int statEnum);
bool GetStatKey(StatId& statKey, const int statEnum, const int charSlot);
bool GetStatShiftValue( int& offSet, const int stat );
static const int USE_CURRENT_CHAR_SLOT = -1;
bool GetPackedValue(int& returnValue, const int statEnum, const int overrideCharSlot = USE_CURRENT_CHAR_SLOT);
bool SetPackedValue(const int value, const int statEnum, const int overrideCharSlot = USE_CURRENT_CHAR_SLOT);
};
#endif // INC_NET_VEHCILE_CATALOG_H_