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

SMessage (0x0A)

Previous: SStatus | Server action index | Next: SMove

SMessage is server-to-client action 0x0A 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
0x00payload_lengthunknown_00Payload bytes whose field boundaries are not yet mapped.

Handler functions

Function addressCurrent IDA nameRole
Darkages.exe:0x0041CCA0sub_41CCA0Accepts the action in its pane’s Event type 9 packet handler.
Darkages.exe:0x00444690sub_444690Accepts the action in its pane’s Event type 9 packet handler.
Darkages.exe:0x0045F780ui_main_menu_handle_server_packetAccepts the action in the main-menu packet handler.
Darkages.exe:0x00468A90ui_map_dispatch_server_packetAccepts and dispatches the action in MapPane.
Darkages.exe:0x00491520sub_491520Accepts the action in its pane’s Event type 9 packet handler.

Handler notes

Darkages.exe:0x0041CCA0 sub_41CCA0, Darkages.exe:0x00444690 sub_444690, Darkages.exe:0x0045F780 ui_main_menu_handle_server_packet, Darkages.exe:0x00468A90 ui_map_dispatch_server_packet, Darkages.exe:0x00491520 sub_491520.

In game, MapPane handles only message subtypes 8, 9, and 10 in this branch. It reads the big-endian text length at action-relative packet +2, changes tab bytes to carriage returns, allocates a dynamic message dialog, and registers it below BackgroundPane. Subtype 10 selects the alternate constructor mode; 8 and 9 use mode 0.

UI behavior

These subtypes create a new dialog rather than updating a static root. Other SMessage subtypes are not consumed by this MapPane branch and must not be assumed to share the same dialog format.

See UI, Input, and Packet Flows.