mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-13 19:54:17 +02:00
boat offsets for shipyards are counted from visitable position
This commit is contained in:
@@ -953,11 +953,15 @@ BoatId CGHeroInstance::getBoatType() const
|
||||
|
||||
void CGHeroInstance::getOutOffsets(std::vector<int3> &offsets) const
|
||||
{
|
||||
// FIXME: Offsets need to be fixed once we get rid of convertPosition
|
||||
// Check issue 515 for details
|
||||
offsets =
|
||||
{
|
||||
int3(-1,1,0), int3(-1,-1,0), int3(-2,0,0), int3(0,0,0), int3(0,1,0), int3(-2,1,0), int3(0,-1,0), int3(-2,-1,0)
|
||||
offsets = {
|
||||
{0, -1, 0},
|
||||
{+1, -1, 0},
|
||||
{+1, 0, 0},
|
||||
{+1, +1, 0},
|
||||
{0, +1, 0},
|
||||
{-1, +1, 0},
|
||||
{-1, 0, 0},
|
||||
{-1, -1, 0},
|
||||
};
|
||||
}
|
||||
|
||||
|
@@ -585,7 +585,7 @@ bool CGTownInstance::passableFor(PlayerColor color) const
|
||||
|
||||
void CGTownInstance::getOutOffsets( std::vector<int3> &offsets ) const
|
||||
{
|
||||
offsets = {int3(-1,2,0), int3(-3,2,0)};
|
||||
offsets = {int3(-1,2,0), int3(+1,2,0)};
|
||||
}
|
||||
|
||||
CGTownInstance::EGeneratorState CGTownInstance::shipyardStatus() const
|
||||
|
@@ -92,7 +92,9 @@ int3 IBoatGenerator::bestLocation() const
|
||||
|
||||
for (auto & offset : offsets)
|
||||
{
|
||||
if(const TerrainTile *tile = getObject()->cb->getTile(getObject()->getPosition() + offset, false)) //tile is in the map
|
||||
const TerrainTile *tile = getObject()->cb->getTile(getObject()->visitablePos() + offset, false);
|
||||
|
||||
if(tile) //tile is in the map
|
||||
{
|
||||
if(tile->terType->isWater() && (!tile->blocked || tile->blockingObjects.front()->ID == Obj::BOAT)) //and is water and is not blocked or is blocked by boat
|
||||
return getObject()->getPosition() + offset;
|
||||
|
@@ -1355,9 +1355,18 @@ void CGShipyard::getOutOffsets( std::vector<int3> &offsets ) const
|
||||
// A x S x B
|
||||
// C E G F D
|
||||
offsets = {
|
||||
int3(-3,0,0), int3(1,0,0), //AB
|
||||
int3(-3,1,0), int3(1,1,0), int3(-2,1,0), int3(0,1,0), int3(-1,1,0), //CDEFG
|
||||
int3(-3,-1,0), int3(1,-1,0), int3(-2,-1,0), int3(0,-1,0), int3(-1,-1,0) //HIJKL
|
||||
{-2, 0, 0}, // A
|
||||
{+2, 0, 0}, // B
|
||||
{-2, 1, 0}, // C
|
||||
{+2, 1, 0}, // D
|
||||
{-1, 1, 0}, // E
|
||||
{+1, 1, 0}, // F
|
||||
{0, 1, 0}, // G
|
||||
{-2, -1, 0}, // H
|
||||
{+2, -1, 0}, // I
|
||||
{-1, -1, 0}, // G
|
||||
{+1, -1, 0}, // K
|
||||
{0, -1, 0}, // L
|
||||
};
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user