Add character-specific aliases to the Action enum #15
Labels
No labels
area/contracts
area/documentation
area/observability
area/testing
good-first-slice
priority
p0
priority
p1
priority
p2
priority
p3
risk/legal
risk/security
status
blocked
type
epic
type
feature
type
spike
type
task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LiveMindIO/libmelee#15
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Actionis a single global enum, but Melee action IDs above the common state range are character-relative. The same raw value therefore has different meanings for different fighters. For example, raw action341is canonically namedLASER_GUN_PULL, but for Mewtwo it is Shadow Ball ground charge startup; raw action369is canonicallyMARTH_COUNTER, but for Donkey Kong it is Giant Punch ground charge startup.Current character-aware tables correctly retain the fighter as part of interpretation, but declarations such as
Action(341)are difficult to read and audit.Proposed change
Add explicit character-prefixed aliases for character-relative action states, for example:
Derive and verify aliases against the authoritative per-character doldecomp
MotionStatetables rather than formatted action labels.Python enum aliases intentionally share identity with the first declared member. Consequently, this change improves source readability only:
Action(341).namewill remain the canonical first name, and runtime interpretation must continue using(Character, Action)rather than treating an alias as distinct state.Acceptance criteria
.namebehavior.341and DK/Marth at369.Reference
github.com/doldecomp/melee@68f92c47d6/src/melee/ft/chara