BOOL CCollisionMap::ThickenWalls(WordMatrix& rMatrix, int nThickenBy) { if (!rMatrix.IsCreated() || nThickenBy <= 0) return FALSE; const int CX = rMatrix.GetCX(); const int CY = rMatrix.GetCY(); for (int i = 0; i < CX; i++) { for (int j = 0; j < CY; j++) { if ((rMatrix[i][j] % 2) == 0 || rMatrix[i][j] == MAP_DATA_THICKENED) continue; for (int x = i - nThickenBy; x <= i + nThickenBy; x++) { for (int y = j - nThickenBy; y <= j + nThickenBy; y++) { if (!rMatrix.IsValidIndex(x, y)) continue; if ((rMatrix[x][y] % 2) == 0) rMatrix[x][y] = MAP_DATA_THICKENED; } } } } return TRUE; }
VOID CCollisionMap::MakeBlank(WordMatrix& rMatrix, POINT pos) { if (!rMatrix.IsCreated()) return; for (int i = pos.x - 1; i <= pos.x + 1; i++) { for (int j = pos.y - 1; j <= pos.y + 1; j++) { if (rMatrix.IsValidIndex(i, j)) rMatrix[i][j] = MAP_DATA_CLEANED; } } }
BOOL CCollisionMap::CopyMapData(WordMatrix& rBuffer) const { //m_map.Lock(); m_map.ExportData(rBuffer); //m_map.Unlock(); return rBuffer.IsCreated(); }
BOOL CCollisionMap::CopyMapData(WordMatrix& rBuffer) { m_map.ExportData(rBuffer); return rBuffer.IsCreated(); }