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

SBulletin (0x31)

Previous: SPursuitMenu | Server action index | Next: SStateObjectState

SBulletin is server-to-client action 0x31 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
0x001response_subtypeSelects board list 1, article list 2, article 3, mail list 4, mail 5, or acknowledgement 6.
0x01variableresponse_dataSubtype-specific board, article, mail, or completion data.

Handler functions

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

Handler notes

Darkages.exe:0x00413CE0 ui_bulletin_session_handle_server_packet, Darkages.exe:0x00414260 ui_bulletin_dialog_handle_server_packet, Darkages.exe:0x00468A90 ui_map_dispatch_server_packet.

UI behavior

An existing BulletinSession claims the packet through its Event type 9 handler and replaces its active child according to the subtype. Board, article-list, article, mail-list, and mail responses construct the correspondingly named dialog. Subtype 6 is accepted without constructing a child. Article-list and mail-list responses require the session request-wait flag.

When no session exists, ui_map_handle_bulletin can construct a server-opened session from this packet. Packet byte +2 bit 0 suppresses that unsolicited creation path when set.

See UI, Input, and Packet Flows.