Page MenuHomeWildfire Games

[WIP] - Building Sockets.
Changes PlannedPublic

Authored by Freagarach on Oct 18 2019, 10:47 PM.

Details

Reviewers
None
Summary

This is a try at being able to use sockets for placing buildings.
Feedback is welcome and anyone who wants to give it a shot by themself is encouraged to commandeer ;)


Refs:

Test Plan

Place a socket, try to build a building on top. Or something like that,,,

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
Owners added a subscriber: Restricted Owners Package.Oct 18 2019, 10:47 PM

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

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/471/display/redirect

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

Linter detected issues:
Executing section Source...

source/simulation2/components/ICmpObstructionManager.h
|  53| class·ICmpObstructionManager·:·public·IComponent
|    | [MAJOR] CPPCheckBear (syntaxError):
|    | Code 'classICmpObstructionManager:' is invalid C code. Use --std or --language to configure the language.

source/simulation2/components/ICmpObstruction.h
|  29| class·ICmpObstruction·:·public·IComponent
|    | [MAJOR] CPPCheckBear (syntaxError):
|    | Code 'classICmpObstruction:' is invalid C code. Use --std or --language to configure the language.

source/simulation2/components/ICmpObstruction.cpp
|   1| /*·Copyright·(C)·2018·Wildfire·Games.
|    | [NORMAL] LicenseYearBear:
|    | License should have "2019" year instead of "2018"
Executing section JS...
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 0.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 153| 153| 	}
| 154| 154| 	else if (passClassName == "socket")
| 155| 155| 	{
| 156|    |-//		ret = cmpObstruction.CheckFoundation(passClassName, false, this.template.Socket);
|    | 156|+		//		ret = cmpObstruction.CheckFoundation(passClassName, false, this.template.Socket);
| 157| 157| //return result;
| 158| 158| 	}
| 159| 159| 	else
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 154| 154| 	else if (passClassName == "socket")
| 155| 155| 	{
| 156| 156| //		ret = cmpObstruction.CheckFoundation(passClassName, false, this.template.Socket);
| 157|    |-//return result;
|    | 157|+// return result;
| 158| 158| 	}
| 159| 159| 	else
| 160| 160| 	{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 0.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 154| 154| 	else if (passClassName == "socket")
| 155| 155| 	{
| 156| 156| //		ret = cmpObstruction.CheckFoundation(passClassName, false, this.template.Socket);
| 157|    |-//return result;
|    | 157|+		//return result;
| 158| 158| 	}
| 159| 159| 	else
| 160| 160| 	{
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 235| 235| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 236| 236| 		result.translateParameters.push("territoryType");
| 237| 237| 		result.translateParameters.push("validTerritories");
| 238|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 238|+		result.parameters.territoryType = { "context": "Territory type", "message": invalidTerritory};
| 239| 239| 		// gui code will join this array to a string
| 240| 240| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 241| 241| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 235| 235| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 236| 236| 		result.translateParameters.push("territoryType");
| 237| 237| 		result.translateParameters.push("validTerritories");
| 238|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 238|+		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory };
| 239| 239| 		// gui code will join this array to a string
| 240| 240| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 241| 241| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 237| 237| 		result.translateParameters.push("validTerritories");
| 238| 238| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 239| 239| 		// gui code will join this array to a string
| 240|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 240|+		result.parameters.validTerritories = { "context": "Territory type list", "list": this.GetTerritories()};
| 241| 241| 		return result;	// Fail
| 242| 242| 	}
| 243| 243| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 237| 237| 		result.translateParameters.push("validTerritories");
| 238| 238| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 239| 239| 		// gui code will join this array to a string
| 240|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 240|+		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories() };
| 241| 241| 		return result;	// Fail
| 242| 242| 	}
| 243| 243| 

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 166| »   »   switch·(ret)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 268| »   »   »   var·cmpIdentity·=·Engine.QueryInterface(id,·IID_Identity);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'cmpIdentity' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 277| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 298| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 188| »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 262| »   »   var·cmpRangeManager·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_RangeManager);
|    | [NORMAL] JSHintBear:
|    | 'cmpRangeManager' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 263| »   »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.
Executing section cli...

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

Stan added a subscriber: Stan.Oct 19 2019, 1:19 AM

The Settlement.js class should be updated/deleted/renamed :)

Some changes must be made to input js for snapping I guess .

I compleately overlooked Settlement.js,,,
A socket building only should check for the socket to exist and whether it is obstructed, not the type of terrain, IMHO.
Furthermore it should have a special check in BuildRestrictions.js, similar to the shore-check, whether the location is within a socket (cmpObstruction.CheckSlotPlacement(SlotTemplate)?).
Snapping should be indeed introduced and can (partly?) be reused from the wall snapping.

Freagarach edited the summary of this revision. (Show Details)
  • Renamed Settlement.js.
  • Every terrain as long as a socket exists (sockets not yet implemented).
  • cmpObstruction.CheckSocketPlacement(SlotTemplate). <- Not used yet.
Freagarach added inline comments.Oct 19 2019, 11:16 PM
source/simulation2/components/CCmpObstruction.cpp
612 ↗(On Diff #10180)

This does not work :(

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

Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/473/display/redirect

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

Linter detected issues:
Executing section Source...

source/simulation2/components/ICmpObstructionManager.h
|  53| class·ICmpObstructionManager·:·public·IComponent
|    | [MAJOR] CPPCheckBear (syntaxError):
|    | Code 'classICmpObstructionManager:' is invalid C code. Use --std or --language to configure the language.

source/simulation2/components/tests/test_ObstructionManager.h
|  23| class·MockObstruction·:·public·ICmpObstruction
|    | [MAJOR] CPPCheckBear (syntaxError):
|    | Code 'classMockObstruction:' is invalid C code. Use --std or --language to configure the language.

source/simulation2/components/ICmpObstruction.h
|  29| class·ICmpObstruction·:·public·IComponent
|    | [MAJOR] CPPCheckBear (syntaxError):
|    | Code 'classICmpObstruction:' is invalid C code. Use --std or --language to configure the language.
Executing section JS...
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 1 tab but found 0.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|  13|  13| 			"</element>";
|  14|  14| 	}
|  15|  15| 
|  16|    |-/*
|    |  16|+	/*
|  17|  17|  * TODO: the vague plan is that this should keep track of who currently owns the settlement,
|  18|  18|  * and some other code can detect this (or get notified of changes) when it needs to.
|  19|  19|  * A civcenter's BuildRestrictions component will see that it's being built on this settlement,
|    | [NORMAL] ESLintBear (no-extra-semi):
|    | Unnecessary semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|  25|  25| 	Init()
|  26|  26| 	{
|  27|  27| 		this.owner = INVALID_PLAYER;
|  28|    |-	};
|    |  28|+	}
|  29|  29| 
|  30|  30| 	/**
|  31|  31| 	 * Initialises construction, thus rendering this socket useless.
|    | [NORMAL] ESLintBear (no-extra-semi):
|    | Unnecessary semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|  49|  49| 		cmpPosition.MoveOutOfWorld();
|  50|  50| 
|  51|  51| 		return true;
|  52|    |-	};
|    |  52|+	}
|  53|  53| 
|  54|  54| 	/**
|  55|  55| 	 * Resets this socket by setting the owner to -1 and moving back to its former position.
|    | [NORMAL] ESLintBear (no-extra-semi):
|    | Unnecessary semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|  67|  67| 
|  68|  68| 		cmpPosition.JumpTo(this.previousPosition.x, this.previousPosition.z);
|  69|  69| 		delete this.previousPosition;
|  70|    |-	};
|    |  70|+	}
|  71|  71| 
|  72|  72| 	/**
|  73|  73| 	 * Get the current owner.

binaries/data/mods/public/simulation/components/BuildSlot.js
|  28| »   };
|    | [NORMAL] JSHintBear:
|    | Unnecessary semicolon.

binaries/data/mods/public/simulation/components/BuildSlot.js
|  52| »   };
|    | [NORMAL] JSHintBear:
|    | Unnecessary semicolon.

binaries/data/mods/public/simulation/components/BuildSlot.js
|  70| »   };
|    | [NORMAL] JSHintBear:
|    | Unnecessary semicolon.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 173| »   »   switch·(ret)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 280| »   »   »   var·cmpIdentity·=·Engine.QueryInterface(id,·IID_Identity);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'cmpIdentity' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 289| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 310| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 191| »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 274| »   »   var·cmpRangeManager·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_RangeManager);
|    | [NORMAL] JSHintBear:
|    | 'cmpRangeManager' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 275| »   »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.
Executing section cli...

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

Freagarach planned changes to this revision.Nov 11 2019, 12:12 PM

To js.

Freagarach updated this revision to Diff 11458.Mar 6 2020, 7:25 PM
Freagarach edited the summary of this revision. (Show Details)
Freagarach edited the test plan for this revision. (Show Details)

Moved to JS, it is partly functioning now.

Owners added subscribers: Restricted Owners Package, Restricted Owners Package.Mar 6 2020, 7:25 PM
Vulcan added a comment.Mar 6 2020, 7:39 PM

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

Linter detected issues:
Executing section Source...

source/simulation2/scripting/JSInterface_Simulation.h
|  25| namespace·JSI_Simulation
|    | [MAJOR] CPPCheckBear (syntaxError):
|    | Code 'namespaceJSI_Simulation{' is invalid C code. Use --std or --language to configure the language.
Executing section JS...
|    | [NORMAL] ESLintBear (space-unary-ops):
|    | Unary word operator 'typeof' must be followed by whitespace.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 345| 345| 	}
| 346| 346| 
| 347| 347| 	var wallPlacementInfo = updateBuildingPlacementPreview(); // entities making up the wall (wall segments, towers, ...)
| 348|    |-	if (!(wallPlacementInfo === false || typeof(wallPlacementInfo) === "object"))
|    | 348|+	if (!(wallPlacementInfo === false || typeof (wallPlacementInfo) === "object"))
| 349| 349| 	{
| 350| 350| 		error("Invalid updateBuildingPlacementPreview return value: " + uneval(wallPlacementInfo));
| 351| 351| 		return false;
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 495| 495| 	mouseIsOverObject = (hoveredObject != null);
| 496| 496| 
| 497| 497| 	// Close the menu when interacting with the game world
| 498|    |-	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown")
| 499|    |-		&& (ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
|    | 498|+	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown") &&
|    | 499|+		(ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
| 500| 500| 		g_Menu.close();
| 501| 501| 
| 502| 502| 	// State-machine processing:
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 656| 656| 		// user to continue building walls.
| 657| 657| 		switch (ev.type)
| 658| 658| 		{
| 659|    |-			case "mousemotion":
|    | 659|+		case "mousemotion":
| 660| 660| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 661| 661| 
| 662| 662| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 657| 657| 		switch (ev.type)
| 658| 658| 		{
| 659| 659| 			case "mousemotion":
| 660|    |-				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
|    | 660|+			placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 661| 661| 
| 662| 662| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 663| 663| 				// the ending point and the starting point to snap to.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 659| 659| 			case "mousemotion":
| 660| 660| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 661| 661| 
| 662|    |-				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | 662|+			// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 663| 663| 				// the ending point and the starting point to snap to.
| 664| 664| 				//
| 665| 665| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 660| 660| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 661| 661| 
| 662| 662| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 663|    |-				// the ending point and the starting point to snap to.
|    | 663|+			// the ending point and the starting point to snap to.
| 664| 664| 				//
| 665| 665| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 666| 666| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 661| 661| 
| 662| 662| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 663| 663| 				// the ending point and the starting point to snap to.
| 664|    |-				//
|    | 664|+			//
| 665| 665| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 666| 666| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 667| 667| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 662| 662| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 663| 663| 				// the ending point and the starting point to snap to.
| 664| 664| 				//
| 665|    |-				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | 665|+			// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 666| 666| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 667| 667| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 668| 668| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 663| 663| 				// the ending point and the starting point to snap to.
| 664| 664| 				//
| 665| 665| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 666|    |-				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | 666|+			// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 667| 667| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 668| 668| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 669| 669| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 664| 664| 				//
| 665| 665| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 666| 666| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 667|    |-				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | 667|+			// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 668| 668| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 669| 669| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 670| 670| 				// points.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 665| 665| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 666| 666| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 667| 667| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 668|    |-				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | 668|+			// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 669| 669| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 670| 670| 				// points.
| 671| 671| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 666| 666| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 667| 667| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 668| 668| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 669|    |-				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | 669|+			// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 670| 670| 				// points.
| 671| 671| 
| 672| 672| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 667| 667| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 668| 668| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 669| 669| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 670|    |-				// points.
|    | 670|+			// points.
| 671| 671| 
| 672| 672| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 673| 673| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 669| 669| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 670| 670| 				// points.
| 671| 671| 
| 672|    |-				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | 672|+			placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 673| 673| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 674| 674| 
| 675| 675| 				if (result && result.cost)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 670| 670| 				// points.
| 671| 671| 
| 672| 672| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 673|    |-				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | 673|+			var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 674| 674| 
| 675| 675| 				if (result && result.cost)
| 676| 676| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 672| 672| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 673| 673| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 674| 674| 
| 675|    |-				if (result && result.cost)
|    | 675|+			if (result && result.cost)
| 676| 676| 				{
| 677| 677| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 678| 678| 					placementSupport.tooltipMessage = [
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 673| 673| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 674| 674| 
| 675| 675| 				if (result && result.cost)
| 676|    |-				{
|    | 676|+			{
| 677| 677| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 678| 678| 					placementSupport.tooltipMessage = [
| 679| 679| 						getEntityCostTooltip(result),
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 674| 674| 
| 675| 675| 				if (result && result.cost)
| 676| 676| 				{
| 677|    |-					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
|    | 677|+				var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 678| 678| 					placementSupport.tooltipMessage = [
| 679| 679| 						getEntityCostTooltip(result),
| 680| 680| 						getNeededResourcesTooltip(neededResources)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 675| 675| 				if (result && result.cost)
| 676| 676| 				{
| 677| 677| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 678|    |-					placementSupport.tooltipMessage = [
|    | 678|+				placementSupport.tooltipMessage = [
| 679| 679| 						getEntityCostTooltip(result),
| 680| 680| 						getNeededResourcesTooltip(neededResources)
| 681| 681| 					].filter(tip => tip).join("\n");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 676| 676| 				{
| 677| 677| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 678| 678| 					placementSupport.tooltipMessage = [
| 679|    |-						getEntityCostTooltip(result),
|    | 679|+					getEntityCostTooltip(result),
| 680| 680| 						getNeededResourcesTooltip(neededResources)
| 681| 681| 					].filter(tip => tip).join("\n");
| 682| 682| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 677| 677| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 678| 678| 					placementSupport.tooltipMessage = [
| 679| 679| 						getEntityCostTooltip(result),
| 680|    |-						getNeededResourcesTooltip(neededResources)
|    | 680|+					getNeededResourcesTooltip(neededResources)
| 681| 681| 					].filter(tip => tip).join("\n");
| 682| 682| 				}
| 683| 683| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 678| 678| 					placementSupport.tooltipMessage = [
| 679| 679| 						getEntityCostTooltip(result),
| 680| 680| 						getNeededResourcesTooltip(neededResources)
| 681|    |-					].filter(tip => tip).join("\n");
|    | 681|+				].filter(tip => tip).join("\n");
| 682| 682| 				}
| 683| 683| 
| 684| 684| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 679| 679| 						getEntityCostTooltip(result),
| 680| 680| 						getNeededResourcesTooltip(neededResources)
| 681| 681| 					].filter(tip => tip).join("\n");
| 682|    |-				}
|    | 682|+			}
| 683| 683| 
| 684| 684| 				break;
| 685| 685| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 681| 681| 					].filter(tip => tip).join("\n");
| 682| 682| 				}
| 683| 683| 
| 684|    |-				break;
|    | 684|+			break;
| 685| 685| 
| 686| 686| 			case "mousebuttondown":
| 687| 687| 				if (ev.button == SDL_BUTTON_LEFT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 683| 683| 
| 684| 684| 				break;
| 685| 685| 
| 686|    |-			case "mousebuttondown":
|    | 686|+		case "mousebuttondown":
| 687| 687| 				if (ev.button == SDL_BUTTON_LEFT)
| 688| 688| 				{
| 689| 689| 					var queued = Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 684| 684| 				break;
| 685| 685| 
| 686| 686| 			case "mousebuttondown":
| 687|    |-				if (ev.button == SDL_BUTTON_LEFT)
|    | 687|+			if (ev.button == SDL_BUTTON_LEFT)
| 688| 688| 				{
| 689| 689| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 690| 690| 					if (tryPlaceWall(queued))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 685| 685| 
| 686| 686| 			case "mousebuttondown":
| 687| 687| 				if (ev.button == SDL_BUTTON_LEFT)
| 688|    |-				{
|    | 688|+			{
| 689| 689| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 690| 690| 					if (tryPlaceWall(queued))
| 691| 691| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 686| 686| 			case "mousebuttondown":
| 687| 687| 				if (ev.button == SDL_BUTTON_LEFT)
| 688| 688| 				{
| 689|    |-					var queued = Engine.HotkeyIsPressed("session.queue");
|    | 689|+				var queued = Engine.HotkeyIsPressed("session.queue");
| 690| 690| 					if (tryPlaceWall(queued))
| 691| 691| 					{
| 692| 692| 						if (queued)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 687| 687| 				if (ev.button == SDL_BUTTON_LEFT)
| 688| 688| 				{
| 689| 689| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 690|    |-					if (tryPlaceWall(queued))
|    | 690|+				if (tryPlaceWall(queued))
| 691| 691| 					{
| 692| 692| 						if (queued)
| 693| 693| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 688| 688| 				{
| 689| 689| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 690| 690| 					if (tryPlaceWall(queued))
| 691|    |-					{
|    | 691|+				{
| 692| 692| 						if (queued)
| 693| 693| 						{
| 694| 694| 							// continue building, just set a new starting position where we left off
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 689| 689| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 690| 690| 					if (tryPlaceWall(queued))
| 691| 691| 					{
| 692|    |-						if (queued)
|    | 692|+					if (queued)
| 693| 693| 						{
| 694| 694| 							// continue building, just set a new starting position where we left off
| 695| 695| 							placementSupport.position = placementSupport.wallEndPosition;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 690| 690| 					if (tryPlaceWall(queued))
| 691| 691| 					{
| 692| 692| 						if (queued)
| 693|    |-						{
|    | 693|+					{
| 694| 694| 							// continue building, just set a new starting position where we left off
| 695| 695| 							placementSupport.position = placementSupport.wallEndPosition;
| 696| 696| 							placementSupport.wallEndPosition = undefined;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 691| 691| 					{
| 692| 692| 						if (queued)
| 693| 693| 						{
| 694|    |-							// continue building, just set a new starting position where we left off
|    | 694|+						// continue building, just set a new starting position where we left off
| 695| 695| 							placementSupport.position = placementSupport.wallEndPosition;
| 696| 696| 							placementSupport.wallEndPosition = undefined;
| 697| 697| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 692| 692| 						if (queued)
| 693| 693| 						{
| 694| 694| 							// continue building, just set a new starting position where we left off
| 695|    |-							placementSupport.position = placementSupport.wallEndPosition;
|    | 695|+						placementSupport.position = placementSupport.wallEndPosition;
| 696| 696| 							placementSupport.wallEndPosition = undefined;
| 697| 697| 
| 698| 698| 							inputState = INPUT_BUILDING_WALL_CLICK;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 693| 693| 						{
| 694| 694| 							// continue building, just set a new starting position where we left off
| 695| 695| 							placementSupport.position = placementSupport.wallEndPosition;
| 696|    |-							placementSupport.wallEndPosition = undefined;
|    | 696|+						placementSupport.wallEndPosition = undefined;
| 697| 697| 
| 698| 698| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 699| 699| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 695| 695| 							placementSupport.position = placementSupport.wallEndPosition;
| 696| 696| 							placementSupport.wallEndPosition = undefined;
| 697| 697| 
| 698|    |-							inputState = INPUT_BUILDING_WALL_CLICK;
|    | 698|+						inputState = INPUT_BUILDING_WALL_CLICK;
| 699| 699| 						}
| 700| 700| 						else
| 701| 701| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 696| 696| 							placementSupport.wallEndPosition = undefined;
| 697| 697| 
| 698| 698| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 699|    |-						}
|    | 699|+					}
| 700| 700| 						else
| 701| 701| 						{
| 702| 702| 							placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 697| 697| 
| 698| 698| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 699| 699| 						}
| 700|    |-						else
|    | 700|+					else
| 701| 701| 						{
| 702| 702| 							placementSupport.Reset();
| 703| 703| 							inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 698| 698| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 699| 699| 						}
| 700| 700| 						else
| 701|    |-						{
|    | 701|+					{
| 702| 702| 							placementSupport.Reset();
| 703| 703| 							inputState = INPUT_NORMAL;
| 704| 704| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 699| 699| 						}
| 700| 700| 						else
| 701| 701| 						{
| 702|    |-							placementSupport.Reset();
|    | 702|+						placementSupport.Reset();
| 703| 703| 							inputState = INPUT_NORMAL;
| 704| 704| 						}
| 705| 705| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 700| 700| 						else
| 701| 701| 						{
| 702| 702| 							placementSupport.Reset();
| 703|    |-							inputState = INPUT_NORMAL;
|    | 703|+						inputState = INPUT_NORMAL;
| 704| 704| 						}
| 705| 705| 					}
| 706| 706| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 701| 701| 						{
| 702| 702| 							placementSupport.Reset();
| 703| 703| 							inputState = INPUT_NORMAL;
| 704|    |-						}
|    | 704|+					}
| 705| 705| 					}
| 706| 706| 					else
| 707| 707| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 702| 702| 							placementSupport.Reset();
| 703| 703| 							inputState = INPUT_NORMAL;
| 704| 704| 						}
| 705|    |-					}
|    | 705|+				}
| 706| 706| 					else
| 707| 707| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 708| 708| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 703| 703| 							inputState = INPUT_NORMAL;
| 704| 704| 						}
| 705| 705| 					}
| 706|    |-					else
|    | 706|+				else
| 707| 707| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 708| 708| 
| 709| 709| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 704| 704| 						}
| 705| 705| 					}
| 706| 706| 					else
| 707|    |-						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | 707|+					placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 708| 708| 
| 709| 709| 					updateBuildingPlacementPreview();
| 710| 710| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 706| 706| 					else
| 707| 707| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 708| 708| 
| 709|    |-					updateBuildingPlacementPreview();
|    | 709|+				updateBuildingPlacementPreview();
| 710| 710| 					return true;
| 711| 711| 				}
| 712| 712| 				else if (ev.button == SDL_BUTTON_RIGHT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 707| 707| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 708| 708| 
| 709| 709| 					updateBuildingPlacementPreview();
| 710|    |-					return true;
|    | 710|+				return true;
| 711| 711| 				}
| 712| 712| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 713| 713| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 708| 708| 
| 709| 709| 					updateBuildingPlacementPreview();
| 710| 710| 					return true;
| 711|    |-				}
|    | 711|+			}
| 712| 712| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 713| 713| 				{
| 714| 714| 					// reset to normal input mode
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 709| 709| 					updateBuildingPlacementPreview();
| 710| 710| 					return true;
| 711| 711| 				}
| 712|    |-				else if (ev.button == SDL_BUTTON_RIGHT)
|    | 712|+			else if (ev.button == SDL_BUTTON_RIGHT)
| 713| 713| 				{
| 714| 714| 					// reset to normal input mode
| 715| 715| 					placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 710| 710| 					return true;
| 711| 711| 				}
| 712| 712| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 713|    |-				{
|    | 713|+			{
| 714| 714| 					// reset to normal input mode
| 715| 715| 					placementSupport.Reset();
| 716| 716| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 711| 711| 				}
| 712| 712| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 713| 713| 				{
| 714|    |-					// reset to normal input mode
|    | 714|+				// reset to normal input mode
| 715| 715| 					placementSupport.Reset();
| 716| 716| 					updateBuildingPlacementPreview();
| 717| 717| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 712| 712| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 713| 713| 				{
| 714| 714| 					// reset to normal input mode
| 715|    |-					placementSupport.Reset();
|    | 715|+				placementSupport.Reset();
| 716| 716| 					updateBuildingPlacementPreview();
| 717| 717| 
| 718| 718| 					inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 713| 713| 				{
| 714| 714| 					// reset to normal input mode
| 715| 715| 					placementSupport.Reset();
| 716|    |-					updateBuildingPlacementPreview();
|    | 716|+				updateBuildingPlacementPreview();
| 717| 717| 
| 718| 718| 					inputState = INPUT_NORMAL;
| 719| 719| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 715| 715| 					placementSupport.Reset();
| 716| 716| 					updateBuildingPlacementPreview();
| 717| 717| 
| 718|    |-					inputState = INPUT_NORMAL;
|    | 718|+				inputState = INPUT_NORMAL;
| 719| 719| 					return true;
| 720| 720| 				}
| 721| 721| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 716| 716| 					updateBuildingPlacementPreview();
| 717| 717| 
| 718| 718| 					inputState = INPUT_NORMAL;
| 719|    |-					return true;
|    | 719|+				return true;
| 720| 720| 				}
| 721| 721| 				break;
| 722| 722| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 717| 717| 
| 718| 718| 					inputState = INPUT_NORMAL;
| 719| 719| 					return true;
| 720|    |-				}
|    | 720|+			}
| 721| 721| 				break;
| 722| 722| 		}
| 723| 723| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 718| 718| 					inputState = INPUT_NORMAL;
| 719| 719| 					return true;
| 720| 720| 				}
| 721|    |-				break;
|    | 721|+			break;
| 722| 722| 		}
| 723| 723| 		break;
| 724| 724| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 860| 860| 			break;
| 861| 861| 
| 862| 862| 		case "hotkeydown":
| 863|    |-				if (ev.hotkey.indexOf("selection.group.") == 0)
|    | 863|+			if (ev.hotkey.indexOf("selection.group.") == 0)
| 864| 864| 				{
| 865| 865| 					let now = Date.now();
| 866| 866| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 861| 861| 
| 862| 862| 		case "hotkeydown":
| 863| 863| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 864|    |-				{
|    | 864|+			{
| 865| 865| 					let now = Date.now();
| 866| 866| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 867| 867| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 862| 862| 		case "hotkeydown":
| 863| 863| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 864| 864| 				{
| 865|    |-					let now = Date.now();
|    | 865|+				let now = Date.now();
| 866| 866| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 867| 867| 					{
| 868| 868| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 863| 863| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 864| 864| 				{
| 865| 865| 					let now = Date.now();
| 866|    |-					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | 866|+				if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 867| 867| 					{
| 868| 868| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 869| 869| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 864| 864| 				{
| 865| 865| 					let now = Date.now();
| 866| 866| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 867|    |-					{
|    | 867|+				{
| 868| 868| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 869| 869| 						{
| 870| 870| 							var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 865| 865| 					let now = Date.now();
| 866| 866| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 867| 867| 					{
| 868|    |-						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | 868|+					if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 869| 869| 						{
| 870| 870| 							var sptr = ev.hotkey.split(".");
| 871| 871| 							performGroup("snap", sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 866| 866| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 867| 867| 					{
| 868| 868| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 869|    |-						{
|    | 869|+					{
| 870| 870| 							var sptr = ev.hotkey.split(".");
| 871| 871| 							performGroup("snap", sptr[3]);
| 872| 872| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 867| 867| 					{
| 868| 868| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 869| 869| 						{
| 870|    |-							var sptr = ev.hotkey.split(".");
|    | 870|+						var sptr = ev.hotkey.split(".");
| 871| 871| 							performGroup("snap", sptr[3]);
| 872| 872| 						}
| 873| 873| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 868| 868| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 869| 869| 						{
| 870| 870| 							var sptr = ev.hotkey.split(".");
| 871|    |-							performGroup("snap", sptr[3]);
|    | 871|+						performGroup("snap", sptr[3]);
| 872| 872| 						}
| 873| 873| 					}
| 874| 874| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 869| 869| 						{
| 870| 870| 							var sptr = ev.hotkey.split(".");
| 871| 871| 							performGroup("snap", sptr[3]);
| 872|    |-						}
|    | 872|+					}
| 873| 873| 					}
| 874| 874| 					else
| 875| 875| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 870| 870| 							var sptr = ev.hotkey.split(".");
| 871| 871| 							performGroup("snap", sptr[3]);
| 872| 872| 						}
| 873|    |-					}
|    | 873|+				}
| 874| 874| 					else
| 875| 875| 					{
| 876| 876| 						var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 871| 871| 							performGroup("snap", sptr[3]);
| 872| 872| 						}
| 873| 873| 					}
| 874|    |-					else
|    | 874|+				else
| 875| 875| 					{
| 876| 876| 						var sptr = ev.hotkey.split(".");
| 877| 877| 						performGroup(sptr[2], sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 872| 872| 						}
| 873| 873| 					}
| 874| 874| 					else
| 875|    |-					{
|    | 875|+				{
| 876| 876| 						var sptr = ev.hotkey.split(".");
| 877| 877| 						performGroup(sptr[2], sptr[3]);
| 878| 878| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 873| 873| 					}
| 874| 874| 					else
| 875| 875| 					{
| 876|    |-						var sptr = ev.hotkey.split(".");
|    | 876|+					var sptr = ev.hotkey.split(".");
| 877| 877| 						performGroup(sptr[2], sptr[3]);
| 878| 878| 
| 879| 879| 						doublePressTimer = now;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 874| 874| 					else
| 875| 875| 					{
| 876| 876| 						var sptr = ev.hotkey.split(".");
| 877|    |-						performGroup(sptr[2], sptr[3]);
|    | 877|+					performGroup(sptr[2], sptr[3]);
| 878| 878| 
| 879| 879| 						doublePressTimer = now;
| 880| 880| 						prevHotkey = ev.hotkey;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 876| 876| 						var sptr = ev.hotkey.split(".");
| 877| 877| 						performGroup(sptr[2], sptr[3]);
| 878| 878| 
| 879|    |-						doublePressTimer = now;
|    | 879|+					doublePressTimer = now;
| 880| 880| 						prevHotkey = ev.hotkey;
| 881| 881| 					}
| 882| 882| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 877| 877| 						performGroup(sptr[2], sptr[3]);
| 878| 878| 
| 879| 879| 						doublePressTimer = now;
| 880|    |-						prevHotkey = ev.hotkey;
|    | 880|+					prevHotkey = ev.hotkey;
| 881| 881| 					}
| 882| 882| 				}
| 883| 883| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 878| 878| 
| 879| 879| 						doublePressTimer = now;
| 880| 880| 						prevHotkey = ev.hotkey;
| 881|    |-					}
|    | 881|+				}
| 882| 882| 				}
| 883| 883| 				break;
| 884| 884| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 879| 879| 						doublePressTimer = now;
| 880| 880| 						prevHotkey = ev.hotkey;
| 881| 881| 					}
| 882|    |-				}
|    | 882|+			}
| 883| 883| 				break;
| 884| 884| 		}
| 885| 885| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 880| 880| 						prevHotkey = ev.hotkey;
| 881| 881| 					}
| 882| 882| 				}
| 883|    |-				break;
|    | 883|+			break;
| 884| 884| 		}
| 885| 885| 		break;
| 886| 886| 
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|1612|1612| 	var selectall = Engine.HotkeyIsPressed("selection.offscreen");
|1613|1613| 
|1614|1614| 	// Reset the last idle unit, etc., if the selection type has changed.
|1615|    |-	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v,i) => v === lastIdleClasses[i]))
|    |1615|+	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v, i) => v === lastIdleClasses[i]))
|1616|1616| 		resetIdleUnit();
|1617|1617| 	lastIdleClasses = classes;
|1618|1618| 

binaries/data/mods/public/gui/session/input.js
| 240| »   var·target·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'target' to undefined.

binaries/data/mods/public/gui/session/input.js
| 254| »   var·actionInfo·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'actionInfo' to undefined.

binaries/data/mods/public/gui/session/input.js
| 484| »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 511| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 515| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 570| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 580| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 628| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 657| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 726| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 742| ·»   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 743| ·»   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 748| ·»   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 827| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 830| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 932| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1021| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1035| »   »   »   »   let·action·=·determineAction(ev.x,·ev.y);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'action' is already declared in the upper scope.

binaries/data/mods/public/gui/session/input.js
|1044| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1068| ·»   »   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1069| ·»   »   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1070| ·»   »   »   »   »   "z":·placementSupport.position.z,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1073| ·»   »   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1133| »   »   »   switch·(ev.hotkey)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1563| »   switch·(action)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 240| »   var·target·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'target' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 254| »   var·actionInfo·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'actionInfo' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 268| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 271| »   »   »   var·r·=·g_UnitActions[action].hotkeyActionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 276| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 279| »   »   »   var·r·=·g_UnitActions[action].actionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 499| »   »   &&·(ev.button·==·SDL_BUTTON_LEFT·||·ev.button·==·SDL_BUTTON_RIGHT))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/gui/session/input.js
| 529| »   »   »   »   var·rect·=·updateBandbox(bandbox,·ev,·true);
|    | [NORMAL] JSHintBear:
|    | 'rect' is already defined.

binaries/data/mods/public/gui/session/input.js
| 532| »   »   »   »   var·ents·=·getPreferredEntities(Engine.PickPlayerEntitiesInRect(rect[0],·rect[1],·rect[2],·rect[3],·g_ViewedPlayer));
|    | [NORMAL] JSHintBear:
|    | 'ents' is already defined.

binaries/data/mods/public/gui/session/input.js
| 689| »   »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 763| »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 876| »   »   »   »   »   »   var·sptr·=·ev.hotkey.split(".");
|    | [NORMAL] JSHintBear:
|    | 'sptr' is already defined.

binaries/data/mods/public/gui/session/input.js
| 892| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.

binaries/data/mods/public/gui/session/input.js
| 918| »   »   »   }
|    | [NORMAL] JSHintBear:
|    | Expected a 'break' statement before 'default'.

binaries/data/mods/public/gui/session/input.js
| 942| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 826| 826| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 827| 827| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 828| 828| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 829|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 829|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 830| 830| 	}
| 831| 831| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 832| 832| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1681|1681| 			{
|1682|1682| 				minDist2 = dist2;
|1683|1683| 				minDistEntitySnapData = {
|1684|    |-						"x": pos.x,
|    |1684|+					"x": pos.x,
|1685|1685| 						"z": pos.z,
|1686|1686| 						"angle": cmpPosition.GetRotation().y,
|1687|1687| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1682|1682| 				minDist2 = dist2;
|1683|1683| 				minDistEntitySnapData = {
|1684|1684| 						"x": pos.x,
|1685|    |-						"z": pos.z,
|    |1685|+					"z": pos.z,
|1686|1686| 						"angle": cmpPosition.GetRotation().y,
|1687|1687| 						"ent": ent
|1688|1688| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1683|1683| 				minDistEntitySnapData = {
|1684|1684| 						"x": pos.x,
|1685|1685| 						"z": pos.z,
|1686|    |-						"angle": cmpPosition.GetRotation().y,
|    |1686|+					"angle": cmpPosition.GetRotation().y,
|1687|1687| 						"ent": ent
|1688|1688| 				};
|1689|1689| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1684|1684| 						"x": pos.x,
|1685|1685| 						"z": pos.z,
|1686|1686| 						"angle": cmpPosition.GetRotation().y,
|1687|    |-						"ent": ent
|    |1687|+					"ent": ent
|1688|1688| 				};
|1689|1689| 			}
|1690|1690| 		}
|    | [NORMAL] ESLintBear (no-extra-semi):
|    | Unnecessary semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|  24|  24| 	Init()
|  25|  25| 	{
|  26|  26| 		this.owner = INVALID_PLAYER;
|  27|    |-	};
|    |  27|+	}
|  28|  28| 
|  29|  29| 	/**
|  30|  30| 	 * Initialises construction, thus rendering this socket useless.
|    | [NORMAL] ESLintBear (no-extra-semi):
|    | Unnecessary semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|  48|  48| 		cmpPosition.MoveOutOfWorld();
|  49|  49| 
|  50|  50| 		return true;
|  51|    |-	};
|    |  51|+	}
|  52|  52| 
|  53|  53| 	/**
|  54|  54| 	 * Resets this socket by setting the owner to -1 and moving back to its former position.
|    | [NORMAL] ESLintBear (no-extra-semi):
|    | Unnecessary semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|  66|  66| 
|  67|  67| 		cmpPosition.JumpTo(this.previousPosition.x, this.previousPosition.z);
|  68|  68| 		delete this.previousPosition;
|  69|    |-	};
|    |  69|+	}
|  70|  70| 
|  71|  71| 	/**
|  72|  72| 	 * Get the current owner.

binaries/data/mods/public/simulation/components/BuildSlot.js
|  27| »   };
|    | [NORMAL] JSHintBear:
|    | Unnecessary semicolon.

binaries/data/mods/public/simulation/components/BuildSlot.js
|  51| »   };
|    | [NORMAL] JSHintBear:
|    | Unnecessary semicolon.

binaries/data/mods/public/simulation/components/BuildSlot.js
|  69| »   };
|    | [NORMAL] JSHintBear:
|    | Unnecessary semicolon.
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 227| 227| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 228| 228| 		result.translateParameters.push("territoryType");
| 229| 229| 		result.translateParameters.push("validTerritories");
| 230|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 230|+		result.parameters.territoryType = { "context": "Territory type", "message": invalidTerritory};
| 231| 231| 		// gui code will join this array to a string
| 232| 232| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 233| 233| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 227| 227| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 228| 228| 		result.translateParameters.push("territoryType");
| 229| 229| 		result.translateParameters.push("validTerritories");
| 230|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 230|+		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory };
| 231| 231| 		// gui code will join this array to a string
| 232| 232| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 233| 233| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 229| 229| 		result.translateParameters.push("validTerritories");
| 230| 230| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 231| 231| 		// gui code will join this array to a string
| 232|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 232|+		result.parameters.validTerritories = { "context": "Territory type list", "list": this.GetTerritories()};
| 233| 233| 		return result;	// Fail
| 234| 234| 	}
| 235| 235| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 229| 229| 		result.translateParameters.push("validTerritories");
| 230| 230| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 231| 231| 		// gui code will join this array to a string
| 232|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 232|+		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories() };
| 233| 233| 		return result;	// Fail
| 234| 234| 	}
| 235| 235| 

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 162| »   »   switch·(ret)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 268| »   »   »   var·cmpIdentity·=·Engine.QueryInterface(id,·IID_Identity);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'cmpIdentity' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 277| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 298| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 157| »   »   var·ret·=·cmpObstruction.CheckFoundation(passClassName,·false);
|    | [NORMAL] JSHintBear:
|    | 'ret' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 180| »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 262| »   »   var·cmpRangeManager·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_RangeManager);
|    | [NORMAL] JSHintBear:
|    | 'cmpRangeManager' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 263| »   »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 160| »   if·(ret·!=·"success"·&&·this.template.PlacementType·!=·"socket")
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 162| »   »   switch·(ret)
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.
Executing section cli...

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

Freagarach updated this revision to Diff 11482.Mar 14 2020, 3:50 PM

Some more work, it properly snaps and is buildable now.

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

Linter detected issues:
Executing section Source...

source/simulation2/scripting/JSInterface_Simulation.h
|  25| namespace·JSI_Simulation
|    | [MAJOR] CPPCheckBear (syntaxError):
|    | Code 'namespaceJSI_Simulation{' is invalid C code. Use --std or --language to configure the language.
Executing section JS...
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
| 274| 274| 				ret.buildRestrictions.distance.max = getEntityValue("BuildRestrictions/Distance/MaxDistance");
| 275| 275| 		}
| 276| 276| 		if (template.BuildRestrictions.Sockets)
| 277|    |-			ret.buildRestrictions.sockets = template.BuildRestrictions.Sockets._string
|    | 277|+			ret.buildRestrictions.sockets = template.BuildRestrictions.Sockets._string;
| 278| 278| 	}
| 279| 279| 
| 280| 280| 	if (template.TrainingRestrictions)

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.

binaries/data/mods/public/globalscripts/Templates.js
| 277| »   »   »   ret.buildRestrictions.sockets·=·template.BuildRestrictions.Sockets._string
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 826| 826| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 827| 827| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 828| 828| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 829|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 829|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 830| 830| 	}
| 831| 831| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 832| 832| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1105|1105| 			result.x = snapData.x;
|1106|1106| 			result.z = snapData.z;
|1107|1107| 			if (snapData.entity)
|1108|    |-				result.snappedEnt = snapData.snappedEntity
|    |1108|+				result.snappedEnt = snapData.snappedEntity;
|1109|1109| 		}
|1110|1110| 
|1111|1111| 		let cmpRangeOverlayManager = Engine.QueryInterface(ent, IID_RangeOverlayManager);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1690|1690| 			{
|1691|1691| 				minDist2 = dist2;
|1692|1692| 				minDistEntitySnapData = {
|1693|    |-						"x": pos.x,
|    |1693|+					"x": pos.x,
|1694|1694| 						"z": pos.z,
|1695|1695| 						"angle": cmpPosition.GetRotation().y,
|1696|1696| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1691|1691| 				minDist2 = dist2;
|1692|1692| 				minDistEntitySnapData = {
|1693|1693| 						"x": pos.x,
|1694|    |-						"z": pos.z,
|    |1694|+					"z": pos.z,
|1695|1695| 						"angle": cmpPosition.GetRotation().y,
|1696|1696| 						"ent": ent
|1697|1697| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1692|1692| 				minDistEntitySnapData = {
|1693|1693| 						"x": pos.x,
|1694|1694| 						"z": pos.z,
|1695|    |-						"angle": cmpPosition.GetRotation().y,
|    |1695|+					"angle": cmpPosition.GetRotation().y,
|1696|1696| 						"ent": ent
|1697|1697| 				};
|1698|1698| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1693|1693| 						"x": pos.x,
|1694|1694| 						"z": pos.z,
|1695|1695| 						"angle": cmpPosition.GetRotation().y,
|1696|    |-						"ent": ent
|    |1696|+					"ent": ent
|1697|1697| 				};
|1698|1698| 			}
|1699|1699| 		}

binaries/data/mods/public/simulation/components/GuiInterface.js
|1108| »   »   »   »   result.snappedEnt·=·snapData.snappedEntity
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 227| 227| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 228| 228| 		result.translateParameters.push("territoryType");
| 229| 229| 		result.translateParameters.push("validTerritories");
| 230|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 230|+		result.parameters.territoryType = { "context": "Territory type", "message": invalidTerritory};
| 231| 231| 		// gui code will join this array to a string
| 232| 232| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 233| 233| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 227| 227| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 228| 228| 		result.translateParameters.push("territoryType");
| 229| 229| 		result.translateParameters.push("validTerritories");
| 230|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 230|+		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory };
| 231| 231| 		// gui code will join this array to a string
| 232| 232| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 233| 233| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 229| 229| 		result.translateParameters.push("validTerritories");
| 230| 230| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 231| 231| 		// gui code will join this array to a string
| 232|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 232|+		result.parameters.validTerritories = { "context": "Territory type list", "list": this.GetTerritories()};
| 233| 233| 		return result;	// Fail
| 234| 234| 	}
| 235| 235| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 229| 229| 		result.translateParameters.push("validTerritories");
| 230| 230| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 231| 231| 		// gui code will join this array to a string
| 232|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 232|+		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories() };
| 233| 233| 		return result;	// Fail
| 234| 234| 	}
| 235| 235| 

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 162| »   »   switch·(ret)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 268| »   »   »   var·cmpIdentity·=·Engine.QueryInterface(id,·IID_Identity);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'cmpIdentity' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 277| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 298| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 157| »   »   var·ret·=·cmpObstruction.CheckFoundation(passClassName,·false);
|    | [NORMAL] JSHintBear:
|    | 'ret' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 180| »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 262| »   »   var·cmpRangeManager·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_RangeManager);
|    | [NORMAL] JSHintBear:
|    | 'cmpRangeManager' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 263| »   »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 160| »   if·(ret·!=·"success"·&&·this.template.PlacementType·!=·"socket")
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 162| »   »   switch·(ret)
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.
|    | [NORMAL] ESLintBear (no-extra-semi):
|    | Unnecessary semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|  24|  24| 	Init()
|  25|  25| 	{
|  26|  26| 		this.owner = INVALID_PLAYER;
|  27|    |-	};
|    |  27|+	}
|  28|  28| 
|  29|  29| 	/**
|  30|  30| 	 * Initialises construction, thus rendering this socket useless.
|    | [NORMAL] ESLintBear (no-extra-semi):
|    | Unnecessary semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|  48|  48| 		cmpPosition.MoveOutOfWorld();
|  49|  49| 
|  50|  50| 		return true;
|  51|    |-	};
|    |  51|+	}
|  52|  52| 
|  53|  53| 	/**
|  54|  54| 	 * Resets this socket by setting the owner to -1 and moving back to its former position.
|    | [NORMAL] ESLintBear (no-extra-semi):
|    | Unnecessary semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildSlot.js
|  66|  66| 
|  67|  67| 		cmpPosition.JumpTo(this.previousPosition.x, this.previousPosition.z);
|  68|  68| 		delete this.previousPosition;
|  69|    |-	};
|    |  69|+	}
|  70|  70| 
|  71|  71| 	/**
|  72|  72| 	 * Get the current owner.

binaries/data/mods/public/simulation/components/BuildSlot.js
|  27| »   };
|    | [NORMAL] JSHintBear:
|    | Unnecessary semicolon.

binaries/data/mods/public/simulation/components/BuildSlot.js
|  51| »   };
|    | [NORMAL] JSHintBear:
|    | Unnecessary semicolon.

binaries/data/mods/public/simulation/components/BuildSlot.js
|  69| »   };
|    | [NORMAL] JSHintBear:
|    | Unnecessary semicolon.
|    | [NORMAL] ESLintBear (space-unary-ops):
|    | Unary word operator 'typeof' must be followed by whitespace.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 347| 347| 	}
| 348| 348| 
| 349| 349| 	var wallPlacementInfo = updateBuildingPlacementPreview(); // entities making up the wall (wall segments, towers, ...)
| 350|    |-	if (!(wallPlacementInfo === false || typeof(wallPlacementInfo) === "object"))
|    | 350|+	if (!(wallPlacementInfo === false || typeof (wallPlacementInfo) === "object"))
| 351| 351| 	{
| 352| 352| 		error("Invalid updateBuildingPlacementPreview return value: " + uneval(wallPlacementInfo));
| 353| 353| 		return false;
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 497| 497| 	mouseIsOverObject = (hoveredObject != null);
| 498| 498| 
| 499| 499| 	// Close the menu when interacting with the game world
| 500|    |-	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown")
| 501|    |-		&& (ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
|    | 500|+	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown") &&
|    | 501|+		(ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
| 502| 502| 		g_Menu.close();
| 503| 503| 
| 504| 504| 	// State-machine processing:
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 658| 658| 		// user to continue building walls.
| 659| 659| 		switch (ev.type)
| 660| 660| 		{
| 661|    |-			case "mousemotion":
|    | 661|+		case "mousemotion":
| 662| 662| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 663| 663| 
| 664| 664| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 659| 659| 		switch (ev.type)
| 660| 660| 		{
| 661| 661| 			case "mousemotion":
| 662|    |-				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
|    | 662|+			placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 663| 663| 
| 664| 664| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 665| 665| 				// the ending point and the starting point to snap to.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 661| 661| 			case "mousemotion":
| 662| 662| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 663| 663| 
| 664|    |-				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | 664|+			// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 665| 665| 				// the ending point and the starting point to snap to.
| 666| 666| 				//
| 667| 667| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 662| 662| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 663| 663| 
| 664| 664| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 665|    |-				// the ending point and the starting point to snap to.
|    | 665|+			// the ending point and the starting point to snap to.
| 666| 666| 				//
| 667| 667| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 668| 668| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 663| 663| 
| 664| 664| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 665| 665| 				// the ending point and the starting point to snap to.
| 666|    |-				//
|    | 666|+			//
| 667| 667| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 668| 668| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 669| 669| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 664| 664| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 665| 665| 				// the ending point and the starting point to snap to.
| 666| 666| 				//
| 667|    |-				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | 667|+			// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 668| 668| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 669| 669| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 670| 670| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 665| 665| 				// the ending point and the starting point to snap to.
| 666| 666| 				//
| 667| 667| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 668|    |-				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | 668|+			// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 669| 669| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 670| 670| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 671| 671| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 666| 666| 				//
| 667| 667| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 668| 668| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 669|    |-				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | 669|+			// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 670| 670| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 671| 671| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 672| 672| 				// points.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 667| 667| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 668| 668| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 669| 669| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 670|    |-				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | 670|+			// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 671| 671| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 672| 672| 				// points.
| 673| 673| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 668| 668| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 669| 669| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 670| 670| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 671|    |-				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | 671|+			// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 672| 672| 				// points.
| 673| 673| 
| 674| 674| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 669| 669| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 670| 670| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 671| 671| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 672|    |-				// points.
|    | 672|+			// points.
| 673| 673| 
| 674| 674| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 675| 675| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 671| 671| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 672| 672| 				// points.
| 673| 673| 
| 674|    |-				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | 674|+			placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 675| 675| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 676| 676| 
| 677| 677| 				if (result && result.cost)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 672| 672| 				// points.
| 673| 673| 
| 674| 674| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 675|    |-				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | 675|+			var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 676| 676| 
| 677| 677| 				if (result && result.cost)
| 678| 678| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 674| 674| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 675| 675| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 676| 676| 
| 677|    |-				if (result && result.cost)
|    | 677|+			if (result && result.cost)
| 678| 678| 				{
| 679| 679| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 680| 680| 					placementSupport.tooltipMessage = [
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 675| 675| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 676| 676| 
| 677| 677| 				if (result && result.cost)
| 678|    |-				{
|    | 678|+			{
| 679| 679| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 680| 680| 					placementSupport.tooltipMessage = [
| 681| 681| 						getEntityCostTooltip(result),
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 676| 676| 
| 677| 677| 				if (result && result.cost)
| 678| 678| 				{
| 679|    |-					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
|    | 679|+				var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 680| 680| 					placementSupport.tooltipMessage = [
| 681| 681| 						getEntityCostTooltip(result),
| 682| 682| 						getNeededResourcesTooltip(neededResources)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 677| 677| 				if (result && result.cost)
| 678| 678| 				{
| 679| 679| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 680|    |-					placementSupport.tooltipMessage = [
|    | 680|+				placementSupport.tooltipMessage = [
| 681| 681| 						getEntityCostTooltip(result),
| 682| 682| 						getNeededResourcesTooltip(neededResources)
| 683| 683| 					].filter(tip => tip).join("\n");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 678| 678| 				{
| 679| 679| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 680| 680| 					placementSupport.tooltipMessage = [
| 681|    |-						getEntityCostTooltip(result),
|    | 681|+					getEntityCostTooltip(result),
| 682| 682| 						getNeededResourcesTooltip(neededResources)
| 683| 683| 					].filter(tip => tip).join("\n");
| 684| 684| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 679| 679| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 680| 680| 					placementSupport.tooltipMessage = [
| 681| 681| 						getEntityCostTooltip(result),
| 682|    |-						getNeededResourcesTooltip(neededResources)
|    | 682|+					getNeededResourcesTooltip(neededResources)
| 683| 683| 					].filter(tip => tip).join("\n");
| 684| 684| 				}
| 685| 685| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 680| 680| 					placementSupport.tooltipMessage = [
| 681| 681| 						getEntityCostTooltip(result),
| 682| 682| 						getNeededResourcesTooltip(neededResources)
| 683|    |-					].filter(tip => tip).join("\n");
|    | 683|+				].filter(tip => tip).join("\n");
| 684| 684| 				}
| 685| 685| 
| 686| 686| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 681| 681| 						getEntityCostTooltip(result),
| 682| 682| 						getNeededResourcesTooltip(neededResources)
| 683| 683| 					].filter(tip => tip).join("\n");
| 684|    |-				}
|    | 684|+			}
| 685| 685| 
| 686| 686| 				break;
| 687| 687| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 683| 683| 					].filter(tip => tip).join("\n");
| 684| 684| 				}
| 685| 685| 
| 686|    |-				break;
|    | 686|+			break;
| 687| 687| 
| 688| 688| 			case "mousebuttondown":
| 689| 689| 				if (ev.button == SDL_BUTTON_LEFT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 685| 685| 
| 686| 686| 				break;
| 687| 687| 
| 688|    |-			case "mousebuttondown":
|    | 688|+		case "mousebuttondown":
| 689| 689| 				if (ev.button == SDL_BUTTON_LEFT)
| 690| 690| 				{
| 691| 691| 					var queued = Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 686| 686| 				break;
| 687| 687| 
| 688| 688| 			case "mousebuttondown":
| 689|    |-				if (ev.button == SDL_BUTTON_LEFT)
|    | 689|+			if (ev.button == SDL_BUTTON_LEFT)
| 690| 690| 				{
| 691| 691| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 692| 692| 					if (tryPlaceWall(queued))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 687| 687| 
| 688| 688| 			case "mousebuttondown":
| 689| 689| 				if (ev.button == SDL_BUTTON_LEFT)
| 690|    |-				{
|    | 690|+			{
| 691| 691| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 692| 692| 					if (tryPlaceWall(queued))
| 693| 693| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 688| 688| 			case "mousebuttondown":
| 689| 689| 				if (ev.button == SDL_BUTTON_LEFT)
| 690| 690| 				{
| 691|    |-					var queued = Engine.HotkeyIsPressed("session.queue");
|    | 691|+				var queued = Engine.HotkeyIsPressed("session.queue");
| 692| 692| 					if (tryPlaceWall(queued))
| 693| 693| 					{
| 694| 694| 						if (queued)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 689| 689| 				if (ev.button == SDL_BUTTON_LEFT)
| 690| 690| 				{
| 691| 691| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 692|    |-					if (tryPlaceWall(queued))
|    | 692|+				if (tryPlaceWall(queued))
| 693| 693| 					{
| 694| 694| 						if (queued)
| 695| 695| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 690| 690| 				{
| 691| 691| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 692| 692| 					if (tryPlaceWall(queued))
| 693|    |-					{
|    | 693|+				{
| 694| 694| 						if (queued)
| 695| 695| 						{
| 696| 696| 							// continue building, just set a new starting position where we left off
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 691| 691| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 692| 692| 					if (tryPlaceWall(queued))
| 693| 693| 					{
| 694|    |-						if (queued)
|    | 694|+					if (queued)
| 695| 695| 						{
| 696| 696| 							// continue building, just set a new starting position where we left off
| 697| 697| 							placementSupport.position = placementSupport.wallEndPosition;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 692| 692| 					if (tryPlaceWall(queued))
| 693| 693| 					{
| 694| 694| 						if (queued)
| 695|    |-						{
|    | 695|+					{
| 696| 696| 							// continue building, just set a new starting position where we left off
| 697| 697| 							placementSupport.position = placementSupport.wallEndPosition;
| 698| 698| 							placementSupport.wallEndPosition = undefined;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 693| 693| 					{
| 694| 694| 						if (queued)
| 695| 695| 						{
| 696|    |-							// continue building, just set a new starting position where we left off
|    | 696|+						// continue building, just set a new starting position where we left off
| 697| 697| 							placementSupport.position = placementSupport.wallEndPosition;
| 698| 698| 							placementSupport.wallEndPosition = undefined;
| 699| 699| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 694| 694| 						if (queued)
| 695| 695| 						{
| 696| 696| 							// continue building, just set a new starting position where we left off
| 697|    |-							placementSupport.position = placementSupport.wallEndPosition;
|    | 697|+						placementSupport.position = placementSupport.wallEndPosition;
| 698| 698| 							placementSupport.wallEndPosition = undefined;
| 699| 699| 
| 700| 700| 							inputState = INPUT_BUILDING_WALL_CLICK;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 695| 695| 						{
| 696| 696| 							// continue building, just set a new starting position where we left off
| 697| 697| 							placementSupport.position = placementSupport.wallEndPosition;
| 698|    |-							placementSupport.wallEndPosition = undefined;
|    | 698|+						placementSupport.wallEndPosition = undefined;
| 699| 699| 
| 700| 700| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 701| 701| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 697| 697| 							placementSupport.position = placementSupport.wallEndPosition;
| 698| 698| 							placementSupport.wallEndPosition = undefined;
| 699| 699| 
| 700|    |-							inputState = INPUT_BUILDING_WALL_CLICK;
|    | 700|+						inputState = INPUT_BUILDING_WALL_CLICK;
| 701| 701| 						}
| 702| 702| 						else
| 703| 703| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 698| 698| 							placementSupport.wallEndPosition = undefined;
| 699| 699| 
| 700| 700| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 701|    |-						}
|    | 701|+					}
| 702| 702| 						else
| 703| 703| 						{
| 704| 704| 							placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 699| 699| 
| 700| 700| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 701| 701| 						}
| 702|    |-						else
|    | 702|+					else
| 703| 703| 						{
| 704| 704| 							placementSupport.Reset();
| 705| 705| 							inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 700| 700| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 701| 701| 						}
| 702| 702| 						else
| 703|    |-						{
|    | 703|+					{
| 704| 704| 							placementSupport.Reset();
| 705| 705| 							inputState = INPUT_NORMAL;
| 706| 706| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 701| 701| 						}
| 702| 702| 						else
| 703| 703| 						{
| 704|    |-							placementSupport.Reset();
|    | 704|+						placementSupport.Reset();
| 705| 705| 							inputState = INPUT_NORMAL;
| 706| 706| 						}
| 707| 707| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 702| 702| 						else
| 703| 703| 						{
| 704| 704| 							placementSupport.Reset();
| 705|    |-							inputState = INPUT_NORMAL;
|    | 705|+						inputState = INPUT_NORMAL;
| 706| 706| 						}
| 707| 707| 					}
| 708| 708| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 703| 703| 						{
| 704| 704| 							placementSupport.Reset();
| 705| 705| 							inputState = INPUT_NORMAL;
| 706|    |-						}
|    | 706|+					}
| 707| 707| 					}
| 708| 708| 					else
| 709| 709| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 704| 704| 							placementSupport.Reset();
| 705| 705| 							inputState = INPUT_NORMAL;
| 706| 706| 						}
| 707|    |-					}
|    | 707|+				}
| 708| 708| 					else
| 709| 709| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 710| 710| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 705| 705| 							inputState = INPUT_NORMAL;
| 706| 706| 						}
| 707| 707| 					}
| 708|    |-					else
|    | 708|+				else
| 709| 709| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 710| 710| 
| 711| 711| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 706| 706| 						}
| 707| 707| 					}
| 708| 708| 					else
| 709|    |-						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | 709|+					placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 710| 710| 
| 711| 711| 					updateBuildingPlacementPreview();
| 712| 712| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 708| 708| 					else
| 709| 709| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 710| 710| 
| 711|    |-					updateBuildingPlacementPreview();
|    | 711|+				updateBuildingPlacementPreview();
| 712| 712| 					return true;
| 713| 713| 				}
| 714| 714| 				else if (ev.button == SDL_BUTTON_RIGHT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 709| 709| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 710| 710| 
| 711| 711| 					updateBuildingPlacementPreview();
| 712|    |-					return true;
|    | 712|+				return true;
| 713| 713| 				}
| 714| 714| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 715| 715| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 710| 710| 
| 711| 711| 					updateBuildingPlacementPreview();
| 712| 712| 					return true;
| 713|    |-				}
|    | 713|+			}
| 714| 714| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 715| 715| 				{
| 716| 716| 					// reset to normal input mode
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 711| 711| 					updateBuildingPlacementPreview();
| 712| 712| 					return true;
| 713| 713| 				}
| 714|    |-				else if (ev.button == SDL_BUTTON_RIGHT)
|    | 714|+			else if (ev.button == SDL_BUTTON_RIGHT)
| 715| 715| 				{
| 716| 716| 					// reset to normal input mode
| 717| 717| 					placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 712| 712| 					return true;
| 713| 713| 				}
| 714| 714| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 715|    |-				{
|    | 715|+			{
| 716| 716| 					// reset to normal input mode
| 717| 717| 					placementSupport.Reset();
| 718| 718| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 713| 713| 				}
| 714| 714| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 715| 715| 				{
| 716|    |-					// reset to normal input mode
|    | 716|+				// reset to normal input mode
| 717| 717| 					placementSupport.Reset();
| 718| 718| 					updateBuildingPlacementPreview();
| 719| 719| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 714| 714| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 715| 715| 				{
| 716| 716| 					// reset to normal input mode
| 717|    |-					placementSupport.Reset();
|    | 717|+				placementSupport.Reset();
| 718| 718| 					updateBuildingPlacementPreview();
| 719| 719| 
| 720| 720| 					inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 715| 715| 				{
| 716| 716| 					// reset to normal input mode
| 717| 717| 					placementSupport.Reset();
| 718|    |-					updateBuildingPlacementPreview();
|    | 718|+				updateBuildingPlacementPreview();
| 719| 719| 
| 720| 720| 					inputState = INPUT_NORMAL;
| 721| 721| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 717| 717| 					placementSupport.Reset();
| 718| 718| 					updateBuildingPlacementPreview();
| 719| 719| 
| 720|    |-					inputState = INPUT_NORMAL;
|    | 720|+				inputState = INPUT_NORMAL;
| 721| 721| 					return true;
| 722| 722| 				}
| 723| 723| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 718| 718| 					updateBuildingPlacementPreview();
| 719| 719| 
| 720| 720| 					inputState = INPUT_NORMAL;
| 721|    |-					return true;
|    | 721|+				return true;
| 722| 722| 				}
| 723| 723| 				break;
| 724| 724| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 719| 719| 
| 720| 720| 					inputState = INPUT_NORMAL;
| 721| 721| 					return true;
| 722|    |-				}
|    | 722|+			}
| 723| 723| 				break;
| 724| 724| 		}
| 725| 725| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 720| 720| 					inputState = INPUT_NORMAL;
| 721| 721| 					return true;
| 722| 722| 				}
| 723|    |-				break;
|    | 723|+			break;
| 724| 724| 		}
| 725| 725| 		break;
| 726| 726| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 862| 862| 			break;
| 863| 863| 
| 864| 864| 		case "hotkeydown":
| 865|    |-				if (ev.hotkey.indexOf("selection.group.") == 0)
|    | 865|+			if (ev.hotkey.indexOf("selection.group.") == 0)
| 866| 866| 				{
| 867| 867| 					let now = Date.now();
| 868| 868| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 863| 863| 
| 864| 864| 		case "hotkeydown":
| 865| 865| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 866|    |-				{
|    | 866|+			{
| 867| 867| 					let now = Date.now();
| 868| 868| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 869| 869| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 864| 864| 		case "hotkeydown":
| 865| 865| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 866| 866| 				{
| 867|    |-					let now = Date.now();
|    | 867|+				let now = Date.now();
| 868| 868| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 869| 869| 					{
| 870| 870| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 865| 865| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 866| 866| 				{
| 867| 867| 					let now = Date.now();
| 868|    |-					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | 868|+				if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 869| 869| 					{
| 870| 870| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 871| 871| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 866| 866| 				{
| 867| 867| 					let now = Date.now();
| 868| 868| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 869|    |-					{
|    | 869|+				{
| 870| 870| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 871| 871| 						{
| 872| 872| 							var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 867| 867| 					let now = Date.now();
| 868| 868| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 869| 869| 					{
| 870|    |-						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | 870|+					if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 871| 871| 						{
| 872| 872| 							var sptr = ev.hotkey.split(".");
| 873| 873| 							performGroup("snap", sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 868| 868| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 869| 869| 					{
| 870| 870| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 871|    |-						{
|    | 871|+					{
| 872| 872| 							var sptr = ev.hotkey.split(".");
| 873| 873| 							performGroup("snap", sptr[3]);
| 874| 874| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 869| 869| 					{
| 870| 870| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 871| 871| 						{
| 872|    |-							var sptr = ev.hotkey.split(".");
|    | 872|+						var sptr = ev.hotkey.split(".");
| 873| 873| 							performGroup("snap", sptr[3]);
| 874| 874| 						}
| 875| 875| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 870| 870| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 871| 871| 						{
| 872| 872| 							var sptr = ev.hotkey.split(".");
| 873|    |-							performGroup("snap", sptr[3]);
|    | 873|+						performGroup("snap", sptr[3]);
| 874| 874| 						}
| 875| 875| 					}
| 876| 876| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 871| 871| 						{
| 872| 872| 							var sptr = ev.hotkey.split(".");
| 873| 873| 							performGroup("snap", sptr[3]);
| 874|    |-						}
|    | 874|+					}
| 875| 875| 					}
| 876| 876| 					else
| 877| 877| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 872| 872| 							var sptr = ev.hotkey.split(".");
| 873| 873| 							performGroup("snap", sptr[3]);
| 874| 874| 						}
| 875|    |-					}
|    | 875|+				}
| 876| 876| 					else
| 877| 877| 					{
| 878| 878| 						var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 873| 873| 							performGroup("snap", sptr[3]);
| 874| 874| 						}
| 875| 875| 					}
| 876|    |-					else
|    | 876|+				else
| 877| 877| 					{
| 878| 878| 						var sptr = ev.hotkey.split(".");
| 879| 879| 						performGroup(sptr[2], sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 874| 874| 						}
| 875| 875| 					}
| 876| 876| 					else
| 877|    |-					{
|    | 877|+				{
| 878| 878| 						var sptr = ev.hotkey.split(".");
| 879| 879| 						performGroup(sptr[2], sptr[3]);
| 880| 880| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 875| 875| 					}
| 876| 876| 					else
| 877| 877| 					{
| 878|    |-						var sptr = ev.hotkey.split(".");
|    | 878|+					var sptr = ev.hotkey.split(".");
| 879| 879| 						performGroup(sptr[2], sptr[3]);
| 880| 880| 
| 881| 881| 						doublePressTimer = now;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 876| 876| 					else
| 877| 877| 					{
| 878| 878| 						var sptr = ev.hotkey.split(".");
| 879|    |-						performGroup(sptr[2], sptr[3]);
|    | 879|+					performGroup(sptr[2], sptr[3]);
| 880| 880| 
| 881| 881| 						doublePressTimer = now;
| 882| 882| 						prevHotkey = ev.hotkey;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 878| 878| 						var sptr = ev.hotkey.split(".");
| 879| 879| 						performGroup(sptr[2], sptr[3]);
| 880| 880| 
| 881|    |-						doublePressTimer = now;
|    | 881|+					doublePressTimer = now;
| 882| 882| 						prevHotkey = ev.hotkey;
| 883| 883| 					}
| 884| 884| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 879| 879| 						performGroup(sptr[2], sptr[3]);
| 880| 880| 
| 881| 881| 						doublePressTimer = now;
| 882|    |-						prevHotkey = ev.hotkey;
|    | 882|+					prevHotkey = ev.hotkey;
| 883| 883| 					}
| 884| 884| 				}
| 885| 885| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 880| 880| 
| 881| 881| 						doublePressTimer = now;
| 882| 882| 						prevHotkey = ev.hotkey;
| 883|    |-					}
|    | 883|+				}
| 884| 884| 				}
| 885| 885| 				break;
| 886| 886| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 881| 881| 						doublePressTimer = now;
| 882| 882| 						prevHotkey = ev.hotkey;
| 883| 883| 					}
| 884|    |-				}
|    | 884|+			}
| 885| 885| 				break;
| 886| 886| 		}
| 887| 887| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 882| 882| 						prevHotkey = ev.hotkey;
| 883| 883| 					}
| 884| 884| 				}
| 885|    |-				break;
|    | 885|+			break;
| 886| 886| 		}
| 887| 887| 		break;
| 888| 888| 
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|1615|1615| 	var selectall = Engine.HotkeyIsPressed("selection.offscreen");
|1616|1616| 
|1617|1617| 	// Reset the last idle unit, etc., if the selection type has changed.
|1618|    |-	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v,i) => v === lastIdleClasses[i]))
|    |1618|+	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v, i) => v === lastIdleClasses[i]))
|1619|1619| 		resetIdleUnit();
|1620|1620| 	lastIdleClasses = classes;
|1621|1621| 

binaries/data/mods/public/gui/session/input.js
| 240| »   var·target·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'target' to undefined.

binaries/data/mods/public/gui/session/input.js
| 254| »   var·actionInfo·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'actionInfo' to undefined.

binaries/data/mods/public/gui/session/input.js
| 486| »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 513| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 517| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 572| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 582| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 630| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 659| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 728| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 744| ·»   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 745| ·»   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 750| ·»   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 829| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 832| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 934| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1023| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1037| »   »   »   »   let·action·=·determineAction(ev.x,·ev.y);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'action' is already declared in the upper scope.

binaries/data/mods/public/gui/session/input.js
|1046| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1070| ·»   »   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1071| ·»   »   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1072| ·»   »   »   »   »   "z":·placementSupport.position.z,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1075| ·»   »   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1135| »   »   »   switch·(ev.hotkey)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1566| »   switch·(action)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 240| »   var·target·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'target' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 254| »   var·actionInfo·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'actionInfo' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 268| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 271| »   »   »   var·r·=·g_UnitActions[action].hotkeyActionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 276| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 279| »   »   »   var·r·=·g_UnitActions[action].actionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 501| »   »   &&·(ev.button·==·SDL_BUTTON_LEFT·||·ev.button·==·SDL_BUTTON_RIGHT))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/gui/session/input.js
| 531| »   »   »   »   var·rect·=·updateBandbox(bandbox,·ev,·true);
|    | [NORMAL] JSHintBear:
|    | 'rect' is already defined.

binaries/data/mods/public/gui/session/input.js
| 534| »   »   »   »   var·ents·=·getPreferredEntities(Engine.PickPlayerEntitiesInRect(rect[0],·rect[1],·rect[2],·rect[3],·g_ViewedPlayer));
|    | [NORMAL] JSHintBear:
|    | 'ents' is already defined.

binaries/data/mods/public/gui/session/input.js
| 691| »   »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 765| »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 878| »   »   »   »   »   »   var·sptr·=·ev.hotkey.split(".");
|    | [NORMAL] JSHintBear:
|    | 'sptr' is already defined.

binaries/data/mods/public/gui/session/input.js
| 894| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.

binaries/data/mods/public/gui/session/input.js
| 920| »   »   »   }
|    | [NORMAL] JSHintBear:
|    | Expected a 'break' statement before 'default'.

binaries/data/mods/public/gui/session/input.js
| 944| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.
Executing section cli...

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

Stan added inline comments.Mar 14 2020, 4:14 PM
binaries/data/mods/public/simulation/components/BuildRestrictions.js
246

Merge

binaries/data/mods/public/simulation/components/tests/test_BuildSlot.js
9

"false" ?

Freagarach updated this revision to Diff 11615.Apr 2 2020, 8:57 AM
Freagarach marked 2 inline comments as done.

Do not use templates to match.

Vulcan added a comment.Apr 2 2020, 9:06 AM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (space-unary-ops):
|    | Unary word operator 'typeof' must be followed by whitespace.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 341| 341| 	}
| 342| 342| 
| 343| 343| 	var wallPlacementInfo = updateBuildingPlacementPreview(); // entities making up the wall (wall segments, towers, ...)
| 344|    |-	if (!(wallPlacementInfo === false || typeof(wallPlacementInfo) === "object"))
|    | 344|+	if (!(wallPlacementInfo === false || typeof (wallPlacementInfo) === "object"))
| 345| 345| 	{
| 346| 346| 		error("Invalid updateBuildingPlacementPreview return value: " + uneval(wallPlacementInfo));
| 347| 347| 		return false;
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 491| 491| 	mouseIsOverObject = (hoveredObject != null);
| 492| 492| 
| 493| 493| 	// Close the menu when interacting with the game world
| 494|    |-	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown")
| 495|    |-		&& (ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
|    | 494|+	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown") &&
|    | 495|+		(ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
| 496| 496| 		g_Menu.close();
| 497| 497| 
| 498| 498| 	// State-machine processing:
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 652| 652| 		// user to continue building walls.
| 653| 653| 		switch (ev.type)
| 654| 654| 		{
| 655|    |-			case "mousemotion":
|    | 655|+		case "mousemotion":
| 656| 656| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 657| 657| 
| 658| 658| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 653| 653| 		switch (ev.type)
| 654| 654| 		{
| 655| 655| 			case "mousemotion":
| 656|    |-				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
|    | 656|+			placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 657| 657| 
| 658| 658| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 659| 659| 				// the ending point and the starting point to snap to.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 655| 655| 			case "mousemotion":
| 656| 656| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 657| 657| 
| 658|    |-				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | 658|+			// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 659| 659| 				// the ending point and the starting point to snap to.
| 660| 660| 				//
| 661| 661| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 656| 656| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 657| 657| 
| 658| 658| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 659|    |-				// the ending point and the starting point to snap to.
|    | 659|+			// the ending point and the starting point to snap to.
| 660| 660| 				//
| 661| 661| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 662| 662| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 657| 657| 
| 658| 658| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 659| 659| 				// the ending point and the starting point to snap to.
| 660|    |-				//
|    | 660|+			//
| 661| 661| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 662| 662| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 663| 663| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 658| 658| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 659| 659| 				// the ending point and the starting point to snap to.
| 660| 660| 				//
| 661|    |-				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | 661|+			// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 662| 662| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 663| 663| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 664| 664| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 659| 659| 				// the ending point and the starting point to snap to.
| 660| 660| 				//
| 661| 661| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 662|    |-				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | 662|+			// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 663| 663| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 664| 664| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 665| 665| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 660| 660| 				//
| 661| 661| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 662| 662| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 663|    |-				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | 663|+			// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 664| 664| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 665| 665| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 666| 666| 				// points.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 661| 661| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 662| 662| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 663| 663| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 664|    |-				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | 664|+			// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 665| 665| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 666| 666| 				// points.
| 667| 667| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 662| 662| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 663| 663| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 664| 664| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 665|    |-				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | 665|+			// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 666| 666| 				// points.
| 667| 667| 
| 668| 668| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 663| 663| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 664| 664| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 665| 665| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 666|    |-				// points.
|    | 666|+			// points.
| 667| 667| 
| 668| 668| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 669| 669| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 665| 665| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 666| 666| 				// points.
| 667| 667| 
| 668|    |-				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | 668|+			placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 669| 669| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 670| 670| 
| 671| 671| 				if (result && result.cost)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 666| 666| 				// points.
| 667| 667| 
| 668| 668| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 669|    |-				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | 669|+			var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 670| 670| 
| 671| 671| 				if (result && result.cost)
| 672| 672| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 668| 668| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 669| 669| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 670| 670| 
| 671|    |-				if (result && result.cost)
|    | 671|+			if (result && result.cost)
| 672| 672| 				{
| 673| 673| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 674| 674| 					placementSupport.tooltipMessage = [
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 669| 669| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 670| 670| 
| 671| 671| 				if (result && result.cost)
| 672|    |-				{
|    | 672|+			{
| 673| 673| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 674| 674| 					placementSupport.tooltipMessage = [
| 675| 675| 						getEntityCostTooltip(result),
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 670| 670| 
| 671| 671| 				if (result && result.cost)
| 672| 672| 				{
| 673|    |-					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
|    | 673|+				var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 674| 674| 					placementSupport.tooltipMessage = [
| 675| 675| 						getEntityCostTooltip(result),
| 676| 676| 						getNeededResourcesTooltip(neededResources)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 671| 671| 				if (result && result.cost)
| 672| 672| 				{
| 673| 673| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 674|    |-					placementSupport.tooltipMessage = [
|    | 674|+				placementSupport.tooltipMessage = [
| 675| 675| 						getEntityCostTooltip(result),
| 676| 676| 						getNeededResourcesTooltip(neededResources)
| 677| 677| 					].filter(tip => tip).join("\n");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 672| 672| 				{
| 673| 673| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 674| 674| 					placementSupport.tooltipMessage = [
| 675|    |-						getEntityCostTooltip(result),
|    | 675|+					getEntityCostTooltip(result),
| 676| 676| 						getNeededResourcesTooltip(neededResources)
| 677| 677| 					].filter(tip => tip).join("\n");
| 678| 678| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 673| 673| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 674| 674| 					placementSupport.tooltipMessage = [
| 675| 675| 						getEntityCostTooltip(result),
| 676|    |-						getNeededResourcesTooltip(neededResources)
|    | 676|+					getNeededResourcesTooltip(neededResources)
| 677| 677| 					].filter(tip => tip).join("\n");
| 678| 678| 				}
| 679| 679| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 674| 674| 					placementSupport.tooltipMessage = [
| 675| 675| 						getEntityCostTooltip(result),
| 676| 676| 						getNeededResourcesTooltip(neededResources)
| 677|    |-					].filter(tip => tip).join("\n");
|    | 677|+				].filter(tip => tip).join("\n");
| 678| 678| 				}
| 679| 679| 
| 680| 680| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 675| 675| 						getEntityCostTooltip(result),
| 676| 676| 						getNeededResourcesTooltip(neededResources)
| 677| 677| 					].filter(tip => tip).join("\n");
| 678|    |-				}
|    | 678|+			}
| 679| 679| 
| 680| 680| 				break;
| 681| 681| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 677| 677| 					].filter(tip => tip).join("\n");
| 678| 678| 				}
| 679| 679| 
| 680|    |-				break;
|    | 680|+			break;
| 681| 681| 
| 682| 682| 			case "mousebuttondown":
| 683| 683| 				if (ev.button == SDL_BUTTON_LEFT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 679| 679| 
| 680| 680| 				break;
| 681| 681| 
| 682|    |-			case "mousebuttondown":
|    | 682|+		case "mousebuttondown":
| 683| 683| 				if (ev.button == SDL_BUTTON_LEFT)
| 684| 684| 				{
| 685| 685| 					var queued = Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 680| 680| 				break;
| 681| 681| 
| 682| 682| 			case "mousebuttondown":
| 683|    |-				if (ev.button == SDL_BUTTON_LEFT)
|    | 683|+			if (ev.button == SDL_BUTTON_LEFT)
| 684| 684| 				{
| 685| 685| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 686| 686| 					if (tryPlaceWall(queued))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 681| 681| 
| 682| 682| 			case "mousebuttondown":
| 683| 683| 				if (ev.button == SDL_BUTTON_LEFT)
| 684|    |-				{
|    | 684|+			{
| 685| 685| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 686| 686| 					if (tryPlaceWall(queued))
| 687| 687| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 682| 682| 			case "mousebuttondown":
| 683| 683| 				if (ev.button == SDL_BUTTON_LEFT)
| 684| 684| 				{
| 685|    |-					var queued = Engine.HotkeyIsPressed("session.queue");
|    | 685|+				var queued = Engine.HotkeyIsPressed("session.queue");
| 686| 686| 					if (tryPlaceWall(queued))
| 687| 687| 					{
| 688| 688| 						if (queued)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 683| 683| 				if (ev.button == SDL_BUTTON_LEFT)
| 684| 684| 				{
| 685| 685| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 686|    |-					if (tryPlaceWall(queued))
|    | 686|+				if (tryPlaceWall(queued))
| 687| 687| 					{
| 688| 688| 						if (queued)
| 689| 689| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 684| 684| 				{
| 685| 685| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 686| 686| 					if (tryPlaceWall(queued))
| 687|    |-					{
|    | 687|+				{
| 688| 688| 						if (queued)
| 689| 689| 						{
| 690| 690| 							// continue building, just set a new starting position where we left off
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 685| 685| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 686| 686| 					if (tryPlaceWall(queued))
| 687| 687| 					{
| 688|    |-						if (queued)
|    | 688|+					if (queued)
| 689| 689| 						{
| 690| 690| 							// continue building, just set a new starting position where we left off
| 691| 691| 							placementSupport.position = placementSupport.wallEndPosition;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 686| 686| 					if (tryPlaceWall(queued))
| 687| 687| 					{
| 688| 688| 						if (queued)
| 689|    |-						{
|    | 689|+					{
| 690| 690| 							// continue building, just set a new starting position where we left off
| 691| 691| 							placementSupport.position = placementSupport.wallEndPosition;
| 692| 692| 							placementSupport.wallEndPosition = undefined;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 687| 687| 					{
| 688| 688| 						if (queued)
| 689| 689| 						{
| 690|    |-							// continue building, just set a new starting position where we left off
|    | 690|+						// continue building, just set a new starting position where we left off
| 691| 691| 							placementSupport.position = placementSupport.wallEndPosition;
| 692| 692| 							placementSupport.wallEndPosition = undefined;
| 693| 693| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 688| 688| 						if (queued)
| 689| 689| 						{
| 690| 690| 							// continue building, just set a new starting position where we left off
| 691|    |-							placementSupport.position = placementSupport.wallEndPosition;
|    | 691|+						placementSupport.position = placementSupport.wallEndPosition;
| 692| 692| 							placementSupport.wallEndPosition = undefined;
| 693| 693| 
| 694| 694| 							inputState = INPUT_BUILDING_WALL_CLICK;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 689| 689| 						{
| 690| 690| 							// continue building, just set a new starting position where we left off
| 691| 691| 							placementSupport.position = placementSupport.wallEndPosition;
| 692|    |-							placementSupport.wallEndPosition = undefined;
|    | 692|+						placementSupport.wallEndPosition = undefined;
| 693| 693| 
| 694| 694| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 695| 695| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 691| 691| 							placementSupport.position = placementSupport.wallEndPosition;
| 692| 692| 							placementSupport.wallEndPosition = undefined;
| 693| 693| 
| 694|    |-							inputState = INPUT_BUILDING_WALL_CLICK;
|    | 694|+						inputState = INPUT_BUILDING_WALL_CLICK;
| 695| 695| 						}
| 696| 696| 						else
| 697| 697| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 692| 692| 							placementSupport.wallEndPosition = undefined;
| 693| 693| 
| 694| 694| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 695|    |-						}
|    | 695|+					}
| 696| 696| 						else
| 697| 697| 						{
| 698| 698| 							placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 693| 693| 
| 694| 694| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 695| 695| 						}
| 696|    |-						else
|    | 696|+					else
| 697| 697| 						{
| 698| 698| 							placementSupport.Reset();
| 699| 699| 							inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 694| 694| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 695| 695| 						}
| 696| 696| 						else
| 697|    |-						{
|    | 697|+					{
| 698| 698| 							placementSupport.Reset();
| 699| 699| 							inputState = INPUT_NORMAL;
| 700| 700| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 695| 695| 						}
| 696| 696| 						else
| 697| 697| 						{
| 698|    |-							placementSupport.Reset();
|    | 698|+						placementSupport.Reset();
| 699| 699| 							inputState = INPUT_NORMAL;
| 700| 700| 						}
| 701| 701| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 696| 696| 						else
| 697| 697| 						{
| 698| 698| 							placementSupport.Reset();
| 699|    |-							inputState = INPUT_NORMAL;
|    | 699|+						inputState = INPUT_NORMAL;
| 700| 700| 						}
| 701| 701| 					}
| 702| 702| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 697| 697| 						{
| 698| 698| 							placementSupport.Reset();
| 699| 699| 							inputState = INPUT_NORMAL;
| 700|    |-						}
|    | 700|+					}
| 701| 701| 					}
| 702| 702| 					else
| 703| 703| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 698| 698| 							placementSupport.Reset();
| 699| 699| 							inputState = INPUT_NORMAL;
| 700| 700| 						}
| 701|    |-					}
|    | 701|+				}
| 702| 702| 					else
| 703| 703| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 704| 704| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 699| 699| 							inputState = INPUT_NORMAL;
| 700| 700| 						}
| 701| 701| 					}
| 702|    |-					else
|    | 702|+				else
| 703| 703| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 704| 704| 
| 705| 705| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 700| 700| 						}
| 701| 701| 					}
| 702| 702| 					else
| 703|    |-						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | 703|+					placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 704| 704| 
| 705| 705| 					updateBuildingPlacementPreview();
| 706| 706| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 702| 702| 					else
| 703| 703| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 704| 704| 
| 705|    |-					updateBuildingPlacementPreview();
|    | 705|+				updateBuildingPlacementPreview();
| 706| 706| 					return true;
| 707| 707| 				}
| 708| 708| 				else if (ev.button == SDL_BUTTON_RIGHT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 703| 703| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 704| 704| 
| 705| 705| 					updateBuildingPlacementPreview();
| 706|    |-					return true;
|    | 706|+				return true;
| 707| 707| 				}
| 708| 708| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 709| 709| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 704| 704| 
| 705| 705| 					updateBuildingPlacementPreview();
| 706| 706| 					return true;
| 707|    |-				}
|    | 707|+			}
| 708| 708| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 709| 709| 				{
| 710| 710| 					// reset to normal input mode
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 705| 705| 					updateBuildingPlacementPreview();
| 706| 706| 					return true;
| 707| 707| 				}
| 708|    |-				else if (ev.button == SDL_BUTTON_RIGHT)
|    | 708|+			else if (ev.button == SDL_BUTTON_RIGHT)
| 709| 709| 				{
| 710| 710| 					// reset to normal input mode
| 711| 711| 					placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 706| 706| 					return true;
| 707| 707| 				}
| 708| 708| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 709|    |-				{
|    | 709|+			{
| 710| 710| 					// reset to normal input mode
| 711| 711| 					placementSupport.Reset();
| 712| 712| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 707| 707| 				}
| 708| 708| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 709| 709| 				{
| 710|    |-					// reset to normal input mode
|    | 710|+				// reset to normal input mode
| 711| 711| 					placementSupport.Reset();
| 712| 712| 					updateBuildingPlacementPreview();
| 713| 713| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 708| 708| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 709| 709| 				{
| 710| 710| 					// reset to normal input mode
| 711|    |-					placementSupport.Reset();
|    | 711|+				placementSupport.Reset();
| 712| 712| 					updateBuildingPlacementPreview();
| 713| 713| 
| 714| 714| 					inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 709| 709| 				{
| 710| 710| 					// reset to normal input mode
| 711| 711| 					placementSupport.Reset();
| 712|    |-					updateBuildingPlacementPreview();
|    | 712|+				updateBuildingPlacementPreview();
| 713| 713| 
| 714| 714| 					inputState = INPUT_NORMAL;
| 715| 715| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 711| 711| 					placementSupport.Reset();
| 712| 712| 					updateBuildingPlacementPreview();
| 713| 713| 
| 714|    |-					inputState = INPUT_NORMAL;
|    | 714|+				inputState = INPUT_NORMAL;
| 715| 715| 					return true;
| 716| 716| 				}
| 717| 717| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 712| 712| 					updateBuildingPlacementPreview();
| 713| 713| 
| 714| 714| 					inputState = INPUT_NORMAL;
| 715|    |-					return true;
|    | 715|+				return true;
| 716| 716| 				}
| 717| 717| 				break;
| 718| 718| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 713| 713| 
| 714| 714| 					inputState = INPUT_NORMAL;
| 715| 715| 					return true;
| 716|    |-				}
|    | 716|+			}
| 717| 717| 				break;
| 718| 718| 		}
| 719| 719| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 714| 714| 					inputState = INPUT_NORMAL;
| 715| 715| 					return true;
| 716| 716| 				}
| 717|    |-				break;
|    | 717|+			break;
| 718| 718| 		}
| 719| 719| 		break;
| 720| 720| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 856| 856| 			break;
| 857| 857| 
| 858| 858| 		case "hotkeydown":
| 859|    |-				if (ev.hotkey.indexOf("selection.group.") == 0)
|    | 859|+			if (ev.hotkey.indexOf("selection.group.") == 0)
| 860| 860| 				{
| 861| 861| 					let now = Date.now();
| 862| 862| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 857| 857| 
| 858| 858| 		case "hotkeydown":
| 859| 859| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 860|    |-				{
|    | 860|+			{
| 861| 861| 					let now = Date.now();
| 862| 862| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 863| 863| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 858| 858| 		case "hotkeydown":
| 859| 859| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 860| 860| 				{
| 861|    |-					let now = Date.now();
|    | 861|+				let now = Date.now();
| 862| 862| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 863| 863| 					{
| 864| 864| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 859| 859| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 860| 860| 				{
| 861| 861| 					let now = Date.now();
| 862|    |-					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | 862|+				if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 863| 863| 					{
| 864| 864| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 865| 865| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 860| 860| 				{
| 861| 861| 					let now = Date.now();
| 862| 862| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 863|    |-					{
|    | 863|+				{
| 864| 864| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 865| 865| 						{
| 866| 866| 							var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 861| 861| 					let now = Date.now();
| 862| 862| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 863| 863| 					{
| 864|    |-						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | 864|+					if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 865| 865| 						{
| 866| 866| 							var sptr = ev.hotkey.split(".");
| 867| 867| 							performGroup("snap", sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 862| 862| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 863| 863| 					{
| 864| 864| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 865|    |-						{
|    | 865|+					{
| 866| 866| 							var sptr = ev.hotkey.split(".");
| 867| 867| 							performGroup("snap", sptr[3]);
| 868| 868| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 863| 863| 					{
| 864| 864| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 865| 865| 						{
| 866|    |-							var sptr = ev.hotkey.split(".");
|    | 866|+						var sptr = ev.hotkey.split(".");
| 867| 867| 							performGroup("snap", sptr[3]);
| 868| 868| 						}
| 869| 869| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 864| 864| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 865| 865| 						{
| 866| 866| 							var sptr = ev.hotkey.split(".");
| 867|    |-							performGroup("snap", sptr[3]);
|    | 867|+						performGroup("snap", sptr[3]);
| 868| 868| 						}
| 869| 869| 					}
| 870| 870| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 865| 865| 						{
| 866| 866| 							var sptr = ev.hotkey.split(".");
| 867| 867| 							performGroup("snap", sptr[3]);
| 868|    |-						}
|    | 868|+					}
| 869| 869| 					}
| 870| 870| 					else
| 871| 871| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 866| 866| 							var sptr = ev.hotkey.split(".");
| 867| 867| 							performGroup("snap", sptr[3]);
| 868| 868| 						}
| 869|    |-					}
|    | 869|+				}
| 870| 870| 					else
| 871| 871| 					{
| 872| 872| 						var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 867| 867| 							performGroup("snap", sptr[3]);
| 868| 868| 						}
| 869| 869| 					}
| 870|    |-					else
|    | 870|+				else
| 871| 871| 					{
| 872| 872| 						var sptr = ev.hotkey.split(".");
| 873| 873| 						performGroup(sptr[2], sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 868| 868| 						}
| 869| 869| 					}
| 870| 870| 					else
| 871|    |-					{
|    | 871|+				{
| 872| 872| 						var sptr = ev.hotkey.split(".");
| 873| 873| 						performGroup(sptr[2], sptr[3]);
| 874| 874| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 869| 869| 					}
| 870| 870| 					else
| 871| 871| 					{
| 872|    |-						var sptr = ev.hotkey.split(".");
|    | 872|+					var sptr = ev.hotkey.split(".");
| 873| 873| 						performGroup(sptr[2], sptr[3]);
| 874| 874| 
| 875| 875| 						doublePressTimer = now;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 870| 870| 					else
| 871| 871| 					{
| 872| 872| 						var sptr = ev.hotkey.split(".");
| 873|    |-						performGroup(sptr[2], sptr[3]);
|    | 873|+					performGroup(sptr[2], sptr[3]);
| 874| 874| 
| 875| 875| 						doublePressTimer = now;
| 876| 876| 						prevHotkey = ev.hotkey;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 872| 872| 						var sptr = ev.hotkey.split(".");
| 873| 873| 						performGroup(sptr[2], sptr[3]);
| 874| 874| 
| 875|    |-						doublePressTimer = now;
|    | 875|+					doublePressTimer = now;
| 876| 876| 						prevHotkey = ev.hotkey;
| 877| 877| 					}
| 878| 878| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 873| 873| 						performGroup(sptr[2], sptr[3]);
| 874| 874| 
| 875| 875| 						doublePressTimer = now;
| 876|    |-						prevHotkey = ev.hotkey;
|    | 876|+					prevHotkey = ev.hotkey;
| 877| 877| 					}
| 878| 878| 				}
| 879| 879| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 874| 874| 
| 875| 875| 						doublePressTimer = now;
| 876| 876| 						prevHotkey = ev.hotkey;
| 877|    |-					}
|    | 877|+				}
| 878| 878| 				}
| 879| 879| 				break;
| 880| 880| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 875| 875| 						doublePressTimer = now;
| 876| 876| 						prevHotkey = ev.hotkey;
| 877| 877| 					}
| 878|    |-				}
|    | 878|+			}
| 879| 879| 				break;
| 880| 880| 		}
| 881| 881| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 876| 876| 						prevHotkey = ev.hotkey;
| 877| 877| 					}
| 878| 878| 				}
| 879|    |-				break;
|    | 879|+			break;
| 880| 880| 		}
| 881| 881| 		break;
| 882| 882| 
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|1607|1607| 	var selectall = Engine.HotkeyIsPressed("selection.offscreen");
|1608|1608| 
|1609|1609| 	// Reset the last idle unit, etc., if the selection type has changed.
|1610|    |-	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v,i) => v === lastIdleClasses[i]))
|    |1610|+	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v, i) => v === lastIdleClasses[i]))
|1611|1611| 		resetIdleUnit();
|1612|1612| 	lastIdleClasses = classes;
|1613|1613| 

binaries/data/mods/public/gui/session/input.js
| 234| »   var·target·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'target' to undefined.

binaries/data/mods/public/gui/session/input.js
| 248| »   var·actionInfo·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'actionInfo' to undefined.

binaries/data/mods/public/gui/session/input.js
| 480| »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 507| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 511| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 566| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 576| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 624| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 653| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 722| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 738| ·»   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 739| ·»   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 744| ·»   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 823| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 826| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 928| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1017| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1031| »   »   »   »   let·action·=·determineAction(ev.x,·ev.y);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'action' is already declared in the upper scope.

binaries/data/mods/public/gui/session/input.js
|1040| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1064| ·»   »   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1065| ·»   »   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1066| ·»   »   »   »   »   "z":·placementSupport.position.z,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1069| ·»   »   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1127| »   »   »   switch·(ev.hotkey)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1558| »   switch·(action)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 234| »   var·target·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'target' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 248| »   var·actionInfo·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'actionInfo' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 262| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 265| »   »   »   var·r·=·g_UnitActions[action].hotkeyActionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 270| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 273| »   »   »   var·r·=·g_UnitActions[action].actionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 495| »   »   &&·(ev.button·==·SDL_BUTTON_LEFT·||·ev.button·==·SDL_BUTTON_RIGHT))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/gui/session/input.js
| 525| »   »   »   »   var·rect·=·updateBandbox(bandbox,·ev,·true);
|    | [NORMAL] JSHintBear:
|    | 'rect' is already defined.

binaries/data/mods/public/gui/session/input.js
| 528| »   »   »   »   var·ents·=·getPreferredEntities(Engine.PickPlayerEntitiesInRect(rect[0],·rect[1],·rect[2],·rect[3],·g_ViewedPlayer));
|    | [NORMAL] JSHintBear:
|    | 'ents' is already defined.

binaries/data/mods/public/gui/session/input.js
| 685| »   »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 759| »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 872| »   »   »   »   »   »   var·sptr·=·ev.hotkey.split(".");
|    | [NORMAL] JSHintBear:
|    | 'sptr' is already defined.

binaries/data/mods/public/gui/session/input.js
| 888| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.

binaries/data/mods/public/gui/session/input.js
| 914| »   »   »   }
|    | [NORMAL] JSHintBear:
|    | Expected a 'break' statement before 'default'.

binaries/data/mods/public/gui/session/input.js
| 938| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 228| 228| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 229| 229| 		result.translateParameters.push("territoryType");
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 231|+		result.parameters.territoryType = { "context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233| 233| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 228| 228| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 229| 229| 		result.translateParameters.push("territoryType");
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 231|+		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory };
| 232| 232| 		// gui code will join this array to a string
| 233| 233| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231| 231| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 233|+		result.parameters.validTerritories = { "context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
| 235| 235| 	}
| 236| 236| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231| 231| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 233|+		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories() };
| 234| 234| 		return result;	// Fail
| 235| 235| 	}
| 236| 236| 

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 163| »   »   switch·(ret)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 267| »   »   »   var·cmpIdentity·=·Engine.QueryInterface(id,·IID_Identity);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'cmpIdentity' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 276| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 297| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 157| »   »   var·ret·=·cmpObstruction.CheckFoundation(passClassName,·false);
|    | [NORMAL] JSHintBear:
|    | 'ret' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 181| »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 261| »   »   var·cmpRangeManager·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_RangeManager);
|    | [NORMAL] JSHintBear:
|    | 'cmpRangeManager' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 262| »   »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 161| »   if·(ret·!=·"success"·&&·this.template.PlacementType·!=·"socket")
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 163| »   »   switch·(ret)
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 826| 826| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 827| 827| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 828| 828| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 829|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 829|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 830| 830| 	}
| 831| 831| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 832| 832| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1108|1108| 			result.x = snapData.x;
|1109|1109| 			result.z = snapData.z;
|1110|1110| 			if (snapData.entity)
|1111|    |-				result.snappedEnt = snapData.snappedEntity
|    |1111|+				result.snappedEnt = snapData.snappedEntity;
|1112|1112| 		}
|1113|1113| 
|1114|1114| 		let cmpRangeOverlayManager = Engine.QueryInterface(ent, IID_RangeOverlayManager);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1693|1693| 			{
|1694|1694| 				minDist2 = dist2;
|1695|1695| 				minDistEntitySnapData = {
|1696|    |-						"x": pos.x,
|    |1696|+					"x": pos.x,
|1697|1697| 						"z": pos.z,
|1698|1698| 						"angle": cmpPosition.GetRotation().y,
|1699|1699| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1694|1694| 				minDist2 = dist2;
|1695|1695| 				minDistEntitySnapData = {
|1696|1696| 						"x": pos.x,
|1697|    |-						"z": pos.z,
|    |1697|+					"z": pos.z,
|1698|1698| 						"angle": cmpPosition.GetRotation().y,
|1699|1699| 						"ent": ent
|1700|1700| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1695|1695| 				minDistEntitySnapData = {
|1696|1696| 						"x": pos.x,
|1697|1697| 						"z": pos.z,
|1698|    |-						"angle": cmpPosition.GetRotation().y,
|    |1698|+					"angle": cmpPosition.GetRotation().y,
|1699|1699| 						"ent": ent
|1700|1700| 				};
|1701|1701| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1696|1696| 						"x": pos.x,
|1697|1697| 						"z": pos.z,
|1698|1698| 						"angle": cmpPosition.GetRotation().y,
|1699|    |-						"ent": ent
|    |1699|+					"ent": ent
|1700|1700| 				};
|1701|1701| 			}
|1702|1702| 		}

binaries/data/mods/public/simulation/components/GuiInterface.js
|1111| »   »   »   »   result.snappedEnt·=·snapData.snappedEntity
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
Executing section cli...

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

Freagarach updated this revision to Diff 11616.Apr 2 2020, 3:03 PM

Be able to hide the socket upon building init.

Vulcan added a comment.Apr 2 2020, 3:08 PM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
| 527| 527| 			if (cmpGarrisonHolder)
| 528| 528| 			{
| 529| 529| 				// Only the owner of the garrisonHolder may unload entities from any owners
| 530|    |-				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits
| 531|    |-				    && player != +cmd.owner)
|    | 530|+				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits &&
|    | 531|+				    player != +cmd.owner)
| 532| 532| 						continue;
| 533| 533| 
| 534| 534| 				if (!cmpGarrisonHolder.UnloadTemplate(cmd.template, cmd.owner, cmd.all))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
| 529| 529| 				// Only the owner of the garrisonHolder may unload entities from any owners
| 530| 530| 				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits
| 531| 531| 				    && player != +cmd.owner)
| 532|    |-						continue;
|    | 532|+					continue;
| 533| 533| 
| 534| 534| 				if (!cmpGarrisonHolder.UnloadTemplate(cmd.template, cmd.owner, cmd.all))
| 535| 535| 					notifyUnloadFailure(player, garrisonHolder);
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'metadata'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata": cmd.metadata, "owner" : player } );
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'owner'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner": player } );
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (space-in-parens):
|    | There should be no spaces inside this paren.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player });
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1257|1257| 		}
|1258|1258| 
|1259|1259| 		lastTowerControlGroup = cmpSnappedStartObstruction.GetControlGroup();
|1260|    |-		//warn("setting lastTowerControlGroup to control group of start snapped entity " + cmd.startSnappedEntity + ": " + lastTowerControlGroup);
|    |1260|+		// warn("setting lastTowerControlGroup to control group of start snapped entity " + cmd.startSnappedEntity + ": " + lastTowerControlGroup);
|1261|1261| 	}
|1262|1262| 
|1263|1263| 	var i = 0;
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1321|1321| 
|1322|1322| 				if (i > 0)
|1323|1323| 				{
|1324|    |-					//warn("   updating previous wall piece's secondary control group to " + newTowerControlGroup);
|    |1324|+					// warn("   updating previous wall piece's secondary control group to " + newTowerControlGroup);
|1325|1325| 					var cmpPreviousObstruction = Engine.QueryInterface(pieces[i-1].ent, IID_Obstruction);
|1326|1326| 					// TODO: ensure that cmpPreviousObstruction exists
|1327|1327| 					// TODO: ensure that the previous obstruction does not yet have a secondary control group set
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1484|1484| 		// Check that all its members are selected
|1485|1485| 		var fid = formationIds[0];
|1486|1486| 		var cmpFormation = Engine.QueryInterface(+fid, IID_Formation);
|1487|    |-		if (cmpFormation && cmpFormation.GetMemberCount() == formation.members[fid].length
|1488|    |-			&& cmpFormation.GetMemberCount() == formation.entities.length)
|    |1487|+		if (cmpFormation && cmpFormation.GetMemberCount() == formation.members[fid].length &&
|    |1488|+			cmpFormation.GetMemberCount() == formation.entities.length)
|1489|1489| 		{
|1490|1490| 			cmpFormation.DeleteTwinFormations();
|1491|1491| 			// The whole formation was selected, so reuse its controller for this command
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1592|1592| 		for (var i = matrix.length - 1; i >= 0 && !closeClusters; --i)
|1593|1593| 			for (var j = i - 1; j >= 0 && !closeClusters; --j)
|1594|1594| 				if (matrix[i][j] < distSq)
|1595|    |-					closeClusters = [i,j];
|    |1595|+					closeClusters = [i, j];
|1596|1596| 
|1597|1597| 		// if no more close clusters found, just return all found clusters so far
|1598|1598| 		if (!closeClusters)
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1614|1614| 		}
|1615|1615| 		// remove the rows and columns in the matrix for the merged clusters,
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|    |-		clusters.splice(closeClusters[0],1);
|    |1617|+		clusters.splice(closeClusters[0], 1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1615|1615| 		// remove the rows and columns in the matrix for the merged clusters,
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|    |-		clusters.splice(closeClusters[1],1);
|    |1618|+		clusters.splice(closeClusters[1], 1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|    |-		matrix.splice(closeClusters[0],1);
|    |1619|+		matrix.splice(closeClusters[0], 1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|    |-		matrix.splice(closeClusters[1],1);
|    |1620|+		matrix.splice(closeClusters[1], 1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|1624|    |-				matrix[i].splice(closeClusters[0],1);
|    |1624|+				matrix[i].splice(closeClusters[0], 1);
|1625|1625| 			if (matrix[i].length > closeClusters[1])
|1626|1626| 				matrix[i].splice(closeClusters[1],1);
|1627|1627| 		}
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|1624|1624| 				matrix[i].splice(closeClusters[0],1);
|1625|1625| 			if (matrix[i].length > closeClusters[1])
|1626|    |-				matrix[i].splice(closeClusters[1],1);
|    |1626|+				matrix[i].splice(closeClusters[1], 1);
|1627|1627| 		}
|1628|1628| 		// add a new row of distances to the matrix and the new cluster
|1629|1629| 		clusters.push(newCluster);

binaries/data/mods/public/simulation/helpers/Commands.js
|  43| »   if·(g_Commands[cmd.type])
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|  47| »   »   g_Commands[cmd.type](player,·cmd,·data);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 788| »   »   let·ent·=·pickRandom(cmpRangeManager.GetEntitiesByPlayer(cmd.player).filter(ent·=>·{
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'ent' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|1280| ····»   »   »   error("[TryConstructWall]·Expected·last·tower·control·group·to·be·available,·none·found·(1st·pass,·iteration·"·+·i·+·")");
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/simulation/helpers/Commands.js
|1281| ····»   »   »   break;
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/simulation/helpers/Commands.js
|1511| »   »   »   »   var·lastFormationTemplate·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'lastFormationTemplate' to undefined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1590| »   »   var·closeClusters·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'closeClusters' to undefined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1607| »   »   for·(let·i·=·0;·i·<·clusters.length;·++i)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|1621| »   »   for·(let·i·=·0;·i·<·matrix.length;·++i)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|  53| var·g_Commands·=·{
|    | [NORMAL] JSHintBear:
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 531| »   »   »   »   ····&&·player·!=·+cmd.owner)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/helpers/Commands.js
| 726| »   »   »   »   var·cmpGUIInterface·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_GuiInterface);
|    | [NORMAL] JSHintBear:
|    | 'cmpGUIInterface' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 947| »   »   for·(var·i·=·0;·i·<·length;·++i)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 960| »   »   var·count·=·0;
|    | [NORMAL] JSHintBear:
|    | 'count' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1107| »   »   var·cmpGuiInterface·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_GuiInterface);
|    | [NORMAL] JSHintBear:
|    | 'cmpGuiInterface' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1366| »   »   var·piece·=·pieces[j];
|    | [NORMAL] JSHintBear:
|    | 'piece' is already defined.

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

binaries/data/mods/public/simulation/helpers/Commands.js
|1488| »   »   »   &&·cmpFormation.GetMemberCount()·==·formation.entities.length)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

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

binaries/data/mods/public/simulation/helpers/Commands.js
|1547| »   »   »   var·cmpFormation·=·Engine.QueryInterface(formationEnt,·IID_Formation);
|    | [NORMAL] JSHintBear:
|    | 'cmpFormation' is already defined.
|    | [NORMAL] ESLintBear (space-unary-ops):
|    | Unary word operator 'typeof' must be followed by whitespace.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 341| 341| 	}
| 342| 342| 
| 343| 343| 	var wallPlacementInfo = updateBuildingPlacementPreview(); // entities making up the wall (wall segments, towers, ...)
| 344|    |-	if (!(wallPlacementInfo === false || typeof(wallPlacementInfo) === "object"))
|    | 344|+	if (!(wallPlacementInfo === false || typeof (wallPlacementInfo) === "object"))
| 345| 345| 	{
| 346| 346| 		error("Invalid updateBuildingPlacementPreview return value: " + uneval(wallPlacementInfo));
| 347| 347| 		return false;
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 491| 491| 	mouseIsOverObject = (hoveredObject != null);
| 492| 492| 
| 493| 493| 	// Close the menu when interacting with the game world
| 494|    |-	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown")
| 495|    |-		&& (ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
|    | 494|+	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown") &&
|    | 495|+		(ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
| 496| 496| 		g_Menu.close();
| 497| 497| 
| 498| 498| 	// State-machine processing:
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 652| 652| 		// user to continue building walls.
| 653| 653| 		switch (ev.type)
| 654| 654| 		{
| 655|    |-			case "mousemotion":
|    | 655|+		case "mousemotion":
| 656| 656| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 657| 657| 
| 658| 658| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 653| 653| 		switch (ev.type)
| 654| 654| 		{
| 655| 655| 			case "mousemotion":
| 656|    |-				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
|    | 656|+			placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 657| 657| 
| 658| 658| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 659| 659| 				// the ending point and the starting point to snap to.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 655| 655| 			case "mousemotion":
| 656| 656| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 657| 657| 
| 658|    |-				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | 658|+			// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 659| 659| 				// the ending point and the starting point to snap to.
| 660| 660| 				//
| 661| 661| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 656| 656| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 657| 657| 
| 658| 658| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 659|    |-				// the ending point and the starting point to snap to.
|    | 659|+			// the ending point and the starting point to snap to.
| 660| 660| 				//
| 661| 661| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 662| 662| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 657| 657| 
| 658| 658| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 659| 659| 				// the ending point and the starting point to snap to.
| 660|    |-				//
|    | 660|+			//
| 661| 661| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 662| 662| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 663| 663| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 658| 658| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 659| 659| 				// the ending point and the starting point to snap to.
| 660| 660| 				//
| 661|    |-				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | 661|+			// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 662| 662| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 663| 663| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 664| 664| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 659| 659| 				// the ending point and the starting point to snap to.
| 660| 660| 				//
| 661| 661| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 662|    |-				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | 662|+			// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 663| 663| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 664| 664| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 665| 665| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 660| 660| 				//
| 661| 661| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 662| 662| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 663|    |-				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | 663|+			// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 664| 664| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 665| 665| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 666| 666| 				// points.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 661| 661| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 662| 662| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 663| 663| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 664|    |-				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | 664|+			// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 665| 665| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 666| 666| 				// points.
| 667| 667| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 662| 662| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 663| 663| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 664| 664| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 665|    |-				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | 665|+			// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 666| 666| 				// points.
| 667| 667| 
| 668| 668| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 663| 663| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 664| 664| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 665| 665| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 666|    |-				// points.
|    | 666|+			// points.
| 667| 667| 
| 668| 668| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 669| 669| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 665| 665| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 666| 666| 				// points.
| 667| 667| 
| 668|    |-				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | 668|+			placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 669| 669| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 670| 670| 
| 671| 671| 				if (result && result.cost)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 666| 666| 				// points.
| 667| 667| 
| 668| 668| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 669|    |-				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | 669|+			var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 670| 670| 
| 671| 671| 				if (result && result.cost)
| 672| 672| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 668| 668| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 669| 669| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 670| 670| 
| 671|    |-				if (result && result.cost)
|    | 671|+			if (result && result.cost)
| 672| 672| 				{
| 673| 673| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 674| 674| 					placementSupport.tooltipMessage = [
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 669| 669| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 670| 670| 
| 671| 671| 				if (result && result.cost)
| 672|    |-				{
|    | 672|+			{
| 673| 673| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 674| 674| 					placementSupport.tooltipMessage = [
| 675| 675| 						getEntityCostTooltip(result),
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 670| 670| 
| 671| 671| 				if (result && result.cost)
| 672| 672| 				{
| 673|    |-					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
|    | 673|+				var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 674| 674| 					placementSupport.tooltipMessage = [
| 675| 675| 						getEntityCostTooltip(result),
| 676| 676| 						getNeededResourcesTooltip(neededResources)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 671| 671| 				if (result && result.cost)
| 672| 672| 				{
| 673| 673| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 674|    |-					placementSupport.tooltipMessage = [
|    | 674|+				placementSupport.tooltipMessage = [
| 675| 675| 						getEntityCostTooltip(result),
| 676| 676| 						getNeededResourcesTooltip(neededResources)
| 677| 677| 					].filter(tip => tip).join("\n");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 672| 672| 				{
| 673| 673| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 674| 674| 					placementSupport.tooltipMessage = [
| 675|    |-						getEntityCostTooltip(result),
|    | 675|+					getEntityCostTooltip(result),
| 676| 676| 						getNeededResourcesTooltip(neededResources)
| 677| 677| 					].filter(tip => tip).join("\n");
| 678| 678| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 673| 673| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 674| 674| 					placementSupport.tooltipMessage = [
| 675| 675| 						getEntityCostTooltip(result),
| 676|    |-						getNeededResourcesTooltip(neededResources)
|    | 676|+					getNeededResourcesTooltip(neededResources)
| 677| 677| 					].filter(tip => tip).join("\n");
| 678| 678| 				}
| 679| 679| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 674| 674| 					placementSupport.tooltipMessage = [
| 675| 675| 						getEntityCostTooltip(result),
| 676| 676| 						getNeededResourcesTooltip(neededResources)
| 677|    |-					].filter(tip => tip).join("\n");
|    | 677|+				].filter(tip => tip).join("\n");
| 678| 678| 				}
| 679| 679| 
| 680| 680| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 675| 675| 						getEntityCostTooltip(result),
| 676| 676| 						getNeededResourcesTooltip(neededResources)
| 677| 677| 					].filter(tip => tip).join("\n");
| 678|    |-				}
|    | 678|+			}
| 679| 679| 
| 680| 680| 				break;
| 681| 681| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 677| 677| 					].filter(tip => tip).join("\n");
| 678| 678| 				}
| 679| 679| 
| 680|    |-				break;
|    | 680|+			break;
| 681| 681| 
| 682| 682| 			case "mousebuttondown":
| 683| 683| 				if (ev.button == SDL_BUTTON_LEFT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 679| 679| 
| 680| 680| 				break;
| 681| 681| 
| 682|    |-			case "mousebuttondown":
|    | 682|+		case "mousebuttondown":
| 683| 683| 				if (ev.button == SDL_BUTTON_LEFT)
| 684| 684| 				{
| 685| 685| 					var queued = Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 680| 680| 				break;
| 681| 681| 
| 682| 682| 			case "mousebuttondown":
| 683|    |-				if (ev.button == SDL_BUTTON_LEFT)
|    | 683|+			if (ev.button == SDL_BUTTON_LEFT)
| 684| 684| 				{
| 685| 685| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 686| 686| 					if (tryPlaceWall(queued))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 681| 681| 
| 682| 682| 			case "mousebuttondown":
| 683| 683| 				if (ev.button == SDL_BUTTON_LEFT)
| 684|    |-				{
|    | 684|+			{
| 685| 685| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 686| 686| 					if (tryPlaceWall(queued))
| 687| 687| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 682| 682| 			case "mousebuttondown":
| 683| 683| 				if (ev.button == SDL_BUTTON_LEFT)
| 684| 684| 				{
| 685|    |-					var queued = Engine.HotkeyIsPressed("session.queue");
|    | 685|+				var queued = Engine.HotkeyIsPressed("session.queue");
| 686| 686| 					if (tryPlaceWall(queued))
| 687| 687| 					{
| 688| 688| 						if (queued)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 683| 683| 				if (ev.button == SDL_BUTTON_LEFT)
| 684| 684| 				{
| 685| 685| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 686|    |-					if (tryPlaceWall(queued))
|    | 686|+				if (tryPlaceWall(queued))
| 687| 687| 					{
| 688| 688| 						if (queued)
| 689| 689| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 684| 684| 				{
| 685| 685| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 686| 686| 					if (tryPlaceWall(queued))
| 687|    |-					{
|    | 687|+				{
| 688| 688| 						if (queued)
| 689| 689| 						{
| 690| 690| 							// continue building, just set a new starting position where we left off
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 685| 685| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 686| 686| 					if (tryPlaceWall(queued))
| 687| 687| 					{
| 688|    |-						if (queued)
|    | 688|+					if (queued)
| 689| 689| 						{
| 690| 690| 							// continue building, just set a new starting position where we left off
| 691| 691| 							placementSupport.position = placementSupport.wallEndPosition;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 686| 686| 					if (tryPlaceWall(queued))
| 687| 687| 					{
| 688| 688| 						if (queued)
| 689|    |-						{
|    | 689|+					{
| 690| 690| 							// continue building, just set a new starting position where we left off
| 691| 691| 							placementSupport.position = placementSupport.wallEndPosition;
| 692| 692| 							placementSupport.wallEndPosition = undefined;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 687| 687| 					{
| 688| 688| 						if (queued)
| 689| 689| 						{
| 690|    |-							// continue building, just set a new starting position where we left off
|    | 690|+						// continue building, just set a new starting position where we left off
| 691| 691| 							placementSupport.position = placementSupport.wallEndPosition;
| 692| 692| 							placementSupport.wallEndPosition = undefined;
| 693| 693| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 688| 688| 						if (queued)
| 689| 689| 						{
| 690| 690| 							// continue building, just set a new starting position where we left off
| 691|    |-							placementSupport.position = placementSupport.wallEndPosition;
|    | 691|+						placementSupport.position = placementSupport.wallEndPosition;
| 692| 692| 							placementSupport.wallEndPosition = undefined;
| 693| 693| 
| 694| 694| 							inputState = INPUT_BUILDING_WALL_CLICK;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 689| 689| 						{
| 690| 690| 							// continue building, just set a new starting position where we left off
| 691| 691| 							placementSupport.position = placementSupport.wallEndPosition;
| 692|    |-							placementSupport.wallEndPosition = undefined;
|    | 692|+						placementSupport.wallEndPosition = undefined;
| 693| 693| 
| 694| 694| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 695| 695| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 691| 691| 							placementSupport.position = placementSupport.wallEndPosition;
| 692| 692| 							placementSupport.wallEndPosition = undefined;
| 693| 693| 
| 694|    |-							inputState = INPUT_BUILDING_WALL_CLICK;
|    | 694|+						inputState = INPUT_BUILDING_WALL_CLICK;
| 695| 695| 						}
| 696| 696| 						else
| 697| 697| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 692| 692| 							placementSupport.wallEndPosition = undefined;
| 693| 693| 
| 694| 694| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 695|    |-						}
|    | 695|+					}
| 696| 696| 						else
| 697| 697| 						{
| 698| 698| 							placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 693| 693| 
| 694| 694| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 695| 695| 						}
| 696|    |-						else
|    | 696|+					else
| 697| 697| 						{
| 698| 698| 							placementSupport.Reset();
| 699| 699| 							inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 694| 694| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 695| 695| 						}
| 696| 696| 						else
| 697|    |-						{
|    | 697|+					{
| 698| 698| 							placementSupport.Reset();
| 699| 699| 							inputState = INPUT_NORMAL;
| 700| 700| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 695| 695| 						}
| 696| 696| 						else
| 697| 697| 						{
| 698|    |-							placementSupport.Reset();
|    | 698|+						placementSupport.Reset();
| 699| 699| 							inputState = INPUT_NORMAL;
| 700| 700| 						}
| 701| 701| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 696| 696| 						else
| 697| 697| 						{
| 698| 698| 							placementSupport.Reset();
| 699|    |-							inputState = INPUT_NORMAL;
|    | 699|+						inputState = INPUT_NORMAL;
| 700| 700| 						}
| 701| 701| 					}
| 702| 702| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 697| 697| 						{
| 698| 698| 							placementSupport.Reset();
| 699| 699| 							inputState = INPUT_NORMAL;
| 700|    |-						}
|    | 700|+					}
| 701| 701| 					}
| 702| 702| 					else
| 703| 703| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 698| 698| 							placementSupport.Reset();
| 699| 699| 							inputState = INPUT_NORMAL;
| 700| 700| 						}
| 701|    |-					}
|    | 701|+				}
| 702| 702| 					else
| 703| 703| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 704| 704| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 699| 699| 							inputState = INPUT_NORMAL;
| 700| 700| 						}
| 701| 701| 					}
| 702|    |-					else
|    | 702|+				else
| 703| 703| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 704| 704| 
| 705| 705| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 700| 700| 						}
| 701| 701| 					}
| 702| 702| 					else
| 703|    |-						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | 703|+					placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 704| 704| 
| 705| 705| 					updateBuildingPlacementPreview();
| 706| 706| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 702| 702| 					else
| 703| 703| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 704| 704| 
| 705|    |-					updateBuildingPlacementPreview();
|    | 705|+				updateBuildingPlacementPreview();
| 706| 706| 					return true;
| 707| 707| 				}
| 708| 708| 				else if (ev.button == SDL_BUTTON_RIGHT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 703| 703| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 704| 704| 
| 705| 705| 					updateBuildingPlacementPreview();
| 706|    |-					return true;
|    | 706|+				return true;
| 707| 707| 				}
| 708| 708| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 709| 709| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 704| 704| 
| 705| 705| 					updateBuildingPlacementPreview();
| 706| 706| 					return true;
| 707|    |-				}
|    | 707|+			}
| 708| 708| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 709| 709| 				{
| 710| 710| 					// reset to normal input mode
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 705| 705| 					updateBuildingPlacementPreview();
| 706| 706| 					return true;
| 707| 707| 				}
| 708|    |-				else if (ev.button == SDL_BUTTON_RIGHT)
|    | 708|+			else if (ev.button == SDL_BUTTON_RIGHT)
| 709| 709| 				{
| 710| 710| 					// reset to normal input mode
| 711| 711| 					placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 706| 706| 					return true;
| 707| 707| 				}
| 708| 708| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 709|    |-				{
|    | 709|+			{
| 710| 710| 					// reset to normal input mode
| 711| 711| 					placementSupport.Reset();
| 712| 712| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 707| 707| 				}
| 708| 708| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 709| 709| 				{
| 710|    |-					// reset to normal input mode
|    | 710|+				// reset to normal input mode
| 711| 711| 					placementSupport.Reset();
| 712| 712| 					updateBuildingPlacementPreview();
| 713| 713| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 708| 708| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 709| 709| 				{
| 710| 710| 					// reset to normal input mode
| 711|    |-					placementSupport.Reset();
|    | 711|+				placementSupport.Reset();
| 712| 712| 					updateBuildingPlacementPreview();
| 713| 713| 
| 714| 714| 					inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 709| 709| 				{
| 710| 710| 					// reset to normal input mode
| 711| 711| 					placementSupport.Reset();
| 712|    |-					updateBuildingPlacementPreview();
|    | 712|+				updateBuildingPlacementPreview();
| 713| 713| 
| 714| 714| 					inputState = INPUT_NORMAL;
| 715| 715| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 711| 711| 					placementSupport.Reset();
| 712| 712| 					updateBuildingPlacementPreview();
| 713| 713| 
| 714|    |-					inputState = INPUT_NORMAL;
|    | 714|+				inputState = INPUT_NORMAL;
| 715| 715| 					return true;
| 716| 716| 				}
| 717| 717| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 712| 712| 					updateBuildingPlacementPreview();
| 713| 713| 
| 714| 714| 					inputState = INPUT_NORMAL;
| 715|    |-					return true;
|    | 715|+				return true;
| 716| 716| 				}
| 717| 717| 				break;
| 718| 718| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 713| 713| 
| 714| 714| 					inputState = INPUT_NORMAL;
| 715| 715| 					return true;
| 716|    |-				}
|    | 716|+			}
| 717| 717| 				break;
| 718| 718| 		}
| 719| 719| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 714| 714| 					inputState = INPUT_NORMAL;
| 715| 715| 					return true;
| 716| 716| 				}
| 717|    |-				break;
|    | 717|+			break;
| 718| 718| 		}
| 719| 719| 		break;
| 720| 720| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 856| 856| 			break;
| 857| 857| 
| 858| 858| 		case "hotkeydown":
| 859|    |-				if (ev.hotkey.indexOf("selection.group.") == 0)
|    | 859|+			if (ev.hotkey.indexOf("selection.group.") == 0)
| 860| 860| 				{
| 861| 861| 					let now = Date.now();
| 862| 862| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 857| 857| 
| 858| 858| 		case "hotkeydown":
| 859| 859| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 860|    |-				{
|    | 860|+			{
| 861| 861| 					let now = Date.now();
| 862| 862| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 863| 863| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 858| 858| 		case "hotkeydown":
| 859| 859| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 860| 860| 				{
| 861|    |-					let now = Date.now();
|    | 861|+				let now = Date.now();
| 862| 862| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 863| 863| 					{
| 864| 864| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 859| 859| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 860| 860| 				{
| 861| 861| 					let now = Date.now();
| 862|    |-					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | 862|+				if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 863| 863| 					{
| 864| 864| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 865| 865| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 860| 860| 				{
| 861| 861| 					let now = Date.now();
| 862| 862| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 863|    |-					{
|    | 863|+				{
| 864| 864| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 865| 865| 						{
| 866| 866| 							var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 861| 861| 					let now = Date.now();
| 862| 862| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 863| 863| 					{
| 864|    |-						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | 864|+					if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 865| 865| 						{
| 866| 866| 							var sptr = ev.hotkey.split(".");
| 867| 867| 							performGroup("snap", sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 862| 862| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 863| 863| 					{
| 864| 864| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 865|    |-						{
|    | 865|+					{
| 866| 866| 							var sptr = ev.hotkey.split(".");
| 867| 867| 							performGroup("snap", sptr[3]);
| 868| 868| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 863| 863| 					{
| 864| 864| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 865| 865| 						{
| 866|    |-							var sptr = ev.hotkey.split(".");
|    | 866|+						var sptr = ev.hotkey.split(".");
| 867| 867| 							performGroup("snap", sptr[3]);
| 868| 868| 						}
| 869| 869| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 864| 864| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 865| 865| 						{
| 866| 866| 							var sptr = ev.hotkey.split(".");
| 867|    |-							performGroup("snap", sptr[3]);
|    | 867|+						performGroup("snap", sptr[3]);
| 868| 868| 						}
| 869| 869| 					}
| 870| 870| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 865| 865| 						{
| 866| 866| 							var sptr = ev.hotkey.split(".");
| 867| 867| 							performGroup("snap", sptr[3]);
| 868|    |-						}
|    | 868|+					}
| 869| 869| 					}
| 870| 870| 					else
| 871| 871| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 866| 866| 							var sptr = ev.hotkey.split(".");
| 867| 867| 							performGroup("snap", sptr[3]);
| 868| 868| 						}
| 869|    |-					}
|    | 869|+				}
| 870| 870| 					else
| 871| 871| 					{
| 872| 872| 						var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 867| 867| 							performGroup("snap", sptr[3]);
| 868| 868| 						}
| 869| 869| 					}
| 870|    |-					else
|    | 870|+				else
| 871| 871| 					{
| 872| 872| 						var sptr = ev.hotkey.split(".");
| 873| 873| 						performGroup(sptr[2], sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 868| 868| 						}
| 869| 869| 					}
| 870| 870| 					else
| 871|    |-					{
|    | 871|+				{
| 872| 872| 						var sptr = ev.hotkey.split(".");
| 873| 873| 						performGroup(sptr[2], sptr[3]);
| 874| 874| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 869| 869| 					}
| 870| 870| 					else
| 871| 871| 					{
| 872|    |-						var sptr = ev.hotkey.split(".");
|    | 872|+					var sptr = ev.hotkey.split(".");
| 873| 873| 						performGroup(sptr[2], sptr[3]);
| 874| 874| 
| 875| 875| 						doublePressTimer = now;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 870| 870| 					else
| 871| 871| 					{
| 872| 872| 						var sptr = ev.hotkey.split(".");
| 873|    |-						performGroup(sptr[2], sptr[3]);
|    | 873|+					performGroup(sptr[2], sptr[3]);
| 874| 874| 
| 875| 875| 						doublePressTimer = now;
| 876| 876| 						prevHotkey = ev.hotkey;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 872| 872| 						var sptr = ev.hotkey.split(".");
| 873| 873| 						performGroup(sptr[2], sptr[3]);
| 874| 874| 
| 875|    |-						doublePressTimer = now;
|    | 875|+					doublePressTimer = now;
| 876| 876| 						prevHotkey = ev.hotkey;
| 877| 877| 					}
| 878| 878| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 873| 873| 						performGroup(sptr[2], sptr[3]);
| 874| 874| 
| 875| 875| 						doublePressTimer = now;
| 876|    |-						prevHotkey = ev.hotkey;
|    | 876|+					prevHotkey = ev.hotkey;
| 877| 877| 					}
| 878| 878| 				}
| 879| 879| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 874| 874| 
| 875| 875| 						doublePressTimer = now;
| 876| 876| 						prevHotkey = ev.hotkey;
| 877|    |-					}
|    | 877|+				}
| 878| 878| 				}
| 879| 879| 				break;
| 880| 880| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 875| 875| 						doublePressTimer = now;
| 876| 876| 						prevHotkey = ev.hotkey;
| 877| 877| 					}
| 878|    |-				}
|    | 878|+			}
| 879| 879| 				break;
| 880| 880| 		}
| 881| 881| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 876| 876| 						prevHotkey = ev.hotkey;
| 877| 877| 					}
| 878| 878| 				}
| 879|    |-				break;
|    | 879|+			break;
| 880| 880| 		}
| 881| 881| 		break;
| 882| 882| 
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|1607|1607| 	var selectall = Engine.HotkeyIsPressed("selection.offscreen");
|1608|1608| 
|1609|1609| 	// Reset the last idle unit, etc., if the selection type has changed.
|1610|    |-	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v,i) => v === lastIdleClasses[i]))
|    |1610|+	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v, i) => v === lastIdleClasses[i]))
|1611|1611| 		resetIdleUnit();
|1612|1612| 	lastIdleClasses = classes;
|1613|1613| 

binaries/data/mods/public/gui/session/input.js
| 234| »   var·target·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'target' to undefined.

binaries/data/mods/public/gui/session/input.js
| 248| »   var·actionInfo·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'actionInfo' to undefined.

binaries/data/mods/public/gui/session/input.js
| 480| »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 507| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 511| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 566| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 576| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 624| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 653| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 722| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 738| ·»   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 739| ·»   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 744| ·»   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 823| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 826| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 928| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1017| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1031| »   »   »   »   let·action·=·determineAction(ev.x,·ev.y);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'action' is already declared in the upper scope.

binaries/data/mods/public/gui/session/input.js
|1040| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1064| ·»   »   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1065| ·»   »   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1066| ·»   »   »   »   »   "z":·placementSupport.position.z,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1069| ·»   »   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1127| »   »   »   switch·(ev.hotkey)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1558| »   switch·(action)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 234| »   var·target·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'target' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 248| »   var·actionInfo·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'actionInfo' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 262| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 265| »   »   »   var·r·=·g_UnitActions[action].hotkeyActionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 270| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 273| »   »   »   var·r·=·g_UnitActions[action].actionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 495| »   »   &&·(ev.button·==·SDL_BUTTON_LEFT·||·ev.button·==·SDL_BUTTON_RIGHT))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/gui/session/input.js
| 525| »   »   »   »   var·rect·=·updateBandbox(bandbox,·ev,·true);
|    | [NORMAL] JSHintBear:
|    | 'rect' is already defined.

binaries/data/mods/public/gui/session/input.js
| 528| »   »   »   »   var·ents·=·getPreferredEntities(Engine.PickPlayerEntitiesInRect(rect[0],·rect[1],·rect[2],·rect[3],·g_ViewedPlayer));
|    | [NORMAL] JSHintBear:
|    | 'ents' is already defined.

binaries/data/mods/public/gui/session/input.js
| 685| »   »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 759| »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 872| »   »   »   »   »   »   var·sptr·=·ev.hotkey.split(".");
|    | [NORMAL] JSHintBear:
|    | 'sptr' is already defined.

binaries/data/mods/public/gui/session/input.js
| 888| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.

binaries/data/mods/public/gui/session/input.js
| 914| »   »   »   }
|    | [NORMAL] JSHintBear:
|    | Expected a 'break' statement before 'default'.

binaries/data/mods/public/gui/session/input.js
| 938| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 228| 228| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 229| 229| 		result.translateParameters.push("territoryType");
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 231|+		result.parameters.territoryType = { "context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233| 233| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 228| 228| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 229| 229| 		result.translateParameters.push("territoryType");
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 231|+		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory };
| 232| 232| 		// gui code will join this array to a string
| 233| 233| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231| 231| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 233|+		result.parameters.validTerritories = { "context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
| 235| 235| 	}
| 236| 236| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231| 231| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 233|+		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories() };
| 234| 234| 		return result;	// Fail
| 235| 235| 	}
| 236| 236| 

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 163| »   »   switch·(ret)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 267| »   »   »   var·cmpIdentity·=·Engine.QueryInterface(id,·IID_Identity);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'cmpIdentity' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 276| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 297| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 157| »   »   var·ret·=·cmpObstruction.CheckFoundation(passClassName,·false);
|    | [NORMAL] JSHintBear:
|    | 'ret' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 181| »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 261| »   »   var·cmpRangeManager·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_RangeManager);
|    | [NORMAL] JSHintBear:
|    | 'cmpRangeManager' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 262| »   »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 161| »   if·(ret·!=·"success"·&&·this.template.PlacementType·!=·"socket")
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 163| »   »   switch·(ret)
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 826| 826| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 827| 827| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 828| 828| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 829|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 829|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 830| 830| 	}
| 831| 831| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 832| 832| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1108|1108| 			result.x = snapData.x;
|1109|1109| 			result.z = snapData.z;
|1110|1110| 			if (snapData.ent)
|1111|    |-				result.snappedEnt = snapData.ent
|    |1111|+				result.snappedEnt = snapData.ent;
|1112|1112| 		}
|1113|1113| 
|1114|1114| 		let cmpRangeOverlayManager = Engine.QueryInterface(ent, IID_RangeOverlayManager);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1693|1693| 			{
|1694|1694| 				minDist2 = dist2;
|1695|1695| 				minDistEntitySnapData = {
|1696|    |-						"x": pos.x,
|    |1696|+					"x": pos.x,
|1697|1697| 						"z": pos.z,
|1698|1698| 						"angle": cmpPosition.GetRotation().y,
|1699|1699| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1694|1694| 				minDist2 = dist2;
|1695|1695| 				minDistEntitySnapData = {
|1696|1696| 						"x": pos.x,
|1697|    |-						"z": pos.z,
|    |1697|+					"z": pos.z,
|1698|1698| 						"angle": cmpPosition.GetRotation().y,
|1699|1699| 						"ent": ent
|1700|1700| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1695|1695| 				minDistEntitySnapData = {
|1696|1696| 						"x": pos.x,
|1697|1697| 						"z": pos.z,
|1698|    |-						"angle": cmpPosition.GetRotation().y,
|    |1698|+					"angle": cmpPosition.GetRotation().y,
|1699|1699| 						"ent": ent
|1700|1700| 				};
|1701|1701| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1696|1696| 						"x": pos.x,
|1697|1697| 						"z": pos.z,
|1698|1698| 						"angle": cmpPosition.GetRotation().y,
|1699|    |-						"ent": ent
|    |1699|+					"ent": ent
|1700|1700| 				};
|1701|1701| 			}
|1702|1702| 		}

binaries/data/mods/public/simulation/components/GuiInterface.js
|1111| »   »   »   »   result.snappedEnt·=·snapData.ent
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
Executing section cli...

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

Stan added inline comments.Apr 2 2020, 3:21 PM
binaries/data/mods/public/simulation/components/BuildRestrictions.js
250

I guess fail is unneeded here...

329

Any reason for the separation?

Silier added a subscriber: Silier.Apr 2 2020, 3:33 PM
Silier added inline comments.
binaries/data/mods/public/gui/session/input.js
1318

cannot go here with undefined instead empty array ?

Freagarach updated this revision to Diff 11618.Apr 2 2020, 4:24 PM
Freagarach marked 3 inline comments as done.

Inlines.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
329

Consistency with the style used above.

Vulcan added a comment.Apr 2 2020, 4:30 PM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 228| 228| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 229| 229| 		result.translateParameters.push("territoryType");
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 231|+		result.parameters.territoryType = { "context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233| 233| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 228| 228| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 229| 229| 		result.translateParameters.push("territoryType");
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 231|+		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory };
| 232| 232| 		// gui code will join this array to a string
| 233| 233| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231| 231| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 233|+		result.parameters.validTerritories = { "context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
| 235| 235| 	}
| 236| 236| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231| 231| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 233|+		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories() };
| 234| 234| 		return result;	// Fail
| 235| 235| 	}
| 236| 236| 

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 163| »   »   switch·(ret)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 267| »   »   »   var·cmpIdentity·=·Engine.QueryInterface(id,·IID_Identity);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'cmpIdentity' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 276| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 297| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 157| »   »   var·ret·=·cmpObstruction.CheckFoundation(passClassName,·false);
|    | [NORMAL] JSHintBear:
|    | 'ret' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 181| »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 261| »   »   var·cmpRangeManager·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_RangeManager);
|    | [NORMAL] JSHintBear:
|    | 'cmpRangeManager' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 262| »   »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 161| »   if·(ret·!=·"success"·&&·this.template.PlacementType·!=·"socket")
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 163| »   »   switch·(ret)
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.
|    | [NORMAL] ESLintBear (space-unary-ops):
|    | Unary word operator 'typeof' must be followed by whitespace.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 343| 343| 	}
| 344| 344| 
| 345| 345| 	var wallPlacementInfo = updateBuildingPlacementPreview(); // entities making up the wall (wall segments, towers, ...)
| 346|    |-	if (!(wallPlacementInfo === false || typeof(wallPlacementInfo) === "object"))
|    | 346|+	if (!(wallPlacementInfo === false || typeof (wallPlacementInfo) === "object"))
| 347| 347| 	{
| 348| 348| 		error("Invalid updateBuildingPlacementPreview return value: " + uneval(wallPlacementInfo));
| 349| 349| 		return false;
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 493| 493| 	mouseIsOverObject = (hoveredObject != null);
| 494| 494| 
| 495| 495| 	// Close the menu when interacting with the game world
| 496|    |-	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown")
| 497|    |-		&& (ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
|    | 496|+	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown") &&
|    | 497|+		(ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
| 498| 498| 		g_Menu.close();
| 499| 499| 
| 500| 500| 	// State-machine processing:
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 654| 654| 		// user to continue building walls.
| 655| 655| 		switch (ev.type)
| 656| 656| 		{
| 657|    |-			case "mousemotion":
|    | 657|+		case "mousemotion":
| 658| 658| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 659| 659| 
| 660| 660| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 655| 655| 		switch (ev.type)
| 656| 656| 		{
| 657| 657| 			case "mousemotion":
| 658|    |-				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
|    | 658|+			placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 659| 659| 
| 660| 660| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 661| 661| 				// the ending point and the starting point to snap to.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 657| 657| 			case "mousemotion":
| 658| 658| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 659| 659| 
| 660|    |-				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | 660|+			// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 661| 661| 				// the ending point and the starting point to snap to.
| 662| 662| 				//
| 663| 663| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 658| 658| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 659| 659| 
| 660| 660| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 661|    |-				// the ending point and the starting point to snap to.
|    | 661|+			// the ending point and the starting point to snap to.
| 662| 662| 				//
| 663| 663| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 664| 664| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 659| 659| 
| 660| 660| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 661| 661| 				// the ending point and the starting point to snap to.
| 662|    |-				//
|    | 662|+			//
| 663| 663| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 664| 664| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 665| 665| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 660| 660| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 661| 661| 				// the ending point and the starting point to snap to.
| 662| 662| 				//
| 663|    |-				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | 663|+			// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 664| 664| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 665| 665| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 666| 666| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 661| 661| 				// the ending point and the starting point to snap to.
| 662| 662| 				//
| 663| 663| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 664|    |-				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | 664|+			// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 665| 665| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 666| 666| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 667| 667| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 662| 662| 				//
| 663| 663| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 664| 664| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 665|    |-				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | 665|+			// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 666| 666| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 667| 667| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 668| 668| 				// points.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 663| 663| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 664| 664| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 665| 665| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 666|    |-				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | 666|+			// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 667| 667| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 668| 668| 				// points.
| 669| 669| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 664| 664| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 665| 665| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 666| 666| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 667|    |-				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | 667|+			// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 668| 668| 				// points.
| 669| 669| 
| 670| 670| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 665| 665| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 666| 666| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 667| 667| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 668|    |-				// points.
|    | 668|+			// points.
| 669| 669| 
| 670| 670| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 671| 671| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 667| 667| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 668| 668| 				// points.
| 669| 669| 
| 670|    |-				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | 670|+			placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 671| 671| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 672| 672| 
| 673| 673| 				if (result && result.cost)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 668| 668| 				// points.
| 669| 669| 
| 670| 670| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 671|    |-				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | 671|+			var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 672| 672| 
| 673| 673| 				if (result && result.cost)
| 674| 674| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 670| 670| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 671| 671| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 672| 672| 
| 673|    |-				if (result && result.cost)
|    | 673|+			if (result && result.cost)
| 674| 674| 				{
| 675| 675| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 676| 676| 					placementSupport.tooltipMessage = [
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 671| 671| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 672| 672| 
| 673| 673| 				if (result && result.cost)
| 674|    |-				{
|    | 674|+			{
| 675| 675| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 676| 676| 					placementSupport.tooltipMessage = [
| 677| 677| 						getEntityCostTooltip(result),
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 672| 672| 
| 673| 673| 				if (result && result.cost)
| 674| 674| 				{
| 675|    |-					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
|    | 675|+				var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 676| 676| 					placementSupport.tooltipMessage = [
| 677| 677| 						getEntityCostTooltip(result),
| 678| 678| 						getNeededResourcesTooltip(neededResources)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 673| 673| 				if (result && result.cost)
| 674| 674| 				{
| 675| 675| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 676|    |-					placementSupport.tooltipMessage = [
|    | 676|+				placementSupport.tooltipMessage = [
| 677| 677| 						getEntityCostTooltip(result),
| 678| 678| 						getNeededResourcesTooltip(neededResources)
| 679| 679| 					].filter(tip => tip).join("\n");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 674| 674| 				{
| 675| 675| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 676| 676| 					placementSupport.tooltipMessage = [
| 677|    |-						getEntityCostTooltip(result),
|    | 677|+					getEntityCostTooltip(result),
| 678| 678| 						getNeededResourcesTooltip(neededResources)
| 679| 679| 					].filter(tip => tip).join("\n");
| 680| 680| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 675| 675| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 676| 676| 					placementSupport.tooltipMessage = [
| 677| 677| 						getEntityCostTooltip(result),
| 678|    |-						getNeededResourcesTooltip(neededResources)
|    | 678|+					getNeededResourcesTooltip(neededResources)
| 679| 679| 					].filter(tip => tip).join("\n");
| 680| 680| 				}
| 681| 681| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 676| 676| 					placementSupport.tooltipMessage = [
| 677| 677| 						getEntityCostTooltip(result),
| 678| 678| 						getNeededResourcesTooltip(neededResources)
| 679|    |-					].filter(tip => tip).join("\n");
|    | 679|+				].filter(tip => tip).join("\n");
| 680| 680| 				}
| 681| 681| 
| 682| 682| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 677| 677| 						getEntityCostTooltip(result),
| 678| 678| 						getNeededResourcesTooltip(neededResources)
| 679| 679| 					].filter(tip => tip).join("\n");
| 680|    |-				}
|    | 680|+			}
| 681| 681| 
| 682| 682| 				break;
| 683| 683| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 679| 679| 					].filter(tip => tip).join("\n");
| 680| 680| 				}
| 681| 681| 
| 682|    |-				break;
|    | 682|+			break;
| 683| 683| 
| 684| 684| 			case "mousebuttondown":
| 685| 685| 				if (ev.button == SDL_BUTTON_LEFT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 681| 681| 
| 682| 682| 				break;
| 683| 683| 
| 684|    |-			case "mousebuttondown":
|    | 684|+		case "mousebuttondown":
| 685| 685| 				if (ev.button == SDL_BUTTON_LEFT)
| 686| 686| 				{
| 687| 687| 					var queued = Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 682| 682| 				break;
| 683| 683| 
| 684| 684| 			case "mousebuttondown":
| 685|    |-				if (ev.button == SDL_BUTTON_LEFT)
|    | 685|+			if (ev.button == SDL_BUTTON_LEFT)
| 686| 686| 				{
| 687| 687| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 688| 688| 					if (tryPlaceWall(queued))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 683| 683| 
| 684| 684| 			case "mousebuttondown":
| 685| 685| 				if (ev.button == SDL_BUTTON_LEFT)
| 686|    |-				{
|    | 686|+			{
| 687| 687| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 688| 688| 					if (tryPlaceWall(queued))
| 689| 689| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 684| 684| 			case "mousebuttondown":
| 685| 685| 				if (ev.button == SDL_BUTTON_LEFT)
| 686| 686| 				{
| 687|    |-					var queued = Engine.HotkeyIsPressed("session.queue");
|    | 687|+				var queued = Engine.HotkeyIsPressed("session.queue");
| 688| 688| 					if (tryPlaceWall(queued))
| 689| 689| 					{
| 690| 690| 						if (queued)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 685| 685| 				if (ev.button == SDL_BUTTON_LEFT)
| 686| 686| 				{
| 687| 687| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 688|    |-					if (tryPlaceWall(queued))
|    | 688|+				if (tryPlaceWall(queued))
| 689| 689| 					{
| 690| 690| 						if (queued)
| 691| 691| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 686| 686| 				{
| 687| 687| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 688| 688| 					if (tryPlaceWall(queued))
| 689|    |-					{
|    | 689|+				{
| 690| 690| 						if (queued)
| 691| 691| 						{
| 692| 692| 							// continue building, just set a new starting position where we left off
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 687| 687| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 688| 688| 					if (tryPlaceWall(queued))
| 689| 689| 					{
| 690|    |-						if (queued)
|    | 690|+					if (queued)
| 691| 691| 						{
| 692| 692| 							// continue building, just set a new starting position where we left off
| 693| 693| 							placementSupport.position = placementSupport.wallEndPosition;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 688| 688| 					if (tryPlaceWall(queued))
| 689| 689| 					{
| 690| 690| 						if (queued)
| 691|    |-						{
|    | 691|+					{
| 692| 692| 							// continue building, just set a new starting position where we left off
| 693| 693| 							placementSupport.position = placementSupport.wallEndPosition;
| 694| 694| 							placementSupport.wallEndPosition = undefined;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 689| 689| 					{
| 690| 690| 						if (queued)
| 691| 691| 						{
| 692|    |-							// continue building, just set a new starting position where we left off
|    | 692|+						// continue building, just set a new starting position where we left off
| 693| 693| 							placementSupport.position = placementSupport.wallEndPosition;
| 694| 694| 							placementSupport.wallEndPosition = undefined;
| 695| 695| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 690| 690| 						if (queued)
| 691| 691| 						{
| 692| 692| 							// continue building, just set a new starting position where we left off
| 693|    |-							placementSupport.position = placementSupport.wallEndPosition;
|    | 693|+						placementSupport.position = placementSupport.wallEndPosition;
| 694| 694| 							placementSupport.wallEndPosition = undefined;
| 695| 695| 
| 696| 696| 							inputState = INPUT_BUILDING_WALL_CLICK;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 691| 691| 						{
| 692| 692| 							// continue building, just set a new starting position where we left off
| 693| 693| 							placementSupport.position = placementSupport.wallEndPosition;
| 694|    |-							placementSupport.wallEndPosition = undefined;
|    | 694|+						placementSupport.wallEndPosition = undefined;
| 695| 695| 
| 696| 696| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 697| 697| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 693| 693| 							placementSupport.position = placementSupport.wallEndPosition;
| 694| 694| 							placementSupport.wallEndPosition = undefined;
| 695| 695| 
| 696|    |-							inputState = INPUT_BUILDING_WALL_CLICK;
|    | 696|+						inputState = INPUT_BUILDING_WALL_CLICK;
| 697| 697| 						}
| 698| 698| 						else
| 699| 699| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 694| 694| 							placementSupport.wallEndPosition = undefined;
| 695| 695| 
| 696| 696| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 697|    |-						}
|    | 697|+					}
| 698| 698| 						else
| 699| 699| 						{
| 700| 700| 							placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 695| 695| 
| 696| 696| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 697| 697| 						}
| 698|    |-						else
|    | 698|+					else
| 699| 699| 						{
| 700| 700| 							placementSupport.Reset();
| 701| 701| 							inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 696| 696| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 697| 697| 						}
| 698| 698| 						else
| 699|    |-						{
|    | 699|+					{
| 700| 700| 							placementSupport.Reset();
| 701| 701| 							inputState = INPUT_NORMAL;
| 702| 702| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 697| 697| 						}
| 698| 698| 						else
| 699| 699| 						{
| 700|    |-							placementSupport.Reset();
|    | 700|+						placementSupport.Reset();
| 701| 701| 							inputState = INPUT_NORMAL;
| 702| 702| 						}
| 703| 703| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 698| 698| 						else
| 699| 699| 						{
| 700| 700| 							placementSupport.Reset();
| 701|    |-							inputState = INPUT_NORMAL;
|    | 701|+						inputState = INPUT_NORMAL;
| 702| 702| 						}
| 703| 703| 					}
| 704| 704| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 699| 699| 						{
| 700| 700| 							placementSupport.Reset();
| 701| 701| 							inputState = INPUT_NORMAL;
| 702|    |-						}
|    | 702|+					}
| 703| 703| 					}
| 704| 704| 					else
| 705| 705| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 700| 700| 							placementSupport.Reset();
| 701| 701| 							inputState = INPUT_NORMAL;
| 702| 702| 						}
| 703|    |-					}
|    | 703|+				}
| 704| 704| 					else
| 705| 705| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 706| 706| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 701| 701| 							inputState = INPUT_NORMAL;
| 702| 702| 						}
| 703| 703| 					}
| 704|    |-					else
|    | 704|+				else
| 705| 705| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 706| 706| 
| 707| 707| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 702| 702| 						}
| 703| 703| 					}
| 704| 704| 					else
| 705|    |-						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | 705|+					placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 706| 706| 
| 707| 707| 					updateBuildingPlacementPreview();
| 708| 708| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 704| 704| 					else
| 705| 705| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 706| 706| 
| 707|    |-					updateBuildingPlacementPreview();
|    | 707|+				updateBuildingPlacementPreview();
| 708| 708| 					return true;
| 709| 709| 				}
| 710| 710| 				else if (ev.button == SDL_BUTTON_RIGHT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 705| 705| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 706| 706| 
| 707| 707| 					updateBuildingPlacementPreview();
| 708|    |-					return true;
|    | 708|+				return true;
| 709| 709| 				}
| 710| 710| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 711| 711| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 706| 706| 
| 707| 707| 					updateBuildingPlacementPreview();
| 708| 708| 					return true;
| 709|    |-				}
|    | 709|+			}
| 710| 710| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 711| 711| 				{
| 712| 712| 					// reset to normal input mode
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 707| 707| 					updateBuildingPlacementPreview();
| 708| 708| 					return true;
| 709| 709| 				}
| 710|    |-				else if (ev.button == SDL_BUTTON_RIGHT)
|    | 710|+			else if (ev.button == SDL_BUTTON_RIGHT)
| 711| 711| 				{
| 712| 712| 					// reset to normal input mode
| 713| 713| 					placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 708| 708| 					return true;
| 709| 709| 				}
| 710| 710| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 711|    |-				{
|    | 711|+			{
| 712| 712| 					// reset to normal input mode
| 713| 713| 					placementSupport.Reset();
| 714| 714| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 709| 709| 				}
| 710| 710| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 711| 711| 				{
| 712|    |-					// reset to normal input mode
|    | 712|+				// reset to normal input mode
| 713| 713| 					placementSupport.Reset();
| 714| 714| 					updateBuildingPlacementPreview();
| 715| 715| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 710| 710| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 711| 711| 				{
| 712| 712| 					// reset to normal input mode
| 713|    |-					placementSupport.Reset();
|    | 713|+				placementSupport.Reset();
| 714| 714| 					updateBuildingPlacementPreview();
| 715| 715| 
| 716| 716| 					inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 711| 711| 				{
| 712| 712| 					// reset to normal input mode
| 713| 713| 					placementSupport.Reset();
| 714|    |-					updateBuildingPlacementPreview();
|    | 714|+				updateBuildingPlacementPreview();
| 715| 715| 
| 716| 716| 					inputState = INPUT_NORMAL;
| 717| 717| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 713| 713| 					placementSupport.Reset();
| 714| 714| 					updateBuildingPlacementPreview();
| 715| 715| 
| 716|    |-					inputState = INPUT_NORMAL;
|    | 716|+				inputState = INPUT_NORMAL;
| 717| 717| 					return true;
| 718| 718| 				}
| 719| 719| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 714| 714| 					updateBuildingPlacementPreview();
| 715| 715| 
| 716| 716| 					inputState = INPUT_NORMAL;
| 717|    |-					return true;
|    | 717|+				return true;
| 718| 718| 				}
| 719| 719| 				break;
| 720| 720| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 715| 715| 
| 716| 716| 					inputState = INPUT_NORMAL;
| 717| 717| 					return true;
| 718|    |-				}
|    | 718|+			}
| 719| 719| 				break;
| 720| 720| 		}
| 721| 721| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 716| 716| 					inputState = INPUT_NORMAL;
| 717| 717| 					return true;
| 718| 718| 				}
| 719|    |-				break;
|    | 719|+			break;
| 720| 720| 		}
| 721| 721| 		break;
| 722| 722| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 858| 858| 			break;
| 859| 859| 
| 860| 860| 		case "hotkeydown":
| 861|    |-				if (ev.hotkey.indexOf("selection.group.") == 0)
|    | 861|+			if (ev.hotkey.indexOf("selection.group.") == 0)
| 862| 862| 				{
| 863| 863| 					let now = Date.now();
| 864| 864| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 859| 859| 
| 860| 860| 		case "hotkeydown":
| 861| 861| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 862|    |-				{
|    | 862|+			{
| 863| 863| 					let now = Date.now();
| 864| 864| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 865| 865| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 860| 860| 		case "hotkeydown":
| 861| 861| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 862| 862| 				{
| 863|    |-					let now = Date.now();
|    | 863|+				let now = Date.now();
| 864| 864| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 865| 865| 					{
| 866| 866| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 861| 861| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 862| 862| 				{
| 863| 863| 					let now = Date.now();
| 864|    |-					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | 864|+				if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 865| 865| 					{
| 866| 866| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 867| 867| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 862| 862| 				{
| 863| 863| 					let now = Date.now();
| 864| 864| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 865|    |-					{
|    | 865|+				{
| 866| 866| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 867| 867| 						{
| 868| 868| 							var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 863| 863| 					let now = Date.now();
| 864| 864| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 865| 865| 					{
| 866|    |-						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | 866|+					if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 867| 867| 						{
| 868| 868| 							var sptr = ev.hotkey.split(".");
| 869| 869| 							performGroup("snap", sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 864| 864| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 865| 865| 					{
| 866| 866| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 867|    |-						{
|    | 867|+					{
| 868| 868| 							var sptr = ev.hotkey.split(".");
| 869| 869| 							performGroup("snap", sptr[3]);
| 870| 870| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 865| 865| 					{
| 866| 866| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 867| 867| 						{
| 868|    |-							var sptr = ev.hotkey.split(".");
|    | 868|+						var sptr = ev.hotkey.split(".");
| 869| 869| 							performGroup("snap", sptr[3]);
| 870| 870| 						}
| 871| 871| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 866| 866| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 867| 867| 						{
| 868| 868| 							var sptr = ev.hotkey.split(".");
| 869|    |-							performGroup("snap", sptr[3]);
|    | 869|+						performGroup("snap", sptr[3]);
| 870| 870| 						}
| 871| 871| 					}
| 872| 872| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 867| 867| 						{
| 868| 868| 							var sptr = ev.hotkey.split(".");
| 869| 869| 							performGroup("snap", sptr[3]);
| 870|    |-						}
|    | 870|+					}
| 871| 871| 					}
| 872| 872| 					else
| 873| 873| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 868| 868| 							var sptr = ev.hotkey.split(".");
| 869| 869| 							performGroup("snap", sptr[3]);
| 870| 870| 						}
| 871|    |-					}
|    | 871|+				}
| 872| 872| 					else
| 873| 873| 					{
| 874| 874| 						var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 869| 869| 							performGroup("snap", sptr[3]);
| 870| 870| 						}
| 871| 871| 					}
| 872|    |-					else
|    | 872|+				else
| 873| 873| 					{
| 874| 874| 						var sptr = ev.hotkey.split(".");
| 875| 875| 						performGroup(sptr[2], sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 870| 870| 						}
| 871| 871| 					}
| 872| 872| 					else
| 873|    |-					{
|    | 873|+				{
| 874| 874| 						var sptr = ev.hotkey.split(".");
| 875| 875| 						performGroup(sptr[2], sptr[3]);
| 876| 876| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 871| 871| 					}
| 872| 872| 					else
| 873| 873| 					{
| 874|    |-						var sptr = ev.hotkey.split(".");
|    | 874|+					var sptr = ev.hotkey.split(".");
| 875| 875| 						performGroup(sptr[2], sptr[3]);
| 876| 876| 
| 877| 877| 						doublePressTimer = now;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 872| 872| 					else
| 873| 873| 					{
| 874| 874| 						var sptr = ev.hotkey.split(".");
| 875|    |-						performGroup(sptr[2], sptr[3]);
|    | 875|+					performGroup(sptr[2], sptr[3]);
| 876| 876| 
| 877| 877| 						doublePressTimer = now;
| 878| 878| 						prevHotkey = ev.hotkey;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 874| 874| 						var sptr = ev.hotkey.split(".");
| 875| 875| 						performGroup(sptr[2], sptr[3]);
| 876| 876| 
| 877|    |-						doublePressTimer = now;
|    | 877|+					doublePressTimer = now;
| 878| 878| 						prevHotkey = ev.hotkey;
| 879| 879| 					}
| 880| 880| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 875| 875| 						performGroup(sptr[2], sptr[3]);
| 876| 876| 
| 877| 877| 						doublePressTimer = now;
| 878|    |-						prevHotkey = ev.hotkey;
|    | 878|+					prevHotkey = ev.hotkey;
| 879| 879| 					}
| 880| 880| 				}
| 881| 881| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 876| 876| 
| 877| 877| 						doublePressTimer = now;
| 878| 878| 						prevHotkey = ev.hotkey;
| 879|    |-					}
|    | 879|+				}
| 880| 880| 				}
| 881| 881| 				break;
| 882| 882| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 877| 877| 						doublePressTimer = now;
| 878| 878| 						prevHotkey = ev.hotkey;
| 879| 879| 					}
| 880|    |-				}
|    | 880|+			}
| 881| 881| 				break;
| 882| 882| 		}
| 883| 883| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 878| 878| 						prevHotkey = ev.hotkey;
| 879| 879| 					}
| 880| 880| 				}
| 881|    |-				break;
|    | 881|+			break;
| 882| 882| 		}
| 883| 883| 		break;
| 884| 884| 
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|1609|1609| 	var selectall = Engine.HotkeyIsPressed("selection.offscreen");
|1610|1610| 
|1611|1611| 	// Reset the last idle unit, etc., if the selection type has changed.
|1612|    |-	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v,i) => v === lastIdleClasses[i]))
|    |1612|+	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v, i) => v === lastIdleClasses[i]))
|1613|1613| 		resetIdleUnit();
|1614|1614| 	lastIdleClasses = classes;
|1615|1615| 

binaries/data/mods/public/gui/session/input.js
| 236| »   var·target·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'target' to undefined.

binaries/data/mods/public/gui/session/input.js
| 250| »   var·actionInfo·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'actionInfo' to undefined.

binaries/data/mods/public/gui/session/input.js
| 482| »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 509| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 513| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 568| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 578| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 626| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 655| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 724| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 740| ·»   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 741| ·»   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 746| ·»   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 825| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 828| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 930| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1019| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1033| »   »   »   »   let·action·=·determineAction(ev.x,·ev.y);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'action' is already declared in the upper scope.

binaries/data/mods/public/gui/session/input.js
|1042| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1066| ·»   »   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1067| ·»   »   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1068| ·»   »   »   »   »   "z":·placementSupport.position.z,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1071| ·»   »   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1129| »   »   »   switch·(ev.hotkey)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1560| »   switch·(action)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 236| »   var·target·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'target' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 250| »   var·actionInfo·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'actionInfo' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 264| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 267| »   »   »   var·r·=·g_UnitActions[action].hotkeyActionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 272| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 275| »   »   »   var·r·=·g_UnitActions[action].actionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 497| »   »   &&·(ev.button·==·SDL_BUTTON_LEFT·||·ev.button·==·SDL_BUTTON_RIGHT))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/gui/session/input.js
| 527| »   »   »   »   var·rect·=·updateBandbox(bandbox,·ev,·true);
|    | [NORMAL] JSHintBear:
|    | 'rect' is already defined.

binaries/data/mods/public/gui/session/input.js
| 530| »   »   »   »   var·ents·=·getPreferredEntities(Engine.PickPlayerEntitiesInRect(rect[0],·rect[1],·rect[2],·rect[3],·g_ViewedPlayer));
|    | [NORMAL] JSHintBear:
|    | 'ents' is already defined.

binaries/data/mods/public/gui/session/input.js
| 687| »   »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 761| »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 874| »   »   »   »   »   »   var·sptr·=·ev.hotkey.split(".");
|    | [NORMAL] JSHintBear:
|    | 'sptr' is already defined.

binaries/data/mods/public/gui/session/input.js
| 890| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.

binaries/data/mods/public/gui/session/input.js
| 916| »   »   »   }
|    | [NORMAL] JSHintBear:
|    | Expected a 'break' statement before 'default'.

binaries/data/mods/public/gui/session/input.js
| 940| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 826| 826| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 827| 827| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 828| 828| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 829|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 829|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 830| 830| 	}
| 831| 831| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 832| 832| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1108|1108| 			result.x = snapData.x;
|1109|1109| 			result.z = snapData.z;
|1110|1110| 			if (snapData.ent)
|1111|    |-				result.snappedEnt = snapData.ent
|    |1111|+				result.snappedEnt = snapData.ent;
|1112|1112| 		}
|1113|1113| 
|1114|1114| 		let cmpRangeOverlayManager = Engine.QueryInterface(ent, IID_RangeOverlayManager);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1693|1693| 			{
|1694|1694| 				minDist2 = dist2;
|1695|1695| 				minDistEntitySnapData = {
|1696|    |-						"x": pos.x,
|    |1696|+					"x": pos.x,
|1697|1697| 						"z": pos.z,
|1698|1698| 						"angle": cmpPosition.GetRotation().y,
|1699|1699| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1694|1694| 				minDist2 = dist2;
|1695|1695| 				minDistEntitySnapData = {
|1696|1696| 						"x": pos.x,
|1697|    |-						"z": pos.z,
|    |1697|+					"z": pos.z,
|1698|1698| 						"angle": cmpPosition.GetRotation().y,
|1699|1699| 						"ent": ent
|1700|1700| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1695|1695| 				minDistEntitySnapData = {
|1696|1696| 						"x": pos.x,
|1697|1697| 						"z": pos.z,
|1698|    |-						"angle": cmpPosition.GetRotation().y,
|    |1698|+					"angle": cmpPosition.GetRotation().y,
|1699|1699| 						"ent": ent
|1700|1700| 				};
|1701|1701| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1696|1696| 						"x": pos.x,
|1697|1697| 						"z": pos.z,
|1698|1698| 						"angle": cmpPosition.GetRotation().y,
|1699|    |-						"ent": ent
|    |1699|+					"ent": ent
|1700|1700| 				};
|1701|1701| 			}
|1702|1702| 		}

binaries/data/mods/public/simulation/components/GuiInterface.js
|1111| »   »   »   »   result.snappedEnt·=·snapData.ent
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
| 527| 527| 			if (cmpGarrisonHolder)
| 528| 528| 			{
| 529| 529| 				// Only the owner of the garrisonHolder may unload entities from any owners
| 530|    |-				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits
| 531|    |-				    && player != +cmd.owner)
|    | 530|+				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits &&
|    | 531|+				    player != +cmd.owner)
| 532| 532| 						continue;
| 533| 533| 
| 534| 534| 				if (!cmpGarrisonHolder.UnloadTemplate(cmd.template, cmd.owner, cmd.all))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
| 529| 529| 				// Only the owner of the garrisonHolder may unload entities from any owners
| 530| 530| 				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits
| 531| 531| 				    && player != +cmd.owner)
| 532|    |-						continue;
|    | 532|+					continue;
| 533| 533| 
| 534| 534| 				if (!cmpGarrisonHolder.UnloadTemplate(cmd.template, cmd.owner, cmd.all))
| 535| 535| 					notifyUnloadFailure(player, garrisonHolder);
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'metadata'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata": cmd.metadata, "owner" : player } );
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'owner'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner": player } );
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (space-in-parens):
|    | There should be no spaces inside this paren.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player });
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1257|1257| 		}
|1258|1258| 
|1259|1259| 		lastTowerControlGroup = cmpSnappedStartObstruction.GetControlGroup();
|1260|    |-		//warn("setting lastTowerControlGroup to control group of start snapped entity " + cmd.startSnappedEntity + ": " + lastTowerControlGroup);
|    |1260|+		// warn("setting lastTowerControlGroup to control group of start snapped entity " + cmd.startSnappedEntity + ": " + lastTowerControlGroup);
|1261|1261| 	}
|1262|1262| 
|1263|1263| 	var i = 0;
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1321|1321| 
|1322|1322| 				if (i > 0)
|1323|1323| 				{
|1324|    |-					//warn("   updating previous wall piece's secondary control group to " + newTowerControlGroup);
|    |1324|+					// warn("   updating previous wall piece's secondary control group to " + newTowerControlGroup);
|1325|1325| 					var cmpPreviousObstruction = Engine.QueryInterface(pieces[i-1].ent, IID_Obstruction);
|1326|1326| 					// TODO: ensure that cmpPreviousObstruction exists
|1327|1327| 					// TODO: ensure that the previous obstruction does not yet have a secondary control group set
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1484|1484| 		// Check that all its members are selected
|1485|1485| 		var fid = formationIds[0];
|1486|1486| 		var cmpFormation = Engine.QueryInterface(+fid, IID_Formation);
|1487|    |-		if (cmpFormation && cmpFormation.GetMemberCount() == formation.members[fid].length
|1488|    |-			&& cmpFormation.GetMemberCount() == formation.entities.length)
|    |1487|+		if (cmpFormation && cmpFormation.GetMemberCount() == formation.members[fid].length &&
|    |1488|+			cmpFormation.GetMemberCount() == formation.entities.length)
|1489|1489| 		{
|1490|1490| 			cmpFormation.DeleteTwinFormations();
|1491|1491| 			// The whole formation was selected, so reuse its controller for this command
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1592|1592| 		for (var i = matrix.length - 1; i >= 0 && !closeClusters; --i)
|1593|1593| 			for (var j = i - 1; j >= 0 && !closeClusters; --j)
|1594|1594| 				if (matrix[i][j] < distSq)
|1595|    |-					closeClusters = [i,j];
|    |1595|+					closeClusters = [i, j];
|1596|1596| 
|1597|1597| 		// if no more close clusters found, just return all found clusters so far
|1598|1598| 		if (!closeClusters)
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1614|1614| 		}
|1615|1615| 		// remove the rows and columns in the matrix for the merged clusters,
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|    |-		clusters.splice(closeClusters[0],1);
|    |1617|+		clusters.splice(closeClusters[0], 1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1615|1615| 		// remove the rows and columns in the matrix for the merged clusters,
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|    |-		clusters.splice(closeClusters[1],1);
|    |1618|+		clusters.splice(closeClusters[1], 1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|    |-		matrix.splice(closeClusters[0],1);
|    |1619|+		matrix.splice(closeClusters[0], 1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|    |-		matrix.splice(closeClusters[1],1);
|    |1620|+		matrix.splice(closeClusters[1], 1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|1624|    |-				matrix[i].splice(closeClusters[0],1);
|    |1624|+				matrix[i].splice(closeClusters[0], 1);
|1625|1625| 			if (matrix[i].length > closeClusters[1])
|1626|1626| 				matrix[i].splice(closeClusters[1],1);
|1627|1627| 		}
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|1624|1624| 				matrix[i].splice(closeClusters[0],1);
|1625|1625| 			if (matrix[i].length > closeClusters[1])
|1626|    |-				matrix[i].splice(closeClusters[1],1);
|    |1626|+				matrix[i].splice(closeClusters[1], 1);
|1627|1627| 		}
|1628|1628| 		// add a new row of distances to the matrix and the new cluster
|1629|1629| 		clusters.push(newCluster);

binaries/data/mods/public/simulation/helpers/Commands.js
|  43| »   if·(g_Commands[cmd.type])
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|  47| »   »   g_Commands[cmd.type](player,·cmd,·data);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 788| »   »   let·ent·=·pickRandom(cmpRangeManager.GetEntitiesByPlayer(cmd.player).filter(ent·=>·{
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'ent' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|1280| ····»   »   »   error("[TryConstructWall]·Expected·last·tower·control·group·to·be·available,·none·found·(1st·pass,·iteration·"·+·i·+·")");
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/simulation/helpers/Commands.js
|1281| ····»   »   »   break;
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/simulation/helpers/Commands.js
|1511| »   »   »   »   var·lastFormationTemplate·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'lastFormationTemplate' to undefined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1590| »   »   var·closeClusters·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'closeClusters' to undefined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1607| »   »   for·(let·i·=·0;·i·<·clusters.length;·++i)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|1621| »   »   for·(let·i·=·0;·i·<·matrix.length;·++i)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|  53| var·g_Commands·=·{
|    | [NORMAL] JSHintBear:
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 531| »   »   »   »   ····&&·player·!=·+cmd.owner)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/helpers/Commands.js
| 726| »   »   »   »   var·cmpGUIInterface·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_GuiInterface);
|    | [NORMAL] JSHintBear:
|    | 'cmpGUIInterface' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 947| »   »   for·(var·i·=·0;·i·<·length;·++i)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 960| »   »   var·count·=·0;
|    | [NORMAL] JSHintBear:
|    | 'count' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1107| »   »   var·cmpGuiInterface·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_GuiInterface);
|    | [NORMAL] JSHintBear:
|    | 'cmpGuiInterface' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1366| »   »   var·piece·=·pieces[j];
|    | [NORMAL] JSHintBear:
|    | 'piece' is already defined.

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

binaries/data/mods/public/simulation/helpers/Commands.js
|1488| »   »   »   &&·cmpFormation.GetMemberCount()·==·formation.entities.length)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

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

binaries/data/mods/public/simulation/helpers/Commands.js
|1547| »   »   »   var·cmpFormation·=·Engine.QueryInterface(formationEnt,·IID_Formation);
|    | [NORMAL] JSHintBear:
|    | 'cmpFormation' is already defined.
Executing section cli...

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

Silier added inline comments.Apr 3 2020, 10:07 AM
binaries/data/mods/public/simulation/components/BuildSlot.js
62

current owner is a bit misleading term

binaries/data/mods/public/simulation/components/GuiInterface.js
1047

half of foundation size ?

Freagarach updated this revision to Diff 11626.Apr 4 2020, 10:10 AM
Freagarach marked an inline comment as done.

Default to ~half the obstruction size.
Generalised the snapping function a bit.

Be aware that this currently breaks snapping to edges, although I have no clue as to why.

Freagarach marked an inline comment as done.Apr 4 2020, 10:11 AM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
| 527| 527| 			if (cmpGarrisonHolder)
| 528| 528| 			{
| 529| 529| 				// Only the owner of the garrisonHolder may unload entities from any owners
| 530|    |-				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits
| 531|    |-				    && player != +cmd.owner)
|    | 530|+				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits &&
|    | 531|+				    player != +cmd.owner)
| 532| 532| 						continue;
| 533| 533| 
| 534| 534| 				if (!cmpGarrisonHolder.UnloadTemplate(cmd.template, cmd.owner, cmd.all))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
| 529| 529| 				// Only the owner of the garrisonHolder may unload entities from any owners
| 530| 530| 				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits
| 531| 531| 				    && player != +cmd.owner)
| 532|    |-						continue;
|    | 532|+					continue;
| 533| 533| 
| 534| 534| 				if (!cmpGarrisonHolder.UnloadTemplate(cmd.template, cmd.owner, cmd.all))
| 535| 535| 					notifyUnloadFailure(player, garrisonHolder);
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'metadata'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata": cmd.metadata, "owner" : player } );
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'owner'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner": player } );
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (space-in-parens):
|    | There should be no spaces inside this paren.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player });
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1257|1257| 		}
|1258|1258| 
|1259|1259| 		lastTowerControlGroup = cmpSnappedStartObstruction.GetControlGroup();
|1260|    |-		//warn("setting lastTowerControlGroup to control group of start snapped entity " + cmd.startSnappedEntity + ": " + lastTowerControlGroup);
|    |1260|+		// warn("setting lastTowerControlGroup to control group of start snapped entity " + cmd.startSnappedEntity + ": " + lastTowerControlGroup);
|1261|1261| 	}
|1262|1262| 
|1263|1263| 	var i = 0;
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1321|1321| 
|1322|1322| 				if (i > 0)
|1323|1323| 				{
|1324|    |-					//warn("   updating previous wall piece's secondary control group to " + newTowerControlGroup);
|    |1324|+					// warn("   updating previous wall piece's secondary control group to " + newTowerControlGroup);
|1325|1325| 					var cmpPreviousObstruction = Engine.QueryInterface(pieces[i-1].ent, IID_Obstruction);
|1326|1326| 					// TODO: ensure that cmpPreviousObstruction exists
|1327|1327| 					// TODO: ensure that the previous obstruction does not yet have a secondary control group set
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1484|1484| 		// Check that all its members are selected
|1485|1485| 		var fid = formationIds[0];
|1486|1486| 		var cmpFormation = Engine.QueryInterface(+fid, IID_Formation);
|1487|    |-		if (cmpFormation && cmpFormation.GetMemberCount() == formation.members[fid].length
|1488|    |-			&& cmpFormation.GetMemberCount() == formation.entities.length)
|    |1487|+		if (cmpFormation && cmpFormation.GetMemberCount() == formation.members[fid].length &&
|    |1488|+			cmpFormation.GetMemberCount() == formation.entities.length)
|1489|1489| 		{
|1490|1490| 			cmpFormation.DeleteTwinFormations();
|1491|1491| 			// The whole formation was selected, so reuse its controller for this command
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1592|1592| 		for (var i = matrix.length - 1; i >= 0 && !closeClusters; --i)
|1593|1593| 			for (var j = i - 1; j >= 0 && !closeClusters; --j)
|1594|1594| 				if (matrix[i][j] < distSq)
|1595|    |-					closeClusters = [i,j];
|    |1595|+					closeClusters = [i, j];
|1596|1596| 
|1597|1597| 		// if no more close clusters found, just return all found clusters so far
|1598|1598| 		if (!closeClusters)
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1614|1614| 		}
|1615|1615| 		// remove the rows and columns in the matrix for the merged clusters,
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|    |-		clusters.splice(closeClusters[0],1);
|    |1617|+		clusters.splice(closeClusters[0], 1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1615|1615| 		// remove the rows and columns in the matrix for the merged clusters,
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|    |-		clusters.splice(closeClusters[1],1);
|    |1618|+		clusters.splice(closeClusters[1], 1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|    |-		matrix.splice(closeClusters[0],1);
|    |1619|+		matrix.splice(closeClusters[0], 1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|    |-		matrix.splice(closeClusters[1],1);
|    |1620|+		matrix.splice(closeClusters[1], 1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|1624|    |-				matrix[i].splice(closeClusters[0],1);
|    |1624|+				matrix[i].splice(closeClusters[0], 1);
|1625|1625| 			if (matrix[i].length > closeClusters[1])
|1626|1626| 				matrix[i].splice(closeClusters[1],1);
|1627|1627| 		}
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|1624|1624| 				matrix[i].splice(closeClusters[0],1);
|1625|1625| 			if (matrix[i].length > closeClusters[1])
|1626|    |-				matrix[i].splice(closeClusters[1],1);
|    |1626|+				matrix[i].splice(closeClusters[1], 1);
|1627|1627| 		}
|1628|1628| 		// add a new row of distances to the matrix and the new cluster
|1629|1629| 		clusters.push(newCluster);

binaries/data/mods/public/simulation/helpers/Commands.js
|  43| »   if·(g_Commands[cmd.type])
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|  47| »   »   g_Commands[cmd.type](player,·cmd,·data);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 788| »   »   let·ent·=·pickRandom(cmpRangeManager.GetEntitiesByPlayer(cmd.player).filter(ent·=>·{
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'ent' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|1280| ····»   »   »   error("[TryConstructWall]·Expected·last·tower·control·group·to·be·available,·none·found·(1st·pass,·iteration·"·+·i·+·")");
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/simulation/helpers/Commands.js
|1281| ····»   »   »   break;
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/simulation/helpers/Commands.js
|1511| »   »   »   »   var·lastFormationTemplate·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'lastFormationTemplate' to undefined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1590| »   »   var·closeClusters·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'closeClusters' to undefined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1607| »   »   for·(let·i·=·0;·i·<·clusters.length;·++i)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|1621| »   »   for·(let·i·=·0;·i·<·matrix.length;·++i)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|  53| var·g_Commands·=·{
|    | [NORMAL] JSHintBear:
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 531| »   »   »   »   ····&&·player·!=·+cmd.owner)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/helpers/Commands.js
| 726| »   »   »   »   var·cmpGUIInterface·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_GuiInterface);
|    | [NORMAL] JSHintBear:
|    | 'cmpGUIInterface' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 947| »   »   for·(var·i·=·0;·i·<·length;·++i)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 960| »   »   var·count·=·0;
|    | [NORMAL] JSHintBear:
|    | 'count' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1107| »   »   var·cmpGuiInterface·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_GuiInterface);
|    | [NORMAL] JSHintBear:
|    | 'cmpGuiInterface' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1366| »   »   var·piece·=·pieces[j];
|    | [NORMAL] JSHintBear:
|    | 'piece' is already defined.

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

binaries/data/mods/public/simulation/helpers/Commands.js
|1488| »   »   »   &&·cmpFormation.GetMemberCount()·==·formation.entities.length)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

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

binaries/data/mods/public/simulation/helpers/Commands.js
|1547| »   »   »   var·cmpFormation·=·Engine.QueryInterface(formationEnt,·IID_Formation);
|    | [NORMAL] JSHintBear:
|    | 'cmpFormation' is already defined.
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Walls.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Walls.js
| 191| 191| 		if (r < rLowerBound)
| 192| 192| 		{
| 193| 193| 			// we've allocated too much wall length, pop the last segment and try the next
| 194|    |-			//warn("Distance so far exceeds target, trying next level");
|    | 194|+			// warn("Distance so far exceeds target, trying next level");
| 195| 195| 			segments.pop();
| 196| 196| 			continue;
| 197| 197| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 826| 826| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 827| 827| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 828| 828| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 829|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 829|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 830| 830| 	}
| 831| 831| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 832| 832| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1092|1092| 		result.x = cmd.position.x;
|1093|1093| 		result.z = cmd.position.z;
|1094|1094| 		if (cmd.snapped && cmd.snappedEnt)
|1095|    |-			result.snappedEnt = cmd.snappedEnt
|    |1095|+			result.snappedEnt = cmd.snappedEnt;
|1096|1096| 
|1097|1097| 		let cmpRangeOverlayManager = Engine.QueryInterface(ent, IID_RangeOverlayManager);
|1098|1098| 		if (cmpRangeOverlayManager)

binaries/data/mods/public/simulation/components/GuiInterface.js
|1095| »   »   »   result.snappedEnt·=·cmd.snappedEnt
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (space-unary-ops):
|    | Unary word operator 'typeof' must be followed by whitespace.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 345| 345| 	}
| 346| 346| 
| 347| 347| 	var wallPlacementInfo = updateBuildingPlacementPreview(); // entities making up the wall (wall segments, towers, ...)
| 348|    |-	if (!(wallPlacementInfo === false || typeof(wallPlacementInfo) === "object"))
|    | 348|+	if (!(wallPlacementInfo === false || typeof (wallPlacementInfo) === "object"))
| 349| 349| 	{
| 350| 350| 		error("Invalid updateBuildingPlacementPreview return value: " + uneval(wallPlacementInfo));
| 351| 351| 		return false;
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 495| 495| 	mouseIsOverObject = (hoveredObject != null);
| 496| 496| 
| 497| 497| 	// Close the menu when interacting with the game world
| 498|    |-	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown")
| 499|    |-		&& (ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
|    | 498|+	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown") &&
|    | 499|+		(ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
| 500| 500| 		g_Menu.close();
| 501| 501| 
| 502| 502| 	// State-machine processing:
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 656| 656| 		// user to continue building walls.
| 657| 657| 		switch (ev.type)
| 658| 658| 		{
| 659|    |-			case "mousemotion":
|    | 659|+		case "mousemotion":
| 660| 660| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 661| 661| 
| 662| 662| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 657| 657| 		switch (ev.type)
| 658| 658| 		{
| 659| 659| 			case "mousemotion":
| 660|    |-				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
|    | 660|+			placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 661| 661| 
| 662| 662| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 663| 663| 				// the ending point and the starting point to snap to.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 659| 659| 			case "mousemotion":
| 660| 660| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 661| 661| 
| 662|    |-				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | 662|+			// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 663| 663| 				// the ending point and the starting point to snap to.
| 664| 664| 				//
| 665| 665| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 660| 660| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 661| 661| 
| 662| 662| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 663|    |-				// the ending point and the starting point to snap to.
|    | 663|+			// the ending point and the starting point to snap to.
| 664| 664| 				//
| 665| 665| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 666| 666| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 661| 661| 
| 662| 662| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 663| 663| 				// the ending point and the starting point to snap to.
| 664|    |-				//
|    | 664|+			//
| 665| 665| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 666| 666| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 667| 667| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 662| 662| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 663| 663| 				// the ending point and the starting point to snap to.
| 664| 664| 				//
| 665|    |-				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | 665|+			// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 666| 666| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 667| 667| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 668| 668| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 663| 663| 				// the ending point and the starting point to snap to.
| 664| 664| 				//
| 665| 665| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 666|    |-				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | 666|+			// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 667| 667| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 668| 668| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 669| 669| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 664| 664| 				//
| 665| 665| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 666| 666| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 667|    |-				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | 667|+			// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 668| 668| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 669| 669| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 670| 670| 				// points.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 665| 665| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 666| 666| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 667| 667| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 668|    |-				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | 668|+			// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 669| 669| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 670| 670| 				// points.
| 671| 671| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 666| 666| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 667| 667| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 668| 668| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 669|    |-				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | 669|+			// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 670| 670| 				// points.
| 671| 671| 
| 672| 672| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 667| 667| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 668| 668| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 669| 669| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 670|    |-				// points.
|    | 670|+			// points.
| 671| 671| 
| 672| 672| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 673| 673| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 669| 669| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 670| 670| 				// points.
| 671| 671| 
| 672|    |-				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | 672|+			placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 673| 673| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 674| 674| 
| 675| 675| 				if (result && result.cost)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 670| 670| 				// points.
| 671| 671| 
| 672| 672| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 673|    |-				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | 673|+			var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 674| 674| 
| 675| 675| 				if (result && result.cost)
| 676| 676| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 672| 672| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 673| 673| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 674| 674| 
| 675|    |-				if (result && result.cost)
|    | 675|+			if (result && result.cost)
| 676| 676| 				{
| 677| 677| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 678| 678| 					placementSupport.tooltipMessage = [
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 673| 673| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 674| 674| 
| 675| 675| 				if (result && result.cost)
| 676|    |-				{
|    | 676|+			{
| 677| 677| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 678| 678| 					placementSupport.tooltipMessage = [
| 679| 679| 						getEntityCostTooltip(result),
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 674| 674| 
| 675| 675| 				if (result && result.cost)
| 676| 676| 				{
| 677|    |-					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
|    | 677|+				var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 678| 678| 					placementSupport.tooltipMessage = [
| 679| 679| 						getEntityCostTooltip(result),
| 680| 680| 						getNeededResourcesTooltip(neededResources)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 675| 675| 				if (result && result.cost)
| 676| 676| 				{
| 677| 677| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 678|    |-					placementSupport.tooltipMessage = [
|    | 678|+				placementSupport.tooltipMessage = [
| 679| 679| 						getEntityCostTooltip(result),
| 680| 680| 						getNeededResourcesTooltip(neededResources)
| 681| 681| 					].filter(tip => tip).join("\n");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 676| 676| 				{
| 677| 677| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 678| 678| 					placementSupport.tooltipMessage = [
| 679|    |-						getEntityCostTooltip(result),
|    | 679|+					getEntityCostTooltip(result),
| 680| 680| 						getNeededResourcesTooltip(neededResources)
| 681| 681| 					].filter(tip => tip).join("\n");
| 682| 682| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 677| 677| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 678| 678| 					placementSupport.tooltipMessage = [
| 679| 679| 						getEntityCostTooltip(result),
| 680|    |-						getNeededResourcesTooltip(neededResources)
|    | 680|+					getNeededResourcesTooltip(neededResources)
| 681| 681| 					].filter(tip => tip).join("\n");
| 682| 682| 				}
| 683| 683| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 678| 678| 					placementSupport.tooltipMessage = [
| 679| 679| 						getEntityCostTooltip(result),
| 680| 680| 						getNeededResourcesTooltip(neededResources)
| 681|    |-					].filter(tip => tip).join("\n");
|    | 681|+				].filter(tip => tip).join("\n");
| 682| 682| 				}
| 683| 683| 
| 684| 684| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 679| 679| 						getEntityCostTooltip(result),
| 680| 680| 						getNeededResourcesTooltip(neededResources)
| 681| 681| 					].filter(tip => tip).join("\n");
| 682|    |-				}
|    | 682|+			}
| 683| 683| 
| 684| 684| 				break;
| 685| 685| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 681| 681| 					].filter(tip => tip).join("\n");
| 682| 682| 				}
| 683| 683| 
| 684|    |-				break;
|    | 684|+			break;
| 685| 685| 
| 686| 686| 			case "mousebuttondown":
| 687| 687| 				if (ev.button == SDL_BUTTON_LEFT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 683| 683| 
| 684| 684| 				break;
| 685| 685| 
| 686|    |-			case "mousebuttondown":
|    | 686|+		case "mousebuttondown":
| 687| 687| 				if (ev.button == SDL_BUTTON_LEFT)
| 688| 688| 				{
| 689| 689| 					var queued = Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 684| 684| 				break;
| 685| 685| 
| 686| 686| 			case "mousebuttondown":
| 687|    |-				if (ev.button == SDL_BUTTON_LEFT)
|    | 687|+			if (ev.button == SDL_BUTTON_LEFT)
| 688| 688| 				{
| 689| 689| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 690| 690| 					if (tryPlaceWall(queued))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 685| 685| 
| 686| 686| 			case "mousebuttondown":
| 687| 687| 				if (ev.button == SDL_BUTTON_LEFT)
| 688|    |-				{
|    | 688|+			{
| 689| 689| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 690| 690| 					if (tryPlaceWall(queued))
| 691| 691| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 686| 686| 			case "mousebuttondown":
| 687| 687| 				if (ev.button == SDL_BUTTON_LEFT)
| 688| 688| 				{
| 689|    |-					var queued = Engine.HotkeyIsPressed("session.queue");
|    | 689|+				var queued = Engine.HotkeyIsPressed("session.queue");
| 690| 690| 					if (tryPlaceWall(queued))
| 691| 691| 					{
| 692| 692| 						if (queued)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 687| 687| 				if (ev.button == SDL_BUTTON_LEFT)
| 688| 688| 				{
| 689| 689| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 690|    |-					if (tryPlaceWall(queued))
|    | 690|+				if (tryPlaceWall(queued))
| 691| 691| 					{
| 692| 692| 						if (queued)
| 693| 693| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 688| 688| 				{
| 689| 689| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 690| 690| 					if (tryPlaceWall(queued))
| 691|    |-					{
|    | 691|+				{
| 692| 692| 						if (queued)
| 693| 693| 						{
| 694| 694| 							// continue building, just set a new starting position where we left off
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 689| 689| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 690| 690| 					if (tryPlaceWall(queued))
| 691| 691| 					{
| 692|    |-						if (queued)
|    | 692|+					if (queued)
| 693| 693| 						{
| 694| 694| 							// continue building, just set a new starting position where we left off
| 695| 695| 							placementSupport.position = placementSupport.wallEndPosition;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 690| 690| 					if (tryPlaceWall(queued))
| 691| 691| 					{
| 692| 692| 						if (queued)
| 693|    |-						{
|    | 693|+					{
| 694| 694| 							// continue building, just set a new starting position where we left off
| 695| 695| 							placementSupport.position = placementSupport.wallEndPosition;
| 696| 696| 							placementSupport.wallEndPosition = undefined;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 691| 691| 					{
| 692| 692| 						if (queued)
| 693| 693| 						{
| 694|    |-							// continue building, just set a new starting position where we left off
|    | 694|+						// continue building, just set a new starting position where we left off
| 695| 695| 							placementSupport.position = placementSupport.wallEndPosition;
| 696| 696| 							placementSupport.wallEndPosition = undefined;
| 697| 697| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 692| 692| 						if (queued)
| 693| 693| 						{
| 694| 694| 							// continue building, just set a new starting position where we left off
| 695|    |-							placementSupport.position = placementSupport.wallEndPosition;
|    | 695|+						placementSupport.position = placementSupport.wallEndPosition;
| 696| 696| 							placementSupport.wallEndPosition = undefined;
| 697| 697| 
| 698| 698| 							inputState = INPUT_BUILDING_WALL_CLICK;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 693| 693| 						{
| 694| 694| 							// continue building, just set a new starting position where we left off
| 695| 695| 							placementSupport.position = placementSupport.wallEndPosition;
| 696|    |-							placementSupport.wallEndPosition = undefined;
|    | 696|+						placementSupport.wallEndPosition = undefined;
| 697| 697| 
| 698| 698| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 699| 699| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 695| 695| 							placementSupport.position = placementSupport.wallEndPosition;
| 696| 696| 							placementSupport.wallEndPosition = undefined;
| 697| 697| 
| 698|    |-							inputState = INPUT_BUILDING_WALL_CLICK;
|    | 698|+						inputState = INPUT_BUILDING_WALL_CLICK;
| 699| 699| 						}
| 700| 700| 						else
| 701| 701| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 696| 696| 							placementSupport.wallEndPosition = undefined;
| 697| 697| 
| 698| 698| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 699|    |-						}
|    | 699|+					}
| 700| 700| 						else
| 701| 701| 						{
| 702| 702| 							placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 697| 697| 
| 698| 698| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 699| 699| 						}
| 700|    |-						else
|    | 700|+					else
| 701| 701| 						{
| 702| 702| 							placementSupport.Reset();
| 703| 703| 							inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 698| 698| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 699| 699| 						}
| 700| 700| 						else
| 701|    |-						{
|    | 701|+					{
| 702| 702| 							placementSupport.Reset();
| 703| 703| 							inputState = INPUT_NORMAL;
| 704| 704| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 699| 699| 						}
| 700| 700| 						else
| 701| 701| 						{
| 702|    |-							placementSupport.Reset();
|    | 702|+						placementSupport.Reset();
| 703| 703| 							inputState = INPUT_NORMAL;
| 704| 704| 						}
| 705| 705| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 700| 700| 						else
| 701| 701| 						{
| 702| 702| 							placementSupport.Reset();
| 703|    |-							inputState = INPUT_NORMAL;
|    | 703|+						inputState = INPUT_NORMAL;
| 704| 704| 						}
| 705| 705| 					}
| 706| 706| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 701| 701| 						{
| 702| 702| 							placementSupport.Reset();
| 703| 703| 							inputState = INPUT_NORMAL;
| 704|    |-						}
|    | 704|+					}
| 705| 705| 					}
| 706| 706| 					else
| 707| 707| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 702| 702| 							placementSupport.Reset();
| 703| 703| 							inputState = INPUT_NORMAL;
| 704| 704| 						}
| 705|    |-					}
|    | 705|+				}
| 706| 706| 					else
| 707| 707| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 708| 708| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 703| 703| 							inputState = INPUT_NORMAL;
| 704| 704| 						}
| 705| 705| 					}
| 706|    |-					else
|    | 706|+				else
| 707| 707| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 708| 708| 
| 709| 709| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 704| 704| 						}
| 705| 705| 					}
| 706| 706| 					else
| 707|    |-						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | 707|+					placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 708| 708| 
| 709| 709| 					updateBuildingPlacementPreview();
| 710| 710| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 706| 706| 					else
| 707| 707| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 708| 708| 
| 709|    |-					updateBuildingPlacementPreview();
|    | 709|+				updateBuildingPlacementPreview();
| 710| 710| 					return true;
| 711| 711| 				}
| 712| 712| 				else if (ev.button == SDL_BUTTON_RIGHT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 707| 707| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 708| 708| 
| 709| 709| 					updateBuildingPlacementPreview();
| 710|    |-					return true;
|    | 710|+				return true;
| 711| 711| 				}
| 712| 712| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 713| 713| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 708| 708| 
| 709| 709| 					updateBuildingPlacementPreview();
| 710| 710| 					return true;
| 711|    |-				}
|    | 711|+			}
| 712| 712| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 713| 713| 				{
| 714| 714| 					// reset to normal input mode
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 709| 709| 					updateBuildingPlacementPreview();
| 710| 710| 					return true;
| 711| 711| 				}
| 712|    |-				else if (ev.button == SDL_BUTTON_RIGHT)
|    | 712|+			else if (ev.button == SDL_BUTTON_RIGHT)
| 713| 713| 				{
| 714| 714| 					// reset to normal input mode
| 715| 715| 					placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 710| 710| 					return true;
| 711| 711| 				}
| 712| 712| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 713|    |-				{
|    | 713|+			{
| 714| 714| 					// reset to normal input mode
| 715| 715| 					placementSupport.Reset();
| 716| 716| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 711| 711| 				}
| 712| 712| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 713| 713| 				{
| 714|    |-					// reset to normal input mode
|    | 714|+				// reset to normal input mode
| 715| 715| 					placementSupport.Reset();
| 716| 716| 					updateBuildingPlacementPreview();
| 717| 717| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 712| 712| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 713| 713| 				{
| 714| 714| 					// reset to normal input mode
| 715|    |-					placementSupport.Reset();
|    | 715|+				placementSupport.Reset();
| 716| 716| 					updateBuildingPlacementPreview();
| 717| 717| 
| 718| 718| 					inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 713| 713| 				{
| 714| 714| 					// reset to normal input mode
| 715| 715| 					placementSupport.Reset();
| 716|    |-					updateBuildingPlacementPreview();
|    | 716|+				updateBuildingPlacementPreview();
| 717| 717| 
| 718| 718| 					inputState = INPUT_NORMAL;
| 719| 719| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 715| 715| 					placementSupport.Reset();
| 716| 716| 					updateBuildingPlacementPreview();
| 717| 717| 
| 718|    |-					inputState = INPUT_NORMAL;
|    | 718|+				inputState = INPUT_NORMAL;
| 719| 719| 					return true;
| 720| 720| 				}
| 721| 721| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 716| 716| 					updateBuildingPlacementPreview();
| 717| 717| 
| 718| 718| 					inputState = INPUT_NORMAL;
| 719|    |-					return true;
|    | 719|+				return true;
| 720| 720| 				}
| 721| 721| 				break;
| 722| 722| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 717| 717| 
| 718| 718| 					inputState = INPUT_NORMAL;
| 719| 719| 					return true;
| 720|    |-				}
|    | 720|+			}
| 721| 721| 				break;
| 722| 722| 		}
| 723| 723| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 718| 718| 					inputState = INPUT_NORMAL;
| 719| 719| 					return true;
| 720| 720| 				}
| 721|    |-				break;
|    | 721|+			break;
| 722| 722| 		}
| 723| 723| 		break;
| 724| 724| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 855| 855| 			break;
| 856| 856| 
| 857| 857| 		case "hotkeydown":
| 858|    |-				if (ev.hotkey.indexOf("selection.group.") == 0)
|    | 858|+			if (ev.hotkey.indexOf("selection.group.") == 0)
| 859| 859| 				{
| 860| 860| 					let now = Date.now();
| 861| 861| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 856| 856| 
| 857| 857| 		case "hotkeydown":
| 858| 858| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 859|    |-				{
|    | 859|+			{
| 860| 860| 					let now = Date.now();
| 861| 861| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 862| 862| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 857| 857| 		case "hotkeydown":
| 858| 858| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 859| 859| 				{
| 860|    |-					let now = Date.now();
|    | 860|+				let now = Date.now();
| 861| 861| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 862| 862| 					{
| 863| 863| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 858| 858| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 859| 859| 				{
| 860| 860| 					let now = Date.now();
| 861|    |-					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | 861|+				if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 862| 862| 					{
| 863| 863| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 864| 864| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 859| 859| 				{
| 860| 860| 					let now = Date.now();
| 861| 861| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 862|    |-					{
|    | 862|+				{
| 863| 863| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 864| 864| 						{
| 865| 865| 							var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 860| 860| 					let now = Date.now();
| 861| 861| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 862| 862| 					{
| 863|    |-						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | 863|+					if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 864| 864| 						{
| 865| 865| 							var sptr = ev.hotkey.split(".");
| 866| 866| 							performGroup("snap", sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 861| 861| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 862| 862| 					{
| 863| 863| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 864|    |-						{
|    | 864|+					{
| 865| 865| 							var sptr = ev.hotkey.split(".");
| 866| 866| 							performGroup("snap", sptr[3]);
| 867| 867| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 862| 862| 					{
| 863| 863| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 864| 864| 						{
| 865|    |-							var sptr = ev.hotkey.split(".");
|    | 865|+						var sptr = ev.hotkey.split(".");
| 866| 866| 							performGroup("snap", sptr[3]);
| 867| 867| 						}
| 868| 868| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 863| 863| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 864| 864| 						{
| 865| 865| 							var sptr = ev.hotkey.split(".");
| 866|    |-							performGroup("snap", sptr[3]);
|    | 866|+						performGroup("snap", sptr[3]);
| 867| 867| 						}
| 868| 868| 					}
| 869| 869| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 864| 864| 						{
| 865| 865| 							var sptr = ev.hotkey.split(".");
| 866| 866| 							performGroup("snap", sptr[3]);
| 867|    |-						}
|    | 867|+					}
| 868| 868| 					}
| 869| 869| 					else
| 870| 870| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 865| 865| 							var sptr = ev.hotkey.split(".");
| 866| 866| 							performGroup("snap", sptr[3]);
| 867| 867| 						}
| 868|    |-					}
|    | 868|+				}
| 869| 869| 					else
| 870| 870| 					{
| 871| 871| 						var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 866| 866| 							performGroup("snap", sptr[3]);
| 867| 867| 						}
| 868| 868| 					}
| 869|    |-					else
|    | 869|+				else
| 870| 870| 					{
| 871| 871| 						var sptr = ev.hotkey.split(".");
| 872| 872| 						performGroup(sptr[2], sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 867| 867| 						}
| 868| 868| 					}
| 869| 869| 					else
| 870|    |-					{
|    | 870|+				{
| 871| 871| 						var sptr = ev.hotkey.split(".");
| 872| 872| 						performGroup(sptr[2], sptr[3]);
| 873| 873| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 868| 868| 					}
| 869| 869| 					else
| 870| 870| 					{
| 871|    |-						var sptr = ev.hotkey.split(".");
|    | 871|+					var sptr = ev.hotkey.split(".");
| 872| 872| 						performGroup(sptr[2], sptr[3]);
| 873| 873| 
| 874| 874| 						doublePressTimer = now;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 869| 869| 					else
| 870| 870| 					{
| 871| 871| 						var sptr = ev.hotkey.split(".");
| 872|    |-						performGroup(sptr[2], sptr[3]);
|    | 872|+					performGroup(sptr[2], sptr[3]);
| 873| 873| 
| 874| 874| 						doublePressTimer = now;
| 875| 875| 						prevHotkey = ev.hotkey;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 871| 871| 						var sptr = ev.hotkey.split(".");
| 872| 872| 						performGroup(sptr[2], sptr[3]);
| 873| 873| 
| 874|    |-						doublePressTimer = now;
|    | 874|+					doublePressTimer = now;
| 875| 875| 						prevHotkey = ev.hotkey;
| 876| 876| 					}
| 877| 877| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 872| 872| 						performGroup(sptr[2], sptr[3]);
| 873| 873| 
| 874| 874| 						doublePressTimer = now;
| 875|    |-						prevHotkey = ev.hotkey;
|    | 875|+					prevHotkey = ev.hotkey;
| 876| 876| 					}
| 877| 877| 				}
| 878| 878| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 873| 873| 
| 874| 874| 						doublePressTimer = now;
| 875| 875| 						prevHotkey = ev.hotkey;
| 876|    |-					}
|    | 876|+				}
| 877| 877| 				}
| 878| 878| 				break;
| 879| 879| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 874| 874| 						doublePressTimer = now;
| 875| 875| 						prevHotkey = ev.hotkey;
| 876| 876| 					}
| 877|    |-				}
|    | 877|+			}
| 878| 878| 				break;
| 879| 879| 		}
| 880| 880| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 875| 875| 						prevHotkey = ev.hotkey;
| 876| 876| 					}
| 877| 877| 				}
| 878|    |-				break;
|    | 878|+			break;
| 879| 879| 		}
| 880| 880| 		break;
| 881| 881| 
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|1596|1596| 	var selectall = Engine.HotkeyIsPressed("selection.offscreen");
|1597|1597| 
|1598|1598| 	// Reset the last idle unit, etc., if the selection type has changed.
|1599|    |-	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v,i) => v === lastIdleClasses[i]))
|    |1599|+	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v, i) => v === lastIdleClasses[i]))
|1600|1600| 		resetIdleUnit();
|1601|1601| 	lastIdleClasses = classes;
|1602|1602| 

binaries/data/mods/public/gui/session/input.js
| 238| »   var·target·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'target' to undefined.

binaries/data/mods/public/gui/session/input.js
| 252| »   var·actionInfo·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'actionInfo' to undefined.

binaries/data/mods/public/gui/session/input.js
| 484| »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 511| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 515| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 570| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 580| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 628| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 657| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 726| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 742| ·»   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 743| ·»   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 749| ·»   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 822| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 825| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 927| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1016| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1030| »   »   »   »   let·action·=·determineAction(ev.x,·ev.y);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'action' is already declared in the upper scope.

binaries/data/mods/public/gui/session/input.js
|1039| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1063| ·»   »   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1064| ·»   »   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1065| ·»   »   »   »   »   "z":·placementSupport.position.z,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1069| ·»   »   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1116| »   »   »   switch·(ev.hotkey)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1547| »   switch·(action)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 238| »   var·target·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'target' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 252| »   var·actionInfo·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'actionInfo' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 266| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 269| »   »   »   var·r·=·g_UnitActions[action].hotkeyActionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 274| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 277| »   »   »   var·r·=·g_UnitActions[action].actionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 499| »   »   &&·(ev.button·==·SDL_BUTTON_LEFT·||·ev.button·==·SDL_BUTTON_RIGHT))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/gui/session/input.js
| 529| »   »   »   »   var·rect·=·updateBandbox(bandbox,·ev,·true);
|    | [NORMAL] JSHintBear:
|    | 'rect' is already defined.

binaries/data/mods/public/gui/session/input.js
| 532| »   »   »   »   var·ents·=·getPreferredEntities(Engine.PickPlayerEntitiesInRect(rect[0],·rect[1],·rect[2],·rect[3],·g_ViewedPlayer));
|    | [NORMAL] JSHintBear:
|    | 'ents' is already defined.

binaries/data/mods/public/gui/session/input.js
| 689| »   »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 758| »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 871| »   »   »   »   »   »   var·sptr·=·ev.hotkey.split(".");
|    | [NORMAL] JSHintBear:
|    | 'sptr' is already defined.

binaries/data/mods/public/gui/session/input.js
| 887| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.

binaries/data/mods/public/gui/session/input.js
| 913| »   »   »   }
|    | [NORMAL] JSHintBear:
|    | Expected a 'break' statement before 'default'.

binaries/data/mods/public/gui/session/input.js
| 937| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 228| 228| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 229| 229| 		result.translateParameters.push("territoryType");
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 231|+		result.parameters.territoryType = { "context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233| 233| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 228| 228| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 229| 229| 		result.translateParameters.push("territoryType");
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 231|+		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory };
| 232| 232| 		// gui code will join this array to a string
| 233| 233| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231| 231| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 233|+		result.parameters.validTerritories = { "context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
| 235| 235| 	}
| 236| 236| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231| 231| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 233|+		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories() };
| 234| 234| 		return result;	// Fail
| 235| 235| 	}
| 236| 236| 

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 163| »   »   switch·(ret)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 267| »   »   »   var·cmpIdentity·=·Engine.QueryInterface(id,·IID_Identity);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'cmpIdentity' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 276| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 297| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 157| »   »   var·ret·=·cmpObstruction.CheckFoundation(passClassName,·false);
|    | [NORMAL] JSHintBear:
|    | 'ret' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 181| »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 261| »   »   var·cmpRangeManager·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_RangeManager);
|    | [NORMAL] JSHintBear:
|    | 'cmpRangeManager' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 262| »   »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 161| »   if·(ret·!=·"success"·&&·this.template.PlacementType·!=·"socket")
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 163| »   »   switch·(ret)
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.
Executing section cli...

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

Silier added inline comments.Apr 4 2020, 11:14 AM
binaries/data/mods/public/gui/session/input.js
1100

probably this removal broke edge snapping

Freagarach added inline comments.Apr 4 2020, 12:33 PM
binaries/data/mods/public/gui/session/input.js
1100

Yeah, object type is lost or something. I'll revert to the previous diff.

Freagarach updated this revision to Diff 11627.Apr 4 2020, 1:10 PM

Reverted to previous diff.

Vulcan added a comment.Apr 4 2020, 1:15 PM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 228| 228| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 229| 229| 		result.translateParameters.push("territoryType");
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 231|+		result.parameters.territoryType = { "context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233| 233| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 228| 228| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 229| 229| 		result.translateParameters.push("territoryType");
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 231|+		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory };
| 232| 232| 		// gui code will join this array to a string
| 233| 233| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231| 231| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 233|+		result.parameters.validTerritories = { "context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
| 235| 235| 	}
| 236| 236| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231| 231| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 233|+		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories() };
| 234| 234| 		return result;	// Fail
| 235| 235| 	}
| 236| 236| 

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 163| »   »   switch·(ret)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 267| »   »   »   var·cmpIdentity·=·Engine.QueryInterface(id,·IID_Identity);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'cmpIdentity' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 276| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 297| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 157| »   »   var·ret·=·cmpObstruction.CheckFoundation(passClassName,·false);
|    | [NORMAL] JSHintBear:
|    | 'ret' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 181| »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 261| »   »   var·cmpRangeManager·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_RangeManager);
|    | [NORMAL] JSHintBear:
|    | 'cmpRangeManager' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 262| »   »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 161| »   if·(ret·!=·"success"·&&·this.template.PlacementType·!=·"socket")
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 163| »   »   switch·(ret)
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
| 527| 527| 			if (cmpGarrisonHolder)
| 528| 528| 			{
| 529| 529| 				// Only the owner of the garrisonHolder may unload entities from any owners
| 530|    |-				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits
| 531|    |-				    && player != +cmd.owner)
|    | 530|+				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits &&
|    | 531|+				    player != +cmd.owner)
| 532| 532| 						continue;
| 533| 533| 
| 534| 534| 				if (!cmpGarrisonHolder.UnloadTemplate(cmd.template, cmd.owner, cmd.all))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
| 529| 529| 				// Only the owner of the garrisonHolder may unload entities from any owners
| 530| 530| 				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits
| 531| 531| 				    && player != +cmd.owner)
| 532|    |-						continue;
|    | 532|+					continue;
| 533| 533| 
| 534| 534| 				if (!cmpGarrisonHolder.UnloadTemplate(cmd.template, cmd.owner, cmd.all))
| 535| 535| 					notifyUnloadFailure(player, garrisonHolder);
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'metadata'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata": cmd.metadata, "owner" : player } );
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'owner'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner": player } );
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (space-in-parens):
|    | There should be no spaces inside this paren.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player });
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1257|1257| 		}
|1258|1258| 
|1259|1259| 		lastTowerControlGroup = cmpSnappedStartObstruction.GetControlGroup();
|1260|    |-		//warn("setting lastTowerControlGroup to control group of start snapped entity " + cmd.startSnappedEntity + ": " + lastTowerControlGroup);
|    |1260|+		// warn("setting lastTowerControlGroup to control group of start snapped entity " + cmd.startSnappedEntity + ": " + lastTowerControlGroup);
|1261|1261| 	}
|1262|1262| 
|1263|1263| 	var i = 0;
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1321|1321| 
|1322|1322| 				if (i > 0)
|1323|1323| 				{
|1324|    |-					//warn("   updating previous wall piece's secondary control group to " + newTowerControlGroup);
|    |1324|+					// warn("   updating previous wall piece's secondary control group to " + newTowerControlGroup);
|1325|1325| 					var cmpPreviousObstruction = Engine.QueryInterface(pieces[i-1].ent, IID_Obstruction);
|1326|1326| 					// TODO: ensure that cmpPreviousObstruction exists
|1327|1327| 					// TODO: ensure that the previous obstruction does not yet have a secondary control group set
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1484|1484| 		// Check that all its members are selected
|1485|1485| 		var fid = formationIds[0];
|1486|1486| 		var cmpFormation = Engine.QueryInterface(+fid, IID_Formation);
|1487|    |-		if (cmpFormation && cmpFormation.GetMemberCount() == formation.members[fid].length
|1488|    |-			&& cmpFormation.GetMemberCount() == formation.entities.length)
|    |1487|+		if (cmpFormation && cmpFormation.GetMemberCount() == formation.members[fid].length &&
|    |1488|+			cmpFormation.GetMemberCount() == formation.entities.length)
|1489|1489| 		{
|1490|1490| 			cmpFormation.DeleteTwinFormations();
|1491|1491| 			// The whole formation was selected, so reuse its controller for this command
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1592|1592| 		for (var i = matrix.length - 1; i >= 0 && !closeClusters; --i)
|1593|1593| 			for (var j = i - 1; j >= 0 && !closeClusters; --j)
|1594|1594| 				if (matrix[i][j] < distSq)
|1595|    |-					closeClusters = [i,j];
|    |1595|+					closeClusters = [i, j];
|1596|1596| 
|1597|1597| 		// if no more close clusters found, just return all found clusters so far
|1598|1598| 		if (!closeClusters)
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1614|1614| 		}
|1615|1615| 		// remove the rows and columns in the matrix for the merged clusters,
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|    |-		clusters.splice(closeClusters[0],1);
|    |1617|+		clusters.splice(closeClusters[0], 1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1615|1615| 		// remove the rows and columns in the matrix for the merged clusters,
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|    |-		clusters.splice(closeClusters[1],1);
|    |1618|+		clusters.splice(closeClusters[1], 1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|    |-		matrix.splice(closeClusters[0],1);
|    |1619|+		matrix.splice(closeClusters[0], 1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|    |-		matrix.splice(closeClusters[1],1);
|    |1620|+		matrix.splice(closeClusters[1], 1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|1624|    |-				matrix[i].splice(closeClusters[0],1);
|    |1624|+				matrix[i].splice(closeClusters[0], 1);
|1625|1625| 			if (matrix[i].length > closeClusters[1])
|1626|1626| 				matrix[i].splice(closeClusters[1],1);
|1627|1627| 		}
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|1624|1624| 				matrix[i].splice(closeClusters[0],1);
|1625|1625| 			if (matrix[i].length > closeClusters[1])
|1626|    |-				matrix[i].splice(closeClusters[1],1);
|    |1626|+				matrix[i].splice(closeClusters[1], 1);
|1627|1627| 		}
|1628|1628| 		// add a new row of distances to the matrix and the new cluster
|1629|1629| 		clusters.push(newCluster);

binaries/data/mods/public/simulation/helpers/Commands.js
|  43| »   if·(g_Commands[cmd.type])
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|  47| »   »   g_Commands[cmd.type](player,·cmd,·data);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 788| »   »   let·ent·=·pickRandom(cmpRangeManager.GetEntitiesByPlayer(cmd.player).filter(ent·=>·{
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'ent' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|1280| ····»   »   »   error("[TryConstructWall]·Expected·last·tower·control·group·to·be·available,·none·found·(1st·pass,·iteration·"·+·i·+·")");
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/simulation/helpers/Commands.js
|1281| ····»   »   »   break;
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/simulation/helpers/Commands.js
|1511| »   »   »   »   var·lastFormationTemplate·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'lastFormationTemplate' to undefined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1590| »   »   var·closeClusters·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'closeClusters' to undefined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1607| »   »   for·(let·i·=·0;·i·<·clusters.length;·++i)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|1621| »   »   for·(let·i·=·0;·i·<·matrix.length;·++i)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|  53| var·g_Commands·=·{
|    | [NORMAL] JSHintBear:
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 531| »   »   »   »   ····&&·player·!=·+cmd.owner)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/helpers/Commands.js
| 726| »   »   »   »   var·cmpGUIInterface·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_GuiInterface);
|    | [NORMAL] JSHintBear:
|    | 'cmpGUIInterface' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 947| »   »   for·(var·i·=·0;·i·<·length;·++i)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 960| »   »   var·count·=·0;
|    | [NORMAL] JSHintBear:
|    | 'count' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1107| »   »   var·cmpGuiInterface·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_GuiInterface);
|    | [NORMAL] JSHintBear:
|    | 'cmpGuiInterface' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1366| »   »   var·piece·=·pieces[j];
|    | [NORMAL] JSHintBear:
|    | 'piece' is already defined.

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

binaries/data/mods/public/simulation/helpers/Commands.js
|1488| »   »   »   &&·cmpFormation.GetMemberCount()·==·formation.entities.length)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

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

binaries/data/mods/public/simulation/helpers/Commands.js
|1547| »   »   »   var·cmpFormation·=·Engine.QueryInterface(formationEnt,·IID_Formation);
|    | [NORMAL] JSHintBear:
|    | 'cmpFormation' is already defined.
|    | [NORMAL] ESLintBear (space-unary-ops):
|    | Unary word operator 'typeof' must be followed by whitespace.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 343| 343| 	}
| 344| 344| 
| 345| 345| 	var wallPlacementInfo = updateBuildingPlacementPreview(); // entities making up the wall (wall segments, towers, ...)
| 346|    |-	if (!(wallPlacementInfo === false || typeof(wallPlacementInfo) === "object"))
|    | 346|+	if (!(wallPlacementInfo === false || typeof (wallPlacementInfo) === "object"))
| 347| 347| 	{
| 348| 348| 		error("Invalid updateBuildingPlacementPreview return value: " + uneval(wallPlacementInfo));
| 349| 349| 		return false;
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 493| 493| 	mouseIsOverObject = (hoveredObject != null);
| 494| 494| 
| 495| 495| 	// Close the menu when interacting with the game world
| 496|    |-	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown")
| 497|    |-		&& (ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
|    | 496|+	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown") &&
|    | 497|+		(ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
| 498| 498| 		g_Menu.close();
| 499| 499| 
| 500| 500| 	// State-machine processing:
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 654| 654| 		// user to continue building walls.
| 655| 655| 		switch (ev.type)
| 656| 656| 		{
| 657|    |-			case "mousemotion":
|    | 657|+		case "mousemotion":
| 658| 658| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 659| 659| 
| 660| 660| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 655| 655| 		switch (ev.type)
| 656| 656| 		{
| 657| 657| 			case "mousemotion":
| 658|    |-				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
|    | 658|+			placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 659| 659| 
| 660| 660| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 661| 661| 				// the ending point and the starting point to snap to.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 657| 657| 			case "mousemotion":
| 658| 658| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 659| 659| 
| 660|    |-				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | 660|+			// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 661| 661| 				// the ending point and the starting point to snap to.
| 662| 662| 				//
| 663| 663| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 658| 658| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 659| 659| 
| 660| 660| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 661|    |-				// the ending point and the starting point to snap to.
|    | 661|+			// the ending point and the starting point to snap to.
| 662| 662| 				//
| 663| 663| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 664| 664| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 659| 659| 
| 660| 660| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 661| 661| 				// the ending point and the starting point to snap to.
| 662|    |-				//
|    | 662|+			//
| 663| 663| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 664| 664| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 665| 665| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 660| 660| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 661| 661| 				// the ending point and the starting point to snap to.
| 662| 662| 				//
| 663|    |-				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | 663|+			// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 664| 664| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 665| 665| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 666| 666| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 661| 661| 				// the ending point and the starting point to snap to.
| 662| 662| 				//
| 663| 663| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 664|    |-				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | 664|+			// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 665| 665| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 666| 666| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 667| 667| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 662| 662| 				//
| 663| 663| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 664| 664| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 665|    |-				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | 665|+			// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 666| 666| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 667| 667| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 668| 668| 				// points.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 663| 663| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 664| 664| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 665| 665| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 666|    |-				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | 666|+			// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 667| 667| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 668| 668| 				// points.
| 669| 669| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 664| 664| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 665| 665| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 666| 666| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 667|    |-				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | 667|+			// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 668| 668| 				// points.
| 669| 669| 
| 670| 670| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 665| 665| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 666| 666| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 667| 667| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 668|    |-				// points.
|    | 668|+			// points.
| 669| 669| 
| 670| 670| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 671| 671| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 667| 667| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 668| 668| 				// points.
| 669| 669| 
| 670|    |-				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | 670|+			placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 671| 671| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 672| 672| 
| 673| 673| 				if (result && result.cost)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 668| 668| 				// points.
| 669| 669| 
| 670| 670| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 671|    |-				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | 671|+			var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 672| 672| 
| 673| 673| 				if (result && result.cost)
| 674| 674| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 670| 670| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 671| 671| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 672| 672| 
| 673|    |-				if (result && result.cost)
|    | 673|+			if (result && result.cost)
| 674| 674| 				{
| 675| 675| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 676| 676| 					placementSupport.tooltipMessage = [
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 671| 671| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 672| 672| 
| 673| 673| 				if (result && result.cost)
| 674|    |-				{
|    | 674|+			{
| 675| 675| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 676| 676| 					placementSupport.tooltipMessage = [
| 677| 677| 						getEntityCostTooltip(result),
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 672| 672| 
| 673| 673| 				if (result && result.cost)
| 674| 674| 				{
| 675|    |-					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
|    | 675|+				var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 676| 676| 					placementSupport.tooltipMessage = [
| 677| 677| 						getEntityCostTooltip(result),
| 678| 678| 						getNeededResourcesTooltip(neededResources)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 673| 673| 				if (result && result.cost)
| 674| 674| 				{
| 675| 675| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 676|    |-					placementSupport.tooltipMessage = [
|    | 676|+				placementSupport.tooltipMessage = [
| 677| 677| 						getEntityCostTooltip(result),
| 678| 678| 						getNeededResourcesTooltip(neededResources)
| 679| 679| 					].filter(tip => tip).join("\n");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 674| 674| 				{
| 675| 675| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 676| 676| 					placementSupport.tooltipMessage = [
| 677|    |-						getEntityCostTooltip(result),
|    | 677|+					getEntityCostTooltip(result),
| 678| 678| 						getNeededResourcesTooltip(neededResources)
| 679| 679| 					].filter(tip => tip).join("\n");
| 680| 680| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 675| 675| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 676| 676| 					placementSupport.tooltipMessage = [
| 677| 677| 						getEntityCostTooltip(result),
| 678|    |-						getNeededResourcesTooltip(neededResources)
|    | 678|+					getNeededResourcesTooltip(neededResources)
| 679| 679| 					].filter(tip => tip).join("\n");
| 680| 680| 				}
| 681| 681| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 676| 676| 					placementSupport.tooltipMessage = [
| 677| 677| 						getEntityCostTooltip(result),
| 678| 678| 						getNeededResourcesTooltip(neededResources)
| 679|    |-					].filter(tip => tip).join("\n");
|    | 679|+				].filter(tip => tip).join("\n");
| 680| 680| 				}
| 681| 681| 
| 682| 682| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 677| 677| 						getEntityCostTooltip(result),
| 678| 678| 						getNeededResourcesTooltip(neededResources)
| 679| 679| 					].filter(tip => tip).join("\n");
| 680|    |-				}
|    | 680|+			}
| 681| 681| 
| 682| 682| 				break;
| 683| 683| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 679| 679| 					].filter(tip => tip).join("\n");
| 680| 680| 				}
| 681| 681| 
| 682|    |-				break;
|    | 682|+			break;
| 683| 683| 
| 684| 684| 			case "mousebuttondown":
| 685| 685| 				if (ev.button == SDL_BUTTON_LEFT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 681| 681| 
| 682| 682| 				break;
| 683| 683| 
| 684|    |-			case "mousebuttondown":
|    | 684|+		case "mousebuttondown":
| 685| 685| 				if (ev.button == SDL_BUTTON_LEFT)
| 686| 686| 				{
| 687| 687| 					var queued = Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 682| 682| 				break;
| 683| 683| 
| 684| 684| 			case "mousebuttondown":
| 685|    |-				if (ev.button == SDL_BUTTON_LEFT)
|    | 685|+			if (ev.button == SDL_BUTTON_LEFT)
| 686| 686| 				{
| 687| 687| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 688| 688| 					if (tryPlaceWall(queued))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 683| 683| 
| 684| 684| 			case "mousebuttondown":
| 685| 685| 				if (ev.button == SDL_BUTTON_LEFT)
| 686|    |-				{
|    | 686|+			{
| 687| 687| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 688| 688| 					if (tryPlaceWall(queued))
| 689| 689| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 684| 684| 			case "mousebuttondown":
| 685| 685| 				if (ev.button == SDL_BUTTON_LEFT)
| 686| 686| 				{
| 687|    |-					var queued = Engine.HotkeyIsPressed("session.queue");
|    | 687|+				var queued = Engine.HotkeyIsPressed("session.queue");
| 688| 688| 					if (tryPlaceWall(queued))
| 689| 689| 					{
| 690| 690| 						if (queued)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 685| 685| 				if (ev.button == SDL_BUTTON_LEFT)
| 686| 686| 				{
| 687| 687| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 688|    |-					if (tryPlaceWall(queued))
|    | 688|+				if (tryPlaceWall(queued))
| 689| 689| 					{
| 690| 690| 						if (queued)
| 691| 691| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 686| 686| 				{
| 687| 687| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 688| 688| 					if (tryPlaceWall(queued))
| 689|    |-					{
|    | 689|+				{
| 690| 690| 						if (queued)
| 691| 691| 						{
| 692| 692| 							// continue building, just set a new starting position where we left off
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 687| 687| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 688| 688| 					if (tryPlaceWall(queued))
| 689| 689| 					{
| 690|    |-						if (queued)
|    | 690|+					if (queued)
| 691| 691| 						{
| 692| 692| 							// continue building, just set a new starting position where we left off
| 693| 693| 							placementSupport.position = placementSupport.wallEndPosition;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 688| 688| 					if (tryPlaceWall(queued))
| 689| 689| 					{
| 690| 690| 						if (queued)
| 691|    |-						{
|    | 691|+					{
| 692| 692| 							// continue building, just set a new starting position where we left off
| 693| 693| 							placementSupport.position = placementSupport.wallEndPosition;
| 694| 694| 							placementSupport.wallEndPosition = undefined;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 689| 689| 					{
| 690| 690| 						if (queued)
| 691| 691| 						{
| 692|    |-							// continue building, just set a new starting position where we left off
|    | 692|+						// continue building, just set a new starting position where we left off
| 693| 693| 							placementSupport.position = placementSupport.wallEndPosition;
| 694| 694| 							placementSupport.wallEndPosition = undefined;
| 695| 695| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 690| 690| 						if (queued)
| 691| 691| 						{
| 692| 692| 							// continue building, just set a new starting position where we left off
| 693|    |-							placementSupport.position = placementSupport.wallEndPosition;
|    | 693|+						placementSupport.position = placementSupport.wallEndPosition;
| 694| 694| 							placementSupport.wallEndPosition = undefined;
| 695| 695| 
| 696| 696| 							inputState = INPUT_BUILDING_WALL_CLICK;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 691| 691| 						{
| 692| 692| 							// continue building, just set a new starting position where we left off
| 693| 693| 							placementSupport.position = placementSupport.wallEndPosition;
| 694|    |-							placementSupport.wallEndPosition = undefined;
|    | 694|+						placementSupport.wallEndPosition = undefined;
| 695| 695| 
| 696| 696| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 697| 697| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 693| 693| 							placementSupport.position = placementSupport.wallEndPosition;
| 694| 694| 							placementSupport.wallEndPosition = undefined;
| 695| 695| 
| 696|    |-							inputState = INPUT_BUILDING_WALL_CLICK;
|    | 696|+						inputState = INPUT_BUILDING_WALL_CLICK;
| 697| 697| 						}
| 698| 698| 						else
| 699| 699| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 694| 694| 							placementSupport.wallEndPosition = undefined;
| 695| 695| 
| 696| 696| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 697|    |-						}
|    | 697|+					}
| 698| 698| 						else
| 699| 699| 						{
| 700| 700| 							placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 695| 695| 
| 696| 696| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 697| 697| 						}
| 698|    |-						else
|    | 698|+					else
| 699| 699| 						{
| 700| 700| 							placementSupport.Reset();
| 701| 701| 							inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 696| 696| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 697| 697| 						}
| 698| 698| 						else
| 699|    |-						{
|    | 699|+					{
| 700| 700| 							placementSupport.Reset();
| 701| 701| 							inputState = INPUT_NORMAL;
| 702| 702| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 697| 697| 						}
| 698| 698| 						else
| 699| 699| 						{
| 700|    |-							placementSupport.Reset();
|    | 700|+						placementSupport.Reset();
| 701| 701| 							inputState = INPUT_NORMAL;
| 702| 702| 						}
| 703| 703| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 698| 698| 						else
| 699| 699| 						{
| 700| 700| 							placementSupport.Reset();
| 701|    |-							inputState = INPUT_NORMAL;
|    | 701|+						inputState = INPUT_NORMAL;
| 702| 702| 						}
| 703| 703| 					}
| 704| 704| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 699| 699| 						{
| 700| 700| 							placementSupport.Reset();
| 701| 701| 							inputState = INPUT_NORMAL;
| 702|    |-						}
|    | 702|+					}
| 703| 703| 					}
| 704| 704| 					else
| 705| 705| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 700| 700| 							placementSupport.Reset();
| 701| 701| 							inputState = INPUT_NORMAL;
| 702| 702| 						}
| 703|    |-					}
|    | 703|+				}
| 704| 704| 					else
| 705| 705| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 706| 706| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 701| 701| 							inputState = INPUT_NORMAL;
| 702| 702| 						}
| 703| 703| 					}
| 704|    |-					else
|    | 704|+				else
| 705| 705| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 706| 706| 
| 707| 707| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 702| 702| 						}
| 703| 703| 					}
| 704| 704| 					else
| 705|    |-						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | 705|+					placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 706| 706| 
| 707| 707| 					updateBuildingPlacementPreview();
| 708| 708| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 704| 704| 					else
| 705| 705| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 706| 706| 
| 707|    |-					updateBuildingPlacementPreview();
|    | 707|+				updateBuildingPlacementPreview();
| 708| 708| 					return true;
| 709| 709| 				}
| 710| 710| 				else if (ev.button == SDL_BUTTON_RIGHT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 705| 705| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 706| 706| 
| 707| 707| 					updateBuildingPlacementPreview();
| 708|    |-					return true;
|    | 708|+				return true;
| 709| 709| 				}
| 710| 710| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 711| 711| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 706| 706| 
| 707| 707| 					updateBuildingPlacementPreview();
| 708| 708| 					return true;
| 709|    |-				}
|    | 709|+			}
| 710| 710| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 711| 711| 				{
| 712| 712| 					// reset to normal input mode
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 707| 707| 					updateBuildingPlacementPreview();
| 708| 708| 					return true;
| 709| 709| 				}
| 710|    |-				else if (ev.button == SDL_BUTTON_RIGHT)
|    | 710|+			else if (ev.button == SDL_BUTTON_RIGHT)
| 711| 711| 				{
| 712| 712| 					// reset to normal input mode
| 713| 713| 					placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 708| 708| 					return true;
| 709| 709| 				}
| 710| 710| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 711|    |-				{
|    | 711|+			{
| 712| 712| 					// reset to normal input mode
| 713| 713| 					placementSupport.Reset();
| 714| 714| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 709| 709| 				}
| 710| 710| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 711| 711| 				{
| 712|    |-					// reset to normal input mode
|    | 712|+				// reset to normal input mode
| 713| 713| 					placementSupport.Reset();
| 714| 714| 					updateBuildingPlacementPreview();
| 715| 715| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 710| 710| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 711| 711| 				{
| 712| 712| 					// reset to normal input mode
| 713|    |-					placementSupport.Reset();
|    | 713|+				placementSupport.Reset();
| 714| 714| 					updateBuildingPlacementPreview();
| 715| 715| 
| 716| 716| 					inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 711| 711| 				{
| 712| 712| 					// reset to normal input mode
| 713| 713| 					placementSupport.Reset();
| 714|    |-					updateBuildingPlacementPreview();
|    | 714|+				updateBuildingPlacementPreview();
| 715| 715| 
| 716| 716| 					inputState = INPUT_NORMAL;
| 717| 717| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 713| 713| 					placementSupport.Reset();
| 714| 714| 					updateBuildingPlacementPreview();
| 715| 715| 
| 716|    |-					inputState = INPUT_NORMAL;
|    | 716|+				inputState = INPUT_NORMAL;
| 717| 717| 					return true;
| 718| 718| 				}
| 719| 719| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 714| 714| 					updateBuildingPlacementPreview();
| 715| 715| 
| 716| 716| 					inputState = INPUT_NORMAL;
| 717|    |-					return true;
|    | 717|+				return true;
| 718| 718| 				}
| 719| 719| 				break;
| 720| 720| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 715| 715| 
| 716| 716| 					inputState = INPUT_NORMAL;
| 717| 717| 					return true;
| 718|    |-				}
|    | 718|+			}
| 719| 719| 				break;
| 720| 720| 		}
| 721| 721| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 716| 716| 					inputState = INPUT_NORMAL;
| 717| 717| 					return true;
| 718| 718| 				}
| 719|    |-				break;
|    | 719|+			break;
| 720| 720| 		}
| 721| 721| 		break;
| 722| 722| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 858| 858| 			break;
| 859| 859| 
| 860| 860| 		case "hotkeydown":
| 861|    |-				if (ev.hotkey.indexOf("selection.group.") == 0)
|    | 861|+			if (ev.hotkey.indexOf("selection.group.") == 0)
| 862| 862| 				{
| 863| 863| 					let now = Date.now();
| 864| 864| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 859| 859| 
| 860| 860| 		case "hotkeydown":
| 861| 861| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 862|    |-				{
|    | 862|+			{
| 863| 863| 					let now = Date.now();
| 864| 864| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 865| 865| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 860| 860| 		case "hotkeydown":
| 861| 861| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 862| 862| 				{
| 863|    |-					let now = Date.now();
|    | 863|+				let now = Date.now();
| 864| 864| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 865| 865| 					{
| 866| 866| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 861| 861| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 862| 862| 				{
| 863| 863| 					let now = Date.now();
| 864|    |-					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | 864|+				if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 865| 865| 					{
| 866| 866| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 867| 867| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 862| 862| 				{
| 863| 863| 					let now = Date.now();
| 864| 864| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 865|    |-					{
|    | 865|+				{
| 866| 866| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 867| 867| 						{
| 868| 868| 							var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 863| 863| 					let now = Date.now();
| 864| 864| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 865| 865| 					{
| 866|    |-						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | 866|+					if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 867| 867| 						{
| 868| 868| 							var sptr = ev.hotkey.split(".");
| 869| 869| 							performGroup("snap", sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 864| 864| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 865| 865| 					{
| 866| 866| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 867|    |-						{
|    | 867|+					{
| 868| 868| 							var sptr = ev.hotkey.split(".");
| 869| 869| 							performGroup("snap", sptr[3]);
| 870| 870| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 865| 865| 					{
| 866| 866| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 867| 867| 						{
| 868|    |-							var sptr = ev.hotkey.split(".");
|    | 868|+						var sptr = ev.hotkey.split(".");
| 869| 869| 							performGroup("snap", sptr[3]);
| 870| 870| 						}
| 871| 871| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 866| 866| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 867| 867| 						{
| 868| 868| 							var sptr = ev.hotkey.split(".");
| 869|    |-							performGroup("snap", sptr[3]);
|    | 869|+						performGroup("snap", sptr[3]);
| 870| 870| 						}
| 871| 871| 					}
| 872| 872| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 867| 867| 						{
| 868| 868| 							var sptr = ev.hotkey.split(".");
| 869| 869| 							performGroup("snap", sptr[3]);
| 870|    |-						}
|    | 870|+					}
| 871| 871| 					}
| 872| 872| 					else
| 873| 873| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 868| 868| 							var sptr = ev.hotkey.split(".");
| 869| 869| 							performGroup("snap", sptr[3]);
| 870| 870| 						}
| 871|    |-					}
|    | 871|+				}
| 872| 872| 					else
| 873| 873| 					{
| 874| 874| 						var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 869| 869| 							performGroup("snap", sptr[3]);
| 870| 870| 						}
| 871| 871| 					}
| 872|    |-					else
|    | 872|+				else
| 873| 873| 					{
| 874| 874| 						var sptr = ev.hotkey.split(".");
| 875| 875| 						performGroup(sptr[2], sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 870| 870| 						}
| 871| 871| 					}
| 872| 872| 					else
| 873|    |-					{
|    | 873|+				{
| 874| 874| 						var sptr = ev.hotkey.split(".");
| 875| 875| 						performGroup(sptr[2], sptr[3]);
| 876| 876| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 871| 871| 					}
| 872| 872| 					else
| 873| 873| 					{
| 874|    |-						var sptr = ev.hotkey.split(".");
|    | 874|+					var sptr = ev.hotkey.split(".");
| 875| 875| 						performGroup(sptr[2], sptr[3]);
| 876| 876| 
| 877| 877| 						doublePressTimer = now;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 872| 872| 					else
| 873| 873| 					{
| 874| 874| 						var sptr = ev.hotkey.split(".");
| 875|    |-						performGroup(sptr[2], sptr[3]);
|    | 875|+					performGroup(sptr[2], sptr[3]);
| 876| 876| 
| 877| 877| 						doublePressTimer = now;
| 878| 878| 						prevHotkey = ev.hotkey;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 874| 874| 						var sptr = ev.hotkey.split(".");
| 875| 875| 						performGroup(sptr[2], sptr[3]);
| 876| 876| 
| 877|    |-						doublePressTimer = now;
|    | 877|+					doublePressTimer = now;
| 878| 878| 						prevHotkey = ev.hotkey;
| 879| 879| 					}
| 880| 880| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 875| 875| 						performGroup(sptr[2], sptr[3]);
| 876| 876| 
| 877| 877| 						doublePressTimer = now;
| 878|    |-						prevHotkey = ev.hotkey;
|    | 878|+					prevHotkey = ev.hotkey;
| 879| 879| 					}
| 880| 880| 				}
| 881| 881| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 876| 876| 
| 877| 877| 						doublePressTimer = now;
| 878| 878| 						prevHotkey = ev.hotkey;
| 879|    |-					}
|    | 879|+				}
| 880| 880| 				}
| 881| 881| 				break;
| 882| 882| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 877| 877| 						doublePressTimer = now;
| 878| 878| 						prevHotkey = ev.hotkey;
| 879| 879| 					}
| 880|    |-				}
|    | 880|+			}
| 881| 881| 				break;
| 882| 882| 		}
| 883| 883| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 878| 878| 						prevHotkey = ev.hotkey;
| 879| 879| 					}
| 880| 880| 				}
| 881|    |-				break;
|    | 881|+			break;
| 882| 882| 		}
| 883| 883| 		break;
| 884| 884| 
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|1609|1609| 	var selectall = Engine.HotkeyIsPressed("selection.offscreen");
|1610|1610| 
|1611|1611| 	// Reset the last idle unit, etc., if the selection type has changed.
|1612|    |-	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v,i) => v === lastIdleClasses[i]))
|    |1612|+	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v, i) => v === lastIdleClasses[i]))
|1613|1613| 		resetIdleUnit();
|1614|1614| 	lastIdleClasses = classes;
|1615|1615| 

binaries/data/mods/public/gui/session/input.js
| 236| »   var·target·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'target' to undefined.

binaries/data/mods/public/gui/session/input.js
| 250| »   var·actionInfo·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'actionInfo' to undefined.

binaries/data/mods/public/gui/session/input.js
| 482| »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 509| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 513| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 568| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 578| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 626| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 655| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 724| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 740| ·»   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 741| ·»   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 746| ·»   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 825| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 828| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 930| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1019| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1033| »   »   »   »   let·action·=·determineAction(ev.x,·ev.y);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'action' is already declared in the upper scope.

binaries/data/mods/public/gui/session/input.js
|1042| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1066| ·»   »   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1067| ·»   »   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1068| ·»   »   »   »   »   "z":·placementSupport.position.z,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1071| ·»   »   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1129| »   »   »   switch·(ev.hotkey)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1560| »   switch·(action)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 236| »   var·target·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'target' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 250| »   var·actionInfo·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'actionInfo' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 264| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 267| »   »   »   var·r·=·g_UnitActions[action].hotkeyActionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 272| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 275| »   »   »   var·r·=·g_UnitActions[action].actionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 497| »   »   &&·(ev.button·==·SDL_BUTTON_LEFT·||·ev.button·==·SDL_BUTTON_RIGHT))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/gui/session/input.js
| 527| »   »   »   »   var·rect·=·updateBandbox(bandbox,·ev,·true);
|    | [NORMAL] JSHintBear:
|    | 'rect' is already defined.

binaries/data/mods/public/gui/session/input.js
| 530| »   »   »   »   var·ents·=·getPreferredEntities(Engine.PickPlayerEntitiesInRect(rect[0],·rect[1],·rect[2],·rect[3],·g_ViewedPlayer));
|    | [NORMAL] JSHintBear:
|    | 'ents' is already defined.

binaries/data/mods/public/gui/session/input.js
| 687| »   »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 761| »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 874| »   »   »   »   »   »   var·sptr·=·ev.hotkey.split(".");
|    | [NORMAL] JSHintBear:
|    | 'sptr' is already defined.

binaries/data/mods/public/gui/session/input.js
| 890| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.

binaries/data/mods/public/gui/session/input.js
| 916| »   »   »   }
|    | [NORMAL] JSHintBear:
|    | Expected a 'break' statement before 'default'.

binaries/data/mods/public/gui/session/input.js
| 940| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 826| 826| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 827| 827| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 828| 828| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 829|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 829|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 830| 830| 	}
| 831| 831| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 832| 832| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1106|1106| 			result.x = snapData.x;
|1107|1107| 			result.z = snapData.z;
|1108|1108| 			if (snapData.ent)
|1109|    |-				result.snappedEnt = snapData.ent
|    |1109|+				result.snappedEnt = snapData.ent;
|1110|1110| 		}
|1111|1111| 
|1112|1112| 		let cmpRangeOverlayManager = Engine.QueryInterface(ent, IID_RangeOverlayManager);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1696|1696| 			{
|1697|1697| 				minDist2 = dist2;
|1698|1698| 				minDistEntitySnapData = {
|1699|    |-						"x": pos.x,
|    |1699|+					"x": pos.x,
|1700|1700| 						"z": pos.z,
|1701|1701| 						"angle": cmpPosition.GetRotation().y,
|1702|1702| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1697|1697| 				minDist2 = dist2;
|1698|1698| 				minDistEntitySnapData = {
|1699|1699| 						"x": pos.x,
|1700|    |-						"z": pos.z,
|    |1700|+					"z": pos.z,
|1701|1701| 						"angle": cmpPosition.GetRotation().y,
|1702|1702| 						"ent": ent
|1703|1703| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1698|1698| 				minDistEntitySnapData = {
|1699|1699| 						"x": pos.x,
|1700|1700| 						"z": pos.z,
|1701|    |-						"angle": cmpPosition.GetRotation().y,
|    |1701|+					"angle": cmpPosition.GetRotation().y,
|1702|1702| 						"ent": ent
|1703|1703| 				};
|1704|1704| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1699|1699| 						"x": pos.x,
|1700|1700| 						"z": pos.z,
|1701|1701| 						"angle": cmpPosition.GetRotation().y,
|1702|    |-						"ent": ent
|    |1702|+					"ent": ent
|1703|1703| 				};
|1704|1704| 			}
|1705|1705| 		}

binaries/data/mods/public/simulation/components/GuiInterface.js
|1109| »   »   »   »   result.snappedEnt·=·snapData.ent
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
Executing section cli...

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

Freagarach updated this revision to Diff 11628.Apr 4 2020, 1:31 PM

Use SetSnapData-function from D1190.

Vulcan added a comment.Apr 4 2020, 1:37 PM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 228| 228| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 229| 229| 		result.translateParameters.push("territoryType");
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 231|+		result.parameters.territoryType = { "context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233| 233| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 228| 228| 		result.message = markForTranslation("%(name)s cannot be built in %(territoryType)s territory. Valid territories: %(validTerritories)s");
| 229| 229| 		result.translateParameters.push("territoryType");
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231|    |-		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
|    | 231|+		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory };
| 232| 232| 		// gui code will join this array to a string
| 233| 233| 		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required after '{'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231| 231| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 233|+		result.parameters.validTerritories = { "context": "Territory type list", "list": this.GetTerritories()};
| 234| 234| 		return result;	// Fail
| 235| 235| 	}
| 236| 236| 
|    | [NORMAL] ESLintBear (object-curly-spacing):
|    | A space is required before '}'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 230| 230| 		result.translateParameters.push("validTerritories");
| 231| 231| 		result.parameters.territoryType = {"context": "Territory type", "message": invalidTerritory};
| 232| 232| 		// gui code will join this array to a string
| 233|    |-		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories()};
|    | 233|+		result.parameters.validTerritories = {"context": "Territory type list", "list": this.GetTerritories() };
| 234| 234| 		return result;	// Fail
| 235| 235| 	}
| 236| 236| 

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 163| »   »   switch·(ret)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 267| »   »   »   var·cmpIdentity·=·Engine.QueryInterface(id,·IID_Identity);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'cmpIdentity' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 276| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 297| »   »   »   »   let·result·=·markForPluralTranslation(
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'result' is already declared in the upper scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 157| »   »   var·ret·=·cmpObstruction.CheckFoundation(passClassName,·false);
|    | [NORMAL] JSHintBear:
|    | 'ret' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 181| »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 261| »   »   var·cmpRangeManager·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_RangeManager);
|    | [NORMAL] JSHintBear:
|    | 'cmpRangeManager' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 262| »   »   var·cmpPlayer·=·QueryOwnerInterface(this.entity,·IID_Player);
|    | [NORMAL] JSHintBear:
|    | 'cmpPlayer' is already defined.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 161| »   if·(ret·!=·"success"·&&·this.template.PlacementType·!=·"socket")
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.

binaries/data/mods/public/simulation/components/BuildRestrictions.js
| 163| »   »   switch·(ret)
|    | [NORMAL] JSHintBear:
|    | 'ret' used out of scope.
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '||' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/globalscripts/Templates.js
|  87|  87| 		// If the elements are still strings, split them by space or by '+'
|  88|  88| 		if (typeof sublist == "string")
|  89|  89| 			sublist = sublist.split(/[+\s]+/);
|  90|    |-		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1)
|  91|    |-		                    || (c[0] != "!" && classes.indexOf(c) != -1)))
|    |  90|+		if (sublist.every(c => (c[0] == "!" && classes.indexOf(c.substr(1)) == -1) ||
|    |  91|+		                    (c[0] != "!" && classes.indexOf(c) != -1)))
|  92|  92| 			return true;
|  93|  93| 	}
|  94|  94| 

binaries/data/mods/public/globalscripts/Templates.js
|  91| »   »   ····················||·(c[0]·!=·"!"·&&·classes.indexOf(c)·!=·-1)))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '||'; readers may interpret this as an expression boundary.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
| 826| 826| 		updateEntityColor(data.showAllStatusBars && (i == player || player == -1) ?
| 827| 827| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer, IID_StatusBars] :
| 828| 828| 			[IID_Minimap, IID_RangeOverlayRenderer, IID_RallyPointRenderer],
| 829|    |-			cmpRangeManager.GetEntitiesByPlayer(i));
|    | 829|+		cmpRangeManager.GetEntitiesByPlayer(i));
| 830| 830| 	}
| 831| 831| 	updateEntityColor([IID_Selectable, IID_StatusBars], data.selected);
| 832| 832| 	Engine.QueryInterface(SYSTEM_ENTITY, IID_TerritoryManager).UpdateColors();
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1098|1098| 			result.x = snapData.x;
|1099|1099| 			result.z = snapData.z;
|1100|1100| 			if (snapData.ent)
|1101|    |-				result.snappedEnt = snapData.ent
|    |1101|+				result.snappedEnt = snapData.ent;
|1102|1102| 		}
|1103|1103| 
|1104|1104| 		let cmpRangeOverlayManager = Engine.QueryInterface(ent, IID_RangeOverlayManager);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1672|1672| 			{
|1673|1673| 				minDist2 = dist2;
|1674|1674| 				minDistEntitySnapData = {
|1675|    |-						"x": pos.x,
|    |1675|+					"x": pos.x,
|1676|1676| 						"z": pos.z,
|1677|1677| 						"angle": cmpPosition.GetRotation().y,
|1678|1678| 						"ent": ent
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1673|1673| 				minDist2 = dist2;
|1674|1674| 				minDistEntitySnapData = {
|1675|1675| 						"x": pos.x,
|1676|    |-						"z": pos.z,
|    |1676|+					"z": pos.z,
|1677|1677| 						"angle": cmpPosition.GetRotation().y,
|1678|1678| 						"ent": ent
|1679|1679| 				};
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1674|1674| 				minDistEntitySnapData = {
|1675|1675| 						"x": pos.x,
|1676|1676| 						"z": pos.z,
|1677|    |-						"angle": cmpPosition.GetRotation().y,
|    |1677|+					"angle": cmpPosition.GetRotation().y,
|1678|1678| 						"ent": ent
|1679|1679| 				};
|1680|1680| 			}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/components/GuiInterface.js
|1675|1675| 						"x": pos.x,
|1676|1676| 						"z": pos.z,
|1677|1677| 						"angle": cmpPosition.GetRotation().y,
|1678|    |-						"ent": ent
|    |1678|+					"ent": ent
|1679|1679| 				};
|1680|1680| 			}
|1681|1681| 		}

binaries/data/mods/public/simulation/components/GuiInterface.js
|1101| »   »   »   »   result.snappedEnt·=·snapData.ent
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (space-unary-ops):
|    | Unary word operator 'typeof' must be followed by whitespace.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 342| 342| 	}
| 343| 343| 
| 344| 344| 	var wallPlacementInfo = updateBuildingPlacementPreview(); // entities making up the wall (wall segments, towers, ...)
| 345|    |-	if (!(wallPlacementInfo === false || typeof(wallPlacementInfo) === "object"))
|    | 345|+	if (!(wallPlacementInfo === false || typeof (wallPlacementInfo) === "object"))
| 346| 346| 	{
| 347| 347| 		error("Invalid updateBuildingPlacementPreview return value: " + uneval(wallPlacementInfo));
| 348| 348| 		return false;
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 492| 492| 	mouseIsOverObject = (hoveredObject != null);
| 493| 493| 
| 494| 494| 	// Close the menu when interacting with the game world
| 495|    |-	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown")
| 496|    |-		&& (ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
|    | 495|+	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown") &&
|    | 496|+		(ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
| 497| 497| 		g_Menu.close();
| 498| 498| 
| 499| 499| 	// State-machine processing:
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 653| 653| 		// user to continue building walls.
| 654| 654| 		switch (ev.type)
| 655| 655| 		{
| 656|    |-			case "mousemotion":
|    | 656|+		case "mousemotion":
| 657| 657| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 658| 658| 
| 659| 659| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 654| 654| 		switch (ev.type)
| 655| 655| 		{
| 656| 656| 			case "mousemotion":
| 657|    |-				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
|    | 657|+			placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 658| 658| 
| 659| 659| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 660| 660| 				// the ending point and the starting point to snap to.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 656| 656| 			case "mousemotion":
| 657| 657| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 658| 658| 
| 659|    |-				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | 659|+			// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 660| 660| 				// the ending point and the starting point to snap to.
| 661| 661| 				//
| 662| 662| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 657| 657| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 658| 658| 
| 659| 659| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 660|    |-				// the ending point and the starting point to snap to.
|    | 660|+			// the ending point and the starting point to snap to.
| 661| 661| 				//
| 662| 662| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 663| 663| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 658| 658| 
| 659| 659| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 660| 660| 				// the ending point and the starting point to snap to.
| 661|    |-				//
|    | 661|+			//
| 662| 662| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 663| 663| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 664| 664| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 659| 659| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 660| 660| 				// the ending point and the starting point to snap to.
| 661| 661| 				//
| 662|    |-				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | 662|+			// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 663| 663| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 664| 664| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 665| 665| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 660| 660| 				// the ending point and the starting point to snap to.
| 661| 661| 				//
| 662| 662| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 663|    |-				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | 663|+			// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 664| 664| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 665| 665| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 666| 666| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 661| 661| 				//
| 662| 662| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 663| 663| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 664|    |-				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | 664|+			// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 665| 665| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 666| 666| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 667| 667| 				// points.
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 662| 662| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 663| 663| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 664| 664| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 665|    |-				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | 665|+			// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 666| 666| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 667| 667| 				// points.
| 668| 668| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 663| 663| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 664| 664| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 665| 665| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 666|    |-				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | 666|+			// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 667| 667| 				// points.
| 668| 668| 
| 669| 669| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 664| 664| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 665| 665| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 666| 666| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 667|    |-				// points.
|    | 667|+			// points.
| 668| 668| 
| 669| 669| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 670| 670| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 666| 666| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 667| 667| 				// points.
| 668| 668| 
| 669|    |-				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | 669|+			placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 670| 670| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 671| 671| 
| 672| 672| 				if (result && result.cost)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 667| 667| 				// points.
| 668| 668| 
| 669| 669| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 670|    |-				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | 670|+			var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 671| 671| 
| 672| 672| 				if (result && result.cost)
| 673| 673| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 669| 669| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 670| 670| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 671| 671| 
| 672|    |-				if (result && result.cost)
|    | 672|+			if (result && result.cost)
| 673| 673| 				{
| 674| 674| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 675| 675| 					placementSupport.tooltipMessage = [
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 670| 670| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 671| 671| 
| 672| 672| 				if (result && result.cost)
| 673|    |-				{
|    | 673|+			{
| 674| 674| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 675| 675| 					placementSupport.tooltipMessage = [
| 676| 676| 						getEntityCostTooltip(result),
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 671| 671| 
| 672| 672| 				if (result && result.cost)
| 673| 673| 				{
| 674|    |-					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
|    | 674|+				var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 675| 675| 					placementSupport.tooltipMessage = [
| 676| 676| 						getEntityCostTooltip(result),
| 677| 677| 						getNeededResourcesTooltip(neededResources)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 672| 672| 				if (result && result.cost)
| 673| 673| 				{
| 674| 674| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 675|    |-					placementSupport.tooltipMessage = [
|    | 675|+				placementSupport.tooltipMessage = [
| 676| 676| 						getEntityCostTooltip(result),
| 677| 677| 						getNeededResourcesTooltip(neededResources)
| 678| 678| 					].filter(tip => tip).join("\n");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 673| 673| 				{
| 674| 674| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 675| 675| 					placementSupport.tooltipMessage = [
| 676|    |-						getEntityCostTooltip(result),
|    | 676|+					getEntityCostTooltip(result),
| 677| 677| 						getNeededResourcesTooltip(neededResources)
| 678| 678| 					].filter(tip => tip).join("\n");
| 679| 679| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 674| 674| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 675| 675| 					placementSupport.tooltipMessage = [
| 676| 676| 						getEntityCostTooltip(result),
| 677|    |-						getNeededResourcesTooltip(neededResources)
|    | 677|+					getNeededResourcesTooltip(neededResources)
| 678| 678| 					].filter(tip => tip).join("\n");
| 679| 679| 				}
| 680| 680| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 675| 675| 					placementSupport.tooltipMessage = [
| 676| 676| 						getEntityCostTooltip(result),
| 677| 677| 						getNeededResourcesTooltip(neededResources)
| 678|    |-					].filter(tip => tip).join("\n");
|    | 678|+				].filter(tip => tip).join("\n");
| 679| 679| 				}
| 680| 680| 
| 681| 681| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 676| 676| 						getEntityCostTooltip(result),
| 677| 677| 						getNeededResourcesTooltip(neededResources)
| 678| 678| 					].filter(tip => tip).join("\n");
| 679|    |-				}
|    | 679|+			}
| 680| 680| 
| 681| 681| 				break;
| 682| 682| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 678| 678| 					].filter(tip => tip).join("\n");
| 679| 679| 				}
| 680| 680| 
| 681|    |-				break;
|    | 681|+			break;
| 682| 682| 
| 683| 683| 			case "mousebuttondown":
| 684| 684| 				if (ev.button == SDL_BUTTON_LEFT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 2 tabs but found 3.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 680| 680| 
| 681| 681| 				break;
| 682| 682| 
| 683|    |-			case "mousebuttondown":
|    | 683|+		case "mousebuttondown":
| 684| 684| 				if (ev.button == SDL_BUTTON_LEFT)
| 685| 685| 				{
| 686| 686| 					var queued = Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 681| 681| 				break;
| 682| 682| 
| 683| 683| 			case "mousebuttondown":
| 684|    |-				if (ev.button == SDL_BUTTON_LEFT)
|    | 684|+			if (ev.button == SDL_BUTTON_LEFT)
| 685| 685| 				{
| 686| 686| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 687| 687| 					if (tryPlaceWall(queued))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 682| 682| 
| 683| 683| 			case "mousebuttondown":
| 684| 684| 				if (ev.button == SDL_BUTTON_LEFT)
| 685|    |-				{
|    | 685|+			{
| 686| 686| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 687| 687| 					if (tryPlaceWall(queued))
| 688| 688| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 683| 683| 			case "mousebuttondown":
| 684| 684| 				if (ev.button == SDL_BUTTON_LEFT)
| 685| 685| 				{
| 686|    |-					var queued = Engine.HotkeyIsPressed("session.queue");
|    | 686|+				var queued = Engine.HotkeyIsPressed("session.queue");
| 687| 687| 					if (tryPlaceWall(queued))
| 688| 688| 					{
| 689| 689| 						if (queued)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 684| 684| 				if (ev.button == SDL_BUTTON_LEFT)
| 685| 685| 				{
| 686| 686| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 687|    |-					if (tryPlaceWall(queued))
|    | 687|+				if (tryPlaceWall(queued))
| 688| 688| 					{
| 689| 689| 						if (queued)
| 690| 690| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 685| 685| 				{
| 686| 686| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 687| 687| 					if (tryPlaceWall(queued))
| 688|    |-					{
|    | 688|+				{
| 689| 689| 						if (queued)
| 690| 690| 						{
| 691| 691| 							// continue building, just set a new starting position where we left off
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 686| 686| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 687| 687| 					if (tryPlaceWall(queued))
| 688| 688| 					{
| 689|    |-						if (queued)
|    | 689|+					if (queued)
| 690| 690| 						{
| 691| 691| 							// continue building, just set a new starting position where we left off
| 692| 692| 							placementSupport.position = placementSupport.wallEndPosition;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 687| 687| 					if (tryPlaceWall(queued))
| 688| 688| 					{
| 689| 689| 						if (queued)
| 690|    |-						{
|    | 690|+					{
| 691| 691| 							// continue building, just set a new starting position where we left off
| 692| 692| 							placementSupport.position = placementSupport.wallEndPosition;
| 693| 693| 							placementSupport.wallEndPosition = undefined;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 688| 688| 					{
| 689| 689| 						if (queued)
| 690| 690| 						{
| 691|    |-							// continue building, just set a new starting position where we left off
|    | 691|+						// continue building, just set a new starting position where we left off
| 692| 692| 							placementSupport.position = placementSupport.wallEndPosition;
| 693| 693| 							placementSupport.wallEndPosition = undefined;
| 694| 694| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 689| 689| 						if (queued)
| 690| 690| 						{
| 691| 691| 							// continue building, just set a new starting position where we left off
| 692|    |-							placementSupport.position = placementSupport.wallEndPosition;
|    | 692|+						placementSupport.position = placementSupport.wallEndPosition;
| 693| 693| 							placementSupport.wallEndPosition = undefined;
| 694| 694| 
| 695| 695| 							inputState = INPUT_BUILDING_WALL_CLICK;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 690| 690| 						{
| 691| 691| 							// continue building, just set a new starting position where we left off
| 692| 692| 							placementSupport.position = placementSupport.wallEndPosition;
| 693|    |-							placementSupport.wallEndPosition = undefined;
|    | 693|+						placementSupport.wallEndPosition = undefined;
| 694| 694| 
| 695| 695| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 696| 696| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 692| 692| 							placementSupport.position = placementSupport.wallEndPosition;
| 693| 693| 							placementSupport.wallEndPosition = undefined;
| 694| 694| 
| 695|    |-							inputState = INPUT_BUILDING_WALL_CLICK;
|    | 695|+						inputState = INPUT_BUILDING_WALL_CLICK;
| 696| 696| 						}
| 697| 697| 						else
| 698| 698| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 693| 693| 							placementSupport.wallEndPosition = undefined;
| 694| 694| 
| 695| 695| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 696|    |-						}
|    | 696|+					}
| 697| 697| 						else
| 698| 698| 						{
| 699| 699| 							placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 694| 694| 
| 695| 695| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 696| 696| 						}
| 697|    |-						else
|    | 697|+					else
| 698| 698| 						{
| 699| 699| 							placementSupport.Reset();
| 700| 700| 							inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 695| 695| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 696| 696| 						}
| 697| 697| 						else
| 698|    |-						{
|    | 698|+					{
| 699| 699| 							placementSupport.Reset();
| 700| 700| 							inputState = INPUT_NORMAL;
| 701| 701| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 696| 696| 						}
| 697| 697| 						else
| 698| 698| 						{
| 699|    |-							placementSupport.Reset();
|    | 699|+						placementSupport.Reset();
| 700| 700| 							inputState = INPUT_NORMAL;
| 701| 701| 						}
| 702| 702| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 697| 697| 						else
| 698| 698| 						{
| 699| 699| 							placementSupport.Reset();
| 700|    |-							inputState = INPUT_NORMAL;
|    | 700|+						inputState = INPUT_NORMAL;
| 701| 701| 						}
| 702| 702| 					}
| 703| 703| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 698| 698| 						{
| 699| 699| 							placementSupport.Reset();
| 700| 700| 							inputState = INPUT_NORMAL;
| 701|    |-						}
|    | 701|+					}
| 702| 702| 					}
| 703| 703| 					else
| 704| 704| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 699| 699| 							placementSupport.Reset();
| 700| 700| 							inputState = INPUT_NORMAL;
| 701| 701| 						}
| 702|    |-					}
|    | 702|+				}
| 703| 703| 					else
| 704| 704| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 705| 705| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 700| 700| 							inputState = INPUT_NORMAL;
| 701| 701| 						}
| 702| 702| 					}
| 703|    |-					else
|    | 703|+				else
| 704| 704| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 705| 705| 
| 706| 706| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 701| 701| 						}
| 702| 702| 					}
| 703| 703| 					else
| 704|    |-						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | 704|+					placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 705| 705| 
| 706| 706| 					updateBuildingPlacementPreview();
| 707| 707| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 703| 703| 					else
| 704| 704| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 705| 705| 
| 706|    |-					updateBuildingPlacementPreview();
|    | 706|+				updateBuildingPlacementPreview();
| 707| 707| 					return true;
| 708| 708| 				}
| 709| 709| 				else if (ev.button == SDL_BUTTON_RIGHT)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 704| 704| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 705| 705| 
| 706| 706| 					updateBuildingPlacementPreview();
| 707|    |-					return true;
|    | 707|+				return true;
| 708| 708| 				}
| 709| 709| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 710| 710| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 705| 705| 
| 706| 706| 					updateBuildingPlacementPreview();
| 707| 707| 					return true;
| 708|    |-				}
|    | 708|+			}
| 709| 709| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 710| 710| 				{
| 711| 711| 					// reset to normal input mode
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 706| 706| 					updateBuildingPlacementPreview();
| 707| 707| 					return true;
| 708| 708| 				}
| 709|    |-				else if (ev.button == SDL_BUTTON_RIGHT)
|    | 709|+			else if (ev.button == SDL_BUTTON_RIGHT)
| 710| 710| 				{
| 711| 711| 					// reset to normal input mode
| 712| 712| 					placementSupport.Reset();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 707| 707| 					return true;
| 708| 708| 				}
| 709| 709| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 710|    |-				{
|    | 710|+			{
| 711| 711| 					// reset to normal input mode
| 712| 712| 					placementSupport.Reset();
| 713| 713| 					updateBuildingPlacementPreview();
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 708| 708| 				}
| 709| 709| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 710| 710| 				{
| 711|    |-					// reset to normal input mode
|    | 711|+				// reset to normal input mode
| 712| 712| 					placementSupport.Reset();
| 713| 713| 					updateBuildingPlacementPreview();
| 714| 714| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 709| 709| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 710| 710| 				{
| 711| 711| 					// reset to normal input mode
| 712|    |-					placementSupport.Reset();
|    | 712|+				placementSupport.Reset();
| 713| 713| 					updateBuildingPlacementPreview();
| 714| 714| 
| 715| 715| 					inputState = INPUT_NORMAL;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 710| 710| 				{
| 711| 711| 					// reset to normal input mode
| 712| 712| 					placementSupport.Reset();
| 713|    |-					updateBuildingPlacementPreview();
|    | 713|+				updateBuildingPlacementPreview();
| 714| 714| 
| 715| 715| 					inputState = INPUT_NORMAL;
| 716| 716| 					return true;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 712| 712| 					placementSupport.Reset();
| 713| 713| 					updateBuildingPlacementPreview();
| 714| 714| 
| 715|    |-					inputState = INPUT_NORMAL;
|    | 715|+				inputState = INPUT_NORMAL;
| 716| 716| 					return true;
| 717| 717| 				}
| 718| 718| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 713| 713| 					updateBuildingPlacementPreview();
| 714| 714| 
| 715| 715| 					inputState = INPUT_NORMAL;
| 716|    |-					return true;
|    | 716|+				return true;
| 717| 717| 				}
| 718| 718| 				break;
| 719| 719| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 714| 714| 
| 715| 715| 					inputState = INPUT_NORMAL;
| 716| 716| 					return true;
| 717|    |-				}
|    | 717|+			}
| 718| 718| 				break;
| 719| 719| 		}
| 720| 720| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 715| 715| 					inputState = INPUT_NORMAL;
| 716| 716| 					return true;
| 717| 717| 				}
| 718|    |-				break;
|    | 718|+			break;
| 719| 719| 		}
| 720| 720| 		break;
| 721| 721| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 857| 857| 			break;
| 858| 858| 
| 859| 859| 		case "hotkeydown":
| 860|    |-				if (ev.hotkey.indexOf("selection.group.") == 0)
|    | 860|+			if (ev.hotkey.indexOf("selection.group.") == 0)
| 861| 861| 				{
| 862| 862| 					let now = Date.now();
| 863| 863| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 858| 858| 
| 859| 859| 		case "hotkeydown":
| 860| 860| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 861|    |-				{
|    | 861|+			{
| 862| 862| 					let now = Date.now();
| 863| 863| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 864| 864| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 859| 859| 		case "hotkeydown":
| 860| 860| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 861| 861| 				{
| 862|    |-					let now = Date.now();
|    | 862|+				let now = Date.now();
| 863| 863| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 864| 864| 					{
| 865| 865| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 860| 860| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 861| 861| 				{
| 862| 862| 					let now = Date.now();
| 863|    |-					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | 863|+				if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 864| 864| 					{
| 865| 865| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 866| 866| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 861| 861| 				{
| 862| 862| 					let now = Date.now();
| 863| 863| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 864|    |-					{
|    | 864|+				{
| 865| 865| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 866| 866| 						{
| 867| 867| 							var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 862| 862| 					let now = Date.now();
| 863| 863| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 864| 864| 					{
| 865|    |-						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | 865|+					if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 866| 866| 						{
| 867| 867| 							var sptr = ev.hotkey.split(".");
| 868| 868| 							performGroup("snap", sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 863| 863| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 864| 864| 					{
| 865| 865| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 866|    |-						{
|    | 866|+					{
| 867| 867| 							var sptr = ev.hotkey.split(".");
| 868| 868| 							performGroup("snap", sptr[3]);
| 869| 869| 						}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 864| 864| 					{
| 865| 865| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 866| 866| 						{
| 867|    |-							var sptr = ev.hotkey.split(".");
|    | 867|+						var sptr = ev.hotkey.split(".");
| 868| 868| 							performGroup("snap", sptr[3]);
| 869| 869| 						}
| 870| 870| 					}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 6 tabs but found 7.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 865| 865| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 866| 866| 						{
| 867| 867| 							var sptr = ev.hotkey.split(".");
| 868|    |-							performGroup("snap", sptr[3]);
|    | 868|+						performGroup("snap", sptr[3]);
| 869| 869| 						}
| 870| 870| 					}
| 871| 871| 					else
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 866| 866| 						{
| 867| 867| 							var sptr = ev.hotkey.split(".");
| 868| 868| 							performGroup("snap", sptr[3]);
| 869|    |-						}
|    | 869|+					}
| 870| 870| 					}
| 871| 871| 					else
| 872| 872| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 867| 867| 							var sptr = ev.hotkey.split(".");
| 868| 868| 							performGroup("snap", sptr[3]);
| 869| 869| 						}
| 870|    |-					}
|    | 870|+				}
| 871| 871| 					else
| 872| 872| 					{
| 873| 873| 						var sptr = ev.hotkey.split(".");
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 868| 868| 							performGroup("snap", sptr[3]);
| 869| 869| 						}
| 870| 870| 					}
| 871|    |-					else
|    | 871|+				else
| 872| 872| 					{
| 873| 873| 						var sptr = ev.hotkey.split(".");
| 874| 874| 						performGroup(sptr[2], sptr[3]);
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 869| 869| 						}
| 870| 870| 					}
| 871| 871| 					else
| 872|    |-					{
|    | 872|+				{
| 873| 873| 						var sptr = ev.hotkey.split(".");
| 874| 874| 						performGroup(sptr[2], sptr[3]);
| 875| 875| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 870| 870| 					}
| 871| 871| 					else
| 872| 872| 					{
| 873|    |-						var sptr = ev.hotkey.split(".");
|    | 873|+					var sptr = ev.hotkey.split(".");
| 874| 874| 						performGroup(sptr[2], sptr[3]);
| 875| 875| 
| 876| 876| 						doublePressTimer = now;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 871| 871| 					else
| 872| 872| 					{
| 873| 873| 						var sptr = ev.hotkey.split(".");
| 874|    |-						performGroup(sptr[2], sptr[3]);
|    | 874|+					performGroup(sptr[2], sptr[3]);
| 875| 875| 
| 876| 876| 						doublePressTimer = now;
| 877| 877| 						prevHotkey = ev.hotkey;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 873| 873| 						var sptr = ev.hotkey.split(".");
| 874| 874| 						performGroup(sptr[2], sptr[3]);
| 875| 875| 
| 876|    |-						doublePressTimer = now;
|    | 876|+					doublePressTimer = now;
| 877| 877| 						prevHotkey = ev.hotkey;
| 878| 878| 					}
| 879| 879| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 874| 874| 						performGroup(sptr[2], sptr[3]);
| 875| 875| 
| 876| 876| 						doublePressTimer = now;
| 877|    |-						prevHotkey = ev.hotkey;
|    | 877|+					prevHotkey = ev.hotkey;
| 878| 878| 					}
| 879| 879| 				}
| 880| 880| 				break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 875| 875| 
| 876| 876| 						doublePressTimer = now;
| 877| 877| 						prevHotkey = ev.hotkey;
| 878|    |-					}
|    | 878|+				}
| 879| 879| 				}
| 880| 880| 				break;
| 881| 881| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 876| 876| 						doublePressTimer = now;
| 877| 877| 						prevHotkey = ev.hotkey;
| 878| 878| 					}
| 879|    |-				}
|    | 879|+			}
| 880| 880| 				break;
| 881| 881| 		}
| 882| 882| 		break;
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 877| 877| 						prevHotkey = ev.hotkey;
| 878| 878| 					}
| 879| 879| 				}
| 880|    |-				break;
|    | 880|+			break;
| 881| 881| 		}
| 882| 882| 		break;
| 883| 883| 
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|1608|1608| 	var selectall = Engine.HotkeyIsPressed("selection.offscreen");
|1609|1609| 
|1610|1610| 	// Reset the last idle unit, etc., if the selection type has changed.
|1611|    |-	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v,i) => v === lastIdleClasses[i]))
|    |1611|+	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v, i) => v === lastIdleClasses[i]))
|1612|1612| 		resetIdleUnit();
|1613|1613| 	lastIdleClasses = classes;
|1614|1614| 

binaries/data/mods/public/gui/session/input.js
| 235| »   var·target·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'target' to undefined.

binaries/data/mods/public/gui/session/input.js
| 249| »   var·actionInfo·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'actionInfo' to undefined.

binaries/data/mods/public/gui/session/input.js
| 481| »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 508| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 512| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 567| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 577| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 625| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 654| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 723| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 739| ·»   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 740| ·»   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 745| ·»   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
| 824| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 827| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 929| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1018| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1032| »   »   »   »   let·action·=·determineAction(ev.x,·ev.y);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'action' is already declared in the upper scope.

binaries/data/mods/public/gui/session/input.js
|1041| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1065| ·»   »   »   »   »   "template":·placementSupport.template,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1066| ·»   »   »   »   »   "x":·placementSupport.position.x,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1067| ·»   »   »   »   »   "z":·placementSupport.position.z,
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1070| ·»   »   »   »   });
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/gui/session/input.js
|1128| »   »   »   switch·(ev.hotkey)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
|1559| »   switch·(action)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

binaries/data/mods/public/gui/session/input.js
| 235| »   var·target·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'target' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 249| »   var·actionInfo·=·undefined;
|    | [NORMAL] JSHintBear:
|    | It's not necessary to initialize 'actionInfo' to 'undefined'.

binaries/data/mods/public/gui/session/input.js
| 263| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 266| »   »   »   var·r·=·g_UnitActions[action].hotkeyActionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 271| »   for·(var·action·of·actions)
|    | [NORMAL] JSHintBear:
|    | 'action' is already defined.

binaries/data/mods/public/gui/session/input.js
| 274| »   »   »   var·r·=·g_UnitActions[action].actionCheck(target,·selection);
|    | [NORMAL] JSHintBear:
|    | 'r' is already defined.

binaries/data/mods/public/gui/session/input.js
| 496| »   »   &&·(ev.button·==·SDL_BUTTON_LEFT·||·ev.button·==·SDL_BUTTON_RIGHT))
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/gui/session/input.js
| 526| »   »   »   »   var·rect·=·updateBandbox(bandbox,·ev,·true);
|    | [NORMAL] JSHintBear:
|    | 'rect' is already defined.

binaries/data/mods/public/gui/session/input.js
| 529| »   »   »   »   var·ents·=·getPreferredEntities(Engine.PickPlayerEntitiesInRect(rect[0],·rect[1],·rect[2],·rect[3],·g_ViewedPlayer));
|    | [NORMAL] JSHintBear:
|    | 'ents' is already defined.

binaries/data/mods/public/gui/session/input.js
| 686| »   »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 760| »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

binaries/data/mods/public/gui/session/input.js
| 873| »   »   »   »   »   »   var·sptr·=·ev.hotkey.split(".");
|    | [NORMAL] JSHintBear:
|    | 'sptr' is already defined.

binaries/data/mods/public/gui/session/input.js
| 889| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.

binaries/data/mods/public/gui/session/input.js
| 915| »   »   »   }
|    | [NORMAL] JSHintBear:
|    | Expected a 'break' statement before 'default'.

binaries/data/mods/public/gui/session/input.js
| 939| »   »   »   var·ent·=·Engine.PickEntityAtPoint(ev.x,·ev.y);
|    | [NORMAL] JSHintBear:
|    | 'ent' is already defined.
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
| 527| 527| 			if (cmpGarrisonHolder)
| 528| 528| 			{
| 529| 529| 				// Only the owner of the garrisonHolder may unload entities from any owners
| 530|    |-				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits
| 531|    |-				    && player != +cmd.owner)
|    | 530|+				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits &&
|    | 531|+				    player != +cmd.owner)
| 532| 532| 						continue;
| 533| 533| 
| 534| 534| 				if (!cmpGarrisonHolder.UnloadTemplate(cmd.template, cmd.owner, cmd.all))
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
| 529| 529| 				// Only the owner of the garrisonHolder may unload entities from any owners
| 530| 530| 				if (!IsOwnedByPlayer(player, garrisonHolder) && !data.controlAllUnits
| 531| 531| 				    && player != +cmd.owner)
| 532|    |-						continue;
|    | 532|+					continue;
| 533| 533| 
| 534| 534| 				if (!cmpGarrisonHolder.UnloadTemplate(cmd.template, cmd.owner, cmd.all))
| 535| 535| 					notifyUnloadFailure(player, garrisonHolder);
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'metadata'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata": cmd.metadata, "owner" : player } );
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (key-spacing):
|    | Extra space after key 'owner'.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner": player } );
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (space-in-parens):
|    | There should be no spaces inside this paren.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1149|1149| 
|1150|1150| 	// send Metadata info if any
|1151|1151| 	if (cmd.metadata)
|1152|    |-		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player } );
|    |1152|+		Engine.PostMessage(ent, MT_AIMetadata, { "id": ent, "metadata" : cmd.metadata, "owner" : player });
|1153|1153| 
|1154|1154| 	// Tell the units to start building this new entity
|1155|1155| 	if (cmd.autorepair)
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1257|1257| 		}
|1258|1258| 
|1259|1259| 		lastTowerControlGroup = cmpSnappedStartObstruction.GetControlGroup();
|1260|    |-		//warn("setting lastTowerControlGroup to control group of start snapped entity " + cmd.startSnappedEntity + ": " + lastTowerControlGroup);
|    |1260|+		// warn("setting lastTowerControlGroup to control group of start snapped entity " + cmd.startSnappedEntity + ": " + lastTowerControlGroup);
|1261|1261| 	}
|1262|1262| 
|1263|1263| 	var i = 0;
|    | [NORMAL] ESLintBear (spaced-comment):
|    | Expected space or tab after '//' in comment.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1321|1321| 
|1322|1322| 				if (i > 0)
|1323|1323| 				{
|1324|    |-					//warn("   updating previous wall piece's secondary control group to " + newTowerControlGroup);
|    |1324|+					// warn("   updating previous wall piece's secondary control group to " + newTowerControlGroup);
|1325|1325| 					var cmpPreviousObstruction = Engine.QueryInterface(pieces[i-1].ent, IID_Obstruction);
|1326|1326| 					// TODO: ensure that cmpPreviousObstruction exists
|1327|1327| 					// TODO: ensure that the previous obstruction does not yet have a secondary control group set
|    | [NORMAL] ESLintBear (operator-linebreak):
|    | '&&' should be placed at the end of the line.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1484|1484| 		// Check that all its members are selected
|1485|1485| 		var fid = formationIds[0];
|1486|1486| 		var cmpFormation = Engine.QueryInterface(+fid, IID_Formation);
|1487|    |-		if (cmpFormation && cmpFormation.GetMemberCount() == formation.members[fid].length
|1488|    |-			&& cmpFormation.GetMemberCount() == formation.entities.length)
|    |1487|+		if (cmpFormation && cmpFormation.GetMemberCount() == formation.members[fid].length &&
|    |1488|+			cmpFormation.GetMemberCount() == formation.entities.length)
|1489|1489| 		{
|1490|1490| 			cmpFormation.DeleteTwinFormations();
|1491|1491| 			// The whole formation was selected, so reuse its controller for this command
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1592|1592| 		for (var i = matrix.length - 1; i >= 0 && !closeClusters; --i)
|1593|1593| 			for (var j = i - 1; j >= 0 && !closeClusters; --j)
|1594|1594| 				if (matrix[i][j] < distSq)
|1595|    |-					closeClusters = [i,j];
|    |1595|+					closeClusters = [i, j];
|1596|1596| 
|1597|1597| 		// if no more close clusters found, just return all found clusters so far
|1598|1598| 		if (!closeClusters)
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1614|1614| 		}
|1615|1615| 		// remove the rows and columns in the matrix for the merged clusters,
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|    |-		clusters.splice(closeClusters[0],1);
|    |1617|+		clusters.splice(closeClusters[0], 1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1615|1615| 		// remove the rows and columns in the matrix for the merged clusters,
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|    |-		clusters.splice(closeClusters[1],1);
|    |1618|+		clusters.splice(closeClusters[1], 1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1616|1616| 		// and the clusters themselves from the cluster list
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|    |-		matrix.splice(closeClusters[0],1);
|    |1619|+		matrix.splice(closeClusters[0], 1);
|1620|1620| 		matrix.splice(closeClusters[1],1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1617|1617| 		clusters.splice(closeClusters[0],1);
|1618|1618| 		clusters.splice(closeClusters[1],1);
|1619|1619| 		matrix.splice(closeClusters[0],1);
|1620|    |-		matrix.splice(closeClusters[1],1);
|    |1620|+		matrix.splice(closeClusters[1], 1);
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1621|1621| 		for (let i = 0; i < matrix.length; ++i)
|1622|1622| 		{
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|1624|    |-				matrix[i].splice(closeClusters[0],1);
|    |1624|+				matrix[i].splice(closeClusters[0], 1);
|1625|1625| 			if (matrix[i].length > closeClusters[1])
|1626|1626| 				matrix[i].splice(closeClusters[1],1);
|1627|1627| 		}
|    | [NORMAL] ESLintBear (comma-spacing):
|    | A space is required after ','.
|----|    | /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/simulation/helpers/Commands.js
|1623|1623| 			if (matrix[i].length > closeClusters[0])
|1624|1624| 				matrix[i].splice(closeClusters[0],1);
|1625|1625| 			if (matrix[i].length > closeClusters[1])
|1626|    |-				matrix[i].splice(closeClusters[1],1);
|    |1626|+				matrix[i].splice(closeClusters[1], 1);
|1627|1627| 		}
|1628|1628| 		// add a new row of distances to the matrix and the new cluster
|1629|1629| 		clusters.push(newCluster);

binaries/data/mods/public/simulation/helpers/Commands.js
|  43| »   if·(g_Commands[cmd.type])
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|  47| »   »   g_Commands[cmd.type](player,·cmd,·data);
|    | [MAJOR] ESLintBear (no-use-before-define):
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 788| »   »   let·ent·=·pickRandom(cmpRangeManager.GetEntitiesByPlayer(cmd.player).filter(ent·=>·{
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'ent' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|1280| ····»   »   »   error("[TryConstructWall]·Expected·last·tower·control·group·to·be·available,·none·found·(1st·pass,·iteration·"·+·i·+·")");
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/simulation/helpers/Commands.js
|1281| ····»   »   »   break;
|    | [NORMAL] ESLintBear (no-mixed-spaces-and-tabs):
|    | Mixed spaces and tabs.

binaries/data/mods/public/simulation/helpers/Commands.js
|1511| »   »   »   »   var·lastFormationTemplate·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'lastFormationTemplate' to undefined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1590| »   »   var·closeClusters·=·undefined;
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'closeClusters' to undefined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1607| »   »   for·(let·i·=·0;·i·<·clusters.length;·++i)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|1621| »   »   for·(let·i·=·0;·i·<·matrix.length;·++i)
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'i' is already declared in the upper scope.

binaries/data/mods/public/simulation/helpers/Commands.js
|  53| var·g_Commands·=·{
|    | [NORMAL] JSHintBear:
|    | 'g_Commands' was used before it was defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 531| »   »   »   »   ····&&·player·!=·+cmd.owner)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

binaries/data/mods/public/simulation/helpers/Commands.js
| 726| »   »   »   »   var·cmpGUIInterface·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_GuiInterface);
|    | [NORMAL] JSHintBear:
|    | 'cmpGUIInterface' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 947| »   »   for·(var·i·=·0;·i·<·length;·++i)
|    | [NORMAL] JSHintBear:
|    | 'i' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
| 960| »   »   var·count·=·0;
|    | [NORMAL] JSHintBear:
|    | 'count' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1107| »   »   var·cmpGuiInterface·=·Engine.QueryInterface(SYSTEM_ENTITY,·IID_GuiInterface);
|    | [NORMAL] JSHintBear:
|    | 'cmpGuiInterface' is already defined.

binaries/data/mods/public/simulation/helpers/Commands.js
|1366| »   »   var·piece·=·pieces[j];
|    | [NORMAL] JSHintBear:
|    | 'piece' is already defined.

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

binaries/data/mods/public/simulation/helpers/Commands.js
|1488| »   »   »   &&·cmpFormation.GetMemberCount()·==·formation.entities.length)
|    | [NORMAL] JSHintBear:
|    | Misleading line break before '&&'; readers may interpret this as an expression boundary.

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

binaries/data/mods/public/simulation/helpers/Commands.js
|1547| »   »   »   var·cmpFormation·=·Engine.QueryInterface(formationEnt,·IID_Formation);
|    | [NORMAL] JSHintBear:
|    | 'cmpFormation' is already defined.
Executing section cli...

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

Freagarach marked an inline comment as done.Apr 4 2020, 1:38 PM
Lionkanzen added a subscriber: Lionkanzen.
Stan added a comment.Sep 2 2020, 12:08 PM

You might want to delete ICmpSettlement.cpp/h while at it.

What are the next steps

binaries/data/mods/public/simulation/components/BuildRestrictions.js
324

Can this function be optimized somehow?

binaries/data/mods/public/simulation/components/GuiInterface.js
1648

2.0 ?

Freagarach planned changes to this revision.Sep 2 2020, 6:17 PM
  • Don't use Settlement.js. (While the description therein matches, a settlement is something different.)
  • Ditch class.
  • Probably a rebase.

Has the ghost been cleared?

@Stan New progress has been made on this issue. What is your next step in developing this feature?

@Freagarach Is this patch ready to be released?

@gameboy No sir, this patch is not ready. In the title it says [WIP] -- meaning that it is a work in progress. Moreover the status of the patch is Changes Planned meaning there is stuff that needs to be done but time (and motivation) to be found.

What's going on, guys? What's new with this patch?

What's new with this patch?

Nothing really ^^ This is still exactly the same as april the fourth of this year.

@Freagarach Please let me know when you will be able to update it, thank you!

@gameboy Since you are a subscriber to this patch, it will let you know when I updated the patch :)

@gameboy, please refrain from these frequent comments asking for updates or status. It will cause any real discussion to be hidden by a wall of @s. I know I am part of the problem, since I answer you, but I feel like someone talking to me ought to be answered by me. If you really want to ask how the patch is going once in a while, I suggest to PM me such that it bothers no-one else. That can be done on the forum or here on Phabricator.

@Freagarach My friend, regarding this issue, do you have time to deal with this matter?

This comment was removed by Palaxin.

For testing purposes, will this work for SVN (as of 4 Oct 2021), or does it need rebased?

marder added a subscriber: marder.Oct 4 2021, 8:12 AM

I tried rebasing, but it requires more effort. Sorry.