Page MenuHomeWildfire Games

Handle orderone hotkey for constructing buildings and walls
Needs ReviewPublic

Authored by wraitii on Aug 12 2019, 9:28 AM.

Details

Reviewers
luiko
Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Trac Tickets
#5750
Summary

Handle the "ordering" hotkey for building and wall construction. This was missed in rP20441 because those actions are not part of the "unit actions" abstraction, being performed "instantly" and in the "beforeGUI" step.

This retains the behaviour that if no entity can perform the order, all of them are ordered. I don't know if this is seen as good or bad.

Test Plan

Select a group of units then try to place buildings and walls with alt pressed. Shift+alt works to spam buildings and dispatch workers.

Event Timeline

luiko created this revision.Aug 12 2019, 9:28 AM
luiko retitled this revision from Handle hotkey orderone also for construct buildings and walls to Handle orderone hotkey also for construct buildings and walls.

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
| 326| 326| 	}
| 327| 327| 
| 328| 328| 	var wallPlacementInfo = updateBuildingPlacementPreview(); // entities making up the wall (wall segments, towers, ...)
| 329|    |-	if (!(wallPlacementInfo === false || typeof(wallPlacementInfo) === "object"))
|    | 329|+	if (!(wallPlacementInfo === false || typeof (wallPlacementInfo) === "object"))
| 330| 330| 	{
| 331| 331| 		error("Invalid updateBuildingPlacementPreview return value: " + uneval(wallPlacementInfo));
| 332| 332| 		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| 		closeMenu();
| 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 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
| 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 building 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 building placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | 664|+			// Update the building 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 building 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 building 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 building 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
| 876| 876| 			break;
| 877| 877| 
| 878| 878| 		case "hotkeydown":
| 879|    |-				if (ev.hotkey.indexOf("selection.group.") == 0)
|    | 879|+			if (ev.hotkey.indexOf("selection.group.") == 0)
| 880| 880| 				{
| 881| 881| 					let now = Date.now();
| 882| 882| 					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
| 877| 877| 
| 878| 878| 		case "hotkeydown":
| 879| 879| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 880|    |-				{
|    | 880|+			{
| 881| 881| 					let now = Date.now();
| 882| 882| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 883| 883| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 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| 		case "hotkeydown":
| 879| 879| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 880| 880| 				{
| 881|    |-					let now = Date.now();
|    | 881|+				let now = Date.now();
| 882| 882| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 883| 883| 					{
| 884| 884| 						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
| 879| 879| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 880| 880| 				{
| 881| 881| 					let now = Date.now();
| 882|    |-					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | 882|+				if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 883| 883| 					{
| 884| 884| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 885| 885| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 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| 					let now = Date.now();
| 882| 882| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 883|    |-					{
|    | 883|+				{
| 884| 884| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 885| 885| 						{
| 886| 886| 							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
| 881| 881| 					let now = Date.now();
| 882| 882| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 883| 883| 					{
| 884|    |-						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | 884|+					if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 885| 885| 						{
| 886| 886| 							var sptr = ev.hotkey.split(".");
| 887| 887| 							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
| 882| 882| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 883| 883| 					{
| 884| 884| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 885|    |-						{
|    | 885|+					{
| 886| 886| 							var sptr = ev.hotkey.split(".");
| 887| 887| 							performGroup("snap", sptr[3]);
| 888| 888| 						}
|    | [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
| 883| 883| 					{
| 884| 884| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 885| 885| 						{
| 886|    |-							var sptr = ev.hotkey.split(".");
|    | 886|+						var sptr = ev.hotkey.split(".");
| 887| 887| 							performGroup("snap", sptr[3]);
| 888| 888| 						}
| 889| 889| 					}
|    | [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
| 884| 884| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 885| 885| 						{
| 886| 886| 							var sptr = ev.hotkey.split(".");
| 887|    |-							performGroup("snap", sptr[3]);
|    | 887|+						performGroup("snap", sptr[3]);
| 888| 888| 						}
| 889| 889| 					}
| 890| 890| 					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
| 885| 885| 						{
| 886| 886| 							var sptr = ev.hotkey.split(".");
| 887| 887| 							performGroup("snap", sptr[3]);
| 888|    |-						}
|    | 888|+					}
| 889| 889| 					}
| 890| 890| 					else
| 891| 891| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 886| 886| 							var sptr = ev.hotkey.split(".");
| 887| 887| 							performGroup("snap", sptr[3]);
| 888| 888| 						}
| 889|    |-					}
|    | 889|+				}
| 890| 890| 					else
| 891| 891| 					{
| 892| 892| 						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
| 887| 887| 							performGroup("snap", sptr[3]);
| 888| 888| 						}
| 889| 889| 					}
| 890|    |-					else
|    | 890|+				else
| 891| 891| 					{
| 892| 892| 						var sptr = ev.hotkey.split(".");
| 893| 893| 						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
| 888| 888| 						}
| 889| 889| 					}
| 890| 890| 					else
| 891|    |-					{
|    | 891|+				{
| 892| 892| 						var sptr = ev.hotkey.split(".");
| 893| 893| 						performGroup(sptr[2], sptr[3]);
| 894| 894| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 889| 889| 					}
| 890| 890| 					else
| 891| 891| 					{
| 892|    |-						var sptr = ev.hotkey.split(".");
|    | 892|+					var sptr = ev.hotkey.split(".");
| 893| 893| 						performGroup(sptr[2], sptr[3]);
| 894| 894| 
| 895| 895| 						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
| 890| 890| 					else
| 891| 891| 					{
| 892| 892| 						var sptr = ev.hotkey.split(".");
| 893|    |-						performGroup(sptr[2], sptr[3]);
|    | 893|+					performGroup(sptr[2], sptr[3]);
| 894| 894| 
| 895| 895| 						doublePressTimer = now;
| 896| 896| 						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
| 892| 892| 						var sptr = ev.hotkey.split(".");
| 893| 893| 						performGroup(sptr[2], sptr[3]);
| 894| 894| 
| 895|    |-						doublePressTimer = now;
|    | 895|+					doublePressTimer = now;
| 896| 896| 						prevHotkey = ev.hotkey;
| 897| 897| 					}
| 898| 898| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 893| 893| 						performGroup(sptr[2], sptr[3]);
| 894| 894| 
| 895| 895| 						doublePressTimer = now;
| 896|    |-						prevHotkey = ev.hotkey;
|    | 896|+					prevHotkey = ev.hotkey;
| 897| 897| 					}
| 898| 898| 				}
| 899| 899| 				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
| 894| 894| 
| 895| 895| 						doublePressTimer = now;
| 896| 896| 						prevHotkey = ev.hotkey;
| 897|    |-					}
|    | 897|+				}
| 898| 898| 				}
| 899| 899| 				break;
| 900| 900| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 895| 895| 						doublePressTimer = now;
| 896| 896| 						prevHotkey = ev.hotkey;
| 897| 897| 					}
| 898|    |-				}
|    | 898|+			}
| 899| 899| 				break;
| 900| 900| 		}
| 901| 901| 		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
| 896| 896| 						prevHotkey = ev.hotkey;
| 897| 897| 					}
| 898| 898| 				}
| 899|    |-				break;
|    | 899|+			break;
| 900| 900| 		}
| 901| 901| 		break;
| 902| 902| 
|    | [NORMAL] ESLintBear (space-in-parens):
|    | There should be no spaces inside this paren.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|1534|1534| 		g_BatchTrainingEntityAllowedCount < batchedSize * appropriateBuildings.length)
|1535|1535| 	{
|1536|1536| 		// Train as many full batches as we can
|1537|    |-		let buildingsCountToTrainFullBatch = Math.floor( g_BatchTrainingEntityAllowedCount / batchedSize);
|    |1537|+		let buildingsCountToTrainFullBatch = Math.floor(g_BatchTrainingEntityAllowedCount / batchedSize);
|1538|1538| 		Engine.PostNetworkCommand({
|1539|1539| 			"type": "train",
|1540|1540| 			"entities": appropriateBuildings.slice(0, buildingsCountToTrainFullBatch),
|    | [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
|1613|1613| 	var selectall = Engine.HotkeyIsPressed("selection.offscreen");
|1614|1614| 
|1615|1615| 	// Reset the last idle unit, etc., if the selection type has changed.
|1616|    |-	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v,i) => v === lastIdleClasses[i]))
|    |1616|+	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v, i) => v === lastIdleClasses[i]))
|1617|1617| 		resetIdleUnit();
|1618|1618| 	lastIdleClasses = classes;
|1619|1619| 

