summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/partyhandler.cpp23
-rw-r--r--src/net/eathena/partyhandler.h2
2 files changed, 25 insertions, 0 deletions
diff --git a/src/net/eathena/partyhandler.cpp b/src/net/eathena/partyhandler.cpp
index 0cc927ab5..d4404340c 100644
--- a/src/net/eathena/partyhandler.cpp
+++ b/src/net/eathena/partyhandler.cpp
@@ -22,11 +22,16 @@
#include "net/eathena/partyhandler.h"
#include "actormanager.h"
+#include "configuration.h"
#include "notifymanager.h"
#include "party.h"
#include "being/localplayer.h"
+#include "gui/windows/chatwindow.h"
+
+#include "net/ea/gui/partytab.h"
+
#include "net/eathena/messageout.h"
#include "net/eathena/protocol.h"
@@ -248,4 +253,22 @@ void PartyHandler::processPartyMemberInfo(Net::MessageIn &msg)
}
}
+void PartyHandler::processPartySettings(Net::MessageIn &msg)
+{
+ if (!Ea::partyTab)
+ {
+ if (!chatWindow)
+ return;
+
+ Ea::partyTab = new Ea::PartyTab(chatWindow);
+ if (config.getBoolValue("showChatHistory"))
+ Ea::partyTab->loadFromLogFile("#Party");
+ }
+
+ // These seem to indicate the sharing mode for exp and items
+ const int16_t exp = msg.readInt16();
+ const int16_t item = msg.readInt16();
+ processPartySettingsContinue(exp, item);
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/partyhandler.h b/src/net/eathena/partyhandler.h
index d7655cba3..690949293 100644
--- a/src/net/eathena/partyhandler.h
+++ b/src/net/eathena/partyhandler.h
@@ -63,6 +63,8 @@ class PartyHandler final : public MessageHandler, public Ea::PartyHandler
void setShareItems(const Net::PartyShare::Type share)
const override final;
+ void processPartySettings(Net::MessageIn &msg);
+
protected:
void processPartyInvitationStats(Net::MessageIn &msg);