summary refs log tree commit diff stats
path: root/src/character_system.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/character_system.cpp')
-rw-r--r--src/character_system.cpp3
1 files changed, 3 insertions, 0 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) {
46void CharacterSystem::transplantParty(int leaderId, vec2i pos, Direction dir) { 46void 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