Skip to content

Commit 0d8616d

Browse files
committed
Add a new Locs option to disable Loc loading.
1 parent b0478a8 commit 0d8616d

File tree

4 files changed

+30
-6
lines changed

4 files changed

+30
-6
lines changed

src/mapviewer/webgl/WebGLMapViewerRenderer.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,9 @@ export class WebGLMapViewerRenderer extends MapViewerRenderer<WebGLMapSquare> {
145145
msaaEnabled: boolean = false;
146146
fxaaEnabled: boolean = false;
147147

148-
loadObjs: boolean = true;
149-
loadNpcs: boolean = true;
148+
loadObjs: boolean = false;
149+
loadNpcs: boolean = false;
150+
loadLocs: boolean = false;
150151

151152
// State
152153
lastClientTick: number = 0;
@@ -618,6 +619,12 @@ export class WebGLMapViewerRenderer extends MapViewerRenderer<WebGLMapSquare> {
618619
this.setLoadNpcs(v);
619620
},
620621
},
622+
Locs: {
623+
value: this.loadLocs,
624+
onChange: (v: boolean) => {
625+
this.setLoadLocs(v);
626+
},
627+
},
621628
},
622629
{ collapsed: true },
623630
),
@@ -635,6 +642,7 @@ export class WebGLMapViewerRenderer extends MapViewerRenderer<WebGLMapSquare> {
635642
maxLevel: this.maxLevel,
636643
loadObjs: this.loadObjs,
637644
loadNpcs: this.loadNpcs,
645+
loadLocs: this.loadLocs,
638646
smoothTerrain: this.smoothTerrain,
639647
minimizeDrawCalls: !this.hasMultiDraw,
640648
loadedTextureIds: this.loadedTextureIds,
@@ -699,6 +707,7 @@ export class WebGLMapViewerRenderer extends MapViewerRenderer<WebGLMapSquare> {
699707
mapData.maxLevel === this.maxLevel &&
700708
mapData.loadObjs === this.loadObjs &&
701709
mapData.loadNpcs === this.loadNpcs &&
710+
mapData.loadLocs === this.loadLocs &&
702711
mapData.smoothTerrain === this.smoothTerrain
703712
);
704713
}
@@ -758,6 +767,13 @@ export class WebGLMapViewerRenderer extends MapViewerRenderer<WebGLMapSquare> {
758767
}
759768
}
760769

770+
setLoadLocs(enabled: boolean): void {
771+
const updated = this.loadLocs !== enabled;
772+
this.loadLocs = enabled;
773+
if (updated) {
774+
this.clearMaps();
775+
}
776+
}
761777
override onResize(width: number, height: number): void {
762778
this.app.resize(width, height);
763779
}

src/mapviewer/webgl/loader/SdMapData.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export type SdMapData = {
1212
maxLevel: number;
1313
loadObjs: boolean;
1414
loadNpcs: boolean;
15+
loadLocs: boolean;
1516

1617
smoothTerrain: boolean;
1718

src/mapviewer/webgl/loader/SdMapDataLoader.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import { createNpcDatas } from "../npc/NpcData";
3636
import { NpcSpawnGroup } from "../npc/NpcSpawnGroup";
3737
import { SdMapData } from "./SdMapData";
3838
import { SdMapLoaderInput } from "./SdMapLoaderInput";
39+
import { LocAnimatedData } from "../loc/LocAnimatedData";
3940

4041
function loadHeightMapTextureData(scene: Scene): Int16Array {
4142
const heightMapTextureData = new Int16Array(Scene.MAX_LEVELS * scene.sizeX * scene.sizeY);
@@ -557,6 +558,7 @@ export class SdMapDataLoader implements RenderDataLoader<SdMapLoaderInput, SdMap
557558
maxLevel,
558559
loadObjs,
559560
loadNpcs,
561+
loadLocs,
560562
smoothTerrain,
561563
minimizeDrawCalls,
562564
loadedTextureIds,
@@ -614,11 +616,14 @@ export class SdMapDataLoader implements RenderDataLoader<SdMapLoaderInput, SdMap
614616
createObjSceneModels(objModelLoader, sceneModels, scene, borderSize, objSpawns);
615617
}
616618

617-
addSceneModels(this.modelHashBuf!, textureLoader, sceneBuf, sceneModels, minimizeDrawCalls);
619+
let locsAnimated: LocAnimatedData[] = [];
620+
if (loadLocs) {
621+
addSceneModels(this.modelHashBuf!, textureLoader, sceneBuf, sceneModels, minimizeDrawCalls);
618622

619-
// Animated locs
620-
const locsAnimated = sceneBuf.addLocAnimatedGroups(locAnimatedGroups);
621-
console.log(`animated locs: ${locsAnimated.length}`);
623+
// Animated locs
624+
locsAnimated = sceneBuf.addLocAnimatedGroups(locAnimatedGroups);
625+
console.log(`animated locs: ${locsAnimated.length}`);
626+
}
622627

623628
// Npcs
624629

@@ -784,6 +789,7 @@ export class SdMapDataLoader implements RenderDataLoader<SdMapLoaderInput, SdMap
784789
maxLevel,
785790
loadObjs,
786791
loadNpcs,
792+
loadLocs,
787793

788794
smoothTerrain,
789795

src/mapviewer/webgl/loader/SdMapLoaderInput.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export type SdMapLoaderInput = {
55
maxLevel: number;
66
loadObjs: boolean;
77
loadNpcs: boolean;
8+
loadLocs: boolean;
89

910
smoothTerrain: boolean;
1011

0 commit comments

Comments
 (0)