diff options
Diffstat (limited to '')
-rw-r--r-- | src/Generating/NetherFortGen.cpp | 53 |
1 files changed, 49 insertions, 4 deletions
diff --git a/src/Generating/NetherFortGen.cpp b/src/Generating/NetherFortGen.cpp index 02779a8a3..d90fdeb0a 100644 --- a/src/Generating/NetherFortGen.cpp +++ b/src/Generating/NetherFortGen.cpp @@ -71,6 +71,40 @@ public: /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Performance test of the NetherFort generator: + +/* +#include "OSSupport/Timer.h" +static class cNetherFortPerfTest +{ +public: + cNetherFortPerfTest(void) + { + cTimer Timer; + long long StartTime = Timer.GetNowTime(); + + const int GridSize = 512; + const int MaxDepth = 12; + const int NumIterations = 100; + for (int i = 0; i < NumIterations; i++) + { + cNetherFortGen FortGen(i, GridSize, MaxDepth); + delete new cNetherFortGen::cNetherFort(FortGen, 0, 0, GridSize, MaxDepth, i); + } + + long long EndTime = Timer.GetNowTime(); + printf("%d forts took %lld msec (%f sec) to generate\n", NumIterations, EndTime - StartTime, ((double)(EndTime - StartTime)) / 1000); + exit(0); + } + +} g_PerfTest; +//*/ + + + + + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // cNetherFortGen: cNetherFortGen::cNetherFortGen(int a_Seed, int a_GridSize, int a_MaxDepth) : @@ -80,9 +114,9 @@ cNetherFortGen::cNetherFortGen(int a_Seed, int a_GridSize, int a_MaxDepth) : m_MaxDepth(a_MaxDepth) { // Initialize the prefabs: - for (size_t i = 0; i < g_NetherFortPrefabs1Count; i++) + for (size_t i = 0; i < g_NetherFortPrefabsCount; i++) { - cPrefab * Prefab = new cPrefab(g_NetherFortPrefabs1[i]); + cPrefab * Prefab = new cPrefab(g_NetherFortPrefabs[i]); m_AllPieces.push_back(Prefab); if (Prefab->HasConnectorType(0)) { @@ -95,15 +129,17 @@ cNetherFortGen::cNetherFortGen(int a_Seed, int a_GridSize, int a_MaxDepth) : } // Initialize the starting piece prefabs: - for (size_t i = 0; i < g_NetherFortStartingPrefabs1Count; i++) + for (size_t i = 0; i < g_NetherFortStartingPrefabsCount; i++) { - m_StartingPieces.push_back(new cPrefab(g_NetherFortStartingPrefabs1[i])); + m_StartingPieces.push_back(new cPrefab(g_NetherFortStartingPrefabs[i])); } + /* // DEBUG: Try one round of placement: cPlacedPieces Pieces; cBFSPieceGenerator pg(*this, a_Seed); pg.PlacePieces(0, 64, 0, a_MaxDepth, Pieces); + */ } @@ -256,6 +292,15 @@ cPieces cNetherFortGen::GetStartingPieces(void) +int cNetherFortGen::GetPieceWeight(const cPlacedPiece & a_PlacedPiece, const cPiece::cConnector & a_ExistingConnector, const cPiece & a_NewPiece) +{ + return ((const cPrefab &)a_NewPiece).GetPieceWeight(a_PlacedPiece, a_ExistingConnector); +} + + + + + void cNetherFortGen::PiecePlaced(const cPiece & a_Piece) { UNUSED(a_Piece); |