aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/BattlePets/BattlePetMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/BattlePets/BattlePetMgr.cpp')
-rw-r--r--src/server/game/BattlePets/BattlePetMgr.cpp36
1 files changed, 16 insertions, 20 deletions
diff --git a/src/server/game/BattlePets/BattlePetMgr.cpp b/src/server/game/BattlePets/BattlePetMgr.cpp
index 09a4930aa4f..05e7939097f 100644
--- a/src/server/game/BattlePets/BattlePetMgr.cpp
+++ b/src/server/game/BattlePets/BattlePetMgr.cpp
@@ -37,8 +37,8 @@ namespace BattlePets
{
namespace
{
-std::unordered_map<uint16 /*BreedID*/, std::unordered_map<BattlePetState /*state*/, int32 /*value*/, std::hash<std::underlying_type<BattlePetState>::type> >> _battlePetBreedStates;
-std::unordered_map<uint32 /*SpeciesID*/, std::unordered_map<BattlePetState /*state*/, int32 /*value*/, std::hash<std::underlying_type<BattlePetState>::type> >> _battlePetSpeciesStates;
+std::unordered_map<uint16 /*BreedID*/, std::unordered_map<BattlePetState /*state*/, int32 /*value*/>> _battlePetBreedStates;
+std::unordered_map<uint32 /*SpeciesID*/, std::unordered_map<BattlePetState /*state*/, int32 /*value*/>> _battlePetSpeciesStates;
std::unordered_map<uint32 /*CreatureID*/, BattlePetSpeciesEntry const*> _battlePetSpeciesByCreature;
std::unordered_map<uint32 /*SpellID*/, BattlePetSpeciesEntry const*> _battlePetSpeciesBySpell;
std::unordered_map<uint32 /*SpeciesID*/, std::unordered_set<uint8 /*breed*/>> _availableBreedsPerSpecies;
@@ -47,18 +47,14 @@ std::unordered_map<uint32 /*SpeciesID*/, uint8 /*quality*/> _defaultQualityPerSp
void BattlePet::CalculateStats()
{
- float health = 0.0f;
- float power = 0.0f;
- float speed = 0.0f;
-
// get base breed stats
auto breedState = _battlePetBreedStates.find(PacketInfo.Breed);
if (breedState == _battlePetBreedStates.end()) // non existing breed id
return;
- health = breedState->second[STATE_STAT_STAMINA];
- power = breedState->second[STATE_STAT_POWER];
- speed = breedState->second[STATE_STAT_SPEED];
+ float health = breedState->second[STATE_STAT_STAMINA];
+ float power = breedState->second[STATE_STAT_POWER];
+ float speed = breedState->second[STATE_STAT_SPEED];
// modify stats depending on species - not all pets have this
auto speciesState = _battlePetSpeciesStates.find(PacketInfo.Species);
@@ -538,7 +534,7 @@ void BattlePetMgr::ModifyName(ObjectGuid guid, std::string const& name, std::uni
summonedBattlePet->SetBattlePetCompanionNameTimestamp(pet->NameTimestamp);
}
-bool BattlePetMgr::IsPetInSlot(ObjectGuid guid)
+bool BattlePetMgr::IsPetInSlot(ObjectGuid guid) const
{
for (WorldPackets::BattlePet::BattlePetSlot const& slot : _slots)
if (slot.Pet.Guid == guid)
@@ -549,21 +545,21 @@ bool BattlePetMgr::IsPetInSlot(ObjectGuid guid)
uint8 BattlePetMgr::GetPetCount(BattlePetSpeciesEntry const* battlePetSpecies, ObjectGuid ownerGuid) const
{
- return uint8(std::count_if(_pets.begin(), _pets.end(), [battlePetSpecies, ownerGuid](std::pair<uint64 const, BattlePet> const& pet)
+ return uint8(std::ranges::count_if(_pets, [battlePetSpecies, ownerGuid](BattlePet const& pet)
{
- if (pet.second.PacketInfo.Species != battlePetSpecies->ID)
+ if (pet.PacketInfo.Species != battlePetSpecies->ID)
return false;
- if (pet.second.SaveInfo == BATTLE_PET_REMOVED)
+ if (pet.SaveInfo == BATTLE_PET_REMOVED)
return false;
if (battlePetSpecies->GetFlags().HasFlag(BattlePetSpeciesFlags::NotAccountWide))
- if (!ownerGuid.IsEmpty() && pet.second.PacketInfo.OwnerInfo)
- if (pet.second.PacketInfo.OwnerInfo->Guid != ownerGuid)
+ if (!ownerGuid.IsEmpty() && pet.PacketInfo.OwnerInfo)
+ if (pet.PacketInfo.OwnerInfo->Guid != ownerGuid)
return false;
return true;
- }));
+ }, Trinity::Containers::MapValue));
}
bool BattlePetMgr::HasMaxPetCount(BattlePetSpeciesEntry const* battlePetSpecies, ObjectGuid ownerGuid) const
@@ -576,10 +572,10 @@ bool BattlePetMgr::HasMaxPetCount(BattlePetSpeciesEntry const* battlePetSpecies,
uint32 BattlePetMgr::GetPetUniqueSpeciesCount() const
{
std::set<uint32> speciesIds;
- std::transform(_pets.begin(), _pets.end(), std::inserter(speciesIds, speciesIds.end()), [](std::pair<uint64 const, BattlePet> const& pet)
+ std::ranges::transform(_pets, std::inserter(speciesIds, speciesIds.end()), [](BattlePet const& pet)
{
- return pet.second.PacketInfo.Species;
- });
+ return pet.PacketInfo.Species;
+ }, Trinity::Containers::MapValue);
return speciesIds.size();
}
@@ -885,7 +881,7 @@ void BattlePetMgr::SendJournal()
battlePetJournal.Pets.push_back(std::ref(pet.second.PacketInfo));
battlePetJournal.Slots.reserve(_slots.size());
- std::transform(_slots.begin(), _slots.end(), std::back_inserter(battlePetJournal.Slots), [](WorldPackets::BattlePet::BattlePetSlot& slot) { return std::ref(slot); });
+ std::ranges::transform(_slots, std::back_inserter(battlePetJournal.Slots), [](WorldPackets::BattlePet::BattlePetSlot& slot) { return std::ref(slot); });
_owner->SendPacket(battlePetJournal.Write());
}