fix: Cleans up potential memory leak in monster abilities. (#2185)

This commit is contained in:
Kamron Batman 2025-05-15 19:42:54 -07:00 committed by GitHub
parent f2526c82f3
commit 91b2912ee4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 52 additions and 33 deletions

View file

@ -1216,7 +1216,7 @@ namespace Server.Mobiles
for (var i = 0; i < abilities.Length; i++)
{
var ability = abilities[i];
if (ability.WillTrigger(trigger) && ability.CanTrigger(this, trigger))
if (ability.CanTrigger(this, trigger))
{
ability.Trigger(trigger, this, defender);
triggered = true;
@ -1238,7 +1238,7 @@ namespace Server.Mobiles
for (var i = 0; i < abilities.Length; i++)
{
var ability = abilities[i];
if (ability.WillTrigger(trigger) && ability.CanTrigger(this, trigger))
if (ability.CanTrigger(this, trigger))
{
ability.Move(this, d);
}
@ -1257,7 +1257,7 @@ namespace Server.Mobiles
for (var i = 0; i < abilities.Length; i++)
{
var ability = abilities[i];
if (ability.WillTrigger(trigger) && ability.CanTrigger(this, trigger))
if (ability.CanTrigger(this, trigger))
{
if ((trigger & MonsterAbilityTrigger.GiveMeleeDamage) != 0)
{
@ -1298,7 +1298,7 @@ namespace Server.Mobiles
for (var i = 0; i < abilities.Length; i++)
{
var ability = abilities[i];
if (ability.WillTrigger(trigger) && ability.CanTrigger(this, trigger))
if (ability.CanTrigger(this, trigger))
{
if ((trigger & MonsterAbilityTrigger.GiveSpellDamage) != 0)
{
@ -3263,7 +3263,7 @@ namespace Server.Mobiles
}
[GeneratedEvent(nameof(CreatureDeathEvent))]
public static partial void CreatureDeathEvent(Mobile m);
public static partial void CreatureDeathEvent(BaseCreature bc);
public override void OnDeath(Container c)
{
@ -3454,8 +3454,13 @@ namespace Server.Mobiles
CreatureDeathEvent(this);
}
[GeneratedEvent(nameof(CreatureDeletedEvent))]
public static partial void CreatureDeletedEvent(BaseCreature bc);
public override void OnDelete()
{
CreatureDeletedEvent(this);
var m = m_ControlMaster;
SetControlMaster(null);