Skip to content
Snippets Groups Projects
Commit a048952d authored by Frederik's avatar Frederik
Browse files

Fix Bug with start and end turn and start the first turn immeadiatly after loading

parent 03e2d6bd
No related branches found
No related tags found
2 merge requests!29Merge main into box2d to implement physics,!27Implement Player Class
......@@ -123,9 +123,11 @@ std::shared_ptr<Level> Level::loadLevel(std::string path, Engine& engine)
}
}
return std::make_shared<Level>(
name, width, height, tiles, buildings, units, std::vector<Effect>{}, turnQ);
};
Level level(name, width, height, tiles, buildings, units, std::vector<Effect>{}, turnQ);
level.m_turnQ.front().startTurn(level.m_units, level.m_buildings);
return std::make_shared<Level>(level);
}
std::pair<int, int> Level::calcTilePos(int mouseX, int mouseY)
{
......
......@@ -4,12 +4,15 @@
namespace advanced_wars
{
Player::Player(int money, PlayerFaction faction) : m_money(money), m_faction(faction) {}
Player::Player(int money, PlayerFaction faction)
: m_money(money), m_alive(true), m_activeTurn(false), m_faction(faction)
{
}
Player::~Player() {}
void Player::startTurn(
std::unordered_map<int, Unit> lvUnits, std::unordered_map<int, Building> lvBuildings)
std::unordered_map<int, Unit>& lvUnits, std::unordered_map<int, Building>& lvBuildings)
{
for (auto& [id, unit] : lvUnits)
{
......@@ -98,7 +101,7 @@ void Player::startTurn(
m_activeTurn = true;
}
void Player::endTurn(std::unordered_map<int, Unit> lvUnits)
void Player::endTurn(std::unordered_map<int, Unit>& lvUnits)
{
for (auto& [id, unit] : lvUnits)
{
......
......@@ -36,7 +36,7 @@ class Player
* @param lvBuildings All buildings of a level
*/
void startTurn(
std::unordered_map<int, Unit> lvUnits, std::unordered_map<int, Building> lvBuildings);
std::unordered_map<int, Unit>& lvUnits, std::unordered_map<int, Building>& lvBuildings);
/**
* Sets all units of the players faction to unavailable and sets them as no longer being the
......@@ -44,7 +44,7 @@ class Player
*
* @param lvUnits All current units of a level
*/
void endTurn(std::unordered_map<int, Unit> lvUnits);
void endTurn(std::unordered_map<int, Unit>& lvUnits);
};
} // namespace advanced_wars
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment