diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2024-05-02 18:32:22 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2024-05-02 22:54:16 +0200 |
commit | b93032e49cd69da178984f9912205d182f12f61e (patch) | |
tree | 2caae8f9db5776a39a731e8fb82ed30ec7fb6b06 /src/critter.cpp | |
parent | 6abcd7d52cda334c58ec999d212491fc24f13c9d (diff) |
now call script update
Diffstat (limited to 'src/critter.cpp')
-rw-r--r-- | src/critter.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/critter.cpp b/src/critter.cpp index f743f614..18f91797 100644 --- a/src/critter.cpp +++ b/src/critter.cpp @@ -1,4 +1,6 @@ #include "critter.hpp" + +#include "critter-script.hpp" #include "compat/limits.hpp" #include "tile-constants.hpp" #include "src/point.inl" @@ -361,8 +363,15 @@ Vector2 critter::ordinal_offset(Vector2b offset) const return Vector2(offset); } -void critter::update(size_t& i, const Ns& dt) +void critter::update(const std::shared_ptr<object>& ptrʹ, size_t& i, const Ns& dt) { + fm_debug_assert(&*ptrʹ == this); + + check_script_update_1(script.state()); + script->on_update(std::static_pointer_cast<critter>(ptrʹ), i, dt); + if (check_script_update_2(script.state())) [[unlikely]] + return; + if (playable) [[unlikely]] { movement.AUTO &= !(movement.L | movement.R | movement.U | movement.D); @@ -546,7 +555,6 @@ critter::critter(object_id id, class chunk& c, critter_proto proto) : critter::~critter() noexcept { - //fm_assert(!script); } void critter::init_script(const std::shared_ptr<object>& ptrʹ) |