diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/behaviour_system.cpp | 2 | ||||
| -rw-r--r-- | src/character_system.cpp | 2 | ||||
| -rw-r--r-- | src/script_system.cpp | 9 | ||||
| -rw-r--r-- | src/sprite.h | 1 |
4 files changed, 11 insertions, 3 deletions
| diff --git a/src/behaviour_system.cpp b/src/behaviour_system.cpp index 8f17329..6cd0b52 100644 --- a/src/behaviour_system.cpp +++ b/src/behaviour_system.cpp | |||
| @@ -9,7 +9,7 @@ void BehaviourSystem::tick(double dt) { | |||
| 9 | while (timer_.step()) { | 9 | while (timer_.step()) { |
| 10 | for (int spriteId : game_.getSprites()) { | 10 | for (int spriteId : game_.getSprites()) { |
| 11 | Sprite& sprite = game_.getSprite(spriteId); | 11 | Sprite& sprite = game_.getSprite(spriteId); |
| 12 | if (sprite.wander) { | 12 | if (sprite.wander && !sprite.paused) { |
| 13 | // 75% chance of changing what's happening | 13 | // 75% chance of changing what's happening |
| 14 | if (std::bernoulli_distribution(0.75)(game_.getRng())) { | 14 | if (std::bernoulli_distribution(0.75)(game_.getRng())) { |
| 15 | // 50% chance of choosing a direction or stopping | 15 | // 50% chance of choosing a direction or stopping |
| diff --git a/src/character_system.cpp b/src/character_system.cpp index e6dddf6..7b628b0 100644 --- a/src/character_system.cpp +++ b/src/character_system.cpp | |||
| @@ -96,7 +96,7 @@ void CharacterSystem::tick(double dt) { | |||
| 96 | for (int spriteId : game_.getSprites()) { | 96 | for (int spriteId : game_.getSprites()) { |
| 97 | Sprite& sprite = game_.getSprite(spriteId); | 97 | Sprite& sprite = game_.getSprite(spriteId); |
| 98 | 98 | ||
| 99 | if (sprite.orientable) { | 99 | if (sprite.orientable && !sprite.paused) { |
| 100 | vec2i pLoc = sprite.loc; | 100 | vec2i pLoc = sprite.loc; |
| 101 | 101 | ||
| 102 | if (sprite.characterState == CharacterState::Still || | 102 | if (sprite.characterState == CharacterState::Still || |
| diff --git a/src/script_system.cpp b/src/script_system.cpp index d4ee0ce..3293753 100644 --- a/src/script_system.cpp +++ b/src/script_system.cpp | |||
| @@ -36,7 +36,8 @@ ScriptSystem::ScriptSystem(Game& game) : game_(game) { | |||
| 36 | "getCurrentFrame", [] (const Sprite& sprite) -> const SpriteFrame& { | 36 | "getCurrentFrame", [] (const Sprite& sprite) -> const SpriteFrame& { |
| 37 | return sprite.frames[sprite.animations[sprite.animationId].frameIndices[sprite.animationFrame]]; | 37 | return sprite.frames[sprite.animations[sprite.animationId].frameIndices[sprite.animationFrame]]; |
| 38 | }, | 38 | }, |
| 39 | "persistent", &Sprite::persistent); | 39 | "persistent", &Sprite::persistent, |
| 40 | "paused", &Sprite::paused); | ||
| 40 | 41 | ||
| 41 | engine_.new_usertype<MessageSystem>( | 42 | engine_.new_usertype<MessageSystem>( |
| 42 | "message", | 43 | "message", |
| @@ -168,6 +169,12 @@ ScriptSystem::ScriptSystem(Game& game) : game_(game) { | |||
| 168 | }); | 169 | }); |
| 169 | 170 | ||
| 170 | engine_.set_function( | 171 | engine_.set_function( |
| 172 | "getAllSprites", | ||
| 173 | [&] () -> const std::set<int>& { | ||
| 174 | return game_.getSprites(); | ||
| 175 | }); | ||
| 176 | |||
| 177 | engine_.set_function( | ||
| 171 | "loadMap", | 178 | "loadMap", |
| 172 | [&] (std::string filename) { | 179 | [&] (std::string filename) { |
| 173 | game_.loadMap(filename); | 180 | game_.loadMap(filename); |
| diff --git a/src/sprite.h b/src/sprite.h index 4e3e490..35ca7aa 100644 --- a/src/sprite.h +++ b/src/sprite.h | |||
| @@ -43,6 +43,7 @@ public: | |||
| 43 | 43 | ||
| 44 | std::string alias; | 44 | std::string alias; |
| 45 | bool persistent = false; | 45 | bool persistent = false; |
| 46 | bool paused = false; | ||
| 46 | 47 | ||
| 47 | // Transform | 48 | // Transform |
| 48 | vec2i loc { 0, 0 }; | 49 | vec2i loc { 0, 0 }; |
