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); }