From ea20d11fdaf383eab6269d5aae2558fd15c5c29e Mon Sep 17 00:00:00 2001 From: manuel Date: Tue, 12 Apr 2011 18:24:25 +0200 Subject: compile fix, remove some debugging, improve movement calculation in corner cases --- pacman-c++/server.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'pacman-c++/server.cpp') diff --git a/pacman-c++/server.cpp b/pacman-c++/server.cpp index dd15934..b7cd1a0 100644 --- a/pacman-c++/server.cpp +++ b/pacman-c++/server.cpp @@ -83,6 +83,9 @@ invalid_direction: // // TODO: support actors eating each other + // TODO: old item - REMOVE THAT? + GameEntity *oldItem = visualMap[mapPosition.x()][mapPosition.y()]; + /* check if there's an item at new location of actor */ GameEntity *item = visualMap[newMapPosition.x()][newMapPosition.y()]; if (item != NULL && oldItem != item) @@ -108,9 +111,11 @@ invalid_direction: /* movement didn't work - e.g. was blocked */ if (mapPosition == newMapPosition) { - if (turn == 1) + /* */ + if (turn == 1 && i.value() != actor->direction()) { /* set direction back to last known direction and try again */ + qDebug() << "Movement was blocked. Try last known direction"; m_actorMovements[i.key()] = actor->direction(); goto invalid_direction; } @@ -200,24 +205,21 @@ void Server::sendUpdate(QSharedPointer< ProtoBuf::MapUpdate > packet) void Server::keyPressUpdate() { - qDebug() << "kpress"; - QMapIterator i(m_clientConnections); + QMapIterator i(m_clientConnections); while (i.hasNext()) { i.next(); Color::Color color = i.key(); QTcpSocket *socket = i.value(); - qDebug() << "data?"; if (socket->bytesAvailable() > 0) { - qDebug() << "data!"; std::string dataStr; Util::QByteArrayToStdString(socket->readAll(), dataStr); ProtoBuf::KeyPressUpdate packet; bool worked = packet.ParseFromString(dataStr); Q_ASSERT(worked); Transmission::field_t direction = packet.newkey(); - qDebug() << "data:" << direction; + qDebug() << "[keypress] actor=" << color << ", direction=" << direction; m_actorMovements[color] = Util::transmissionMovementToActor(direction); } } -- cgit v1.2.3