Rework ScriptAggregator so it only needs to be created once, and can then be reset.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-04-23 19:57:45 +02:00
parent 742d0c772c
commit 3a11bba913
4 changed files with 26 additions and 19 deletions

View File

@@ -8,22 +8,21 @@
namespace CreatureLib::Battling {
class ScriptSource {
bool _areScriptsInitialized = false;
Arbutils::Collections::List<ScriptWrapper> _scripts;
ScriptAggregator _scripts;
protected:
virtual void GetActiveScripts(Arbutils::Collections::List<ScriptWrapper>& scripts) = 0;
void ResetActiveScripts() {
_areScriptsInitialized = false;
_scripts.Clear();
}
void ResetActiveScripts() { _areScriptsInitialized = false; }
public:
ScriptAggregator GetScriptIterator() {
const ScriptAggregator& GetScriptIterator() {
if (!_areScriptsInitialized) {
GetActiveScripts(_scripts);
List<ScriptWrapper> scripts;
GetActiveScripts(scripts);
_scripts = ScriptAggregator(scripts);
_areScriptsInitialized = true;
}
return ScriptAggregator(_scripts);
return _scripts;
}
};
}