diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/character_system.cpp | 3 | ||||
-rw-r--r-- | src/script_system.cpp | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/character_system.cpp b/src/character_system.cpp index d18c592..a24bdcc 100644 --- a/src/character_system.cpp +++ b/src/character_system.cpp | |||
@@ -46,10 +46,12 @@ void CharacterSystem::addSpriteToParty(int leaderId, int followerId) { | |||
46 | void CharacterSystem::transplantParty(int leaderId, vec2i pos, Direction dir) { | 46 | void CharacterSystem::transplantParty(int leaderId, vec2i pos, Direction dir) { |
47 | Sprite& leader = game_.getSprite(leaderId); | 47 | Sprite& leader = game_.getSprite(leaderId); |
48 | CharacterState oldState = leader.characterState; | 48 | CharacterState oldState = leader.characterState; |
49 | CharacterMedium newMedium = game_.getSystem<TransformSystem>().getMediumAtPosition(leaderId, pos); | ||
49 | 50 | ||
50 | std::vector<int> followers = leader.followers; | 51 | std::vector<int> followers = leader.followers; |
51 | leader.followers.clear(); | 52 | leader.followers.clear(); |
52 | leader.trailsAreHalved = false; | 53 | leader.trailsAreHalved = false; |
54 | leader.characterMedium = newMedium; | ||
53 | 55 | ||
54 | game_.getSystem<TransformSystem>().moveSprite(leaderId, pos); | 56 | game_.getSystem<TransformSystem>().moveSprite(leaderId, pos); |
55 | game_.getSystem<AnimationSystem>().setSpriteDirection(leaderId, dir); | 57 | game_.getSystem<AnimationSystem>().setSpriteDirection(leaderId, dir); |
@@ -60,6 +62,7 @@ void CharacterSystem::transplantParty(int leaderId, vec2i pos, Direction dir) { | |||
60 | 62 | ||
61 | game_.getSystem<TransformSystem>().moveSprite(followerId, pos); | 63 | game_.getSystem<TransformSystem>().moveSprite(followerId, pos); |
62 | game_.getSystem<AnimationSystem>().setSpriteDirection(followerId, dir); | 64 | game_.getSystem<AnimationSystem>().setSpriteDirection(followerId, dir); |
65 | follower.characterMedium = newMedium; | ||
63 | addSpriteToParty(leaderId, followerId); | 66 | addSpriteToParty(leaderId, followerId); |
64 | } | 67 | } |
65 | 68 | ||
diff --git a/src/script_system.cpp b/src/script_system.cpp index 0d82436..31b8bee 100644 --- a/src/script_system.cpp +++ b/src/script_system.cpp | |||
@@ -17,6 +17,7 @@ ScriptSystem::ScriptSystem(Game& game) : game_(game) { | |||
17 | 17 | ||
18 | engine_.new_usertype<vec2i>( | 18 | engine_.new_usertype<vec2i>( |
19 | "vec2i", | 19 | "vec2i", |
20 | sol::constructors<vec2i(int, int)>(), | ||
20 | "x", [] (const vec2i& v) { return v.x(); }, | 21 | "x", [] (const vec2i& v) { return v.x(); }, |
21 | "y", [] (const vec2i& v) { return v.y(); }); | 22 | "y", [] (const vec2i& v) { return v.y(); }); |
22 | 23 | ||
@@ -70,7 +71,8 @@ ScriptSystem::ScriptSystem(Game& game) : game_(game) { | |||
70 | "initSprite", [] (TransformSystem& transform, int spriteId, int x, int y, SpriteLayer layer) { | 71 | "initSprite", [] (TransformSystem& transform, int spriteId, int x, int y, SpriteLayer layer) { |
71 | transform.initSprite(spriteId, vec2i{x, y}, layer); | 72 | transform.initSprite(spriteId, vec2i{x, y}, layer); |
72 | }, | 73 | }, |
73 | "undoCollision", &TransformSystem::undoCollision); | 74 | "undoCollision", &TransformSystem::undoCollision, |
75 | "moveSprite", &TransformSystem::moveSprite); | ||
74 | 76 | ||
75 | engine_.new_usertype<EffectSystem>( | 77 | engine_.new_usertype<EffectSystem>( |
76 | "effect", | 78 | "effect", |