mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-20 23:24:16 +00:00
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