diff options
-rw-r--r-- | src/critter-script-walk.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/critter-script-walk.cpp b/src/critter-script-walk.cpp index bd2b00ca..51d098cd 100644 --- a/src/critter-script-walk.cpp +++ b/src/critter-script-walk.cpp @@ -49,6 +49,9 @@ private: walk_mode mode = failwith<walk_mode>("walk_mode not set"); }; +walk_script::walk_script(point dest) : dest{dest}, mode{walk_mode::line} {} +walk_script::walk_script(psr path) : path{move(path)}, mode{walk_mode::path} { fm_assert(!path.empty()); } + StringView walk_script::name() const { return "walk"_s; } const void* walk_script::id() const { return &script_name; } void walk_script::on_destroy(const std::shared_ptr<critter>& c, script_destroy_reason) { c->clear_auto_movement(); } @@ -65,6 +68,7 @@ void walk_script::on_init(const std::shared_ptr<critter>& c) break; case walk_mode::path: fm_assert(!path.empty()); + dest = path.path().back(); break; default: std::unreachable(); @@ -101,9 +105,6 @@ done: c->script.do_clear(c); } -walk_script::walk_script(point dest) : dest{dest}, mode{walk_mode::line} {} -walk_script::walk_script(psr path) : path{move(path)}, mode{walk_mode::path} { fm_assert(!path.empty()); } - } // namespace ScriptPtr critter_script::make_walk_script(point dest) { return ScriptPtr(new walk_script{dest}); } |