binaries/data/mods/public/gui/session/input.js
| 228| »   »   var·entState·=·GetEntityState(ent);
|    | [NORMAL] ESLintBear (no-shadow):
|    | 'entState' is already declared in the upper scope.

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
| 373| function·checkOrderOneOnSelection()·{
|    | [NORMAL] ESLintBear (brace-rules/brace-on-same-line):
|    | Opening curly brace appears on the same line as controlling statement.

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
| 845| »   switch·(inputState)
|    | [NORMAL] ESLintBear (default-case):
|    | Expected a default case.

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

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

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

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

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
|1564| »   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
| 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
| 762| »   »   »   »   var·queued·=·Engine.HotkeyIsPressed("session.queue");
|    | [NORMAL] JSHintBear:
|    | 'queued' is already defined.

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

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

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

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

luiko edited the summary of this revision. (Show Details)Aug 12 2019, 6:14 PM
Freagarach updated the Trac tickets for this revision.May 10 2020, 11:32 AM
Freagarach added inline comments.
binaries/data/mods/public/gui/session/input.js
1256–1257

You can use your newly created function here as well.

wraitii commandeered this revision.May 22 2020, 9:50 PM
wraitii added a reviewer: luiko.
wraitii updated this revision to Diff 11983.May 22 2020, 9:57 PM
wraitii retitled this revision from Handle orderone hotkey also for construct buildings and walls to Handle orderone hotkey for constructing buildings and walls.
wraitii edited the summary of this revision. (Show Details)
wraitii edited the test plan for this revision. (Show Details)

Thanks for noticing this issue and for the patch :)
I've taken the liberty of commandeering given that this is fairly old (sadly).


