Harden keyboard and camera routing, inventory and vendor interactions, chat/emotes, relog portal flow, and paperdoll rendering. Add retail research, connected gate coverage, and release-gate validation.
488 lines
17 KiB
C#
488 lines
17 KiB
C#
namespace AcDream.UI.Abstractions.Input;
|
||
|
||
/// <summary>
|
||
/// High-level input actions. Each name matches an entry in the retail
|
||
/// <c>acclient.keymap</c> "Bindings" header (see
|
||
/// <c>docs/research/named-retail/retail-default.keymap.txt</c>). The
|
||
/// <c>Acdream*</c> entries at the bottom are extensions for current
|
||
/// debug bindings that have no retail equivalent.
|
||
///
|
||
/// <para>
|
||
/// The installed Sept-2013 ActionMap's 306 user-bindable rows each have one
|
||
/// distinct enum identity and one live subsystem consumer. Low, non-bindable
|
||
/// MasterInputMap commands remain separate infrastructure actions.
|
||
/// </para>
|
||
/// </summary>
|
||
public enum InputAction
|
||
{
|
||
/// <summary>Sentinel — no action. Reserved for "unbound".</summary>
|
||
None = 0,
|
||
|
||
// ── MovementCommands ──────────────────────────────────
|
||
/// <summary>Move forward (run by default; walk if <see cref="MovementWalkMode"/> active).</summary>
|
||
MovementForward,
|
||
/// <summary>Move backward.</summary>
|
||
MovementBackup,
|
||
/// <summary>Turn the character to the left.</summary>
|
||
MovementTurnLeft,
|
||
/// <summary>Turn the character to the right.</summary>
|
||
MovementTurnRight,
|
||
/// <summary>Strafe (sidestep) to the left.</summary>
|
||
MovementStrafeLeft,
|
||
/// <summary>Strafe (sidestep) to the right.</summary>
|
||
MovementStrafeRight,
|
||
/// <summary>Hold-modifier — toggles forward motion to walk while held (retail Shift).</summary>
|
||
MovementWalkMode,
|
||
/// <summary>Toggle autorun on/off (retail Q).</summary>
|
||
MovementRunLock,
|
||
/// <summary>Charged jump — hold to power, release to launch.</summary>
|
||
MovementJump,
|
||
/// <summary>Cancel current motion / return to ready stance.</summary>
|
||
MovementStop,
|
||
/// <summary>Ready posture / sheathe-unsheathe (retail Y).</summary>
|
||
Ready,
|
||
/// <summary>Sit posture (retail G).</summary>
|
||
Sitting,
|
||
/// <summary>Crouch posture (retail H).</summary>
|
||
Crouch,
|
||
/// <summary>Sleep posture (retail B).</summary>
|
||
Sleeping,
|
||
|
||
// ── ItemSelectionCommands ─────────────────────────────
|
||
/// <summary>Pick up the selected item.</summary>
|
||
SelectionPickUp,
|
||
/// <summary>Split a stack of the selected item.</summary>
|
||
SelectionSplitStack,
|
||
/// <summary>Cycle back to the previous selection.</summary>
|
||
SelectionPreviousSelection,
|
||
/// <summary>Closest compass-tracked item.</summary>
|
||
SelectionClosestCompassItem,
|
||
/// <summary>Previous compass-tracked item.</summary>
|
||
SelectionPreviousCompassItem,
|
||
/// <summary>Next compass-tracked item.</summary>
|
||
SelectionNextCompassItem,
|
||
/// <summary>Closest item in radius.</summary>
|
||
SelectionClosestItem,
|
||
/// <summary>Previous item in radius.</summary>
|
||
SelectionPreviousItem,
|
||
/// <summary>Next item in radius.</summary>
|
||
SelectionNextItem,
|
||
/// <summary>Closest monster.</summary>
|
||
SelectionClosestMonster,
|
||
/// <summary>Previous monster.</summary>
|
||
SelectionPreviousMonster,
|
||
/// <summary>Next monster.</summary>
|
||
SelectionNextMonster,
|
||
/// <summary>Most-recent attacker (for retaliation).</summary>
|
||
SelectionLastAttacker,
|
||
/// <summary>Closest player.</summary>
|
||
SelectionClosestPlayer,
|
||
/// <summary>Previous player.</summary>
|
||
SelectionPreviousPlayer,
|
||
/// <summary>Next player.</summary>
|
||
SelectionNextPlayer,
|
||
/// <summary>Previous fellow.</summary>
|
||
SelectionPreviousFellow,
|
||
/// <summary>Next fellow.</summary>
|
||
SelectionNextFellow,
|
||
/// <summary>Examine (Appraise) the current selection.</summary>
|
||
SelectionExamine,
|
||
|
||
// ── UICommands ────────────────────────────────────────
|
||
/// <summary>Use the selected item / interact (retail R).</summary>
|
||
UseSelected,
|
||
/// <summary>
|
||
/// Retail Escape priority: cancel focused UI/targeting/movement, clear
|
||
/// selection, then toggle the Gameplay Options page.
|
||
/// </summary>
|
||
EscapeKey,
|
||
/// <summary>Log out of the game (retail Shift+Esc).</summary>
|
||
LOGOUT,
|
||
/// <summary>Toggle the help / control reference panel (retail F1).</summary>
|
||
ToggleHelp,
|
||
/// <summary>Toggle the plugin manager panel (retail F1+Shift+Ctrl).</summary>
|
||
TogglePluginManager,
|
||
/// <summary>Toggle the allegiance panel (retail F3).</summary>
|
||
ToggleAllegiancePanel,
|
||
/// <summary>Toggle the fellowship panel (retail F4).</summary>
|
||
ToggleFellowshipPanel,
|
||
/// <summary>Toggle the spellbook panel (retail F5).</summary>
|
||
ToggleSpellbookPanel,
|
||
/// <summary>Toggle the spell-components panel (retail F6).</summary>
|
||
ToggleSpellComponentsPanel,
|
||
/// <summary>Toggle the attributes panel (retail F8).</summary>
|
||
ToggleAttributesPanel,
|
||
/// <summary>Toggle the skills panel (retail F9).</summary>
|
||
ToggleSkillsPanel,
|
||
/// <summary>Toggle the world / map panel (retail F10).</summary>
|
||
ToggleWorldPanel,
|
||
/// <summary>Toggle the options / settings panel (retail F11) — opens
|
||
/// the retail Options panel (Campaign OP, D1). Superseded the K.3-era
|
||
/// ImGui SettingsPanel this action originally opened; that surface was
|
||
/// never rendered after Campaign V slice V11 and was retired outright
|
||
/// at OP9.</summary>
|
||
ToggleOptionsPanel,
|
||
/// <summary>Toggle the inventory panel (retail F12).</summary>
|
||
ToggleInventoryPanel,
|
||
/// <summary>Toggle floating chat window 1 (retail Alt+1).</summary>
|
||
ToggleFloatingChatWindow1,
|
||
/// <summary>Toggle floating chat window 2.</summary>
|
||
ToggleFloatingChatWindow2,
|
||
/// <summary>Toggle floating chat window 3.</summary>
|
||
ToggleFloatingChatWindow3,
|
||
/// <summary>Toggle floating chat window 4.</summary>
|
||
ToggleFloatingChatWindow4,
|
||
/// <summary>Capture a screenshot (retail PrintScreen).</summary>
|
||
CaptureScreenshot,
|
||
|
||
// ── QuickslotCommands ─────────────────────────────────
|
||
UseQuickSlot_1,
|
||
UseQuickSlot_2,
|
||
UseQuickSlot_3,
|
||
UseQuickSlot_4,
|
||
UseQuickSlot_5,
|
||
UseQuickSlot_6,
|
||
UseQuickSlot_7,
|
||
UseQuickSlot_8,
|
||
UseQuickSlot_9,
|
||
SelectQuickSlot_1,
|
||
SelectQuickSlot_2,
|
||
SelectQuickSlot_3,
|
||
SelectQuickSlot_4,
|
||
SelectQuickSlot_5,
|
||
SelectQuickSlot_6,
|
||
SelectQuickSlot_7,
|
||
SelectQuickSlot_8,
|
||
SelectQuickSlot_9,
|
||
UseQuickSlot_14,
|
||
UseQuickSlot_15,
|
||
UseQuickSlot_16,
|
||
UseQuickSlot_17,
|
||
UseQuickSlot_18,
|
||
/// <summary>Create a toolbar shortcut to the selected object (retail 0).</summary>
|
||
CreateShortcut,
|
||
|
||
// ── Chat ──────────────────────────────────────────────
|
||
/// <summary>Focus the chat input field (retail Tab).</summary>
|
||
ToggleChatEntry,
|
||
/// <summary>Send the current chat-input contents (retail Return).</summary>
|
||
EnterChatMode,
|
||
|
||
// ── Combat ────────────────────────────────────────────
|
||
/// <summary>Toggle combat-stance on/off (retail Grave / `).</summary>
|
||
CombatToggleCombat,
|
||
// Mode-dependent retail combat actions.
|
||
CombatDecreaseAttackPower,
|
||
CombatIncreaseAttackPower,
|
||
CombatLowAttack,
|
||
CombatMediumAttack,
|
||
CombatHighAttack,
|
||
CombatDecreaseMissileAccuracy,
|
||
CombatIncreaseMissileAccuracy,
|
||
CombatAimLow,
|
||
CombatAimMedium,
|
||
CombatAimHigh,
|
||
CombatPrevSpellTab,
|
||
CombatNextSpellTab,
|
||
CombatPrevSpell,
|
||
CombatCastCurrentSpell,
|
||
CombatNextSpell,
|
||
CombatFirstSpellTab,
|
||
CombatLastSpellTab,
|
||
CombatFirstSpell,
|
||
CombatLastSpell,
|
||
UseSpellSlot_1,
|
||
UseSpellSlot_2,
|
||
UseSpellSlot_3,
|
||
UseSpellSlot_4,
|
||
UseSpellSlot_5,
|
||
UseSpellSlot_6,
|
||
UseSpellSlot_7,
|
||
UseSpellSlot_8,
|
||
UseSpellSlot_9,
|
||
|
||
// ── Emotes ────────────────────────────────────────────
|
||
/// <summary>Cry emote (retail U).</summary>
|
||
Cry,
|
||
/// <summary>Laugh emote (retail I).</summary>
|
||
Laugh,
|
||
/// <summary>Cheer emote — celebratory jump (retail O).</summary>
|
||
Cheer,
|
||
/// <summary>Wave emote (retail J).</summary>
|
||
Wave,
|
||
/// <summary>Point emote (retail K).</summary>
|
||
PointState,
|
||
|
||
// ── Camera ────────────────────────────────────────────
|
||
/// <summary>Toggle alternate camera mode (retail F2 / Numpad-/).</summary>
|
||
CameraActivateAlternateMode,
|
||
/// <summary>Hold-MMB instant mouse-look — hardcoded behavior in K.2.</summary>
|
||
CameraInstantMouseLook,
|
||
CameraRotateLeft,
|
||
CameraRotateRight,
|
||
CameraRotateUp,
|
||
CameraRotateDown,
|
||
CameraMoveToward,
|
||
CameraMoveAway,
|
||
CameraViewDefault,
|
||
CameraViewFirstPerson,
|
||
CameraViewLookDown,
|
||
CameraViewMapMode,
|
||
|
||
// ── Scroll ────────────────────────────────────────────
|
||
/// <summary>Scroll up — wheel up or Ctrl+Up.</summary>
|
||
ScrollUp,
|
||
/// <summary>Scroll down — wheel down or Ctrl+Down.</summary>
|
||
ScrollDown,
|
||
|
||
// ── Mouse selection ───────────────────────────────────
|
||
/// <summary>Single left-click select.</summary>
|
||
SelectLeft,
|
||
/// <summary>Single right-click select.</summary>
|
||
SelectRight,
|
||
/// <summary>Single middle-click select.</summary>
|
||
SelectMid,
|
||
/// <summary>Double left-click select.</summary>
|
||
SelectDblLeft,
|
||
/// <summary>Double right-click select.</summary>
|
||
SelectDblRight,
|
||
/// <summary>Double middle-click select.</summary>
|
||
SelectDblMid,
|
||
|
||
// ── Acdream debug actions (existing F-key behavior) ──
|
||
/// <summary>F1 toggles entire DebugPanel visibility (acdream-only).</summary>
|
||
AcdreamToggleDebugPanel,
|
||
/// <summary>F2 toggles collision wireframes.</summary>
|
||
AcdreamToggleCollisionWires,
|
||
/// <summary>F3 dumps player + nearby entities to console.</summary>
|
||
AcdreamDumpNearby,
|
||
/// <summary>F7 cycles time of day.</summary>
|
||
AcdreamCycleTimeOfDay,
|
||
/// <summary>F8 decreases mouse sensitivity.</summary>
|
||
AcdreamSensitivityDown,
|
||
/// <summary>F9 increases mouse sensitivity.</summary>
|
||
AcdreamSensitivityUp,
|
||
/// <summary>F10 cycles weather.</summary>
|
||
AcdreamCycleWeather,
|
||
/// <summary>Ctrl+M mutes/unmutes all audio instantly (acdream-only —
|
||
/// retail has no master volume, let alone a mute).</summary>
|
||
AcdreamToggleAudioMute,
|
||
/// <summary>F (existing) toggles between fly camera and orbit/chase mode.</summary>
|
||
AcdreamToggleFlyMode,
|
||
/// <summary>Legacy acdream player-mode toggle. Intentionally unbound;
|
||
/// retail Tab is <see cref="InputAction.ToggleChatEntry"/>.</summary>
|
||
AcdreamTogglePlayerMode,
|
||
/// <summary>Hold-RMB chase-camera orbit (debug-only, not user-rebindable).
|
||
/// Camera orbits around the player while held; never drives character yaw.</summary>
|
||
AcdreamRmbOrbitHold,
|
||
/// <summary>Fly-camera descend (Ctrl) — only meaningful while fly camera
|
||
/// is active. K.1b binds it to ControlLeft; K.1c may rebind.</summary>
|
||
AcdreamFlyDown,
|
||
|
||
// ── AcdreamCameraCommands ─────────────────────────────
|
||
/// <summary>Camera zoom in (held key, integrates Distance−= adjSpeed·dt). Default unbound.</summary>
|
||
CameraZoomIn,
|
||
/// <summary>Camera zoom out (held key, integrates Distance+= adjSpeed·dt). Default unbound.</summary>
|
||
CameraZoomOut,
|
||
/// <summary>Camera raise (held key, integrates Pitch+= adjSpeed·dt·0.02). Default unbound.</summary>
|
||
CameraRaise,
|
||
/// <summary>Camera lower (held key, integrates Pitch−= adjSpeed·dt·0.02). Default unbound.</summary>
|
||
CameraLower,
|
||
|
||
// ── Remaining Sept-2013 retail ActionMap identities ────────────
|
||
// Appended after every pre-existing member so persisted numeric enum values
|
||
// remain stable. These are distinct even where retail reuses the same
|
||
// Action id in another InputMap (notably CameraAlternateControls).
|
||
|
||
CameraAlternateMoveToward,
|
||
CameraAlternateMoveAway,
|
||
CameraAlternateRotateLeft,
|
||
CameraAlternateRotateRight,
|
||
CameraAlternateRotateUp,
|
||
CameraAlternateRotateDown,
|
||
CameraAlternateViewDefault,
|
||
CameraAlternateViewFirstPerson,
|
||
CameraAlternateViewLookDown,
|
||
CameraAlternateViewMapMode,
|
||
|
||
UseSpellSlot_10,
|
||
UseSpellSlot_11,
|
||
UseSpellSlot_12,
|
||
|
||
EmoteAfkState,
|
||
EmoteAkimbo,
|
||
EmoteAToyotState,
|
||
EmoteAkimboState,
|
||
EmoteAtEaseState,
|
||
EmoteBeckon,
|
||
EmoteBeSeeingYou,
|
||
EmoteBlowKiss,
|
||
EmoteBowDeep,
|
||
EmoteBowDeepState,
|
||
EmoteClapHands,
|
||
EmoteClapHandsState,
|
||
EmoteCringe,
|
||
EmoteCrossArmsState,
|
||
EmoteCurtseyState,
|
||
EmoteDrudgeDance,
|
||
EmoteDrudgeDanceState,
|
||
EmoteHaveASeat,
|
||
EmoteHaveASeatState,
|
||
EmoteHeartyLaugh,
|
||
EmoteHelper,
|
||
EmoteKneel,
|
||
EmoteKneelState,
|
||
EmoteKnock,
|
||
EmoteLeanState,
|
||
EmoteMeditateState,
|
||
EmoteMimeDrinking,
|
||
EmoteMimeEating,
|
||
EmoteMock,
|
||
EmoteNod,
|
||
EmoteNudgeLeft,
|
||
EmoteNudgeRight,
|
||
EmotePlead,
|
||
EmotePleadState,
|
||
EmotePoint,
|
||
EmotePointDown,
|
||
EmotePointDownState,
|
||
EmotePointLeft,
|
||
EmotePointLeftState,
|
||
EmotePointRight,
|
||
EmotePointRightState,
|
||
EmotePossumState,
|
||
EmotePray,
|
||
EmotePrayState,
|
||
EmoteReadState,
|
||
EmoteSalute,
|
||
EmoteSaluteState,
|
||
EmoteScanHorizon,
|
||
EmoteScratchHead,
|
||
EmoteScratchHeadState,
|
||
EmoteShakeFist,
|
||
EmoteShakeFistState,
|
||
EmoteShakeHead,
|
||
EmoteShiver,
|
||
EmoteShiverState,
|
||
EmoteShoo,
|
||
EmoteShrug,
|
||
EmoteSitState,
|
||
EmoteSitBackState,
|
||
EmoteSitCrossleggedState,
|
||
EmoteSlouch,
|
||
EmoteSlouchState,
|
||
EmoteSmackHead,
|
||
EmoteSnowAngelState,
|
||
EmoteSpit,
|
||
EmoteSurrender,
|
||
EmoteSurrenderState,
|
||
EmoteTalkToTheHandState,
|
||
EmoteTapFoot,
|
||
EmoteTapFootState,
|
||
EmoteTeapot,
|
||
EmoteThinkerState,
|
||
EmoteWarmHands,
|
||
EmoteWaveState,
|
||
EmoteWaveLow,
|
||
EmoteWaveHigh,
|
||
EmoteWinded,
|
||
EmoteWindedState,
|
||
EmoteWoah,
|
||
EmoteWoahState,
|
||
EmoteYawnAndStretch,
|
||
EmoteYmca,
|
||
|
||
SelectionSelf,
|
||
SelectionPlaceInInventory,
|
||
SelectionUseClosestUnopenedCorpse,
|
||
SelectionUseNextUnopenedCorpse,
|
||
SelectionGiveToTarget,
|
||
SelectionDrop,
|
||
SelectionPlaceInMainPack,
|
||
SelectionClosestUnopenedCorpse,
|
||
SelectionNextUnopenedCorpse,
|
||
|
||
ToggleAbuseReportingPanel,
|
||
ToggleCharacterInfoPanel,
|
||
TogglePositiveMagicPanel,
|
||
ToggleNegativeMagicPanel,
|
||
ToggleLinkStatusPanel,
|
||
ToggleUrgentAssistancePanel,
|
||
ToggleVitaePanel,
|
||
ToggleSocialPanel,
|
||
ToggleSpellManagementPanel,
|
||
ToggleCharacterDetailPanel,
|
||
ToggleMapPage,
|
||
ToggleHousePage,
|
||
ToggleGameplayOptionsPage,
|
||
ToggleCharacterSettingsPage,
|
||
ToggleConfigurationPage,
|
||
ToggleCompass,
|
||
ToggleKeyboardConfiguration,
|
||
ToggleFriendsPage,
|
||
ToggleCharacterTitlesPage,
|
||
ToggleQuestDetailPanel,
|
||
ToggleQuestJournalPage,
|
||
ToggleJournalPageList,
|
||
ToggleContractsPage,
|
||
|
||
ChatMonarchReply,
|
||
ChatPatronReply,
|
||
ChatReply,
|
||
ChatStartCommand,
|
||
ChatTellToSelected,
|
||
|
||
UseQuickSlot_10,
|
||
UseQuickSlot_11,
|
||
UseQuickSlot_12,
|
||
UseQuickSlot_13,
|
||
|
||
ToggleCharacterOptionAutoRepeatAttack,
|
||
ToggleCharacterOptionIgnoreAllegianceRequests,
|
||
ToggleCharacterOptionIgnoreFellowshipRequests,
|
||
ToggleCharacterOptionIgnoreTradeRequests,
|
||
ToggleCharacterOptionPersistentAtDay,
|
||
ToggleCharacterOptionAllowGive,
|
||
ToggleCharacterOptionViewCombatTarget,
|
||
ToggleCharacterOptionShowTooltips,
|
||
ToggleCharacterOptionUseDeception,
|
||
ToggleCharacterOptionToggleRun,
|
||
ToggleCharacterOptionStayInChatMode,
|
||
ToggleCharacterOptionAdvancedCombatUi,
|
||
ToggleCharacterOptionAutoTarget,
|
||
ToggleCharacterOptionVividTargetingIndicator,
|
||
ToggleCharacterOptionFellowshipShareXp,
|
||
ToggleCharacterOptionAcceptLootPermits,
|
||
ToggleCharacterOptionFellowshipShareLoot,
|
||
ToggleCharacterOptionFellowshipAutoAcceptRequests,
|
||
ToggleCharacterOptionCoordinatesOnRadar,
|
||
ToggleCharacterOptionSpellDuration,
|
||
ToggleCharacterOptionDisableHouseRestrictionEffects,
|
||
ToggleCharacterOptionDragItemOnPlayerOpensSecureTrade,
|
||
ToggleCharacterOptionDisplayAllegianceLogonNotifications,
|
||
ToggleCharacterOptionUseChargeAttack,
|
||
ToggleCharacterOptionUseCraftSuccessDialog,
|
||
ToggleCharacterOptionListenToAllegianceChat,
|
||
ToggleCharacterOptionDisplayDateOfBirth,
|
||
ToggleCharacterOptionDisplayAge,
|
||
ToggleCharacterOptionDisplayChessRank,
|
||
ToggleCharacterOptionDisplayFishingSkill,
|
||
ToggleCharacterOptionDisplayNumberDeaths,
|
||
ToggleCharacterOptionDisplayTimeStamps,
|
||
ToggleCharacterOptionSalvageMultiple,
|
||
ToggleCharacterOptionListenToGeneralChat,
|
||
ToggleCharacterOptionListenToTradeChat,
|
||
ToggleCharacterOptionListenToLfgChat,
|
||
ToggleCharacterOptionListenToRoleplayChat,
|
||
ToggleCharacterOptionDisplayNumberCharacterTitles,
|
||
ToggleCharacterOptionMainPackPreferred,
|
||
ToggleCharacterOptionLeadMissileTargets,
|
||
ToggleCharacterOptionUseFastMissiles,
|
||
ToggleCharacterOptionFilterLanguage,
|
||
ToggleCharacterOptionConfirmVolatileRareUse,
|
||
ToggleCharacterOptionListenToSocietyChat,
|
||
ToggleCharacterOptionShowHelm,
|
||
ToggleCharacterOptionDisableDistanceFog,
|
||
ToggleCharacterOptionShowCloak,
|
||
ToggleCharacterOptionSideBySideVitals,
|
||
}
|