summary refs log tree commit diff stats
path: root/src/script_system.cpp
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-02-12 00:33:19 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-02-12 00:33:19 -0500
commit5ecd0f428dd8292a17c5013c525a4f5d3967acb8 (patch)
tree0068b66a1183f822909f115a142fae3869a3b09f /src/script_system.cpp
parent19be2ac58b09c5240a32e6a4f41cd9f6cda03d07 (diff)
downloadtanetane-5ecd0f428dd8292a17c5013c525a4f5d3967acb8.tar.gz
tanetane-5ecd0f428dd8292a17c5013c525a4f5d3967acb8.tar.bz2
tanetane-5ecd0f428dd8292a17c5013c525a4f5d3967acb8.zip
Scripts are organised per-map now
Diffstat (limited to 'src/script_system.cpp')
-rw-r--r--src/script_system.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/script_system.cpp b/src/script_system.cpp index 21d4090..5b9b987 100644 --- a/src/script_system.cpp +++ b/src/script_system.cpp
@@ -120,17 +120,17 @@ void ScriptSystem::tick(double dt) {
120 } 120 }
121} 121}
122 122
123void ScriptSystem::runScript(std::string name) { 123void ScriptSystem::runScript(std::string mapName, std::string scriptName) {
124 if (!loadedScripts_.count(name)) { 124 if (!loadedScripts_.count(mapName)) {
125 engine_.script_file("../res/scripts/" + name + ".lua"); 125 engine_.script_file("../res/scripts/" + mapName + ".lua");
126 loadedScripts_.insert(name); 126 loadedScripts_.insert(mapName);
127 } 127 }
128 128
129 runner_.reset(new sol::thread(sol::thread::create(engine_.lua_state()))); 129 runner_.reset(new sol::thread(sol::thread::create(engine_.lua_state())));
130 callable_.reset(new sol::coroutine(runner_->state().get<sol::function>(name))); 130 callable_.reset(new sol::coroutine(runner_->state().traverse_get<sol::function>(mapName, scriptName)));
131 131
132 if (!*callable_) { 132 if (!*callable_) {
133 throw std::runtime_error("Error running script: " + name); 133 throw std::runtime_error("Error running script: " + mapName + "." + scriptName);
134 } 134 }
135 135
136 auto result = (*callable_)(); 136 auto result = (*callable_)();