diff --git a/src/js/game/hud/parts/base_toolbar.js b/src/js/game/hud/parts/base_toolbar.js index 551763ec..d69bcbb2 100644 --- a/src/js/game/hud/parts/base_toolbar.js +++ b/src/js/game/hud/parts/base_toolbar.js @@ -108,9 +108,16 @@ export class HUDBaseToolbar extends BaseHUDPart { return; } + let addIndex; + if (this.root.keyMapper.getBinding(KEYMAPPINGS.placement.rotateInverseModifier).pressed) { + addIndex = this.supportedBuildings.length - 1; + } else { + addIndex = 1; + } + let process = false; let newIndex = this.lastSelectedIndex; - for (let i = 0; i < this.supportedBuildings.length; ++i, ++newIndex) { + for (let i = 0; i < this.supportedBuildings.length; ++i, newIndex += addIndex) { newIndex %= this.supportedBuildings.length; const metaBuilding = gMetaBuildingRegistry.findByClass(this.supportedBuildings[newIndex]); const handle = this.buildingHandles[metaBuilding.id]; diff --git a/src/js/game/hud/parts/building_placer_logic.js b/src/js/game/hud/parts/building_placer_logic.js index d0737df8..97db9102 100644 --- a/src/js/game/hud/parts/building_placer_logic.js +++ b/src/js/game/hud/parts/building_placer_logic.js @@ -504,7 +504,15 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { index >= 0, "Current variant was invalid: " + this.currentVariant.get() + " out of " + availableVariants ); - const newIndex = (index + 1) % availableVariants.length; + + let addIndex; + if (this.root.keyMapper.getBinding(KEYMAPPINGS.placement.rotateInverseModifier).pressed) { + addIndex = availableVariants.length - 1; + } else { + addIndex = 1; + } + + const newIndex = (index + addIndex) % availableVariants.length; const newVariant = availableVariants[newIndex]; this.currentVariant.set(newVariant);