Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // -----------------------------------------------------------------------------
- void StartMenu::removeBrick(int r, int c)
- {
- Brick* pBrick = m_bricks[r][c];
- if (!pBrick)
- return;
- // Remove the block
- SDL_Log("Removing: %d, %d", r, c);
- pBrick->scheduleForDestruction();
- m_bricks[r][c] = NULL;
- incrementScore();
- // Check adjacent blocks
- Brick* pAbove = ((r > 0 ) && (m_bricks[r-1][c]) && (m_bricks[r-1][c]->getColor() == pBrick->getColor())) ? pAbove = m_bricks[r-1][c] : NULL;
- Brick* pBellow = ((r < ROWS ) && (m_bricks[r+1][c]) && (m_bricks[r+1][c]->getColor() == pBrick->getColor())) ? pBellow = m_bricks[r+1][c] : NULL;
- Brick* pLeft = ((c > 0 ) && (m_bricks[r][c-1]) && (m_bricks[r][c-1]->getColor() == pBrick->getColor())) ? pLeft = m_bricks[r][c-1] : NULL;
- 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;
- if (pAbove)
- {
- /*
- pAbove->scheduleForDestruction();
- m_bricks[r - 1][c] = NULL;
- */
- return removeBrick(r - 1, c);
- }
- if (pBellow)
- {
- //pBellow->scheduleForDestruction();
- //m_bricks[r + 1][c] = NULL;
- return removeBrick(r + 1, c);
- }
- if (pLeft)
- {
- //pLeft->scheduleForDestruction();
- //m_bricks[r][c - 1] = NULL;
- return removeBrick(r, c - 1);
- }
- if (pRight)
- {
- //pRight->scheduleForDestruction();
- //m_bricks[r][c + 1] = NULL;
- return removeBrick(r, c + 1);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement