summaryrefslogtreecommitdiffstats
path: root/src/game-server/trigger.cpp
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2012-03-17 21:11:41 +0100
committerThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2013-03-25 20:32:36 +0100
commit8ebd7ef2c200009e6d22b2cfaa3dd0d849155db6 (patch)
treee77633d3d4e2c2538a1044589b5cc927cfa4e125 /src/game-server/trigger.cpp
parent626e4c98353f2111ae21123756396fc845447b57 (diff)
downloadmanaserv-8ebd7ef2c200009e6d22b2cfaa3dd0d849155db6.tar.gz
manaserv-8ebd7ef2c200009e6d22b2cfaa3dd0d849155db6.tar.xz
manaserv-8ebd7ef2c200009e6d22b2cfaa3dd0d849155db6.zip
Changed SpawnArea and TriggerArea to components of Entity
Well, first visible change is that everything just gets longer to read. Reviewed-by: Yohann Ferreira
Diffstat (limited to 'src/game-server/trigger.cpp')
-rw-r--r--src/game-server/trigger.cpp83
1 files changed, 0 insertions, 83 deletions
diff --git a/src/game-server/trigger.cpp b/src/game-server/trigger.cpp
deleted file mode 100644
index 10e50ec..0000000
--- a/src/game-server/trigger.cpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * The Mana Server
- * Copyright (C) 2006-2010 The Mana World Development Team
- *
- * This file is part of The Mana Server.
- *
- * The Mana Server 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.
- *
- * The Mana Server 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 The Mana Server. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "game-server/trigger.h"
-
-#include "game-server/character.h"
-#include "game-server/mapcomposite.h"
-#include "game-server/actor.h"
-#include "game-server/state.h"
-
-#include "utils/logger.h"
-
-#include <cassert>
-
-void WarpAction::process(Actor *obj)
-{
- if (obj->getType() == OBJECT_CHARACTER)
- {
- GameState::enqueueWarp(static_cast< Character * >(obj), mMap, mX, mY);
- }
-}
-
-ScriptAction::ScriptAction(Script *script, Script::Ref callback, int arg) :
- mScript(script),
- mCallback(callback),
- mArg(arg)
-{
- assert(mCallback.isValid());
-}
-
-void ScriptAction::process(Actor *obj)
-{
- LOG_DEBUG("Script trigger area activated: "
- << "(" << obj << ", " << mArg << ")");
-
- mScript->prepare(mCallback);
- mScript->push(obj);
- mScript->push(mArg);
- mScript->execute(obj->getMap());
-}
-
-void TriggerArea::update()
-{
- std::set<Actor*> insideNow;
- for (BeingIterator i(getMap()->getInsideRectangleIterator(mZone)); i; ++i)
- {
- // Don't deal with unitialized actors.
- if (!(*i) || !(*i)->isPublicIdValid())
- continue;
-
- // The BeingIterator returns the mapZones in touch with the rectangle
- // area. On the other hand, the beings contained in the map zones
- // may not be within the rectangle area. Hence, this additional
- // contains() condition.
- if (mZone.contains((*i)->getPosition()))
- {
- insideNow.insert(*i);
-
- if (!mOnce || mInside.find(*i) == mInside.end())
- {
- mAction->process(*i);
- }
- }
- }
- mInside.swap(insideNow); //swapping is faster than assigning
-}