diff --git a/src/core/formats/SaveGameParser.js b/src/core/formats/SaveGameParser.js index fa4c4c0..f3e71fd 100644 --- a/src/core/formats/SaveGameParser.js +++ b/src/core/formats/SaveGameParser.js @@ -325,19 +325,18 @@ export class SaveGameParser { // Conditional textures based on which planes have names const textures = new Map(); - const textureOrder = []; if (planes[3].nameLength > 0) { - for (let i = 0; i < 3; i++) textureOrder.push(this.readAct1Texture(textures)); + for (let i = 0; i < 3; i++) this.readAct1Texture(textures); } if (planes[4].nameLength > 0) { - for (let i = 0; i < 2; i++) textureOrder.push(this.readAct1Texture(textures)); + for (let i = 0; i < 2; i++) this.readAct1Texture(textures); } if (planes[5].nameLength > 0) { - textureOrder.push(this.readAct1Texture(textures)); + this.readAct1Texture(textures); } if (planes[6].nameLength > 0) { - for (let i = 0; i < 3; i++) textureOrder.push(this.readAct1Texture(textures)); + for (let i = 0; i < 3; i++) this.readAct1Texture(textures); } // Final fields @@ -347,7 +346,6 @@ export class SaveGameParser { this.parsed.act1State = { planes, textures, - textureOrder, startOffset, endOffset: this.reader.tell(), cptClickDialogueNextIndex, diff --git a/src/core/savegame/textureStorage.js b/src/core/savegame/textureStorage.js index 7618757..c54af23 100644 --- a/src/core/savegame/textureStorage.js +++ b/src/core/savegame/textureStorage.js @@ -21,6 +21,9 @@ function openDB() { request.onsuccess = () => resolve(request.result); request.onerror = () => reject(request.error); + }).catch((err) => { + dbPromise = null; + throw err; }); return dbPromise; diff --git a/src/lib/save-editor/TexturePickerModal.svelte b/src/lib/save-editor/TexturePickerModal.svelte index 83bf10d..38ad4a3 100644 --- a/src/lib/save-editor/TexturePickerModal.svelte +++ b/src/lib/save-editor/TexturePickerModal.svelte @@ -70,13 +70,13 @@ return canvas.toDataURL(); } - function selectDefault(tex) { + function applyTexture(tex) { onSelect({ width: tex.width, height: tex.height, palette: tex.palette, pixels: tex.pixels, - paletteSize: tex.palette.length + paletteSize: tex.paletteSize || tex.palette.length }); } @@ -86,14 +86,7 @@ function applyCustom() { const tex = customTextures.find(t => t.id === selectedCustomId); - if (!tex) return; - onSelect({ - width: tex.width, - height: tex.height, - palette: tex.palette, - pixels: tex.pixels, - paletteSize: tex.paletteSize - }); + if (tex) applyTexture(tex); } function handleUploadClick() { @@ -194,7 +187,7 @@