Reworked event hook to a system with pre-allocated memory, owned by the battle. This deals with cleaning up event data memory.
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -124,7 +124,7 @@ bool Battling::Creature::IsFainted() const noexcept { return this->_currentHealt
|
||||
void Battling::Creature::OnFaint() {
|
||||
// HOOK: On Faint
|
||||
if (_battle != nullptr) {
|
||||
_battle->TriggerEventListener(new FaintEvent(this));
|
||||
_battle->TriggerEventListener<FaintEvent>(this);
|
||||
}
|
||||
_library->GetExperienceLibrary()->HandleExperienceGain(this, _seenOpponents);
|
||||
auto sideIndex = _side->GetCreatureIndex(this);
|
||||
@@ -144,7 +144,7 @@ void Battling::Creature::Damage(uint32_t damage, Battling::DamageSource source)
|
||||
auto newHealth = _currentHealth - damage;
|
||||
auto battle = this->GetBattle();
|
||||
if (battle != nullptr) {
|
||||
battle->TriggerEventListener(new DamageEvent(this, source, _currentHealth, newHealth));
|
||||
battle->TriggerEventListener<DamageEvent>(this, source, _currentHealth, newHealth);
|
||||
}
|
||||
_currentHealth = newHealth;
|
||||
|
||||
@@ -164,7 +164,7 @@ void Battling::Creature::Heal(uint32_t amount, bool canRevive) {
|
||||
auto newHealth = _currentHealth + amount;
|
||||
auto battle = this->GetBattle();
|
||||
if (battle != nullptr) {
|
||||
battle->TriggerEventListener(new HealEvent(this, _currentHealth, newHealth));
|
||||
battle->TriggerEventListener<HealEvent>(this, _currentHealth, newHealth);
|
||||
}
|
||||
_currentHealth = newHealth;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user