summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/engine/World.cpp7
-rw-r--r--src/engine/World.h1
-rw-r--r--src/port/Game.cpp2
3 files changed, 9 insertions, 1 deletions
diff --git a/src/engine/World.cpp b/src/engine/World.cpp
index d1619ae18..b35a39d91 100644
--- a/src/engine/World.cpp
+++ b/src/engine/World.cpp
@@ -273,3 +273,10 @@ void World::CleanWorld(void) {
Lakitus.clear();
Sky::Instance->GetSkyActors().clear();
}
+
+void World::CleanActors(void) {
+ World::Reset();
+ Actors.clear();
+ Lakitus.clear();
+ Objects.clear();
+}
diff --git a/src/engine/World.h b/src/engine/World.h
index 96b620bb6..6bc60ca2b 100644
--- a/src/engine/World.h
+++ b/src/engine/World.h
@@ -103,6 +103,7 @@ public:
World* GetWorld(void);
void CleanWorld(void);
+ void CleanActors(void);
// getter/setter for current track
Track* GetTrack() {
diff --git a/src/port/Game.cpp b/src/port/Game.cpp
index e5ac7f45c..a310cb845 100644
--- a/src/port/Game.cpp
+++ b/src/port/Game.cpp
@@ -366,7 +366,7 @@ void CM_DrawStaticMeshActors() {
void CM_BeginPlay() {
static bool tour = false;
auto track = GetWorld()->GetTrack();
- GetWorld()->Actors.clear();
+ GetWorld()->CleanActors();
if (nullptr == track) {
return;