summaryrefslogtreecommitdiffstats
path: root/src/Generating
diff options
context:
space:
mode:
Diffstat (limited to 'src/Generating')
-rw-r--r--src/Generating/CMakeLists.txt9
-rw-r--r--src/Generating/FinishGen.cpp6
-rw-r--r--src/Generating/StructGen.cpp135
3 files changed, 84 insertions, 66 deletions
diff --git a/src/Generating/CMakeLists.txt b/src/Generating/CMakeLists.txt
index 67e0e8b22..02f94729f 100644
--- a/src/Generating/CMakeLists.txt
+++ b/src/Generating/CMakeLists.txt
@@ -71,14 +71,7 @@ SET (HDRS
)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- set_source_files_properties(BioGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
- set_source_files_properties(CompoGenBiomal.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors ")
- set_source_files_properties(ComposableGenerator.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum")
- set_source_files_properties(FinishGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum -Wno-error=switch")
- set_source_files_properties(PieceGenerator.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
- set_source_files_properties(Prefab.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
- set_source_files_properties(StructGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=switch-enum -Wno-error=switch")
- set_source_files_properties(VillageGen.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors -Wno-error=switch-enum")
+ set_source_files_properties(CompoGenBiomal.cpp PROPERTIES COMPILE_FLAGS "-Wno-error=global-constructors")
endif()
if(NOT MSVC)
diff --git a/src/Generating/FinishGen.cpp b/src/Generating/FinishGen.cpp
index fe5ce82be..aa7dd86c1 100644
--- a/src/Generating/FinishGen.cpp
+++ b/src/Generating/FinishGen.cpp
@@ -586,9 +586,11 @@ bool cFinishGenVines::IsJungleVariant(EMCSBiome a_Biome)
{
return true;
}
+ default:
+ {
+ return false;
+ }
}
-
- return false;
}
diff --git a/src/Generating/StructGen.cpp b/src/Generating/StructGen.cpp
index a36ebc608..d0e8da26a 100644
--- a/src/Generating/StructGen.cpp
+++ b/src/Generating/StructGen.cpp
@@ -198,65 +198,88 @@ int cStructGenTrees::GetNumTrees(
const cChunkDef::BiomeMap & a_Biomes
)
{
- int NumTrees = 0;
- for (int x = 0; x < cChunkDef::Width; x++) for (int z = 0; z < cChunkDef::Width; z++)
+ auto BiomeTrees = [](EMCSBiome a_Biome)
{
- int Add = 0;
- switch (cChunkDef::GetBiome(a_Biomes, x, z))
+ switch (a_Biome)
{
- case biOcean: Add = 2; break;
- case biDesert: Add = 0; break;
- case biPlains: Add = 1; break;
- case biExtremeHills: Add = 3; break;
- case biForest: Add = 30; break;
- case biTaiga: Add = 30; break;
- case biSwampland: Add = 8; break;
- case biIcePlains: Add = 1; break;
- case biIceMountains: Add = 1; break;
- case biMushroomIsland: Add = 3; break;
- case biMushroomShore: Add = 3; break;
- case biForestHills: Add = 20; break;
- case biTaigaHills: Add = 20; break;
- case biExtremeHillsEdge: Add = 5; break;
- case biJungle: Add = 120; break;
- case biJungleHills: Add = 90; break;
- case biJungleEdge: Add = 90; break;
- case biBirchForest: Add = 30; break;
- case biBirchForestHills: Add = 20; break;
- case biRoofedForest: Add = 50; break;
- case biColdTaiga: Add = 20; break;
- case biColdTaigaHills: Add = 15; break;
- case biMegaTaiga: Add = 30; break;
- case biMegaTaigaHills: Add = 25; break;
- case biExtremeHillsPlus: Add = 3; break;
- case biSavanna: Add = 8; break;
- case biSavannaPlateau: Add = 12; break;
- case biMesa: Add = 2; break;
- case biMesaPlateauF: Add = 8; break;
- case biMesaPlateau: Add = 8; break;
- case biSunflowerPlains: Add = 1; break;
- case biDesertM: Add = 0; break;
- case biExtremeHillsM: Add = 4; break;
- case biFlowerForest: Add = 30; break;
- case biTaigaM: Add = 30; break;
- case biSwamplandM: Add = 8; break;
- case biIcePlainsSpikes: Add = 1; break;
- case biJungleM: Add = 120; break;
- case biJungleEdgeM: Add = 90; break;
- case biBirchForestM: Add = 30; break;
- case biBirchForestHillsM: Add = 20; break;
- case biRoofedForestM: Add = 40; break;
- case biColdTaigaM: Add = 30; break;
- case biMegaSpruceTaiga: Add = 30; break;
- case biMegaSpruceTaigaHills: Add = 30; break;
- case biExtremeHillsPlusM: Add = 4; break;
- case biSavannaM: Add = 8; break;
- case biSavannaPlateauM: Add = 12; break;
- case biMesaBryce: Add = 4; break;
- case biMesaPlateauFM: Add = 12; break;
- case biMesaPlateauM: Add = 12; break;
+ case biOcean: return 2;
+ case biPlains: return 1;
+ case biDesert: return 0;
+ case biExtremeHills: return 3;
+ case biForest: return 30;
+ case biTaiga: return 30;
+ case biSwampland: return 8;
+ case biRiver: return 0;
+ case biNether: return 0;
+ case biEnd: return 0;
+ case biFrozenOcean: return 0;
+ case biFrozenRiver: return 0;
+ case biIcePlains: return 1;
+ case biIceMountains: return 1;
+ case biMushroomIsland: return 3;
+ case biMushroomShore: return 3;
+ case biBeach: return 0;
+ case biDesertHills: return 0;
+ case biForestHills: return 20;
+ case biTaigaHills: return 20;
+ case biExtremeHillsEdge: return 5;
+ case biJungle: return 120;
+ case biJungleHills: return 90;
+ case biJungleEdge: return 90;
+ case biDeepOcean: return 0;
+ case biStoneBeach: return 0;
+ case biColdBeach: return 0;
+ case biBirchForest: return 30;
+ case biBirchForestHills: return 20;
+ case biRoofedForest: return 50;
+ case biColdTaiga: return 20;
+ case biColdTaigaHills: return 15;
+ case biMegaTaiga: return 30;
+ case biMegaTaigaHills: return 25;
+ case biExtremeHillsPlus: return 3;
+ case biSavanna: return 8;
+ case biSavannaPlateau: return 12;
+ case biMesa: return 2;
+ case biMesaPlateauF: return 8;
+ case biMesaPlateau: return 8;
+ // Biome variants
+ case biSunflowerPlains: return 1;
+ case biDesertM: return 0;
+ case biExtremeHillsM: return 4;
+ case biFlowerForest: return 30;
+ case biTaigaM: return 30;
+ case biSwamplandM: return 8;
+ case biIcePlainsSpikes: return 1;
+ case biJungleM: return 120;
+ case biJungleEdgeM: return 90;
+ case biBirchForestM: return 30;
+ case biBirchForestHillsM: return 20;
+ case biRoofedForestM: return 40;
+ case biColdTaigaM: return 30;
+ case biMegaSpruceTaiga: return 30;
+ case biMegaSpruceTaigaHills: return 30;
+ case biExtremeHillsPlusM: return 4;
+ case biSavannaM: return 8;
+ case biSavannaPlateauM: return 12;
+ case biMesaBryce: return 4;
+ case biMesaPlateauFM: return 12;
+ case biMesaPlateauM: return 12;
+ // Non-biomes
+ case biInvalidBiome:
+ case biNumBiomes:
+ case biVariant:
+ case biNumVariantBiomes:
+ {
+ ASSERT(!"Invalid biome in cStructGenTrees::GetNumTrees");
+ return 0;
+ }
}
- NumTrees += Add;
+ };
+
+ int NumTrees = 0;
+ for (auto Biome : a_Biomes)
+ {
+ NumTrees += BiomeTrees(Biome);
}
return NumTrees / 1024;
}