Option A made the per-tick refresh authoritative for the shipyard layout preview and Configure Layout button, but that path is driven by TickAdvancedEvent, which only fires while the game is running. Choosing a schematic while paused therefore still left the widgets hidden until the game was unpaused or the building re-selected, because the queued SetRecipeCommand drains on the next frame but no tick advances. Emit a new PlayerCommandsAppliedEvent from GameWorldView::onFrame once per frame when queued commands were drained, and have SelectedBuildingPanel refresh its selection display in response. This is a presentation-only notification: it is emitted only on the live path (not during replay playback), touches neither the command queue nor the simulation, and its only handler never enqueues commands -- so replay recording and determinism are unaffected. Factor the former TickAdvancedEvent handler body into refreshSelectionDisplay() and call it from both handlers to avoid duplication. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DyCu8vwChKMbLJQ3xosYEN
49 lines
1.9 KiB
CMake
49 lines
1.9 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}/EntitySelectedEvent.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}/GameOverEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/WinEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ArtifactCountChangedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BuilderModeExitedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BlueprintModeExitedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/EscapeMenuRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/DemolishModeChangedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BuildingTypeSelectedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BuildHotkeyPressedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ExitBuilderModeRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/DemolishModeToggleRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/BlueprintPlacementRequestedEvent.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/ExitBlueprintModeRequestedEvent.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}/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
|
|
)
|