Made Battle take battleparties as a pointer instead of value for external use.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-03-07 11:00:48 +01:00
parent e990c13109
commit 1d18066bcc
4 changed files with 30 additions and 27 deletions

View File

@@ -90,8 +90,8 @@ void Battle::SwitchCreature(uint8_t sideIndex, uint8_t index, Creature* c) {
bool Battle::CanSlotBeFilled(uint8_t side, uint8_t index) const {
for (const auto& party : _parties) {
if (party.IsResponsibleForIndex(side, index)) {
if (party.HasCreaturesNotInField())
if (party->IsResponsibleForIndex(side, index)) {
if (party->HasCreaturesNotInField())
return true;
}
}

View File

@@ -15,7 +15,7 @@
namespace CreatureLib::Battling {
class Battle : public ScriptSource {
const BattleLibrary* _library;
std::vector<BattleParty> _parties;
std::vector<BattleParty*> _parties;
bool _canFlee;
uint8_t _numberOfSides;
uint8_t _creaturesPerSide;
@@ -29,7 +29,7 @@ namespace CreatureLib::Battling {
ScriptSet _volatile;
public:
Battle(const BattleLibrary* library, std::vector<BattleParty> parties, bool canFlee = true,
Battle(const BattleLibrary* library, std::vector<BattleParty*> parties, bool canFlee = true,
uint8_t numberOfSides = 2, uint8_t creaturesPerSide = 1)
: _library(library), _parties(parties), _canFlee(canFlee), _numberOfSides(numberOfSides),
_creaturesPerSide(creaturesPerSide) {
@@ -43,6 +43,9 @@ namespace CreatureLib::Battling {
for (auto s : _sides) {
delete s;
}
for (auto party : _parties) {
delete party;
}
delete _currentTurnQueue;
}

View File

@@ -13,10 +13,10 @@ namespace CreatureLib::Battling {
BattleParty(CreatureParty* party, std::vector<CreatureIndex> responsibleIndices)
: _party(party), _responsibleIndices(responsibleIndices) {}
CreatureParty* GetParty() { return _party; }
const std::vector<CreatureIndex>& GetResponsibleIndices() const { return _responsibleIndices; }
inline CreatureParty* GetParty() const { return _party; }
inline const std::vector<CreatureIndex>& GetResponsibleIndices() const { return _responsibleIndices; }
bool IsResponsibleForIndex(const CreatureIndex& index) const {
inline bool IsResponsibleForIndex(const CreatureIndex& index) const {
for (const auto& i : _responsibleIndices) {
if (i == index)
return true;
@@ -24,7 +24,7 @@ namespace CreatureLib::Battling {
return false;
}
bool IsResponsibleForIndex(uint8_t side, uint8_t index) const {
inline bool IsResponsibleForIndex(uint8_t side, uint8_t index) const {
for (const auto& i : _responsibleIndices) {
if (i.GetSideIndex() == side && i.GetCreatureIndex() == index)
return true;
@@ -32,7 +32,7 @@ namespace CreatureLib::Battling {
return false;
}
bool HasCreaturesNotInField() const {
inline bool HasCreaturesNotInField() const {
auto p = _party->GetParty();
for (const auto& creature : p) {
if (creature == nullptr)