Page MenuHomeWildfire Games

[WIP] - Building Sockets.
Needs ReviewPublic

Authored by Freagarach on Oct 18 2019, 10:47 PM.
This revision needs review, but there are no reviewers specified.

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

Freagarach created this revision.Oct 18 2019, 10:47 PM
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?

Angen added a subscriber: Angen.Apr 2 2020, 3:33 PM
Angen 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

Angen 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

Angen 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.