diff options
author | Guillaume Melquiond <guillaume.melquiond@gmail.com> | 2007-07-07 18:06:29 +0000 |
---|---|---|
committer | Guillaume Melquiond <guillaume.melquiond@gmail.com> | 2007-07-07 18:06:29 +0000 |
commit | d213cdea38ae5dda3c1cbdc6c85a2c5fe04e9399 (patch) | |
tree | 2ae7c7abd8fdedb2e6ec5610718834d9a92a467f /src/game-server/state.cpp | |
parent | 04e694b067a21dee8e13368c17d1815cc0624ce4 (diff) | |
download | manaserv-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.cpp | 31 |
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 : |