Revert "Project modernization (#630)"

This code was not tested and breaks in Release builds, reverting to restore
functionality of the nightly. All in-game menus do not work and generating
a world crashes.

This reverts commit a9be52c41a.
This commit is contained in:
Loki Rautio
2026-03-07 21:12:22 -06:00
parent a9be52c41a
commit 087b7e7abf
1373 changed files with 19449 additions and 19903 deletions

View File

@@ -79,7 +79,7 @@ NetherBridgePieces::PieceWeight *NetherBridgePieces::castlePieceWeights[NetherBr
NetherBridgePieces::NetherBridgePiece *NetherBridgePieces::findAndCreateBridgePieceFactory(NetherBridgePieces::PieceWeight *piece, list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int depth)
{
EPieceClass pieceClass = piece->pieceClass;
NetherBridgePiece *structurePiece = nullptr;
NetherBridgePiece *structurePiece = NULL;
if (pieceClass == EPieceClass_BridgeStraight)
{
@@ -204,7 +204,7 @@ NetherBridgePieces::NetherBridgePiece *NetherBridgePieces::NetherBridgePiece::ge
}
NetherBridgePiece *structurePiece = findAndCreateBridgePieceFactory(piece, pieces, random, footX, footY, footZ, direction, depth);
if (structurePiece != nullptr)
if (structurePiece != NULL)
{
piece->placeCount++;
startPiece->previousPiece = piece;
@@ -236,7 +236,7 @@ StructurePiece *NetherBridgePieces::NetherBridgePiece::generateAndAddPiece(Start
availablePieces = &startPiece->availableCastlePieces;
}
StructurePiece *newPiece = generatePiece(startPiece, availablePieces, pieces, random, footX, footY, footZ, direction, depth + 1);
if (newPiece != nullptr)
if (newPiece != NULL)
{
pieces->push_back(newPiece);
startPiece->pendingChildren.push_back(newPiece);
@@ -257,7 +257,7 @@ StructurePiece *NetherBridgePieces::NetherBridgePiece::generateChildForward(Star
case Direction::EAST:
return generateAndAddPiece(startPiece, pieces, random, boundingBox->x1 + 1, boundingBox->y0 + yOff, boundingBox->z0 + xOff, orientation, getGenDepth(), isCastle);
}
return nullptr;
return NULL;
}
StructurePiece *NetherBridgePieces::NetherBridgePiece::generateChildLeft(StartPiece *startPiece, list<StructurePiece *> *pieces, Random *random, int yOff, int zOff, bool isCastle)
@@ -273,7 +273,7 @@ StructurePiece *NetherBridgePieces::NetherBridgePiece::generateChildLeft(StartPi
case Direction::EAST:
return generateAndAddPiece(startPiece, pieces, random, boundingBox->x0 + zOff, boundingBox->y0 + yOff, boundingBox->z0 - 1, Direction::NORTH, getGenDepth(), isCastle);
}
return nullptr;
return NULL;
}
StructurePiece *NetherBridgePieces::NetherBridgePiece::generateChildRight(StartPiece *startPiece, list<StructurePiece *> *pieces, Random *random, int yOff, int zOff, bool isCastle)
@@ -289,14 +289,14 @@ StructurePiece *NetherBridgePieces::NetherBridgePiece::generateChildRight(StartP
case Direction::EAST:
return generateAndAddPiece(startPiece, pieces, random, boundingBox->x0 + zOff, boundingBox->y0 + yOff, boundingBox->z1 + 1, Direction::SOUTH, getGenDepth(), isCastle);
}
return nullptr;
return NULL;
}
bool NetherBridgePieces::NetherBridgePiece::isOkBox(BoundingBox *box, StartPiece *startPiece)
{
bool bIsOk = false;
if(box != nullptr)
if(box != NULL)
{
if( box->y0 > LOWEST_Y_POSITION ) bIsOk = true;
int xzSize = (startPiece->m_level->getLevelData()->getXZSize() / startPiece->m_level->getLevelData()->getHellScale()); //HellRandomLevelSource::XZSIZE;
@@ -368,20 +368,20 @@ NetherBridgePieces::BridgeStraight::BridgeStraight(int genDepth, Random *random,
void NetherBridgePieces::BridgeStraight::addChildren(StructurePiece *startPiece, list<StructurePiece *> *pieces, Random *random)
{
generateChildForward(static_cast<StartPiece *>(startPiece), pieces, random, 1, 3, false);
generateChildForward((StartPiece *) startPiece, pieces, random, 1, 3, false);
}
NetherBridgePieces::BridgeStraight *NetherBridgePieces::BridgeStraight::createPiece(list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int genDepth)
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -1, -3, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new BridgeStraight(genDepth, random, box, direction);
@@ -441,13 +441,13 @@ NetherBridgePieces::BridgeEndFiller *NetherBridgePieces::BridgeEndFiller::create
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -1, -3, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new BridgeEndFiller(genDepth, random, box, direction);
@@ -540,22 +540,22 @@ NetherBridgePieces::BridgeCrossing::BridgeCrossing(Random *random, int west, int
void NetherBridgePieces::BridgeCrossing::addChildren(StructurePiece *startPiece, list<StructurePiece *> *pieces, Random *random)
{
generateChildForward(static_cast<StartPiece *>(startPiece), pieces, random, 8, 3, false);
generateChildLeft(static_cast<StartPiece *>(startPiece), pieces, random, 3, 8, false);
generateChildRight(static_cast<StartPiece *>(startPiece), pieces, random, 3, 8, false);
generateChildForward((StartPiece *) startPiece, pieces, random, 8, 3, false);
generateChildLeft((StartPiece *) startPiece, pieces, random, 3, 8, false);
generateChildRight((StartPiece *) startPiece, pieces, random, 3, 8, false);
}
NetherBridgePieces::BridgeCrossing *NetherBridgePieces::BridgeCrossing::createPiece(list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int genDepth)
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -8, -3, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new BridgeCrossing(genDepth, random, box, direction);
@@ -612,12 +612,12 @@ bool NetherBridgePieces::BridgeCrossing::postProcess(Level *level, Random *rando
NetherBridgePieces::StartPiece::StartPiece()
{
// for reflection
previousPiece = nullptr;
previousPiece = NULL;
}
NetherBridgePieces::StartPiece::StartPiece(Random *random, int west, int north, Level *level) : BridgeCrossing(random, west, north)
{
previousPiece = nullptr;
previousPiece = NULL;
m_level = level;
for( int i = 0; i < BRIDGE_PIECEWEIGHTS_COUNT; i++ )
@@ -659,22 +659,22 @@ NetherBridgePieces::RoomCrossing::RoomCrossing(int genDepth, Random *random, Bou
void NetherBridgePieces::RoomCrossing::addChildren(StructurePiece *startPiece, list<StructurePiece *> *pieces, Random *random)
{
generateChildForward(static_cast<StartPiece *>(startPiece), pieces, random, 2, 0, false);
generateChildLeft(static_cast<StartPiece *>(startPiece), pieces, random, 0, 2, false);
generateChildRight(static_cast<StartPiece *>(startPiece), pieces, random, 0, 2, false);
generateChildForward((StartPiece *) startPiece, pieces, random, 2, 0, false);
generateChildLeft((StartPiece *) startPiece, pieces, random, 0, 2, false);
generateChildRight((StartPiece *) startPiece, pieces, random, 0, 2, false);
}
NetherBridgePieces::RoomCrossing *NetherBridgePieces::RoomCrossing::createPiece(list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int genDepth)
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -2, 0, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new RoomCrossing(genDepth, random, box, direction);
@@ -731,20 +731,20 @@ NetherBridgePieces::StairsRoom::StairsRoom(int genDepth, Random *random, Boundin
void NetherBridgePieces::StairsRoom::addChildren(StructurePiece *startPiece, list<StructurePiece *> *pieces, Random *random)
{
generateChildRight(static_cast<StartPiece *>(startPiece), pieces, random, 6, 2, false);
generateChildRight((StartPiece *) startPiece, pieces, random, 6, 2, false);
}
NetherBridgePieces::StairsRoom *NetherBridgePieces::StairsRoom::createPiece(list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int genDepth)
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -2, 0, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new StairsRoom(genDepth, random, box, direction);
@@ -812,13 +812,13 @@ NetherBridgePieces::MonsterThrone *NetherBridgePieces::MonsterThrone::createPiec
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -2, 0, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new MonsterThrone(genDepth, random, box, direction);
@@ -873,7 +873,7 @@ bool NetherBridgePieces::MonsterThrone::postProcess(Level *level, Random *random
hasPlacedMobSpawner = true;
level->setTileAndData(x, y, z, Tile::mobSpawner_Id, 0, Tile::UPDATE_CLIENTS);
shared_ptr<MobSpawnerTileEntity> entity = dynamic_pointer_cast<MobSpawnerTileEntity>( level->getTileEntity(x, y, z) );
if (entity != nullptr) entity->getSpawner()->setEntityId(L"Blaze");
if (entity != NULL) entity->getSpawner()->setEntityId(L"Blaze");
}
}
@@ -901,20 +901,20 @@ NetherBridgePieces::CastleEntrance::CastleEntrance(int genDepth, Random *random,
void NetherBridgePieces::CastleEntrance::addChildren(StructurePiece *startPiece, list<StructurePiece *> *pieces, Random *random)
{
generateChildForward(static_cast<StartPiece *>(startPiece), pieces, random, 5, 3, true);
generateChildForward((StartPiece *) startPiece, pieces, random, 5, 3, true);
}
NetherBridgePieces::CastleEntrance *NetherBridgePieces::CastleEntrance::createPiece(list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int genDepth)
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -5, -3, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new CastleEntrance(genDepth, random, box, direction);
@@ -1030,21 +1030,21 @@ NetherBridgePieces::CastleStalkRoom::CastleStalkRoom(int genDepth, Random *rando
void NetherBridgePieces::CastleStalkRoom::addChildren(StructurePiece *startPiece, list<StructurePiece *> *pieces, Random *random)
{
generateChildForward(static_cast<StartPiece *>(startPiece), pieces, random, 5, 3, true);
generateChildForward(static_cast<StartPiece *>(startPiece), pieces, random, 5, 11, true);
generateChildForward((StartPiece *) startPiece, pieces, random, 5, 3, true);
generateChildForward((StartPiece *) startPiece, pieces, random, 5, 11, true);
}
NetherBridgePieces::CastleStalkRoom *NetherBridgePieces::CastleStalkRoom::createPiece(list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int genDepth)
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -5, -3, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new CastleStalkRoom(genDepth, random, box, direction);
@@ -1196,7 +1196,7 @@ NetherBridgePieces::CastleSmallCorridorPiece::CastleSmallCorridorPiece(int genDe
void NetherBridgePieces::CastleSmallCorridorPiece::addChildren(StructurePiece *startPiece, list<StructurePiece *> *pieces, Random *random)
{
generateChildForward(static_cast<StartPiece *>(startPiece), pieces, random, 1, 0, true);
generateChildForward((StartPiece *) startPiece, pieces, random, 1, 0, true);
}
NetherBridgePieces::CastleSmallCorridorPiece *NetherBridgePieces::CastleSmallCorridorPiece::createPiece(list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int genDepth)
@@ -1204,13 +1204,13 @@ NetherBridgePieces::CastleSmallCorridorPiece *NetherBridgePieces::CastleSmallCor
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -1, 0, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new CastleSmallCorridorPiece(genDepth, random, box, direction);
@@ -1259,22 +1259,22 @@ NetherBridgePieces::CastleSmallCorridorCrossingPiece::CastleSmallCorridorCrossin
void NetherBridgePieces::CastleSmallCorridorCrossingPiece::addChildren(StructurePiece *startPiece, list<StructurePiece *> *pieces, Random *random)
{
generateChildForward(static_cast<StartPiece *>(startPiece), pieces, random, 1, 0, true);
generateChildLeft(static_cast<StartPiece *>(startPiece), pieces, random, 0, 1, true);
generateChildRight(static_cast<StartPiece *>(startPiece), pieces, random, 0, 1, true);
generateChildForward((StartPiece *) startPiece, pieces, random, 1, 0, true);
generateChildLeft((StartPiece *) startPiece, pieces, random, 0, 1, true);
generateChildRight((StartPiece *) startPiece, pieces, random, 0, 1, true);
}
NetherBridgePieces::CastleSmallCorridorCrossingPiece *NetherBridgePieces::CastleSmallCorridorCrossingPiece::createPiece(list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int genDepth)
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -1, 0, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new CastleSmallCorridorCrossingPiece(genDepth, random, box, direction);
@@ -1337,20 +1337,20 @@ void NetherBridgePieces::CastleSmallCorridorRightTurnPiece::addAdditonalSaveData
void NetherBridgePieces::CastleSmallCorridorRightTurnPiece::addChildren(StructurePiece *startPiece, list<StructurePiece *> *pieces, Random *random)
{
generateChildRight(static_cast<StartPiece *>(startPiece), pieces, random, 0, 1, true);
generateChildRight((StartPiece *) startPiece, pieces, random, 0, 1, true);
}
NetherBridgePieces::CastleSmallCorridorRightTurnPiece *NetherBridgePieces::CastleSmallCorridorRightTurnPiece::createPiece(list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int genDepth)
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -1, 0, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new CastleSmallCorridorRightTurnPiece(genDepth, random, box, direction);
@@ -1429,20 +1429,20 @@ void NetherBridgePieces::CastleSmallCorridorLeftTurnPiece::addAdditonalSaveData(
void NetherBridgePieces::CastleSmallCorridorLeftTurnPiece::addChildren(StructurePiece *startPiece, list<StructurePiece *> *pieces, Random *random)
{
generateChildLeft(static_cast<StartPiece *>(startPiece), pieces, random, 0, 1, true);
generateChildLeft((StartPiece *) startPiece, pieces, random, 0, 1, true);
}
NetherBridgePieces::CastleSmallCorridorLeftTurnPiece *NetherBridgePieces::CastleSmallCorridorLeftTurnPiece::createPiece(list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int genDepth)
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -1, 0, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new CastleSmallCorridorLeftTurnPiece(genDepth, random, box, direction);
@@ -1505,20 +1505,20 @@ NetherBridgePieces::CastleCorridorStairsPiece::CastleCorridorStairsPiece(int gen
void NetherBridgePieces::CastleCorridorStairsPiece::addChildren(StructurePiece *startPiece, list<StructurePiece *> *pieces, Random *random)
{
generateChildForward(static_cast<StartPiece *>(startPiece), pieces, random, 1, 0, true);
generateChildForward((StartPiece *) startPiece, pieces, random, 1, 0, true);
}
NetherBridgePieces::CastleCorridorStairsPiece *NetherBridgePieces::CastleCorridorStairsPiece::createPiece(list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int genDepth)
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -1, -7, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new CastleCorridorStairsPiece(genDepth, random, box, direction);
@@ -1586,21 +1586,21 @@ void NetherBridgePieces::CastleCorridorTBalconyPiece::addChildren(StructurePiece
zOff = 5;
}
generateChildLeft(static_cast<StartPiece *>(startPiece), pieces, random, 0, zOff, random->nextInt(8) > 0);
generateChildRight(static_cast<StartPiece *>(startPiece), pieces, random, 0, zOff, random->nextInt(8) > 0);
generateChildLeft((StartPiece *) startPiece, pieces, random, 0, zOff, random->nextInt(8) > 0);
generateChildRight((StartPiece *) startPiece, pieces, random, 0, zOff, random->nextInt(8) > 0);
}
NetherBridgePieces::CastleCorridorTBalconyPiece *NetherBridgePieces::CastleCorridorTBalconyPiece::createPiece(list<StructurePiece *> *pieces, Random *random, int footX, int footY, int footZ, int direction, int genDepth)
{
BoundingBox *box = BoundingBox::orientBox(footX, footY, footZ, -3, 0, 0, width, height, depth, direction);
StartPiece *startPiece = nullptr;
if(pieces != nullptr) startPiece = static_cast<NetherBridgePieces::StartPiece *>(pieces->front());
StartPiece *startPiece = NULL;
if(pieces != NULL) startPiece = ((NetherBridgePieces::StartPiece *) pieces->front());
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != nullptr)
if (!isOkBox(box, startPiece) || StructurePiece::findCollisionPiece(pieces, box) != NULL)
{
delete box;
return nullptr;
return NULL;
}
return new CastleCorridorTBalconyPiece(genDepth, random, box, direction);