Similar approach with a slightly different abstraction.

This introduces a fake unit-action so that if you select 15 can and one builder, the one builder gets sent.

I'm not sure if shift+alt, for walls, shouldn't actually dispatch each unit to a different wall piece. That sounds very cool to me, but it might be unexpected.

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

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

wraitii edited the summary of this revision. (Show Details)May 22 2020, 9:59 PM
luiko added a comment.May 24 2020, 7:31 AM

cool, I'm happy to help

Stan added subscribers: Angen, bb, Stan.May 30 2020, 12:36 PM

@bb @Angen @Freagarach, can you break this?

If one queues a build order with the orderone hotkey a preview stays on the cursor (but cannot be build), not sure if that is breaking enough though. Steps to reproduce:

  • Select one unit to build.
  • Queue a move order far away. (Or any order to keep the entity busy.)
  • Queue and orderone a building.
  • Notice the preview stays.
binaries/data/mods/public/gui/session/input.js
1159

Cool that it exists, but I think it will be clearer if you split this? Or is there a specific reason this is used here?

wraitii added inline comments.Jun 5 2020, 7:58 AM
binaries/data/mods/public/gui/session/input.js
1159

ah no I just remembered this and found it neat :p

I agree that it's too unconventional to be really used, forgot I had actually left that one in.

wraitii updated this revision to Diff 12147.Jun 5 2020, 6:47 PM

Switch out of building-mode when the selection has become empty

Vulcan added a comment.Jun 5 2020, 6:51 PM

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

