From 72b4c83073467998a5c036c4d50b5b6031eda320 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 6 Sep 2017 02:15:05 +0300 Subject: Move manaplus game related files into progs/manaplus. --- src/progs/manaplus/actions/target.cpp | 90 +++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/progs/manaplus/actions/target.cpp (limited to 'src/progs/manaplus/actions/target.cpp') diff --git a/src/progs/manaplus/actions/target.cpp b/src/progs/manaplus/actions/target.cpp new file mode 100644 index 000000000..a72cbe502 --- /dev/null +++ b/src/progs/manaplus/actions/target.cpp @@ -0,0 +1,90 @@ +/* + * The ManaPlus Client + * Copyright (C) 2012-2017 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 . + */ + +#include "actions/target.h" + +#include "actions/actiondef.h" + +#include "being/localplayer.h" + +#include "gui/popups/popupmenu.h" + +#include "debug.h" + +namespace Actions +{ + +static bool setTarget(const ActorTypeT type, const AllowSort allowSort) +{ + if (localPlayer != nullptr) + return localPlayer->setNewTarget(type, allowSort) != nullptr; + return false; +} + +impHandler0(targetPlayer) +{ + return setTarget(ActorType::Player, AllowSort_true); +} + +impHandler0(targetMonster) +{ + return setTarget(ActorType::Monster, AllowSort_true); +} + +impHandler0(targetClosestMonster) +{ + return setTarget(ActorType::Monster, AllowSort_false); +} + +impHandler0(targetNPC) +{ + return setTarget(ActorType::Npc, AllowSort_true); +} + +impHandler0(targetMercenary) +{ + return setTarget(ActorType::Mercenary, AllowSort_true); +} + +impHandler0(targetSkillUnit) +{ + return setTarget(ActorType::SkillUnit, AllowSort_true); +} + +impHandler0(targetPet) +{ + return setTarget(ActorType::Pet, AllowSort_true); +} + +impHandler0(contextMenu) +{ + if (localPlayer == nullptr) + return false; + const Being *const target = localPlayer->getTarget(); + if (target == nullptr) + return true; + + popupMenu->showPopup(target->getPixelX(), + target->getPixelY(), + target); + return true; +} + +} // namespace Actions -- cgit v1.2.3-60-g2f50