From 61f6d2fdd4366d280c8a079f682fc26a1cbb3e66 Mon Sep 17 00:00:00 2001 From: evanpelle Date: Mon, 18 May 2026 09:10:05 -0700 Subject: [PATCH] restore alt-view (space hold) toggle MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit InputHandler still emits AlternateViewEvent on space down/up, and the renderer still has setAltView. The bridge between them lived in MapInteraction's applyAltView, which got deleted with the rest of MapInteraction — nothing was wiring the event to the view anymore. Expose view.setAltView and have ClientGameRunner subscribe. --- src/client/ClientGameRunner.ts | 6 ++++++ src/client/render/gl/GameView.ts | 3 +++ 2 files changed, 9 insertions(+) diff --git a/src/client/ClientGameRunner.ts b/src/client/ClientGameRunner.ts index db807385f..0bae6d0f2 100644 --- a/src/client/ClientGameRunner.ts +++ b/src/client/ClientGameRunner.ts @@ -37,6 +37,7 @@ import { import { WorkerClient } from "../core/worker/WorkerClient"; import { getPersistentID } from "./Auth"; import { + AlternateViewEvent, AutoUpgradeEvent, DoBoatAttackEvent, DoBreakAllianceEvent, @@ -445,6 +446,11 @@ async function createClientGame( (e) => applyDayNightMode((e as CustomEvent).detail === "true"), ); + // Space-hold (and the settings-modal toggle) drives the affiliation + // recolor. InputHandler emits AlternateViewEvent; the WebGL view needs + // setAltView called to switch passes into alt mode. + eventBus.on(AlternateViewEvent, (e) => view.setAltView(e.alternateView)); + const gameRenderer = createRenderer( inputOverlay, gameView, diff --git a/src/client/render/gl/GameView.ts b/src/client/render/gl/GameView.ts index d0f68b4fa..8108514e5 100644 --- a/src/client/render/gl/GameView.ts +++ b/src/client/render/gl/GameView.ts @@ -321,6 +321,9 @@ export class GameView { setLocalPlayerID(id: number): void { this.renderer.setLocalPlayerID(id); } + setAltView(active: boolean): void { + this.renderer.setAltView(active); + } setHighlightOwner(ownerID: number): void { this.renderer.setHighlightOwner(ownerID); }