From 3e98507d8c1c55990490a6de66b2781d8e9fced7 Mon Sep 17 00:00:00 2001 From: Joao Matos Date: Sat, 4 May 2024 14:29:35 +0100 Subject: [PATCH] Add a new `Locs` option to disable Loc loading. --- src/mapviewer/webgl/WebGLMapViewerRenderer.ts | 17 +++++++++++++++++ src/mapviewer/webgl/loader/SdMapData.ts | 1 + src/mapviewer/webgl/loader/SdMapDataLoader.ts | 14 ++++++++++---- src/mapviewer/webgl/loader/SdMapLoaderInput.ts | 1 + 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/mapviewer/webgl/WebGLMapViewerRenderer.ts b/src/mapviewer/webgl/WebGLMapViewerRenderer.ts index b8fd98d..0642f11 100644 --- a/src/mapviewer/webgl/WebGLMapViewerRenderer.ts +++ b/src/mapviewer/webgl/WebGLMapViewerRenderer.ts @@ -147,6 +147,7 @@ export class WebGLMapViewerRenderer extends MapViewerRenderer { loadObjs: boolean = true; loadNpcs: boolean = true; + loadLocs: boolean = true; // State lastClientTick: number = 0; @@ -618,6 +619,12 @@ export class WebGLMapViewerRenderer extends MapViewerRenderer { this.setLoadNpcs(v); }, }, + Locs: { + value: this.loadLocs, + onChange: (v: boolean) => { + this.setLoadLocs(v); + }, + }, }, { collapsed: true }, ), @@ -635,6 +642,7 @@ export class WebGLMapViewerRenderer extends MapViewerRenderer { maxLevel: this.maxLevel, loadObjs: this.loadObjs, loadNpcs: this.loadNpcs, + loadLocs: this.loadLocs, smoothTerrain: this.smoothTerrain, minimizeDrawCalls: !this.hasMultiDraw, loadedTextureIds: this.loadedTextureIds, @@ -699,6 +707,7 @@ export class WebGLMapViewerRenderer extends MapViewerRenderer { mapData.maxLevel === this.maxLevel && mapData.loadObjs === this.loadObjs && mapData.loadNpcs === this.loadNpcs && + mapData.loadLocs === this.loadLocs && mapData.smoothTerrain === this.smoothTerrain ); } @@ -758,6 +767,14 @@ export class WebGLMapViewerRenderer extends MapViewerRenderer { } } + setLoadLocs(enabled: boolean): void { + const updated = this.loadLocs !== enabled; + this.loadLocs = enabled; + if (updated) { + this.clearMaps(); + } + } + override onResize(width: number, height: number): void { this.app.resize(width, height); } diff --git a/src/mapviewer/webgl/loader/SdMapData.ts b/src/mapviewer/webgl/loader/SdMapData.ts index cb0cc2d..a77f11e 100644 --- a/src/mapviewer/webgl/loader/SdMapData.ts +++ b/src/mapviewer/webgl/loader/SdMapData.ts @@ -12,6 +12,7 @@ export type SdMapData = { maxLevel: number; loadObjs: boolean; loadNpcs: boolean; + loadLocs: boolean; smoothTerrain: boolean; diff --git a/src/mapviewer/webgl/loader/SdMapDataLoader.ts b/src/mapviewer/webgl/loader/SdMapDataLoader.ts index 1cef567..37869ef 100644 --- a/src/mapviewer/webgl/loader/SdMapDataLoader.ts +++ b/src/mapviewer/webgl/loader/SdMapDataLoader.ts @@ -36,6 +36,7 @@ import { createNpcDatas } from "../npc/NpcData"; import { NpcSpawnGroup } from "../npc/NpcSpawnGroup"; import { SdMapData } from "./SdMapData"; import { SdMapLoaderInput } from "./SdMapLoaderInput"; +import { LocAnimatedData } from "../loc/LocAnimatedData"; function loadHeightMapTextureData(scene: Scene): Int16Array { const heightMapTextureData = new Int16Array(Scene.MAX_LEVELS * scene.sizeX * scene.sizeY); @@ -557,6 +558,7 @@ export class SdMapDataLoader implements RenderDataLoader