diff --git a/src/ts/parser.svelte.ts b/src/ts/parser.svelte.ts index b510787e..db67685f 100644 --- a/src/ts/parser.svelte.ts +++ b/src/ts/parser.svelte.ts @@ -375,10 +375,14 @@ async function parseAdditionalAssets(data:string, char:simpleCharacterArgument|c } function getClosestMatch(name:string, assetPaths:{[key:string]:{path:string, ext?:string}}){ + if(Object.keys(assetPaths).length === 0){ return null } + const perf = performance.now() + + //Levenshtein distance, old with 2d array const dest = (a:string, b:string) => { let d:Int16Array[] = [] @@ -406,15 +410,52 @@ function getClosestMatch(name:string, assetPaths:{[key:string]:{path:string, ext return d[a.length][b.length]; } + //Levenshtein distance, new with 1d array + const dest2 = (a:string, b:string) => { + const h = a.length + 1 + const w = b.length + 1 + let d = new Int16Array(h * w) + for(let i=0;i