diff --git a/src/mapviewer/webgl/WebGLMapViewerRenderer.ts b/src/mapviewer/webgl/WebGLMapViewerRenderer.ts index b8fd98d..e372af9 100644 --- a/src/mapviewer/webgl/WebGLMapViewerRenderer.ts +++ b/src/mapviewer/webgl/WebGLMapViewerRenderer.ts @@ -145,8 +145,9 @@ export class WebGLMapViewerRenderer extends MapViewerRenderer { msaaEnabled: boolean = false; fxaaEnabled: boolean = false; - loadObjs: boolean = true; - loadNpcs: boolean = true; + loadObjs: boolean = false; + loadNpcs: boolean = false; + loadLocs: boolean = false; // 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,13 @@ 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