Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.53 KB | None | 0 0
  1. // -----------------------------------------------------------------------------
  2. void StartMenu::removeBrick(int r, int c)
  3. {
  4.   Brick* pBrick = m_bricks[r][c];
  5.   if (!pBrick)
  6.     return;
  7.  
  8.   // Remove the block
  9.   SDL_Log("Removing: %d, %d", r, c);
  10.   pBrick->scheduleForDestruction();
  11.   m_bricks[r][c] = NULL;
  12.   incrementScore();
  13.  
  14.  
  15.   // Check adjacent blocks
  16.   Brick* pAbove  = ((r > 0             ) && (m_bricks[r-1][c]) && (m_bricks[r-1][c]->getColor() == pBrick->getColor())) ? pAbove  = m_bricks[r-1][c] : NULL;
  17.   Brick* pBellow = ((r < ROWS          ) && (m_bricks[r+1][c]) && (m_bricks[r+1][c]->getColor() == pBrick->getColor())) ? pBellow = m_bricks[r+1][c] : NULL;
  18.   Brick* pLeft   = ((c > 0             ) && (m_bricks[r][c-1]) && (m_bricks[r][c-1]->getColor() == pBrick->getColor())) ? pLeft   = m_bricks[r][c-1] : NULL;
  19.   Brick* pRight  = ((c < BRICKS_PER_ROW) && (m_bricks[r][c+1]) && (m_bricks[r][c+1]->getColor() == pBrick->getColor())) ? pRight  = m_bricks[r][c+1] : NULL;
  20.  
  21.   if (pAbove)
  22.   {
  23.     /*
  24.     pAbove->scheduleForDestruction();
  25.     m_bricks[r - 1][c] = NULL;
  26.     */
  27.     return removeBrick(r - 1, c);
  28.   }
  29.  
  30.   if (pBellow)
  31.   {
  32.     //pBellow->scheduleForDestruction();
  33.     //m_bricks[r + 1][c] = NULL;
  34.     return removeBrick(r + 1, c);
  35.   }
  36.    
  37.   if (pLeft)
  38.   {
  39.     //pLeft->scheduleForDestruction();
  40.     //m_bricks[r][c - 1] = NULL;
  41.     return removeBrick(r, c - 1);
  42.   }
  43.  
  44.   if (pRight)
  45.   {
  46.     //pRight->scheduleForDestruction();
  47.     //m_bricks[r][c + 1] = NULL;
  48.     return removeBrick(r, c + 1);
  49.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement