Function Map
This appendix is a cross-subsystem index of important functions, grouped by primary subsystem. Cross-subsystem functions appear under the subsystem that owns their main control flow. Detailed decisions belong in the relevant subsystem chapter. An address remains the durable identifier when a name improves later.
Application lifecycle
| Address | Current IDA name | Subsystem | Prototype | Purpose | Detailed page |
|---|---|---|---|---|---|
Darkages.exe:0x0041D390 | app_check_conflicting_software | Application | int __cdecl(void) | Prompt for four process suffixes and two files before startup. | Startup and Shutdown |
Darkages.exe:0x0041D690 | win_top_level_window_exists | Win32 | BOOL __cdecl(LPCSTR class_name, LPCSTR window_title) | Test for a matching top-level window. | Startup and Shutdown |
Darkages.exe:0x0041D6C0 | app_check_runservices_entries | Application | int __cdecl(void) | Examine and optionally delete three RunServices values. | Startup and Shutdown |
Darkages.exe:0x0045B5F0 | app_win_main | Application and Win32 | int __stdcall(HINSTANCE, HINSTANCE, LPSTR, int) | Own class registration, checks, window creation, the message loop, and normal shutdown. | Startup and Shutdown |
Darkages.exe:0x0045B8F0 | app_shutdown | Application | void __cdecl(void) | Delete the initialized subsystem graph in fixed order. | Startup and Shutdown |
Darkages.exe:0x0045C840 | app_set_working_directory_from_command_line | Application | void __cdecl(void) | Parse the executable directory from the raw command line and make it current. | Startup and Shutdown |
Darkages.exe:0x0045CCA0 | app_initialize | Application | void __cdecl(void) | Construct resources, services, screen state, and event workers. | Startup and Shutdown |
Darkages.exe:0x00498430 | app_virus_check_module_callback | Application and Win32 | int __cdecl(void *, void *, const char *, FILE *) | Post the first virus-check module report to the main window. | Input and Windows Events |
Darkages.exe:0x00498780 | app_virus_check_thread | Application | void __cdecl(char *log_filename) | Run the process and module virus checker on a worker thread. | Input and Windows Events |
Darkages.exe:0x0049D790 | ui_screen_pane_activate | UI and Win32 | void __thiscall(void *screen_pane) | Restore active screen and presentation state. | Startup and Shutdown |
Darkages.exe:0x004C62A5 | app_crt_entry | Application and CRT | void __cdecl(void) | Initialize the Microsoft C runtime and call app_win_main. | Startup and Shutdown |
Events
| Address | Current IDA name | Subsystem | Prototype | Purpose | Detailed page |
|---|---|---|---|---|---|
Darkages.exe:0x0040E4D0 | event_deferred_delete_queue_ctor | Events | void *__thiscall(void *queue_object) | Construct the deferred-deletion queue. | Internal Event Routing |
Darkages.exe:0x0040E5C0 | event_deferred_delete_queue_drain | Events | void __thiscall(void *queue_object) | Delete and remove every deferred object. | Internal Event Routing |
Darkages.exe:0x00430F84 | event_dispatcher_dtor | Events and timing | void __thiscall(void *event_dispatcher_object) | Release dispatcher containers and balance multimedia timing state. | Internal Event Routing |
Darkages.exe:0x00430FE0 | event_dispatcher_ctor | Events and timing | void *__thiscall(void *event_dispatcher_object) | Construct the dispatcher, timer list, and worker timing state. | Internal Event Routing |
Darkages.exe:0x00431150 | event_dispatcher_register_pane | Events | void __thiscall(void *event_dispatcher_object, void *pane, int hierarchy, int position) | Register a pane and hierarchy metadata. | Internal Event Routing |
Darkages.exe:0x004311B0 | event_dispatcher_unregister_pane | Events | void __thiscall(void *event_dispatcher_object, void *pane) | Remove a pane from dispatcher traversal. | Internal Event Routing |
Darkages.exe:0x00431200 | event_dispatcher_queue_event_copy | Events | void __thiscall(void *event_dispatcher_object, const void *event) | Shallow-copy one 0x24-byte Event and queue dispatcher work code 3. | Hooks and Injection |
Darkages.exe:0x00431320 | event_dispatcher_insert_timer | Events and timing | void __thiscall(void *event_dispatcher_object, void *receiver, int callback_id, unsigned int delay_ms, int payload_0, int payload_1) | Insert a timer into the absolute-deadline sorted list. | Internal Event Routing |
Darkages.exe:0x00431470 | event_dispatcher_remove_pane_timers | Events and timing | void __thiscall(void *event_dispatcher_object, void *receiver) | Cancel every timer for one pane. | Internal Event Routing |
Darkages.exe:0x004315B0 | event_dispatcher_tick | Events and timing | void __thiscall(void *event_dispatcher_object) | Drain deferred deletion and dispatch at most one due timer. | Internal Event Routing |
Darkages.exe:0x004316E0 | event_dispatcher_process_work_item | Events | void __thiscall(void *event_dispatcher_object, int code, void *data, int value) | Execute dispatcher work codes, including timer insert and cancellation. | Internal Event Routing |
Darkages.exe:0x00431B84 | event_dispatch | Events | int __thiscall(void *this, void *event) | Dispatch one internal Event. | Internal Event Routing |
Darkages.exe:0x00431D54 | event_dispatch_hierarchy | Events | int __thiscall(void *this, void *event, void *hierarchy) | Walk panes and call the type-specific virtual handler. | Internal Event Routing |
Darkages.exe:0x00432514 | event_manager_dtor | Events and network | void __thiscall(void *event_manager_object) | Destroy EventMan and its owned Socket and clear both static roots. | Internal Event Routing |
Darkages.exe:0x00432630 | event_manager_ctor | Events and network | void *__thiscall(void *event_manager_object) | Construct and publish the EventMan singleton. | Internal Event Routing |
Darkages.exe:0x00432BD0 | event_queue_mouse_move | Events and input | void __thiscall(void *, int, int, unsigned int) | Queue copied mouse coordinates and message time as work code 4. | Input and Windows Events |
Darkages.exe:0x00432C50 | event_queue_left_button_down | Events and input | void __thiscall(void *, unsigned int) | Set left-button state and queue work code 5. | Input and Windows Events |
Darkages.exe:0x00432C90 | event_queue_left_button_up | Events and input | void __thiscall(void *, unsigned int) | Clear left-button state and queue work code 6. | Input and Windows Events |
Darkages.exe:0x00432CC0 | event_queue_right_button_down | Events and input | void __thiscall(void *, unsigned int) | Set right-button state and queue work code 7. | Input and Windows Events |
Darkages.exe:0x00432D00 | event_queue_right_button_up | Events and input | void __thiscall(void *, unsigned int) | Clear right-button state and queue work code 8. | Input and Windows Events |
Darkages.exe:0x00432D30 | event_queue_mouse_wheel | Events and input | void __thiscall(void *, int, unsigned int) | Queue wheel delta and message time as work code 9. | Input and Windows Events |
Darkages.exe:0x00432D60 | event_queue_key_down | Events and input | void __thiscall(void *, unsigned char, unsigned int) | Queue a physical key press as work code 0x0A. | Input and Windows Events |
Darkages.exe:0x00432D90 | event_queue_key_up | Events and input | void __thiscall(void *, unsigned char, unsigned int) | Queue a physical key release as work code 0x0B. | Input and Windows Events |
Darkages.exe:0x00432E50 | event_post_socket_bytes | Events and network | void __thiscall(void *this, const uint8_t *packet, int length) | Copy decoded packet bytes to work code 0x0E. | Internal Event Routing |
Darkages.exe:0x00432F10 | event_manager_queue_event_copy | Events | void __thiscall(void *event_manager_object, const void *event) | Shallow-copy one 0x24-byte Event and queue EventMan work code 0x0F. | Hooks and Injection |
Darkages.exe:0x00433060 | event_manager_get_instance | Events | void *__cdecl(void) | Assert and return the EventMan singleton. | Input and Windows Events |
Darkages.exe:0x00433110 | event_process_work_item | Events | void __thiscall(void *this, int code, void *data, int value) | Convert event-manager worker records to Event objects. | Internal Event Routing |
Darkages.exe:0x00433434 | event_dispatch_mouse_move | Events and input | void __thiscall(void *, int, int, unsigned int) | Dispatch mouse subtype 0. | Input and Windows Events |
Darkages.exe:0x00433504 | event_dispatch_left_button_down | Events and input | void __thiscall(void *, unsigned int) | Dispatch left single- or double-button-down input. | Input and Windows Events |
Darkages.exe:0x004336C4 | event_dispatch_left_button_up | Events and input | void __thiscall(void *, unsigned int) | Dispatch left-button release. | Input and Windows Events |
Darkages.exe:0x00433794 | event_dispatch_right_button_down | Events and input | void __thiscall(void *, unsigned int) | Dispatch right single- or double-button-down input. | Input and Windows Events |
Darkages.exe:0x00433944 | event_dispatch_right_button_up | Events and input | void __thiscall(void *, unsigned int) | Dispatch right-button release. | Input and Windows Events |
Darkages.exe:0x00433A14 | event_dispatch_mouse_wheel | Events and input | void __thiscall(void *, int, unsigned int) | Divide the wheel delta by 120 and dispatch subtype 7. | Input and Windows Events |
Darkages.exe:0x00433AB4 | event_dispatch_key_down | Events and input | void __thiscall(void *, unsigned char, unsigned int) | Update mapped key state and dispatch key subtype 8. | Input and Windows Events |
Darkages.exe:0x00433C34 | event_update_key_up | Events and input | void __thiscall(void *, unsigned char, unsigned int) | Clear pressed and modifier state without pane dispatch. | Input and Windows Events |
Darkages.exe:0x00433DC4 | event_queue_socket_packet | Events and network | void __stdcall(uint8_t *packet, uint32_t size) | Queue Event type 9 with packet ownership. | Internal Event Routing |
Darkages.exe:0x00434080 | event_manager_periodic_noop | Events | void __thiscall(void *event_manager_object) | Native no-op EventMan periodic worker callback. | Event Proxy Architecture |
Darkages.exe:0x00470DA0 | util_memory_manager_deleting_dtor | Cross-subsystem memory | established scalar deleting destructor | Clear the MemoryMan root and optionally delete the object. | Data Map |
Darkages.exe:0x00470E10 | util_memory_manager_ctor | Cross-subsystem memory | void *__thiscall(void *memory_manager) | Construct MemoryMan and publish its static root. | Data Map |
Darkages.exe:0x00470F30 | util_memory_manager_dtor | Cross-subsystem memory | void __thiscall(void *memory_manager) | Destroy MemoryMan and clear its static root. | Data Map |
Darkages.exe:0x00470F80 | util_memory_manager_get_instance | Cross-subsystem memory | void *__cdecl(void) | Return the client MemoryMan singleton. | Hooks and Injection |
Darkages.exe:0x00470FC0 | util_memory_manager_alloc | Cross-subsystem memory | void *__thiscall(void *memory_manager, int size) | Allocate through the executable’s CRT wrapper. | Hooks and Injection |
Darkages.exe:0x004710D0 | util_memory_manager_free | Cross-subsystem memory | int __thiscall(void *memory_manager, void *block) | Free through the executable’s CRT wrapper. | Internal Event Routing |
Darkages.exe:0x00497EB0 | util_ring_buffer_ctor | Cross-subsystem worker | void *__thiscall(void *ring_buffer, int element_size, int capacity) | Construct the monitor-protected bounded ring. | Data Map |
Darkages.exe:0x00498080 | util_ring_buffer_push_wait | Cross-subsystem worker | void __thiscall(void *ring_buffer, const void *element) | Wait for capacity and append one record under the queue monitor. | Internal Event Routing |
Darkages.exe:0x004981B0 | util_ring_buffer_pop_wait | Cross-subsystem worker | void __thiscall(void *ring_buffer, void *element_out) | Wait for data and remove one record under the queue monitor. | Internal Event Routing |
Darkages.exe:0x004BE9B0 | util_thread_queue_ctor | Cross-subsystem worker | void *__thiscall(void *worker_object, int queue_capacity) | Construct queue state and a suspended worker thread. | Internal Event Routing |
Darkages.exe:0x004BEC34 | util_thread_queue_add_wait_handle | Cross-subsystem worker | void __thiscall(void *worker_object, void *wait_handle) | Add one handle to the worker’s 16-entry wait set. | Internal Event Routing |
Darkages.exe:0x004BECB0 | util_thread_queue_dtor | Cross-subsystem worker | void __thiscall(void *worker_object) | Terminate the worker and release its handles and queues. | Internal Event Routing |
Darkages.exe:0x004BEDF0 | util_thread_queue_set_wait_timeout | Cross-subsystem worker | void __thiscall(void *worker_object, unsigned int timeout_ms) | Set the WaitForMultipleObjects timeout. | Internal Event Routing |
Darkages.exe:0x004BEE00 | util_thread_queue_start | Cross-subsystem worker | void __thiscall(void *worker_object) | Create the derived wait object and resume the worker. | Internal Event Routing |
Darkages.exe:0x004BF250 | util_thread_queue_worker_loop | Cross-subsystem worker | void __thiscall(void *worker_object) | Wait for work or timeout and invoke derived worker methods. | Internal Event Routing |
Darkages.exe:0x004BF440 | util_thread_queue_post_async | Cross-subsystem worker | void __thiscall(void *worker_object, int code, void *data, int value) | Append an asynchronous record and release the queue semaphore; admission can block on a full ring. | Internal Event Routing |
Networking
| Address | Current IDA name | Subsystem | Prototype | Purpose | Detailed page |
|---|---|---|---|---|---|
Darkages.exe:0x0040A664 | net_c_build_portrait_response | Network and UI | established __thiscall builder | Build client action 0x4F from the local portrait. | Networking |
Darkages.exe:0x0046CA54 | net_forward_embedded_client_packet | Network | established MapPane action handler | Forward the client packet embedded in server action 0x4B. | Client actions |
Darkages.exe:0x004884E4 | net_c_send_move | Network, input, and timing | void __thiscall(struct ui_local_user *, uint8_t) | Queue CMove and start the local movement response timer. | CMove |
Darkages.exe:0x004A3294 | net_socket_dtor | Network | void __thiscall(void *socket_object) | Close transports and tear down the Socket worker. | Networking |
Darkages.exe:0x004A32F0 | net_socket_ctor | Network | void *__thiscall(void *this, void *event_sink) | Construct and initialize the Socket object. | Networking |
Darkages.exe:0x004A3570 | net_c_queue_send | Network | void __thiscall(void *this, const uint8_t *packet, int16_t length) | Copy, terminate, and queue a logical client packet. | Networking |
Darkages.exe:0x004A36C0 | net_queue_xor_key | Network | void __thiscall(void *this, unsigned int key_length, const uint8_t *key) | Copy and queue a negotiated XOR key. | Sequence and XOR Transformation |
Darkages.exe:0x004A3700 | net_queue_xor_table_function | Network | void __thiscall(void *this, unsigned int function_index) | Queue selection of table function 0 through 9. | Sequence and XOR Transformation |
Darkages.exe:0x004A39C0 | net_poll_receive | Network | void __thiscall(void *socket_object) | Poll receive state from the Socket periodic worker callback. | Event Proxy Architecture |
Darkages.exe:0x004A3A74 | net_s_receive_frames | Network | void __thiscall(void *this) | Extract, decode, and post binary frames. | Networking |
Darkages.exe:0x004A44D4 | net_s_decode_packet_body | Network | int __stdcall(const uint8_t *src, int src_size, uint8_t *dest) | Reverse the ordinary server-body XOR transformation. | Sequence and XOR Transformation |
Darkages.exe:0x004A4D34 | net_read_transport_byte | Network | int __thiscall(void *this, uint8_t *out_byte) | Read a cached byte, refilling with recv or ReadFile. | Networking |
Darkages.exe:0x004A54D0 | net_process_work_item | Network | void __thiscall(void *this, int code, void *data, int value) | Execute queued Socket operations. | Networking |
Darkages.exe:0x004A59F4 | net_connect_configured_server | Network | void __thiscall(void *this) | Establish the configured socket and async notification. | Networking |
Darkages.exe:0x004A72B4 | net_c_send_packet_body | Network | void __thiscall(void *this, const uint8_t *packet, int16_t length) | Transform, frame, and call send. | Networking |
Darkages.exe:0x004A79E4 | net_c_encode_packet_body | Network | int __stdcall(const uint8_t *src, int src_size, uint8_t *dest) | Add sequence and apply ordinary client-body XOR passes. | Sequence and XOR Transformation |
Darkages.exe:0x004A8414 | net_set_xor_key | Network | void __stdcall(int length, const uint8_t *key) | Replace and repeat the runtime XOR key. | Sequence and XOR Transformation |
Darkages.exe:0x004A8590 | net_build_xor_table | Network | void __stdcall(int function_index) | Generate the 256-entry XOR table. | Sequence and XOR Transformation |
UI panes and registries
| Address | Current IDA name | Subsystem | Prototype | Purpose | Detailed page |
|---|---|---|---|---|---|
Darkages.exe:0x0040A0A0 | ui_dialog_default_socket_handler | UI and events | int __thiscall(void *, void *) | Decline an unhandled Dialog socket Event. | UI Panes and Registries |
Darkages.exe:0x0040A0B0 | ui_dialog_default_timer_handler | UI and timing | int __thiscall(void *, int, int, int) | Decline an unhandled Dialog timer callback. | UI Panes and Registries |
Darkages.exe:0x0040A5A0 | ui_pane_default_key_handler | UI and events | established Pane virtual handler | Default keyboard handler at vslot +0x3C. | UI Panes and Registries |
Darkages.exe:0x0040A5B0 | ui_background_pane_ctor | UI | established __thiscall constructor | Construct the in-game BackgroundPane. | UI Panes and Registries |
Darkages.exe:0x0040B460 | ui_pane_default_mouse_handler | UI and events | established Pane virtual handler | Default mouse handler at vslot +0x38. | UI Panes and Registries |
Darkages.exe:0x0040B470 | ui_pane_default_socket_handler | UI and events | established Pane virtual handler | Default socket Event handler at vslot +0x40. | UI Panes and Registries |
Darkages.exe:0x0040E660 | ui_bulletin_session_deleting_dtor | UI | established __thiscall deleting destructor | Destroy BulletinSession, its child history, and both registry memberships. | Runtime UI Memory Map |
Darkages.exe:0x0040EA50 | ui_pane_default_timer_handler | UI and timing | established Pane virtual handler | Default timer callback at vslot +0x44. | UI Panes and Registries |
Darkages.exe:0x0040EB10 | ui_bulletin_session_ctor | UI and network | established __thiscall constructor | Construct and publish BulletinSession. | UI, Input, and Packet Flows |
Darkages.exe:0x0040ED04 | ui_bulletin_session_process_packet | UI and network | established __thiscall method | Dispatch SBulletin subtype to a replaceable child dialog. | UI, Input, and Packet Flows |
Darkages.exe:0x00414130 | ui_bulletin_dialog_handle_key_event | UI and events | int __thiscall(void *, void *) | Process shared Bulletin-family keyboard actions. | UI Panes and Registries |
Darkages.exe:0x00414260 | ui_bulletin_dialog_handle_server_packet | UI and events | int __thiscall(void *, void *) | Claim server action 0x31 for Bulletin-family dialogs. | UI Panes and Registries |
Darkages.exe:0x004142E0 | ui_bulletin_dialog_handle_mouse_event | UI and events | int __thiscall(void *, void *) | Add Bulletin-family mouse capture and release behavior. | UI Panes and Registries |
Darkages.exe:0x00414BD0 | ui_article_list_dialog_start_new_article_editing | UI | established __thiscall method | Start new-article editing from ArticleListDialog. | Pane Virtual Table Inventory |
Darkages.exe:0x00415A10 | ui_article_list_dialog_handle_key_event | UI and events | int __thiscall(void *, void *) | Process ArticleListDialog keyboard actions. | UI Panes and Registries |
Darkages.exe:0x00416B20 | ui_article_list_pane_draw_cell | UI | established DrawCell method | Draw one ArticleListPane cell. | Pane Virtual Table Inventory |
Darkages.exe:0x004181A0 | ui_new_article_dialog_handle_key_event | UI and events | int __thiscall(void *, void *) | Process NewArticleDialog editing keys. | UI Panes and Registries |
Darkages.exe:0x004184C0 | ui_mail_list_dialog_handle_key_event | UI and events | int __thiscall(void *, void *) | Process MailListDialog keyboard actions. | UI Panes and Registries |
Darkages.exe:0x00419FE0 | ui_mail_list_pane_handle_selected_cell_double_click | UI | established __thiscall method | Open the selected mail from a list-cell double-click. | Pane Virtual Table Inventory |
Darkages.exe:0x0041A080 | ui_mail_list_pane_draw_cell | UI | established DrawCell method | Draw one MailListPane cell. | Pane Virtual Table Inventory |
Darkages.exe:0x0041AE70 | ui_new_mail_dialog_handle_key_event | UI and events | int __thiscall(void *, void *) | Process NewMailDialog editing keys. | UI Panes and Registries |
Darkages.exe:0x0041C4D0 | ui_legend_dialog_pane_ctor | UI | established __thiscall constructor | Construct LegendDialogPane and its inner list control. | Pane Virtual Table Inventory |
Darkages.exe:0x0041C770 | ui_legend_dialog_pane_handle_mouse_event | UI and events | int __thiscall(void *, void *) | Add LegendDialogPane left- and right-button behavior. | UI Panes and Registries |
Darkages.exe:0x00423984 | ui_lag_indicator_pane_dtor | UI | void __thiscall(struct ui_lag_indicator_pane *) | Destroy the persistent lag indicator and clear its root. | Runtime UI Memory Map |
Darkages.exe:0x004239C0 | ui_get_lag_indicator_pane | UI | struct ui_lag_indicator_pane *__cdecl(void) | Return the persistent lag indicator pointer. | Runtime UI Memory Map |
Darkages.exe:0x004239D0 | ui_lag_indicator_pane_ctor | UI | struct ui_lag_indicator_pane *__thiscall(struct ui_lag_indicator_pane *, void *) | Construct and publish the lag indicator. | Runtime UI Memory Map |
Darkages.exe:0x00423A44 | ui_lag_indicator_pane_attach | UI | void __thiscall(struct ui_lag_indicator_pane *, void *) | Add and register the lag indicator below BackgroundPane. | Runtime UI Memory Map |
Darkages.exe:0x00423AA0 | ui_lag_indicator_pane_draw | UI and rendering | void __thiscall(struct ui_lag_indicator_pane *) | Select the lag indicator frame from the smoothed value. | Runtime UI Memory Map |
Darkages.exe:0x00423B60 | ui_lag_indicator_update_from_local_user | UI and timing | void __thiscall(struct ui_lag_indicator_pane *) | Average the newest movement response sample and invalidate the Pane. | Runtime UI Memory Map |
Darkages.exe:0x0042A190 | ui_dialog_handle_mouse_event | UI and events | int __thiscall(void *, void *) | Process generic Dialog mouse subtypes. | UI Panes and Registries |
Darkages.exe:0x0042AED0 | ui_dialog_handle_key_event | UI and events | int __thiscall(void *, void *) | Process generic Dialog keys and focused controls. | UI Panes and Registries |
Darkages.exe:0x0042E1A0 | ui_equip_pane_ctor | UI | established __thiscall constructor | Construct and publish the persistent User Equip pane. | UI, Input, and Packet Flows |
Darkages.exe:0x0042EAF0 | ui_equip_pane_handle_server_packet | UI and network | int __thiscall(void *, void *) | Dispatch SAddEquip, SRemoveEquip, and SSelfLook. | UI, Input, and Packet Flows |
Darkages.exe:0x0042EBA4 | ui_equip_pane_apply_self_look | UI and character state | established __thiscall parser | Apply SSelfLook without changing visibility. | UI, Input, and Packet Flows |
Darkages.exe:0x0043A5F0 | ui_game_buttons_pane_ctor | UI | void *__thiscall(void *, void *, void *) | Construct GameButtonsPane and its persistent content graph. | Runtime UI Memory Map |
Darkages.exe:0x0043CF20 | ui_game_buttons_handle_key_event | UI and input | int __thiscall(void *, void *) | Map A/S/D/F/G to persistent content panes. | UI, Input, and Packet Flows |
Darkages.exe:0x0043D164 | ui_game_buttons_select_content | UI | void __thiscall(void *, int8_t) | Dispatch selection of equipment, skills, spells, chat, or status. | UI, Input, and Packet Flows |
Darkages.exe:0x0043D3D4 | ui_game_buttons_select_inventory | UI and network | void __thiscall(void *) | Select or toggle equipment and request self-look on hidden reopen. | UI, Input, and Packet Flows |
Darkages.exe:0x0043E1B4 | ui_window_buttons_select | UI and network | void __thiscall(void *, int8_t) | Dispatch Q/W/E window-button actions. | UI, Input, and Packet Flows |
Darkages.exe:0x0043E2B4 | ui_window_buttons_show_option_pane | UI | void __thiscall(void *) | Allocate and construct dynamic OptionPane. | UI, Input, and Packet Flows |
Darkages.exe:0x0043E384 | net_c_send_who_request | Network and UI | void __cdecl(void) | Send one-byte CWho for Users Dialog Pane. | CWho |
Darkages.exe:0x0043E700 | ui_users_dialog_show | UI and timing | established __thiscall wrapper | Enter the shared show body for the populated users pane. | SShowUsers |
Darkages.exe:0x00442A34 | ui_skill_inventory_apply_add_packet | UI and network | int __thiscall(void *, const uint8_t *) | Parse SAddSkill and replace one of 36 slot children. | SAddSkill |
Darkages.exe:0x00442C04 | ui_skill_inventory_remove_slot_pane | UI | void __thiscall(void *, uint8_t) | Remove, unregister, delete, and clear an indexed skill pane. | Runtime UI Memory Map |
Darkages.exe:0x00442D14 | ui_skill_inventory_create_slot_pane | UI | void __thiscall(void *, uint8_t, uint16_t, const char *) | Allocate and register an indexed skill pane. | Runtime UI Memory Map |
Darkages.exe:0x00443BB4 | ui_spell_inventory_apply_add_packet | UI and network | int __thiscall(void *, const uint8_t *) | Parse SAddSpell and replace one of 36 slot children. | SAddSpell |
Darkages.exe:0x00443E14 | ui_spell_inventory_remove_slot_pane | UI | void __thiscall(void *, uint8_t) | Remove, unregister, delete, and clear an indexed spell pane. | Runtime UI Memory Map |
Darkages.exe:0x00443F24 | ui_spell_inventory_create_slot_pane | UI | void __thiscall(void *, uint8_t, uint16_t, int8_t, const char *, const char *, uint8_t) | Allocate and register an indexed spell pane. | Runtime UI Memory Map |
Darkages.exe:0x00446090 | ui_point_init | UI | void __cdecl(void *, int, int) | Initialize a two-coordinate client point. | Runtime UI Memory Map |
Darkages.exe:0x004460B0 | ui_rect_init | UI | void __cdecl(void *, int, int, int, int) | Initialize a client rectangle while preserving its non-Win32 field order. | Runtime UI Memory Map |
Darkages.exe:0x00454CA0 | ui_skill_slot_finish_cooldown | UI and timing | established __thiscall method | Clear a skill slot’s cooldown-active state. | Runtime UI Memory Map |
Darkages.exe:0x00454CC0 | ui_skill_slot_start_cooldown | UI and timing | established __thiscall method | Set a skill slot’s cooldown-active state. | Runtime UI Memory Map |
Darkages.exe:0x004544B0 | ui_skill_slot_handle_mouse_event | UI and input | int __thiscall(void *, void *) | Open skill details or activate a skill slot. | UI, Input, and Packet Flows |
Darkages.exe:0x00455040 | ui_spell_slot_handle_mouse_event | UI and input | int __thiscall(void *, void *) | Open spell details or enter a spell cast path. | UI, Input, and Packet Flows |
Darkages.exe:0x00455684 | ui_spell_slot_begin_cast | UI and network | void __thiscall(void *) | Build the confirmed two-byte CUseSpell form. | CUseSpell |
Darkages.exe:0x004556F4 | ui_spell_delay_begin | UI, network, and timing | established __thiscall method | Hold or immediately submit a built spell packet. | UI, Input, and Packet Flows |
Darkages.exe:0x00456220 | ui_spell_slot_finish_cooldown | UI and timing | established __thiscall method | Clear a spell slot’s cooldown-active state. | Runtime UI Memory Map |
Darkages.exe:0x00456240 | ui_spell_slot_start_cooldown | UI and timing | established __thiscall method | Set a spell slot’s cooldown-active state. | Runtime UI Memory Map |
Darkages.exe:0x00456940 | ui_spell_delay_handle_timer | UI, network, and timing | int __thiscall(void *, int, int, int) | Emit delay phrases and submit the held spell on the final tick. | UI, Input, and Packet Flows |
Darkages.exe:0x00456B90 | ui_skill_slot_pane_ctor | UI | void *__thiscall(void *, uint8_t, uint16_t, const char *) | Initialize a persistent skill slot child. | Runtime UI Memory Map |
Darkages.exe:0x00456C70 | ui_spell_slot_pane_ctor | UI | void *__thiscall(void *, uint8_t, uint16_t, int8_t, const char *, const char *, uint8_t) | Initialize a persistent spell slot child. | Runtime UI Memory Map |
Darkages.exe:0x0044E4D0 | ui_hierarchy_list_ctor | UI and events | void *__thiscall(void *, int) | Construct a packed hierarchy list. | UI Panes and Registries |
Darkages.exe:0x004594A0 | ui_hierarchy_get_node | UI and events | void *__thiscall(void *, int) | Return a checked packed-node address. | UI Panes and Registries |
Darkages.exe:0x0045D930 | ui_main_menu_pane_ctor | UI | established __thiscall constructor | Construct and publish MainMenuPane. | UI Panes and Registries |
Darkages.exe:0x0045FA44 | ui_main_menu_create_game_panes | UI | established __thiscall transition method | Build and publish the in-game pane graph. | UI Panes and Registries |
Darkages.exe:0x004658C0 | ui_map_pane_ctor | UI | established __thiscall constructor | Construct the 0xF38-byte MapPane. | UI Panes and Registries |
Darkages.exe:0x00467320 | ui_map_handle_key_event | UI and events | established Pane virtual handler | Handle MapPane keyboard Events. | UI Panes and Registries |
Darkages.exe:0x00467360 | ui_map_handle_mouse_event | UI and events | established Pane virtual handler | Handle MapPane mouse Events. | UI Panes and Registries |
Darkages.exe:0x00469474 | ui_map_handle_screen_menu | UI and network | established MapPane action handler | Allocate and construct an SScreenMenu pane. | SScreenMenu |
Darkages.exe:0x0046C004 | ui_map_handle_pursuit_menu | UI and network | established MapPane action handler | Allocate one of seven SPursuitMenu dialog variants. | SPursuitMenu |
Darkages.exe:0x0046C3F4 | ui_map_handle_show_paper | UI and network | established MapPane action handler | Allocate Paper in server-show mode. | SShowPaper |
Darkages.exe:0x0046C464 | ui_map_handle_show_users | UI and network | established MapPane action handler | Populate and show Users Dialog Pane. | SShowUsers |
Darkages.exe:0x0046CAB4 | ui_map_handle_bulletin | UI and network | established MapPane action handler | Create a server-opened BulletinSession when allowed. | SBulletin |
Darkages.exe:0x00471D10 | ui_screen_menu_pane_ctor | UI and network | established __thiscall constructor | Add, register, and parse a full-screen server menu. | SScreenMenu |
Darkages.exe:0x0047DBA0 | ui_question_message_dialog_handle_mouse_event | UI and events | int __thiscall(void *, void *) | Add drag behavior for the question-dialog family. | UI Panes and Registries |
Darkages.exe:0x0047EFC0 | ui_question_message_dialog_ctor | UI and network | established __thiscall constructor | Construct SPursuitMenu subtype 2 question dialog. | SPursuitMenu |
Darkages.exe:0x0047F9C0 | ui_question_message_dialog_send_answer | UI and network | established __thiscall method | Send the selected answer from QuestionMessageDialog. | Pane Virtual Table Inventory |
Darkages.exe:0x004805E0 | ui_question_message_face_dialog_send_answer | UI and network | established __thiscall method | Send the selected answer from QuestionMessageFaceDialog. | Pane Virtual Table Inventory |
Darkages.exe:0x004862E0 | ui_monster_pane2_start_move | UI and world state | established __thiscall method | Start a MonsterPane2 movement transition. | Pane Virtual Table Inventory |
Darkages.exe:0x004876C4 | ui_local_user_dtor | UI and world state | void __thiscall(struct ui_local_user *) | Destroy the local-user Pane and clear its class-level alias. | Runtime UI Memory Map |
Darkages.exe:0x00487700 | ui_local_user_ctor | UI and world state | struct ui_local_user *__thiscall(struct ui_local_user *, void *) | Construct and publish the active local-user Pane. | Runtime UI Memory Map |
Darkages.exe:0x00487860 | ui_get_local_user | UI and world state | struct ui_local_user *__cdecl(void) | Return the active local-user pointer. | Runtime UI Memory Map |
Darkages.exe:0x0048D2E0 | ui_effect_object_pane_handle_timer | UI and timing | established Pane timer handler | Process EffectObjectPane timer callbacks. | Pane Virtual Table Inventory |
Darkages.exe:0x0048F600 | ui_option_pane_ctor | UI | void *__thiscall(void *) | Build, add, and register dynamic OptionPane. | UI, Input, and Packet Flows |
Darkages.exe:0x004909E0 | ui_option_pane_handle_server_packet | UI and network | int __thiscall(void *, void *) | Claim SSelfSaveOk and create a confirmation dialog. | SSelfSaveOk |
Darkages.exe:0x00490A80 | ui_option_pane_handle_mouse_event | UI and input | int __thiscall(void *, void *) | Handle OptionPane mouse state. | Pane Virtual Table Inventory |
Darkages.exe:0x00490D70 | ui_option_pane_handle_timer | UI and timing | int __thiscall(void *, int, int, int) | Advance OptionPane timer state. | Pane Virtual Table Inventory |
Darkages.exe:0x00490FE0 | ui_option_pane_handle_key_event | UI and input | int __thiscall(void *, void *) | Handle OptionPane keyboard shortcuts. | Pane Virtual Table Inventory |
Darkages.exe:0x00491AA4 | net_c_send_user_setting | Network and UI | void __thiscall(void *, uint8_t) | Send CUserSetting from an option control. | CUserSetting |
Darkages.exe:0x00492A90 | ui_pane_dtor | UI | void __thiscall(void *) | Cancel timers and destroy the Pane base. | UI Panes and Registries |
Darkages.exe:0x00492AD0 | ui_pane_ctor | UI | void *__thiscall(void *, unsigned char, unsigned char) | Construct common Pane fields and install the base vtable. | UI Panes and Registries |
Darkages.exe:0x00492C10 | ui_pane_is_visible | UI | int __thiscall(void *) | Query common pane visible state. | UI, Input, and Packet Flows |
Darkages.exe:0x00492C40 | ui_pane_show | UI | void __thiscall(void *) | Set visible state and invalidate the pane. | UI Panes and Registries |
Darkages.exe:0x00492D50 | ui_pane_hide | UI | void __thiscall(void *) | Clear visible state and invalidate the exposed region. | UI Panes and Registries |
Darkages.exe:0x00493240 | ui_pane_get_bound_rect | UI | void __thiscall(void *, int32_t *) | Translate a Pane’s local bounds by its relative origin. | Runtime UI Memory Map |
Darkages.exe:0x004932B0 | ui_pane_set_bound_rect | UI | void __thiscall(void *, const int32_t *) | Split Pane bounds into relative origin and local rectangle. | Runtime UI Memory Map |
Darkages.exe:0x004933C0 | ui_pane_add_to_screen | UI | void __thiscall(void *, const int32_t *, void *, void *) | Add a Pane to Screen composition using a client-order rectangle. | UI Panes and Registries |
Darkages.exe:0x00493480 | ui_pane_remove_from_screen | UI | void __thiscall(void *) | Remove a Pane from Screen composition. | UI Panes and Registries |
Darkages.exe:0x00493530 | ui_pane_register_events | UI and events | void __thiscall(void *, void *, int) | Register a Pane in event traversal. | UI Panes and Registries |
Darkages.exe:0x004935D0 | ui_pane_unregister_events | UI and events | void __thiscall(void *) | Remove a Pane from event traversal. | UI Panes and Registries |
Darkages.exe:0x004939C0 | ui_paper_dialog_ctor | UI and network | established __thiscall constructor | Parse and construct Paper in mode 0 or 1. | UI, Input, and Packet Flows |
Darkages.exe:0x00493B60 | ui_paper_dialog_handle_completion | UI and network | int __thiscall(void *, int, int) | Optionally submit Paper content, then close the dialog. | CExitEditingMode |
Darkages.exe:0x00494100 | net_c_send_exit_editing_mode | Network and UI | void __thiscall(void *) | Serialize current Paper content as action 0x23. | CExitEditingMode |
Darkages.exe:0x00498F20 | ui_screen_registry_ctor | UI | void *__thiscall(void *) | Construct the Screen composition hierarchy. | UI Panes and Registries |
Darkages.exe:0x00498F40 | ui_screen_add_pane | UI | established __thiscall method | Validate and insert a Screen node. | UI Panes and Registries |
Darkages.exe:0x004993C4 | ui_screen_find_pane_node | UI | established recursive __thiscall search | Find a pane’s packed Screen node. | UI Panes and Registries |
Darkages.exe:0x00499530 | ui_screen_remove_pane | UI | established __thiscall method | Remove a Screen node and child hierarchy. | UI Panes and Registries |
Darkages.exe:0x00499ED0 | ui_screen_get_pane_origin | UI | established __thiscall query | Accumulate a pane’s screen-space origin. | UI Panes and Registries |
Darkages.exe:0x004A1680 | ui_scrollable_pane_handle_mouse_event | UI and events | int __thiscall(void *, void *) | Route mouse input through scroll bars and list content. | UI Panes and Registries |
Darkages.exe:0x004A1900 | ui_scrollable_pane_handle_key_event | UI and events | int __thiscall(void *, void *) | Route keyboard input through scroll bars and list content. | UI Panes and Registries |
Darkages.exe:0x004A1B04 | ui_server_select_dialog_pane_dtor | UI | established __thiscall destructor | Unregister and remove ServerSelectDialogPane. | UI Panes and Registries |
Darkages.exe:0x004A2740 | ui_server_select_dialog_pane_ctor | UI | established __thiscall constructor | Construct, add, and register ServerSelectDialogPane. | UI Panes and Registries |
Darkages.exe:0x004AC944 | ui_terminal_pane_dtor | UI | established __thiscall destructor | Clear the terminal root and destroy derived state. | UI Panes and Registries |
Darkages.exe:0x004ACA00 | ui_terminal_pane_ctor | UI | established __thiscall constructor | Construct, publish, add, and register TerminalPane. | UI Panes and Registries |
Darkages.exe:0x004AD130 | ui_get_terminal_pane | UI | void *__cdecl(void) | Return the static TerminalPane pointer. | UI Panes and Registries |
Darkages.exe:0x004BE6F4 | ui_text_edit_handle_key_event | UI and events | established Pane virtual handler | Complete or cancel a temporary TextEdit pane. | UI Panes and Registries |
Darkages.exe:0x004C2D90 | ui_weather_pane_draw | UI and rendering | established Draw method | Draw WeatherPane cloud and weather state. | Pane Virtual Table Inventory |
UI protocol dispatch
| Address | Current IDA name | Subsystem | Prototype | Purpose | Detailed page |
|---|---|---|---|---|---|
Darkages.exe:0x0040B3A0 | ui_handle_server_request_portrait | Network and UI | int __thiscall(void *this, void *event) | Handle server action 0x49. | Server actions |
Darkages.exe:0x0045F780 | ui_main_menu_handle_server_packet | Network and UI | int __thiscall(void *this, void *event) | Handle initial main-menu server packets. | Server actions |
Darkages.exe:0x00468A90 | ui_map_dispatch_server_packet | Network and UI | int __thiscall(void *this, void *event) | Dispatch 31 in-game server actions. | Server actions |
Darkages.exe:0x0046B574 | ui_map_handle_object_direction | Network and UI | int __thiscall(void *this, const uint8_t *packet) | Apply server action 0x11 to a map object’s direction. | SChangeDirection |
Darkages.exe:0x004889F0 | ui_local_user_handle_server_packet | Network, UI, and world state | int __thiscall(struct ui_local_user *, void *) | Dispatch the server actions owned by the local-user Pane. | SMove |
Darkages.exe:0x004897C4 | ui_local_user_handle_smove | Network, UI, and timing | int __thiscall(struct ui_local_user *, const uint8_t *) | Apply SMove and update movement response timing. | SMove |
Darkages.exe:0x004921F0 | ui_exit_wait_handle_server_packet | Network and UI | int __thiscall(void *this, void *event) | Complete the subtype-one safe-exit exchange for server action 0x4C. | SReconnect |
Darkages.exe:0x00492310 | ui_exit_wait_pane_ctor | UI and network | established __thiscall constructor | Create the exit-wait pane and send CQuit subtype 0x01. | SReconnect |
Darkages.exe:0x004A2ED0 | ui_server_select_handle_server_packet | Network and UI | int __thiscall(void *this, void *event) | Deserialize the action 0x56 server table. | Server actions |
Input and Windows integration
| Address | Current IDA name | Subsystem | Prototype | Purpose | Detailed page |
|---|---|---|---|---|---|
Darkages.exe:0x0045BDC0 | win_main_window_proc | Win32, UI, input, and network | LRESULT __stdcall(HWND, UINT, WPARAM, LPARAM) | Route the 15 explicit DAClass messages and delegate all others. | Input and Windows Events |
Darkages.exe:0x0049DA30 | render_screen_pane_load_palette | Rendering and Win32 | void __thiscall(void *, const char *) | Load and apply the 256-entry screen palette. | Input and Windows Events |
Darkages.exe:0x0049E820 | ui_screen_pane_set_cursor_position | UI and input | void __thiscall(void *, int, int) | Update the 32 by 32 software-cursor rectangle. | Input and Windows Events |
Entry requirements
Add a function when it is useful outside its immediate subsystem context. Record the calling convention and types established by the code, and link to the detailed subsystem explanation.