Page MenuHomeWildfire Games

Adds an option to enable/disable building snapping
Needs ReviewPublic

Authored by vladislavbelov on Wed, Jan 8, 6:46 PM.

Details

Reviewers
None
Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Summary

Subj.

Test Plan
  1. Apply the patch
  2. Check that behaviour was changed

Event Timeline

vladislavbelov created this revision.Wed, Jan 8, 6:46 PM
Vulcan added a comment.Wed, Jan 8, 6:47 PM

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

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

Vulcan added a comment.Wed, Jan 8, 6:49 PM

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

Link to build: https://jenkins.wildfiregames.com/job/macos-differential/74/display/redirect

Vulcan added a comment.Wed, Jan 8, 6:50 PM

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

binaries/data/mods/public/gui/session/input.js
| 231| »   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
| 245| »   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
| 478| »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

binaries/data/mods/public/gui/session/input.js
|1029| »   »   »   »   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
|1038| »   »   switch·(ev.type)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

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

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

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

binaries/data/mods/public/gui/session/input.js
|1067| ·»   »   »   »   });
|    | [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
|1557| »   switch·(action)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

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

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

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

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

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

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

binaries/data/mods/public/gui/session/input.js
| 493| »   »   &&·(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
| 523| »   »   »   »   var·rect·=·updateBandbox(bandbox,·ev,·true);
|    | [NORMAL] JSHintBear:
|    | 'rect' is already defined.

binaries/data/mods/public/gui/session/input.js
| 526| »   »   »   »   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
| 683| »   »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

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

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

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

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

binaries/data/mods/public/gui/session/input.js
| 936| »   »   »   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/1496/display/redirect

bb added a subscriber: bb.Tue, Jan 14, 8:38 PM
bb added inline comments.
binaries/data/mods/public/gui/options/options.json
539

Too bad this Json structure disallows us to have the currently set hotkey in this string

The part in brackets would would in a perfect world be a tooltip when you hover your mouse over the dropdrown items (Never tried, maybe you can just add a "tooltip" key in the object below)

543

Maybe "Hotkey Enable" and "Hotkey disable" would be a better names?

"Enabled" should be the opposite of "disabled" thus always disabled.