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-21 17:56:17 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-02-21 17:56:17 -0500
commit5df0d0616ee3996add0b14e0fb0becd6257d04a2 (patch)
tree19bf067462ea04abf500e0427d3daeb3a39434ee /src/script_system.cpp
parentecbe17b582803aaeaa9ccee88a3d093ff93a6cd3 (diff)
downloadtanetane-5df0d0616ee3996add0b14e0fb0becd6257d04a2.tar.gz
tanetane-5df0d0616ee3996add0b14e0fb0becd6257d04a2.tar.bz2
tanetane-5df0d0616ee3996add0b14e0fb0becd6257d04a2.zip
Added a debug console
Open it by pressing backtick, close it by hitting escape. Pressing backtick does not open it in release builds.

Current shortcomings: opening it for the first time also types a backtick for some reason, but not on subsequent times. Also, it doesn't create a coroutine, so any script function that yields is going to fail.

This also added a "is gameplay paused" flag to Game, which will be useful for adding a pause menu.
Diffstat (limited to 'src/script_system.cpp')
-rw-r--r--src/script_system.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/script_system.cpp b/src/script_system.cpp index 3293753..14d247e 100644 --- a/src/script_system.cpp +++ b/src/script_system.cpp
@@ -190,6 +190,8 @@ ScriptSystem::ScriptSystem(Game& game) : game_(game) {
190} 190}
191 191
192void ScriptSystem::tick(double dt) { 192void ScriptSystem::tick(double dt) {
193 if (game_.isGameplayPaused()) return;
194
193 if (callable_ && *callable_) { 195 if (callable_ && *callable_) {
194 auto result = (*callable_)(dt); 196 auto result = (*callable_)(dt);
195 if (!result.valid()) { 197 if (!result.valid()) {
@@ -228,3 +230,11 @@ void ScriptSystem::runScript(std::string mapName, std::string scriptName) {
228 runner_.reset(); 230 runner_.reset();
229 } 231 }
230} 232}
233
234void ScriptSystem::runDebugScript(std::string script) {
235 auto result = engine_.script(script);
236 if (!result.valid()) {
237 sol::error e = result;
238 std::cout << e.what() << std::endl;
239 }
240}