diff options
author | Ovahlord <dreadkiller@gmx.de> | 2023-12-25 18:06:44 +0100 |
---|---|---|
committer | Ovahlord <dreadkiller@gmx.de> | 2023-12-25 18:06:44 +0100 |
commit | 4a61675191c91c7d09def0e612f2e11a646845b0 (patch) | |
tree | 86c6933982cd4ccddaf026dd12dd1e87da719b54 /src/server/scripts/Kalimdor | |
parent | 01b12160581c8006d9d0ae12183eb7cb176df707 (diff) |
Scripts/Halls of Origination: modernized creature accessing via data type
Diffstat (limited to 'src/server/scripts/Kalimdor')
4 files changed, 30 insertions, 50 deletions
diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp index 1d1d591aecc..5a27808e508 100644 --- a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp +++ b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp @@ -170,7 +170,7 @@ struct boss_anraphet : public BossAI instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); Talk(ANRAPHET_SAY_DEATH); - if (Creature* brann = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BRANN_0_GUID))) + if (Creature* brann = instance->GetCreature(DATA_BRANN_BRONZEBEARD)) brann->AI()->DoAction(ACTION_ANRAPHET_DIED); _JustDied(); @@ -289,7 +289,7 @@ struct npc_alpha_beam : public ScriptedAI void IsSummonedBy(WorldObject* /*summoner*/) override { - if (Creature* anraphet = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ANRAPHET_GUID))) + if (Creature* anraphet = _instance->GetCreature(BOSS_ANRAPHET)) anraphet->CastSpell(me, SPELL_ALPHA_BEAMS_BACK_CAST); } @@ -330,22 +330,22 @@ struct npc_brann_bronzebeard_anraphet : public CreatureAI { switch (action) { - case ACTION_ELEMENTAL_DIED: - { - uint32 dead = _instance->GetData(DATA_DEAD_ELEMENTALS); - Talk(BRANN_1_ELEMENTAL_DEAD + dead - 1); - if (dead == 4) + case ACTION_ELEMENTAL_DIED: { - _instance->DoCastSpellOnPlayers(SPELL_VAULT_OF_LIGHTS_CREDIT); - if (Creature* anraphet = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_ANRAPHET_GUID))) - anraphet->AI()->DoAction(ACTION_ANRAPHET_INTRO); + uint32 dead = _instance->GetData(DATA_DEAD_ELEMENTALS); + Talk(BRANN_1_ELEMENTAL_DEAD + dead - 1); + if (dead == 4) + { + _instance->DoCastSpellOnPlayers(SPELL_VAULT_OF_LIGHTS_CREDIT); + if (Creature* anraphet = _instance->GetCreature(BOSS_ANRAPHET)) + anraphet->AI()->DoAction(ACTION_ANRAPHET_INTRO); + } + break; } - break; - } - case ACTION_ANRAPHET_DIED: - me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); - events.ScheduleEvent(EVENT_BRANN_MOVE_INTRO, 1s); - break; + case ACTION_ANRAPHET_DIED: + me->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); + events.ScheduleEvent(EVENT_BRANN_MOVE_INTRO, 1s); + break; } } diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.cpp index 2d7fb010a88..af0022d1bf2 100644 --- a/src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.cpp +++ b/src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.cpp @@ -38,8 +38,8 @@ struct go_hoo_the_makers_lift_controller : public GameObjectAI ClearGossipMenuFor(player); player->PlayerTalkClass->SendCloseGossip(); - if (GameObject* elevator = _instance->GetGameObject(DATA_LIFT_OF_THE_MAKERS)) - elevator->SetGoState(GOState(GO_STATE_TRANSPORT_ACTIVE + gossipListId)); + if (GameObject* elevator = _instance->GetGameObject(DATA_LIFT_OF_THE_MAKERS)) + elevator->SetGoState(GOState(GO_STATE_TRANSPORT_ACTIVE + gossipListId)); return false; } diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.h b/src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.h index ac16cfddd65..b15bc99bb5e 100644 --- a/src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.h +++ b/src/server/scripts/Kalimdor/HallsOfOrigination/halls_of_origination.h @@ -44,16 +44,14 @@ enum HOOData BOSS_AIR_WARDEN, // Temple Guardian Anhuur - DATA_ANHUUR_GUID, DATA_ANHUUR_LEFT_BEACON, DATA_ANHUUR_RIGHT_BEACON, DATA_ANHUUR_BRIDGE, DATA_ANHUUR_DOOR, // Anraphet - DATA_BRANN_0_GUID, DATA_DEAD_ELEMENTALS, - DATA_ANRAPHET_GUID, + DATA_BRANN_BRONZEBEARD, // Events DATA_LIFT_OF_THE_MAKERS diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp index 34a14defa54..744fdc11ea7 100644 --- a/src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp +++ b/src/server/scripts/Kalimdor/HallsOfOrigination/instance_halls_of_origination.cpp @@ -40,6 +40,15 @@ DoorData const doorData[] = { 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } }; +ObjectData const creatureData[] = +{ + { NPC_TEMPLE_GUARDIAN_ANHUUR, BOSS_TEMPLE_GUARDIAN_ANHUUR }, + { NPC_ANRAPHET, BOSS_ANRAPHET }, + { NPC_EARTHRAGER_PTAH, BOSS_EARTHRAGER_PTAH }, + { NPC_BRANN_BRONZEBEARD_0, DATA_BRANN_BRONZEBEARD }, + { 0, 0 } //END +}; + ObjectData const gameObjectData[] = { { GO_LIFT_OF_THE_MAKERS, DATA_LIFT_OF_THE_MAKERS }, @@ -68,7 +77,7 @@ class instance_halls_of_origination : public InstanceMapScript { SetHeaders(DataHeader); SetBossNumber(EncounterCount); - LoadObjectData(nullptr, gameObjectData); + LoadObjectData(creatureData, gameObjectData); LoadDoorData(doorData); LoadDungeonEncounterData(encounters); _deadElementals = 0; @@ -137,24 +146,6 @@ class instance_halls_of_origination : public InstanceMapScript } } - void OnCreatureCreate(Creature* creature) override - { - InstanceScript::OnCreatureCreate(creature); - - switch (creature->GetEntry()) - { - case BOSS_TEMPLE_GUARDIAN_ANHUUR: - TempleGuardianAnhuurGUID = creature->GetGUID(); - break; - case NPC_BRANN_BRONZEBEARD_0: - BrannBronzebeardGUID = creature->GetGUID(); - break; - case BOSS_ANRAPHET: - AnraphetGUID = creature->GetGUID(); - break; - } - } - uint32 GetData(uint32 data) const override { switch (data) @@ -180,12 +171,6 @@ class instance_halls_of_origination : public InstanceMapScript return AnhuurLeftBeaconGUID; case DATA_ANHUUR_RIGHT_BEACON: return AnhuurRightBeaconGUID; - case DATA_ANHUUR_GUID: - return TempleGuardianAnhuurGUID; - case DATA_BRANN_0_GUID: - return BrannBronzebeardGUID; - case DATA_ANRAPHET_GUID: - return AnraphetGUID; } return InstanceScript::GetGuidData(type); @@ -221,7 +206,7 @@ class instance_halls_of_origination : public InstanceMapScript SetBossState(data, IN_PROGRESS); // Needs to be set to IN_PROGRESS or else the gameobjects state won't be updated SetBossState(data, DONE); IncreaseDeadElementals(1); - if (Creature* brann = instance->GetCreature(BrannBronzebeardGUID)) + if (Creature* brann = GetCreature(DATA_BRANN_BRONZEBEARD)) brann->AI()->DoAction(ACTION_ELEMENTAL_DIED); break; } @@ -234,13 +219,10 @@ class instance_halls_of_origination : public InstanceMapScript } protected: - ObjectGuid TempleGuardianAnhuurGUID; ObjectGuid AnhuursBridgeGUID; ObjectGuid AnhuursDoorGUID; ObjectGuid AnhuurRightBeaconGUID; ObjectGuid AnhuurLeftBeaconGUID; - ObjectGuid BrannBronzebeardGUID; - ObjectGuid AnraphetGUID; ObjectGuid AnraphetDoorGUID; ObjectGuid SunMirrorGUID; uint32 _deadElementals; |