@@ -251,9 +251,12 @@ bool ForcedDespawnDelayEvent::Execute(uint64 /*e_time*/, uint32 /*p_time*/)
251251}
252252
253253Creature::Creature (bool isWorldObject): Unit(isWorldObject), MapObject(), m_groupLootTimer(0 ), lootingGroupLowGUID(0 ), m_PlayerDamageReq(0 ), m_lootRecipient(), m_lootRecipientGroup(0 ), _pickpocketLootRestore(0 ),
254- m_corpseRemoveTime(0 ), m_respawnTime(0 ), m_respawnDelay(300 ), m_corpseDelay(60 ), m_ignoreCorpseDecayRatio(false ), m_wanderDistance(0 .0f ), m_boundaryCheckTime(2500 ), m_combatPulseTime(0 ), m_combatPulseDelay(0 ), m_reactState(REACT_AGGRESSIVE),
255- m_defaultMovementType(IDLE_MOTION_TYPE), m_spawnId(0 ), m_equipmentId(0 ), m_originalEquipmentId(0 ), m_AlreadyCallAssistance(false ), m_AlreadySearchedAssistance(false ), m_cannotReachTarget(false ), m_cannotReachTimer(0 ),
256- m_meleeDamageSchoolMask(SPELL_SCHOOL_MASK_NORMAL), m_originalEntry(0 ), m_homePosition(), m_transportHomePosition(), m_creatureInfo(nullptr ), m_creatureData(nullptr ), _waypointPathId(0 ), _currentWaypointNodeInfo(0 , 0 ),
254+ m_corpseRemoveTime(0 ), m_respawnTime(0 ), m_respawnDelay(300 ), m_corpseDelay(60 ), m_ignoreCorpseDecayRatio(false ), m_wanderDistance(0 .0f ),
255+ m_boundaryCheckTime(2500 ), m_combatPulseTime(0 ), m_combatPulseDelay(0 ), m_reactState(REACT_AGGRESSIVE),
256+ m_defaultMovementType(IDLE_MOTION_TYPE), m_spawnId(0 ), m_equipmentId(0 ), m_originalEquipmentId(0 ),
257+ m_AlreadyCallAssistance(false ), m_AlreadySearchedAssistance(false ), m_cannotReachTarget(false ), m_cannotReachTimer(0 ),
258+ m_meleeDamageSchoolMask(SPELL_SCHOOL_MASK_NORMAL), m_originalEntry(0 ), m_homePosition(), m_transportHomePosition(),
259+ m_creatureInfo(nullptr ), m_creatureData(nullptr ), m_stringIds(), _waypointPathId(0 ), _currentWaypointNodeInfo(0 , 0 ),
257260 m_formation(nullptr ), m_triggerJustAppeared(true ), m_respawnCompatibilityMode(false ), _lastDamagedTime(0 ),
258261 _regenerateHealth(true ), _regenerateHealthLock(false ), _isMissingCanSwimFlagOutOfCombat(false )
259262{
@@ -635,7 +638,7 @@ bool Creature::UpdateEntry(uint32 entry, CreatureData const* data /*= nullptr*/,
635638 // We must update last scriptId or it looks like we reloaded a script, breaking some things such as gossip temporarily
636639 LastUsedScriptID = GetScriptId ();
637640
638- m_stringIds[AsUnderlyingType (StringIdType::Template)] = cInfo->StringId ;
641+ m_stringIds[AsUnderlyingType (StringIdType::Template)] = & cInfo->StringId ;
639642
640643 return true ;
641644}
@@ -1687,7 +1690,7 @@ bool Creature::LoadFromDB(ObjectGuid::LowType spawnId, Map* map, bool addToMap,
16871690 // checked at creature_template loading
16881691 m_defaultMovementType = MovementGeneratorType (data->movementType );
16891692
1690- m_stringIds[AsUnderlyingType (StringIdType::Spawn)] = data->StringId ;
1693+ m_stringIds[AsUnderlyingType (StringIdType::Spawn)] = & data->StringId ;
16911694
16921695 if (addToMap && !GetMap ()->AddToMap (this ))
16931696 return false ;
@@ -2787,20 +2790,20 @@ void Creature::InheritStringIds(Creature const* parent)
27872790
27882791bool Creature::HasStringId (std::string_view id) const
27892792{
2790- return std::find (m_stringIds. begin (), m_stringIds. end (), id) != m_stringIds. end ( );
2793+ return std::ranges::any_of (m_stringIds, [id](std::string const * stringId) { return stringId && *stringId == id; } );
27912794}
27922795
27932796void Creature::SetScriptStringId (std::string id)
27942797{
27952798 if (!id.empty ())
27962799 {
27972800 m_scriptStringId.emplace (std::move (id));
2798- m_stringIds[AsUnderlyingType (StringIdType::Script)] = *m_scriptStringId;
2801+ m_stringIds[AsUnderlyingType (StringIdType::Script)] = & *m_scriptStringId;
27992802 }
28002803 else
28012804 {
28022805 m_scriptStringId.reset ();
2803- m_stringIds[AsUnderlyingType (StringIdType::Script)] = {} ;
2806+ m_stringIds[AsUnderlyingType (StringIdType::Script)] = nullptr ;
28042807 }
28052808}
28062809
0 commit comments