diff --git a/src/game/ChannelMgr.cpp b/src/game/ChannelMgr.cpp index e3b54d346..5d8279696 100644 --- a/src/game/ChannelMgr.cpp +++ b/src/game/ChannelMgr.cpp @@ -46,18 +46,27 @@ ChannelMgr::~ChannelMgr() Channel *ChannelMgr::GetJoinChannel(std::string name, uint32 channel_id) { - if (channels.find(name) == channels.end()) + std::wstring wname; + Utf8toWStr(name,wname); + wstrToLower(wname); + + if (channels.find(wname) == channels.end()) { Channel *nchan = new Channel(name,channel_id); - channels[name] = nchan; + channels[wname] = nchan; + return nchan; } - return channels[name]; + return channels[wname]; } Channel *ChannelMgr::GetChannel(std::string name, Player *p, bool pkt) { - ChannelMap::const_iterator i = channels.find(name); + std::wstring wname; + Utf8toWStr(name,wname); + wstrToLower(wname); + + ChannelMap::const_iterator i = channels.find(wname); if(i == channels.end()) { @@ -76,7 +85,11 @@ Channel *ChannelMgr::GetChannel(std::string name, Player *p, bool pkt) void ChannelMgr::LeftChannel(std::string name) { - ChannelMap::const_iterator i = channels.find(name); + std::wstring wname; + Utf8toWStr(name,wname); + wstrToLower(wname); + + ChannelMap::const_iterator i = channels.find(wname); if(i == channels.end()) return; @@ -85,7 +98,7 @@ void ChannelMgr::LeftChannel(std::string name) if(channel->GetNumPlayers() == 0 && !channel->IsConstant()) { - channels.erase(name); + channels.erase(wname); delete channel; } } diff --git a/src/game/ChannelMgr.h b/src/game/ChannelMgr.h index 27c3dca3f..9b2dcc5c6 100644 --- a/src/game/ChannelMgr.h +++ b/src/game/ChannelMgr.h @@ -28,7 +28,7 @@ class ChannelMgr { public: - typedef std::map ChannelMap; + typedef std::map ChannelMap; ChannelMgr() {} ~ChannelMgr(); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index d01396948..c687bc069 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 "8732" + #define REVISION_NR "8733" #endif // __REVISION_NR_H__