summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/ea/guildhandler.cpp37
-rw-r--r--src/net/ea/guildhandler.h2
-rw-r--r--src/net/eathena/guildhandler.cpp42
-rw-r--r--src/net/eathena/guildhandler.h10
-rw-r--r--src/net/tmwa/guildhandler.cpp42
-rw-r--r--src/net/tmwa/guildhandler.h9
6 files changed, 100 insertions, 42 deletions
diff --git a/src/net/ea/guildhandler.cpp b/src/net/ea/guildhandler.cpp
index 598811fdd..3e43d6400 100644
--- a/src/net/ea/guildhandler.cpp
+++ b/src/net/ea/guildhandler.cpp
@@ -105,43 +105,6 @@ void GuildHandler::processGuildCreateResponse(Net::MessageIn &msg) const
}
}
-void GuildHandler::processGuildPositionInfo(Net::MessageIn &msg) const
-{
- const int guildId = msg.readInt32();
- const int emblem = msg.readInt32();
- const int posMode = msg.readInt32();
- msg.readInt32(); // Unused
- msg.readUInt8(); // Unused
- std::string guildName = msg.readString(24);
-
- Guild *const g = Guild::getGuild(static_cast<int16_t>(guildId));
- if (!g)
- return;
-
- g->setName(guildName);
- g->setEmblemId(emblem);
- if (!taGuild)
- taGuild = g;
- if (!guildTab && chatWindow)
- {
- guildTab = new GuildTab(chatWindow);
- if (config.getBoolValue("showChatHistory"))
- guildTab->loadFromLogFile("#Guild");
- if (localPlayer)
- localPlayer->addGuild(taGuild);
- memberList(guildId);
- }
-
- if (localPlayer)
- {
- localPlayer->setGuild(g);
- localPlayer->setGuildName(g->getName());
- }
-
- logger->log("Guild position info: %d %d %d %s\n", guildId,
- emblem, posMode, guildName.c_str());
-}
-
void GuildHandler::processGuildMemberLogin(Net::MessageIn &msg) const
{
const int accountId = msg.readInt32(); // Account ID
diff --git a/src/net/ea/guildhandler.h b/src/net/ea/guildhandler.h
index 48e5f325f..ed5453f7d 100644
--- a/src/net/ea/guildhandler.h
+++ b/src/net/ea/guildhandler.h
@@ -53,8 +53,6 @@ class GuildHandler notfinal : public Net::GuildHandler
virtual void processGuildCreateResponse(Net::MessageIn &msg) const;
- virtual void processGuildPositionInfo(Net::MessageIn &msg) const;
-
virtual void processGuildMemberLogin(Net::MessageIn &msg) const;
virtual void processGuildMasterOrMember(Net::MessageIn &msg) const;
diff --git a/src/net/eathena/guildhandler.cpp b/src/net/eathena/guildhandler.cpp
index 27d848e74..03c5a34ef 100644
--- a/src/net/eathena/guildhandler.cpp
+++ b/src/net/eathena/guildhandler.cpp
@@ -22,10 +22,15 @@
#include "net/eathena/guildhandler.h"
#include "actormanager.h"
+#include "configuration.h"
#include "being/localplayer.h"
#include "being/playerinfo.h"
+#include "gui/windows/chatwindow.h"
+
+#include "net/ea/gui/guildtab.h"
+
#include "net/eathena/messageout.h"
#include "net/eathena/protocol.h"
@@ -348,4 +353,41 @@ void GuildHandler::checkMaster() const
MessageOut msg(CMSG_GUILD_CHECK_MASTER);
}
+void GuildHandler::processGuildPositionInfo(Net::MessageIn &msg) const
+{
+ const int guildId = msg.readInt32();
+ const int emblem = msg.readInt32();
+ const int posMode = msg.readInt32();
+ msg.readInt32(); // Unused
+ msg.readUInt8(); // Unused
+ std::string guildName = msg.readString(24);
+
+ Guild *const g = Guild::getGuild(static_cast<int16_t>(guildId));
+ if (!g)
+ return;
+
+ g->setName(guildName);
+ g->setEmblemId(emblem);
+ if (!Ea::taGuild)
+ Ea::taGuild = g;
+ if (!Ea::guildTab && chatWindow)
+ {
+ Ea::guildTab = new Ea::GuildTab(chatWindow);
+ if (config.getBoolValue("showChatHistory"))
+ Ea::guildTab->loadFromLogFile("#Guild");
+ if (localPlayer)
+ localPlayer->addGuild(Ea::taGuild);
+ memberList(guildId);
+ }
+
+ if (localPlayer)
+ {
+ localPlayer->setGuild(g);
+ localPlayer->setGuildName(g->getName());
+ }
+
+ logger->log("Guild position info: %d %d %d %s\n", guildId,
+ emblem, posMode, guildName.c_str());
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/guildhandler.h b/src/net/eathena/guildhandler.h
index a32a398f5..c9beedc6b 100644
--- a/src/net/eathena/guildhandler.h
+++ b/src/net/eathena/guildhandler.h
@@ -75,10 +75,16 @@ class GuildHandler final : public Ea::GuildHandler, public MessageHandler
protected:
void processGuildUpdateCoords(Net::MessageIn &msg) const;
+
+ void processGuildPositionInfo(Net::MessageIn &msg) const;
};
- extern Ea::GuildTab *guildTab;
- extern Guild *taGuild;
+// extern Ea::GuildTab *guildTab;
} // namespace EAthena
+namespace Ea
+{
+ extern Guild *taGuild;
+}
+
#endif // NET_EATHENA_GUILDHANDLER_H
diff --git a/src/net/tmwa/guildhandler.cpp b/src/net/tmwa/guildhandler.cpp
index d6ee27680..9445a4760 100644
--- a/src/net/tmwa/guildhandler.cpp
+++ b/src/net/tmwa/guildhandler.cpp
@@ -22,12 +22,17 @@
#include "net/tmwa/guildhandler.h"
#include "actormanager.h"
+#include "configuration.h"
#include "being/localplayer.h"
#include "being/playerinfo.h"
+#include "gui/windows/chatwindow.h"
+
#include "net/serverfeatures.h"
+#include "net/ea/gui/guildtab.h"
+
#include "net/tmwa/messageout.h"
#include "net/tmwa/protocol.h"
@@ -335,4 +340,41 @@ void GuildHandler::checkMaster() const
MessageOut msg(CMSG_GUILD_CHECK_MASTER);
}
+void GuildHandler::processGuildPositionInfo(Net::MessageIn &msg) const
+{
+ const int guildId = msg.readInt32();
+ const int emblem = msg.readInt32();
+ const int posMode = msg.readInt32();
+ msg.readInt32(); // Unused
+ msg.readUInt8(); // Unused
+ std::string guildName = msg.readString(24);
+
+ Guild *const g = Guild::getGuild(static_cast<int16_t>(guildId));
+ if (!g)
+ return;
+
+ g->setName(guildName);
+ g->setEmblemId(emblem);
+ if (!Ea::taGuild)
+ Ea::taGuild = g;
+ if (!Ea::guildTab && chatWindow)
+ {
+ Ea::guildTab = new Ea::GuildTab(chatWindow);
+ if (config.getBoolValue("showChatHistory"))
+ Ea::guildTab->loadFromLogFile("#Guild");
+ if (localPlayer)
+ localPlayer->addGuild(Ea::taGuild);
+ memberList(guildId);
+ }
+
+ if (localPlayer)
+ {
+ localPlayer->setGuild(g);
+ localPlayer->setGuildName(g->getName());
+ }
+
+ logger->log("Guild position info: %d %d %d %s\n", guildId,
+ emblem, posMode, guildName.c_str());
+}
+
} // namespace TmwAthena
diff --git a/src/net/tmwa/guildhandler.h b/src/net/tmwa/guildhandler.h
index f1422c7a1..b92513919 100644
--- a/src/net/tmwa/guildhandler.h
+++ b/src/net/tmwa/guildhandler.h
@@ -72,10 +72,17 @@ class GuildHandler final : public Ea::GuildHandler, public MessageHandler
const override final;
void checkMaster() const;
+
+ protected:
+ void processGuildPositionInfo(Net::MessageIn &msg) const;
};
extern Ea::GuildTab *guildTab;
- extern Guild *taGuild;
} // namespace TmwAthena
+namespace Ea
+{
+ extern Guild *taGuild;
+}
+
#endif // NET_TMWA_GUILDHANDLER_H