diff options
| author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2021-02-10 18:18:47 -0500 |
|---|---|---|
| committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2021-02-10 18:18:47 -0500 |
| commit | 2c81361cc9d61dcf5050268157b3e7e92043b740 (patch) | |
| tree | 9cd0dca0d06071851dcb460da6f777b307ebed8a /src | |
| parent | 312a3738359cc4841cb3ce675583094becd8e830 (diff) | |
| download | tanetane-2c81361cc9d61dcf5050268157b3e7e92043b740.tar.gz tanetane-2c81361cc9d61dcf5050268157b3e7e92043b740.tar.bz2 tanetane-2c81361cc9d61dcf5050268157b3e7e92043b740.zip | |
loadMap requires a direction now, so party trails are set up correctly
Diffstat (limited to 'src')
| -rw-r--r-- | src/character_system.cpp | 6 | ||||
| -rw-r--r-- | src/game.cpp | 6 | ||||
| -rw-r--r-- | src/game.h | 2 | ||||
| -rw-r--r-- | src/main.cpp | 2 | ||||
| -rw-r--r-- | src/script_system.cpp | 4 |
5 files changed, 14 insertions, 6 deletions
| diff --git a/src/character_system.cpp b/src/character_system.cpp index 94833a8..781b50d 100644 --- a/src/character_system.cpp +++ b/src/character_system.cpp | |||
| @@ -24,7 +24,11 @@ void CharacterSystem::addSpriteToParty(int leaderId, int followerId) { | |||
| 24 | targetPos = backFollower.loc; | 24 | targetPos = backFollower.loc; |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | Direction toFace = directionFacingPoint(targetPos - follower.loc); | 27 | Direction toFace = leader.dir; |
| 28 | if (targetPos != follower.loc) { | ||
| 29 | toFace = directionFacingPoint(targetPos - follower.loc); | ||
| 30 | } | ||
| 31 | |||
| 28 | for (int i=0; i<PARTY_FRAME_DELAY; i++) { | 32 | for (int i=0; i<PARTY_FRAME_DELAY; i++) { |
| 29 | vec2i tween = ((follower.loc - targetPos) * i) / static_cast<double>(PARTY_FRAME_DELAY) + targetPos; | 33 | vec2i tween = ((follower.loc - targetPos) * i) / static_cast<double>(PARTY_FRAME_DELAY) + targetPos; |
| 30 | follower.trail.push_front({.pos = tween, .dir = toFace}); | 34 | follower.trail.push_front({.pos = tween, .dir = toFace}); |
| diff --git a/src/game.cpp b/src/game.cpp index dc3a5ba..4d44a63 100644 --- a/src/game.cpp +++ b/src/game.cpp | |||
| @@ -22,7 +22,7 @@ void Game::clearSprites() { | |||
| 22 | spritesByAlias_.clear(); | 22 | spritesByAlias_.clear(); |
| 23 | } | 23 | } |
| 24 | 24 | ||
| 25 | void Game::loadMap(std::string filename, std::string warpPoint) { | 25 | void Game::loadMap(std::string filename, std::string warpPoint, Direction dir) { |
| 26 | clearSprites(); | 26 | clearSprites(); |
| 27 | 27 | ||
| 28 | map_ = std::make_unique<Map>(filename); | 28 | map_ = std::make_unique<Map>(filename); |
| @@ -33,22 +33,26 @@ void Game::loadMap(std::string filename, std::string warpPoint) { | |||
| 33 | getSystem<TransformSystem>().initSprite(lucasSprite, warpLoc); | 33 | getSystem<TransformSystem>().initSprite(lucasSprite, warpLoc); |
| 34 | getSystem<TransformSystem>().setUpCollision(lucasSprite, {-8, -8}, {12, 8}, true); | 34 | getSystem<TransformSystem>().setUpCollision(lucasSprite, {-8, -8}, {12, 8}, true); |
| 35 | getSystem<AnimationSystem>().initSprite(lucasSprite, "../res/sprites/lucas_anim.txt"); | 35 | getSystem<AnimationSystem>().initSprite(lucasSprite, "../res/sprites/lucas_anim.txt"); |
| 36 | getSystem<AnimationSystem>().setSpriteDirection(lucasSprite, dir); | ||
| 36 | getSprite(lucasSprite).controllable = true; | 37 | getSprite(lucasSprite).controllable = true; |
| 37 | getSystem<CharacterSystem>().initSprite(lucasSprite); | 38 | getSystem<CharacterSystem>().initSprite(lucasSprite); |
| 38 | 39 | ||
| 39 | int kumaSprite = emplaceSprite("kuma"); | 40 | int kumaSprite = emplaceSprite("kuma"); |
| 40 | getSystem<TransformSystem>().initSprite(kumaSprite, warpLoc); | 41 | getSystem<TransformSystem>().initSprite(kumaSprite, warpLoc); |
| 41 | getSystem<AnimationSystem>().initSprite(kumaSprite, "../res/sprites/kuma_anim.txt"); | 42 | getSystem<AnimationSystem>().initSprite(kumaSprite, "../res/sprites/kuma_anim.txt"); |
| 43 | getSystem<AnimationSystem>().setSpriteDirection(kumaSprite, dir); | ||
| 42 | getSystem<CharacterSystem>().addSpriteToParty(lucasSprite, kumaSprite); | 44 | getSystem<CharacterSystem>().addSpriteToParty(lucasSprite, kumaSprite); |
| 43 | 45 | ||
| 44 | int dusterSprite = emplaceSprite("duster"); | 46 | int dusterSprite = emplaceSprite("duster"); |
| 45 | getSystem<TransformSystem>().initSprite(dusterSprite, warpLoc); | 47 | getSystem<TransformSystem>().initSprite(dusterSprite, warpLoc); |
| 46 | getSystem<AnimationSystem>().initSprite(dusterSprite, "../res/sprites/duster_anim.txt"); | 48 | getSystem<AnimationSystem>().initSprite(dusterSprite, "../res/sprites/duster_anim.txt"); |
| 49 | getSystem<AnimationSystem>().setSpriteDirection(dusterSprite, dir); | ||
| 47 | getSystem<CharacterSystem>().addSpriteToParty(lucasSprite, dusterSprite); | 50 | getSystem<CharacterSystem>().addSpriteToParty(lucasSprite, dusterSprite); |
| 48 | 51 | ||
| 49 | int boneySprite = emplaceSprite("boney"); | 52 | int boneySprite = emplaceSprite("boney"); |
| 50 | getSystem<TransformSystem>().initSprite(boneySprite, warpLoc); | 53 | getSystem<TransformSystem>().initSprite(boneySprite, warpLoc); |
| 51 | getSystem<AnimationSystem>().initSprite(boneySprite, "../res/sprites/boney_anim.txt"); | 54 | getSystem<AnimationSystem>().initSprite(boneySprite, "../res/sprites/boney_anim.txt"); |
| 55 | getSystem<AnimationSystem>().setSpriteDirection(boneySprite, dir); | ||
| 52 | getSystem<CharacterSystem>().addSpriteToParty(lucasSprite, boneySprite); | 56 | getSystem<CharacterSystem>().addSpriteToParty(lucasSprite, boneySprite); |
| 53 | 57 | ||
| 54 | for (const Prototype& p : map_->getPrototypes()) { | 58 | for (const Prototype& p : map_->getPrototypes()) { |
| diff --git a/src/game.h b/src/game.h index bb88dec..84114ca 100644 --- a/src/game.h +++ b/src/game.h | |||
| @@ -73,7 +73,7 @@ public: | |||
| 73 | }); | 73 | }); |
| 74 | } | 74 | } |
| 75 | 75 | ||
| 76 | void loadMap(std::string filename, std::string warpPoint); | 76 | void loadMap(std::string filename, std::string warpPoint, Direction dir); |
| 77 | 77 | ||
| 78 | const Map& getMap() const { return *map_; } | 78 | const Map& getMap() const { return *map_; } |
| 79 | 79 | ||
| diff --git a/src/main.cpp b/src/main.cpp index 8487077..ddc8df2 100644 --- a/src/main.cpp +++ b/src/main.cpp | |||
| @@ -22,7 +22,7 @@ void loop(Renderer& renderer) { | |||
| 22 | game.emplaceSystem<CameraSystem>(); | 22 | game.emplaceSystem<CameraSystem>(); |
| 23 | game.emplaceSystem<MessageSystem>(); | 23 | game.emplaceSystem<MessageSystem>(); |
| 24 | 24 | ||
| 25 | game.loadMap("../res/maps/map1.tmx", "spawn"); | 25 | game.loadMap("../res/maps/map1.tmx", "spawn", Direction::down); |
| 26 | 26 | ||
| 27 | renderer.render(game); | 27 | renderer.render(game); |
| 28 | 28 | ||
| diff --git a/src/script_system.cpp b/src/script_system.cpp index d8d93e3..e388c6e 100644 --- a/src/script_system.cpp +++ b/src/script_system.cpp | |||
| @@ -88,8 +88,8 @@ ScriptSystem::ScriptSystem(Game& game) : game_(game) { | |||
| 88 | 88 | ||
| 89 | engine_.set_function( | 89 | engine_.set_function( |
| 90 | "loadMap", | 90 | "loadMap", |
| 91 | [&] (std::string filename, std::string warpPoint) { | 91 | [&] (std::string filename, std::string warpPoint, Direction dir) { |
| 92 | game_.loadMap(filename, warpPoint); | 92 | game_.loadMap(filename, warpPoint, dir); |
| 93 | }); | 93 | }); |
| 94 | 94 | ||
| 95 | engine_.set_function( | 95 | engine_.set_function( |
