diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2023-03-21 12:38:27 +0100 |
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2023-03-21 12:53:07 +0100 |
| commit | 0592e91d317ad7bd3224d169dc9b06f438732f30 (patch) | |
| tree | 11c90d966da24f9ebd5ef4b39bc00092dc388274 /src/character.cpp | |
| parent | c49e460e3c20f7c31ea1068b7d6ac3987f3c4b3b (diff) | |
src/entity: simplify update() return value
Diffstat (limited to 'src/character.cpp')
| -rw-r--r-- | src/character.cpp | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/src/character.cpp b/src/character.cpp index 08de4e99..93a3ab88 100644 --- a/src/character.cpp +++ b/src/character.cpp @@ -100,7 +100,8 @@ Vector2 character::depth_offset() const { return {}; } Vector2 character::ordinal_offset(Vector2b offset) const { - return Vector2(offset); + (void)offset; + return {}; } bool character::update(size_t i, float dt) @@ -118,12 +119,13 @@ bool character::update(size_t i, float dt) auto coord_ = coord; if (nframes == 0) - { - if (r == new_r) [[unlikely]] - return false; - rotate(i, new_r); - return coord.chunk() != coord_.chunk(); - } + return false; + + bool ret = false; + + if (r != new_r) + if (is_dynamic()) + rotate(i, new_r); const auto vec = move_vec(lr, ud); c->ensure_passability(); @@ -136,12 +138,13 @@ bool character::update(size_t i, float dt) offset_frac = Vector2s(Vector2(std::fmod(offset_[0], 1.f), std::fmod(offset_[1], 1.f)) * frac); auto off_i = Vector2i(offset_); if (can_move_to(off_i)) - i = move_to(i, off_i, new_r); + ret |= move_to(i, off_i, new_r); else break; ++frame %= atlas->info().nframes; } - return coord.chunk() != coord_.chunk(); + + return ret; } entity_type character::type() const noexcept { return entity_type::character; } |
