Kelsidavis-WoWee/Data/opcodes/aliases.json
Kelsi 610ed71922 Opcode registry: move to generated canonical+alias pipeline
Introduce data-driven opcode registry with canonical and alias sources:

- Added Data/opcodes/canonical.json as the single canonical LogicalOpcode set.

- Added Data/opcodes/aliases.json for cross-core naming aliases (CMaNGOS/AzerothCore/local legacy).

Added generator and generated include fragments:

- tools/gen_opcode_registry.py emits include/game/opcode_enum_generated.inc, include/game/opcode_names_generated.inc, and include/game/opcode_aliases_generated.inc.

- include/game/opcode_table.hpp now consumes generated enum entries.

- src/game/opcode_table.cpp now consumes generated name and alias tables.

Loader canonicalization behavior:

- OpcodeTable::nameToLogical canonicalizes incoming JSON opcode names via alias table before enum lookup, so implementation code stays stable while expansion maps can use different core spellings.

Validation and build integration:

- Added tools/validate_opcode_maps.py to validate canonical contract across expansions.

- Added CMake targets opcodes-generate and opcodes-validate.

- wowee target now depends on opcodes-generate so generated headers stay current.

Validation/build run:

- cmake -S . -B build

- cmake --build build --target opcodes-generate opcodes-validate

- cmake --build build -j32
2026-02-20 03:02:31 -08:00

47 lines
2.4 KiB
JSON

{
"aliases": {
"CMSG_GAMEOBJECT_USE": "CMSG_GAMEOBJ_USE",
"CMSG_GUILD_DECLINE_INVITATION": "CMSG_GUILD_DECLINE",
"CMSG_GUILD_DEMOTE_MEMBER": "CMSG_GUILD_DEMOTE",
"CMSG_GUILD_GET_ROSTER": "CMSG_GUILD_ROSTER",
"CMSG_GUILD_PROMOTE_MEMBER": "CMSG_GUILD_PROMOTE",
"CMSG_MOVE_FALL_LAND": "MSG_MOVE_FALL_LAND",
"CMSG_MOVE_HEARTBEAT": "MSG_MOVE_HEARTBEAT",
"CMSG_MOVE_JUMP": "MSG_MOVE_JUMP",
"CMSG_MOVE_SET_FACING": "MSG_MOVE_SET_FACING",
"CMSG_MOVE_START_BACKWARD": "MSG_MOVE_START_BACKWARD",
"CMSG_MOVE_START_FORWARD": "MSG_MOVE_START_FORWARD",
"CMSG_MOVE_START_STRAFE_LEFT": "MSG_MOVE_START_STRAFE_LEFT",
"CMSG_MOVE_START_STRAFE_RIGHT": "MSG_MOVE_START_STRAFE_RIGHT",
"CMSG_MOVE_START_SWIM": "MSG_MOVE_START_SWIM",
"CMSG_MOVE_START_TURN_LEFT": "MSG_MOVE_START_TURN_LEFT",
"CMSG_MOVE_START_TURN_RIGHT": "MSG_MOVE_START_TURN_RIGHT",
"CMSG_MOVE_STOP": "MSG_MOVE_STOP",
"CMSG_MOVE_STOP_STRAFE": "MSG_MOVE_STOP_STRAFE",
"CMSG_MOVE_STOP_SWIM": "MSG_MOVE_STOP_SWIM",
"CMSG_MOVE_STOP_TURN": "MSG_MOVE_STOP_TURN",
"CMSG_REQUEST_PLAYED_TIME": "CMSG_PLAYED_TIME",
"CMSG_SHOWING_CLOAK": "CMSG_SHOWING_CLOAK",
"CMSG_SHOWING_HELM": "CMSG_SHOWING_HELM",
"CMSG_STAND_STATE_CHANGE": "CMSG_STANDSTATECHANGE",
"CMSG_TOGGLE_CLOAK": "CMSG_SHOWING_CLOAK",
"CMSG_TOGGLE_HELM": "CMSG_SHOWING_HELM",
"SMSG_BATTLEFIELD_PORT_DENIED": "SMSG_BATTLEFIELD_PORT_DENIED",
"SMSG_CAST_FAILED": "SMSG_CAST_FAILED",
"SMSG_CAST_RESULT": "SMSG_CAST_FAILED",
"SMSG_ENVIRONMENTALDAMAGELOG": "SMSG_ENVIRONMENTAL_DAMAGE_LOG",
"SMSG_INIT_EXTRA_AURA_INFO": "SMSG_INIT_EXTRA_AURA_INFO_OBSOLETE",
"SMSG_INSPECT": "SMSG_INSPECT_RESULTS_UPDATE",
"SMSG_INSPECT_RESULTS": "SMSG_INSPECT_RESULTS_UPDATE",
"SMSG_PUREMOUNT_CANCELLED_OBSOLETE": "SMSG_REMOVED_FROM_PVP_QUEUE",
"SMSG_QUEST_FORCE_REMOVE": "SMSG_QUEST_FORCE_REMOVE",
"SMSG_REMOVED_FROM_PVP_QUEUE": "SMSG_REMOVED_FROM_PVP_QUEUE",
"SMSG_SET_EXTRA_AURA_INFO": "SMSG_SET_EXTRA_AURA_INFO_OBSOLETE",
"SMSG_SET_REST_START": "SMSG_QUEST_FORCE_REMOVE",
"SMSG_SPLINE_MOVE_SET_RUN_BACK_SPEED": "SMSG_SPLINE_SET_RUN_BACK_SPEED",
"SMSG_SPLINE_MOVE_SET_RUN_SPEED": "SMSG_SPLINE_SET_RUN_SPEED",
"SMSG_SPLINE_MOVE_SET_SWIM_SPEED": "SMSG_SPLINE_SET_SWIM_SPEED",
"SMSG_UPDATE_AURA_DURATION": "SMSG_EQUIPMENT_SET_SAVED",
"SMSG_VICTIMSTATEUPDATE_OBSOLETE": "SMSG_BATTLEFIELD_PORT_DENIED"
}
}