Linter detected issues:
Executing section Source...
Executing section JS...
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/selection.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/selection.js
| 451| 451| 	this.addList([entityID]);
| 452| 452| 
| 453| 453| 	Engine.CameraMoveTo(entState.position.x, entState.position.z);
| 454|    |-}
|    | 454|+};
| 455| 455| 
| 456| 456| /**
| 457| 457|  * Cache some quantities which depends only on selection

binaries/data/mods/public/gui/session/selection.js
| 454| }
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (key-spacing):
|    | Missing space before value for key 'execute'.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/unit_actions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/unit_actions.js
| 544| 544| 
| 545| 545| 	"cancel-setup-trade-route":
| 546| 546| 	{
| 547|    |-		"execute":function(target, action, selection, queued)
|    | 547|+		"execute": function(target, action, selection, queued)
| 548| 548| 		{
| 549| 549| 			Engine.PostNetworkCommand({
| 550| 550| 				"type": "cancel-setup-trade-route",
|    | [NORMAL] ESLintBear (semi):
|    | Missing semicolon.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/unit_actions.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/unit_actions.js
| 589| 589| 				"cursor": "action-cancel-setup-trade-route",
| 590| 590| 				"tooltip": actionInfo.tooltip,
| 591| 591| 				"target": target
| 592|    |-			}
|    | 592|+			};
| 593| 593| 		},
| 594| 594| 		"specificness": 2,
| 595| 595| 	},

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

binaries/data/mods/public/gui/session/unit_actions.js
| 592| »   »   »   }
|    | [NORMAL] JSHintBear:
|    | Missing semicolon.
|    | [NORMAL] ESLintBear (no-undef-init):
|    | It's not necessary to initialize 'actionInfo' to undefined.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 238| 238| 	// if two actions are possible, the first one is taken
| 239| 239| 	// thus the most specific should appear first.
| 240| 240| 
| 241|    |-	let actionInfo = undefined;
|    | 241|+	let actionInfo;
| 242| 242| 	if (preSelectedAction != ACTION_NONE)
| 243| 243| 	{
| 244| 244| 		for (let action of g_UnitActionsSortedKeys)
|    | [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
| 485| 485| 	mouseIsOverObject = (hoveredObject != null);
| 486| 486| 
| 487| 487| 	// Close the menu when interacting with the game world
| 488|    |-	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown")
| 489|    |-		&& (ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
|    | 488|+	if (!mouseIsOverObject && (ev.type =="mousebuttonup" || ev.type == "mousebuttondown") &&
|    | 489|+		(ev.button == SDL_BUTTON_LEFT || ev.button == SDL_BUTTON_RIGHT))
| 490| 490| 		g_Menu.close();
| 491| 491| 
| 492| 492| 	// 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
| 646| 646| 		// user to continue building walls.
| 647| 647| 		switch (ev.type)
| 648| 648| 		{
| 649|    |-			case "mousemotion":
|    | 649|+		case "mousemotion":
| 650| 650| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 651| 651| 
| 652| 652| 				// 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
| 647| 647| 		switch (ev.type)
| 648| 648| 		{
| 649| 649| 			case "mousemotion":
| 650|    |-				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
|    | 650|+			placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 651| 651| 
| 652| 652| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 653| 653| 				// 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
| 649| 649| 			case "mousemotion":
| 650| 650| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 651| 651| 
| 652|    |-				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
|    | 652|+			// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 653| 653| 				// the ending point and the starting point to snap to.
| 654| 654| 				//
| 655| 655| 				// 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
| 650| 650| 				placementSupport.wallEndPosition = Engine.GetTerrainAtScreenPoint(ev.x, ev.y);
| 651| 651| 
| 652| 652| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 653|    |-				// the ending point and the starting point to snap to.
|    | 653|+			// the ending point and the starting point to snap to.
| 654| 654| 				//
| 655| 655| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 656| 656| 				// 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
| 651| 651| 
| 652| 652| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 653| 653| 				// the ending point and the starting point to snap to.
| 654|    |-				//
|    | 654|+			//
| 655| 655| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 656| 656| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 657| 657| 				// 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
| 652| 652| 				// Update the structure placement preview, and by extension, the list of snapping candidate entities for both (!)
| 653| 653| 				// the ending point and the starting point to snap to.
| 654| 654| 				//
| 655|    |-				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
|    | 655|+			// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 656| 656| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 657| 657| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 658| 658| 				// 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
| 653| 653| 				// the ending point and the starting point to snap to.
| 654| 654| 				//
| 655| 655| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 656|    |-				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
|    | 656|+			// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 657| 657| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 658| 658| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 659| 659| 				// 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
| 654| 654| 				//
| 655| 655| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 656| 656| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 657|    |-				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
|    | 657|+			// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 658| 658| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 659| 659| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 660| 660| 				// 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
| 655| 655| 				// TODO: Note that here, we need to fetch all similar entities, including any offscreen ones, to support the case
| 656| 656| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 657| 657| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 658|    |-				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
|    | 658|+			// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 659| 659| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 660| 660| 				// points.
| 661| 661| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 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| 				// where the snap entity for the starting point has moved offscreen, or has been deleted/destroyed, or was a
| 657| 657| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 658| 658| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 659|    |-				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
|    | 659|+			// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 660| 660| 				// points.
| 661| 661| 
| 662| 662| 				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
| 657| 657| 				// foundation and has been replaced with a completed entity since the user first chose it. Fetching all towers on
| 658| 658| 				// the entire map instead of only the current screen might get expensive fast since walls all have a ton of towers
| 659| 659| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 660|    |-				// points.
|    | 660|+			// points.
| 661| 661| 
| 662| 662| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 663| 663| 				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
| 659| 659| 				// in them. Might be useful to query only for entities within a certain range around the starting point and ending
| 660| 660| 				// points.
| 661| 661| 
| 662|    |-				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
|    | 662|+			placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 663| 663| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 664| 664| 
| 665| 665| 				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
| 660| 660| 				// points.
| 661| 661| 
| 662| 662| 				placementSupport.wallSnapEntitiesIncludeOffscreen = true;
| 663|    |-				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
|    | 663|+			var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 664| 664| 
| 665| 665| 				if (result && result.cost)
| 666| 666| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 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.wallSnapEntitiesIncludeOffscreen = true;
| 663| 663| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 664| 664| 
| 665|    |-				if (result && result.cost)
|    | 665|+			if (result && result.cost)
| 666| 666| 				{
| 667| 667| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 668| 668| 					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
| 663| 663| 				var result = updateBuildingPlacementPreview(); // includes an update of the snap entity candidates
| 664| 664| 
| 665| 665| 				if (result && result.cost)
| 666|    |-				{
|    | 666|+			{
| 667| 667| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 668| 668| 					placementSupport.tooltipMessage = [
| 669| 669| 						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
| 664| 664| 
| 665| 665| 				if (result && result.cost)
| 666| 666| 				{
| 667|    |-					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
|    | 667|+				var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 668| 668| 					placementSupport.tooltipMessage = [
| 669| 669| 						getEntityCostTooltip(result),
| 670| 670| 						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
| 665| 665| 				if (result && result.cost)
| 666| 666| 				{
| 667| 667| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 668|    |-					placementSupport.tooltipMessage = [
|    | 668|+				placementSupport.tooltipMessage = [
| 669| 669| 						getEntityCostTooltip(result),
| 670| 670| 						getNeededResourcesTooltip(neededResources)
| 671| 671| 					].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
| 666| 666| 				{
| 667| 667| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 668| 668| 					placementSupport.tooltipMessage = [
| 669|    |-						getEntityCostTooltip(result),
|    | 669|+					getEntityCostTooltip(result),
| 670| 670| 						getNeededResourcesTooltip(neededResources)
| 671| 671| 					].filter(tip => tip).join("\n");
| 672| 672| 				}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 tabs but found 6.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 667| 667| 					var neededResources = Engine.GuiInterfaceCall("GetNeededResources", { "cost": result.cost });
| 668| 668| 					placementSupport.tooltipMessage = [
| 669| 669| 						getEntityCostTooltip(result),
| 670|    |-						getNeededResourcesTooltip(neededResources)
|    | 670|+					getNeededResourcesTooltip(neededResources)
| 671| 671| 					].filter(tip => tip).join("\n");
| 672| 672| 				}
| 673| 673| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 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| 					placementSupport.tooltipMessage = [
| 669| 669| 						getEntityCostTooltip(result),
| 670| 670| 						getNeededResourcesTooltip(neededResources)
| 671|    |-					].filter(tip => tip).join("\n");
|    | 671|+				].filter(tip => tip).join("\n");
| 672| 672| 				}
| 673| 673| 
| 674| 674| 				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
| 669| 669| 						getEntityCostTooltip(result),
| 670| 670| 						getNeededResourcesTooltip(neededResources)
| 671| 671| 					].filter(tip => tip).join("\n");
| 672|    |-				}
|    | 672|+			}
| 673| 673| 
| 674| 674| 				break;
| 675| 675| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 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| 					].filter(tip => tip).join("\n");
| 672| 672| 				}
| 673| 673| 
| 674|    |-				break;
|    | 674|+			break;
| 675| 675| 
| 676| 676| 			case "mousebuttondown":
| 677| 677| 				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
| 673| 673| 
| 674| 674| 				break;
| 675| 675| 
| 676|    |-			case "mousebuttondown":
|    | 676|+		case "mousebuttondown":
| 677| 677| 				if (ev.button == SDL_BUTTON_LEFT)
| 678| 678| 				{
| 679| 679| 					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
| 674| 674| 				break;
| 675| 675| 
| 676| 676| 			case "mousebuttondown":
| 677|    |-				if (ev.button == SDL_BUTTON_LEFT)
|    | 677|+			if (ev.button == SDL_BUTTON_LEFT)
| 678| 678| 				{
| 679| 679| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 680| 680| 					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
| 675| 675| 
| 676| 676| 			case "mousebuttondown":
| 677| 677| 				if (ev.button == SDL_BUTTON_LEFT)
| 678|    |-				{
|    | 678|+			{
| 679| 679| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 680| 680| 					if (tryPlaceWall(queued))
| 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| 			case "mousebuttondown":
| 677| 677| 				if (ev.button == SDL_BUTTON_LEFT)
| 678| 678| 				{
| 679|    |-					var queued = Engine.HotkeyIsPressed("session.queue");
|    | 679|+				var queued = Engine.HotkeyIsPressed("session.queue");
| 680| 680| 					if (tryPlaceWall(queued))
| 681| 681| 					{
| 682| 682| 						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
| 677| 677| 				if (ev.button == SDL_BUTTON_LEFT)
| 678| 678| 				{
| 679| 679| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 680|    |-					if (tryPlaceWall(queued))
|    | 680|+				if (tryPlaceWall(queued))
| 681| 681| 					{
| 682| 682| 						if (queued)
| 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| 				{
| 679| 679| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 680| 680| 					if (tryPlaceWall(queued))
| 681|    |-					{
|    | 681|+				{
| 682| 682| 						if (queued)
| 683| 683| 						{
| 684| 684| 							// 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
| 679| 679| 					var queued = Engine.HotkeyIsPressed("session.queue");
| 680| 680| 					if (tryPlaceWall(queued))
| 681| 681| 					{
| 682|    |-						if (queued)
|    | 682|+					if (queued)
| 683| 683| 						{
| 684| 684| 							// continue building, just set a new starting position where we left off
| 685| 685| 							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
| 680| 680| 					if (tryPlaceWall(queued))
| 681| 681| 					{
| 682| 682| 						if (queued)
| 683|    |-						{
|    | 683|+					{
| 684| 684| 							// continue building, just set a new starting position where we left off
| 685| 685| 							placementSupport.position = placementSupport.wallEndPosition;
| 686| 686| 							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
| 681| 681| 					{
| 682| 682| 						if (queued)
| 683| 683| 						{
| 684|    |-							// continue building, just set a new starting position where we left off
|    | 684|+						// continue building, just set a new starting position where we left off
| 685| 685| 							placementSupport.position = placementSupport.wallEndPosition;
| 686| 686| 							placementSupport.wallEndPosition = undefined;
| 687| 687| 
|    | [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
| 682| 682| 						if (queued)
| 683| 683| 						{
| 684| 684| 							// continue building, just set a new starting position where we left off
| 685|    |-							placementSupport.position = placementSupport.wallEndPosition;
|    | 685|+						placementSupport.position = placementSupport.wallEndPosition;
| 686| 686| 							placementSupport.wallEndPosition = undefined;
| 687| 687| 
| 688| 688| 							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
| 683| 683| 						{
| 684| 684| 							// continue building, just set a new starting position where we left off
| 685| 685| 							placementSupport.position = placementSupport.wallEndPosition;
| 686|    |-							placementSupport.wallEndPosition = undefined;
|    | 686|+						placementSupport.wallEndPosition = undefined;
| 687| 687| 
| 688| 688| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 689| 689| 						}
|    | [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| 							placementSupport.position = placementSupport.wallEndPosition;
| 686| 686| 							placementSupport.wallEndPosition = undefined;
| 687| 687| 
| 688|    |-							inputState = INPUT_BUILDING_WALL_CLICK;
|    | 688|+						inputState = INPUT_BUILDING_WALL_CLICK;
| 689| 689| 						}
| 690| 690| 						else
| 691| 691| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 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| 							placementSupport.wallEndPosition = undefined;
| 687| 687| 
| 688| 688| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 689|    |-						}
|    | 689|+					}
| 690| 690| 						else
| 691| 691| 						{
| 692| 692| 							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
| 687| 687| 
| 688| 688| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 689| 689| 						}
| 690|    |-						else
|    | 690|+					else
| 691| 691| 						{
| 692| 692| 							placementSupport.Reset();
| 693| 693| 							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
| 688| 688| 							inputState = INPUT_BUILDING_WALL_CLICK;
| 689| 689| 						}
| 690| 690| 						else
| 691|    |-						{
|    | 691|+					{
| 692| 692| 							placementSupport.Reset();
| 693| 693| 							inputState = INPUT_NORMAL;
| 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| 						}
| 690| 690| 						else
| 691| 691| 						{
| 692|    |-							placementSupport.Reset();
|    | 692|+						placementSupport.Reset();
| 693| 693| 							inputState = INPUT_NORMAL;
| 694| 694| 						}
| 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| 						else
| 691| 691| 						{
| 692| 692| 							placementSupport.Reset();
| 693|    |-							inputState = INPUT_NORMAL;
|    | 693|+						inputState = INPUT_NORMAL;
| 694| 694| 						}
| 695| 695| 					}
| 696| 696| 					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
| 691| 691| 						{
| 692| 692| 							placementSupport.Reset();
| 693| 693| 							inputState = INPUT_NORMAL;
| 694|    |-						}
|    | 694|+					}
| 695| 695| 					}
| 696| 696| 					else
| 697| 697| 						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
| 692| 692| 							placementSupport.Reset();
| 693| 693| 							inputState = INPUT_NORMAL;
| 694| 694| 						}
| 695|    |-					}
|    | 695|+				}
| 696| 696| 					else
| 697| 697| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 698| 698| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 693| 693| 							inputState = INPUT_NORMAL;
| 694| 694| 						}
| 695| 695| 					}
| 696|    |-					else
|    | 696|+				else
| 697| 697| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 698| 698| 
| 699| 699| 					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
| 694| 694| 						}
| 695| 695| 					}
| 696| 696| 					else
| 697|    |-						placementSupport.tooltipMessage = translate("Cannot build wall here!");
|    | 697|+					placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 698| 698| 
| 699| 699| 					updateBuildingPlacementPreview();
| 700| 700| 					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
| 696| 696| 					else
| 697| 697| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 698| 698| 
| 699|    |-					updateBuildingPlacementPreview();
|    | 699|+				updateBuildingPlacementPreview();
| 700| 700| 					return true;
| 701| 701| 				}
| 702| 702| 				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
| 697| 697| 						placementSupport.tooltipMessage = translate("Cannot build wall here!");
| 698| 698| 
| 699| 699| 					updateBuildingPlacementPreview();
| 700|    |-					return true;
|    | 700|+				return true;
| 701| 701| 				}
| 702| 702| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 703| 703| 				{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 698| 698| 
| 699| 699| 					updateBuildingPlacementPreview();
| 700| 700| 					return true;
| 701|    |-				}
|    | 701|+			}
| 702| 702| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 703| 703| 				{
| 704| 704| 					// 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
| 699| 699| 					updateBuildingPlacementPreview();
| 700| 700| 					return true;
| 701| 701| 				}
| 702|    |-				else if (ev.button == SDL_BUTTON_RIGHT)
|    | 702|+			else if (ev.button == SDL_BUTTON_RIGHT)
| 703| 703| 				{
| 704| 704| 					// reset to normal input mode
| 705| 705| 					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
| 700| 700| 					return true;
| 701| 701| 				}
| 702| 702| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 703|    |-				{
|    | 703|+			{
| 704| 704| 					// reset to normal input mode
| 705| 705| 					placementSupport.Reset();
| 706| 706| 					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
| 701| 701| 				}
| 702| 702| 				else if (ev.button == SDL_BUTTON_RIGHT)
| 703| 703| 				{
| 704|    |-					// reset to normal input mode
|    | 704|+				// reset to normal input mode
| 705| 705| 					placementSupport.Reset();
| 706| 706| 					updateBuildingPlacementPreview();
| 707| 707| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 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 if (ev.button == SDL_BUTTON_RIGHT)
| 703| 703| 				{
| 704| 704| 					// reset to normal input mode
| 705|    |-					placementSupport.Reset();
|    | 705|+				placementSupport.Reset();
| 706| 706| 					updateBuildingPlacementPreview();
| 707| 707| 
| 708| 708| 					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
| 703| 703| 				{
| 704| 704| 					// reset to normal input mode
| 705| 705| 					placementSupport.Reset();
| 706|    |-					updateBuildingPlacementPreview();
|    | 706|+				updateBuildingPlacementPreview();
| 707| 707| 
| 708| 708| 					inputState = INPUT_NORMAL;
| 709| 709| 					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
| 705| 705| 					placementSupport.Reset();
| 706| 706| 					updateBuildingPlacementPreview();
| 707| 707| 
| 708|    |-					inputState = INPUT_NORMAL;
|    | 708|+				inputState = INPUT_NORMAL;
| 709| 709| 					return true;
| 710| 710| 				}
| 711| 711| 				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
| 706| 706| 					updateBuildingPlacementPreview();
| 707| 707| 
| 708| 708| 					inputState = INPUT_NORMAL;
| 709|    |-					return true;
|    | 709|+				return true;
| 710| 710| 				}
| 711| 711| 				break;
| 712| 712| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 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| 
| 708| 708| 					inputState = INPUT_NORMAL;
| 709| 709| 					return true;
| 710|    |-				}
|    | 710|+			}
| 711| 711| 				break;
| 712| 712| 		}
| 713| 713| 		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
| 708| 708| 					inputState = INPUT_NORMAL;
| 709| 709| 					return true;
| 710| 710| 				}
| 711|    |-				break;
|    | 711|+			break;
| 712| 712| 		}
| 713| 713| 		break;
| 714| 714| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 850| 850| 			break;
| 851| 851| 
| 852| 852| 		case "hotkeydown":
| 853|    |-				if (ev.hotkey.indexOf("selection.group.") == 0)
|    | 853|+			if (ev.hotkey.indexOf("selection.group.") == 0)
| 854| 854| 				{
| 855| 855| 					let now = Date.now();
| 856| 856| 					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
| 851| 851| 
| 852| 852| 		case "hotkeydown":
| 853| 853| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 854|    |-				{
|    | 854|+			{
| 855| 855| 					let now = Date.now();
| 856| 856| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 857| 857| 					{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 852| 852| 		case "hotkeydown":
| 853| 853| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 854| 854| 				{
| 855|    |-					let now = Date.now();
|    | 855|+				let now = Date.now();
| 856| 856| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 857| 857| 					{
| 858| 858| 						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
| 853| 853| 				if (ev.hotkey.indexOf("selection.group.") == 0)
| 854| 854| 				{
| 855| 855| 					let now = Date.now();
| 856|    |-					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
|    | 856|+				if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 857| 857| 					{
| 858| 858| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 859| 859| 						{
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 4 tabs but found 5.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 854| 854| 				{
| 855| 855| 					let now = Date.now();
| 856| 856| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 857|    |-					{
|    | 857|+				{
| 858| 858| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 859| 859| 						{
| 860| 860| 							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
| 855| 855| 					let now = Date.now();
| 856| 856| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 857| 857| 					{
| 858|    |-						if (ev.hotkey.indexOf("selection.group.select.") == 0)
|    | 858|+					if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 859| 859| 						{
| 860| 860| 							var sptr = ev.hotkey.split(".");
| 861| 861| 							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
| 856| 856| 					if (now - doublePressTimer < doublePressTime && ev.hotkey == prevHotkey)
| 857| 857| 					{
| 858| 858| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 859|    |-						{
|    | 859|+					{
| 860| 860| 							var sptr = ev.hotkey.split(".");
| 861| 861| 							performGroup("snap", sptr[3]);
| 862| 862| 						}
|    | [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
| 857| 857| 					{
| 858| 858| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 859| 859| 						{
| 860|    |-							var sptr = ev.hotkey.split(".");
|    | 860|+						var sptr = ev.hotkey.split(".");
| 861| 861| 							performGroup("snap", sptr[3]);
| 862| 862| 						}
| 863| 863| 					}
|    | [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
| 858| 858| 						if (ev.hotkey.indexOf("selection.group.select.") == 0)
| 859| 859| 						{
| 860| 860| 							var sptr = ev.hotkey.split(".");
| 861|    |-							performGroup("snap", sptr[3]);
|    | 861|+						performGroup("snap", sptr[3]);
| 862| 862| 						}
| 863| 863| 					}
| 864| 864| 					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
| 859| 859| 						{
| 860| 860| 							var sptr = ev.hotkey.split(".");
| 861| 861| 							performGroup("snap", sptr[3]);
| 862|    |-						}
|    | 862|+					}
| 863| 863| 					}
| 864| 864| 					else
| 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| 							var sptr = ev.hotkey.split(".");
| 861| 861| 							performGroup("snap", sptr[3]);
| 862| 862| 						}
| 863|    |-					}
|    | 863|+				}
| 864| 864| 					else
| 865| 865| 					{
| 866| 866| 						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
| 861| 861| 							performGroup("snap", sptr[3]);
| 862| 862| 						}
| 863| 863| 					}
| 864|    |-					else
|    | 864|+				else
| 865| 865| 					{
| 866| 866| 						var sptr = ev.hotkey.split(".");
| 867| 867| 						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
| 862| 862| 						}
| 863| 863| 					}
| 864| 864| 					else
| 865|    |-					{
|    | 865|+				{
| 866| 866| 						var sptr = ev.hotkey.split(".");
| 867| 867| 						performGroup(sptr[2], sptr[3]);
| 868| 868| 
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 5 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| 					else
| 865| 865| 					{
| 866|    |-						var sptr = ev.hotkey.split(".");
|    | 866|+					var sptr = ev.hotkey.split(".");
| 867| 867| 						performGroup(sptr[2], sptr[3]);
| 868| 868| 
| 869| 869| 						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
| 864| 864| 					else
| 865| 865| 					{
| 866| 866| 						var sptr = ev.hotkey.split(".");
| 867|    |-						performGroup(sptr[2], sptr[3]);
|    | 867|+					performGroup(sptr[2], sptr[3]);
| 868| 868| 
| 869| 869| 						doublePressTimer = now;
| 870| 870| 						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
| 866| 866| 						var sptr = ev.hotkey.split(".");
| 867| 867| 						performGroup(sptr[2], sptr[3]);
| 868| 868| 
| 869|    |-						doublePressTimer = now;
|    | 869|+					doublePressTimer = now;
| 870| 870| 						prevHotkey = ev.hotkey;
| 871| 871| 					}
| 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| 						performGroup(sptr[2], sptr[3]);
| 868| 868| 
| 869| 869| 						doublePressTimer = now;
| 870|    |-						prevHotkey = ev.hotkey;
|    | 870|+					prevHotkey = ev.hotkey;
| 871| 871| 					}
| 872| 872| 				}
| 873| 873| 				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
| 868| 868| 
| 869| 869| 						doublePressTimer = now;
| 870| 870| 						prevHotkey = ev.hotkey;
| 871|    |-					}
|    | 871|+				}
| 872| 872| 				}
| 873| 873| 				break;
| 874| 874| 		}
|    | [NORMAL] ESLintBear (indent):
|    | Expected indentation of 3 tabs but found 4.
|----|    | /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
|    |++++| /zpool0/trunk/binaries/data/mods/public/gui/session/input.js
| 869| 869| 						doublePressTimer = now;
| 870| 870| 						prevHotkey = ev.hotkey;
| 871| 871| 					}
| 872|    |-				}
|    | 872|+			}
| 873| 873| 				break;
| 874| 874| 		}
| 875| 875| 		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
| 870| 870| 						prevHotkey = ev.hotkey;
| 871| 871| 					}
| 872| 872| 				}
| 873|    |-				break;
|    | 873|+			break;
| 874| 874| 		}
| 875| 875| 		break;
| 876| 876| 
|    | [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
|1603|1603| 	var selectall = Engine.HotkeyIsPressed("selection.offscreen");
|1604|1604| 
|1605|1605| 	// Reset the last idle unit, etc., if the selection type has changed.
|1606|    |-	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v,i) => v === lastIdleClasses[i]))
|    |1606|+	if (selectall || classes.length != lastIdleClasses.length || !classes.every((v, i) => v === lastIdleClasses[i]))
|1607|1607| 		resetIdleUnit();
|1608|1608| 	lastIdleClasses = classes;
|1609|1609| 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Will merge this one tomorrow or so

Stan added inline comments.Sun, Jun 28, 3:26 PM
binaries/data/mods/public/gui/session/input.js
319

Why do we have to call tolist everywhere? Doesn't that mean the data structure is somewhat wrong?

wraitii added inline comments.Sun, Jun 28, 3:28 PM
binaries/data/mods/public/gui/session/input.js
319

It probably is, but that's a problem for the day we refactor g_Selection (most likely making it into a JS class)