From a990e4921820fe7b27c645639fba903329dba6b8 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sat, 6 Feb 2021 21:27:13 -0500 Subject: Characters added to a party now tween to their starting position instead of teleporting --- src/character_system.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/character_system.cpp b/src/character_system.cpp index 3df4f9a..fcd69dd 100644 --- a/src/character_system.cpp +++ b/src/character_system.cpp @@ -15,8 +15,19 @@ void CharacterSystem::addSpriteToParty(int leaderId, int followerId) { Sprite& leader = game_.getSprite(leaderId); Sprite& follower = game_.getSprite(followerId); - int index = leader.followers.size() + 1; - follower.trail = std::deque(PARTY_FRAME_DELAY * index, {.pos = follower.loc, .dir = follower.dir}); + vec2i targetPos = leader.loc; + + if (!leader.followers.empty()) { + Sprite& backFollower = game_.getSprite(leader.followers.back()); + follower.trail = backFollower.trail; + targetPos = backFollower.loc; + } + + Direction toFace = directionFacingPoint(targetPos - follower.loc); + for (int i=0; i(PARTY_FRAME_DELAY) + targetPos; + follower.trail.push_front({.pos = tween, .dir = toFace}); + } leader.followers.push_back(followerId); -- cgit 1.4.1