summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2024-12-22 12:43:31 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2024-12-22 12:43:31 +0000
commitc5f1f0b1b82b0672768992fd324adce9f379f9a7 (patch)
tree3dd064888461a611379dd259aabc45a6fb56a8ac
parentStore a generation number for GeoData (diff)
downloadilt-c5f1f0b1b82b0672768992fd324adce9f379f9a7.tar.bz2
ilt-c5f1f0b1b82b0672768992fd324adce9f379f9a7.tar.xz
ilt-c5f1f0b1b82b0672768992fd324adce9f379f9a7.zip
Update terrain meshes as required
-rw-r--r--game/terrain.cpp4
-rw-r--r--game/terrain.h3
2 files changed, 6 insertions, 1 deletions
diff --git a/game/terrain.cpp b/game/terrain.cpp
index bb8e3ce..e7508d0 100644
--- a/game/terrain.cpp
+++ b/game/terrain.cpp
@@ -66,6 +66,10 @@ Terrain::generateMeshes()
void
Terrain::tick(TickDuration)
{
+ if (const auto newGeneration = geoData->getGeneration(); newGeneration != geoGeneration) {
+ generateMeshes();
+ geoGeneration = newGeneration;
+ }
}
void
diff --git a/game/terrain.h b/game/terrain.h
index 7d074cf..c9d09fe 100644
--- a/game/terrain.h
+++ b/game/terrain.h
@@ -27,10 +27,11 @@ public:
RGB colourBias;
};
+private:
void generateMeshes();
-private:
std::shared_ptr<GeoData> geoData;
Collection<MeshT<Vertex>, false> meshes;
Texture::Ptr grass;
+ size_t geoGeneration {};
};