summaryrefslogtreecommitdiffstats
path: root/src/game-server/state.cpp
diff options
context:
space:
mode:
authorGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-07-07 18:06:29 +0000
committerGuillaume Melquiond <guillaume.melquiond@gmail.com>2007-07-07 18:06:29 +0000
commitd213cdea38ae5dda3c1cbdc6c85a2c5fe04e9399 (patch)
tree2ae7c7abd8fdedb2e6ec5610718834d9a92a467f /src/game-server/state.cpp
parent04e694b067a21dee8e13368c17d1815cc0624ce4 (diff)
downloadmanaserv-d213cdea38ae5dda3c1cbdc6c85a2c5fe04e9399.tar.gz
manaserv-d213cdea38ae5dda3c1cbdc6c85a2c5fe04e9399.tar.xz
manaserv-d213cdea38ae5dda3c1cbdc6c85a2c5fe04e9399.zip
Singleton managers do not need stateful classes. Changed them to namespace interfaces.
Diffstat (limited to 'src/game-server/state.cpp')
-rw-r--r--src/game-server/state.cpp31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/game-server/state.cpp b/src/game-server/state.cpp
index 3903d93..b1095f4 100644
--- a/src/game-server/state.cpp
+++ b/src/game-server/state.cpp
@@ -35,7 +35,17 @@
#include "net/messageout.hpp"
#include "utils/logger.h"
-void State::updateMap(MapComposite *map)
+typedef std::map< Object *, DelayedEvent > DelayedEvents;
+
+/**
+ * List of delayed events.
+ */
+static DelayedEvents delayedEvents;
+
+/**
+ * Updates object states on the map.
+ */
+static void updateMap(MapComposite *map)
{
// 1. update object status.
std::vector< Thing * > const &things = map->getEverything();
@@ -67,7 +77,7 @@ void State::updateMap(MapComposite *map)
if ((*i)->getUpdateFlags() & UPDATEFLAG_REMOVE)
{
DelayedEvent e = { EVENT_REMOVE};
- enqueueEvent((*i), e);
+ GameState::enqueueEvent((*i), e);
}
}
@@ -75,7 +85,10 @@ void State::updateMap(MapComposite *map)
map->update();
}
-void State::informPlayer(MapComposite *map, Character *p)
+/**
+ * Informs a player of what happened around the character.
+ */
+static void informPlayer(MapComposite *map, Character *p)
{
MessageOut moveMsg(GPMSG_BEINGS_MOVE);
MessageOut damageMsg(GPMSG_BEINGS_DAMAGE);
@@ -273,14 +286,14 @@ void State::informPlayer(MapComposite *map, Character *p)
static bool dbgLockObjects;
#endif
-void State::update()
+void GameState::update()
{
# ifndef NDEBUG
dbgLockObjects = true;
# endif
// Update game state (update AI, etc.)
- MapManager::Maps const &maps = mapManager->getMaps();
+ MapManager::Maps const &maps = MapManager::getMaps();
for (MapManager::Maps::const_iterator m = maps.begin(), m_end = maps.end(); m != m_end; ++m)
{
MapComposite *map = m->second;
@@ -365,7 +378,7 @@ void State::update()
delayedEvents.clear();
}
-void State::insert(Thing *ptr)
+void GameState::insert(Thing *ptr)
{
assert(!dbgLockObjects);
MapComposite *map = ptr->getMap();
@@ -392,7 +405,7 @@ void State::insert(Thing *ptr)
}
}
-void State::remove(Thing *ptr)
+void GameState::remove(Thing *ptr)
{
assert(!dbgLockObjects);
MapComposite *map = ptr->getMap();
@@ -433,7 +446,7 @@ void State::remove(Thing *ptr)
map->remove(ptr);
}
-void State::enqueueEvent(Object *ptr, DelayedEvent const &e)
+void GameState::enqueueEvent(Object *ptr, DelayedEvent const &e)
{
std::pair< DelayedEvents::iterator, bool > p =
delayedEvents.insert(std::make_pair(ptr, e));
@@ -444,7 +457,7 @@ void State::enqueueEvent(Object *ptr, DelayedEvent const &e)
}
}
-void State::sayAround(Object *obj, std::string text)
+void GameState::sayAround(Object *obj, std::string const &text)
{
MessageOut msg(GPMSG_SAY);
msg.writeShort(!obj->canMove() ? 65535 :