diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 899465bf0..89f9e5e49 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -18907,9 +18907,7 @@ bool Player::ActivateTaxiPathTo(std::vector const& nodes, Creature* npc // not let cheating with start flight in time of logout process || if casting not finished || while in combat || if not use Spell's with EffectSendTaxi if (GetSession()->isLogingOut() || isInCombat()) { - WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); - data << uint32(ERR_TAXIPLAYERBUSY); - GetSession()->SendPacket(&data); + GetSession()->SendActivateTaxiReply(ERR_TAXIPLAYERBUSY); return false; } @@ -18922,26 +18920,20 @@ bool Player::ActivateTaxiPathTo(std::vector const& nodes, Creature* npc // not let cheating with start flight mounted if (IsMounted()) { - WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); - data << uint32(ERR_TAXIPLAYERALREADYMOUNTED); - GetSession()->SendPacket(&data); + GetSession()->SendActivateTaxiReply(ERR_TAXIPLAYERALREADYMOUNTED); return false; } if (IsInDisallowedMountForm()) { - WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); - data << uint32(ERR_TAXIPLAYERSHAPESHIFTED); - GetSession()->SendPacket(&data); + GetSession()->SendActivateTaxiReply(ERR_TAXIPLAYERSHAPESHIFTED); return false; } // not let cheating with start flight in time of logout process || if casting not finished || while in combat || if not use Spell's with EffectSendTaxi if (IsNonMeleeSpellCasted(false)) { - WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); - data << uint32(ERR_TAXIPLAYERBUSY); - GetSession()->SendPacket(&data); + GetSession()->SendActivateTaxiReply(ERR_TAXIPLAYERBUSY); return false; } } @@ -18970,9 +18962,7 @@ bool Player::ActivateTaxiPathTo(std::vector const& nodes, Creature* npc TaxiNodesEntry const* node = sTaxiNodesStore.LookupEntry(sourcenode); if (!node) { - WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); - data << uint32(ERR_TAXINOSUCHPATH); - GetSession()->SendPacket(&data); + GetSession()->SendActivateTaxiReply(ERR_TAXINOSUCHPATH); return false; } @@ -18985,18 +18975,14 @@ bool Player::ActivateTaxiPathTo(std::vector const& nodes, Creature* npc (node->z - GetPositionZ()) * (node->z - GetPositionZ()) > (2 * INTERACTION_DISTANCE) * (2 * INTERACTION_DISTANCE) * (2 * INTERACTION_DISTANCE)) { - WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); - data << uint32(ERR_TAXITOOFARAWAY); - GetSession()->SendPacket(&data); + GetSession()->SendActivateTaxiReply(ERR_TAXITOOFARAWAY); return false; } } // node must have pos if taxi master case (npc != NULL) else if (npc) { - WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); - data << uint32(ERR_TAXIUNSPECIFIEDSERVERERROR); - GetSession()->SendPacket(&data); + GetSession()->SendActivateTaxiReply(ERR_TAXIUNSPECIFIEDSERVERERROR); return false; } @@ -19050,9 +19036,8 @@ bool Player::ActivateTaxiPathTo(std::vector const& nodes, Creature* npc // in spell case allow 0 model if ((mount_display_id == 0 && spellid == 0) || sourcepath == 0) { - WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); - data << uint32(ERR_TAXIUNSPECIFIEDSERVERERROR); - GetSession()->SendPacket(&data); + GetSession()->SendActivateTaxiReply(ERR_TAXIUNSPECIFIEDSERVERERROR); + m_taxi.ClearTaxiDestinations(); return false; } @@ -19064,9 +19049,8 @@ bool Player::ActivateTaxiPathTo(std::vector const& nodes, Creature* npc if (money < totalcost) { - WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); - data << uint32(ERR_TAXINOTENOUGHMONEY); - GetSession()->SendPacket(&data); + GetSession()->SendActivateTaxiReply(ERR_TAXINOTENOUGHMONEY); + m_taxi.ClearTaxiDestinations(); return false; } @@ -19079,12 +19063,7 @@ bool Player::ActivateTaxiPathTo(std::vector const& nodes, Creature* npc // prevent stealth flight RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH); - WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); - data << uint32(ERR_TAXIOK); - GetSession()->SendPacket(&data); - - DEBUG_LOG("WORLD: Sent SMSG_ACTIVATETAXIREPLY"); - + GetSession()->SendActivateTaxiReply(ERR_TAXIOK); GetSession()->SendDoFlight(mount_display_id, sourcepath); return true; diff --git a/src/game/Player.h b/src/game/Player.h index fab2abf70..035b3b5e5 100644 --- a/src/game/Player.h +++ b/src/game/Player.h @@ -501,23 +501,6 @@ enum PlayerFieldByte2Flags PLAYER_FIELD_BYTE2_INVISIBILITY_GLOW = 0x40 }; -enum ActivateTaxiReplies -{ - ERR_TAXIOK = 0, - ERR_TAXIUNSPECIFIEDSERVERERROR = 1, - ERR_TAXINOSUCHPATH = 2, - ERR_TAXINOTENOUGHMONEY = 3, - ERR_TAXITOOFARAWAY = 4, - ERR_TAXINOVENDORNEARBY = 5, - ERR_TAXINOTVISITED = 6, - ERR_TAXIPLAYERBUSY = 7, - ERR_TAXIPLAYERALREADYMOUNTED = 8, - ERR_TAXIPLAYERSHAPESHIFTED = 9, - ERR_TAXIPLAYERMOVING = 10, - ERR_TAXISAMENODE = 11, - ERR_TAXINOTSTANDING = 12 -}; - enum MirrorTimerType { FATIGUE_TIMER = 0, diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h index e90c3e893..4f0a10b45 100644 --- a/src/game/SharedDefines.h +++ b/src/game/SharedDefines.h @@ -2283,8 +2283,8 @@ enum SkillType SKILL_SURVIVAL2 = 142, SKILL_RIDING_HORSE = 148, SKILL_RIDING_WOLF = 149, - SKILL_RIDING_RAM = 152, SKILL_RIDING_TIGER = 150, + SKILL_RIDING_RAM = 152, SKILL_SWIMING = 155, SKILL_2H_MACES = 160, SKILL_UNARMED = 162, @@ -2947,6 +2947,23 @@ enum WorldStateType WORLD_STATE_ADD = 1 }; +enum ActivateTaxiReply +{ + ERR_TAXIOK = 0, + ERR_TAXIUNSPECIFIEDSERVERERROR = 1, + ERR_TAXINOSUCHPATH = 2, + ERR_TAXINOTENOUGHMONEY = 3, + ERR_TAXITOOFARAWAY = 4, + ERR_TAXINOVENDORNEARBY = 5, + ERR_TAXINOTVISITED = 6, + ERR_TAXIPLAYERBUSY = 7, + ERR_TAXIPLAYERALREADYMOUNTED = 8, + ERR_TAXIPLAYERSHAPESHIFTED = 9, + ERR_TAXIPLAYERMOVING = 10, + ERR_TAXISAMENODE = 11, + ERR_TAXINOTSTANDING = 12 +}; + // we need to stick to 1 version or half of the stuff will work for someone // others will not and opposite // will only support WoW, WoW:TBC and WoW:WotLK 3.3.5a client build 12340... diff --git a/src/game/TaxiHandler.cpp b/src/game/TaxiHandler.cpp index daa9d5cb9..0796a7329 100644 --- a/src/game/TaxiHandler.cpp +++ b/src/game/TaxiHandler.cpp @@ -150,6 +150,15 @@ bool WorldSession::SendLearnNewTaxiNode(Creature* unit) return false; } +void WorldSession::SendActivateTaxiReply(ActivateTaxiReply reply) +{ + WorldPacket data(SMSG_ACTIVATETAXIREPLY, 4); + data << uint32(reply); + SendPacket(&data); + + DEBUG_LOG("WORLD: Sent SMSG_ACTIVATETAXIREPLY"); +} + void WorldSession::HandleActivateTaxiExpressOpcode(WorldPacket& recv_data) { DEBUG_LOG("WORLD: Received CMSG_ACTIVATETAXIEXPRESS"); diff --git a/src/game/WorldSession.h b/src/game/WorldSession.h index 0aa2c0e0d..35735f968 100644 --- a/src/game/WorldSession.h +++ b/src/game/WorldSession.h @@ -373,6 +373,7 @@ class MANGOS_DLL_SPEC WorldSession void SendTaxiMenu(Creature* unit); void SendDoFlight(uint32 mountDisplayId, uint32 path, uint32 pathNode = 0); bool SendLearnNewTaxiNode(Creature* unit); + void SendActivateTaxiReply(ActivateTaxiReply reply); // Guild/Arena Team void SendGuildCommandResult(uint32 typecmd, const std::string& str, uint32 cmdresult); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 8c32d7793..39a7c1037 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "12079" + #define REVISION_NR "12080" #endif // __REVISION_NR_H__