Fix d1538f7fbd
.
Where I forgot to remove the other members when disbanding a formation. Reported by: @wowgetoffyourcellphone This was SVN commit r27000.
This commit is contained in:
parent
35e5f268da
commit
3f243b7b50
@ -379,6 +379,9 @@ Formation.prototype.SetMembers = function(ents)
|
|||||||
*/
|
*/
|
||||||
Formation.prototype.RemoveMembers = function(ents, renamed = false)
|
Formation.prototype.RemoveMembers = function(ents, renamed = false)
|
||||||
{
|
{
|
||||||
|
if (!ents.length)
|
||||||
|
return;
|
||||||
|
|
||||||
this.offsets = undefined;
|
this.offsets = undefined;
|
||||||
this.members = this.members.filter(ent => !ents.includes(ent));
|
this.members = this.members.filter(ent => !ents.includes(ent));
|
||||||
|
|
||||||
@ -406,12 +409,7 @@ Formation.prototype.RemoveMembers = function(ents, renamed = false)
|
|||||||
// unless this is a rename where we can have 0 members temporarily.
|
// unless this is a rename where we can have 0 members temporarily.
|
||||||
if (!renamed && this.members.length < +this.template.RequiredMemberCount)
|
if (!renamed && this.members.length < +this.template.RequiredMemberCount)
|
||||||
{
|
{
|
||||||
// Hack: switch to a clean state to stop timers.
|
this.Disband();
|
||||||
const cmpUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI);
|
|
||||||
cmpUnitAI.UnitFsm.SwitchToNextState(cmpUnitAI, "");
|
|
||||||
Engine.QueryInterface(this.entity, IID_Position).MoveOutOfWorld();
|
|
||||||
this.DeleteTwinFormations();
|
|
||||||
Engine.DestroyEntity(this.entity);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -465,6 +463,13 @@ Formation.prototype.AddMembers = function(ents)
|
|||||||
Formation.prototype.Disband = function()
|
Formation.prototype.Disband = function()
|
||||||
{
|
{
|
||||||
this.RemoveMembers(this.members);
|
this.RemoveMembers(this.members);
|
||||||
|
|
||||||
|
// Hack: switch to a clean state to stop timers.
|
||||||
|
const cmpUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI);
|
||||||
|
cmpUnitAI.UnitFsm.SwitchToNextState(cmpUnitAI, "");
|
||||||
|
Engine.QueryInterface(this.entity, IID_Position).MoveOutOfWorld();
|
||||||
|
this.DeleteTwinFormations();
|
||||||
|
Engine.DestroyEntity(this.entity);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user