aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp19
-rw-r--r--src/server/game/Globals/ObjectMgr.h1
-rw-r--r--src/server/scripts/Commands/cs_tele.cpp2
3 files changed, 21 insertions, 1 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 86e6963b1de..d515a9c20e9 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -7808,6 +7808,25 @@ GameTele const* ObjectMgr::GetGameTele(const std::string& name) const
return alt;
}
+GameTele const* ObjectMgr::GetGameTeleExactName(const std::string& name) const
+{
+ // explicit name case
+ std::wstring wname;
+ if (!Utf8toWStr(name, wname))
+ return NULL;
+
+ // converting string that we try to find to lower case
+ wstrToLower(wname);
+
+ for (GameTeleContainer::const_iterator itr = _gameTeleStore.begin(); itr != _gameTeleStore.end(); ++itr)
+ {
+ if (itr->second.wnameLow == wname)
+ return &itr->second;
+ }
+
+ return NULL;
+}
+
bool ObjectMgr::AddGameTele(GameTele& tele)
{
// find max id
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 752cc3b56ab..e0b33b039cc 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -1161,6 +1161,7 @@ class ObjectMgr
return &itr->second;
}
GameTele const* GetGameTele(std::string const& name) const;
+ GameTele const* GetGameTeleExactName(std::string const& name) const;
GameTeleContainer const& GetGameTeleMap() const { return _gameTeleStore; }
bool AddGameTele(GameTele& data);
bool DeleteGameTele(std::string const& name);
diff --git a/src/server/scripts/Commands/cs_tele.cpp b/src/server/scripts/Commands/cs_tele.cpp
index 154da04db6a..ca9f4a59045 100644
--- a/src/server/scripts/Commands/cs_tele.cpp
+++ b/src/server/scripts/Commands/cs_tele.cpp
@@ -65,7 +65,7 @@ public:
std::string name = args;
- if (sObjectMgr->GetGameTele(name))
+ if (sObjectMgr->GetGameTeleExactName(name))
{
handler->SendSysMessage(LANG_COMMAND_TP_ALREADYEXIST);
handler->SetSentErrorMessage(true);