Cleanup of ScriptAggregator class.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-04-23 23:23:58 +02:00
parent 3a11bba913
commit dd668f2b1c
11 changed files with 89 additions and 75 deletions

View File

@@ -7,20 +7,24 @@
namespace CreatureLib::Battling {
class ScriptWrapper {
union {
Script** _script;
ScriptSet* _scriptSet;
};
bool _isSet;
union {
Script* const* _script;
const ScriptSet* _scriptSet;
};
ScriptWrapper(Script** s, bool isSet) : _isSet(isSet), _script(s){};
ScriptWrapper(ScriptSet* s, bool isSet) : _isSet(isSet), _scriptSet(s){};
public:
ScriptWrapper(Script** s) : _script(s), _isSet(false) {}
ScriptWrapper(ScriptSet* s) : _scriptSet(s), _isSet(true) {}
static inline ScriptWrapper FromScript(Script** s) { return ScriptWrapper(s, false); }
static inline ScriptWrapper FromSet(ScriptSet* s) { return ScriptWrapper(s, true); }
bool IsSet() const { return _isSet; }
Script** GetScript() const { return _script; }
ScriptSet* GetScriptSet() const { return _scriptSet; }
inline Script* const* GetScript() const { return _script; }
inline const ScriptSet* GetScriptSet() const { return _scriptSet; }
};
}