forked from 0ad/0ad
Fix a trade cart UnitAI error occuring rarely on defeat, by clearing the traderoute if the trader changed ownership. Patch by mimo, fixes #4131.
Also simplify MoveToMarket. This was SVN commit r18749.
This commit is contained in:
parent
127ca4e177
commit
43ecbbc09e
@ -3381,6 +3381,11 @@ UnitAI.prototype.OnOwnershipChanged = function(msg)
|
|||||||
this.Stop(false);
|
this.Stop(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.workOrders = [];
|
||||||
|
let cmpTrader = Engine.QueryInterface(this.entity, IID_Trader);
|
||||||
|
if (cmpTrader)
|
||||||
|
cmpTrader.StopTrading();
|
||||||
|
|
||||||
this.SetStance(this.template.DefaultStance);
|
this.SetStance(this.template.DefaultStance);
|
||||||
if (this.IsTurret())
|
if (this.IsTurret())
|
||||||
this.SetTurretStance();
|
this.SetTurretStance();
|
||||||
@ -5197,7 +5202,7 @@ UnitAI.prototype.SetTargetMarket = function(target, source)
|
|||||||
|
|
||||||
UnitAI.prototype.SwitchMarketOrder = function(oldMarket, newMarket)
|
UnitAI.prototype.SwitchMarketOrder = function(oldMarket, newMarket)
|
||||||
{
|
{
|
||||||
if (this.order.data && this.order.data.target && this.order.data.target == oldMarket)
|
if (this.order && this.order.data && this.order.data.target && this.order.data.target == oldMarket)
|
||||||
this.order.data.target = newMarket;
|
this.order.data.target = newMarket;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -5205,18 +5210,12 @@ UnitAI.prototype.MoveToMarket = function(targetMarket)
|
|||||||
{
|
{
|
||||||
if (this.waypoints && this.waypoints.length > 1)
|
if (this.waypoints && this.waypoints.length > 1)
|
||||||
{
|
{
|
||||||
var point = this.waypoints.pop();
|
let point = this.waypoints.pop();
|
||||||
var ok = this.MoveToPoint(point.x, point.z);
|
return this.MoveToPoint(point.x, point.z) || this.MoveToMarket(targetMarket);
|
||||||
if (!ok)
|
|
||||||
ok = this.MoveToMarket(targetMarket);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
this.waypoints = undefined;
|
|
||||||
var ok = this.MoveToTarget(targetMarket);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ok;
|
this.waypoints = undefined;
|
||||||
|
return this.MoveToTarget(targetMarket);
|
||||||
};
|
};
|
||||||
|
|
||||||
UnitAI.prototype.PerformTradeAndMoveToNextMarket = function(currentMarket)
|
UnitAI.prototype.PerformTradeAndMoveToNextMarket = function(currentMarket)
|
||||||
|
Loading…
Reference in New Issue
Block a user