Index: client/Client/Client.vcxproj
===================================================================
--- client/Client/Client.vcxproj	(revision b9785038ddfdf9ae386aff2ae3e7ab24a4ccfe99)
+++ client/Client/Client.vcxproj	(revision 8795a388ee52edfea5629ee787e54c686b3e4c57)
@@ -65,4 +65,5 @@
   <ItemGroup>
     <ClCompile Include="..\..\common\Common.cpp" />
+    <ClCompile Include="..\..\common\Projectile.cpp" />
     <ClCompile Include="..\..\common\WorldMap.cpp" />
     <ClCompile Include="..\..\common\Message.cpp" />
@@ -78,4 +79,5 @@
     <ClInclude Include="..\..\common\Common.h" />
     <ClInclude Include="..\..\common\Compiler.h" />
+    <ClInclude Include="..\..\common\Projectile.h" />
     <ClInclude Include="..\..\common\WorldMap.h" />
     <ClInclude Include="..\..\common\Message.h" />
Index: client/Client/Client.vcxproj.filters
===================================================================
--- client/Client/Client.vcxproj.filters	(revision b9785038ddfdf9ae386aff2ae3e7ab24a4ccfe99)
+++ client/Client/Client.vcxproj.filters	(revision 8795a388ee52edfea5629ee787e54c686b3e4c57)
@@ -58,4 +58,7 @@
       <Filter>Source Files\common</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\common\Projectile.cpp">
+      <Filter>Source Files\common</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
@@ -90,4 +93,7 @@
       <Filter>Header Files\common</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\common\Projectile.h">
+      <Filter>Header Files\common</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
Index: client/Client/main.cpp
===================================================================
--- client/Client/main.cpp	(revision b9785038ddfdf9ae386aff2ae3e7ab24a4ccfe99)
+++ client/Client/main.cpp	(revision 8795a388ee52edfea5629ee787e54c686b3e4c57)
@@ -33,4 +33,5 @@
 #include "../../common/WorldMap.h"
 #include "../../common/Player.h"
+#include "../../common/Projectile.h"
 
 #include "Window.h"
@@ -47,5 +48,5 @@
 void initWinSock();
 void shutdownWinSock();
-void processMessage(NETWORK_MSG &msg, int &state, chat &chatConsole, WorldMap *gameMap, map<unsigned int, Player>& mapPlayers, unsigned int& curPlayerId, int &scoreBlue, int &scoreRed);
+void processMessage(NETWORK_MSG &msg, int &state, chat &chatConsole, WorldMap *gameMap, map<unsigned int, Player>& mapPlayers, map<unsigned int, Projectile>& mapProjectiles, unsigned int& curPlayerId, int &scoreBlue, int &scoreRed);
 void drawMap(WorldMap* gameMap);
 void drawPlayers(map<unsigned int, Player>& mapPlayers, ALLEGRO_FONT* font, unsigned int curPlayerId);
@@ -99,4 +100,5 @@
    doexit = false;
    map<unsigned int, Player> mapPlayers;
+   map<unsigned int, Projectile> mapProjectiles;
    unsigned int curPlayerId = -1;
    int scoreBlue, scoreRed;
@@ -299,4 +301,6 @@
                   map<unsigned int, Player>::iterator it;
 
+                  cout << "Detected a right-click" << endl;
+
                   Player* curPlayer;
                   for(it = mapPlayers.begin(); it != mapPlayers.end(); it++)
@@ -309,4 +313,5 @@
                   for(it = mapPlayers.begin(); it != mapPlayers.end(); it++)
                   {
+                     // need to check if the right-click was actually on this player
                      target = &it->second;
                      if (target->id != curPlayerId && target->team != curPlayer->team) {
@@ -323,5 +328,5 @@
 
       if (receiveMessage(&msgFrom, sock, &from) >= 0)
-         processMessage(msgFrom, state, chatConsole, gameMap, mapPlayers, curPlayerId, scoreBlue, scoreRed);
+         processMessage(msgFrom, state, chatConsole, gameMap, mapPlayers, mapProjectiles, curPlayerId, scoreBlue, scoreRed);
 
       if (redraw)
@@ -447,5 +452,5 @@
 }
 
-void processMessage(NETWORK_MSG &msg, int &state, chat &chatConsole, WorldMap *gameMap, map<unsigned int, Player>& mapPlayers, unsigned int& curPlayerId, int &scoreBlue, int &scoreRed)
+void processMessage(NETWORK_MSG &msg, int &state, chat &chatConsole, WorldMap *gameMap, map<unsigned int, Player>& mapPlayers, map<unsigned int, Projectile>& mapProjectiles, unsigned int& curPlayerId, int &scoreBlue, int &scoreRed)
 {
    string response = string(msg.buffer);
@@ -623,4 +628,18 @@
             case MSG_TYPE_PROJECTILE:
             {
+               cout << "Received a prjectile message" << endl;
+
+               int id, x, y, targetId;
+
+               memcpy(&id, msg.buffer, 4);
+               memcpy(&x, msg.buffer+4, 4);
+               memcpy(&y, msg.buffer+8, 4);
+               memcpy(&targetId, msg.buffer+12, 4);
+
+               cout << "id" << id << endl;
+               cout << "x" << x << endl;
+               cout << "y" << y << endl;
+               cout << "Target" << targetId << endl;
+
                break;
             }
