void World::UpdateWalkableStateFromUnit_(const Unit& parUnit, bool parWalkableState) { assert(!parUnit.CanMove()); // no collision with unit ATM SDL_Rect bbox = parUnit.BoundingBox(); for (size_t x = (bbox.x / WALK_TILE_SIZE); x < ((bbox.x + bbox.w) / WALK_TILE_SIZE); ++x) { for (size_t y = (bbox.y / WALK_TILE_SIZE); y < ((bbox.y + bbox.h) / WALK_TILE_SIZE); ++y) { // FIXME: Bound checking (security warning) assert(isWalkable_[x][y] != parWalkableState); isWalkable_[x][y] = parWalkableState; } } }
void World::UpdateAccessibleTileFromUnit_(const Unit& parUnit, bool parAccessibleState) { assert(!parUnit.CanMove()); SDL_Rect bbox = parUnit.BoundingBox(); for (size_t x = (bbox.x / BUILD_TILE_SIZE); x < ((bbox.x + bbox.w) / BUILD_TILE_SIZE); ++x) { for (size_t y = (bbox.y / BUILD_TILE_SIZE); y < ((bbox.y + bbox.h) / BUILD_TILE_SIZE); ++y) { // FIXME: Bound checking (security warning) assert(accessibleTile_[x][y] != parAccessibleState); accessibleTile_[x][y] = parAccessibleState; } } }