Index: common/Player.cpp
===================================================================
--- common/Player.cpp	(revision 035d852ae6e2f078efaef69581b9333b11d3a221)
+++ common/Player.cpp	(revision 05051c79f4e2f5fbd7fbf9a5f393d05aa8da0f65)
@@ -124,10 +124,10 @@
       // using moveCanceled in a hacky way just to indicate that the server
       // has updated some player info. Should change the variable name
-      switch(map->getObject(newPos.x/25, newPos.y/25)) {
-      case WorldMap::OBJECT_BLUE_FLAG:
+      switch(map->getStructure(newPos.x/25, newPos.y/25)) {
+      case WorldMap::STRUCTURE_BLUE_FLAG:
          hasBlueFlag = true;
          moveCanceled = true;
          break;
-      case WorldMap::OBJECT_RED_FLAG:
+      case WorldMap::STRUCTURE_RED_FLAG:
          hasRedFlag = true;
          moveCanceled = true;
Index: common/WorldMap.cpp
===================================================================
--- common/WorldMap.cpp	(revision 035d852ae6e2f078efaef69581b9333b11d3a221)
+++ common/WorldMap.cpp	(revision 05051c79f4e2f5fbd7fbf9a5f393d05aa8da0f65)
@@ -15,17 +15,18 @@
 
    vctMap = new vector<vector<TerrainType>*>(width);
-   vctObjects = new vector<vector<ObjectType>*>(width);
+   vctStructures = new vector<vector<StructureType>*>(width);
+   vctObjects = new vector<Object>();
 
    for (int x=0; x<width; x++) {
       vector<TerrainType>* newMapVector = new vector<TerrainType>(height);
-      vector<ObjectType>* newObjectVector = new vector<ObjectType>(height);
+      vector<StructureType>* newStructureVector = new vector<StructureType>(height);
 
       for (int y=0; y<height; y++) {
          (*newMapVector)[y] = TERRAIN_NONE;
-         (*newObjectVector)[y] = OBJECT_NONE;
+         (*newStructureVector)[y] = STRUCTURE_NONE;
       }
 
       (*vctMap)[x] = newMapVector;
-      (*vctObjects)[x] = newObjectVector;
+      (*vctStructures)[x] = newStructureVector;
    }
 }
@@ -35,8 +36,9 @@
    for (int x=0; x<width; x++) {
       delete (*vctMap)[x];
-      delete (*vctObjects)[x];
+      delete (*vctStructures)[x];
    }
 
    delete vctMap;
+   delete vctStructures;
    delete vctObjects;
 }
@@ -49,17 +51,27 @@
 void WorldMap::setElement(int x, int y, TerrainType t)
 {
-   cout << "getting element" << endl;
    (*(*vctMap)[x])[y] = t;
 }
 
-WorldMap::ObjectType WorldMap::getObject(int x, int y)
-{
-   return (*(*vctObjects)[x])[y];
-}
-
-void WorldMap::setObject(int x, int y, ObjectType t)
-{
-   cout << "getting object" << endl;
-   (*(*vctObjects)[x])[y] = t;
+WorldMap::StructureType WorldMap::getStructure(int x, int y)
+{
+   return (*(*vctStructures)[x])[y];
+}
+
+void WorldMap::setStructure(int x, int y, StructureType t)
+{
+   (*(*vctStructures)[x])[y] = t;
+}
+
+vector<WorldMap::Object> WorldMap::getObjects(int x, int y) {
+   vector<WorldMap::Object> vctObjectsInRegion;
+
+   return vctObjectsInRegion;
+}
+
+void WorldMap::addObject(int x, int y, WorldMap::ObjectType t) {
+   WorldMap::Object o(t, x, y);
+
+   vctObjects->push_back(o);
 }
 
@@ -77,5 +89,5 @@
             m->setElement(x, y, TERRAIN_GRASS);
 
-         m->setObject(x, y, OBJECT_NONE);
+         m->setStructure(x, y, STRUCTURE_NONE);
       }
    }
@@ -158,5 +170,5 @@
 
                int x, y, type;
-               ObjectType object;
+               StructureType structure;
 
                getline(iss, token, ',');
@@ -174,15 +186,15 @@
                switch(type) {
                case 0:
-                  object = OBJECT_NONE;
+                  structure = STRUCTURE_NONE;
                   break;
                case 1:
-                  object = OBJECT_BLUE_FLAG;
+                  structure = STRUCTURE_BLUE_FLAG;
                   break;
                case 2:
-                  object = OBJECT_RED_FLAG;
+                  structure = STRUCTURE_RED_FLAG;
                   break;
                }
 
-               m->setObject(x, y, object);
+               m->setStructure(x, y, structure);
             }
          }
@@ -197,2 +209,19 @@
    return m;
 }
+
+
+/*** Functions for Object ***/
+
+WorldMap::Object::Object(ObjectType type, POSITION pos) {
+   this->type = type;
+   this->pos = pos;
+}
+
+WorldMap::Object::Object(ObjectType type, int x, int y) {
+   this->type = type;
+   this->pos.x = x;
+   this->pos.y = y;
+}
+
+WorldMap::Object::~Object() {
+}
Index: common/WorldMap.h
===================================================================
--- common/WorldMap.h	(revision 035d852ae6e2f078efaef69581b9333b11d3a221)
+++ common/WorldMap.h	(revision 05051c79f4e2f5fbd7fbf9a5f393d05aa8da0f65)
@@ -5,4 +5,6 @@
 
 #include <vector>
+
+#include "Common.h"
 
 using namespace std;
@@ -17,4 +19,10 @@
    };
 
+   enum StructureType {
+      STRUCTURE_NONE,
+      STRUCTURE_BLUE_FLAG,
+      STRUCTURE_RED_FLAG
+   };
+
    enum ObjectType {
       OBJECT_NONE,
@@ -23,7 +31,19 @@
    };
 
+   class Object {
+   public:
+      ObjectType type;
+      POSITION pos;
+
+      Object(ObjectType type, int x, int y);
+      Object(ObjectType type, POSITION pos);
+
+      ~Object();
+   };
+
    int width, height;
    vector<vector<TerrainType>*>* vctMap;
-   vector<vector<ObjectType>*>* vctObjects;
+   vector<vector<StructureType>*>* vctStructures;
+   vector<Object>* vctObjects; 
 
    WorldMap(int width, int height);
@@ -34,6 +54,9 @@
    void setElement(int x, int y, TerrainType type);
 
-   ObjectType getObject(int x, int y);
-   void setObject(int x, int y, ObjectType type);
+   StructureType getStructure(int x, int y);
+   void setStructure(int x, int y, StructureType type);
+
+   vector<Object> getObjects(int x, int y);
+   void addObject(int x, int y, ObjectType type);
 
    static WorldMap* createDefaultMap();
