refactor(selectionxlat): Split switch cases of SelectionTranslator::translateGameMessage into separate functions#2819
Conversation
…ranslateGameMessage into separate functions
|
| Filename | Overview |
|---|---|
| Core/GameEngine/Include/GameClient/SelectionXlat.h | Adds a new private section declaring 15 handler methods (plus conditional debug variants). Access specifiers and preprocessor guards correctly match the existing class structure. |
| Core/GameEngine/Source/GameClient/MessageStream/SelectionXlat.cpp | Extracts all switch-case bodies into separate handler functions. Dispositions, early-exit paths, and debug-guarded blocks are faithfully translated from break/disp assignments to explicit return values. |
Sequence Diagram
%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant Caller
participant translateGameMessage
participant Handler as on<EventName>()
Caller->>translateGameMessage: translateGameMessage(msg)
translateGameMessage->>translateGameMessage: "switch(msg->getType())"
Note over translateGameMessage: Each case now dispatches to a helper
translateGameMessage->>Handler: "disp = onXxx(msg)"
Handler-->>translateGameMessage: KEEP_MESSAGE or DESTROY_MESSAGE
translateGameMessage-->>Caller: return disp
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant Caller
participant translateGameMessage
participant Handler as on<EventName>()
Caller->>translateGameMessage: translateGameMessage(msg)
translateGameMessage->>translateGameMessage: "switch(msg->getType())"
Note over translateGameMessage: Each case now dispatches to a helper
translateGameMessage->>Handler: "disp = onXxx(msg)"
Handler-->>translateGameMessage: KEEP_MESSAGE or DESTROY_MESSAGE
translateGameMessage-->>Caller: return disp
Reviews (1): Last reviewed commit: "refactor(selectionxlat): Split switch ca..." | Re-trigger Greptile
This change splits the switch cases of SelectionTranslator::translateGameMessage into separate functions to ease readability and maintainability for humans.
I tested all regular messages and it worked correctly.
Tip: Disable whitespace in diff viewer to make it reviewable.