From 979c3b4528da1608404d6e163211280fee5da9c5 Mon Sep 17 00:00:00 2001 From: totycro Date: Sat, 9 Apr 2011 15:08:13 +0200 Subject: added some utility --- pacman-c++/server.cpp | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'pacman-c++/server.cpp') diff --git a/pacman-c++/server.cpp b/pacman-c++/server.cpp index 89cf356..2c16453 100644 --- a/pacman-c++/server.cpp +++ b/pacman-c++/server.cpp @@ -5,7 +5,45 @@ Server::Server(QWidget *parent) : SceneHolder(parent) { - updateMap(createDummyMap()); + updateMap(Util::createDummyMap()); + Transmission::map_t map = calculateUpdates(); + updateMap(map); +} + +QMap< Color::Color, Actor::Movement > Server::getActorDirections() +{ + QMap directions; + directions[Color::red] = Actor::Down; + return directions; +} + + +Transmission::map_t Server::calculateUpdates() +{ + Transmission::map_t map = Util::createEmptyMap(); + + QMap directions = getActorDirections(); + QMapIterator i(directions); + while (i.hasNext()) { + i.next(); + Actor *actor = m_actors.value( i.key() ); + QPoint mapPosition = CoordToMapPosition(actor->x(), actor->y()); + qDebug() << "actor " << i.key() << " is at " << mapPosition; + map[mapPosition.x()][mapPosition.y()] = Transmission::empty; + + QPoint newMapPosition = mapPosition; + switch (i.value()) { + case Actor::Up: newMapPosition += QPoint(0, -1); break; + case Actor::Down: newMapPosition += QPoint(0, 1); break; + case Actor::Left: newMapPosition += QPoint(-1, 0); break; + case Actor::Right: newMapPosition += QPoint(1, 0); break; + case Actor::None: break; + default: Q_ASSERT(false); + } + map[newMapPosition.x()][newMapPosition.y()] = Transmission::pacman | i.key() ; + + } + return map; } int main(int argc, char ** argv) -- cgit v1.2.3