MCPcopy Create free account
hub / github.com/OpenDungeons/OpenDungeons / getCentralTile

Method getCentralTile

source/entities/Building.cpp:161–196  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

159}
160
161Tile* Building::getCentralTile()
162{
163 if (mCoveredTiles.empty() && mCoveredTilesDestroyed.empty())
164 return nullptr;
165
166 std::vector<Tile*> allTiles;
167 allTiles.insert(allTiles.end(), mCoveredTiles.begin(), mCoveredTiles.end());
168
169 // In editor mode, we do not consider destroyed tiles while computing the central tile
170 if(!getGameMap()->isInEditorMode())
171 allTiles.insert(allTiles.end(), mCoveredTilesDestroyed.begin(), mCoveredTilesDestroyed.end());
172
173 if(allTiles.empty())
174 return nullptr;
175
176 int minX, maxX, minY, maxY;
177 minX = maxX = allTiles[0]->getX();
178 minY = maxY = allTiles[0]->getY();
179
180 for(unsigned int i = 0, size = allTiles.size(); i < size; ++i)
181 {
182 int tempX = allTiles[i]->getX();
183 int tempY = allTiles[i]->getY();
184
185 if (tempX < minX)
186 minX = tempX;
187 if (tempY < minY)
188 minY = tempY;
189 if (tempX > maxX)
190 maxX = tempX;
191 if (tempY > maxY)
192 maxY = tempY;
193 }
194
195 return getGameMap()->getTile((minX + maxX) / 2, (minY + maxY) / 2);
196}
197
198bool Building::removeCoveredTile(Tile* t)
199{

Callers 10

handleLeaveDungeonMethod · 0.80
handleSearchFoeMethod · 0.80
handleDiggingMethod · 0.80
handleFirstUpkeepMethod · 0.80
checkTreasuryMethod · 0.80
handleRoomsMethod · 0.80
lookForGoldMethod · 0.80
saveWoundedCreaturesMethod · 0.80
handleTiredCreaturesMethod · 0.80
handleHungryCreaturesMethod · 0.80

Calls 4

isInEditorModeMethod · 0.80
getXMethod · 0.45
getYMethod · 0.45
getTileMethod · 0.45

Tested by

no test coverage detected