From be09120d1d044b476ef8b516efbdb526f20d9e2d Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Wed, 3 Feb 2021 01:35:58 -0500 Subject: Added animation system --- src/party.cpp | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'src/party.cpp') diff --git a/src/party.cpp b/src/party.cpp index b717281..8b0c34e 100644 --- a/src/party.cpp +++ b/src/party.cpp @@ -2,6 +2,7 @@ #include "consts.h" #include "mixer.h" #include "transform_system.h" +#include "animation_system.h" void Party::addMember(Game& game, int spriteId) { int index = members_.size(); @@ -12,12 +13,12 @@ void Party::addMember(Game& game, int spriteId) { if (index > 0) { const Sprite& sprite = game.getSprite(spriteId); - newMember.movement = std::deque(PARTY_FRAME_DELAY * index, {.pos = sprite.loc(), .dir = sprite.getDirection()}); + newMember.movement = std::deque(PARTY_FRAME_DELAY * index, {.pos = sprite.loc, .dir = sprite.dir}); } members_.push_back(std::move(newMember)); - game.setSpriteState(spriteId, "still"); + game.getSystem().setSpriteAnimation(spriteId, "still"); } void Party::move(Game& game, Mixer& mixer, const Input& keystate) { @@ -33,7 +34,7 @@ void Party::move(Game& game, Mixer& mixer, const Input& keystate) { } else { if (state_ == State::Normal) { for (int i = 0; i < members_.size(); i++) { - game.setSpriteState(members_[i].spriteId, "still"); + game.getSystem().setSpriteAnimation(members_[i].spriteId, "still"); } } @@ -72,16 +73,16 @@ void Party::move(Game& game, Mixer& mixer, const Input& keystate) { lastDir_ = dir; const Sprite& p1 = game.getSprite(members_[0].spriteId); - vec2i pLoc = p1.loc(); + vec2i pLoc = p1.loc; if (state_ == State::Crouching) { for (int i = 0; i < members_.size(); i++) { - game.setSpriteDirection(members_[i].spriteId, dir); + game.getSystem().setSpriteDirection(members_[i].spriteId, dir); } return; } else { - game.setSpriteDirection(members_[0].spriteId, dir); + game.getSystem().setSpriteDirection(members_[0].spriteId, dir); } int speed = MOVEMENT_SPEED; @@ -89,7 +90,7 @@ void Party::move(Game& game, Mixer& mixer, const Input& keystate) { speed *= 2; } else { for (int i = 0; i < members_.size(); i++) { - game.setSpriteState(members_[i].spriteId, "walk"); + game.getSystem().setSpriteAnimation(members_[i].spriteId, "walk"); } } @@ -101,9 +102,9 @@ void Party::move(Game& game, Mixer& mixer, const Input& keystate) { const vec2i UL_COL_BOX = { 8, 8 }; const vec2i DR_COL_BOX = { 4, 0 }; - vec2i oldColPosUL = (p1.loc() - UL_COL_BOX) / map.getTileSize(); + vec2i oldColPosUL = (p1.loc - UL_COL_BOX) / map.getTileSize(); vec2i newColPosUL = (pLoc - UL_COL_BOX) / map.getTileSize(); - vec2i oldColPosDR = (p1.loc() + DR_COL_BOX) / map.getTileSize(); + vec2i oldColPosDR = (p1.loc + DR_COL_BOX) / map.getTileSize(); vec2i newColPosDR = (pLoc + DR_COL_BOX) / map.getTileSize(); if (dirHasDir(dir, Direction::right) && @@ -111,7 +112,7 @@ void Party::move(Game& game, Mixer& mixer, const Input& keystate) { for (int y = newColPosUL.y(); y <= newColPosDR.y(); y++) { if (map.isBlocked(newColPosDR.x(), y)) { blocked = true; - pLoc.x() = p1.loc().x();//(newColPosDR * map.getTileSize() - (collisionBox / 2)).x() - 1; + pLoc.x() = p1.loc.x();//(newColPosDR * map.getTileSize() - (collisionBox / 2)).x() - 1; break; } } @@ -122,7 +123,7 @@ void Party::move(Game& game, Mixer& mixer, const Input& keystate) { for (int y = newColPosUL.y(); y <= newColPosDR.y(); y++) { if (map.isBlocked(newColPosUL.x(), y)) { blocked = true; - pLoc.x() = p1.loc().x();//(newColPosDR * map.getTileSize() - (collisionBox / 2)).x() - 1; + pLoc.x() = p1.loc.x();//(newColPosDR * map.getTileSize() - (collisionBox / 2)).x() - 1; break; } } @@ -133,7 +134,7 @@ void Party::move(Game& game, Mixer& mixer, const Input& keystate) { for (int x = newColPosUL.x(); x <= newColPosDR.x(); x++) { if (map.isBlocked(x, newColPosDR.y())) { blocked = true; - pLoc.y() = p1.loc().y();//(newColPosDR * map.getTileSize() - (collisionBox / 2)).x() - 1; + pLoc.y() = p1.loc.y();//(newColPosDR * map.getTileSize() - (collisionBox / 2)).x() - 1; break; } } @@ -144,7 +145,7 @@ void Party::move(Game& game, Mixer& mixer, const Input& keystate) { for (int x = newColPosUL.x(); x <= newColPosDR.x(); x++) { if (map.isBlocked(x, newColPosUL.y())) { blocked = true; - pLoc.y() = p1.loc().y();//(newColPosDR * map.getTileSize() - (collisionBox / 2)).x() - 1; + pLoc.y() = p1.loc.y();//(newColPosDR * map.getTileSize() - (collisionBox / 2)).x() - 1; break; } } @@ -156,14 +157,14 @@ void Party::move(Game& game, Mixer& mixer, const Input& keystate) { } // Move everything - if (pLoc != p1.loc()) { + if (pLoc != p1.loc) { game.getSystem().moveSprite(members_[0].spriteId, pLoc); for (int i = 1; i < members_.size(); i++) { const Sprite& pNext = game.getSprite(members_[i].spriteId); const Movement& posdir = members_[i].movement.front(); game.getSystem().moveSprite(members_[i].spriteId, posdir.pos); - game.setSpriteDirection(members_[i].spriteId, posdir.dir); + game.getSystem().setSpriteDirection(members_[i].spriteId, posdir.dir); members_[i].movement.pop_front(); members_[i].movement.push_back({.pos = pLoc, .dir = dir}); @@ -178,7 +179,7 @@ void Party::beginCrouch(Game& game) { state_ = State::Crouching; for (int i = 0; i < members_.size(); i++) { - game.setSpriteState(members_[i].spriteId, "crouch"); + game.getSystem().setSpriteAnimation(members_[i].spriteId, "crouch"); } } } @@ -188,7 +189,7 @@ void Party::endCrouch(Game& game) { state_ = State::Running; for (int i = 0; i < members_.size(); i++) { - game.setSpriteState(members_[i].spriteId, "run"); + game.getSystem().setSpriteAnimation(members_[i].spriteId, "run"); // Halve the movement buffer for the followers. if (i > 0) { @@ -212,7 +213,7 @@ void Party::stopRunning(Game& game) { // Double the movement buffer for the followers. for (int i = 1; i < members_.size(); i++) { std::deque newMove; - vec2i lastPos = game.getSprite(members_[i].spriteId).loc(); + vec2i lastPos = game.getSprite(members_[i].spriteId).loc; while (!members_[i].movement.empty()) { Movement m1 = members_[i].movement.front(); -- cgit 1.4.1