summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/net')
-rw-r--r--src/net/ea/gui/partytab.cpp251
-rw-r--r--src/net/ea/gui/partytab.h69
-rw-r--r--src/net/ea/partyhandler.cpp13
-rw-r--r--src/net/ea/partyhandler.h6
-rw-r--r--src/net/eathena/generalhandler.cpp4
-rw-r--r--src/net/eathena/partyhandler.cpp20
-rw-r--r--src/net/tmwa/generalhandler.cpp4
-rw-r--r--src/net/tmwa/partyhandler.cpp14
8 files changed, 31 insertions, 350 deletions
diff --git a/src/net/ea/gui/partytab.cpp b/src/net/ea/gui/partytab.cpp
deleted file mode 100644
index 183863f25..000000000
--- a/src/net/ea/gui/partytab.cpp
+++ /dev/null
@@ -1,251 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2008-2009 The Mana World Development Team
- * Copyright (C) 2009-2010 The Mana Developers
- * Copyright (C) 2011-2014 The ManaPlus Developers
- *
- * This file is part of The ManaPlus Client.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "net/ea/gui/partytab.h"
-
-#include "chatlogger.h"
-#include "configuration.h"
-#include "party.h"
-#include "soundconsts.h"
-#include "soundmanager.h"
-
-#include "being/localplayer.h"
-
-#include "net/partyhandler.h"
-#include "net/serverfeatures.h"
-
-#include "gui/windows/chatwindow.h"
-
-#include "utils/booleanoptions.h"
-
-#include "debug.h"
-
-namespace Ea
-{
-
-PartyTab::PartyTab(const Widget2 *const widget) :
- // TRANSLATORS: party chat tab name
- ChatTab(widget, _("Party"), "")
-{
- setTabColor(&getThemeColor(Theme::PARTY_CHAT_TAB),
- &getThemeColor(Theme::PARTY_CHAT_TAB_OUTLINE));
- setHighlightedTabColor(&getThemeColor(Theme::PARTY_CHAT_TAB_HIGHLIGHTED),
- &getThemeColor(Theme::PARTY_CHAT_TAB_HIGHLIGHTED_OUTLINE));
- setSelectedTabColor(&getThemeColor(Theme::PARTY_CHAT_TAB_SELECTED),
- &getThemeColor(Theme::PARTY_CHAT_TAB_SELECTED_OUTLINE));
-
- mShowOnline = config.getBoolValue("showPartyOnline");
- config.addListener("showPartyOnline", this);
-}
-
-PartyTab::~PartyTab()
-{
- config.removeListeners(this);
- CHECKLISTENERS
-}
-
-void PartyTab::handleInput(const std::string &msg)
-{
- partyHandler->chat(ChatWindow::doReplace(msg));
-}
-
-bool PartyTab::handleCommand(const std::string &restrict type,
- const std::string &restrict args)
-{
- if (type == "create" || type == "new")
- {
- if (args.empty())
- {
- // TRANSLATORS: chat error message
- chatLog(_("Party name is missing."), ChatMsgType::BY_SERVER);
- }
- else
- {
- partyHandler->create(args);
- }
- }
- else if (type == "invite")
- {
- partyHandler->invite(args);
- }
- else if (type == "leave")
- {
- partyHandler->leave();
- }
- else if (type == "kick")
- {
- partyHandler->kick(args);
- }
- else if (type == "item")
- {
- if (args.empty())
- {
- switch (partyHandler->getShareItems())
- {
- case Net::PartyShare::YES:
- // TRANSLATORS: chat message
- chatLog(_("Item sharing enabled."),
- ChatMsgType::BY_SERVER);
- return true;
- case Net::PartyShare::NO:
- // TRANSLATORS: chat message
- chatLog(_("Item sharing disabled."),
- ChatMsgType::BY_SERVER);
- return true;
- case Net::PartyShare::NOT_POSSIBLE:
- // TRANSLATORS: chat message
- chatLog(_("Item sharing not possible."),
- ChatMsgType::BY_SERVER);
- return true;
- case Net::PartyShare::UNKNOWN:
- // TRANSLATORS: chat message
- chatLog(_("Item sharing unknown."),
- ChatMsgType::BY_SERVER);
- return true;
- default:
- break;
- }
- }
-
- const signed char opt = parseBoolean(args);
-
- switch (opt)
- {
- case 1:
- partyHandler->setShareItems(
- Net::PartyShare::YES);
- break;
- case 0:
- partyHandler->setShareItems(
- Net::PartyShare::NO);
- break;
- case -1:
- chatLog(strprintf(BOOLEAN_OPTIONS, "item"));
- break;
- default:
- break;
- }
- }
- else if (type == "exp")
- {
- if (args.empty())
- {
- switch (partyHandler->getShareExperience())
- {
- case Net::PartyShare::YES:
- // TRANSLATORS: chat message
- chatLog(_("Experience sharing enabled."),
- ChatMsgType::BY_SERVER);
- return true;
- case Net::PartyShare::NO:
- // TRANSLATORS: chat message
- chatLog(_("Experience sharing disabled."),
- ChatMsgType::BY_SERVER);
- return true;
- case Net::PartyShare::NOT_POSSIBLE:
- // TRANSLATORS: chat message
- chatLog(_("Experience sharing not possible."),
- ChatMsgType::BY_SERVER);
- return true;
- case Net::PartyShare::UNKNOWN:
- // TRANSLATORS: chat message
- chatLog(_("Experience sharing unknown."),
- ChatMsgType::BY_SERVER);
- return true;
- default:
- break;
- }
- }
-
- const signed char opt = parseBoolean(args);
-
- switch (opt)
- {
- case 1:
- partyHandler->setShareExperience(
- Net::PartyShare::YES);
- break;
- case 0:
- partyHandler->setShareExperience(
- Net::PartyShare::NO);
- break;
- case -1:
- chatLog(strprintf(BOOLEAN_OPTIONS, "exp"));
- break;
- default:
- break;
- }
- }
- else if (type == "setleader"
- && serverFeatures->haveChangePartyLeader())
- {
- partyHandler->changeLeader(args);
- }
- else
- {
- return false;
- }
-
- return true;
-}
-
-void PartyTab::getAutoCompleteList(StringVect &names) const
-{
- if (!localPlayer)
- return;
-
- const Party *const p = localPlayer->getParty();
-
- if (p)
- p->getNames(names);
-}
-
-void PartyTab::getAutoCompleteCommands(StringVect &names) const
-{
- names.push_back("/help");
- names.push_back("/invite ");
- names.push_back("/leave");
- names.push_back("/kick ");
- names.push_back("/item");
- names.push_back("/exp");
- if (serverFeatures->haveChangePartyLeader())
- names.push_back("/setleader ");
-}
-
-void PartyTab::saveToLogFile(const std::string &msg) const
-{
- if (chatLogger)
- chatLogger->log("#Party", msg);
-}
-
-void PartyTab::playNewMessageSound() const
-{
- soundManager.playGuiSound(SOUND_GUILD);
-}
-
-void PartyTab::optionChanged(const std::string &value)
-{
- if (value == "showPartyOnline")
- mShowOnline = config.getBoolValue("showPartyOnline");
-}
-
-} // namespace Ea
diff --git a/src/net/ea/gui/partytab.h b/src/net/ea/gui/partytab.h
deleted file mode 100644
index e627ab842..000000000
--- a/src/net/ea/gui/partytab.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * The ManaPlus Client
- * Copyright (C) 2009 The Mana World Development Team
- * Copyright (C) 2009-2010 The Mana Developers
- * Copyright (C) 2011-2014 The ManaPlus Developers
- *
- * This file is part of The ManaPlus Client.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef NET_EA_GUI_PARTYTAB_H
-#define NET_EA_GUI_PARTYTAB_H
-
-#include "gui/widgets/tabs/chat/chattab.h"
-#include "gui/widgets/tabs/chat/chattabtype.h"
-
-namespace Ea
-{
-
-/**
- * A tab for a party chat channel.
- */
-class PartyTab notfinal : public ChatTab,
- public ConfigListener
-{
- public:
- explicit PartyTab(const Widget2 *const widget);
-
- A_DELETE_COPY(PartyTab)
-
- virtual ~PartyTab();
-
- bool handleCommand(const std::string &restrict type,
- const std::string &restrict args) override final;
-
- int getType() const override final A_WARN_UNUSED
- { return ChatTabType::PARTY; }
-
- void saveToLogFile(const std::string &msg) const override final;
-
- void playNewMessageSound() const override final;
-
- void optionChanged(const std::string &value);
-
- protected:
- void handleInput(const std::string &msg) override final;
-
- void getAutoCompleteList(StringVect&) const override final;
-
- void getAutoCompleteCommands(StringVect &names) const override final;
-};
-
-extern PartyTab *partyTab;
-
-} // namespace Ea
-
-#endif // NET_EA_GUI_PARTYTAB_H
diff --git a/src/net/ea/partyhandler.cpp b/src/net/ea/partyhandler.cpp
index 0258bd2c6..bc72a0043 100644
--- a/src/net/ea/partyhandler.cpp
+++ b/src/net/ea/partyhandler.cpp
@@ -33,7 +33,7 @@
#include "net/messagein.h"
-#include "net/ea/gui/partytab.h"
+#include "gui/widgets/tabs/chat/partytab.h"
#include "utils/delete2.h"
@@ -41,10 +41,11 @@
#include "debug.h"
+PartyTab *partyTab = nullptr;
+
namespace Ea
{
-PartyTab *partyTab = nullptr;
Party *taParty = nullptr;
PartyHandler::PartyHandler() :
@@ -168,7 +169,7 @@ void PartyHandler::processPartyMove(Net::MessageIn &msg) const
m->setY(msg.readInt16()); // y
const bool online = msg.readUInt8() != 0;
if (m->getOnline() != online)
- Ea::partyTab->showOnline(m->getName(), online);
+ partyTab->showOnline(m->getName(), online);
m->setOnline(online); // online (if 0)
msg.readString(24); // party
msg.readString(24); // nick
@@ -225,7 +226,7 @@ void PartyHandler::processPartyLeave(Net::MessageIn &msg) const
Ea::taParty->clearMembers();
}
- delete2(Ea::partyTab)
+ delete2(partyTab)
if (socialWindow && Ea::taParty)
socialWindow->removeTab(Ea::taParty);
@@ -318,9 +319,9 @@ ChatTab *PartyHandler::getTab() const
void PartyHandler::createTab() const
{
- Ea::partyTab = new Ea::PartyTab(chatWindow);
+ partyTab = new PartyTab(chatWindow);
if (config.getBoolValue("showChatHistory"))
- Ea::partyTab->loadFromLogFile("#Party");
+ partyTab->loadFromLogFile("#Party");
}
} // namespace Ea
diff --git a/src/net/ea/partyhandler.h b/src/net/ea/partyhandler.h
index 82db2179b..b595891c4 100644
--- a/src/net/ea/partyhandler.h
+++ b/src/net/ea/partyhandler.h
@@ -25,6 +25,7 @@
#include "net/partyhandler.h"
class Party;
+class PartyTab;
namespace Net
{
@@ -33,8 +34,6 @@ namespace Net
namespace Ea
{
-class PartyTab;
-
class PartyHandler notfinal : public Net::PartyHandler
{
public:
@@ -82,9 +81,10 @@ class PartyHandler notfinal : public Net::PartyHandler
Net::PartyShare::Type mShareItems;
};
-extern PartyTab *partyTab;
extern Party *taParty;
} // namespace Ea
+extern PartyTab *partyTab;
+
#endif // NET_EA_PARTYHANDLER_H
diff --git a/src/net/eathena/generalhandler.cpp b/src/net/eathena/generalhandler.cpp
index 25a036bb4..80277701b 100644
--- a/src/net/eathena/generalhandler.cpp
+++ b/src/net/eathena/generalhandler.cpp
@@ -36,7 +36,7 @@
#include "net/ea/guildhandler.h"
#include "gui/widgets/tabs/chat/guildtab.h"
-#include "net/ea/gui/partytab.h"
+#include "gui/widgets/tabs/chat/partytab.h"
#include "net/eathena/adminhandler.h"
#include "net/eathena/auctionhandler.h"
@@ -380,7 +380,7 @@ void GeneralHandler::gameEnded() const
}
delete2(guildTab);
- delete2(Ea::partyTab);
+ delete2(partyTab);
}
} // namespace EAthena
diff --git a/src/net/eathena/partyhandler.cpp b/src/net/eathena/partyhandler.cpp
index d63aa69cc..030267aa8 100644
--- a/src/net/eathena/partyhandler.cpp
+++ b/src/net/eathena/partyhandler.cpp
@@ -30,7 +30,7 @@
#include "gui/windows/chatwindow.h"
#include "gui/windows/socialwindow.h"
-#include "net/ea/gui/partytab.h"
+#include "gui/widgets/tabs/chat/partytab.h"
#include "net/eathena/messageout.h"
#include "net/eathena/protocol.h"
@@ -243,8 +243,8 @@ void PartyHandler::processPartyMemberInfo(Net::MessageIn &msg)
PartyMember *const member = Ea::taParty->addMember(id, nick);
if (member)
{
- if (Ea::partyTab && member->getOnline() != online)
- Ea::partyTab->showOnline(nick, online);
+ if (partyTab && member->getOnline() != online)
+ partyTab->showOnline(nick, online);
member->setLeader(leader);
member->setOnline(online);
member->setMap(map);
@@ -255,7 +255,7 @@ void PartyHandler::processPartyMemberInfo(Net::MessageIn &msg)
void PartyHandler::processPartySettings(Net::MessageIn &msg)
{
- if (!Ea::partyTab)
+ if (!partyTab)
{
if (!chatWindow)
return;
@@ -279,7 +279,7 @@ void PartyHandler::processPartyInfo(Net::MessageIn &msg) const
logger->log1("error: party empty in SMSG_PARTY_INFO");
Ea::taParty = Party::getParty(1);
}
- if (!Ea::partyTab)
+ if (!partyTab)
createTab();
if (Ea::taParty)
@@ -340,14 +340,14 @@ void PartyHandler::processPartyInfo(Net::MessageIn &msg) const
PartyMember *const member = Ea::taParty->addMember(id, nick);
if (member)
{
- if (!joined && Ea::partyTab)
+ if (!joined && partyTab)
{
if (!names.empty() && ((onlineNames.find(nick)
== onlineNames.end() && online)
|| (onlineNames.find(nick) != onlineNames.end()
&& !online)))
{
- Ea::partyTab->showOnline(nick, online);
+ partyTab->showOnline(nick, online);
}
member->setLeader(leader);
@@ -389,12 +389,12 @@ void PartyHandler::processPartyMessage(Net::MessageIn &msg) const
if (pos != std::string::npos)
chatMsg.erase(0, pos + 3);
- if (Ea::taParty && Ea::partyTab)
+ if (Ea::taParty && partyTab)
{
const PartyMember *const member = Ea::taParty->getMember(id);
if (member)
{
- Ea::partyTab->chatLog(member->getName(), chatMsg);
+ partyTab->chatLog(member->getName(), chatMsg);
}
else
{
@@ -406,7 +406,7 @@ void PartyHandler::processPartyMessage(Net::MessageIn &msg) const
void PartyHandler::processPartyInviteResponse(Net::MessageIn &msg) const
{
- if (!Ea::partyTab)
+ if (!partyTab)
return;
const std::string nick = msg.readString(24, "nick");
diff --git a/src/net/tmwa/generalhandler.cpp b/src/net/tmwa/generalhandler.cpp
index fb64617a0..c37fc86a0 100644
--- a/src/net/tmwa/generalhandler.cpp
+++ b/src/net/tmwa/generalhandler.cpp
@@ -36,7 +36,7 @@
#include "net/ea/guildhandler.h"
#include "gui/widgets/tabs/chat/guildtab.h"
-#include "net/ea/gui/partytab.h"
+#include "gui/widgets/tabs/chat/partytab.h"
#include "net/tmwa/adminhandler.h"
#include "net/tmwa/auctionhandler.h"
@@ -352,7 +352,7 @@ void GeneralHandler::gameEnded() const
}
delete2(guildTab);
- delete2(Ea::partyTab);
+ delete2(partyTab);
}
} // namespace TmwAthena
diff --git a/src/net/tmwa/partyhandler.cpp b/src/net/tmwa/partyhandler.cpp
index 6d59cd0ce..e2b0c1893 100644
--- a/src/net/tmwa/partyhandler.cpp
+++ b/src/net/tmwa/partyhandler.cpp
@@ -30,7 +30,7 @@
#include "gui/windows/chatwindow.h"
#include "gui/windows/socialwindow.h"
-#include "net/ea/gui/partytab.h"
+#include "gui/widgets/tabs/chat/partytab.h"
#include "net/tmwa/messageout.h"
#include "net/tmwa/protocol.h"
@@ -204,7 +204,7 @@ void PartyHandler::setShareItems(const Net::PartyShare::Type share) const
void PartyHandler::processPartySettings(Net::MessageIn &msg)
{
- if (!Ea::partyTab)
+ if (!partyTab)
{
if (!chatWindow)
return;
@@ -286,14 +286,14 @@ void PartyHandler::processPartyInfo(Net::MessageIn &msg) const
PartyMember *const member = Ea::taParty->addMember(id, nick);
if (member)
{
- if (!joined && Ea::partyTab)
+ if (!joined && partyTab)
{
if (!names.empty() && ((onlineNames.find(nick)
== onlineNames.end() && online)
|| (onlineNames.find(nick) != onlineNames.end()
&& !online)))
{
- Ea::partyTab->showOnline(nick, online);
+ partyTab->showOnline(nick, online);
}
member->setLeader(leader);
@@ -331,12 +331,12 @@ void PartyHandler::processPartyMessage(Net::MessageIn &msg) const
const int id = msg.readInt32();
const std::string chatMsg = msg.readString(msgLength);
- if (Ea::taParty && Ea::partyTab)
+ if (Ea::taParty && partyTab)
{
const PartyMember *const member = Ea::taParty->getMember(id);
if (member)
{
- Ea::partyTab->chatLog(member->getName(), chatMsg);
+ partyTab->chatLog(member->getName(), chatMsg);
}
else
{
@@ -348,7 +348,7 @@ void PartyHandler::processPartyMessage(Net::MessageIn &msg) const
void PartyHandler::processPartyInviteResponse(Net::MessageIn &msg) const
{
- if (!Ea::partyTab)
+ if (!partyTab)
return;
const std::string nick = msg.readString(24);