From ba8079882a60c0e2311a4eb5ebd92642036c208c Mon Sep 17 00:00:00 2001 From: Christopher Monsanto Date: Wed, 26 Aug 2020 08:24:06 -0400 Subject: [PATCH] pokemon sheet use spritename parsing --- ps-pokemon.sheet.mjs | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/ps-pokemon.sheet.mjs b/ps-pokemon.sheet.mjs index e05d31d0..820da302 100644 --- a/ps-pokemon.sheet.mjs +++ b/ps-pokemon.sheet.mjs @@ -484,28 +484,22 @@ const entries = []; for (const name of fs.readdirSync(spritesDir)) { const parsed = path.parse(name); - const m = parsed.name.match(/^([^-]+)(.*)$/); - if (!m) { + const sn = spritedata.parseFilename(parsed.name); + if (!sn) { throw new Error(`can't parse ${name}`); } - const [, sid, flagstr] = m; - - const flags = new Map; - for (let [, flag, data] of flagstr.matchAll(/-([a-z])([^-]*)/g)) { - flags.set(flag, data); - } let entry; try { - entry = spritedata.get(parseInt(sid)); + entry = spritedata.get(parseInt(sn.id)); } catch(e) {} - let id = toPSID(entry ? entry.base + entry.forme : sid); + let id = toPSID(entry ? entry.base + entry.forme : sn.id); - if (flags.has("f")) id += 'f'; - if (flags.has("g")) id += 'gmax'; + if (sn.extra.has("f")) id += 'f'; + if (sn.extra.has("g")) id += 'gmax'; let index; - if (flags.has("a")) { + if (sn.extra.has("a")) { index = BattlePokemonIconIndexesLeft[id]; BattlePokemonIconIndexesLeft[id] = 'found'; } else {