Advertisement
Guest User

Untitled

a guest
Oct 18th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. std::vector<Tile*> World::GetAdjacentTiles(int currentXPos, int currentYPos) const
  2. {
  3.     std::vector<Tile*> adjacentTiles;
  4.  
  5.     //assert center tile is properly placed
  6.     assert(currentXPos >= 0 && currentXPos < m_width);
  7.     assert(currentYPos >= 0 && currentYPos < m_height);
  8.    
  9.     //forward tile
  10.     assert(currentXPos >= 0 && (currentYPos - 1) < m_height);
  11.     adjacentTiles.push_back(&m_ppGrid[currentXPos][currentYPos - 1]);
  12.  
  13.     //back tile
  14.     assert(currentYPos + 1 >= 0 && (currentYPos + 1) < m_height);
  15.     adjacentTiles.push_back(&m_ppGrid[currentXPos][currentYPos + 1]);
  16.  
  17.     //left tile
  18.     assert(currentXPos - 1 >= 0 && (currentXPos - 1) < m_width);
  19.     adjacentTiles.push_back(&m_ppGrid[currentXPos - 1][currentYPos]);
  20.  
  21.     //right tile
  22.     assert(currentXPos + 1 >= 0 && (currentXPos + 1) < m_width);
  23.     adjacentTiles.push_back(&m_ppGrid[currentXPos + 1][currentYPos]);
  24.  
  25.     //top left tile
  26.     assert(currentXPos - 1 >= 0 && (currentYPos - 1) < m_width);
  27.     assert(currentYPos - 1 >= 0 && (currentYPos - 1) < m_height);
  28.  
  29.     adjacentTiles.push_back(&m_ppGrid[currentXPos - 1][currentYPos - 1]);
  30.  
  31.     //top right tile
  32.     assert(currentXPos + 1 >= 0 && (currentYPos + 1) < m_width);
  33.     assert(currentYPos + 1 >= 0 && (currentYPos - 1) < m_height);
  34.  
  35.     adjacentTiles.push_back(&m_ppGrid[currentXPos + 1][currentYPos - 1]);
  36.  
  37.    
  38.     //bottom left tile
  39.     assert(currentXPos - 1 >= 0 && (currentYPos - 1) < m_width);
  40.     assert(currentYPos + 1 >= 0 && (currentYPos + 1) < m_height);
  41.  
  42.     adjacentTiles.push_back(&m_ppGrid[currentXPos - 1][currentYPos + 1]);
  43.  
  44.     //bottom right tile
  45.     assert(currentXPos + 1 >= 0 && (currentYPos + 1) < m_width);
  46.     assert(currentYPos + 1 >= 0 && (currentYPos + 1) < m_height);
  47.  
  48.     adjacentTiles.push_back(&m_ppGrid[currentXPos + 1][currentYPos + 1]);
  49.  
  50.     return adjacentTiles;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement