Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

SPursuitMenu (0x30)

Previous: SScreenMenu | Server action index | Next: SBulletin

SPursuitMenu is server-to-client action 0x30 in the 4.21 protocol.

Direction: server to client

Encrypted: Yes. See Sequence and XOR Transformation.

Payload offsets begin with the first byte after the action. The frame marker, frame length, action, sequence, and trailing zero are excluded.

Payload format

OffsetWidthFieldEstablished meaning
0x001dialog_subtypeSelects one of seven dynamic message classes, values 0 through 6.
0x01variabledialog_dataSubtype-specific message, face, identifiers, choices, and text.

Handler functions

Function addressCurrent IDA nameRole
Darkages.exe:0x00461080sub_461080Accepts the action in its pane’s Event type 9 packet handler.
Darkages.exe:0x00468A90ui_map_dispatch_server_packetAccepts and dispatches the action in MapPane.
Darkages.exe:0x00479480sub_479480Accepts the action in its pane’s Event type 9 packet handler.

Handler notes

ui_map_dispatch_server_packet calls Darkages.exe:0x0046C004 ui_map_handle_pursuit_menu. Subtype 2 constructs QuestionMessageDialog; subtype 6 constructs QuestionMessageFaceDialog. The other five variants are dynamically allocated and registered, but their friendly source class names are not yet established. The handlers at 0x00461080 and 0x00479480 also observe pursuit traffic in their registered pane contexts.

UI response path

The two confirmed question classes send selected answers through CMessage 0x3A. Their answer builders retain the dialog type, object identifier, pursuit identifier, and step from the server packet, append response type 1 and the selected answer byte, and submit 12 logical bytes.

See UI, Input, and Packet Flows.