Index: client/Client/main.cpp
===================================================================
--- client/Client/main.cpp	(revision 601217858755afaf65351d075022aa0e2f9da90a)
+++ client/Client/main.cpp	(revision fef7c691aac84142e3afc13f8fad7583193af41c)
@@ -399,5 +399,5 @@
                wndCurrent = wndGame;
             }
-         }else if(wndCurrent == wndGame) {
+         }else if(wndCurrent == wndGame || wndCurrent == wndNewGame) {
             if (ev.mouse.button == 1) {   // left click
                msgTo.type = MSG_TYPE_PLAYER_MOVE;
@@ -500,4 +500,15 @@
             al_draw_text(font, al_map_rgb(0, 255, 0), 515, 80, ALLEGRO_ALIGN_LEFT, ossScoreRed.str().c_str());
 
+            // update players
+            for (it = game->getPlayers().begin(); it != game->getPlayers().end(); it++)
+            {
+               it->second->updateTarget(game->getPlayers());
+            }
+
+            for (it = game->getPlayers().begin(); it != game->getPlayers().end(); it++)
+            {
+               it->second->move(game->getMap());    // ignore return value
+            }
+
             GameRender::drawMap(game->getMap());
             GameRender::drawPlayers(game->getPlayers(), font, curPlayerId);
@@ -982,4 +993,22 @@
 
                game->addPlayer(mapPlayers[p.id]);
+
+               break;
+            }
+            case MSG_TYPE_PLAYER_MOVE:
+            {
+               cout << "Received PLAYER_MOVE message" << endl;
+
+               unsigned int id;
+               int x, y;
+
+               memcpy(&id, msg.buffer, 4);
+               memcpy(&x, msg.buffer+4, 4);
+               memcpy(&y, msg.buffer+8, 4);
+
+               cout << "id: " << id << endl;
+
+               mapPlayers[id]->target.x = x;
+               mapPlayers[id]->target.y = y;
 
                break;
