mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-24 06:06:23 +00:00
feat(Core/Instance): InstanceScript: create Remove functions (#17702)
InstanceScript: create `Remove` helper functions
This commit is contained in:
@@ -56,26 +56,26 @@ void InstanceScript::SaveToDB()
|
||||
|
||||
void InstanceScript::OnCreatureCreate(Creature* creature)
|
||||
{
|
||||
AddObject(creature, true);
|
||||
AddMinion(creature, true);
|
||||
AddObject(creature);
|
||||
AddMinion(creature);
|
||||
}
|
||||
|
||||
void InstanceScript::OnCreatureRemove(Creature* creature)
|
||||
{
|
||||
AddObject(creature, false);
|
||||
AddMinion(creature, false);
|
||||
RemoveObject(creature);
|
||||
RemoveMinion(creature);
|
||||
}
|
||||
|
||||
void InstanceScript::OnGameObjectCreate(GameObject* go)
|
||||
{
|
||||
AddObject(go, true);
|
||||
AddDoor(go, true);
|
||||
AddObject(go);
|
||||
AddDoor(go);
|
||||
}
|
||||
|
||||
void InstanceScript::OnGameObjectRemove(GameObject* go)
|
||||
{
|
||||
AddObject(go, false);
|
||||
AddDoor(go, false);
|
||||
RemoveObject(go);
|
||||
RemoveObject(go);
|
||||
}
|
||||
|
||||
ObjectGuid InstanceScript::GetObjectGuid(uint32 type) const
|
||||
@@ -262,6 +262,11 @@ void InstanceScript::AddObject(Creature* obj, bool add)
|
||||
}
|
||||
}
|
||||
|
||||
void InstanceScript::RemoveObject(Creature* obj)
|
||||
{
|
||||
AddObject(obj, false);
|
||||
}
|
||||
|
||||
void InstanceScript::AddObject(GameObject* obj, bool add)
|
||||
{
|
||||
ObjectInfoMap::const_iterator j = _gameObjectInfo.find(obj->GetEntry());
|
||||
@@ -271,6 +276,11 @@ void InstanceScript::AddObject(GameObject* obj, bool add)
|
||||
}
|
||||
}
|
||||
|
||||
void InstanceScript::RemoveObject(GameObject* obj)
|
||||
{
|
||||
AddObject(obj, false);
|
||||
}
|
||||
|
||||
void InstanceScript::AddObject(WorldObject* obj, uint32 type, bool add)
|
||||
{
|
||||
if (add)
|
||||
@@ -287,6 +297,11 @@ void InstanceScript::AddObject(WorldObject* obj, uint32 type, bool add)
|
||||
}
|
||||
}
|
||||
|
||||
void InstanceScript::RemoveObject(WorldObject* obj, uint32 type)
|
||||
{
|
||||
AddObject(obj, type, false);
|
||||
}
|
||||
|
||||
void InstanceScript::AddDoor(GameObject* door, bool add)
|
||||
{
|
||||
DoorInfoMapBounds range = doors.equal_range(door->GetEntry());
|
||||
@@ -309,6 +324,11 @@ void InstanceScript::AddDoor(GameObject* door, bool add)
|
||||
UpdateDoorState(door);
|
||||
}
|
||||
|
||||
void InstanceScript::RemoveDoor(GameObject* door)
|
||||
{
|
||||
AddDoor(door, false);
|
||||
}
|
||||
|
||||
void InstanceScript::AddMinion(Creature* minion, bool add)
|
||||
{
|
||||
MinionInfoMap::iterator itr = minions.find(minion->GetEntry());
|
||||
@@ -321,6 +341,11 @@ void InstanceScript::AddMinion(Creature* minion, bool add)
|
||||
itr->second.bossInfo->minion.erase(minion);
|
||||
}
|
||||
|
||||
void InstanceScript::RemoveMinion(Creature* minion)
|
||||
{
|
||||
AddMinion(minion, false);
|
||||
}
|
||||
|
||||
bool InstanceScript::SetBossState(uint32 id, EncounterState state)
|
||||
{
|
||||
if (id < bosses.size())
|
||||
|
||||
@@ -275,12 +275,17 @@ protected:
|
||||
void LoadMinionData(MinionData const* data);
|
||||
void LoadObjectData(ObjectData const* creatureData, ObjectData const* gameObjectData);
|
||||
|
||||
void AddObject(Creature* obj, bool add);
|
||||
void AddObject(GameObject* obj, bool add);
|
||||
void AddObject(WorldObject* obj, uint32 type, bool add);
|
||||
void AddObject(Creature* obj, bool add = true);
|
||||
void RemoveObject(Creature* obj);
|
||||
void AddObject(GameObject* obj, bool add = true);
|
||||
void RemoveObject(GameObject* obj);
|
||||
void AddObject(WorldObject* obj, uint32 type, bool add = true);
|
||||
void RemoveObject(WorldObject* obj, uint32 type);
|
||||
|
||||
void AddDoor(GameObject* door, bool add);
|
||||
void AddMinion(Creature* minion, bool add);
|
||||
void AddDoor(GameObject* door, bool add = true);
|
||||
void RemoveDoor(GameObject* door);
|
||||
void AddMinion(Creature* minion, bool add = true);
|
||||
void RemoveMinion(Creature* minion);
|
||||
|
||||
void UpdateDoorState(GameObject* door);
|
||||
void UpdateMinionState(Creature* minion, EncounterState state);
|
||||
|
||||
Reference in New Issue
Block a user