diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/crepe/ScriptSystem.cpp | 2 | ||||
| -rw-r--r-- | src/crepe/api/BehaviorScript.cpp | 7 | ||||
| -rw-r--r-- | src/crepe/api/BehaviorScript.h | 6 | ||||
| -rw-r--r-- | src/crepe/api/BehaviorScript.hpp | 3 | 
4 files changed, 7 insertions, 11 deletions
| diff --git a/src/crepe/ScriptSystem.cpp b/src/crepe/ScriptSystem.cpp index 0537c16..1a7bff4 100644 --- a/src/crepe/ScriptSystem.cpp +++ b/src/crepe/ScriptSystem.cpp @@ -40,7 +40,7 @@ forward_list<Script *> ScriptSystem::get_scripts() {  	for (auto behavior_script_ref : behavior_scripts) {  		BehaviorScript & behavior_script = behavior_script_ref.get(); -		Script * script = behavior_script.script; +		Script * script = behavior_script.script.get();  		if (script == nullptr) continue;  		scripts.push_front(script);  	} diff --git a/src/crepe/api/BehaviorScript.cpp b/src/crepe/api/BehaviorScript.cpp index e8a85dd..7a93f10 100644 --- a/src/crepe/api/BehaviorScript.cpp +++ b/src/crepe/api/BehaviorScript.cpp @@ -9,10 +9,3 @@ BehaviorScript::BehaviorScript() {  	dbg_trace();  } -BehaviorScript::~BehaviorScript() { -	if (this->script != nullptr) { -		delete this->script; -		this->script = nullptr; -	} -} - diff --git a/src/crepe/api/BehaviorScript.h b/src/crepe/api/BehaviorScript.h index e197991..756c2ca 100644 --- a/src/crepe/api/BehaviorScript.h +++ b/src/crepe/api/BehaviorScript.h @@ -1,5 +1,7 @@  #pragma once +#include <memory> +  #include "../Component.h"  namespace crepe { @@ -16,7 +18,7 @@ protected:  	friend class crepe::ComponentManager;  	BehaviorScript();  public: -	virtual ~BehaviorScript(); +	virtual ~BehaviorScript() = default;  public:  	template<class T> @@ -24,7 +26,7 @@ public:  protected:  	friend class crepe::ScriptSystem; -	Script * script = nullptr; +	std::unique_ptr<Script> script = nullptr;  };  } diff --git a/src/crepe/api/BehaviorScript.hpp b/src/crepe/api/BehaviorScript.hpp index 0401c0d..9a1f427 100644 --- a/src/crepe/api/BehaviorScript.hpp +++ b/src/crepe/api/BehaviorScript.hpp @@ -11,7 +11,8 @@ template<class T>  BehaviorScript & BehaviorScript::set_script() {  	static_assert(std::is_base_of<Script, T>::value);  	dbg_trace(); -	this->script = new T(); +	Script * s = new T(); +	this->script = std::unique_ptr<Script>(s);  	return *this;  } |