From ee4d728573356819eb07c7811cb84a4203b31782 Mon Sep 17 00:00:00 2001 From: Jelle Meeus Date: Tue, 9 Jul 2024 19:16:30 +0200 Subject: [PATCH] fix(Core/Pets): Correct Pet size for pets 3 (#19319) * revert * override maxScale for some families add more families sort * add turtle --- src/server/game/Entities/Pet/Pet.cpp | 31 +++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 0f77f0c97..7a1dbbfe2 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -2503,7 +2503,7 @@ float Pet::GetNativeObjectScale() const if (creatureFamily && creatureFamily->minScale > 0.0f && getPetType() & HUNTER_PET) { float minScaleLevel = creatureFamily->minScaleLevel; - uint8 level = getLevel(); + uint8 level = GetLevel(); float minLevelScaleMod = level >= minScaleLevel ? (level / minScaleLevel) : 0.0f; float maxScaleMod = creatureFamily->maxScaleLevel - minScaleLevel; @@ -2513,15 +2513,32 @@ float Pet::GetNativeObjectScale() const float scaleMod = creatureFamily->maxScaleLevel != minScaleLevel ? minLevelScaleMod / maxScaleMod : 0.f; - float scale = (creatureFamily->maxScale - creatureFamily->minScale) * scaleMod + creatureFamily->minScale; + float maxScale = creatureFamily->maxScale; - scale = std::min(scale, creatureFamily->maxScale); - - if (CreatureDisplayInfoEntry const* displayInfo = sCreatureDisplayInfoStore.LookupEntry(GetNativeDisplayId())) + // override maxScale + switch (ctFamily) { - if (scale < 1.f && displayInfo->scale > 1.f) - scale *= displayInfo->scale; + case CREATURE_FAMILY_CHIMAERA: + case CREATURE_FAMILY_CORE_HOUND: + case CREATURE_FAMILY_CRAB: + case CREATURE_FAMILY_DEVILSAUR: + case CREATURE_FAMILY_NETHER_RAY: + case CREATURE_FAMILY_RHINO: + case CREATURE_FAMILY_SPIDER: + case CREATURE_FAMILY_TURTLE: + case CREATURE_FAMILY_WARP_STALKER: + case CREATURE_FAMILY_WASP: + case CREATURE_FAMILY_WIND_SERPENT: + maxScale = 1.0f; + break; + default: + break; } + + float scale = (maxScale - creatureFamily->minScale) * scaleMod + creatureFamily->minScale; + + scale = std::min(scale, maxScale); + return scale; }