summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/Makefile.am2
-rw-r--r--src/actions/actions.cpp34
-rw-r--r--src/actions/actions.h2
-rw-r--r--src/actions/commands.cpp36
-rw-r--r--src/actions/commands.h3
-rw-r--r--src/actions/pets.cpp133
-rw-r--r--src/actions/pets.h39
-rw-r--r--src/input/inputactionmap.h1
9 files changed, 177 insertions, 75 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index d9e314785..7fddb7a97 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -789,6 +789,8 @@ SET(SRCS
actions/commands.h
actions/move.cpp
actions/move.h
+ actions/pets.cpp
+ actions/pets.h
actions/statusbar.cpp
actions/statusbar.h
actions/tabs.cpp
diff --git a/src/Makefile.am b/src/Makefile.am
index 6ae632933..8a5388af1 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -911,6 +911,8 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \
actions/commands.h \
actions/move.cpp \
actions/move.h \
+ actions/pets.cpp \
+ actions/pets.h \
actions/statusbar.cpp \
actions/statusbar.h \
actions/tabs.cpp \
diff --git a/src/actions/actions.cpp b/src/actions/actions.cpp
index d43853790..6d54ec1bb 100644
--- a/src/actions/actions.cpp
+++ b/src/actions/actions.cpp
@@ -77,7 +77,6 @@
#include "net/ipc.h"
#include "net/mercenaryhandler.h"
#include "net/npchandler.h"
-#include "net/pethandler.h"
#include "net/playerhandler.h"
#include "net/uploadcharinfo.h"
#include "net/tradehandler.h"
@@ -288,22 +287,6 @@ impHandler(emote)
return false;
}
-impHandler(petEmote)
-{
- if (event.action >= InputAction::PET_EMOTE_1
- && event.action <= InputAction::PET_EMOTE_48)
- {
- const int emotion = event.action - InputAction::PET_EMOTE_1;
- if (emoteShortcut)
- petHandler->emote(emoteShortcut->getEmote(emotion), 0);
- if (Game::instance())
- Game::instance()->setValidSpeed();
- return true;
- }
-
- return false;
-}
-
impHandler(outfit)
{
if (inputManager.isActionActive(InputAction::WEAR_OUTFIT))
@@ -1401,23 +1384,6 @@ impHandler(uploadLog)
return true;
}
-impHandler(catchPet)
-{
- if (!localPlayer || !actorManager)
- return false;
-
- Being *target = nullptr;
- if (!event.args.empty())
- target = actorManager->findNearestByName(event.args);
- if (!target)
- target = localPlayer->getTarget();
- else
- localPlayer->setTarget(target);
- if (target)
- petHandler->catchPet(target);
- return true;
-}
-
impHandler0(mercenaryFire)
{
mercenaryHandler->fire();
diff --git a/src/actions/actions.h b/src/actions/actions.h
index 922d32d12..d726fbde1 100644
--- a/src/actions/actions.h
+++ b/src/actions/actions.h
@@ -30,7 +30,6 @@ struct InputEvent;
namespace Actions
{
decHandler(emote);
- decHandler(petEmote);
decHandler(outfit);
decHandler(mouseClick);
decHandler(ok);
@@ -94,7 +93,6 @@ namespace Actions
decHandler(uploadConfig);
decHandler(uploadServerConfig);
decHandler(uploadLog);
- decHandler(catchPet);
decHandler(mercenaryFire);
decHandler(useItem);
decHandler(useItemInv);
diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp
index d2155d54b..dab837172 100644
--- a/src/actions/commands.cpp
+++ b/src/actions/commands.cpp
@@ -47,7 +47,6 @@
#include "net/guildhandler.h"
#include "net/homunculushandler.h"
#include "net/partyhandler.h"
-#include "net/pethandler.h"
#include "net/serverfeatures.h"
#include "resources/iteminfo.h"
@@ -376,14 +375,6 @@ impHandler(commandEmote)
return false;
}
-impHandler(commandEmotePet)
-{
- // need use actual pet id
- petHandler->emote(static_cast<uint8_t>(
- atoi(event.args.c_str())), 0);
- return true;
-}
-
impHandler(awayMessage)
{
if (localPlayer)
@@ -733,23 +724,6 @@ impHandler(talkRaw)
return true;
}
-impHandler(talkPet)
-{
- std::string args = event.args;
- // in future probably need add channel detection
- if (!localPlayer->getPets().empty())
- {
- if (findCutFirst(args, "/me "))
- args = textToMe(args);
- chatHandler->talkPet(args, GENERAL_CHANNEL);
- }
- else
- {
- chatHandler->talk(args, GENERAL_CHANNEL);
- }
- return true;
-}
-
impHandler(gm)
{
chatHandler->talk("@wgm " + event.args, GENERAL_CHANNEL);
@@ -796,16 +770,6 @@ impHandler(serverUnIgnoreWhisper)
return true;
}
-impHandler(setPetName)
-{
- const std::string args = event.args;
- if (args.empty())
- return false;
-
- petHandler->setName(args);
- return true;
-}
-
impHandler(setHomunculusName)
{
const std::string args = event.args;
diff --git a/src/actions/commands.h b/src/actions/commands.h
index 245b514a2..6543295fd 100644
--- a/src/actions/commands.h
+++ b/src/actions/commands.h
@@ -44,7 +44,6 @@ namespace Actions
decHandler(setTarget);
decHandler(commandOutfit);
decHandler(commandEmote);
- decHandler(commandEmotePet);
decHandler(awayMessage);
decHandler(pseudoAway);
decHandler(follow);
@@ -71,13 +70,11 @@ namespace Actions
decHandler(enableAway);
decHandler(testParticle);
decHandler(talkRaw);
- decHandler(talkPet);
decHandler(gm);
decHandler(hack);
decHandler(debugSpawn);
decHandler(serverIgnoreWhisper);
decHandler(serverUnIgnoreWhisper);
- decHandler(setPetName);
decHandler(setHomunculusName);
decHandler(fireHomunculus);
decHandler(leaveParty);
diff --git a/src/actions/pets.cpp b/src/actions/pets.cpp
new file mode 100644
index 000000000..30cfc9613
--- /dev/null
+++ b/src/actions/pets.cpp
@@ -0,0 +1,133 @@
+/*
+ * The ManaPlus Client
+ * Copyright (C) 2012-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 "actions/pets.h"
+
+#include "actormanager.h"
+#include "configuration.h"
+#include "game.h"
+#include "emoteshortcut.h"
+#include "inventory.h"
+#include "item.h"
+#include "party.h"
+
+#include "actions/actiondef.h"
+
+#include "being/localplayer.h"
+#include "being/playerinfo.h"
+#include "being/playerrelations.h"
+
+#include "gui/chatconsts.h"
+#include "gui/viewport.h"
+
+#include "gui/windows/chatwindow.h"
+#include "gui/windows/socialwindow.h"
+#include "gui/windows/outfitwindow.h"
+
+#include "gui/widgets/tabs/chat/whispertab.h"
+
+#include "net/adminhandler.h"
+#include "net/chathandler.h"
+#include "net/guildhandler.h"
+#include "net/homunculushandler.h"
+#include "net/partyhandler.h"
+#include "net/pethandler.h"
+#include "net/serverfeatures.h"
+
+#include "resources/iteminfo.h"
+
+#include "utils/chatutils.h"
+#include "utils/gettext.h"
+#include "utils/process.h"
+
+#include "debug.h"
+
+namespace Actions
+{
+
+impHandler(commandEmotePet)
+{
+ // need use actual pet id
+ petHandler->emote(static_cast<uint8_t>(
+ atoi(event.args.c_str())), 0);
+ return true;
+}
+
+impHandler(talkPet)
+{
+ std::string args = event.args;
+ // in future probably need add channel detection
+ if (!localPlayer->getPets().empty())
+ {
+ if (findCutFirst(args, "/me "))
+ args = textToMe(args);
+ chatHandler->talkPet(args, GENERAL_CHANNEL);
+ }
+ else
+ {
+ chatHandler->talk(args, GENERAL_CHANNEL);
+ }
+ return true;
+}
+
+impHandler(setPetName)
+{
+ const std::string args = event.args;
+ if (args.empty())
+ return false;
+
+ petHandler->setName(args);
+ return true;
+}
+
+impHandler(petEmote)
+{
+ if (event.action >= InputAction::PET_EMOTE_1
+ && event.action <= InputAction::PET_EMOTE_48)
+ {
+ const int emotion = event.action - InputAction::PET_EMOTE_1;
+ if (emoteShortcut)
+ petHandler->emote(emoteShortcut->getEmote(emotion), 0);
+ if (Game::instance())
+ Game::instance()->setValidSpeed();
+ return true;
+ }
+
+ return false;
+}
+
+impHandler(catchPet)
+{
+ if (!localPlayer || !actorManager)
+ return false;
+
+ Being *target = nullptr;
+ if (!event.args.empty())
+ target = actorManager->findNearestByName(event.args);
+ if (!target)
+ target = localPlayer->getTarget();
+ else
+ localPlayer->setTarget(target);
+ if (target)
+ petHandler->catchPet(target);
+ return true;
+}
+
+} // namespace Actions
diff --git a/src/actions/pets.h b/src/actions/pets.h
new file mode 100644
index 000000000..e0521b546
--- /dev/null
+++ b/src/actions/pets.h
@@ -0,0 +1,39 @@
+/*
+ * The ManaPlus Client
+ * 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 ACTIONS_PETS_H
+#define ACTIONS_PETS_H
+
+#define decHandler(name) bool name(InputEvent &event)
+
+struct InputEvent;
+
+namespace Actions
+{
+ decHandler(commandEmotePet);
+ decHandler(talkPet);
+ decHandler(setPetName);
+ decHandler(petEmote);
+ decHandler(catchPet);
+} // namespace Actions
+
+#undef decHandler
+
+#endif // ACTIONS_PETS_H
diff --git a/src/input/inputactionmap.h b/src/input/inputactionmap.h
index 6d09c4e6f..4c1c6d986 100644
--- a/src/input/inputactionmap.h
+++ b/src/input/inputactionmap.h
@@ -29,6 +29,7 @@
#include "actions/chat.h"
#include "actions/commands.h"
#include "actions/move.h"
+#include "actions/pets.h"
#include "actions/statusbar.h"
#include "actions/tabs.h"
#include "actions/target.h"