forked from mirrors/0ad
Clone targetPos in attackPlan
On a rejoined client the data isn't the same anymore. But it's equal. Likely this is because the data isn't aquired at the same turn. This could also be solved more generally by copying all data which is pushed to the AI. Or by using the same serializer for AI as for the rest of the simulation.
This commit is contained in:
@@ -1239,7 +1239,7 @@ AttackPlan.prototype.getPathToTarget = function(gameState, fixedRallyPoint = fal
|
||||
const endPos = { "x": this.targetPos[0], "y": this.targetPos[1] };
|
||||
const path = Engine.ComputePath(startPos, endPos, gameState.getPassabilityClassMask("large"));
|
||||
this.path = [];
|
||||
this.path.push(this.targetPos);
|
||||
this.path.push(clone(this.targetPos));
|
||||
for (const p in path)
|
||||
this.path.push([path[p].x, path[p].y]);
|
||||
this.path.push(this.rallyPoint);
|
||||
@@ -2271,7 +2271,7 @@ AttackPlan.prototype.Serialize = function()
|
||||
"isBlocked": this.isBlocked,
|
||||
"targetPlayer": this.targetPlayer,
|
||||
"target": this.target !== undefined ? this.target.id() : undefined,
|
||||
"targetPos": this.targetPos,
|
||||
"targetPos": clone(this.targetPos),
|
||||
"uniqueTargetId": this.uniqueTargetId,
|
||||
"path": this.path,
|
||||
"unitCollUpdateArray": this.unitCollUpdateArray
|
||||
|
||||
Reference in New Issue
Block a user