diff --git a/PlanetExplorerGameDemo/src/BehaviourScripts/GravityHolder.cpp b/PlanetExplorerGameDemo/src/BehaviourScripts/GravityHolder.cpp index 45c5e25..dcca6c8 100644 --- a/PlanetExplorerGameDemo/src/BehaviourScripts/GravityHolder.cpp +++ b/PlanetExplorerGameDemo/src/BehaviourScripts/GravityHolder.cpp @@ -36,7 +36,6 @@ GravityHolder::GravityHolder(float gravityWell) GravityHolder::~GravityHolder() { - Transformable::HardDelete(planetMapRing, false); delete mat; delete mesh; } diff --git a/PlanetExplorerGameDemo/src/BehaviourScripts/PlanetRotater.cpp b/PlanetExplorerGameDemo/src/BehaviourScripts/PlanetRotater.cpp index 19ac987..17f619f 100644 --- a/PlanetExplorerGameDemo/src/BehaviourScripts/PlanetRotater.cpp +++ b/PlanetExplorerGameDemo/src/BehaviourScripts/PlanetRotater.cpp @@ -14,7 +14,8 @@ PlanetRotater::PlanetRotater(float distance) PlanetRotater::~PlanetRotater() { - Transformable::HardDelete(planetMapRing, false); + planetMapRing->SetParent(nullptr); + Transformable::HardDelete(planetMapRing, true); delete mat; delete mesh; } diff --git a/PlanetExplorerGameDemo/src/BehaviourScripts/SpaceController.cpp b/PlanetExplorerGameDemo/src/BehaviourScripts/SpaceController.cpp index 0cc8a26..3860877 100644 --- a/PlanetExplorerGameDemo/src/BehaviourScripts/SpaceController.cpp +++ b/PlanetExplorerGameDemo/src/BehaviourScripts/SpaceController.cpp @@ -2,6 +2,7 @@ #include "Rendering/PlanetShader.hpp" #include "utils/Time.hpp" #include "BehaviourScripts/Camera.hpp" +#include "Debug.hpp" SpaceController::SpaceController() { diff --git a/PlanetExplorerGameDemo/src/Elements/spaceElements/Asteroid.cpp b/PlanetExplorerGameDemo/src/Elements/spaceElements/Asteroid.cpp index c9bb2c7..301ea9d 100644 --- a/PlanetExplorerGameDemo/src/Elements/spaceElements/Asteroid.cpp +++ b/PlanetExplorerGameDemo/src/Elements/spaceElements/Asteroid.cpp @@ -2,7 +2,7 @@ Transformable *Asteroid::LoadSpace() { - root = new Transformable(name); + root = new Transformable(name, id); Transformable* planet = create(); diff --git a/PlanetExplorerGameDemo/src/Elements/spaceElements/Galaxy.cpp b/PlanetExplorerGameDemo/src/Elements/spaceElements/Galaxy.cpp index 6942694..b6a5dd5 100644 --- a/PlanetExplorerGameDemo/src/Elements/spaceElements/Galaxy.cpp +++ b/PlanetExplorerGameDemo/src/Elements/spaceElements/Galaxy.cpp @@ -7,7 +7,7 @@ Transformable *Galaxy::LoadSpace() { - root = new Transformable(name); + root = new Transformable(name, id); for (auto &&system : systems) { @@ -22,8 +22,6 @@ Transformable *Galaxy::LoadSpace() // position; } - root->id = id; - float grvityWell = GetMaxDistObj(); GravityHolder* holder = new GravityHolder(grvityWell + 4.0f); diff --git a/PlanetExplorerGameDemo/src/Elements/spaceElements/Moon.cpp b/PlanetExplorerGameDemo/src/Elements/spaceElements/Moon.cpp index 8d44937..9a633d5 100644 --- a/PlanetExplorerGameDemo/src/Elements/spaceElements/Moon.cpp +++ b/PlanetExplorerGameDemo/src/Elements/spaceElements/Moon.cpp @@ -4,7 +4,7 @@ Transformable *Moon::LoadSpace() { - root = new Transformable(name); + root = new Transformable(name, id); Transformable* planet = create(); @@ -148,7 +148,7 @@ void Moon::DeleteResources() delete planetMesh; delete landMat; delete planetMat; - Transformable::HardDelete(planetLand, true); + // Transformable::HardDelete(planetLand, true); planetBase->SetParent(nullptr); Transformable::HardDelete(planetBase, false); diff --git a/PlanetExplorerGameDemo/src/Elements/spaceElements/Planet.cpp b/PlanetExplorerGameDemo/src/Elements/spaceElements/Planet.cpp index 15b15fd..f8a74df 100644 --- a/PlanetExplorerGameDemo/src/Elements/spaceElements/Planet.cpp +++ b/PlanetExplorerGameDemo/src/Elements/spaceElements/Planet.cpp @@ -4,10 +4,11 @@ #include "Utilities/Random.hpp" #include "BehaviourScripts/GravityHolder.hpp" #include "BehaviourScripts/SpaceController.hpp" +#include "Debug.hpp" Transformable *Planet::LoadSpace() { - root = new Transformable(name); + root = new Transformable(name, id); Transformable* planet = create(); @@ -23,17 +24,17 @@ Transformable *Planet::LoadSpace() Vector2 pos = rotateKeepDistance(Vector2::zero, {0, moon->distanceToPlanet}, GetRandomFloat(0, 360), moon->distanceToPlanet); moonObj->position = {pos.x, pos.y, -1}; } - - root->id = id; - + return root; } void Planet::UnloadSpace() { + TSE_LOG("Obj count pre unload: " + std::to_string(Transformable::GetTansformableCount())); DeleteResources(); root->SetParent(nullptr); - Transformable::HardDelete(root, true); + Transformable::HardDelete(root, false); + TSE_LOG("Obj count post unload: " + std::to_string(Transformable::GetTansformableCount())); } Transformable *Planet::create() @@ -213,8 +214,8 @@ void Planet::DeleteResources() delete cloudMat; delete landMat; delete planetMat; - Transformable::HardDelete(planetClouds, true); - Transformable::HardDelete(planetLand, true); + // Transformable::HardDelete(planetClouds, true); + // Transformable::HardDelete(planetLand, true); planetBase->SetParent(nullptr); Transformable::HardDelete(planetBase, false); diff --git a/PlanetExplorerGameDemo/src/Elements/spaceElements/PlanetarySystem.cpp b/PlanetExplorerGameDemo/src/Elements/spaceElements/PlanetarySystem.cpp index 3e7be90..7187eb1 100644 --- a/PlanetExplorerGameDemo/src/Elements/spaceElements/PlanetarySystem.cpp +++ b/PlanetExplorerGameDemo/src/Elements/spaceElements/PlanetarySystem.cpp @@ -4,6 +4,7 @@ #include "Utilities/Random.hpp" #include "BehaviourScripts/GravityHolder.hpp" #include "BehaviourScripts/SpaceController.hpp" +#include "Debug.hpp" void PlanetarySystem::DeleteResources() { @@ -19,7 +20,8 @@ void PlanetarySystem::DeleteResources() Transformable *PlanetarySystem::LoadSpace() { - root = new Transformable(name); + if(name == "") name = "root"; + root = new Transformable(name, id); if(stars.size() == 1) { @@ -38,8 +40,6 @@ Transformable *PlanetarySystem::LoadSpace() planetObj->position = {pos.x, pos.y, -1}; } - root->id = id; - float grvityWell = GetMaxPlanetDistance(); GravityHolder* holder = new GravityHolder(grvityWell + 4.0f); @@ -56,7 +56,8 @@ void PlanetarySystem::UnloadSpace() { DeleteResources(); root->SetParent(nullptr); - Transformable::HardDelete(root, true); + Transformable::HardDelete(root, false); + } PlanetarySystem *PlanetarySystem::Load(nlohmann::json json) diff --git a/PlanetExplorerGameDemo/src/Elements/spaceElements/Star.cpp b/PlanetExplorerGameDemo/src/Elements/spaceElements/Star.cpp index 255ca7e..993a9ba 100644 --- a/PlanetExplorerGameDemo/src/Elements/spaceElements/Star.cpp +++ b/PlanetExplorerGameDemo/src/Elements/spaceElements/Star.cpp @@ -151,8 +151,8 @@ void Star::DeleteResources() delete cloudMat; delete landMat; delete planetMat; - Transformable::HardDelete(planetClouds, true); - Transformable::HardDelete(planetLand, true); + // Transformable::HardDelete(planetClouds, true); + // Transformable::HardDelete(planetLand, true); planetBase->SetParent(nullptr); Transformable::HardDelete(planetBase, false); diff --git a/PlanetExplorerGameDemo/src/main.cpp b/PlanetExplorerGameDemo/src/main.cpp index 14d2848..82ad563 100644 --- a/PlanetExplorerGameDemo/src/main.cpp +++ b/PlanetExplorerGameDemo/src/main.cpp @@ -56,7 +56,7 @@ void SetupWindow() TextureHandler::LoadTextures(); currentScene = new Scene(); - Transformable* trans = new Transformable(); + Transformable* trans = new Transformable("Space Controller"); planeteryLayer = new Layer("PlanetsAndStuff"); currentScene->AddLayer(planeteryLayer); planeteryLayer->AddTransformable(trans); @@ -66,7 +66,7 @@ void SetupWindow() SpaceController* controller = (SpaceController*)trans->AddBehaviourScript(new SpaceController(cc)); lc = GalaxyGenerator::GenerateCluster(69); - controller->LoadSpace(lc->galaxies[0]->systems[96]); + controller->LoadSpace(lc->galaxies[0]->systems[96]->planets[0]); #ifdef USE_EDITOR currentScene->AddLayer(&editor->editorLayer); diff --git a/TSE b/TSE index 11e8d34..bf4189b 160000 --- a/TSE +++ b/TSE @@ -1 +1 @@ -Subproject commit 11e8d343af724a65601cc16bff3609d8d8ff6285bb95ffea3c95a0558ba347c2 +Subproject commit bf4189bba00eee06098bd7138c467c5d2fadc08b019b8cd83a6e940013c878b8