From 98f4a31e1a359a69dbcc0fa4055f36cefb6d4e02 Mon Sep 17 00:00:00 2001 From: totycro Date: Mon, 11 Apr 2011 12:09:04 +0200 Subject: Added basic game logic --- pacman-c++/server.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'pacman-c++/server.cpp') diff --git a/pacman-c++/server.cpp b/pacman-c++/server.cpp index ba2b3c9..b631345 100644 --- a/pacman-c++/server.cpp +++ b/pacman-c++/server.cpp @@ -74,8 +74,15 @@ Transmission::map_t Server::calculateUpdates() newMapPosition.setY(visualMap[newMapPosition.x()].size() - 1); // - if(dynamic_cast(visualMap[newMapPosition.x()][newMapPosition.y()]) != 0) - continue; + // TODO: support actors eating each other + PixmapItem *item = visualMap[newMapPosition.x()][newMapPosition.y()]; + if (item != NULL) { + if (! item->checkEnter(actor)) { // movement invalid + newMapPosition = mapPosition; + } else { // apply actions of entering this field + item->enter(actor); + } + } // if (mapPosition != newMapPosition) @@ -114,7 +121,7 @@ void Server::waitForClientConnections() { QTcpServer *tcpSrv = new QTcpServer(this); // server must stay alive as long as sockets (qt parent mem mechanism) - tcpSrv->listen(QHostAddress::Any, Constants::port); + tcpSrv->listen(QHostAddress::Any, Constants::Networking::port); #define SINGLE -- cgit v1.2.3