Implements the requirements committed in 731b887.
Q becomes a three-way branch in the action table, which is the layer that owns
what an input does: ExitMode while a mode is active, the new ClearSelection
while something is selected, EnterDeconstruct otherwise. The three partition
the situations between them, so resolution stays first-match-wins over
available actions and the handler never re-derives the precedence -- which is
why ClearSelection gets its own event rather than joining ModeCancel on Q.
GameWorldView clears the selection at each of the three events that enter a
mode; those are the only ways in, whichever button or key the player used. No
clear is needed where ModeCancel falls through to deconstruct mode: Q resolves
to ClearSelection while anything is selected, so there is nothing left by then.
The Selection context's Q row reads "Clear selection", sits last as the row
that hands the context back does everywhere, and carries the exit badge
styling -- one key that backs out should look the same wherever it appears.
Requirements follow that last point in REQ-UI-CONTROLS-CARD and
REQ-UI-CONTROLS-CONTENT.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
64 lines
2.8 KiB
CMake
64 lines
2.8 KiB
CMake
SET(HDRS
|
|
${HDRS}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/TracePrintRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/TickAdvancedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BuildingBlocksChangedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ExpansionCostChangedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/EntitySelectionChangedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/GameSpeedChangedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BossWaveUpdatedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/SchematicChoicesAvailableEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/SelectionChangedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/SelectionAnchorChangedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/GameOverEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/GameResetEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/WinEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ArtifactCountChangedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/UnlockedBuildingsChangedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BuilderModeExitedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BlueprintModeExitedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BlueprintSaveRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BlueprintSelectionRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/EscapeMenuRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/PanDirectionChangedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/PauseToggleRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/SpeedStepRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/GhostRotationRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ModeCancelRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/SelectionClearRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/DebugDrawToggleRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/DeconstructModeChangedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BuildingTypeSelectedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BuildHotkeyPressedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ExitBuilderModeRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/DeconstructModeToggleRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BlueprintPlacementRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ExitBlueprintModeRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/TemporaryBlueprintCaptureRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/TemporaryBlueprintPlaceRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/SpeedChangeRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/LayoutDialogRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/RecipeSelectionRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/InspectWindowClosedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ArenaStartRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ArenaInspectRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BeamFiredEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/DebugDrawToggledEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/CommandRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/FloatingLayoutInvalidatedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/PlayerCommandsAppliedEvent.h
|
|
PARENT_SCOPE
|
|
)
|
|
|
|
SET(SRCS
|
|
${SRCS}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/TracePrintRequestedEvent.cpp
|
|
PARENT_SCOPE
|
|
)
|
|
|
|
set(LIB_INCLUDE_PATH
|
|
${LIB_INCLUDE_PATH}
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
PARENT_SCOPE
|
|
)
|