summaryrefslogtreecommitdiffstats
path: root/pacman-c++/server.cpp
diff options
context:
space:
mode:
authortotycro <totycro@unknown-horizons.org>2011-04-09 15:08:13 +0200
committertotycro <totycro@unknown-horizons.org>2011-04-09 15:08:13 +0200
commit979c3b4528da1608404d6e163211280fee5da9c5 (patch)
treedd5584640933fc6bce1820bcc452af74d356396f /pacman-c++/server.cpp
parentd547dec802f76c346538144f4eacf6d8ca6310c4 (diff)
downloadfoop-979c3b4528da1608404d6e163211280fee5da9c5.tar.gz
foop-979c3b4528da1608404d6e163211280fee5da9c5.tar.bz2
foop-979c3b4528da1608404d6e163211280fee5da9c5.zip
added some utility
Diffstat (limited to 'pacman-c++/server.cpp')
-rw-r--r--pacman-c++/server.cpp40
1 files changed, 39 insertions, 1 deletions
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 @@
5Server::Server(QWidget *parent) 5Server::Server(QWidget *parent)
6 : SceneHolder(parent) 6 : SceneHolder(parent)
7{ 7{
8 updateMap(createDummyMap()); 8 updateMap(Util::createDummyMap());
9 Transmission::map_t map = calculateUpdates();
10 updateMap(map);
11}
12
13QMap< Color::Color, Actor::Movement > Server::getActorDirections()
14{
15 QMap<Color::Color, Actor::Movement> directions;
16 directions[Color::red] = Actor::Down;
17 return directions;
18}
19
20
21Transmission::map_t Server::calculateUpdates()
22{
23 Transmission::map_t map = Util::createEmptyMap();
24
25 QMap<Color::Color, Actor::Movement> directions = getActorDirections();
26 QMapIterator<Color::Color, Actor::Movement> i(directions);
27 while (i.hasNext()) {
28 i.next();
29 Actor *actor = m_actors.value( i.key() );
30 QPoint mapPosition = CoordToMapPosition(actor->x(), actor->y());
31 qDebug() << "actor " << i.key() << " is at " << mapPosition;
32 map[mapPosition.x()][mapPosition.y()] = Transmission::empty;
33
34 QPoint newMapPosition = mapPosition;
35 switch (i.value()) {
36 case Actor::Up: newMapPosition += QPoint(0, -1); break;
37 case Actor::Down: newMapPosition += QPoint(0, 1); break;
38 case Actor::Left: newMapPosition += QPoint(-1, 0); break;
39 case Actor::Right: newMapPosition += QPoint(1, 0); break;
40 case Actor::None: break;
41 default: Q_ASSERT(false);
42 }
43 map[newMapPosition.x()][newMapPosition.y()] = Transmission::pacman | i.key() ;
44
45 }
46 return map;
9} 47}
10 48
11int main(int argc, char ** argv) 49int main(int argc, char ** argv)