Use smart pointers for BattleSide.
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2020-06-02 13:06:24 +02:00
parent 49e8ff055d
commit f898698f49
20 changed files with 86 additions and 107 deletions

View File

@@ -5,8 +5,8 @@ bool CreatureLib::Battling::ChoiceQueue::MoveCreatureChoiceNext(CreatureLib::Bat
AssertNotNull(creature)
// Find which index the creature choice is at.
size_t choiceIndex = SIZE_MAX;
for (size_t index = _current; index < _queue.Count(); index++) {
if (_queue.At(index)->GetUser() == creature) {
for (size_t index = _current; index < _queue.size(); index++) {
if (_queue[index]->GetUser() == creature) {
// If the creature choice is already next up, return.
if (index == _current)
return false;
@@ -17,15 +17,14 @@ bool CreatureLib::Battling::ChoiceQueue::MoveCreatureChoiceNext(CreatureLib::Bat
if (choiceIndex == SIZE_MAX)
return false;
auto& vec = _queue.GetStdList();
// Save the pointer to the creature choice.
auto creatureChoice = _queue[choiceIndex];
// Starting at the position before the current creature choice, and iterating backwards up till the current choice.
for (size_t i = choiceIndex - 1; i >= _current && i != SIZE_MAX; i--) {
// Place everything in one spot later.
vec[i + 1] = vec[i];
_queue[i + 1] = _queue[i];
}
// Set the creature choice up next.
vec[_current] = creatureChoice.GetRaw();
_queue[_current] = creatureChoice;
return true;
}