Page MenuHomeWildfire Games

UnitMotion post-rewrite cleanup - remove dead code, common MoveTo, rename BeginPathing, move some functions around for better readability.
ClosedPublic

Authored by wraitii on Jul 13 2019, 2:30 PM.

Details

Reviewers
None
Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Commits
rP22568: UnitMotion cleanup - remove dead code, add a common path for MoveTo functions…
Summary

What is says in the title.

This is that last intended diff of the UM rewrite, so bar bug fixes I will stop work on UM proper for a while to get some stability.

Test Plan

Check that indeed this changes no behaviour.

Diff Detail

Repository
rP 0 A.D. Public Repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

Build failure - The Moirai have given mortals hearts that can endure.

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/48/display/redirect

I've been testing this, UM looks so much better now than a few weeks ago! Kudos @wraitii.
Regarding this specific diff, no strange things found.

wraitii updated this revision to Diff 9151.Jul 28 2019, 12:30 PM

Rebased, cleaned up slightly. Rename IsMoving() to IsMoveRequested(), and add some more comments.

Successful build - Chance fights ever on the side of the prudent.

Linter detected issues:
Executing section Source...

source/simulation2/components/ICmpUnitMotion.h
|  34| class·ICmpUnitMotion·:·public·IComponent
|    | [MAJOR] CPPCheckBear (syntaxError):
|    | Code 'classICmpUnitMotion:' is invalid C code. Use --std or --language to configure the language.
Executing section JS...
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 119| 119| 	this.formationMembersWithAura = []; // Members with a formation aura
| 120| 120| 	this.width = 0;
| 121| 121| 	this.depth = 0;
| 122|    |-	this.oldOrientation = {"sin": 0, "cos": 0};
|    | 122|+	this.oldOrientation = { "sin": 0, "cos": 0};
| 123| 123| 	this.twinFormations = [];
| 124| 124| 	// distance from which two twin formations will merge into one.
| 125| 125| 	this.formationSeparation = 0;
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 119| 119| 	this.formationMembersWithAura = []; // Members with a formation aura
| 120| 120| 	this.width = 0;
| 121| 121| 	this.depth = 0;
| 122|    |-	this.oldOrientation = {"sin": 0, "cos": 0};
|    | 122|+	this.oldOrientation = {"sin": 0, "cos": 0 };
| 123| 123| 	this.twinFormations = [];
| 124| 124| 	// distance from which two twin formations will merge into one.
| 125| 125| 	this.formationSeparation = 0;
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 137| 137| 
| 138| 138| Formation.prototype.GetSize = function()
| 139| 139| {
| 140|    |-	return {"width": this.width, "depth": this.depth};
|    | 140|+	return { "width": this.width, "depth": this.depth};
| 141| 141| };
| 142| 142| 
| 143| 143| Formation.prototype.GetSpeedMultiplier = function()
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 137| 137| 
| 138| 138| Formation.prototype.GetSize = function()
| 139| 139| {
| 140|    |-	return {"width": this.width, "depth": this.depth};
|    | 140|+	return {"width": this.width, "depth": this.depth };
| 141| 141| };
| 142| 142| 
| 143| 143| Formation.prototype.GetSpeedMultiplier = function()
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 554| 554| 			footprints.push(cmpFootprint.GetShape());
| 555| 555| 	}
| 556| 556| 	if (!footprints.length)
| 557|    |-		return {"width":1, "depth": 1};
|    | 557|+		return { "width":1, "depth": 1};
| 558| 558| 
| 559| 559| 	var r = {"width": 0, "depth": 0};
| 560| 560| 	for (var shape of footprints)
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'width'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 554| 554| 			footprints.push(cmpFootprint.GetShape());
| 555| 555| 	}
| 556| 556| 	if (!footprints.length)
| 557|    |-		return {"width":1, "depth": 1};
|    | 557|+		return {"width": 1, "depth": 1};
| 558| 558| 
| 559| 559| 	var r = {"width": 0, "depth": 0};
| 560| 560| 	for (var shape of footprints)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 554| 554| 			footprints.push(cmpFootprint.GetShape());
| 555| 555| 	}
| 556| 556| 	if (!footprints.length)
| 557|    |-		return {"width":1, "depth": 1};
|    | 557|+		return {"width":1, "depth": 1 };
| 558| 558| 
| 559| 559| 	var r = {"width": 0, "depth": 0};
| 560| 560| 	for (var shape of footprints)
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 556| 556| 	if (!footprints.length)
| 557| 557| 		return {"width":1, "depth": 1};
| 558| 558| 
| 559|    |-	var r = {"width": 0, "depth": 0};
|    | 559|+	var r = { "width": 0, "depth": 0};
| 560| 560| 	for (var shape of footprints)
| 561| 561| 	{
| 562| 562| 		if (shape.type == "circle")
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 556| 556| 	if (!footprints.length)
| 557| 557| 		return {"width":1, "depth": 1};
| 558| 558| 
| 559|    |-	var r = {"width": 0, "depth": 0};
|    | 559|+	var r = {"width": 0, "depth": 0 };
| 560| 560| 	for (var shape of footprints)
| 561| 561| 	{
| 562| 562| 		if (shape.type == "circle")
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 582| 582| 	separation.depth *= this.separationMultiplier.depth;
| 583| 583| 
| 584| 584| 	if (this.columnar)
| 585|    |-		var sortingClasses = ["Cavalry","Infantry"];
|    | 585|+		var sortingClasses = ["Cavalry", "Infantry"];
| 586| 586| 	else
| 587| 587| 		var sortingClasses = this.sortingClasses.slice();
| 588| 588| 	sortingClasses.push("Unknown");
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 602| 602| 		{
| 603| 603| 			if (classes.indexOf(sortingClasses[c]) > -1)
| 604| 604| 			{
| 605|    |-				types[sortingClasses[c]].push({"ent": active[i], "pos": positions[i]});
|    | 605|+				types[sortingClasses[c]].push({ "ent": active[i], "pos": positions[i]});
| 606| 606| 				done = true;
| 607| 607| 				break;
| 608| 608| 			}
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 602| 602| 		{
| 603| 603| 			if (classes.indexOf(sortingClasses[c]) > -1)
| 604| 604| 			{
| 605|    |-				types[sortingClasses[c]].push({"ent": active[i], "pos": positions[i]});
|    | 605|+				types[sortingClasses[c]].push({"ent": active[i], "pos": positions[i] });
| 606| 606| 				done = true;
| 607| 607| 				break;
| 608| 608| 			}
|    | [NORMAL] ESLintBear (dot-notation):
|    | ["Unknown"] is better written in dot notation.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 608| 608| 			}
| 609| 609| 		}
| 610| 610| 		if (!done)
| 611|    |-			types["Unknown"].push({"ent": active[i], "pos": positions[i]});
|    | 611|+			types.Unknown.push({"ent": active[i], "pos": positions[i]});
| 612| 612| 	}
| 613| 613| 
| 614| 614| 	var count = active.length;
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 608| 608| 			}
| 609| 609| 		}
| 610| 610| 		if (!done)
| 611|    |-			types["Unknown"].push({"ent": active[i], "pos": positions[i]});
|    | 611|+			types["Unknown"].push({ "ent": active[i], "pos": positions[i]});
| 612| 612| 	}
| 613| 613| 
| 614| 614| 	var count = active.length;
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 608| 608| 			}
| 609| 609| 		}
| 610| 610| 		if (!done)
| 611|    |-			types["Unknown"].push({"ent": active[i], "pos": positions[i]});
|    | 611|+			types["Unknown"].push({"ent": active[i], "pos": positions[i] });
| 612| 612| 	}
| 613| 613| 
| 614| 614| 	var count = active.length;
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 626| 626| 	if (this.columnar)
| 627| 627| 	{
| 628| 628| 		shape = "square";
| 629|    |-		cols = Math.min(count,3);
|    | 629|+		cols = Math.min(count, 3);
| 630| 630| 		shiftRows = false;
| 631| 631| 		centerGap = 0;
| 632| 632| 		sortingOrder = null;
|    | [NORMAL] ESLintBear (space-before-function-paren):
|    | Unexpected space before function parentheses.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 721| 721| 	// calculating offset distances without a zero average makes no sense, as the formation
| 722| 722| 	// will jump to a different position any time
| 723| 723| 	var avgoffset = Vector2D.average(offsets);
| 724|    |-	offsets.forEach(function (o) {o.sub(avgoffset);});
|    | 724|+	offsets.forEach(function(o) {o.sub(avgoffset);});
| 725| 725| 
| 726| 726| 	// sort the available places in certain ways
| 727| 727| 	// the places first in the list will contain the heaviest units as defined by the order
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 780| 780| 			closestOffsetId = i;
| 781| 781| 		}
| 782| 782| 	}
| 783|    |-	this.memberPositions[entPos.ent] = {"row": offsets[closestOffsetId].row, "column":offsets[closestOffsetId].column};
|    | 783|+	this.memberPositions[entPos.ent] = { "row": offsets[closestOffsetId].row, "column":offsets[closestOffsetId].column};
| 784| 784| 	return closestOffsetId;
| 785| 785| };
| 786| 786| 
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'column'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 780| 780| 			closestOffsetId = i;
| 781| 781| 		}
| 782| 782| 	}
| 783|    |-	this.memberPositions[entPos.ent] = {"row": offsets[closestOffsetId].row, "column":offsets[closestOffsetId].column};
|    | 783|+	this.memberPositions[entPos.ent] = {"row": offsets[closestOffsetId].row, "column": offsets[closestOffsetId].column};
| 784| 784| 	return closestOffsetId;
| 785| 785| };
| 786| 786| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 780| 780| 			closestOffsetId = i;
| 781| 781| 		}
| 782| 782| 	}
| 783|    |-	this.memberPositions[entPos.ent] = {"row": offsets[closestOffsetId].row, "column":offsets[closestOffsetId].column};
|    | 783|+	this.memberPositions[entPos.ent] = {"row": offsets[closestOffsetId].row, "column":offsets[closestOffsetId].column };
| 784| 784| 	return closestOffsetId;
| 785| 785| };
| 786| 786| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 790| 790| Formation.prototype.GetRealOffsetPositions = function(offsets, pos)
| 791| 791| {
| 792| 792| 	var offsetPositions = [];
| 793|    |-	var {sin, cos} = this.GetEstimatedOrientation(pos);
|    | 793|+	var { sin, cos} = this.GetEstimatedOrientation(pos);
| 794| 794| 	// calculate the world positions
| 795| 795| 	for (var o of offsets)
| 796| 796| 		offsetPositions.push(new Vector2D(pos.x + o.y * sin + o.x * cos, pos.y + o.y * cos - o.x * sin));
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 790| 790| Formation.prototype.GetRealOffsetPositions = function(offsets, pos)
| 791| 791| {
| 792| 792| 	var offsetPositions = [];
| 793|    |-	var {sin, cos} = this.GetEstimatedOrientation(pos);
|    | 793|+	var {sin, cos } = this.GetEstimatedOrientation(pos);
| 794| 794| 	// calculate the world positions
| 795| 795| 	for (var o of offsets)
| 796| 796| 		offsetPositions.push(new Vector2D(pos.x + o.y * sin + o.x * cos, pos.y + o.y * cos - o.x * sin));
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 807| 807| Formation.prototype.GetEstimatedOrientation = function(pos)
| 808| 808| {
| 809| 809| 	var cmpUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI);
| 810|    |-	var r = {"sin": 0, "cos": 1};
|    | 810|+	var r = { "sin": 0, "cos": 1};
| 811| 811| 	var unitAIState = cmpUnitAI.GetCurrentState();
| 812| 812| 	if (unitAIState == "FORMATIONCONTROLLER.WALKING" || unitAIState == "FORMATIONCONTROLLER.COMBAT.APPROACHING")
| 813| 813| 	{
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 807| 807| Formation.prototype.GetEstimatedOrientation = function(pos)
| 808| 808| {
| 809| 809| 	var cmpUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI);
| 810|    |-	var r = {"sin": 0, "cos": 1};
|    | 810|+	var r = {"sin": 0, "cos": 1 };
| 811| 811| 	var unitAIState = cmpUnitAI.GetCurrentState();
| 812| 812| 	if (unitAIState == "FORMATIONCONTROLLER.WALKING" || unitAIState == "FORMATIONCONTROLLER.COMBAT.APPROACHING")
| 813| 813| 	{
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/Formation.js
| 889| 889| 		cmpOtherFormation.RemoveMembers(otherMembers);
| 890| 890| 		this.AddMembers(otherMembers);
| 891| 891| 		Engine.DestroyEntity(this.twinFormations[i]);
| 892|    |-		this.twinFormations.splice(i,1);
|    | 892|+		this.twinFormations.splice(i, 1);
| 893| 893| 	}
| 894| 894| 	// Switch between column and box if necessary
| 895| 895| 	var cmpUnitAI = Engine.QueryInterface(this.entity, IID_UnitAI);

binaries/data/mods/public/simulation/components/Formation.js
| 326| »   for·(var·ent·of·this.formationMembersWithAura)
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 413| »   for·(var·ent·of·this.formationMembersWithAura)
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 459| »   var·cmpPosition·=·Engine.QueryInterface(this.entity,·IID_Position);
|    | [NORMAL] JSHintBear:
|    | 'cmpPosition' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 500| »   »   var·cmpUnitAI·=·Engine.QueryInterface(offset.ent,·IID_UnitAI);
|    | [NORMAL] JSHintBear:
|    | 'cmpUnitAI' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 535| »   var·cmpPosition·=·Engine.QueryInterface(this.entity,·IID_Position);
|    | [NORMAL] JSHintBear:
|    | 'cmpPosition' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 587| »   »   var·sortingClasses·=·this.sortingClasses.slice();
|    | [NORMAL] JSHintBear:
|    | 'sortingClasses' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 596| »   for·(var·i·in·active)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 611| »   »   »   types["Unknown"].push({"ent":·active[i],·"pos":·positions[i]});
|    | [NORMAL] JSHintBear:
|    | ['Unknown'] is better written in dot notation.

binaries/data/mods/public/simulation/components/Formation.js
| 651| »   »   for·(var·i·=·0;·i·<·count;·++i)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 685| »   »   »   »   »   var·n·=·r·+·1;
|    | [NORMAL] JSHintBear:
|    | 'n' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 687| »   »   »   »   »   var·n·=·r·*·2·+·1;
|    | [NORMAL] JSHintBear:
|    | 'n' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 691| »   »   »   for·(var·c·=·0;·c·<·n·&&·left·>·0;·++c)
|    | [NORMAL] JSHintBear:
|    | 'c' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 698| »   »   »   »   »   var·x·=·side·*·Math.ceil(c/2)·*·separation.width;
|    | [NORMAL] JSHintBear:
|    | 'x' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 701| »   »   »   »   »   if·(x·==·0)·//·don't·use·the·center·position·with·a·center·gap
|    | [NORMAL] JSHintBear:
|    | 'x' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 703| »   »   »   »   »   x·+=·side·*·centerGap·/·2;
|    | [NORMAL] JSHintBear:
|    | 'x' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 709| »   »   »   »   offsets.push(new·Vector2D(x·+·r1,·z·+·r2));
|    | [NORMAL] JSHintBear:
|    | 'x' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 689| »   »   »   if·(!shiftRows·&&·n·>·left)
|    | [NORMAL] JSHintBear:
|    | 'n' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 690| »   »   »   »   n·=·left;
|    | [NORMAL] JSHintBear:
|    | 'n' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 691| »   »   »   for·(var·c·=·0;·c·<·n·&&·left·>·0;·++c)
|    | [NORMAL] JSHintBear:
|    | 'n' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 695| »   »   »   »   if·(n%2·==·0)
|    | [NORMAL] JSHintBear:
|    | 'n' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 705| »   »   »   »   var·column·=·Math.ceil(n/2)·+·Math.ceil(c/2)·*·side;
|    | [NORMAL] JSHintBear:
|    | 'n' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 715| »   »   »   this.maxColumnsUsed[r]·=·n;
|    | [NORMAL] JSHintBear:
|    | 'n' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 744| »   for·(var·i·=·sortingClasses.length;·i;·--i)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/simulation/components/Formation.js
| 588| »   sortingClasses.push("Unknown");
|    | [NORMAL] JSHintBear:
|    | 'sortingClasses' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 593| »   for·(var·i·=·0;·i·<·sortingClasses.length;·++i)
|    | [NORMAL] JSHintBear:
|    | 'sortingClasses' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 594| »   »   types[sortingClasses[i]]·=·[];
|    | [NORMAL] JSHintBear:
|    | 'sortingClasses' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 601| »   »   for·(var·c·=·0;·c·<·sortingClasses.length;·++c)
|    | [NORMAL] JSHintBear:
|    | 'sortingClasses' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 603| »   »   »   if·(classes.indexOf(sortingClasses[c])·>·-1)
|    | [NORMAL] JSHintBear:
|    | 'sortingClasses' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 605| »   »   »   »   types[sortingClasses[c]].push({"ent":·active[i],·"pos":·positions[i]});
|    | [NORMAL] JSHintBear:
|    | 'sortingClasses' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 744| »   for·(var·i·=·sortingClasses.length;·i;·--i)
|    | [NORMAL] JSHintBear:
|    | 'sortingClasses' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 746| »   »   var·t·=·types[sortingClasses[i-1]];
|    | [NORMAL] JSHintBear:
|    | 'sortingClasses' used out of scope.

binaries/data/mods/public/simulation/components/Formation.js
| 851| »   var·cmpUnitMotion·=·Engine.QueryInterface(this.entity,·IID_UnitMotion);
|    | [NORMAL] JSHintBear:
|    | 'cmpUnitMotion' is already defined.
Executing section cli...

Link to build: https://jenkins.wildfiregames.com/job/docker-differential/256/display/redirect

This revision was not accepted when it landed; it landed in state Needs Review.Jul 28 2019, 12:51 PM
This revision was automatically updated to reflect the committed changes.