Show full character names in actor editor

Add ActorDisplayNames lookup with names from savegame.ksy doc comments
(e.g. "Pepper Roni", "Mama Brickolini") instead of internal IDs.
Widen nav label min-width to 150px to prevent button shifting.
This commit is contained in:
Christian Semmler 2026-02-07 22:26:31 -08:00
parent de984a8a28
commit b18971070f
No known key found for this signature in database
GPG Key ID: 086DAA1360BEEE5C
2 changed files with 76 additions and 3 deletions

View File

@ -607,6 +607,79 @@ export const ActorInfoInit = Object.freeze([
P(null, null, 0, LC, CA, 7), P(null, null, 0, LC, CA, 7)] }
]);
/**
* Display names for the 66 actors, from savegame.ksy doc comments.
* Falls back to the internal name (ActorInfoInit[i].name) when not listed.
*/
export const ActorDisplayNames = Object.freeze([
/* 0 */ 'Pepper Roni',
/* 1 */ 'Mama Brickolini',
/* 2 */ 'Papa Brickolini',
/* 3 */ 'Nick Brick',
/* 4 */ 'Laura Brick',
/* 5 */ 'Infomaniac',
/* 6 */ 'Brickster',
/* 7 */ 'Studs Linkin',
/* 8 */ 'Rhoda Hogg',
/* 9 */ 'Valerie Stubbins',
/* 10 */ 'Snap Lockitt',
/* 11 */ 'pt',
/* 12 */ 'Maggie Post',
/* 13 */ 'Buck Pounds',
/* 14 */ 'Ed Mail',
/* 15 */ 'Nubby Stevens',
/* 16 */ 'Nancy Nubbins',
/* 17 */ 'Dr. Clickitt',
/* 18 */ 'Enter',
/* 19 */ 'Return',
/* 20 */ 'Captain D. Rom',
/* 21 */ 'Bill Ding (Race Car)',
/* 22 */ 'Bill Ding (Helicopter)',
/* 23 */ 'Bill Ding (Dune Buggy)',
/* 24 */ 'Bill Ding (Jetski)',
/* 25 */ 'Flying Legandos #1',
/* 26 */ 'Flying Legandos #2',
/* 27 */ 'Flying Legandos #3',
/* 28 */ 'Flying Legandos #4',
/* 29 */ 'Flying Legandos #5',
/* 30 */ 'Flying Legandos #6',
/* 31 */ 'Legobobs #1',
/* 32 */ 'Legobobs #2',
/* 33 */ 'Legobobs #3',
/* 34 */ 'Legobobs #4',
/* 35 */ 'Brazilian Carmen',
/* 36 */ 'Gideon Worse',
/* 37 */ 'Red Greenbase',
/* 38 */ 'Polly Gone',
/* 39 */ 'Bradford Brickford',
/* 40 */ 'Shiney Doris',
/* 41 */ 'Glen Funberg',
/* 42 */ 'Dorothy Funberg',
/* 43 */ 'Brian Shrimp',
/* 44 */ 'Luke Tepid',
/* 45 */ 'Shorty Tails',
/* 46 */ 'Bumpy Kindergreen',
/* 47 */ "Jack O'Trades",
/* 48 */ 'Ghost #1',
/* 49 */ 'Ghost #2',
/* 50 */ 'Ghost #3',
/* 51 */ 'Ghost #4',
/* 52 */ 'Ghost #5',
/* 53 */ 'Ghost #6',
/* 54 */ 'hg',
/* 55 */ 'pntgy',
/* 56 */ 'pep',
/* 57 */ 'cop01',
/* 58 */ 'actor_01',
/* 59 */ 'actor_02',
/* 60 */ 'actor_03',
/* 61 */ 'actor_04',
/* 62 */ 'actor_05',
/* 63 */ 'btmncycl',
/* 64 */ 'cboycycl',
/* 65 */ 'boatman'
]);
/**
* Save file field offsets within the 16-byte character record.
* The save file stores these per-character values that override defaults:

View File

@ -2,7 +2,7 @@
import { onMount, onDestroy } from 'svelte';
import { ActorRenderer } from '../../core/rendering/ActorRenderer.js';
import { WdbParser, buildGlobalPartsMap } from '../../core/formats/WdbParser.js';
import { ActorInfoInit, ActorPart } from '../../core/savegame/actorConstants.js';
import { ActorInfoInit, ActorPart, ActorDisplayNames } from '../../core/savegame/actorConstants.js';
import { Actor } from '../../core/savegame/constants.js';
import NavButton from '../NavButton.svelte';
import ResetButton from '../ResetButton.svelte';
@ -24,7 +24,7 @@
let loadedActorKey = null;
$: actorInfo = ActorInfoInit[actorIndex];
$: actorName = actorInfo?.name || 'Unknown';
$: actorName = ActorDisplayNames[actorIndex] || actorInfo?.name || 'Unknown';
$: charState = slot?.characters?.[actorIndex];
$: isDefault = actorInfo && charState &&
@ -317,7 +317,7 @@
.part-info {
text-align: center;
min-width: 100px;
min-width: 150px;
}
.actor-index {