Beispiel #1
0
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;
		}
	}
}
Beispiel #2
0
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;
		}
	}
}