diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp index 510de843b..03d6293ea 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel_teleport.cpp @@ -11,6 +11,16 @@ #define GOSSIP_SENDER_ICC_PORT 631 +enum ICCTeleportOption +{ + ICC_TELEPORT_GOSSIP_OPT_LIGHTS_HAMMER = 0, + ICC_TELEPORT_GOSSIP_OPT_ORATORY_OF_THE_DAMNED = 1, + ICC_TELEPORT_GOSSIP_OPT_RAMPART_OF_SKULLS = 3, + ICC_TELEPORT_GOSSIP_OPT_DEATHBRINGERS_RISE = 4, + ICC_TELEPORT_GOSSIP_OPT_UPPER_SPIRE = 5, + ICC_TELEPORT_GOSSIP_OPT_SINDRAGOSAS_LAIR = 6 +}; + class icecrown_citadel_teleport : public GameObjectScript { public: @@ -18,21 +28,41 @@ class icecrown_citadel_teleport : public GameObjectScript bool OnGossipHello(Player* player, GameObject* go) override { + uint32 gossipMenuId = go->GetGOInfo()->GetGossipMenuId(); + if (go->GetEntry() != GO_SCOURGE_TRANSPORTER_FIRST) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to Light's Hammer.", GOSSIP_SENDER_ICC_PORT, LIGHT_S_HAMMER_TELEPORT); // M_PI + M_PI/6 + AddGossipItemFor( + player, gossipMenuId, ICC_TELEPORT_GOSSIP_OPT_LIGHTS_HAMMER, + GOSSIP_SENDER_ICC_PORT, LIGHT_S_HAMMER_TELEPORT + ); // M_PI + M_PI/6 if (InstanceScript* instance = go->GetInstanceScript()) { if (instance->GetBossState(DATA_LORD_MARROWGAR) == DONE && go->GetEntry() != 202245) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to the Oratory of the Damned.", GOSSIP_SENDER_ICC_PORT, ORATORY_OF_THE_DAMNED_TELEPORT); // M_PI + M_PI/6 + AddGossipItemFor( + player, gossipMenuId, ICC_TELEPORT_GOSSIP_OPT_ORATORY_OF_THE_DAMNED, + GOSSIP_SENDER_ICC_PORT, ORATORY_OF_THE_DAMNED_TELEPORT + ); // M_PI + M_PI/6 if (instance->GetBossState(DATA_LADY_DEATHWHISPER) == DONE && go->GetEntry() != 202243) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to the Rampart of Skulls.", GOSSIP_SENDER_ICC_PORT, RAMPART_OF_SKULLS_TELEPORT); // M_PI/6 + AddGossipItemFor( + player, gossipMenuId, ICC_TELEPORT_GOSSIP_OPT_RAMPART_OF_SKULLS, + GOSSIP_SENDER_ICC_PORT, RAMPART_OF_SKULLS_TELEPORT + ); // M_PI/6 if (instance->GetBossState(DATA_ICECROWN_GUNSHIP_BATTLE) == DONE && go->GetEntry() != 202244) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to the Deathbringer's Rise.", GOSSIP_SENDER_ICC_PORT, DEATHBRINGER_S_RISE_TELEPORT); // M_PI/6 + AddGossipItemFor( + player, gossipMenuId, ICC_TELEPORT_GOSSIP_OPT_DEATHBRINGERS_RISE, + GOSSIP_SENDER_ICC_PORT, DEATHBRINGER_S_RISE_TELEPORT + ); // M_PI/6 if (instance->GetData(DATA_COLDFLAME_JETS) == DONE && go->GetEntry() != 202235) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to the Upper Spire.", GOSSIP_SENDER_ICC_PORT, UPPER_SPIRE_TELEPORT); // M_PI/6 + AddGossipItemFor( + player, gossipMenuId, ICC_TELEPORT_GOSSIP_OPT_UPPER_SPIRE, + GOSSIP_SENDER_ICC_PORT, UPPER_SPIRE_TELEPORT + ); // M_PI/6 if (instance->GetBossState(DATA_VALITHRIA_DREAMWALKER) == DONE && instance->GetBossState(DATA_SINDRAGOSA_GAUNTLET) == DONE && go->GetEntry() != 202246) - AddGossipItemFor(player, GOSSIP_ICON_CHAT, "Teleport to Sindragosa's Lair", GOSSIP_SENDER_ICC_PORT, SINDRAGOSA_S_LAIR_TELEPORT); // M_PI*3/2 + M_PI/6 + AddGossipItemFor( + player, gossipMenuId, ICC_TELEPORT_GOSSIP_OPT_SINDRAGOSAS_LAIR, + GOSSIP_SENDER_ICC_PORT, SINDRAGOSA_S_LAIR_TELEPORT + ); // M_PI*3/2 + M_PI/6 } SendGossipMenuFor(player, player->GetGossipTextId(go), go->GetGUID());