summary refs log tree commit diff stats
path: root/src/character_system.cpp
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-02-26 16:47:24 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-02-26 16:47:24 -0500
commitd5e3bc615b300eb985d59b91ebd1f2f1a4d4e107 (patch)
tree7356a6796ff166a85b8f7accb20e82596f200a63 /src/character_system.cpp
parent46bf85e7b85b8d3e61f0d2b276450c4f439b5c30 (diff)
downloadtanetane-d5e3bc615b300eb985d59b91ebd1f2f1a4d4e107.tar.gz
tanetane-d5e3bc615b300eb985d59b91ebd1f2f1a4d4e107.tar.bz2
tanetane-d5e3bc615b300eb985d59b91ebd1f2f1a4d4e107.zip
Added first underwater map
Also spruced up the event that takes you there. Also fixed an issue where transplantParty wouldn't take the medium of the new position into consideration. Also added a constructor to the lua version of vec2i.
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