uint32 EQLimits::PotionBeltSize(uint32 version) { static const uint32 local[_EmuClientCount] = { /*Unknown*/ NOT_USED, /*Mac*/ NOT_USED, /*Evolution*/ 0, /*NPC*/ NOT_USED, /*Pet*/ NOT_USED }; return local[ValidateMobVersion(version)]; }
bool EQLimits::CoinHasWeight(uint32 version) { static const bool local[_EmuClientCount] = { /*Unknown*/ true, /*Mac*/ MAC::limits::COIN_HAS_WEIGHT, /*Evolution*/ true, /*NPC*/ true, /*Pet*/ true }; return local[ValidateMobVersion(version)]; }
uint32 EQLimits::BandolierSize(uint32 version) { static const uint32 local[_EmuClientCount] = { /*Unknown*/ NOT_USED, /*Mac*/ EmuConstants::BANDOLIER_SIZE, /*Evolution*/ 0, /*NPC*/ NOT_USED, /*Pet*/ NOT_USED }; return local[ValidateMobVersion(version)]; }
uint16 EQLimits::ItemContainerSize(uint32 version) { static const uint16 local[_EmuClientCount] = { /*Unknown*/ NOT_USED, /*Mac*/ EmuConstants::ITEM_CONTAINER_SIZE, /*Evolution*/ 0, /*NPC*/ EmuConstants::ITEM_CONTAINER_SIZE, /*Pet*/ EmuConstants::ITEM_CONTAINER_SIZE }; return local[ValidateMobVersion(version)]; }
bool EQLimits::AllowsClickCastFromBag(uint32 version) { static const bool local[_EmuClientCount] = { /*Unknown*/ false, /*Unused*/ false, /*Mac*/ MAC::limits::ALLOWS_CLICK_CAST_FROM_BAG, /*Evolution*/ false, /*NPC*/ false, /*Pet*/ false }; return local[ValidateMobVersion(version)]; }
uint32 EQLimits::PotionBeltSize(uint32 version) { static const uint32 local[_EmuClientCount] = { /*Unknown*/ NOT_USED, /*62*/ EmuConstants::POTION_BELT_SIZE, /*Titanium*/ EmuConstants::POTION_BELT_SIZE, /*SoF*/ EmuConstants::POTION_BELT_SIZE, /*SoD*/ EmuConstants::POTION_BELT_SIZE, /*Underfoot*/ EmuConstants::POTION_BELT_SIZE, /*RoF*/ EmuConstants::POTION_BELT_SIZE, /*RoF2*/ 0, /*NPC*/ NOT_USED, /*Merc*/ NOT_USED, /*Bot*/ NOT_USED, /*Pet*/ NOT_USED }; return local[ValidateMobVersion(version)]; }
uint32 EQLimits::BandoliersCount(uint32 version) { static const uint32 local[_EmuClientCount] = { /*Unknown*/ NOT_USED, /*62*/ EmuConstants::BANDOLIERS_COUNT, /*Titanium*/ EmuConstants::BANDOLIERS_COUNT, /*SoF*/ EmuConstants::BANDOLIERS_COUNT, /*SoD*/ EmuConstants::BANDOLIERS_COUNT, /*Underfoot*/ EmuConstants::BANDOLIERS_COUNT, /*RoF*/ EmuConstants::BANDOLIERS_COUNT, /*RoF2*/ 0, /*NPC*/ NOT_USED, /*Merc*/ NOT_USED, /*Bot*/ NOT_USED, /*Pet*/ NOT_USED }; return local[ValidateMobVersion(version)]; }
bool EQLimits::CoinHasWeight(uint32 version) { static const bool local[_EmuClientCount] = { /*Unknown*/ true, /*62*/ Client62::limits::COIN_HAS_WEIGHT, /*Titanium*/ Titanium::limits::COIN_HAS_WEIGHT, /*SoF*/ SoF::limits::COIN_HAS_WEIGHT, /*SoD*/ SoD::limits::COIN_HAS_WEIGHT, /*Underfoot*/ Underfoot::limits::COIN_HAS_WEIGHT, /*RoF*/ RoF::limits::COIN_HAS_WEIGHT, /*RoF2*/ true, /*NPC*/ true, /*Merc*/ true, /*Bot*/ true, /*Pet*/ true }; return local[ValidateMobVersion(version)]; }
uint16 EQLimits::ItemContainerSize(uint32 version) { static const uint16 local[_EmuClientCount] = { /*Unknown*/ NOT_USED, /*62*/ EmuConstants::ITEM_CONTAINER_SIZE, /*Titanium*/ EmuConstants::ITEM_CONTAINER_SIZE, /*SoF*/ EmuConstants::ITEM_CONTAINER_SIZE, /*SoD*/ EmuConstants::ITEM_CONTAINER_SIZE, /*Underfoot*/ EmuConstants::ITEM_CONTAINER_SIZE, /*RoF*/ EmuConstants::ITEM_CONTAINER_SIZE, /*RoF2*/ 0, /*NPC*/ EmuConstants::ITEM_CONTAINER_SIZE, /*Merc*/ EmuConstants::ITEM_CONTAINER_SIZE, /*Bot*/ EmuConstants::ITEM_CONTAINER_SIZE, /*Pet*/ EmuConstants::ITEM_CONTAINER_SIZE }; return local[ValidateMobVersion(version)]; }
// inventory uint16 EQLimits::InventoryMapSize(int16 map, uint32 version) { // not all maps will have an instantiated container..some are references for queue generators (i.e., bazaar, mail, etc...) // a zero '0' indicates a needed value..otherwise, change to '_NOTUSED' for a null value so indices requiring research can be identified // ALL of these values need to be verified before pushing to live // // make sure that you transcribe the actual value from 'defaults' to here before updating or client crashes will ensue..and/or... // insert older clients inside of the progression of client order // // MAP_POSSESSIONS_SIZE does not reflect all actual <client>_constants size due to bitmask-use compatibility // // when setting NPC-based values, try to adhere to an EmuConstants::<property> or NOT_USED value to avoid unnecessary issues static const uint16 local[_MapCount][_EmuClientCount] = { // server and database are sync'd to current MapPossessions's client as set in 'using namespace RoF::slots;' and // 'EmuConstants::MAP_POSSESSIONS_SIZE' - use/update EquipmentBitmask(), GeneralBitmask() and CursorBitmask() // for partial range validation checks and 'EmuConstants::MAP_POSSESSIONS_SIZE' for full range iterations { // local[MainPossessions] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ EmuConstants::MAP_POSSESSIONS_SIZE, /*evolution*/ 0, /*NPC*/ EmuConstants::MAP_POSSESSIONS_SIZE, /*Pet*/ EmuConstants::MAP_POSSESSIONS_SIZE }, { // local[MapBank] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ MAC::consts::MAP_BANK_SIZE, /*evolution*/ 0, /*NPC*/ NOT_USED, /*Pet*/ NOT_USED }, { // local[MapUnused] /*Unknown*/ NOT_USED, /*Unused*/ NOT_USED, /*Mac*/ NOT_USED, /*evolution*/ NOT_USED, /*NPC*/ NOT_USED, /*Pet*/ NOT_USED }, { // local[MapTrade] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ EmuConstants::MAP_TRADE_SIZE, /*evolution*/ 0, /*NPC*/ 4, /*Pet*/ 4 }, { // local[MapWorld] /*Unknown*/ NOT_USED, /*Unused*/ NOT_USED, /*Mac*/ EmuConstants::MAP_WORLD_SIZE, /*evolution*/ NOT_USED, /*NPC*/ NOT_USED, /*Pet*/ NOT_USED }, { // local[MapLimbo] /*Unknown*/ NOT_USED, /*Unused*/ NOT_USED, /*Mac*/ EmuConstants::MAP_LIMBO_SIZE, /*evolution*/ NOT_USED, /*NPC*/ NOT_USED, /*Pet*/ NOT_USED }, { // local[MapTribute] /*Unknown*/ NOT_USED, /*Unused*/ NOT_USED, /*Mac*/ NOT_USED, /*evolution*/ NOT_USED, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapTrophyTribute] /*Unknown*/ NOT_USED, /*Unused*/ NOT_USED, /*Mac*/ NOT_USED, /*evolution*/ NOT_USED, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapGuildTribute] /*Unknown*/ NOT_USED, /*Unused*/ NOT_USED, /*Mac*/ NOT_USED, /*evolution*/ NOT_USED, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapMerchant] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ 0, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapDeleted] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ 0, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapCorpse] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ MAC::consts::MAP_CORPSE_SIZE, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapBazaar] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ EmuConstants::MAP_BAZAAR_SIZE, /*evolution*/ 0, /*NPC*/ 0, // this may need to be 'EmuConstants::MAP_BAZAAR_SIZE' if offline client traders respawn as an npc /*Pet*/ 0 }, { // local[MapInspect] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ MAC::consts::MAP_INSPECT_SIZE, /*evolution*/ 0, /*NPC*/ NOT_USED, /*Pet*/ NOT_USED }, { // local[MapRealEstate] /*Unknown*/ NOT_USED, /*Unused*/ NOT_USED, /*Mac*/ NOT_USED, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapViewMODPC] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ 0, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapViewMODBank] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ 0, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapViewMODUnused] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ 0, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapViewMODLimbo] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ 0, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapAltStorage] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ 0, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapArchived] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ 0, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapMail] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ 0, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapGuildTrophyTribute] /*Unknown*/ NOT_USED, /*Unused*/ NOT_USED, /*Mac*/ NOT_USED, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapKrono] /*Unknown*/ NOT_USED, /*Unused*/ NOT_USED, /*Mac*/ NOT_USED, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 }, { // local[MapOther] /*Unknown*/ NOT_USED, /*Unused*/ 0, /*Mac*/ 0, /*evolution*/ 0, /*NPC*/ 0, /*Pet*/ 0 } }; if ((uint16)map < _MapCount) return local[map][ValidateMobVersion(version)]; return NOT_USED; }