Changeset a1a3bd5 in network-game for common/WorldMap.cpp


Ignore:
Timestamp:
Apr 23, 2013, 1:31:54 AM (12 years ago)
Author:
dportnoy <dmp1488@…>
Branches:
master
Children:
227baaa
Parents:
054b50b
Message:

Made client changes for smooth player movement, changed the player move method to check the map for obstacles and return a bool indicating success or failure.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • common/WorldMap.cpp

    r054b50b ra1a3bd5  
    1515
    1616   vctMap = new vector<vector<TerrainType>*>(width);
     17   vctObjects = new vector<vector<ObjectType>*>(width);
    1718
    1819   for (int x=0; x<width; x++) {
    19       vector<TerrainType>* newVector = new vector<TerrainType>(height);
     20      vector<TerrainType>* newMapVector = new vector<TerrainType>(height);
     21      vector<ObjectType>* newObjectVector = new vector<ObjectType>(height);
    2022
    21       for (int y=0; y<height; y++)
    22          (*newVector)[y] = TERRAIN_NONE;
     23      for (int y=0; y<height; y++) {
     24         (*newMapVector)[y] = TERRAIN_NONE;
     25         (*newObjectVector)[y] = OBJECT_NONE;
     26      }
    2327
    24       (*vctMap)[x] = newVector;
     28      (*vctMap)[x] = newMapVector;
     29      (*vctObjects)[x] = newObjectVector;
    2530   }
    2631}
     
    2833WorldMap::~WorldMap()
    2934{
    30    for (int x=0; x<width; x++)
     35   for (int x=0; x<width; x++) {
    3136      delete (*vctMap)[x];
     37      delete (*vctObjects)[x];
     38   }
    3239
    3340   delete vctMap;
     41   delete vctObjects;
    3442}
    3543
     
    4351   cout << "getting element" << endl;
    4452   (*(*vctMap)[x])[y] = t;
     53}
     54
     55WorldMap::ObjectType WorldMap::getObject(int x, int y)
     56{
     57   return (*(*vctObjects)[x])[y];
     58}
     59
     60void WorldMap::setObject(int x, int y, ObjectType t)
     61{
     62   cout << "getting object" << endl;
     63   (*(*vctObjects)[x])[y] = t;
    4564}
    4665
     
    5776         else
    5877            m->setElement(x, y, TERRAIN_GRASS);
     78
     79         m->setObject(x, y, OBJECT_NONE);
    5980      }
    6081   }
     
    102123            istringstream iss(line);
    103124            string token;
    104             int type;
    105             TerrainType terrain;
    106125
    107             for(int x=0; x<width; x++)
    108             {
     126            if (row < height) {
     127               // load terrain
     128
     129               int type;
     130               TerrainType terrain;
     131
     132               for(int x=0; x<width; x++)
     133               {
     134                  getline(iss, token, ',');
     135                  cout << "token: " << token << endl;
     136                  type = atoi(token.c_str());
     137                  cout << "type: " << type << endl;
     138
     139                  switch(type) {
     140                  case 1:
     141                     terrain = TERRAIN_GRASS;
     142                     break;
     143                  case 2:
     144                     terrain = TERRAIN_OCEAN;
     145                     break;
     146                  case 3:
     147                     terrain = TERRAIN_ROCK;
     148                     break;
     149                  }
     150
     151                  cout << "About to set element" << endl;
     152                  cout << "x: " << x << endl;
     153                  cout << "row: " << row << endl;
     154                  m->setElement(x, row, terrain);
     155               }
     156            }else {
     157               // load objects
     158
     159               int x, y, type;
     160               ObjectType object;
     161
    109162               getline(iss, token, ',');
    110                cout << "token: " << token << endl;
     163               cout << "token(x): " << token << endl;
     164               x = atoi(token.c_str());
     165
     166               getline(iss, token, ',');
     167               cout << "token(y): " << token << endl;
     168               y = atoi(token.c_str());
     169
     170               getline(iss, token, ',');
     171               cout << "token(type): " << token << endl;
    111172               type = atoi(token.c_str());
    112                cout << "type: " << type << endl;
    113173
    114174               switch(type) {
     175               case 0:
     176                  object = OBJECT_NONE;
     177                  break;
    115178               case 1:
    116                   terrain = TERRAIN_GRASS;
     179                  object = OBJECT_RED_FLAG;
    117180                  break;
    118181               case 2:
    119                   terrain = TERRAIN_OCEAN;
    120                   break;
    121                case 3:
    122                   terrain = TERRAIN_ROCK;
     182                  object = OBJECT_BLUE_FLAG;
    123183                  break;
    124184               }
    125185
    126                cout << "About to set element" << endl;
    127                cout << "x: " << x << endl;
    128                cout << "row: " << row << endl;
    129                m->setElement(x, row, terrain);
     186               m->setObject(x, y, object);
    130187            }
    131188         }
Note: See TracChangeset for help on using the changeset viewer.