diff --git a/src/scripts/CMakeLists.txt b/src/scripts/CMakeLists.txt index 1c8362ba..8a08672f 100644 --- a/src/scripts/CMakeLists.txt +++ b/src/scripts/CMakeLists.txt @@ -32,12 +32,12 @@ foreach(_scriptDir ${children}) if(NOT ${_scriptname} MATCHES "ScriptLoader") if(ScriptIncludes) - set(ScriptIncludes "${ScriptIncludes}\n#include \"${_script}\"") + set(ScriptIncludes "${ScriptIncludes}\nextern Sapphire::ScriptAPI::ScriptObject* makeScript${_scriptname}();") else() - set(ScriptIncludes "#include \"${_script}\"") + set(ScriptIncludes "extern Sapphire::ScriptAPI::ScriptObject* makeScript${_scriptname}();") endif() - set(ScriptNames "${ScriptNames} static_cast< Sapphire::ScriptAPI::ScriptObject* >( new ${_scriptname} ),\n") + set(ScriptNames "${ScriptNames} makeScript${_scriptname}(),\n") endif() endforeach() diff --git a/src/scripts/ScriptObject.h b/src/scripts/ScriptObject.h index f5db9532..94735962 100644 --- a/src/scripts/ScriptObject.h +++ b/src/scripts/ScriptObject.h @@ -6,4 +6,6 @@ #include +#define EXPOSE_SCRIPT( className ) Sapphire::ScriptAPI::ScriptObject* makeScript##className() { return new className; } + #endif //SAPPHIRE_SCRIPTOBJECT_H diff --git a/src/scripts/action/ActionReturn6.cpp b/src/scripts/action/ActionReturn6.cpp index 3734a060..8c0ec11a 100644 --- a/src/scripts/action/ActionReturn6.cpp +++ b/src/scripts/action/ActionReturn6.cpp @@ -15,4 +15,6 @@ public: { player.returnToHomepoint(); } -}; \ No newline at end of file +}; + +EXPOSE_SCRIPT( ActionReturn6 ); \ No newline at end of file diff --git a/src/scripts/action/ActionSprint3.cpp b/src/scripts/action/ActionSprint3.cpp index bf725e63..8d123bf7 100644 --- a/src/scripts/action/ActionSprint3.cpp +++ b/src/scripts/action/ActionSprint3.cpp @@ -14,4 +14,6 @@ public: { player.addStatusEffectByIdIfNotExist( 50, 20000, player, 30 ); } -}; \ No newline at end of file +}; + +EXPOSE_SCRIPT( ActionSprint3 ); \ No newline at end of file diff --git a/src/scripts/action/ScriptLoader.cpp b/src/scripts/action/ScriptLoader.cpp index 53a1a372..492a2b69 100644 --- a/src/scripts/action/ScriptLoader.cpp +++ b/src/scripts/action/ScriptLoader.cpp @@ -1,12 +1,12 @@ #include