summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-08-27 20:52:52 +0300
committerAndrei Karas <akaras@inbox.ru>2011-08-27 20:52:52 +0300
commiteb8269b40570333ce6a2787dd55f5081c73c14a7 (patch)
treec188726062675b4dcda0f27d1b57019a6a532949 /src
parent4f0c828135c37a176d97927e7e51b14dc84a719c (diff)
downloadmanaplus-eb8269b40570333ce6a2787dd55f5081c73c14a7.tar.gz
manaplus-eb8269b40570333ce6a2787dd55f5081c73c14a7.tar.bz2
manaplus-eb8269b40570333ce6a2787dd55f5081c73c14a7.tar.xz
manaplus-eb8269b40570333ce6a2787dd55f5081c73c14a7.zip
Fix guild reload if change nick on same account.
Diffstat (limited to 'src')
-rw-r--r--src/game.cpp6
-rw-r--r--src/guildmanager.cpp18
-rw-r--r--src/guildmanager.h2
3 files changed, 26 insertions, 0 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 6a3a63bb6..8df48b775 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -178,7 +178,10 @@ static void initEngines()
channelManager = new ChannelManager;
effectManager = new EffectManager;
if (!guildManager)
+ {
guildManager = new GuildManager;
+ guildManager->init();
+ }
particleEngine = new Particle(NULL);
particleEngine->setupEngine();
@@ -334,6 +337,9 @@ static void destroyGuiWindows()
del_0(didYouKnowWindow);
Mana::Event::trigger(CHANNEL_GAME, Mana::Event(EVENT_GUIWINDOWSUNLOADED));
+
+ if (guildManager && guildManager->getEnableGuildBot())
+ guildManager->reload();
}
Game *Game::mInstance = 0;
diff --git a/src/guildmanager.cpp b/src/guildmanager.cpp
index c929e8598..22b9de5a1 100644
--- a/src/guildmanager.cpp
+++ b/src/guildmanager.cpp
@@ -68,6 +68,24 @@ void GuildManager::init()
mEnableGuildBot = val;
}
+void GuildManager::reload()
+{
+ mGotInfo = false;
+ mGotName = false;
+ mHavePower = false;
+ mRequest = false;
+ mTempList.clear();
+
+ if (socialWindow)
+ {
+ Guild *guild = Guild::getGuild(1);
+ if (guild)
+ socialWindow->removeTab(guild);
+ }
+ delete mTab;
+ mTab = 0;
+}
+
void GuildManager::send(std::string msg)
{
Net::getChatHandler()->privateMessage("guild", msg);
diff --git a/src/guildmanager.h b/src/guildmanager.h
index 88e1276eb..177cec12a 100644
--- a/src/guildmanager.h
+++ b/src/guildmanager.h
@@ -68,6 +68,8 @@ class GuildManager
void clear();
+ void reload();
+
bool havePower()
{ return mHavePower; }