UI Windows
Game-specific UI windows: quest, skill, inventory, guild, settings, enchant, report, ranking, navigator, tooltip, web browser, movie player
| Address | Size | Name | Description |
|---|---|---|---|
| 0x005C27A0 | 28 | CNavigatorWnd__is_data_null | Returns true if the dereferenced pointer value is zero (null data check) |
| 0x005C2A80 | 121 | CNavigatorWnd__destroy_string_linked_list | Destroys a linked list of 0x20-byte nodes, each containing a string. Iterates and frees each node, then frees the sentinel |
| 0x005C2B00 | 5 | CNavigatorWnd__vector_clear_and_free_a | Clears and frees a vector's backing array. Handles aligned allocation cleanup. Zeros out base/size/capacity pointers |
| 0x005C2B10 | 5 | CNavigatorWnd__vector_clear_and_free_b | Clears and frees a vector's backing array. Identical pattern to vector_clear_and_free_a, used for a different member vector |
| 0x005C2B20 | 129 | CNavigatorWnd__vector_clear_and_free_c | Clears and frees a vector's backing array with SEH protection. Same pattern as the other vector_clear_and_free functions |
| 0x005C2BB0 | 87 | CNavigatorWnd__destroy_two_strings | Destroys two STL strings in sequence with SEH protection |
| 0x005C2C10 | 122 | CNavigatorWnd__reset_selection_state | Resets selection state: sets fields to -1/0, clears the embedded string, destroys string buffer via STL_string_dtor |
| 0x005C3270 | 195 | CNavigatorWnd__hit_test_grid_cell | Hit-tests x,y coordinates against an 8-cell grid (2 rows x 4 columns). Returns 1-8 for the cell index, or -1 if outside all cells. Row thresholds: 0x19-0x37 and 0x3F-0x5B. Column thresholds: 0x0B, 0x2F, 0x53, 0x77 (each 0x1F wide) |
| 0x005C3340 | 22 | CNavigatorWnd__clear_list_and_reset_count | Clears the list box items and resets the item count (copies field 0xD4 to 0xD8) |
| 0x005C3360 | 110 | CNavigatorWnd__clear_string_vector_entries | Clears a vector of 0x18-byte string entries: first zeros out each string's length and null-terminates, then destructs all strings and resets the vector end pointer |
| 0x005C33E0 | 196 | CNavigatorWnd__draw_minimap_preview | Draws a minimap preview at the given position. Uses global minimap data (DAT_016fc590) to get dimensions, calls CEffect__fill_rect for background, then draws scaled minimap texture via virtual sprite render function |
| 0x005C4370 | 163 | CNavigatorWnd__draw_player_position_marker | Draws the player position marker on the minimap. Gets player cell position, converts to screen coords via CNavigator__map_to_screen_with_resource_lookup, loads arrow sprite, draws at offset (-9, -17) from screen position. Returns 1 if drawn, 0 if position unavailable |
| 0x005C4420 | 96 | CNavigatorWnd__init_triple_field_zero_a | Initializes a 3-DWORD structure to all zeros with SEH frame setup |
| 0x005C4480 | 96 | CNavigatorWnd__init_triple_field_zero_b | Initializes a 3-DWORD structure to all zeros with SEH frame setup (second instance, for a different member) |
| 0x005C4520 | 133 | CNavigatorWnd__get_name_string | Copies the null-terminated string at object offset 0x68 into the output STL string parameter. Initializes SSO buffer, then assigns via STL_string_assign_buffer |
| 0x005C45D0 | 14 | CNavigatorWnd__has_child_at_offset_0x30 | Returns true if the sub-object at this->0xD4 has a non-zero value at offset 0x30 (checks if a child control has data/content) |
| 0x005C45E0 | 43 | CNavigatorWnd__grid_index_to_pixel_x | Converts a 1-8 grid cell index to a pixel X offset. Indices 1-4 map to columns 0-3, indices 5-8 wrap to columns 0-3 offset by -4. Formula: (adjusted_index * 0x24) - 0x1A. Returns 0 for out-of-range |
| 0x005C4610 | 24 | CNavigatorWnd__grid_index_to_row_height | Returns the row height for a grid cell: 0x18 (24px) for indices < 5 (top row), 0x3C (60px) for indices >= 5 (bottom row) |
| 0x005C4690 | 404 | CNavigatorWnd__layout_expanded_controls | Positions all child controls for the expanded navigator layout. Arranges buttons, labels, list boxes, scrollbars at fixed pixel coordinates. Some controls moved offscreen (-1000,-1000) when hidden |
| 0x005C4830 | 684 | CNavigatorWnd__update_layout | Main layout update for CNavigatorWnd. In compact mode (DAT_016fc55c==1): resizes to 0x86x0x3D, hides most controls. In expanded mode: resizes to 0x110x0x152, delegates to layout_expanded_controls or layout_compact_controls based on DAT_016fc564. Updates all labels (map name, destination, tooltip, waypoint, arrival) |
| 0x005C4AE0 | 392 | CNavigatorWnd__layout_compact_controls | Positions all child controls for the compact navigator layout with additional widgets visible. Similar to layout_expanded but with extra controls (0x3A-0x40) positioned at specific coordinates instead of offscreen |
| 0x005C4C80 | 229 | CNavigatorWnd__create_scrollbar_children | Creates two scrollbar child controls: a vertical sprite scrollbar (0xB4 bytes) and a horizontal sprite scrollbar (0xB4 bytes), each initialized with UIScrollbar__init_with_orientation and added as children |
| 0x005C4D70 | 296 | CNavigatorWnd__create_scroll_list_panel | Creates the scroll list panel: adds a close button (msg 0xBE5), creates a CNavigatorScrollList (0xE0 bytes) with white background (0xFF,0xFF,0xFF), sets width to 0x150, positions at (2,0x14), and adds as child. Then calls process_func_005c8f70 to populate |
| 0x005C4EA0 | 3730 | CNavigatorWnd__create_child_controls | Creates all child controls for CNavigatorWnd: dialog buttons (close, action, navigation), scroll lists (white and blue-tinted), checkboxes, radio buttons, text input, render widget/dropdown, labels. Initializes ~20 child widgets stored at offsets 0xB4-0x100. Sets textures, sizes, colors, and localized text from CMessageStringTable. Calls update_layout at the end |
| 0x005C5D40 | 259 | CNavigatorWnd__create_item_slot_widget | Creates an item slot widget child: adds close button (msg 0xBE5), creates a 0xB8-byte UIItemSlotWidget, sets its texture, sizes it to its texture dimensions, positions based on DAT_016fc64c grid index, makes it visible, adds as child |
| 0x005C5E50 | 539 | CNavigatorWnd__populate_list_from_tree | Populates the navigator list from a tree data source. Iterates through DAT_0138d284 entries, for each: gets tree value, looks up item info (class/level), gets field text, creates a CDialogWnd button (0xD0 bytes) with formatted text (msg 0xD01), positions in rows (0x1A spacing), stores item ID at offset 0xB0, appends to item vector at offset 0xD4 |
| 0x005C6070 | 3 | CNavigatorWnd__noop_a | Empty virtual method stub (no-op). Likely a placeholder for an unimplemented event handler |
| 0x005C6080 | 3 | CNavigatorWnd__noop_b | Empty virtual method stub (no-op). Likely a placeholder for an unimplemented event handler |
| 0x005C6090 | 500 | CNavigatorWnd__render_list_items | Renders the scroll list items. Draws a vertical separator line, iterates visible items (from scroll offset to visible count), highlights selected item row, draws status icons (values 1-3, 100, 200, 300 map to different sprite resources), and renders item text with shadow |
| 0x005C62F0 | 2419 | CNavigatorWnd__on_draw | Main draw handler for CNavigatorWnd. In compact mode: draws 0x86x0x3D bordered box with title and optional destination info. In map view (mode 2/type 1): draws minimap with player marker, path waypoints, destination arrow, and optional navigation timer overlay with word-wrapped text. In map view (type 2): draws minimap with map/destination labels and crosshair cursor. In list view (default): draws bordered panels, minimap preview (with sprite or animated preview), and labeled waypoint entries with shadow text |
| 0x005C6C70 | 73 | CNavigatorWnd__draw_header_background | Draws the navigator window header: loads background sprite from resource, draws title bar text (msg 0xC83), and renders background sprite at origin |
| 0x005C6CC0 | 570 | CNavigatorWnd__draw_minimap_overlay | Draws the navigator minimap overlay including sprites, message text labels at positions, and word-wrapped text content from field at offset 0xB8 when field 0xC8 is nonzero. |
| 0x005C6F40 | 65 | CNavigatorWnd__on_listbox_click | Handles click on the navigator list box. Performs hit test to find the clicked row, stores the row index at offset 0x94, then sends a notification to the parent via vtable call 0x94 with event type 6, and triggers a redraw via vtable 0x98. |
| 0x005C6F90 | 428 | CNavigatorWnd__on_minimap_click | Handles click on the navigator minimap. Draws the footer bar, then if in navigation mode 2 (DAT_016fc564==2), converts screen coordinates to map coordinates using scale factor and checks bounds. If valid, gets the map name and calls handler_005c9e00 to navigate. Otherwise, sets a fade state (0xAA) with timeGetTime(). |
| 0x005C7140 | 250 | CNavigatorWnd__on_minimap_grid_click | Handles click on the navigator minimap grid (4x2 cell layout). Maps x,y screen position to a cell index (1-8) based on grid boundaries. Sends notification with cell index to parent window (vtable 0x94), then calculates scroll offset and calls vtable 0x10 to reposition. Also draws footer bar. |
| 0x005C7330 | 3 | CNavigatorWnd__on_draw_noop | Empty draw callback stub for CNavigatorWnd. Does nothing (3-byte ret). |
| 0x005C7340 | 21 | CNavigatorWnd__dispatch_vtable_4 | Dispatches to vtable+4 on the object. Indirect jump (its jump table could not be recovered). Acts as a forwarding method. |
| 0x005C7360 | 60 | CNavigatorWnd__scroll_minimap | Scrolls the navigator minimap view. If field 0xA4 is nonzero and param_2 < 0, scrolls up (event type 7, delta 6); otherwise scrolls down (event type 7, delta -6). Uses vtable 0x94 on the scrollbar child at offset 0xAC. |
| 0x005C73B0 | 247 | CNavigatorWnd__get_map_name_by_type | Returns a map name string based on the type parameter: 0,1 = CMapEntry__get_name_ptr (current map), 2,3 = param_3 vtable 0x14 getter (NPC/destination name). Initializes an STL string output and assigns the result. |
| 0x005C74B0 | 754 | CNavigatorWnd__get_tooltip_text_with_distance | Builds a tooltip string for a navigator entry. For type 0,1: gets description from CMapNode. For type 2,3: gets map name + coordinates via sprintf "(x, y)". Appends a distance label based on the NPC distance value (msg 0x991=very close, 0x992=close, 0x993=moderate, 0x994=far, 0x995=very far). |
| 0x005C77B0 | 588 | CNavigatorWnd__get_tooltip_text_simple | Builds a simple tooltip string for a navigator entry. Gets the name from param_2 vtable 0x14 and appends a distance label based on the distance tier (msg IDs 0x991-0x995 for very close through very far). Similar to the _with_distance variant but without map/type switching. |
| 0x005C7A00 | 163 | CNavigatorWnd__update_scrollbar | Updates the navigator list scrollbar range and position. Calculates visible rows from height/row_height, computes max scroll from total items minus visible. Sets scrollbar visibility flag at offset 0xA4 and calls CUIScrollBar__set_range_and_position, then triggers redraw on the scrollbar child. |
| 0x005C7AD0 | 100 | CNavigatorWnd__on_resize | Handles resize of the navigator window. Calls CEffect__resize_surface, then repositions two child controls (at offsets 0xAC and 0xB0) to fit the new dimensions with 13px margins, and triggers a layout recalc via vtable 0xE0. |
| 0x005C7B50 | 285 | CNavigatorWnd__handle_scroll_event | Handles scroll events (type 7=scroll, 9=page up, 10=page down) for the navigator list. Computes new scroll position clamped to [0, max], updates the scrollbar position via CUIControl__set_field_0x84, triggers redraw on children, and returns the scroll delta. Non-scroll events are delegated to UIGridView__handle_scroll_command. |
| 0x005C7C70 | 74 | CNavigatorWnd__on_close_button_click | Handles close button click (event 6, param 0xC9) for the navigator window. Clears TLS field 0x13A (toggle flag) and calls process_func_005c8f70 to rebuild the NPC list. Also handles event 0x3C (general refresh). Triggers redraw via vtable 0x98. |
| 0x005C7CC0 | 87 | CNavigatorWnd__on_command | Main command handler for the CNavigatorWnd. Processes a wide range of commands including: text input (0), button clicks (6) with sub-commands (navigate 0x150/0x1B9, search 0x141, close 0xC9, toggle pin 0xCA, reset 0xC8, route 0x1AE, etc.), resize (0x22), combo box change (0x27), and double-click (0x28). Manages navigation state, creates child windows, handles file-based NPC lookup, and coordinates with CNavigator and UIWorldMapWnd. |
| 0x005C8D70 | 39 | CNavigatorWnd__on_close_button_check | Simple event check: if event type is 6 and param is 0xC9, clears TLS field 0x132 (navigator sub-window toggle). Returns 0. |
| 0x005C8F60 | 13 | CNavigatorWnd__set_field_0x2c | Simple setter. Stores param_2 at offset 0x2C of the object. |
| 0x005C8F70 | 516 | CNavigatorWnd__populate_npc_list | Populates the navigator NPC list. Clears the listbox (vtable 0xDC), iterates through CNavigator waypoints, formatting each as "MapName (x, y)" with alternating row colors (100/200). Also adds the current location entry with color 300. Updates listbox via vtable 0xD8 and 0x98. |
| 0x005C9180 | 1187 | CNavigatorWnd__load_route_file | Loads a route file from the NPC file list at the given index. Opens the file with fopen("r"), reads lines, tokenizes with strtok (comma/newline separator), parses coordinate links, builds flat route groups, and sends NPC list to server via packet 0x38F if NPCs found. Updates the search results display and sends event 0xBE to self. |
| 0x005C9630 | 13 | CNavigatorWnd__set_field_0x28 | Simple setter. Stores param_2 at offset 0x28 of the object. |
| 0x005C9640 | 985 | CNavigatorWnd__populate_search_detail_list | Populates the navigator detail list for a selected search result group. For each NPC in the group: if coordinates are (-1000,-1000), shows simple tooltip text; otherwise shows tooltip with distance info and appends coordinate string "(x, y)". Adds items to the detail listbox (field 0x3C) with type codes and triggers redraw. |
| 0x005C9A20 | 721 | CNavigatorWnd__populate_search_result_list | Populates the navigator search result list (field 0x3B). Iterates through route groups (DAT_016fc5c0..DAT_016fc5c4), formats each as "%d MapName" (count + name), adds to listbox with type codes. At the end, sets a summary label with the total group count using message text 0xC8A. |
| 0x005C9D00 | 253 | CNavigatorWnd__change_view_icon | Changes the navigator view icon for a given icon index (1-8). Formats three texture paths using the icon index (normal, hover, pressed states), applies them to the button widget via UIButtonWidget__set_texture_resolved, and triggers CNavigator__load_icon_sprites to load the new icon sprites. |
| 0x005C9E00 | 475 | CNavigatorWnd__navigate_to_coordinates | Initiates navigation to specific map coordinates. Encodes x,y coordinates using base62_encode_int, builds a navigation string by appending map name + encoded coords to a global string (DAT_01315068), then triggers chat input confirmation via UIEditField__on_confirm_input. Finally sends event 0x99 with the navigation string to the active entity. |
| 0x005C9FE0 | 108 | CNavigatorWnd__select_npc_and_update | Selects an NPC by index from the navigator detail list. Stores the index in DAT_016fc5d0, advances the route node (retries once on failure), updates the detail listbox selection position at field 0x3C offset 0x94, and updates the world map display if visible. |
| 0x005CA060 | 142 | CNavigatorWnd__clamp_position_to_screen | Clamps the navigator window position to stay within the screen bounds. Syncs x/y/w/h from the window to the tooltip control at offset 0x110. Adjusts the height offset by 0x110 or 0xE4 depending on a flag. Clamps x to [0, screen_width-offset] and y to [0, screen_height-0x152]. |
| 0x005CA100 | 188 | CNavigatorWnd__draw_npc_labels | Draws NPC labels on the navigator minimap. Iterates through the NPC label array (DAT_016fc5b0, element size 0x2C). For each matching NPC (by param_1), draws the text twice: once offset by (1,1) with shadow color, and once at the base position with the label color. Uses font size 0xC. |
| 0x005CA1C0 | 45 | CNavigatorWnd__check_scroll_threshold | Checks if enough time/distance has passed to justify a scroll update. If the delta (param_3 - *param_2) divided by (field_0x11C / param_4) meets the threshold param_4, updates *param_2 to param_3. Returns 0. |
| 0x005CA360 | 574 | CPartySearchEntry__vector_insert_realloc | Inserts a new CPartySearchEntry (0x4C bytes each) into a vector with reallocation. Calculates new capacity (1.5x growth), allocates new buffer, copy-constructs the new element via helper_005ca5b0, then relocates existing elements around the insertion point. Frees the old buffer and updates the vector's begin/end/capacity pointers. |
| 0x005CA5B0 | 168 | CPartySearchEntry__copy_ctor | Copy constructor for CPartySearchEntry. Sets vtable to CEffectTextureBase scalar deleting dtor, copies flags and field data (offsets 4-0x10), then deep-copies two STL strings at offsets 0x14 and 0x34 and two fields at 0x2C and 0x30. |
| 0x005CA660 | 167 | CPartySearchEntry__default_ctor | Default constructor for CPartySearchEntry. Sets vtable, initializes fields to defaults (flag=0, field_8=0, maxLV=999, field_10=0), and initializes two STL strings at offsets 0x14 and 0x34 as empty with SSO capacity 0xF. |
| 0x005CA710 | 118 | CPartySearchMgr__ctor | Constructor for CPartySearchMgr. Sets vtable (PTR_util_005ca8d0_010e2304), initializes field_5 to 0, field_8..field_18 to 0, and sets field_4 (active flag) to 1. |
| 0x005CA7C0 | 173 | CPartySearchMgr__clear_entries | Clears all party search entries. Iterates the vector calling each entry's destructor via vtable (0x4C byte stride, 0x13 dwords), frees the vector buffer, and zeros begin/end/capacity. |
| 0x005CA880 | 74 | CPartySearchMgr__dtor | Destructor for CPartySearchMgr. Resets vtable pointer, then calls CPartySearchMgr__clear_entries to destroy all entries and free the vector. |
| 0x005CA8D0 | 99 | CPartySearchMgr__scalar_deleting_dtor | Scalar deleting destructor for CPartySearchMgr. Resets vtable, clears entries, and if bit 0 of param_2 is set, frees the object (0x1C bytes) via operator_delete. |
| 0x005CA940 | 213 | CPartySearchMgr__get_or_create_instance | Gets or creates the singleton CPartySearchMgr instance (DAT_01389848). If null, allocates 0x1C bytes and constructs via CPartySearchMgr__ctor. If active flag (field_4) is set, returns 1; otherwise destroys the instance and returns 0. |
| 0x005CAA20 | 27 | CPartySearchMgr__destroy_instance | Destroys the CPartySearchMgr singleton. If DAT_01389848 is nonzero, calls the scalar deleting dtor via vtable and sets the global pointer to null. |
| 0x005CAA40 | 4 | CPartySearchMgr__get_entries_ptr | Returns pointer to the entries vector (this + 0xC). Simple inline accessor. |
| 0x005CAA50 | 395 | CPartySearchMgr__build_party_url | Builds a party search API URL string based on the operation type. Gets the base URL from lua_get_table_string_value_for_c, then appends an endpoint suffix based on param_2: 0,2="party_add", 1="party_list", 3="party_search", 4="party_del", 5="party_get", 6="party_change", 7="party_info". Returns the URL string. |
| 0x005CAC00 | 1966 | CPartySearchMgr__parse_party_list_json | Parses a JSON array of party search entries. Clears the existing entries vector, then iterates through JSON objects extracting fields: CharName (string), X/Y coordinates (doubles->int), role flags (Assist, Healer, Dealer, Tanker as bools), level range (MinLV, MaxLV), a numeric field, and a string field. Constructs CPartySearchEntry for each and inserts into the vector. |
| 0x005CB3B0 | 366 | CPartySearchMgr__send_add_request | Sends a party search "add" request to the server. Builds the party URL, copies the character name, encrypts data via xor_decrypt_packet_data, then calls CEffectTexture__register_effect_type_a to submit the HTTP request. Increments the pending request counter at offset 0x18. |
| 0x005CB520 | 485 | CPartySearchMgr__on_response_received | Handles a party search server response. Decrements the pending request counter. If response data exists, initializes a JSON value, parses the response string, checks the operation type field. If type is not 2 or 3, finds the PartySearchWnd (type 0x144) and sends a refresh event (0x19F). Cleans up JSON and string resources. |
| 0x005CB710 | 256 | CPartySearchMgr__send_search_request | Sends a party search query request to the server. Builds the URL via CPartySearchMgr__build_party_url, copies the character name, and submits via CEffectTexture__register_effect_type_f (GET request). Increments the pending request counter. |
| 0x005CB810 | 1733 | CPartySearchMgr__on_detail_response_received | Handles a detailed party search response with full entry data. Decrements pending counter. Parses the JSON response, checks operation type (2=search results, 3=list results). For other types, parses full party entry fields (CharName, X, Y, Assist, Healer, Dealer, Tanker, MinLV, MaxLV, numeric field, string field), constructs a CPartySearchEntry, creates PartySearchWnd (type 0x144), and initializes it with the entry data. Sets field_5 active flag. |
| 0x005CBEE0 | 276 | CPartySearchMgr__send_update_request | Sends a party search update/change request. Default-constructs a CPartySearchEntry, builds the URL, copies the character name, and submits via CEffectTexture__register_effect_type_h (POST/PUT request). Increments the pending request counter. |
| 0x005CC000 | 644 | CPartyRecruit__handle_create_response | Handles party recruit creation response. Parses JSON response, checks result code (2=error, 3=error), on success creates/finds window 0x144 (party recruit), reads totalPage, sends refresh command 0x3c. |
| 0x005CC290 | 258 | CPartyRecruit__register_entry_step_g | Party recruit registration step: calls handler_005caa50, then registers effect type g. Increments counter at this+0x18. |
| 0x005CC3A0 | 2135 | CPartyRecruit__handle_update_entry | Handles party recruit entry update. Parses JSON with fields: CharName, Assist, Healer, Dealer, Tanker, MinLV (default 0), MaxLV (default 999). Updates matching entry in recruit list by slot ID. Finds window 0x144, sends refresh. Also updates CharSelectWnd (0x159) slot data. Validates level range, shows error messages 0xd58/0x4f/0xd73. |
| 0x005CCC00 | 274 | CPartyRecruit__register_entry_step_k | Party recruit registration step: calls helper_005ca5b0, assigns string, then handler_005caa50, then registers effect type k. Increments counter at this+0x18. |
| 0x005CCD20 | 593 | CPartyRecruit__handle_delete_response | Handles party recruit deletion response. Parses JSON, on error (code 2/3) shows message 0xd59. On success shows message 0xd5a, sets flag at this+5, creates/refreshes window 0x144 with command 0x19f. |
| 0x005CCF80 | 279 | CPartyRecruit__register_entry_step_h | Party recruit registration step: calls helper_005ca5b0, assigns string, then handler_005caa50, then registers effect type h. Increments counter at this+0x18. |
| 0x005CD0A0 | 668 | CPartyRecruit__handle_cancel_response | Handles party recruit cancel/leave response. On empty response and matching ID, shows message 0xdb3. On JSON error code 2/3, also shows 0xdb3. On success shows message 0xd83, clears flag at this+5, disables recruit window child and refreshes (0x19f). |
| 0x005CD340 | 255 | CPartyRecruit__register_entry_step_l | Party recruit registration step: stores param2 at this+8, assigns string from global, calls handler_005caa50, then registers effect type l. Increments counter at this+0x18. |
| 0x005CD440 | 259 | CPartyRecruit__register_entry_conditional | Conditional party recruit registration: only proceeds if flag at this+5 is set. Stores global ID at this+8, assigns string, calls handler_005caa50, then registers effect type l. Increments counter at this+0x18. |
| 0x005CD550 | 37 | CPartyRecruit__destroy_entries_range | CPartyRecruit: destroy entries range |
| 0x005CD580 | 122 | CPartyRecruit__copy_entries_range | Copies party recruit entries from [param1, param2) to destination param3. Each entry is 0x4c bytes. Uses helper_005ca5b0 to copy-construct each entry. Returns end of destination. |
| 0x005CD600 | 120 | CPartyRecruit__destruct_entries_range | Destructs party recruit entries in range [param1, param2). Each entry is 0x4c bytes. Calls helper_005ca5b0 on each (likely destructor call). |
| 0x005CD690 | 56 | CPartyRecruit__deallocate_entries | Deallocates party recruit entry array. param1 = buffer, param2 = entry count. Each entry is 0x4c bytes. Handles aligned allocation with 0x23 overhead for large blocks. |
| 0x005D3F50 | 7484 | CReportManager__build_report_data | Builds encrypted report with character info and boolean flags |
| 0x005D5D70 | 744 | CReportManager__init | Initializes CReportManager with vtable at 010e2658 |
| 0x005D6060 | 210 | CReportManager__destructor | Destroys CReportManager, cleans up string fields |
| 0x005D6140 | 234 | CReportManager__scalar_deleting_destructor | Scalar deleting destructor, frees 200 bytes |
| 0x005D6230 | 622 | CReportManager__update_report_state | Updates report state with timeGetTime timestamp |
| 0x005D64B0 | 180 | CReportManager__init_sub_containers | Initializes 3 sub-containers at offsets 0x0, 0x94, 0xAC |
| 0x005D6570 | 2535 | CReportManager__build_report_data_v2 | Builds report with 4 encrypted string keys |
| 0x005D6F60 | 103 | CReportManager__delete_tree_nodes_recursive | Recursively frees RB tree nodes (24 bytes) |
| 0x005D6FD0 | 75 | CReportManager__map_lower_bound | lower_bound on RB tree using integer key |
| 0x005D7020 | 160 | CReportManager__copy_report_record | Copies 48-byte report record |
| 0x005D70C0 | 198 | CReportStorage__init | Initializes report storage with vtable 010e26e4 |
| 0x005D7190 | 65 | CReportStorage__lock_mutex_005d7190 | Wrapper to acquire mutex lock |
| 0x005D71E0 | 65 | CReportStorage__lock_mutex_005d71e0 | Wrapper to acquire mutex lock (second) |
| 0x005D7230 | 65 | CReportStorage__cleanup_string_005d7230 | Cleans up std::string member |
| 0x005D7280 | 67 | CReportStorage__free_list_sentinel_80 | Frees 80-byte sentinel if non-null |
| 0x005D72D0 | 67 | CReportStorage__free_tree_sentinel_24 | Frees 24-byte sentinel if non-null |
| 0x005D7320 | 104 | CReportStorage__destroy_list_and_sentinel | Destroys list and frees sentinel |
| 0x005D7390 | 111 | CReportStorage__destroy_tree_and_sentinel | Destroys RB tree and sentinel |
| 0x005D7410 | 78 | CReportStorage__free_tree_node_005d7410 | Frees 24-byte tree node |
| 0x005D7460 | 78 | CReportStorage__free_tree_node_005d7460 | Frees 24-byte tree node (second) |
| 0x005D74B0 | 121 | CReportStorage__destroy_linked_list | Frees all 80-byte nodes in list |
| 0x005D7530 | 65 | CReportStorage__destroy_tree_wrapper | Wrapper for tree cleanup |
| 0x005D7580 | 68 | CReportStorage__lock_mutex_005d7580 | Wrapper to acquire mutex (third) |
| 0x005D75D0 | 114 | CReportStorage__destructor | Destroys CReportStorage |
| 0x005D7650 | 135 | CReportStorage__scalar_deleting_destructor | Scalar deleting destructor, frees 32 bytes |
| 0x005D76E0 | 173 | CReportStorage__add_to_pending_list | Adds entry to pending list |
| 0x005D7790 | 167 | CReportStorage__add_to_completed_list | Adds entry to completed list |
| 0x005D7840 | 333 | CReportStorage__aggregate_completed_to_tree | Aggregates completed items into RB tree |
| 0x005D7990 | 28 | CReportStorage__clear_all_lists | Clears both lists and tree |
| 0x005D79B0 | 299 | CReportStorage__get_instance | Singleton accessor at DAT_0138988c |
| 0x005D7AE0 | 116 | CReportStorage__remove_from_pending_list | Removes item from pending list |
| 0x005D7B60 | 138 | CReportStorage__remove_from_completed_list | Removes item from completed list |
| 0x005D7BF0 | 27 | CReportStorage__destroy_instance | CReportStorage: destroy instance |
| 0x005D7C10 | 256 | CReportStorage__transfer_pending_to_completed | Transfers pending to completed |
| 0x005D7D10 | 289 | CReportStorage__transfer_completed_to_pending | Transfers completed to pending |
| 0x005D7E40 | 204 | CReportStorage__find_in_completed_by_name | Searches completed by name |
| 0x005D7F10 | 40 | CReportStorage__get_pending_count_by_id | Gets count by ID from pending |
| 0x005D7F40 | 4 | CReportStorage__get_pending_list_ptr | Returns pending list ptr |
| 0x005D7F50 | 252 | CReportStorage__find_pending_entry_by_id | Finds pending entry by ID |
| 0x005D8050 | 252 | CReportStorage__find_completed_entry_by_id | Finds completed entry by ID |
| 0x005D8150 | 4 | CReportStorage__get_completed_list_ptr | Returns completed list ptr |
| 0x005D8160 | 4 | CReportStorage__get_completed_count | Returns completed entry count |
| 0x005D8170 | 40 | CReportStorage__get_completed_count_by_id | Gets count by ID from completed |
| 0x005D81A0 | 170 | CReportStorage__sum_completed_counts_by_name | Sums counts matching name |
| 0x005D8250 | 41 | CReportStorage__get_pending_price_by_id | Gets price by ID from pending |
| 0x005D8280 | 4 | CReportStorage__get_tree_ptr | Returns tree ptr at this+0x18 |
| 0x005D8290 | 57 | CReportStorage__calc_total_completed_value | Sums price*count total |
| 0x005D82D0 | 12 | CReportStorage__append_entry_wrapper | CReportStorage: append entry wrapper |
| 0x005D84F0 | 115 | CReportStorage__clear_rb_tree | CReportStorage: clear rb tree |
| 0x005D8570 | 125 | CReportStorage__clear_linked_list | CReportStorage: clear linked list |
| 0x005D8600 | 106 | CReportStorage__unlink_and_free_node | Unlinks and frees node |
| 0x005D8670 | 170 | CReportStorage__append_list_entry | Appends new entry to list |
| 0x005DB340 | 104 | CSearchResult__destroy_range | Destroys 0x1C-byte result range |
| 0x005DC0B0 | 170 | CSearchResult__copy_range_to_buffer | Copies 0x1C result range |
| 0x005DC160 | 107 | CSearchResult__copy_construct_single | Copies single result |
| 0x005DC1D0 | 129 | CSearchResult__move_construct | Move constructs result |
| 0x005DC820 | 68 | CSearchResult__destroy_vectors_wrapper | Destroys vectors wrapper |
| 0x005DC870 | 105 | CSearchResult__cleanup_node_data | CSearchResult: cleanup node data |
| 0x005DC8E0 | 68 | CSearchResult__destroy_vectors_wrapper_005dc8e0 | Destroys vectors (second) |
| 0x005DC930 | 68 | CSearchResult__destroy_string_wrapper | Destroys string wrapper |
| 0x005DCA20 | 65 | CSearchResult__cleanup_string_data | Cleans up string data |
| 0x005DCA70 | 65 | CSearchResult__free_vector_buffer_wrapper | CSearchResult: free vector buffer wrapper |
| 0x005DCAC0 | 86 | CSearchResult__destroy_single_element | Destroys a single 0x1C-byte CSearchResult element by calling the sub-vector destructors (8-byte vector dtor + 12-byte vector dtor via stub_005ddc50 and stub_005ddbc0). |
| 0x005DCB20 | 91 | CSearchResult__compare_8byte_vectors_equal | Compares two 8-byte pair vectors for element-wise equality. Returns true (1) if both vectors have the same length and identical elements, false (0) otherwise. |
| 0x005DCB80 | 112 | CSearchResult__compare_int_vectors_less_than | Lexicographic less-than comparison of two int vectors (this vs param). Pads shorter vector with zeros. Returns true if this vector is less than param vector. Used as comparator for CSearchManager tree ordering. |
| 0x005DCBF0 | 110 | CSearchResult__compare_int_vectors_less_than_standalone | Standalone (non-thiscall) lexicographic less-than comparison of two int vectors. Same logic as CSearchResult__compare_int_vectors_less_than but with cdecl calling convention. Pads shorter vector with zeros. |
| 0x005DD990 | 22 | CSearchResult__destroy_range_wrapper | Thin wrapper that forwards to CSearchResult__destroy_range with reordered parameters. |
| 0x005DDCF0 | 174 | CSearchResult__vector_destroy_and_free | Destroys and frees a vector of 28-byte CSearchResult elements. First calls CSearchResult__destroy_range on all elements (destroying sub-vectors), then frees the backing allocation. |
| 0x005DDE40 | 180 | CSearchResult__uninitialized_copy | Uninitialized copy of 28-byte CSearchResult elements. Copies sub-vectors (8-byte and 12-byte) via copy-construct, plus a 4-byte trailing field, from source range to destination buffer. |
| 0x005DE9C0 | 105 | CSearchResult__destroy_range_loop | Destroys a range of 28-byte CSearchResult elements by iterating [param_1, param_2) in 0x1c-byte steps, clearing the 12-byte and 8-byte sub-vectors in each element. |
| 0x005E00A0 | 137 | CSearchResult__relocate_range | Relocates 28-byte CSearchResult elements from [param_1, param_2) to a new buffer at param_3 by move-constructing each element, then destroys the leftover range at the destination tail. |
| 0x005E0130 | 105 | CSearchResult__copy_construct_element | Copy-constructs a single 28-byte CSearchResult element. Copies the 1-byte flag, then copy-constructs the 8-byte sub-vector (materials) and 12-byte sub-vector (products). |
| 0x005E01A0 | 348 | CSearchResult__vector_copy_construct | Copy-constructs a vector of 28-byte CSearchResult elements. Allocates buffer, then iterates source range copy-constructing each element's sub-vectors (8-byte materials, 12-byte products, 4-byte trailing field). |
| 0x005E0300 | 162 | CSearchResult__move_construct_element | Move-constructs a single 28-byte CSearchResult element. Copies the 1-byte flag, then moves the 8-byte and 12-byte sub-vectors by transferring pointers and zeroing the source. |
| 0x005E0560 | 240 | CSearchResultWnd__ctor | Constructor for CSearchResultWnd. Calls UIWindowBase__ctor, sets vtable to PTR_010e2a04, initializes result display fields (0x2d=0x1b, 0x2e=0x10) and zeroes remaining member slots. |
| 0x005E0870 | 87 | CSearchResult__destroy_element | Destroys a single 28-byte CSearchResult element by clearing its 12-byte sub-vector and 8-byte sub-vector. |
| 0x005FC010 | 332 | CItemReformWnd__ctor | CItemReformWnd constructor. Extends UIWindowBase. Initializes many fields (item slots, strings, vectors). Sets vtable to PTR_stub_005fc4c0_010e8570. Creates two item info trees via CItemInfoMgr__clear_tree_and_free_alt, initializes string buffers at offsets 0xBB-0xC2. |
| 0x005FC160 | 166 | CItemReformResultListWnd__ctor | CItemReformResultListWnd constructor. Extends UIWindowBase. Initializes item display fields: type=0x20, selected index=-1, and several counters to 0. Sets vtable to PTR_stub_005fc740_010e820c. |
| 0x005FC230 | 90 | CItemReformWnd__destroy_vector_elements | Iterates through a vector of 0xC-byte elements (from *param_1 to param_1[1]) and calls stub_005feb20 on each to destroy them. |
| 0x005FC290 | 129 | CItemReformWnd__free_vector_buffer | Frees the underlying buffer of a vector (4-byte element aligned). Handles aligned allocation cleanup for buffers > 0xFFF bytes. Resets pointer, size, and capacity to 0. |
| 0x005FC330 | 5 | CItemReformWnd__destroy_vector_elements_and_free | Destroys all 0xC-byte vector elements via stub_005feb20, then frees the vector buffer. Full vector cleanup. |
| 0x005FC340 | 288 | CItemReformWnd__dtor | CItemReformWnd destructor. Sets vtable, unregisters child window (offset 0x35), sends packet 0xB90 via CNetworkSession, destroys 4 STL strings, clears shop item vector, frees vector buffer, and calls UIWindowBase__dtor. |
| 0x005FC460 | 95 | CItemReformResultListWnd__dtor | CItemReformResultListWnd destructor. Sets vtable to PTR_stub_005fc740_010e820c, clears the shop item vector, then calls UIWindowBase__dtor. |
| 0x005FC4C0 | 312 | CItemReformWnd__scalar_deleting_dtor | CItemReformWnd scalar deleting destructor. Same as dtor at 005fc340 but conditionally frees this (0x310 bytes) based on param_2 bit 0. |
| 0x005FC740 | 119 | CItemReformResultListWnd__scalar_deleting_dtor | CItemReformResultListWnd scalar deleting destructor. Sets vtable, clears shop item vector, calls UIWindowBase__dtor, conditionally frees this (0xD8 bytes). |
| 0x005FC7C0 | 1240 | CItemReformResultListWnd__render_items | Renders item reform result list items. Calls virtual resize, creates text layout, copies vector-of-vectors for item entries, iterates each entry's child effects: calls virtual render on each effect, adds to child list via CEffect__add_child_to_list_end, tracks maximum height. Updates window height if content overflows. Cleans up temp vectors and text layout. |
| 0x005FCCA0 | 73 | CItemReformWnd__calculate_page_index | Calculates the page index for the item reform list display. Computes based on offset 0xC4 (current page) + param_2 / item_height (offset 0xB4), clamped to max index = (list_count / 0xF8) - 1, and never less than 0. |
| 0x005FCCF0 | 22 | CItemReformWnd__get_input_text_as_int | Reads the STL string at offset 0x2C of this, converts it to an integer via atoi. Used to get user-entered numeric input (e.g., quantity) from a text field. |
| 0x005FCD20 | 1157 | CItemReformWnd__create_ui_layout | Creates the full UI layout for the item reform window. Creates: close button, two CDialogWnd labels (using message IDs 0xDA and 0xF07 for title and description), a CItemReformResultListWnd (offset 0xB8), two CItemReformMaterialSlot icons (offsets 0xBC and 0xC0), a grid of material slots from CUserHotKeyMgr data (stored in vector at offset 0xC8), and a UIBaseDialog description field (offset 0xD0) with scrollbar. |
| 0x005FD1B0 | 178 | CItemReformWnd__create_scrollbar | Creates and configures a scrollbar widget (UISpriteWidget) for the item reform list. Stores at offset 0xC8, sets vertical orientation, initializes scroll step size based on param_3 / item_height (offset 0xB4), adds as child, then calls stub_005fdde0 to refresh. |
| 0x0060A640 | 250 | CRecentActionTracker__ctor | Constructor for CRecentActionTracker. Initializes vtable, creates an std::set (red-black tree with 0x30-byte sentinel node), and two circular queues (8-byte linked list nodes). Sets an active flag to true. Object size is 0x38 bytes. |
| 0x0060A740 | 67 | CRecentActionTracker__delete_tree_sentinel | Deletes the tree sentinel node (0x30 bytes) if it exists at offset +4 of the passed structure. |
| 0x0060A790 | 76 | CRecentActionTracker__destroy_tree_and_sentinel | Destroys all tree nodes by recursively walking from root, then deletes the sentinel node (0x30 bytes). Used for cleanup of CRecentActionTracker's std::set member. |
| 0x0060A7F0 | 123 | CRecentActionTracker__cleanup_tree_node | Cleans up a tree node: destroys the string member at offset +4, then deletes the node memory (0x30 bytes) if it exists. |
| 0x0060A870 | 78 | CRecentActionTracker__delete_tree_sentinel_b | Deletes the tree sentinel node (0x30 bytes) at offset +4. Similar to CRecentActionTracker__delete_tree_sentinel but with different exception handler registration. |
| 0x0060A8C0 | 77 | CRecentActionTracker__destroy_queue_a | Destroys a circular queue: calls CircularQueue__destroy_all_buckets to free bucket data, then frees the queue header (8 bytes) and nulls the pointer. |
| 0x0060A920 | 87 | CRecentActionTracker__destroy_tree_and_sentinel_b | Destroys the tree and its sentinel node. Walks all nodes recursively from root, then deletes the 0x30-byte sentinel. Variant with different SEH state tracking. |
| 0x0060A980 | 80 | CRecentActionTracker__destroy_string_member | Destroys an std::string member at offset +4 of the passed structure. SEH-protected cleanup helper. |
| 0x0060A9D0 | 181 | CRecentActionTracker__dtor_internal | Internal destructor for CRecentActionTracker. Sets vtable, destroys both circular queues (at offsets +0x24 and +0x10), then destroys the tree and its sentinel at offset +8. Does not free the object itself. |
| 0x0060AA90 | 65 | CRecentActionTracker__destroy_string_member_b | Destroys an std::string member. SEH-protected cleanup. Variant of CRecentActionTracker__destroy_string_member. |
| 0x0060AAE0 | 202 | CRecentActionTracker__scalar_deleting_dtor | Scalar deleting destructor for CRecentActionTracker. Calls the internal destructor to clean up trees and queues, then optionally frees the 0x38-byte object if bit 0 of the flags parameter is set. |
| 0x0060ABB0 | 541 | CRecentActionTracker__record_action | Records an action by ID into CRecentActionTracker. Copies a string name, looks up the ID in the tree via _Find_lower_bound. If not found, allocates a new 0x30-byte tree node and inserts it with Insert_node. Stores the string value and timestamp (timeGetTime). Also checks the pending action queue for duplicate IDs. |
| 0x0060ADD0 | 92 | CRecentActionTracker__expire_old_entries | Expires old entries from the pending action deque. Pops entries from the front while their timestamp + 10000ms (10 seconds) is less than current time. Resets the deque when empty. |
| 0x0060AE30 | 351 | CRecentActionTracker__get_or_create_singleton | Singleton accessor for CRecentActionTracker. If global DAT_01389928 is null, allocates and constructs a new instance. Checks the active flag; if inactive, destroys the instance and returns 0. Returns 1 if the singleton is active and ready. |
| 0x0060AF90 | 27 | CRecentActionTracker__destroy_singleton | Destroys the CRecentActionTracker singleton. Calls the virtual destructor on global DAT_01389928 and sets it to null. |
| 0x0060AFB0 | 91 | CRecentActionTracker__get_cooldown_message | Wrapper that calls CRecentActionTracker__lookup_or_insert_and_get_message to get the cooldown/rate-limit message string for a given action ID. Returns the string result. |
| 0x0060B010 | 470 | CRecentActionTracker__lookup_or_insert_and_get_message | Looks up an action ID in the tree. If found and not at end, returns the associated string value. If not found, checks the circular queue for the ID. If not in queue either, grows the queue and inserts the ID. Returns message string 0x245 from CMessageStringTable (likely a cooldown/rate-limit notification message). |
| 0x0060B1F0 | 232 | CRecentActionTracker__pop_and_find_duplicate | Pops entries from the front queue, checking each entry: looks it up in the tree and checks for a duplicate in the pending deque. If found or if the entry is expired (10 min timeout via is_entry_expired), processes it. Returns the matched action ID or 0 if queue is exhausted. |
| 0x0060B2E0 | 56 | CRecentActionTracker__clear_all | Clears all data in CRecentActionTracker: destroys all tree nodes and resets the sentinel, then destroys both circular queue bucket tables. |
| 0x0060B320 | 242 | CRecentActionTracker__enqueue_if_absent | Enqueues an action ID into the circular queue if it is not already present. Searches the queue linearly for duplicates. If absent, grows the queue if needed and appends the ID. |
| 0x0060B420 | 72 | CRecentActionTracker__tree_contains | Checks if a uint key exists in the std::set (red-black tree) via _Find_lower_bound. Returns true if the key is found, false otherwise. |
| 0x0060B470 | 465 | CRecentActionTracker__process_pending_actions | Main processing loop for pending actions. First expires old entries from the pending deque (10s timeout). Then pops entries from the front queue, looks each up in tree and pending deque for duplicates. If an action is confirmed (found in tree, not in pending deque or expired), sends packet 0x369 (6 bytes: header + action ID) via CNetworkSession__send_data_timed and adds it to the pending deque with current timestamp. |
| 0x0060B650 | 25 | CRecentActionTracker__is_entry_expired | Checks if an entry has expired by comparing timeGetTime() against the entry's timestamp + 600000ms (10 minutes). Returns true if expired. |
| 0x0060BCF0 | 67 | CRecentActionTracker__tree_find | Finds a key in the std::set via _Find_lower_bound. If found and key matches, writes the node pointer to param_2. If not found, writes the tree head (end iterator) instead. |
| 0x0060C5D0 | 186 | CStringMapManager__ctor | Constructor for CStringMapManager. Initializes vtable (PTR_helper_0060d7f0_010e9528), creates two red-black trees (0x58-byte sentinel for the first, 0x40-byte for the second), sets a boolean flag, and calls CLuaInstance__ctor to initialize a Lua scripting instance. |
| 0x0060C6A0 | 67 | CStringMapManager__delete_tree_sentinel_a | Deletes the second tree's sentinel node (0x40 bytes) at offset +4 of the sub-structure if it exists. |
| 0x0060C6F0 | 67 | CStringMapManager__delete_tree_sentinel_b | Deletes the first tree's sentinel node (0x58 bytes) at offset +4 of the sub-structure if it exists. |
| 0x0060EF80 | 193 | CReputeWnd__ctor | CReputeWnd constructor. Calls UIWindowBase__ctor, sets vtable to CReputeWnd vtable, initializes members: tab index (0x2D/0x2E)=0, columns (0x31)=8, flags (0x32/0x33)=1, boolean (0x34)=false, and zeroes slots 0x36-0x3A. |
| 0x0060F050 | 95 | CReputeWnd__dtor | CReputeWnd destructor. Sets vtable, calls helper_00610cd0 to clean up repute-specific data, then calls UIWindowBase__dtor. |
| 0x0060F0B0 | 63 | CReputeWnd__move_assign_data | Move-assigns repute window data from param_2 to this. Cleans up old data via helper_00610cd0, copies 3 dwords (likely a vector triple), then zeroes the source. Returns this. |
| 0x0060F0F0 | 119 | CReputeWnd__scalar_deleting_dtor | CReputeWnd scalar deleting destructor. Sets vtable, cleans up repute data, calls UIWindowBase__dtor, conditionally frees 0xF0-byte object if bit 0 of param_2 is set. |
| 0x0060F180 | 1896 | CReputeWnd__init_ui_widgets | Initializes the reputation window UI: creates button widget, close button, render widget for background, text widget for title, dialog widgets for prev/next page buttons and search, populates group names from CReputeDB into the list, loads initial entries. |
| 0x0060F8F0 | 3060 | CReputeWnd__draw_content | Draws the reputation window content: header row with message text, tiled borders, grid of reputation entries with name/star icons/progress bars/point text. Handles two display modes: negative values (red stars) and positive values (green stars). Shows GROUP label with total points when group mode active. Draws page counter at bottom. |
| 0x006104F0 | 141 | CReputeWnd__on_event | Handles UI events for the reputation window. Event 6: button clicks (prev page 0x13c, next page 0x13d, search 0x141, close 0xc9). Event 0x16: tab selection by name. Event 0x27: child notification to refresh entries. Event 0x88: text input for search/filter. Falls through to UIWindow__handle_button_click for unhandled events. |
| 0x006109D0 | 519 | CReputeWnd__filter_entries_by_name | Filters reputation entries by name. If the search string matches the "all" keyword (msg 0xef5), shows all visible entries via CReputeDB__get_all_visible_entries and clears group mode. Otherwise, searches by name via CReputeDB__find_visible_entries_by_name, enables group mode flag, and sums up total points (64-bit accumulation at offsets 0x30/0x34). |
| 0x00610BE0 | 148 | CReputeWnd__update_page_navigation | Updates page navigation state. Calculates total page count from entry count and items-per-page (offset 0xc4). Clamps the requested page number between 1 and max pages. Stores current page at offset 0xc8. Enables/disables prev button (offset 0xbc) and next button (offset 0xc0) based on current page position. |
| 0x00610C80 | 76 | CReputeWnd__clear_current_page_selections | Clears the selection flag (offset 0x38) on all reputation entries visible on the current page. Iterates through items-per-page entries starting at (currentPage-1)*itemsPerPage index in the entries vector. |
| 0x00610D60 | 111 | CStringMapManager__ensure_initialized | Ensures the global CStringMapManager singleton (DAT_0138993c) is initialized. Allocates 0x20 bytes and calls CStringMapManager__ctor if the singleton pointer is null. |
| 0x00611B90 | 268 | CTextMask__ctor | Constructor for CTextMask. Creates a 0x136 x 0xf bitmap font texture via CRenderPipeline, sets background color to magenta (0xFFFF00FF). Draws "XXXXXXX XXXXXXX XXXXXXX XXXXXXX " text pattern in black with 5x5 offset grid for shadow effect, then white at center (1,1). Used as a text masking/censoring overlay texture. |
| 0x00611CA0 | 31 | CTextMask__dtor | Destructor for CTextMask. Sets vtable, releases the bitmap font resource at offset 8 via virtual destructor, nulls the pointer. |
| 0x00611CC0 | 56 | CTextMask__scalar_deleting_dtor | Scalar deleting destructor for CTextMask. Releases the bitmap resource, then conditionally frees the 0xC-byte object itself if bit 0 of the flags parameter is set. |
| 0x00611D00 | 378 | CTextMask__get_or_create_instance | Gets or creates the global CTextMask singleton stored at DAT_0138994c. If null, allocates 0xC bytes, constructs the text mask bitmap texture. Returns 1 if valid, otherwise destroys the failed instance and returns 0. |
| 0x00611EA0 | 34 | CTextMask__draw_text_at | Draws text onto the CTextMask bitmap at the specified position. Calls the render method on the internal bitmap resource with fixed dimensions 0x136 x 0xf and alpha -1. |
| 0x006175D0 | 25 | CItemList__reset_end_to_begin | Resets the item list end pointer back to begin, effectively clearing the list via helper_00614130. Operates on entries with 0x54-byte stride stored at this+0xC/0x10. |
| 0x006175F0 | 306 | CItemList__find_entry_by_name | Searches the item list entries (0x54-byte stride at this+0xC..this+0x10) for an entry whose name string at +0x20 matches the given C string parameter. Returns pointer to the matching entry, or 0 if not found. |
| 0x00617730 | 304 | CItemList__get_entry_icon_by_index | Returns icon data pointer (entry+0x38) for the given index. Selects icon variant based on item quantity tiers: 1-4 (base), 5-19 (+1), 20-49 (+2), 50-99 (+3), 100-9999 (+4), 10000+ (+5). Optionally filters by type matching this+0x6C. |
| 0x00617860 | 24 | CItemList__get_entry_count | Returns the number of entries in the item list: (this+0x10 - this+0xC) / 0x54. |
| 0x00617880 | 184 | CItemList__scale_rect_to_screen | Scales a rectangle (4 ints) from a source coordinate space to the screen resolution. Uses global screen dimensions from DAT_01389638+0x28/0x2C. param_2 is vertical offset, param_3/param_4 are source dimensions. |
| 0x00617940 | 10 | CItemList__get_current_item_ptr | Returns pointer to the current item data from the item array. Indexes this+0x74 pointer array using this+0x6C as current index. |
| 0x00617950 | 527 | CItemList__check_item_name_changed | Checks if an item's display name differs from its message table name. Gets message text via CMessageStringTable__get_message_text(0xBB) and compares with CItem__set_display_name_from_cstr result. Returns 1 if different (name was customized), 0 if same. |
| 0x00617B60 | 22 | CItemList__erase_range_helper | Thin wrapper around helper_00614130 to erase a range of entries from the item list container. |
| 0x00617B80 | 147 | CItemList__destroy_entries_and_trim | Iterates entries from param_2 to param_3 (0x54-byte stride), calling handler_00614d80 to destroy each entry, then trims the container via helper_00614130. |
| 0x00617C20 | 145 | CItemList__copy_entries_and_trim | Iterates entries from param_2 to param_3 (0x54-byte stride), calling handler_00614e70 to copy-construct each entry into param_4, then trims the source container. |
| 0x00617D20 | 56 | CItemList__deallocate_entries | Deallocates a buffer of item list entries (0x54 bytes each). Handles aligned allocation cleanup for large buffers (>0xFFF bytes). |
| 0x00637250 | 16 | CRankingBoard__set_mouse_state | Sets mouse state fields on the ranking board UI element. Stores param_2 into both +0x24 and +0x8 fields. |
| 0x00637260 | 196 | CRankingBoard__handle_mouse_message | Handles Windows mouse messages for CRankingBoard: WM_MOUSEMOVE (0x200) updates cursor pos, WM_LBUTTONDOWN/UP (0x201/0x202) sets capture, WM_RBUTTONDOWN/UP (0x204/0x205) sets right-click flag, WM_MOUSEWHEEL (0x20a) stores wheel delta. |
| 0x00637350 | 276 | CRankingBoard__vector_insert_grow | STL vector insert with grow. Allocates new buffer via aligned_vector_alloc, copies existing elements, inserts new element at position, replaces old buffer via _Change_array. |
| 0x00637490 | 103 | CRankingBoard__tree_destroy_nodes | Recursively destroys red-black tree nodes. Walks right subtree recursively, then iteratively deletes left-linked nodes. Each node is 0x20 bytes. |
| 0x00637500 | 75 | CRankingBoard__tree_lower_bound | STL map/set lower_bound. Traverses red-black tree comparing key at node+0x10 against search key, returns iterator to first element not less than key. |
| 0x00637550 | 199 | CRankingBoard__ctor | CRankingBoard constructor. Calls CUIEventBase__init, sets vtable, initializes ranking data fields (+0x88-0x98), zeroes 0x58 bytes of ranking entries at +0x30, reserves vector to 16 elements. |
| 0x00637620 | 67 | CRankingBoard__tree_delete_node | Deletes a single red-black tree node (0x20 bytes) at field+4 if non-null. |
| 0x00637670 | 111 | CRankingBoard__tree_clear | Clears all nodes from a red-black tree. Iterates from the head node's right child, recursively destroying subtrees, then deletes the head node itself. |
| 0x006376F0 | 78 | CRankingBoard__tree_node_dtor_a | Deletes a tree node at field+4 if non-null. Used as part of tree cleanup for variant A. |
| 0x00637740 | 78 | CRankingBoard__tree_node_dtor_b | Deletes a tree node at field+4 if non-null. Used as part of tree cleanup for variant B. |
| 0x00637790 | 65 | CRankingBoard__tree_dtor_wrapper | Wrapper that calls tree_clear to destroy the ranking category map's red-black tree. |
| 0x006377E0 | 103 | CRankingBoard__dtor | CRankingBoard destructor. Sets vtable to CRankingBoard, resets vector end to start (clearing entries), frees vector memory, then resets vtable to CUIEventBase. |
| 0x00637850 | 127 | CRankingBoard__scalar_deleting_dtor | CRankingBoard scalar deleting destructor. Calls destructor (resets vtable, clears vector, frees memory), then optionally deletes the 0xA0-byte object if flag bit 0 is set. |
| 0x006378D0 | 901 | CRankingBoard__init_ranking_categories | Initializes ranking categories (Blacksmith, Alchemist, Taekwon, Killer) with color codes into a red-black tree map. Called once lazily from display_rankings. |
| 0x00637C60 | 1009 | CRankingBoard__check_and_display_rankings | Validates ranking data timing (10000 tick intervals), checks entries against stored list with string matching, dispatches chat error message 0xD99 on mismatch, calls process_validation on success |
| 0x00638060 | 56 | CRankingBoard__push_back_entry_id | Appends a ranking entry ID to the vector at this+0x94. If vector is full, calls grow/realloc |
| 0x006380A0 | 102 | CRankingBoard__set_ranking_data | Copies 0x58 bytes of ranking data from source buffer into this+0x30. Zeroes buffer and sets errno if source is null |
| 0x00638110 | 1464 | CRankingBoard__display_rankings | Displays ranking board in chat: initializes ranking categories on first call, formats each of 10 entries as "rank: name - points", shows MY_POINT at the end. Uses CUIWindowMgr to dispatch formatted chat messages |
| 0x00638940 | 197 | CRankingBoard__vector_reserve | Reserves capacity for the ranking entry vector. Allocates new aligned buffer, copies existing data, frees old buffer, updates vector pointers (begin, end, capacity). |
| 0x00638A30 | 92 | CRankingBoard__aligned_vector_alloc | Allocates aligned memory for a vector of uint-sized elements. For allocations >= 0x1000 bytes, adds 0x23 padding and aligns to 32-byte boundary, storing original pointer at offset -4 for deallocation. |
| 0x00738E10 | 96 | UIInventoryWnd__constructor | Constructor for UIInventoryWnd. Calls base window constructor (type 0), sets vtable to UIInventoryWnd vtable, initializes field 0x2D to 0. |
| 0x00738E70 | 71 | UIInventoryWnd__destructor_0x738e70 | Destructor for UIInventoryWnd. Sets vtable, calls base class destructor for cleanup. |
| 0x00738EC0 | 99 | UIInventoryWnd__scalar_deleting_destructor | Scalar deleting destructor for UIInventoryWnd. Sets vtable, calls base class cleanup, conditionally frees 200-byte allocation if bit 0 of param is set. |
| 0x00738F30 | 642 | UIInventoryWnd__InitControls | Initializes 3 tab controls for inventory window using message IDs 0x169, 0x167, 0x16a. Creates tab button objects (0x10C bytes each) stored at offsets 0xC0, 0xBC, 0xB8. Registers hotkey "Alt_I" at offset 0xC4. |
| 0x00739220 | 205 | UIInventoryWnd__OnMessage | Message handler for inventory window. Handles msg 6 (command 0xC9 opens shop, 0xD5 sets global vars for tabs), msg 0x22 (selection/item pick). Falls through to base class handler for other messages. |
| 0x007392F0 | 56 | UIInventoryWnd__SyncBoundsToParent | Copies position (x, y) and size (width, height) from this object (offsets 0x14-0x20) to the linked object at offset 0xB4. |
| 0x00739330 | 94 | UIItemListWnd__constructor | Constructor for UIItemListWnd. Calls base class constructor FUN_0084eab0, sets vtable to PTR_FUN_0111a230, initializes member 0x48 to 0. |
| 0x00739390 | 71 | UIItemListWnd__destructor | Destructor for UIItemListWnd. Sets vtable to PTR_FUN_0111a230, calls base class destructor FUN_008511b0. |
| 0x007393E0 | 99 | UIItemListWnd__scalar_deleting_destructor | Scalar deleting destructor for UIItemListWnd. Sets vtable, calls base destructor, conditionally frees 0x124 bytes if param_2 bit 0 is set. |
| 0x00739450 | 393 | UIItemListWnd__OnSelectItem | Handles item selection in the item list. Gets the display string based on tab state (offsets 0xBC/0xD4/0xEC/0x104 depending on mode 0xAC and tab index 0x30). Looks up item resource and loads/displays it. Notifies parent via vtable+0x98. |
| 0x007395E0 | 48 | UIItemListWnd__OnMouseDown | Mouse down handler. Gets object type 0x22 via FUN_00aa5f70, calls vtable+0x64 method with absolute position (adds widget origin offsets 0x1C, 0x20 to relative coords). |
| 0x00739610 | 48 | UIItemListWnd__OnMouseUp | Mouse up handler. Gets object type 0x22, calls vtable+0x7C with absolute position (widget origin + relative coords). |
| 0x00739640 | 51 | UIItemListWnd__OnMouseMove | Mouse move handler. Gets object type 0x22, calls vtable+0x84 with absolute position (widget origin + relative coords). |
| 0x007398E0 | 128 | CItemList__ClearLinkedList | Clears a linked list of item nodes. Walks the list, destroying 2 STL strings per node, then frees each 0x58-byte node. Resets the count at param_2[1] to 0. |
| 0x00739AB0 | 164 | CItemNode__CopyConstructor | Copy constructor for CItemNode (0x50+ bytes). Copies numeric fields, then copy-constructs 2 STL strings (at offsets +0xC and +0x24), and copies trailing fields including shorts at offsets 0x48 and 0x4A, plus DWORD at 0x4C. |
| 0x00739B60 | 138 | CItemNode__DefaultConstructor | Default constructor for CItemNode. Zeroes numeric fields and initializes 2 embedded STL strings at offsets +0xC and +0x24 to empty (capacity=0xF, size=0). Sets member 0x4C to 0. |
| 0x00739C80 | 324 | CItemList__constructor | Constructor for CItemList. Calls base constructor FUN_008a3700, sets vtable PTR_FUN_0111a30c. Allocates a 0x58-byte sentinel node for the doubly-linked list (self-referencing head). Initializes STL vector members, sort params (mode=0, column=1, direction=5), and various state flags. |
| 0x00739DD0 | 67 | CItemList__FreeSentinelNode | Frees the sentinel node (0x58 bytes) of the linked list at offset +4, if it exists. |
| 0x00739E20 | 130 | CItemList__DestroyAndFreeSentinel | Destroys 2 STL strings in the sentinel node at offset +4, then frees the 0x58-byte sentinel node. |
| 0x00739F10 | 73 | CItemList__ClearAndFreeSentinel | Clears all nodes in the linked list via CItemList__ClearLinkedList, then frees the sentinel node (0x58 bytes). |
| 0x0073A080 | 142 | CItemList__destructor | Destructor for CItemList. Sets vtable PTR_FUN_0111a30c, calls FUN_00738400 cleanup, destroys vector elements, clears linked list, frees sentinel node, then calls base destructor FUN_008a4e90. |
| 0x0073A110 | 166 | CItemList__scalar_deleting_destructor | Scalar deleting destructor for CItemList (0x290 bytes). Calls full destructor chain then conditionally frees memory. |
| 0x0073A1C0 | 367 | CItemList__OnRightClick | Right-click handler for item list. Checks if click is within bounds; if outside, determines item index from click position using grid dimensions (DAT_014a68b8/DAT_014a68bc). Creates a context menu/tooltip window (0x138 bytes, FUN_007426f0) positioned at the click location. |
| 0x0073A330 | 177 | CItemList__CreateItemTooltip | Creates and displays an item tooltip window. Allocates 0x138-byte window (FUN_007426f0), positions it, registers it with the window manager, sets item index at offset 0x104, and sends message 0x17 with item data. |
| 0x0073A3F0 | 335 | CItemList__GetItemAtPosition | Gets item data at a screen position. Calculates row index from Y coordinate using row height (offset 0x124), adds scroll offset (0x114). Walks linked list at offset 0xFC to find the item at that index, copies it via CItemNode__CopyConstructor. Returns default-constructed node if not found. Updates selected index at offset 0x120. |
| 0x0073A540 | 231 | CItemList__GetItemByIndex | Gets item node at a given list index. Walks the linked list at offset 0xFC, counting until reaching param_3. Returns a copy via CItemNode__CopyConstructor, or a default-constructed empty CItemNode if not found. |
| 0x0073A630 | 5009 | CItemList__InitControls | Initializes all child controls for CItemList. Creates: scrollbar widget (0xB4 bytes), 40 item icon widgets (0xB0 bytes each, stored at offset 0x128), 40 item list sub-windows (0x124 bytes each, stored at offset 0x1C8), close button with Alt_Z hotkey, text label widget, 2 tab buttons for sort modes, column header buttons with textures. Sets up texture paths for button states (normal/hover/pressed). Configures initial sort mode and display text from message string table entries (0x62-0x67, 0x163, etc.). |
| 0x0073B9D0 | 4950 | CItemList__OnPaint | Paint/render handler for CItemList (4950 bytes). Draws background, borders, header/footer sprites. For each visible item in the linked list: draws party member status icons, item names (with level text), equipment location text, selection highlight, online/offline indicators, and party crown for leader. Handles two display modes: party member list mode (0x28C==1) with equipment details, and friend list mode with online/offline status and name search highlighting. Uses grid layout based on column count (0x118) and row height (0x124). |
| 0x0073CD60 | 797 | CItemList__OnLeftClick | Left-click handler for item list. Gets item at click position, updates selection, notifies parent via vtable+0x98. If item found and conditions met (not in trade mode, etc.), creates item detail/tooltip window and searches for matching item in display list for highlighting. |
| 0x0073D080 | 85 | CItemList__OnMouseDown | Mouse down handler for CItemList. Calls base handler, then triggers highlight flash on the selected actor entity (sets alpha to 0xFF at offset +0x38 and records timestamp at +0x3C). In party mode (0x28C != 0), uses DAT_0145798c actor; otherwise uses DAT_014579bc. Closes any active popup menu. |
| 0x0073D0E0 | 774 | CItemList__OnMouseMove | Mouse move handler for CItemList. When hovering (offset 0x28C != 0), shows item tooltip with name and level info. Gets item at position, formats tooltip string with item name or "name (description)" format. Calculates tooltip position from grid layout (columns * row height + offsets). Uses lua_util_sprintf for formatting. |
| 0x0073D3F0 | 112 | CItemList__OnMouseUp | Mouse up handler for CItemList. Calls base handler. In party/friend mode (0x28C != 0), repositions the selected actor widget by calling vtable+0x10 with coordinates calculated from parent offset + list width + 2. |
| 0x0073D460 | 193 | CItemList__OnDoubleClick | Double-click handler for CItemList. Skipped if DAT_017381a8 flag is set (trade mode). Gets item at click position, updates selection if changed (vtable+0x98), then sends message 0x31 via vtable+0x94 if an item is selected (index != -1). |
| 0x0073D530 | 66 | CItemList__OnMouseWheel | Mouse wheel handler for CItemList. Only active if scrollbar is enabled (offset 0x44 != 0). Scrolls by up to 3 lines (clamped from offset 0x47-1). Sends scroll message (msg 7) via vtable+0x94 with positive or negative delta depending on wheel direction. |
| 0x0073D580 | 182 | CItemList__UpdateScrollbar | Updates the scrollbar state for the item list. Calculates total pages from item count (0x100) / items per row (0x118), determines if scrollbar is needed (0x110), clamps scroll position (0x114) to valid range, updates scrollbar widget via FUN_0089c220/FUN_0089c210, then refreshes display via FUN_0073d800. |
| 0x0073D640 | 436 | CItemList__LayoutColumnHeaders | Layouts the column header buttons for the item list. Positions up to 11 column headers (offset 0xC8 array) with 0x1A pixel spacing. In special mode (0x28C==1), hides filtered columns and repositions sort/filter buttons (0xE4-0xF0). Handles trade mode (DAT_017381a8) visibility for weight button (0xE0/0xDC). |
| 0x0073D800 | 371 | CItemList__UpdateItemPositions | Updates the position of item display widgets based on scroll state. Walks the linked list of items, positioning visible ones in a grid (row height from 0x124, columns from 0x118). Items before scroll offset are hidden (-100,-100). Uses RTDynamicCast to check item type. Sets color to gray (0x444444) for unavailable items. |
| 0x0073D980 | 181 | UIInventoryWnd__OnMessage_Main | Main message handler for the inventory window. Handles tab switching (msg 0xD7), resize (msg 0xE), item refresh (msg 0x17), context menu (msg 0x30/0x31), scroll (msg 7/9/10), selection tracking (msg 0x22), and numerous item operations (use, drop, equip, sell, store, guild storage). Builds context menu entries via CItemEntry__ConstructFromString. Manages equipment/use item tabs and party item list. |
| 0x0073FD90 | 86 | CItemList__SyncBoundsAndState | Copies position (x,y), size (w,h), plus mode flags (0x28C, 0x268) from this object to the linked object at offset 0xB4. |
| 0x007461C0 | 246 | UISkillWnd__ctor | Constructor for UISkillWnd. Calls CTokenizer__ctor base constructor, sets UISkillWnd vtable, initializes all skill list vectors and state fields to zero. Sets two float fields (0x134, 0x138) to 1.0f (scale factors). |
| 0x007467D0 | 245 | UISkillWnd__dtor | Destructor for UISkillWnd. Sets UISkillWnd vtable, destroys 0x18-byte skill elements (vector at +0x110), destroys string elements (vector at +0x11C), clears sort index vector (+0x128), destroys format data and remaining vectors, then sets CTokenizer base vtable. |
| 0x00746CF0 | 329 | UISkillWnd__resize_lists | Resizes the UISkillWnd's internal lists to match the given count. Calls a virtual method first, then resizes the 0xC-element vector (destroying excess entries or growing), and resizes the float vector. Uses different growth functions depending on capacity. |
| 0x00746ED0 | 175 | UISkillWnd__set_max_entries | Sets the maximum entry count for UISkillWnd (capped at 1000). Resizes the 0x24-element detail vector, zeroing new entries with memset. Resets scroll position and selection state. |
| 0x00746F80 | 208 | UISkillWnd__get_skill_entry | Returns pointer to skill entry at index param_2 from the 0xC-element vector at offset +0x110. If out of bounds, returns a static default entry (DAT_0138d700) initialized via lazy singleton pattern. |
| 0x00747050 | 57 | UISkillWnd__get_detail_entry | Returns pointer to detail entry at index param_2 from the 0x24-element vector at offset +0x20. If out of bounds, returns a static default entry (DAT_0132a1a8). |
| 0x00747090 | 44 | UISkillWnd__get_float_value | Returns the float value at index param_2 from the float vector at offset +0x12C. If out of bounds, returns a default float constant (DAT_010dc390). |
| 0x007470C0 | 23 | UISkillWnd__get_skill_type | Returns the skill type field (offset +4) from the skill entry at index param_2 in the 0x18-element vector at +0x110. |
| 0x007470E0 | 72 | UISkillWnd__get_skill_name_str | Returns pointer to the skill name string from the 0x18-element vector at offset +0x120. Handles SSO - returns direct pointer or heap pointer based on capacity field. Returns empty string DAT_010d4ee8 if out of bounds. |
| 0x00747130 | 49 | UISkillWnd__get_first_prerequisite | Returns the first prerequisite skill ID from the prerequisite vector (offset +0xC in skill entry). Returns -1 if the prerequisite vector is empty. |
| 0x00747170 | 254 | UISkillWnd__get_skill_tree_node | Returns a skill tree node (0x44 bytes) at the given index from the skill entry's tree node vector. Falls back to the first element if out of bounds but vector is non-empty, or returns a static default CSkillTreeNode if the vector is empty (lazy-initialized singleton). |
| 0x00747370 | 47 | UISkillWnd__get_tree_node_count | Returns the number of tree nodes for a skill entry. Gets the 0x44-element vector size. Returns minimum 1 (even if empty). |
| 0x007473A0 | 23 | UISkillWnd__get_skill_level | Returns the skill level field (offset +8) from the skill entry at index param_2 in the 0x18-element vector at +0x110. |
| 0x007473C0 | 31 | UISkillWnd__get_sorted_skill_name | Returns the sorted skill name string pointer. Uses the sort index vector at +0x128 to look up into the name string vector at +0x11C. |
| 0x007473E0 | 22 | UISkillWnd__get_skill_id | Returns the skill ID (offset +0) from the skill entry at index param_2 in the 0x18-element vector at +0x110. |
| 0x00747400 | 68 | UISkillWnd__has_prerequisite | Checks if a skill (param_2) has a specific prerequisite (param_3). Searches the prerequisite int vector (at offset +0xC in the 0x18-byte skill entry) linearly. Returns 1 if found, 0 otherwise. |
| 0x00747450 | 72 | UISkillWnd__is_skill_valid | Returns 1 if the skill at index param_2 is valid (index in bounds, non-negative, and skill ID != -1), 0 otherwise. |
| 0x007474A0 | 158 | UISkillWnd__adjust_act_position | Adjusts an ACT sprite position based on frame dimensions and mirror flags. If param_2 is null, logs "Error While Load Act". Computes position by subtracting half the frame dimensions (doubled if mirrored) and dividing by scale factors at offsets +0x14 and +0x18. |
| 0x007ACF50 | 1324 | CTipBox__load_and_layout | Loads and lays out content for the tip box UI element. Calculates grid position from index (3 columns), searches for sprite pattern in the content string. Loads sprite or text resource depending on search result, calculates position/size with scaling and offset clamping. Sets rendering state (type 0 for text, 1 for sprite). |
| 0x007AD480 | 1038 | CTipBox__load_script_data | Loads and parses tip box script data from an encrypted Lua script file. Registers script functions: AddTip, AddImgcoord, AddPageEx, AddPage, AddIsTag. Uses XOR-encrypted script file paths (two encrypted paths tried in sequence). Shows error via MessageBox if script execution fails. Returns 1 on success, 0 on failure. |
| 0x007AD890 | 34 | CTipBox__is_on_last_page | Checks if the tip box is currently showing the last page. Compares current page index (offset 0xB4) with total pages - 1 (calculated from string vector size at 0x5C-0x60, element size 0x18). |
| 0x007AD8C0 | 10 | CTipBox__has_images | Returns true if the tip box has image coordinates (vector at offset 0x70 is not empty, i.e., begin != end at 0x70/0x74). |
| 0x007AD8D0 | 10 | CTipBox__has_tips | Returns true if the tip box has tip entries (vector at offset 0x18 is not empty, i.e., begin != end at 0x18/0x1C). |
| 0x007AE050 | 311 | CTipBox__select_entry | Selects a tip box entry by key. Resets page index to 0, looks up entry in tree map, copies all data (name strings, boolean flag, page strings, dimensions, image coordinates vector) to the display fields. Finally calls load_and_layout to prepare the visual layout. |
| 0x007B1F40 | 104 | UIActSprWidget__ctor | Constructor for UIActSprWidget. Calls UISpriteWidget base class ctor, sets vtable to PTR_FUN_01122030, initializes width and height to 11. |
| 0x007B2050 | 118 | UIActSprWidget2__Constructor | Constructor for UIActSprWidget2. Calls UIColoredScrollListBase base ctor, sets vtable to PTR_FUN_0112210c, initializes several flag/state fields to 0. |
| 0x007B20D0 | 246 | UIActSprWidget2__ConstructorFull | Full constructor for UIActSprWidget2. Calls base ctor, sets vtable to PTR_FUN_011221f4, initializes index fields to -1, allocates a 0x34-byte linked list sentinel for act data, sets default dimensions (13x3) and type (12). |
| 0x007B21D0 | 211 | UIActSprWidget3__Constructor | Constructor for UIActSprWidget3. Calls base ctor, sets vtable to PTR_FUN_011223a4, initializes an SSO string and zeroes multiple state fields. |
| 0x007B22B0 | 353 | UIActSprWidget5__Constructor | Constructor for UIActSprWidget5 (large variant). Calls base ctor, sets vtable to PTR_FUN_01122554, initializes 27 fields to 0 and index field to -1. |
| 0x007B2420 | 195 | UIActSprWidget4__Constructor | Constructor for UIActSprWidget4. Calls extended base ctor, sets vtable to PTR_FUN_011227dc, allocates a 0x94-byte linked list sentinel, initializes state fields with one set to -1. |
| 0x007B2C40 | 71 | UIActSprWidget__Destructor | Destructor for UIActSprWidget. Sets vtable to PTR_FUN_01122030, then calls base class destructor. |
| 0x007B2D00 | 71 | UIActSprWidget2__Destructor | Destructor for UIActSprWidget2. Sets vtable to PTR_FUN_0112210c, then calls base class destructor. |
| 0x007B2D50 | 126 | UIActSprWidget2__DestructorFull | Full destructor for UIActSprWidget2. Sets vtable to PTR_FUN_011221f4, cleans up and frees the 0x34-byte act data at offset +0x2c, then calls base class destructor. |
| 0x007B2DD0 | 92 | UIActSprWidget3__DestructorFull | Full destructor for UIActSprWidget3 variant. Sets vtable to PTR_FUN_011223a4, destroys a string member, then calls base class destructor. |
| 0x007B2E30 | 71 | UIActSprWidget5__dtor | Destructor for UIActSprWidget5. Sets vtable to PTR_01122554, then calls CEffect__dtor base class destructor. No additional member cleanup needed (all fields are plain values). |
| 0x007B2E80 | 129 | UIActSprWidget4__Destructor | Destructor for UIActSprWidget4. Sets vtable to PTR_FUN_011227dc, cleans up and frees a 0x94-byte packet parser struct at offset +0x34, then calls base class destructor. |
| 0x007B3340 | 99 | UIActSprWidget__scalar_deleting_dtor | Scalar deleting destructor for UIActSprWidget. Sets vtable to PTR_01122030, calls UIBaseWidgetA__dtor base destructor, then optionally frees the 0xb4-byte object. |
| 0x007B3440 | 99 | UIActSprWidget2__scalar_deleting_dtor | Scalar deleting destructor for UIActSprWidget2. Sets vtable to PTR_0112210c, calls UILayerFmtWidget__dtor base destructor, then optionally frees the 0xfc-byte object. |
| 0x007B34B0 | 150 | UIActSprWidget2Full__scalar_deleting_dtor | Scalar deleting destructor for UIActSprWidget2 (full variant). Sets vtable to PTR_011221f4, destroys 0x34-byte act tree at offset +0x2c, calls CEffect__dtor base destructor, then optionally frees the 0xcc-byte object. |
| 0x007B3550 | 116 | UIActSprWidget3__scalar_deleting_dtor | Scalar deleting destructor for UIActSprWidget3. Sets vtable to PTR_011223a4, destroys one SSO string member, calls CEffect__dtor base destructor, then optionally frees the 0xb8-byte object. |
| 0x007B35D0 | 99 | UIActSprWidget5__scalar_deleting_dtor | Scalar deleting destructor for UIActSprWidget5. Sets vtable to PTR_01122554, calls CEffect__dtor base destructor, then optionally frees the 0xe8-byte object. |
| 0x007B3640 | 153 | UIActSprWidget4__scalar_deleting_dtor | Scalar deleting destructor for UIActSprWidget4. Sets vtable to PTR_011227dc, destroys 0x94-byte red-black tree at offset +0x34, calls UIWindowBase__dtor base destructor, then optionally frees the 0xd8-byte object. |
| 0x007B4470 | 3071 | UIAchievementWnd__build_ui_controls | Builds the achievement category tree view. Creates a CUITreeView with scrollbar and sprite widget, then populates it with achievement categories from message table IDs 0xa60-0xa76 (organized into groups 0-6 with sub-items). Each entry gets text from CMessageStringTable. |
| 0x007B5070 | 78 | UIAchievementWnd__add_tree_entry_if_has_items | Conditionally adds a tree entry to the achievement window's tree view. Checks if the category (param_3, param_4) has any items via CAchievementMgr__count_items_in_tabs. If items exist (or param_5 forces it), sets the reward text using the message string for param_2. |
| 0x007B50C0 | 543 | UIAchievementWnd__create_row_widgets | Creates colored sprite widgets for achievement list rows. First widget (index 0) gets a wider layout, subsequent widgets alternate positions in a 2-column grid. Also creates 2 text edit boxes at the bottom for displaying category names. |
| 0x007B52E0 | 522 | UIAchievementWnd__create_header_widgets | Creates header widgets for the achievement window: a colored label showing the title (msg 0xc21), a score display widget, and 2 radio/tab button controls for switching between achievement view modes. |
| 0x007B54F0 | 1643 | UIAchievementWnd__create_button_and_lists | Creates the button and list widgets for the achievement window. Creates: receive reward button (with out/over/press/disable textures from 'achievement_re_btn_receive'), main scroll list, 10 colored achievement category widgets, and 3 progress edit boxes. All added as children. |
| 0x007B5B60 | 1165 | UIAchievementWnd__create_main_layout | Creates the main layout structure for the achievement window. Builds: close button, title label, category tree view (via build_ui_controls), detail scroll list (5 rows), tab control panel, and act list widget. Calls SetSelectedReward to initialize the reward display. |
| 0x007B5FF0 | 1525 | UIAchievementWnd__render_detail_entries | Renders detail entries in the achievement detail panel. For each visible entry, draws: background sprite (complete/incomplete), item icon from resource path, completion checkmark if applicable, achievement name text, count text (right-aligned), description text, completion stamp sprite, and reward button sprite. Also formats and draws date text for completed achievements. |
| 0x007B67B0 | 1527 | UIAchievementWnd__render_content | Renders the main content area of the achievement window. Draws: background sprite, title text (msg 0xa77), overall progress counter (d/d format), 6 category progress counters in a 2-column layout (msgs 0xa72-0xa76), section label (msg 0xa5b), and iterates through reward entries drawing their icons, names, buff IDs, descriptions, dates, and reward button sprites. |
| 0x007B7010 | 1036 | UIAchievementWnd__render_detail_info | Renders the detail info panel header. Two modes: if title matches default (msg 0xa77), shows minimal view with progress and global stats. Otherwise shows full detail with background, close button, category name, progress (d/d), sub-progress (d/d), and global stat counters. Toggles visibility of 2 sub-widgets and score widget accordingly. |
| 0x007B7420 | 553 | UIAchievementWnd__render_reward_panel | Renders the reward panel for the selected achievement. Draws background, completion stamp if applicable, reward name text, and reward condition sprites (type 0 or 1 layout). For rewards with title/buff/item sub-rewards, positions up to 3 progress edit boxes dynamically centered in the panel. |
| 0x007B7CA0 | 238 | UIAchievementWnd__on_select_achievement | Handles achievement selection in the achievement window. Finds the achievement's category/subcategory position, calls SetSelectedReward, then scrolls the scroll list to show the selected item and notifies parent via callback 0x87. |
| 0x007B8170 | 50 | UIAchievementWnd__on_tab_command | Handles tab command for the achievement window. When command 0x62 (tab selection) fires with a valid param_4 (achievement ID != -1), calls on_select_achievement to update the display. |
| 0x007B8230 | 134 | UIAchievementWnd__on_radio_button_click | Handles radio button click in the achievement window. When a radio button is clicked (command 6, param 0xd7), iterates through 2 radio buttons, activating the clicked one and deactivating the other. Updates the sort mode index and notifies parent via callback 0x16 with -1/-1 to reset selection. |
| 0x007B82C0 | 123 | UIAchievementWnd__on_button_or_list_command | Handles button click and list selection commands. Command 6 with param 0x1da: sends achievement reward claim packet (0xa25) with the selected reward ID. Command 0x91 with valid param: triggers achievement selection via on_select_achievement. |
| 0x007B8340 | 116 | UIAchievementWnd__on_message | Main message handler for the achievement window. Handles: command 6/0xc9 (close window), command 0x16 (category selection - calls SetSelectedReward), command 0x3c (timer refresh - updates reward display, category items, progress bars), command 0x87 (item selection - looks up achievement data, creates tree entry if needed, updates reward display). Falls through to UIWindow__handle_button_click for unhandled messages. |
| 0x007B8B80 | 60 | UIAchievementWnd__set_exp_progress | Sets the experience progress bar values. Updates both the internal fields (+0x9c current, +0xa0 max) and the progress bar widget's display values (+0x7c, +0x80), then triggers a repaint of the progress bar. |
| 0x007B8BC0 | 60 | UIAchievementWnd__set_score_progress | Sets the score/achievement progress bar values. Updates both the internal fields (+0x94 current, +0x98 max) and the score progress bar widget's display values (+0x7c, +0x80), then triggers a repaint. |
| 0x007B8C00 | 30 | UIAchievementWnd__set_selected_reward | Sets the selected reward fields (+0xe0 reward ID, +0xe4 reward data pointer) and calls UpdateRewardDisplay to refresh the reward panel UI. |
| 0x007B8DC0 | 47 | UIAchievementWnd__set_sort_mode | Sets the sort mode for the achievement window. Stores the mode value at +0x28, then iterates 2 edit box widgets calling their virtual method 0x6c with (-1, -1) to clear/reset their content. |
| 0x007B8DF0 | 417 | UIAchievementWnd__SetSelectedReward | Sets the selected reward for an achievement. Shows/hides UI elements based on param_2 (selected state). Updates reward item display, sets text label, and triggers timer refresh (0x3c = 60 ticks). |
| 0x007B8FA0 | 129 | UIAchievementWnd__SetRewardText | Sets the reward description text for the achievement window. Handles page index (param_4). Calls string formatting helpers and refreshes the display. |
| 0x007B9030 | 1027 | UIAchievementWnd__UpdateCategoryItems | Updates category items in the achievement window. Processes two categories (left/right), creates packet entries, adds items to the list if the category has entries, and assigns reward values from packet parser results. |
| 0x007B9440 | 2427 | UIAchievementWnd__UpdateRewardDisplay | Updates the full reward display panel. Iterates through 10 achievement slots, updates visibility and text. Handles 3 reward types: title (reward_title.bmp), buff (reward_buff.bmp with GetStateIconDescript), and item rewards. Colors entries based on completion status (green=0xC9977D completed, gray=0x995736 not done). |
| 0x007B9DC0 | 22 | UIAchievementWnd__AddCategoryItem | Thin wrapper that forwards to FUN_007b0a10 to add a category item entry. |
| 0x007BA090 | 453 | UIAchievementWnd__FindEntryByParam | Searches through achievement entries (each 0x2C bytes) from param_2 to param_3 to find one matching param_4. Copies string data from matching entries. Returns pointer to matched entry via param_1. |
| 0x007BFC70 | 43 | CPartySearchWnd__update_toggle_state | Updates party search listing toggle state. Applies drag offset then refreshes toggle display based on flag at +0x150. |
| 0x007BFCA0 | 22 | CPartySearchWnd__conditional_update | Conditionally applies drag offset update only if flag at +0xAC is zero (not locked/hidden). |
| 0x007BFCC0 | 456 | CPartySearchWnd__show_page_tooltip | Shows tooltip for page tab buttons. Maps param ranges (0x3D-0x4B, 0x4F-0x5D, 0x61-0x6F, 0x73-0x81) to message IDs (0xD5C, 0xDA3, 0xD74, 0xDB4) and displays tooltip at accumulated position. |
| 0x007BFE90 | 443 | CPartySearchWnd__send_whisper_to_leader | Sends whisper/chat message to party leader. If +0xAC is 0 and player IDs differ from globals, copies name, checks guild membership, dispatches chat message type 0xE with name and guild info. |
| 0x007C0050 | 156 | CPartySearchWnd__toggle_child_visibility | Toggles visibility of child controls at +0xF8 (index 0) and +0xFC (index 1) based on param_2 index and param_3 show/hide flag. |
| 0x007C00F0 | 338 | CPartySearchWnd__add_entry_to_list | Adds a party search entry to internal linked list. Checks for duplicates by param_2 ID. If not found, formats display text via snprintf, creates window type 0x146, and inserts 0x2C-byte node into list. |
| 0x007C0250 | 333 | CPartySearchWnd__build_entry_from_controls | Builds a CPartySearchEntry from UI controls: reads 4 job toggle states from child controls at +0xC4/C8/CC/D0 offset 0x150, parses level values via atoi, copies name and description strings. |
| 0x007C03A0 | 122 | CPartySearchWnd__reset_slot_defaults | Resets party search slot to default state: clears visibility flag +0xAD, empties strings, sets size fields to 1, clears index, hides control. |
| 0x007C0420 | 141 | CPartySearchWnd__process_message | Main message handler for party search list window. Processes message types: 0x6 (button actions: 0xC9 close, 0xDA/0xF6 page nav, 0x16B reset, 0x16D submit, 0x17B view entry, 0x19A register, 0x19F close, 0x234/0x235 edit), 0x22 (position update), 0x27 (selection change), 0x3C (refresh list), 0xA5 (page state update). |
| 0x007C1410 | 849 | CPartySearchCreateWnd__process_message | Message handler for party search entry creation window. Handles 0x6/0xC9 (close), 0x234/0x235 (submit with validation: checks DAT_01737a9c mode, validates name completeness, verifies min/max levels). On submit, collects 4 job toggles, level range, class ID, name and description into CPartySearchEntry and calls register. |
| 0x007C1770 | 1093 | CPartySearchDetailWnd__process_message | Message handler for party search detail/queue window. Handles 0x6/0xC9 (close with callback), 0x21D (send recruit request via network packet 0x108), 0x21E (process response: adds to queue list, sends dequeue). On 0x38: receives entry data including item equip sprite, name, count, and populates the detail scroll list with formatted text. |
| 0x007C1BC0 | 130 | CPartySearchWnd__init_single_slot | Initializes a single party search slot by populating it from data struct, then updates navigation buttons. Wrapper that calls populate_slot_from_data + update_navigation_buttons. |
| 0x007C1C50 | 182 | CPartySearchWnd__set_slot_toggle_display | Sets party search slot toggle display mode. Stores param as mode at +0x150, then swaps button textures between two string sets at +0x120/+0x138 depending on the mode flag. |
| 0x007C1D10 | 261 | CPartySearchWnd__set_slot_data | Sets party search slot data: stores 4 job preference bytes at +0xB8-0xBB, level range at +0x2F/+0x30, class ID at +0x31, name string at +0x32, guild string at +0x3A, and additional IDs at +0x38/+0x39. |
| 0x007C1E20 | 393 | CPartySearchWnd__populate_slot_from_data | Populates party search slot display from a 0x4C-byte data struct. Copies party name to +0x120, formats level as "%d/%d" to +0x138, sets 4 job preference bytes at +0x180-0x183, copies guild info to +0x1B0, stores player/guild IDs at +0x1A8/+0x1AC. |
| 0x007C1FB0 | 360 | CPartySearchWnd__update_slot_controls | Updates party search slot UI controls: sets 4 job toggle buttons, formats min/max level numbers to text controls via snprintf, selects class type in dropdown, and assigns name/description text. |
| 0x007C2120 | 530 | CPartySearchWnd__update_navigation_buttons | Updates prev/next page navigation button visibility and state. In DAT_01737a9c==0 mode (no data), hides all and clears text. Otherwise, shows/hides prev/next buttons based on param_2 page flag, managing 3 navigation controls at +0xEC, +0xF0, +0xF4. |
| 0x007C2340 | 117 | CPartySearchWnd__set_name_text | Sets the party/character name text string at field +0x120 from the provided string parameter. |
| 0x007C23C0 | 56 | CPartySearchWnd__sync_rect_to_parent_0x120 | Copies position rect (x,y,w,h) from this control's fields (+0x14,+0x18,+0x1C,+0x20) to the object referenced at +0x120. |
| 0x007C2400 | 56 | CPartySearchWnd__sync_rect_to_parent_0x100 | Copies position rect (x,y,w,h) from this control's fields (+0x14,+0x18,+0x1C,+0x20) to the object referenced at +0x100. |
| 0x007C2440 | 56 | CPartySearchWnd__sync_rect_to_parent_0xE4 | Copies position rect (x,y,w,h) from this control's fields (+0x14,+0x18,+0x1C,+0x20) to the object referenced at +0xE4. |
| 0x007C2480 | 173 | CPartySearchWnd__clear_slot_data_vector | Destroys all entries in party search slot data vector (0x4C-byte stride elements). Calls destructor on each entry, frees the buffer, resets start/end/capacity pointers to null. |
| 0x007C27B0 | 135 | CTooltipWnd__ctor | Constructor for CTooltipWnd. Calls CEffect__ctor base, sets vtable to PTR_CTooltipWnd__scalar_dtor_011240c4, initializes tree fields +0x7C/+0x80 to 0, allocates 0x1C-byte sentinel node for the tooltip tree with self-referencing pointers. |
| 0x007C2C00 | 68 | CTooltipWnd__clear_all_nodes | Clears all tooltip tree nodes by calling TooltipTree__destroy_all_0x30_nodes. SEH wrapper function. |
| 0x007C2C50 | 123 | CTooltipWnd__dtor | Destructor for a tooltip window class. Sets vtable to PTR_FUN_011240c4, destroys the tooltip tree nodes recursively at +0x7C, frees the tree root, then calls FUN_00a79e90 (base class dtor). |
| 0x007C2CD0 | 147 | CTooltipWnd__scalar_dtor | Scalar deleting destructor for tooltip window. Calls CTooltipWnd__dtor logic, then conditionally frees memory (0x84 bytes) if param_2 & 1. |
| 0x007C2D70 | 786 | CTooltipWnd__add_tooltip_entry | Adds a tooltip entry to the tree organized by category ID. Creates category node in red-black tree if it doesn't exist. Appends text entry to category's linked list. Enforces max entries per category (1 for category 2, 3 for others) by removing oldest. Recalculates text sizes and total height for scroll region. |
| 0x007C3090 | 296 | CTooltipWnd__recalculate_entry_sizes | Recalculates tooltip entry display sizes for a given category node. Measures text widths to find max, sums heights with 4px spacing, stores results at node+0x28 (width+12) and node+0x2C (total height). Then recalculates total tooltip height across all categories with 0x11-byte inter-category spacing. |
| 0x007C31C0 | 224 | CTooltipWnd__render_color_bars | Renders colored rectangular bars inside a tooltip window. Iterates through a tree structure at +0x7C, traversing nodes in-order. For each node's linked list of items, draws filled rectangles (render_filled_rect) with color from item[9], dimensions from item[10]/item[11], positioned relative to the window's coordinates (+0x1C, +0x20). Bars are stacked vertically with 10px padding and 7px group spacing. |
| 0x007C32A0 | 21 | CTooltipWnd__get_max_entries_for_category | Returns max entries per category: 1 for category 2, 3 for all others |
| 0x007C32D0 | 352 | CTooltipWnd__render_entries | Renders all tooltip entries. Traverses category tree in-order. For each category with data: draws header bar (0xFF5C5C5C background), then draws each text line with shadow using font metrics from category node. Stacks entries vertically with 4px line spacing, 10px entry spacing, 7px category spacing. |
| 0x007C3430 | 328 | CTooltipWnd__update_timed_entries | Updates timed tooltip entries. If tree has entries (count != 0), enables timer and iterates all categories/entries checking timestamps against _Xtime_get_ticks(). Expired entries (current tick > entry time + duration*10000000) are removed from linked list and freed. If tree is empty, disables timer. |
| 0x007E21D0 | 111 | CNavigatorWnd__ctor | CNavigatorWnd constructor. Sets vtable (PTR_01127f6c), initializes count to 0, allocates sentinel linked list node (0xc bytes) for the window list. |
| 0x007E2240 | 116 | CNavigatorWndGroup__ctor | CNavigatorWndGroup constructor. Sets vtable (PTR_01127f64), initializes window count, constructs 4 linked lists (one per side: left/right/top/bottom) via _eh_vector_constructor_iterator_, clears selection index. |
| 0x007E23D0 | 225 | CNavigatorWnd__dtor | CNavigatorWnd destructor. Sets vtable, deletes all child windows via their scalar deleting dtors, frees linked list nodes, and frees the sentinel node. |
| 0x007E24C0 | 84 | CNavigatorWndGroup__dtor | CNavigatorWndGroup destructor. Sets vtable, destroys 4 side-linked lists via _eh_vector_destructor_iterator_. |
| 0x007E2520 | 35 | CNavigatorWnd__scalar_deleting_dtor | CNavigatorWnd scalar deleting destructor. Calls CNavigatorWnd__dtor then optionally frees 0x10 bytes. |
| 0x007E2550 | 109 | CNavigatorWndGroup__scalar_deleting_dtor | CNavigatorWndGroup scalar deleting destructor. Calls dtor (destroys 4 linked lists), then optionally frees 0x2c bytes. |
| 0x007E25C0 | 167 | CNavigatorWnd__add_window_to_group | Adds a window to a snap group. If no group exists and the global snap flag (DAT_013346a8) is set, creates a new CNavigatorWndGroup, sets the window ID, and adds it to the master list. |
| 0x007E2670 | 174 | CNavigatorWnd__register_window | Registers a window with the navigator snap system. Creates a new CNavigatorWndGroup if needed, rebuilds child links, and adds to the master list. Skips if already registered. |
| 0x007E2720 | 79 | CNavigatorWnd__refresh_dependent_windows | Iterates all windows in the snap group and calls each one's virtual refresh method to update their positions after a snap operation. |
| 0x007E2770 | 320 | CNavigatorWnd__check_adjacency | Checks adjacency between two window groups. Compares position and size to determine edge overlap. Returns 0=left, 1=right, 2=top, 3=bottom, -1=not adjacent. |
| 0x007E28B0 | 35 | CNavigatorWnd__clear_all_snap_flags | Clears the snap flag (offset 0x28) on all groups in the master window list. |
| 0x007E28E0 | 30 | CNavigatorWnd__add_to_snap_list | Adds a window to a snap side list if the side index is not -1. |
| 0x007E2900 | 86 | CNavigatorWnd__snap_pair_to_lists | Snaps a pair of windows. Removes both from existing lists, adds primary to snap list, and conditionally adds secondary based on global lookup table at DAT_01334698. |
| 0x007E2960 | 88 | CNavigatorWndGroup__remove_from_all_lists | Removes a window from all 4 side lists in the group. Searches each linked list for the matching pointer and unlinks/frees the node. |
| 0x007E29C0 | 67 | CNavigatorWnd__rebuild_all_children | Rebuilds all children in the snap group. Iterates the master list and calls SpriteLayer__rebuild_child_links for each group that has children. |
| 0x007E2A10 | 233 | CNavigatorWnd__calculate_snap_offset | Calculates snap offset for a window group. Iterates through children, validates dependencies, computes absolute positional offsets, and returns max x/y displacement. |
| 0x007E2B10 | 85 | CNavigatorWndGroup__accumulate_height | Iterates children in a CNavigatorWndGroup and sums up their heights (field at offset 0x18). Returns total accumulated height. |
| 0x007E2B70 | 44 | CNavigatorWnd__find_group_by_id | Finds a CNavigatorWndGroup by window ID in the master list. Returns the group pointer or 0 if not found. |
| 0x007E2BA0 | 127 | CNavigatorWnd__search_and_validate_snap | Searches for and validates snap configuration between two windows. Clears all snap flags, finds both groups in the master list, then validates the dependency tree. |
| 0x007E2C20 | 97 | CNavigatorWndGroup__has_dependency | Recursively checks if a CNavigatorWndGroup has a dependency on another group. Uses visit flag (offset 0x28) to prevent infinite recursion. Checks all 4 side lists. |
| 0x007E68F0 | 365 | CRefineWnd__ctor | Constructor for CRefineWnd (equipment refinement window). Inherits from UIWindowBase. Sets vtable to CRefineWnd, initializes refinement-related fields: selection index (-1), success rate (200), cost (100), and various state flags. Calls CItemInfoMgr__destroy_nodes_recursive_alt for item node init. |
| 0x007E6C30 | 129 | CRefineWnd__free_result_vector | Frees the result/status vector (element size 4 bytes). Deallocates memory and zeroes pointers. |
| 0x007E6CC0 | 151 | CRefineWnd__dtor | Destructor for CRefineWnd. Sets vtable, destroys strings, frees item and result vectors, destroys base class. |
| 0x007E6E50 | 175 | CRefineWnd__scalar_dtor | Scalar deleting destructor for CRefineWnd (size 0x228). Calls dtor and conditionally frees memory. |
| 0x007E7050 | 933 | CRefineWnd__build_requirements_list | Builds the refine requirements checklist. Checks: item selected (0xEED if none), item refinable (0xEEE if not), material availability (0xE7B/0xE7C), zeny cost (0xE7D), weight limit (0xE7E), success rate threshold (0xE80/0xEEE if >=100%), item level requirement (0xE81). Appends status codes to the result vector. |
| 0x007E7500 | 88 | CRefineWnd__on_refine_button_click | Handles refine button click. Checks if click is within the refine area (x: 0x35-0x63, y: 0x72-0xA0) and if param4 indicates a valid click (==1), then calls virtual method at offset 0x94 with action 0x17. Also notifies another object via virtual call. |
| 0x007E7560 | 319 | CRefineWnd__reset_state | Resets the refine window state. Clears item description, resets selected item index to -1, clears material/catalyst slots, resets refine mode flags, records current time via timeGetTime, and calls virtual reset methods on child views. |
| 0x007E76A0 | 74 | CRefineWnd__get_selected_item_property | Gets a property value (offset +8) from the currently selected item in the refine item list. Returns 0 if no item is selected or index is out of bounds. Items are 0x11 bytes each in the vector. |
| 0x007E76F0 | 74 | CRefineWnd__hit_test_slot_index | Hit-tests a screen coordinate against 3 material slot positions. Returns slot index 0-2 if the point falls within one of the material slots (spaced 0x28 apart starting at y=0x66), or -1 if no hit. X range: 0x9E-0x189. |
| 0x007E7740 | 59 | CRefineWnd__calc_success_rate | Calculates the refine success rate percentage. Base rate from field +0x118, adds bonus from (field +0x114 / field +0xFC) * field +0x104. Clamps result to max 100. Returns 0 if refining is not active. |
| 0x007E7780 | 1042 | CRefineWnd__create_child_windows | Creates the refine UI child windows: main item display (0xD0 bytes, position 0x159x299), item list view (+0xB4, position 0x23x0x123), material view (+0xB8, position 0x9Ex0xE1), slot view (+0xBC, position 0x9Ex0xF0), and a text/button view (position 0x8Cx100). Sets up message handlers for each child window. |
| 0x007E7BA0 | 3515 | CRefineWnd__render_ui | Renders the refine UI. Draws common elements (background texts), then based on mode (0=no item, 1=refining, 2=result): shows item slots with names/descriptions, material list with requirements, refine status messages, and success rate display. Iterates over item vector to draw slot entries at y-offsets spaced 0x28 apart. |
| 0x007E8990 | 43 | CRefineWnd__on_click | OnClick handler for refine window. Checks if click position is within refine area bounds (x: 0x35-0x63, y: 0x72-0xA0) and if refining is active, then calls reset_state to reinitialize. |
| 0x007E89C0 | 107 | CRefineWnd__on_right_click | Right-click handler for refine window. If clicking header area (y<0x26, x>0x8D), delegates to drag handler. If in refine mode and clicking item area, sends refine request packet (0x21) with item info. |
| 0x007E8A30 | 254 | CRefineWnd__on_mouse_move | Mouse move handler. Delegates to drag if in header. Otherwise, hit-tests material slot positions (3 slots), selects hovered slot, shows warning message if item has catalyst, and triggers redraw. |
| 0x007E8B30 | 116 | CRefineWnd__update_hover_slot | Updates the hover slot index (+0xE8) based on mouse position. Hit-tests against 3 material slot positions (x: 0x9E-0x189, y: 0x66-0xDB, slots spaced 0x28 apart). Sets -1 if no slot hit. |
| 0x007E8BB0 | 260 | CRefineWnd__update_tooltip | Updates the tooltip text for the refine window. Gets formatted string with item name (msg 0xF88), sets tooltip position with offset (0, -20), and displays via tooltip manager. |
| 0x007E8CC0 | 603 | CRefineWnd__on_timer_tick | Timer tick handler for refine animation. Manages frame advancement (mode 0=6 frames, mode 1=6, mode 2=5). After 3000ms in result mode (mode 2), shows result message (0xE76-0xE7A based on result type) and resets. Also checks if refine button should be enabled/disabled based on item validity. |
| 0x007E8FB0 | 540 | CRefineWnd__on_hover_show_item_info | Hover item info display. Shows item tooltip when hovering over material slots or catalyst slot (0xC3-0xDB, 0xE4-0xFC). Also shows tooltip for main refine item slot. Uses tooltip window (type 0xC) with virtual call 0x94. |
| 0x007E91D0 | 1139 | CRefineWnd__on_message | Main message handler for refine window. Handles: msg 6/0x117=add catalyst material, 6/0xB8=start refine (sends packet 0xB5B), 6/0xB9\|0xC9=cancel/close (packet 0xB5C), 6/0x118=remove catalyst, 6/0x1FE=open URL, 0x17=item placed (validates and sends packet 0xB59). Checks refinability, level, and count limits. |
| 0x007E9650 | 543 | CRefineWnd__set_item_data | Sets refine item data from server. Copies item desc, material list (0x11 bytes per entry), refine parameters (zeny cost, material count, catalyst info). Transitions to refine mode (mode=1), records timestamp, triggers redraw. |
| 0x007E99D0 | 97 | CRefineWnd__set_refine_mode | Sets the refine mode (0=idle, 1=refining, 2=result). Records timeGetTime timestamp, sets animation frame to 1, updates parent window visibility flag. If mode==2 (result), records result display start time for 3s timeout. |
| 0x007E9A40 | 289 | CRefineWnd__grow_item_vector | Grows the item vector capacity (element size 0x11 bytes). Uses 1.5x growth strategy. Frees old buffer, allocates new one with alignment for large blocks (>0xFFF). Throws length_error if capacity exceeds 0xF0F0F0F. |
| 0x007E9BD0 | 39 | CRefineWnd__push_back_result_code | Pushes a result status code (4 bytes) to the result vector. If capacity is reached, calls grow helper FUN_007e6720. |
| 0x007F4920 | 332 | UICardListWnd__ctor | Constructor for UICardListWnd. Sets vtable to PTR_FUN_01129608. Initializes page size (0x33=7), scale (0x34=100), selected index (0x37=-1), initial year value (0x3C=0x19EB=6635). Creates two tree structures for item organization. |
| 0x007F4D20 | 188 | UICardListWnd__dtor | Destructor for UICardListWnd. Restores vtable, destroys strings and two 9-byte vectors, calls base dtor. |
| 0x007F4F40 | 212 | UICardListWnd__scalar_dtor | Scalar deleting destructor for UICardListWnd. Destroys strings and vectors, calls base dtor, optionally frees 0x300 bytes. |
| 0x007F5270 | 90 | UICardListWnd__OnMouseClick | Mouse click handler for UICardListWnd. Checks if click is within the selected card preview area (x: 0x6D-0x9B, y: 0xC9-0xF7). If left-click on a valid slot, sends self-message 0x17 (equipment change) with the clicked item data. Then notifies parent window with message 0x12. |
| 0x007F52D0 | 480 | UICardListWnd__ResetState | Resets the card list window to its initial state. Clears selected card (-1), resets page settings (page=0, pageSize=7), clears search results, refreshes timestamp, and hides secondary tabs. Shows the first tab as active. |
| 0x007F54B0 | 69 | UICardListWnd__GetSelectedCardId | Returns the card ID of the currently selected card. Reads from the 9-byte element vector at offset 0xE0 using selected index at 0xDC. Returns 0 if no card selected or index out of bounds. |
| 0x007F5500 | 69 | UICardListWnd__HitTestCardSlot | Hit tests a screen coordinate against the card grid slots. Grid starts at x=0xB, y=0x37, each slot is 0x31 wide. Returns slot index (0-4) or -1 if outside grid. |
| 0x007F55A0 | 2168 | UICardListWnd__UpdateCardData | Updates card data after selection or filter change. Handles different card type modes (3-6), compares current card list with previous, updates status messages (string IDs 0xB97/0xB9A/0xCAA-0xCAD), shows 5-second toast messages for special conditions (price threshold check against DAT_01733d28). Refreshes child windows and tab states. |
| 0x007F5E30 | 1089 | UICardListWnd__OnCreate | OnCreate handler for UICardListWnd. Creates child windows: close button (ID 0xB9), tab control with 4 tabs (UICardListTabWnd2 at 0xB4, UICardListTabWnd3 at 0xB8, UICardListTabWnd1 at 0xBC), detail window (UICardListDetailWnd at 0xC4), and a search/filter tab control (ID 0x1FE). |
| 0x007F6280 | 1377 | UICardListWnd__OnDraw | Main draw handler for UICardListWnd. Renders the card list with mode-dependent header text (modes 0-6). Draws background rectangle, card grid with item icons (5 slots, 0x31 spacing), card count text, selection highlight, and mode-specific status labels (string IDs 0xB9B-0xB9E). Handles price/count display for unowned cards. |
| 0x007F6BF0 | 687 | UICardListWnd__DrawCompletionStatus | Draws the completion status text for a card in the list. Renders owned/unowned state label (string 0xCA9) with color coding: red (0xE1C1F) if highlighted, brown (0x6F4333) if owned, green (0x3E1B12) otherwise. For unowned cards, also draws count and price text. |
| 0x007F6EA0 | 391 | UICardListWnd__DrawCardName | Draws the card name label. If card is owned (offset 0xAC=1), uses brown color (0x94644A); otherwise uses green (0x3E1B12). Also renders the card count text below if not owned. String ID 0xB96. |
| 0x007F7030 | 137 | UICardListWnd__DrawNewBadge | Draws the "NEW" badge on the card. If offset 0x120 flag is set, uses red color (0xE1C1F); otherwise green (0x3E1B12). String ID 0xB9D. Y-position adjusts based on display mode. |
| 0x007F70C0 | 474 | UICardListWnd__DrawCardDescription | Draws the card description text. Loads the card image sprite, word-wraps the description string from offset 0xA8, and renders each line with 0xB pixel spacing. Text color is green (0x2E15CA) or red (0xC4281C) based on completion flag at 0xF9. |
| 0x007F72A0 | 45 | UICardListWnd__OnMouseOver | Mouse over handler for card list window. If card display is active and mouse is within grid bounds, calls FUN_007f52d0 to update hover state. |
| 0x007F72D0 | 105 | UICardListWnd__OnDoubleClick | Double-click handler for card list window. If y < 0x11, delegates to base header handler. Otherwise, in mode 1 with active card display, if click is within card preview area (x: 0x6D-0x9B, y: 0xC9-0xF7), opens item display window (type 0x1C) for the selected card via CGameMode__setup_item_display_extended. |
| 0x007F7340 | 799 | UICardListWnd__OnRightClick | Right-click handler for card list. Delegates to base if y < 0x11. Hit-tests card grid slots for selection. For specific card IDs (0x3D8-0x3F3, 0x184F-0x1861, etc.), shows special info messages (string IDs 0xBAC-0xBAE). Handles card locking toggle for slot 4 (buy mode). Checks price against item database. |
| 0x007F76C0 | 982 | UICardListWnd__OnMouseHoverShowTooltip | Handles mouse hover tooltips for the card list window. Shows item name tooltips when hovering over card slots (grid at x=0xB, y=0x37, 0x31 spacing) or the selected card preview area. Looks up item names via CItemDesc and displays via CToolTipMgr. |
| 0x007F7AA0 | 676 | UICardListWnd__OnAnimationTick | Animation tick handler for UICardListWnd. Advances frame counter based on mode-specific frame limits (stored in lookup table at DAT_01129b70). Plays refine sound effects at frames 7 and 12 in mode 2. On animation completion, plays success/fail sounds and transitions to result display via UpdateCardData and SetDisplayMode. |
| 0x007F7E20 | 669 | UICardListWnd__OnClickShowItemInfo | Click handler that opens item info popup windows for the card list. Hit-tests card grid slots and the selected card preview area. Creates item info windows (type 0xC) via CGameObject and sends item data via message 0x18. Handles both individual card slots and the combined result slot (slot 4). |
| 0x007F80C0 | 326 | UICardListWnd__SetTabButtonTextures_A | Sets button textures for tab control A in UICardListWnd. Uses "success"/"fail" texture variants based on flag at offset 0x49. Applies textures to button states 0/1/2 (normal/hover/pressed) via UIButtonWidget__set_texture_resolved, then resizes and refreshes. |
| 0x007F8210 | 326 | UICardListWnd__SetTabButtonTextures_B | Sets button textures for tab control B in UICardListWnd. Uses "success"/"fail" texture variants based on flag at offset 0x48. Similar to SetTabButtonTextures_A but uses different texture path format strings (DAT_01129798/DAT_011297e0). |
| 0x007F8360 | 1091 | UICardListWnd__OnCommand | Command/message handler for UICardListWnd. Handles button commands (msg 6): 0xB8=confirm/buy card (sends packet 0xAA3 with card data, checks price threshold DAT_01733d28), 0xB9/0xC9=close window (sends packet 0xAA4), 0x207=search tab reset (clears selection, resets to browse mode), 0x208=redirect to 0xB8, 0x1FE=open URL. Also handles equipment change events (msg 0x17) for modes 0/1 - validates item and sends equip packet 0xAA1. |
| 0x007F87B0 | 1146 | UICardListWnd__OnReceiveItemData | Receives and processes item data for UICardListWnd. For modes 0/1 (browse/select), validates item slot and populates card data with item description, tooltip body, and card list entries. For modes 2-6 (result display), updates the result item data. Formats tooltip via CItemDesc__format_tooltip_body, copies card vector data via std__vector_assign_9byte_elements, and transitions to display mode. |
| 0x007F8CC0 | 382 | UICardListWnd__SetDisplayMode | Sets the display mode for UICardListWnd. Modes 0-2 toggle tab visibility and child window states. Modes 3-6 display colored result messages via CUIWindowMgr__dispatch_chat_message (3=success msg 0x1F2, 4/6=fail msg 499, 5=special msg 0x601). Records timestamp for animation timing. |
| 0x0083FEA0 | 355 | CReportManager__copy_linked_list | Copies a circular doubly-linked list of 0x50-byte report records. Iterates the source list, allocating new 0x50-byte nodes and calling CReportManager__copy_report_record to duplicate each record's data. Links nodes into a new circular list with a sentinel node. Returns the new list head and count via param_1. |
| 0x008401C0 | 84 | CReportWnd__ctor_dialog | Dialog-based constructor for CReportWnd variant C. Calls CDialogWnd__full_ctor for base initialization, sets vtable to PTR_CReportWnd__scalar_dtor_c. |
| 0x008402A0 | 65 | CReportWnd__string_dtor_wrapper | Wrapper that calls STL_string_dtor. Used as a CReportWnd destructor helper for string field cleanup. |
| 0x008402F0 | 71 | CReportWnd__dtor_a | Destructor for CReportWnd variant A (0x104 bytes). Sets vtable and calls UIItemListWnd_vt59a0__dtor for base cleanup. |
| 0x00840340 | 71 | CReportWnd__dtor_b | Destructor for CReportWnd variant B (0x110 bytes). Sets vtable and calls UIItemListWnd_vt57f0__dtor for base cleanup. |
| 0x00840390 | 71 | CReportWnd__dtor_c | Destructor for CReportWnd variant C (0x120 bytes). Sets vtable and calls UIDialogBoxBase__destructor for base cleanup. |
| 0x008403E0 | 99 | CReportWnd__scalar_dtor_a | Scalar deleting destructor for CReportWnd variant A. Frees 0x104 bytes if flag bit 0 set. |
| 0x00840450 | 99 | CReportWnd__scalar_dtor_b | Scalar deleting destructor for CReportWnd variant B. Frees 0x110 bytes if flag bit 0 set. |
| 0x008404C0 | 99 | CReportWnd__scalar_dtor_c | Scalar deleting destructor for CReportWnd variant C. Frees 0x120 bytes if flag bit 0 set. |
| 0x00840530 | 1529 | CReportWnd__validate_collection_submission | Validates collection report submission. Counts unique inventory/equip cards, checks weapon types and wedding states, enforces item count limits (DAT_0173a5f4+100 total, 30000 per item). Shows error messages via CMessageStringTable on validation failure. |
| 0x00840B30 | 208 | CReportWnd__handle_item_use_request | Handles item use request for the report window. Checks if shop window 0x271b is open, validates item type (weapon/wedding), routes to appropriate handler or opens item detail window (type 0xf). |
| 0x00840C00 | 180 | CReportWnd__handle_item_event | Handles item events for the report window. Routes based on param_4 value: 4 with sub-param 1 triggers report action, otherwise opens item window type 0xf with message 0x17. |
| 0x00840CC0 | 497 | CReportWnd__get_item_at_grid_pos_pending | Returns the item data at a given grid position in the pending items list. Bounds-checks coordinates against the grid area, iterates through the pending list to find the item at the calculated row/column, and copies it to the output parameter. |
| 0x00840EC0 | 289 | CReportWnd__get_item_index_at_grid_pos_pending | Returns the linear index of a pending item at the given grid coordinates. Bounds-checks, calculates column from x and row from y, iterates the pending list to find the matching index. Returns -1 if out of bounds or no item at position. |
| 0x00840FF0 | 804 | CReportWnd__get_item_at_grid_pos_completed | Returns item data at grid position from the completed items list. Similar to get_item_at_grid_pos_pending but uses the completed list. Also handles second column by converting item ID to string for display. |
| 0x00841320 | 804 | CReportWnd__get_item_at_grid_pos_pending_b | Variant B of get_item_at_grid_pos_pending. Uses the pending list (CReportStorage__get_pending_list_ptr). Same grid bounds checking and iteration logic, with the extra column-1 string conversion path. |
| 0x00841650 | 497 | CReportWnd__get_item_at_grid_pos_completed_b | Variant B of get_item_at_grid_pos_completed. Uses the completed list (CReportStorage__get_completed_list_ptr). Same grid bounds checking and item lookup logic as the pending variant. |
| 0x00841850 | 21 | CReportWnd__check_item_count_sufficient | Checks if existing item count for a given item ID is >= param_2. Calls find_item_count_by_id internally. |
| 0x00841870 | 62 | CReportWnd__hit_test_item_grid_a | Hit tests the item grid area. Returns true if coordinates (param_2, param_3) fall within the grid bounds (x: 0x28 to width-0x14, y: 0x11 to rows*0x20+0x11). |
| 0x008418B0 | 62 | CReportWnd__hit_test_item_grid_b | Hit tests the item grid area (variant B). Returns true if coordinates fall within grid bounds. Identical logic to hit_test_item_grid_a. |
| 0x008418F0 | 21 | CReportWnd__check_sum_exceeds_30000 | Returns true if param_1 + param_2 exceeds 30000 (the per-item stack limit for reports). |
| 0x00841910 | 245 | CReportWnd__find_item_count_by_id | Searches the item list by iterating through linked list entries, converting each name string to int via atoi and comparing against param_1. Returns the matching item's count field, or 0 if not found. |
| 0x00841A10 | 2906 | CReportWnd__init_buttons_and_scrollbar | Initializes buttons and scrollbar for the report window. Creates UITextLabelWidget (checkbox), UISpriteWidget (scrollbar), two CDialogWnd sub-windows for tabs (btn_cancel texture variants), and positions everything. Sets initial page/scroll state and dispatches message 0x17. |
| 0x00842570 | 362 | CReportWnd__init_ui_widgets | Initializes UI widgets for the report window. Creates a UITextLabelWidget (checkbox with texture) and UISpriteWidget (scrollbar), positions them relative to window size, and calculates grid row count. |
| 0x008426E0 | 1286 | CReportWnd__draw_completed_item_grid | Draws the completed items grid. Renders borders, background tiles, and iterates through the completed report list drawing item sprites, names with tooltips, quantities, and price calculations. Highlights the selected item row. |
| 0x00842BF0 | 1436 | CReportWnd__draw_pending_item_grid | Draws the pending items grid. Similar to draw_completed_item_grid but uses pending list. Renders borders, tiles, item sprites (with or without count based on item type flag at offset 0x10), names, quantities, and prices. |
| 0x00843190 | 209 | CReportWnd__on_mouse_move_completed | Mouse move handler for the completed items tab. Updates hover state via hit test, shows item tooltip on hover using CGameMode__setup_item_use_display with type 4. |
| 0x00843270 | 427 | CReportWnd__on_mouse_move_pending | Mouse move handler for the pending items tab. Updates hover index via item grid hit test, shows item tooltip on hover using CGameMode__setup_item_use_display with type 0x1f. |
| 0x00843420 | 648 | CReportWnd__show_completed_item_tooltip | Shows tooltip for a completed item on hover. Looks up item info, formats price string via CMessageStringTable 0xde1, and displays tooltip via CToolTipMgr. |
| 0x008436B0 | 603 | CReportWnd__show_pending_item_tooltip | Shows tooltip for a pending item on hover. Looks up item info, formats price string via CMessageStringTable 0xde1, and displays tooltip via CToolTipMgr. |
| 0x00843910 | 1223 | CReportWnd__show_report_summary_tooltip | Builds a summary tooltip from the report tree. Iterates up to 30 entries, formats each with item name and price (msg 0xde1), joins with newlines, and shows via CToolTipMgr. |
| 0x00843DE0 | 209 | CReportWnd__on_dblclick_completed_item | Double-click handler for completed items tab. Gets clicked item via get_item_at_grid_pos_completed, opens detail window (type 0xc) with the item data. |
| 0x00843EC0 | 209 | CReportWnd__on_dblclick_pending_item | Double-click handler for pending items tab. Gets clicked item via get_item_at_grid_pos_pending_b, opens detail window (type 0xc) with the item data. |
| 0x00843FA0 | 138 | CReportWnd__on_message_completed | Message handler for the completed items report tab. Switch on param_3: 0x06=submit/cancel report, 0x0e=resize window (align to 32px grid, min 0xe8x0x78), 0x17=scroll event (rebuild item list), 0x22=restore position, 0x26=add item to report (validates weapon/wedding type, checks 30000 limit, calculates zeny cost). |
| 0x008446D0 | 138 | CReportWnd__on_message_pending | Message handler for the pending items report tab. Switch on param_3: 0x0e=resize window (align to 32px grid), 0x17=scroll event (rebuild pending list), 0x22=restore position, 0x26=remove item from report (transfers completed entry back to pending). Default delegates to CUISkillWindow__handle_message. |
| 0x00844A90 | 170 | CReportWnd__linked_list_delete_range | Deletes a range of linked list nodes between param_3 and param_4. Iterates from param_3, destroys each 0x100-byte node (dtor + free), decrements the list count. Updates link pointers to splice out the range. |
| 0x00844B40 | 154 | CReportWnd__vector_copy_16byte_structs | Vector copy constructor for 16-byte structs. Allocates destination vector, copies elements in 16-byte chunks from source vector (param_2) to output (param_1). |
| 0x0084EAB0 | 287 | UIDialogBox__ctor | Full constructor for CDialogWnd. Initializes dialog properties, creates buttons, sets up layout, and configures event handlers. This is the main dialog box window used throughout the client UI. |
| 0x008511B0 | 183 | UIDialogBox__dtor | Full destructor for UIDialogBox. Sets vtable to PTR_UIDialogBox__scalar_deleting_dtor_01132440, destroys 4 string fields in sequence. Then transitions to UITextDisplayWidget vtable (011321ac), destroys 2 more string fields. Finally calls CEffect__dtor for base widget cleanup. Total: 6 string fields destroyed. |
| 0x00851560 | 120 | UIDialogBoxBase__scalar_del_dtor_4 | Scalar deleting destructor variant 4 for dialog box base class. |
| 0x008519B0 | 71 | UIDialogBoxBase__scalar_del_dtor_5 | Scalar deleting destructor variant 5 for dialog box base class. |
| 0x00852220 | 38 | UIDialogBox__scalar_deleting_dtor | Scalar deleting destructor for UIDialogBox. Calls UIDialogBoxBase__destructor, then frees 0x120 bytes if param_2 & 1. |
| 0x0086C530 | 84 | UIDialogBox2__ctor | Constructs UIDialogBox2 by calling UIDialogBox__ctor base, then overrides vtable to UIDialogBox2 (0x01134C20) |
| 0x0086EBB0 | 94 | UIDialogBoxDerived2__ctor | Constructor for UIDialogBoxDerived2. Inherits UIDialogBox, overrides vtable, zeroes state field at offset 0x48. |
| 0x00870280 | 71 | UIDialogBox2__dtor | Destructor for UIDialogBox2: resets vtable to UIDialogBox2 (0x01134C20), then delegates to UIDialogBox__dtor for cleanup. |
| 0x008719B0 | 71 | UIDialogBoxDerived__dtor | Destructor for a UIDialogBox-derived class. Sets vtable, then delegates to UIDialogBoxBase__destructor for full cleanup. |
| 0x00871BA0 | 71 | UIDialogBoxDerived2__dtor | Destructor for second UIDialogBox-derived class. Sets vtable, delegates to UIDialogBoxBase__destructor. |
| 0x00872730 | 99 | UIDialogBox2__scalar_deleting_dtor | Scalar deleting destructor for UIDialogBox (0x120 bytes). Sets vtable, calls UIDialogBoxBase destructor, optionally frees. |
| 0x00874200 | 99 | UIDialogBoxDerived__scalar_deleting_dtor | Scalar deleting destructor for UIDialogBoxDerived (0x13C bytes). Sets vtable, calls UIDialogBoxBase__destructor, optionally frees. |
| 0x00874460 | 99 | UIDialogBoxDerived2__scalar_deleting_dtor | Scalar deleting destructor for UIDialogBoxDerived2 (0x124 bytes). Sets vtable, calls UIDialogBoxBase destructor, optionally frees. |
| 0x008933E0 | 830 | CItemList__parse_next_item_entry | Parses the next item entry from an item list iterator. Returns 0 if at end, 0 if item name contains 'unknown item'. Populates output struct (param_2) with item ID, flags, class/level, stack count, enchantment data. Uses CItemDesc functions to extract item properties. Returns 1 on success. |
| 0x0089A9D4 | 230 | CNavigatorWnd__handle_set_navigation_target | CNavigatorWnd: handle set navigation target |
| 0x008A43E0 | 84 | UIDialogBoxSubclass__ctor | Constructor for a UIDialogBox subclass. Calls FUN_0084eab0 for base dialog init, then sets vtable to PTR_UIDialogBoxSubclass__scalar_deleting_dtor_011397a8. |
| 0x008A5580 | 71 | UIDialogBoxSubclass__dtor | Destructor for a UI dialog box subclass (vtable PTR_FUN_011397a8). Delegates to UIDialogBoxBase__destructor for cleanup. |
| 0x008A67F0 | 99 | UIDialogBoxSubclass__scalar_deleting_dtor | Scalar deleting destructor for UIDialogBoxSubclass (vtable PTR_FUN_011397a8). Delegates to UIDialogBoxBase__destructor, frees 0x120 bytes if param_2 bit 0 is set. |
| 0x008A7350 | 3857 | UIDialogBox__init_layout | Initializes the layout for a UI dialog box. Takes title text, button type (0/2/4/5), timer duration, button label, size params, and item slot info. Sets up timing (timeGetTime for start/end), creates scroll list widget, configures cancel buttons from sprite resources (btn_cancel, btn_cancel_a, btn_cancel_b), positions the dialog centered on screen, and optionally creates an edit box (type 5) or item slot widget. |
| 0x008A8280 | 2126 | UIDialogBox__init_simple_layout | Initializes a simpler dialog box layout with fixed size 0x118 x 0x78. Sets up timer, scroll list, cancel button with 3 states, and a color button widget. Configures button colors via CColorPicker__GetPixelRGB. Creates the button layout centered on screen. Also gets item description for display via CItemDesc__get_offset_ptr. |
| 0x008A8AD0 | 598 | UIDialogBox__setup_item_dialog | Sets up a dialog box for item interactions. Calls FUN_008a7350 to init layout, configures scroll list colors, positions child widgets, creates button sprites from DAT_010e2d58/010e2d8c, and retrieves item description via CItemDesc__get_offset_ptr. Stores formatted text result at offset 0x120. |
| 0x009144B0 | 355 | CNavigatorWnd__dtor_009144b0 | CNavigatorWnd destructor. Sets vtable to PTR_FUN_01140d30. Frees memory at offset 0xC8, cleans up optional sub-object at offset 0xC0 (with string linked list + string), destroys CFmt, multiple nested vtable sub-objects (3 vectors of 0x3C elements with strings), a linked list at offset 0xB4, then UIWindowBase__dtor. |
| 0x00935270 | 354 | UISkillWnd__handle_msg_command | Handles skill window messages. Command 6/0xB8: saves hotkeys and closes window. Command 6/0xB9: clears all skill tree data (4 categories). Command 6/0xD5: toggles extended skill bar mode (DAT_014576a4/DAT_014576a6), updates layout. Commands 0x13C/0x13D: page prev/next. Command 0x16B: handles map window message. Command 0x16: tab selection with pagination for >36 items. Falls through to UIWindow__handle_button_click for unknown commands. |
| 0x00957DE0 | 272 | UIGuildWnd__populate_agit_names | Populates agit (guild castle) names by iterating FUN_00ae46c0 results. For each agit, calls lua script 'get_agit_name' to get the name and adds it to the scroll list widget at member 0x100 via virtual method 0xD8. |
| 0x00957EF0 | 341 | UIGuildWnd__create_tab_edit_widgets | Creates editable text widgets for guild window tabs. Allocates UIEditableTextWidget objects in a loop, sets tab labels from resource string IDs 0x154-0x159. Each tab is 0x42 pixels apart. Registers Alt+G hotkey. |
| 0x00958070 | 1672 | UIGuildWnd__create_dialog_buttons | Creates OK/Cancel dialog buttons for a guild window page. Allocates UITextWidget (0x11C bytes) as a label at 0xBC with light gray color (0xE6E6E6), and 2 CDialogWnd buttons with btn_cancel textures at calculated positions. Sets default button ID to 0xB8 at member 0x8C. |
| 0x00958700 | 55 | UIGuildWnd__init_guild_info_page | Initializes the guild info page. Creates controls via UIGuildWnd__create_guild_info_controls, then updates the editable text widget at 0xB8 with message string 0x20C if the widget exists. |
| 0x00958740 | 589 | UIGuildWnd__create_list_widgets | Creates list widgets for guild window. Sets up scrollbar, creates 11 pairs of editable text widgets (name + value columns) for the member/position lists. Compares guild name string and sends initial requests. |
| 0x00958990 | 1627 | UIGuildWnd__create_info_page_buttons | Creates buttons for the guild info page. Creates 3 dialog buttons at member 0xB4 with textures: btn_help_b (help), create_guild (create), btn_cancel (cancel) with IDs 0x157, 0x1C0, 0xB8. Uses "_guild_helper" string for texture base name. |
| 0x00958FF0 | 2020 | UIGuildWnd__create_position_page_controls | Creates guild position/rank editing page controls. Creates edit button (btn_edit textures) at 0xD0 with ID 0x116, save button at 0xD4 with ID 0x1C1, scroll list (UIFormattedWidget) at 0x100 for agit names, and a formatted list widget at 0x104 with message IDs 0xE2D-0xE2E. Populates agit names via UIGuildWnd__populate_agit_names. |
| 0x009597E0 | 1828 | UIGuildWnd__create_guild_info_controls | Creates guild info overview page controls. Creates a text widget at 0xB4 for guild name display, an editable text widget at 0xB8 with message 0x20B, and 2 cancel buttons (btn_cancel textures) with IDs 0xB8 and 0xB9. Sets default button to 0xB8. |
| 0x00959F10 | 3499 | UIGuildWnd__create_skill_tree_page_controls | Creates guild skill tree page controls with 4 columns per row (name, desc, level, extra), 6 upgrade buttons (basic_interface textures) at 0x130+, scrollbar at 0x148, OK button at 0x14C with btn_ok_dis disabled state, and a radio tab widget at 0x194 with label from message 0xB30. |
| 0x0095ACC0 | 1712 | UIGuildWnd__create_chat_page_controls | Creates chat page controls for the guild window (not CUIChatWindow). Creates editable text widget at 0xD0 for guild name display, a list dialog widget at 0xD4 for chat messages, and a send button (btn_send textures) at 0xD8. Part of the guild window page system. |
| 0x0095B380 | 3076 | UIGuildWnd__create_member_page_controls | Creates guild member list page controls. Creates scrollbar at 0x81, 3 sets of 11 checkbox/tab widgets (0x34-0x54), 11 name text widgets (0x60-0x6A), 11 value text widgets (0x55-0x5F or 0x76-0x80), and an OK/disabled button at 0x82 with btn_ok_dis textures. Calls UIGuildWnd__update_scrollbar_list_b at end. |
| 0x0095BF90 | 3381 | UIGuildWnd__create_skill_page_controls | Creates guild skill page controls. Creates scrollbar at 0x35, 7 skill upgrade buttons (basic_interface_skill_up textures) at 0x46+, 7 arrow/navigation buttons (arw_left) at 0x3F+, and use/close buttons at 0x36-0x37 with btn_use and btn_close textures. Sends initial skill data request (message 0x17). |
| 0x0095CCD0 | 1735 | UIGuildWnd__create_tips_page_controls | Creates the guild tips/help page. Allocates a UIColoredScrollListBase (0xEC bytes) at member 0xB4, populates it with guild tip strings from CTownInfoMgr, and creates a close button (btn_close textures) at member 0xB8 with button ID 0xC9. |
| 0x0095D3A0 | 453 | UIGuildWnd__create_expel_page_controls | Creates guild expulsion page controls. Initializes page/scroll state (members 0x104-0x114), creates scrollbar at 0x100, and creates 12 editable text widgets at 0xD0+ for the expelled member list. Row height from DAT_0133b0fc. Calls update_scrollbar_list_c at end. |
| 0x0095D640 | 1237 | UIGuildWnd__draw_expel_page | Draws the guild expulsion page showing expelled members list with names and reasons. Size: 1237 bytes. |
| 0x0095DB80 | 1924 | UIGuildWnd__draw_alliance_page | Draws the guild alliance page showing allied and enemy guilds. Size: 1924 bytes. |
| 0x0095E320 | 1395 | UIGuildWnd__draw_notice_page | Draws the guild notice/announcement page with editable text areas for subject and body. Size: 1395 bytes. |
| 0x0095E8A0 | 259 | UIGuildWnd__draw_notice_text_info | Draws guild notice/description text info. Shows message texts 0x203 and 0x204 (notice subject/body labels), and a character count display (e.g. "x/y") right-aligned using text length from widget 0x77. |
| 0x0095E9B0 | 1915 | UIGuildWnd__draw_agit_page | Draws the guild agit (castle) page showing castle ownership and investment info. Size: 1915 bytes. |
| 0x0095F130 | 743 | UIGuildWnd__draw_skill_list_items | Draws the guild skill list items. Renders skill icons (sprites), skill names, levels (Nv/Lv), and skill points (Sp) for each visible skill entry. Shows SkillPoint counter at bottom. Uses linked list at member 0x148. |
| 0x0095F460 | 1011 | UIGuildWnd__draw_expel_list_columns | Draws expulsion list columns with grid lines and data rows. Renders 4 columns (name, level, date range) using DAT_016d44f4 linked list and DAT_0133b0fc row height. Highlights selected row. |
| 0x0095F860 | 371 | UIGuildWnd__draw_window_background | Draws the guild window background including tab bar with 6 tabs (0x42 pixels apart), tab highlighting for active tab, window border fills, and tiled bottom border decoration. |
| 0x0095F9E0 | 498 | UIGuildWnd__draw_bordered_list_view | Draws a bordered list view with corner sprites, selection highlight for active row (member 0x94), and text items from a string list at member 0x88. Row height from member 0xB8. Renders 2 items. |
| 0x0095FBF0 | 177 | UIGuildWnd__on_click_update_list_b_selection | Click handler that updates selection in list B (member 0x4C). Hit-tests against DAT_016d44ec linked list using DAT_0133b0e8 row height and page/column offsets at members 0x4B-0x4E. Triggers repaint if selection changed. |
| 0x0095FCB0 | 52 | UIGuildWnd__on_drag_start | Handles drag start on guild window header. Calls UIWindow__draw_header_area then sets drag state (0x80) and timestamps the drag on the global guild drag object at DAT_01457ab8. |
| 0x0095FCF0 | 71 | UIGuildWnd__on_tab_click_deselect | Handles tab click that deselects the current scroll list selection. Calls handle_tab_click_or_header first, then deselects the scroll list at member 0x41 if it has items. |
| 0x0095FD40 | 198 | UIGuildWnd__on_mouse_move_sort_or_hover | Mouse move handler that either sorts by column header click (if Y in header row 0x2F-0x42, hit-tests X against column boundaries from DAT_0133b0AC and calls UIListWnd__sort_by_column), or updates grid item hover selection at member 0x58 (if Y in data area 0x42+, using row height from member 0x5D). |
| 0x0095FE10 | 9 | thunk_to_UIGuildWnd__handle_tab_click_or_header_0095fe10 | Single-call thunk that forwards to FUN_00960020 |
| 0x0095FE20 | 71 | UIGuildWnd__on_mouse_move_list_b | Mouse move handler for list B area. Updates selection index at member 0x84 using UIAuctionWnd__hit_test_list_item_b and triggers repaint if changed. |
| 0x0095FE70 | 229 | UIGuildWnd__on_mouse_move_skill_list | Mouse move handler for skill list. Updates hover selection at member 0x4D, and if not in cooldown (DAT_016f7144==0), shows skill tooltip with icon and description via FUN_00cfe2a0. |
| 0x0095FF60 | 177 | UIGuildWnd__on_mouse_move_list_c | Mouse move handler for list C area. Updates selection at member 0x42 by hit-testing against list using DAT_016d44f4 linked list and DAT_0133b0fc row height. |
| 0x00960020 | 108 | UIGuildWnd__handle_tab_click_or_header | Handles click on tab headers or window drag area. If click is in tab row (Y 0x11-0x29), calculates tab index from X/0x42 and sends tab switch message. Otherwise delegates to UIWindow__draw_header_area. |
| 0x00960090 | 54 | UIGuildWnd__on_parent_mouse_move | Parent widget mouse move handler. Forwards mouse move to UIListBox and sends notification 0xA3 to parent widget at member 0x10. |
| 0x009600D0 | 78 | UIGuildWnd__on_child_mouse_move_notify | Child widget mouse move handler. Updates list hover via UIListBox, sends selection notification 0x30 with selected index, and notifies parent at member 0x4 with message 0xA3. |
| 0x00960130 | 46 | UIGuildWnd__on_drag_end | Handles drag end on guild window. Calls UIWindow__draw_footer_bar, then sets drag state to 0xFF and timestamps it on the global guild drag object. |
| 0x00960160 | 86 | UIGuildWnd__update_half_row_hover | Updates hover selection for a half-row widget. Divides Y by row height (member 0x2E), clamps to 0-1 range. Triggers repaint if hover changed. Returns -1 if outside bounds. |
| 0x009601D0 | 86 | UIGuildWnd__on_window_move | Handles window move event. Calls UIWindow__draw_multi_line_text, then repositions the guild emblem widget (DAT_01457ab8) relative to the window position. |
| 0x00960230 | 176 | UIGuildWnd__on_timer_check_guild_flag | Timer callback that checks if the guild has its flag set (byte at offset 0x24D == 1). If so, triggers a repaint. Uses CPacketStream and string operations for guild data lookup. |
| 0x009602E0 | 68 | UIGuildWnd__check_tooltip_timeout_a | Checks if tooltip at member 0x198 has timed out (400ms). If so, clears tooltip state and hides the tooltip widget at member 0x14C by clearing its visible flag and triggering repaint. |
| 0x00960330 | 68 | UIGuildWnd__check_tooltip_timeout_b | Checks if tooltip at member 0x230 has timed out (400ms). Same pattern as check_tooltip_timeout_a but for a different tooltip widget at member 0x208. |
| 0x00960380 | 56 | UIGuildWnd__deselect_scroll_list_member | Deselects the scroll list at member 0x41 (same as UIAuctionWnd__deselect_scroll_list). Calls virtual 0x38 to deselect, resets selected index to -1, triggers repaint. |
| 0x009603C0 | 109 | UIGuildWnd__update_grid_hover | Updates grid item hover selection. Hit-tests click in grid area (X: 5-0x17F, Y: 0x42-0x11C), calculates item index from row height and page offset. Triggers repaint if hover changed. |
| 0x00960430 | 50 | UIGuildWnd__update_list_b_hover | Updates hover selection for list B. Uses UIAuctionWnd__hit_test_list_item_b, stores result at member 0x84, triggers repaint if changed. |
| 0x00960470 | 50 | UIGuildWnd__update_skill_hover | Updates hover selection for skill list. Uses UIAuctionWnd__hit_test_skill_list, stores result at member 0x4D, triggers repaint if changed. |
| 0x009604B0 | 131 | UIGuildWnd__on_listbox_mouse_move_with_tooltip | Listbox mouse move with tooltip. Updates hover via UIListBox, if item selected (0x94 >= 0) sends tooltip position (0xA2) with adjusted coords, otherwise sends simple mouse move (0xA3) to parent. |
| 0x00960540 | 221 | UIGuildWnd__on_agit_list_click | Handles click on agit (castle) list. Two regions: allied castles (Y 0x9E-0xCC) and enemy castles (Y 0xE8-0x116). Gets castle count via CTownInfoMgr__count_warps_for_id, calculates index from Y/16. Stores to member 0x3E (allied) or 0x3F (enemy). Sends selection message 0x31 to parent. |
| 0x00960960 | 66 | UIGuildWnd__on_mouse_wheel_list_a | Mouse wheel handler for list A. Scrolls up to 3 rows based on wheel direction. Sends scroll message (7) to parent via virtual 0x94. |
| 0x009609B0 | 66 | UIGuildWnd__on_mouse_wheel_list_b | Mouse wheel handler for list B. Same pattern as list A wheel handler but uses different member offsets (0x5C, 0x5A, 0x52). |
| 0x00960A00 | 66 | UIGuildWnd__on_mouse_wheel_list_c | Mouse wheel handler for list C. Same pattern as list A wheel handler but uses member offsets (0x87, 0x86, 0x81). |
| 0x00960A50 | 66 | UIGuildWnd__on_mouse_wheel_skill | Mouse wheel handler for skill list. Same pattern using member offsets (0x51, 0x50, 0x35). |
| 0x00960AA0 | 66 | UIGuildWnd__on_mouse_wheel_grid | Mouse wheel handler for grid/item list. Same pattern using member offsets (0x45, 0x44, 0x40). |
| 0x00960AF0 | 174 | UIGuildWnd__update_scrollbar_list_a | Updates scrollbar for list A (member 0x128). Calculates page count from item count (DAT_016d44f0) and items per page. Sets scrollbar range and clamps current scroll position. |
| 0x00960BA0 | 210 | UIGuildWnd__update_scrollbar_grid | Updates scrollbar for the item grid (member 0x148). Calculates visible rows from row height (member 0x174), total pages from item count (0x17C) and columns (0x164). Clamps scroll position. |
| 0x00960C80 | 175 | UIGuildWnd__update_scrollbar_list_b | Updates scrollbar for list B (member 0x204). Same scrollbar update pattern using members 0x20C-0x224 for position/count/columns. |
| 0x00960D30 | 175 | UIGuildWnd__update_scrollbar_skill | Updates scrollbar for skill list (member 0xD4). Same pattern as other scrollbar updates using members 0x138-0x14C. |
| 0x00960DE0 | 174 | UIGuildWnd__update_scrollbar_list_c | Updates scrollbar for list C (member 0x100). Uses DAT_016d44f8 for total count. Same scrollbar update pattern using members 0x104-0x114. |
| 0x00960E90 | 255 | UIGuildWnd__layout_skill_widgets | Lays out skill widget positions. For each skill entry, positions 3 widgets (icon, name, buttons) at 0x22-pixel row spacing. Hides off-screen or empty skill entries by moving them out of view. |
| 0x009611B0 | 169 | UIGuildWnd__reload_emblem_files | Reloads guild emblem files. Clears the linked list of emblem entries at member 0xD8 (freeing strings and 0x20-byte nodes), then scans for emblem .bmp and .gif files using find_files_in_directory in the emblem directory path. |
| 0x00961260 | 114 | UIGuildWnd__on_dissolve_button | Handles guild dissolve button click (button IDs 0xBB/0xBC). On confirm (0xBB), sends dissolve request (0x13B) with guild ID. Calls CUIWindowMgr__unregister_window to close the window. |
| 0x00961540 | 178 | UIGuildWnd__on_create_dialog_result | Handles create guild dialog result. On OK (0xB8), sends guild create request (0x6F) with text from editable widget. On cancel (0xB9), just closes. Also handles message 0x22 to copy 3 dwords into member 0xBC. |
| 0x00961600 | 63 | UIGuildWnd__handle_scroll_and_button_event | Handles scroll and button events for list A page. Button 0xC9 closes window with sound 0x3B. Messages 7/9/10 handle scroll position changes (relative/page up/page down) for list A. Message 0x3C reloads and updates scrollbar. Falls through to UIGuildWnd__handle_common_event for unhandled events. |
| 0x00961710 | 357 | UIGuildWnd__on_info_page_button | Handles info page buttons. 0xB8 closes 3 sub-windows. 0x157 opens/closes guild tax window. 0x1C0 opens/closes guild emblem window and repositions it. Message 0x22 sets resize data and refreshes. |
| 0x00961880 | 140 | UIGuildWnd__on_agit_page_event | Main event handler for the agit (castle) page. Handles emblem file selection (0x27), alliance/enemy guild clicks (0x30), agit list display (0x31), page init (0x3C), tooltip positioning (0xA2), deselection (0xA3), and button clicks. |
| 0x00962310 | 110 | UIGuildWnd__on_notice_dialog_result | Handles notice dialog result. On OK (0xB8), sends guild notice text (0x6E) from editable widget and closes dialog. On cancel (0xB9), just closes. |
| 0x00962380 | 152 | UIGuildWnd__on_member_page_event | Main event handler for guild member page. Handles member list clicks (0x30/0x31), position assignment, right-click context menus, scroll events, member button initialization (0x6A), and save/cancel (0xB8/0xC9). Size: ~6KB (truncated decompile). |
| 0x00963BF0 | 536 | UIGuildWnd__on_notice_page_event | Event handler for guild notice editing page. Handles save/load of notice text, edit confirmation. Size: 536 bytes. |
| 0x00963E10 | 131 | UIGuildWnd__on_position_page_event | Event handler for guild position editing page. Handles save (0xB8) which copies position tree and sends update (0x68), position name/tax edit (0x113/0x114), scroll events, and permission toggle (0xD5). Validates tax rates 0-50. |
| 0x00964500 | 135 | UIGuildWnd__on_skill_page_event | Event handler for guild skill page. Handles skill use (0xB8), skill point allocation (0xEF-0xF5), skill level adjust (0xFD-0x10A), context menu (0x30), skill tree rebuild (0x17), scroll events, and skill request (0x3A). |
| 0x00964C60 | 39 | UIGuildWnd__on_close_tax_window | Simple handler for closing guild tax window. Only handles button 0xC9 (close) by calling tls_clear_field_4f1d4(0xD6) to destroy window type 0xD6. |
| 0x00964C90 | 52 | UIGuildWnd__on_expel_page_event | Event handler for guild expulsion page. Close button (0xC9), scroll events (7/9/10) updating scroll position and scrollbar for list C. |
| 0x00964D50 | 496 | UIGuildWnd__handle_common_event | Common event handler shared by guild sub-pages. Handles window resize (0x22), page refresh (0x3C), and tab switch (0x45). Tab switch closes current window and opens the target page (0x3C-0x42 for pages 0-6). Checks guild permissions before allowing access. |
| 0x00964F80 | 835 | UIGuildWnd__on_agit_detail_event | Handles agit (castle) detail events. Message 0x30 delegates to scroll handler. For param_4==0: checks job level (error if 1), otherwise retrieves agit name and cost via Lua (get_agit_name, get_agit_costzeny), creates an investment window. For param_4==1: sends agit invest request (0x13C) with town ID from scroll list selection. |
| 0x009652D0 | 385 | UIGuildWnd__format_member_name_text | Formats member name text for display in guild list. Handles text truncation and styling. |
| 0x00965460 | 79 | UIGuildWnd__show_tooltip_at_position | Shows tooltip widget at given position. Moves widget at member 0x41 to (x,y), enables it via virtual 0x38, copies selected index from member 0x40, and triggers repaint. |
| 0x009654B0 | 401 | UIGuildWnd__rebuild_position_list | Rebuilds the guild position/rank list. Toggles sort direction at member 0x188, calls UIListWnd__sort_by_column(1), clears NPC list, then iterates the linked list at member 0x178 to copy each position entry (with 3 string copies) and add to town info via CTownInfoMgr__add_npc_to_list. |
| 0x00965660 | 56 | UIGuildWnd__store_window_rect_to_ptr | Stores current window rectangle (x, y, width, height) to a pointer at member 0xB8. Copies from members 0x1C, 0x20, 0x14, 0x18. |
| 0x009656A0 | 75 | UIGuildWnd__save_window_state_to_member | Saves window state (position, size, and current tab via virtual 0xD4) to the struct pointed to by member 0x2D. |
| 0x00965E10 | 33 | UIGuildWnd__clear_member_changes_tree | Clears the member changes tracking tree. Recursively destroys all nodes in the tree at member 0x00, resets sentinel pointers to self, and sets count to 0. Called after saving or canceling guild member edits. |
| 0x00965E40 | 115 | UIGuildWnd__clear_position_changes_tree | Clears the position changes tracking tree. Iterates all non-sentinel nodes, recursively destroys subtrees, frees 0x20-byte nodes, resets sentinel pointers to self, and sets count to 0. Called after saving or canceling guild position edits. |
| 0x0096E650 | 254 | UIItemListWnd__ctor | Constructor for UIItemListWnd (vtable 0x011453b8). Inherits from UIWindowBase. Allocates a 0x100-byte linked list node at offset 0x3a. Initializes numerous fields: enabled=1 at 0x2d, and zeros at 0x2e-0x36 and 0x39. |
| 0x0096E7B0 | 124 | UIItemListWnd_vt59a0__ctor | Constructor for UIItemListWnd variant (vtable 0x011459a0). Inherits from UIItemListWnd via FUN_0096e650. Sets selected index at 0x3e to -1, mode flags at 0x2e=1, and additional fields at 0x3d and 0x3f. |
| 0x0096E830 | 124 | UIItemListWnd_vt5b50__ctor | Constructor for UIItemListWnd variant (vtable 0x01145b50). Inherits from UIItemListWnd. Sets selected=-1, mode=1, clears fields 0x3d and 0x3f. |
| 0x0096E8B0 | 114 | UIItemListWnd_vt5a78__ctor | Constructor for UIItemListWnd variant (vtable 0x01145a78). Inherits from UIItemListWnd. Sets selected=-1, mode=1, clears field 0x3d. |
| 0x0096E930 | 154 | UIItemListWnd_vt58c8__ctor | Constructor for UIItemListWnd variant (vtable 0x011458c8). Inherits from UIItemListWnd. Sets selected=-1 at 0x40, disabled at 0x2d, mode=1 at 0x2e, item height=0x1d at 0x41, clears several fields. |
| 0x0096E9D0 | 164 | UIItemListWnd_vt57f0__ctor | Constructor for UIItemListWnd variant (vtable 0x011457f0). Inherits from UIItemListWnd. Similar to vt58c8 but with additional field 0x43 cleared. |
| 0x0096EA80 | 236 | UIItemListWnd_vt5568__ctor | Constructor for UIItemListWnd variant (vtable 0x01145568). Inherits from UIItemListWnd. Initializes two inline SSO strings (capacity 0xf) at offsets 0x49 and 0x4f. Sets grid layout: 3 columns, enabled, row height 0x12. |
| 0x0096EB70 | 236 | UIItemListWnd_vt5490__ctor | Constructor for UIItemListWnd variant (vtable 0x01145490). Inherits from UIItemListWnd. Initializes two inline SSO strings at offsets 0x48 and 0x4e. Sets grid layout: 3 columns, enabled, row height 0x12. |
| 0x0096EC60 | 301 | UIItemListWnd_vt5640__ctor | Constructor for UIItemListWnd variant (vtable 0x01145640). Inherits from UIItemListWnd. Initializes an SSO string at offset 0x51. Sets both 0x2d and 0x2e to 1 (both enabled). Initializes 8 pairs of fields in a loop at offsets 0x40 and 0x48. Complex constructor with flag bytes at offset 0xf8. |
| 0x0096ED90 | 204 | UIItemListWnd_vt6060__ctor | Constructor for UIItemListWnd variant (vtable 0x01146060). Inherits from UIItemListWnd. Initializes many fields to zero at offsets 0x2f-0x30, 0x36, 0x39-0x43, 0x49-0x4b. |
| 0x0096EE60 | 172 | UIItemListWnd_vt5d00__ctor | Constructor for UIItemListWnd variant (vtable 0x01145d00). Inherits from UIItemListWnd. Takes param_2 stored at offset 0x40. Sets item height=0x15 at 0x47, mode=1, clears several fields. |
| 0x0096EFC0 | 155 | UIItemListWnd_vt5eb0__ctor | Constructor for UIItemListWnd variant (vtable 0x01145eb0). Inherits from UIItemListWnd. Takes param_2 at 0x42, sets mode=1, selected=-1 at 0x40, calls FUN_00dd8980. |
| 0x0096F060 | 175 | UIItemListWnd_vt5c28__ctor | Constructor for UIItemListWnd variant (vtable 0x01145c28). Inherits from UIItemListWnd. Takes param_2 at 0x43, mode=1, selected=-1 at 0x3f, item height=0x15 at 0x46. |
| 0x0096F110 | 104 | UIItemListWnd_vt6138__ctor | Constructor for UIItemListWnd variant (vtable 0x01146138). Inherits from UIItemListWnd. Simple constructor setting mode=1 and clearing 0x3c. |
| 0x0096F180 | 115 | UIItemListWnd_vt6210__ctor | Constructor for UIItemListWnd variant (vtable 0x01146210). Inherits from UIItemListWnd. Takes param_2 at 0x3d, mode=1, clears 0x3c. |
| 0x0096F670 | 71 | UIDialog_vt52cc__dtor | Destructor for UI dialog class (vtable 0x011452cc). Sets vtable then calls UIBaseDialog__destructor. |
| 0x0096F6C0 | 115 | UIItemListWnd__dtor | Destructor for UIItemListWnd (vtable 0x011453b8). Sets vtable, destroys the hash table at offset 0x3a via CHashTable__destroy_all_entries, frees the 0x100-byte hash table, then calls UIWindowBase__dtor. |
| 0x0096F790 | 128 | UIItemListWnd_vt59a0__dtor | Destructor for UIItemListWnd variant (vtable 0x011459a0). Sets parent vtable to UIItemListWnd, destroys hash table at 0x3a, calls UIWindowBase__dtor. |
| 0x0096F810 | 128 | UIItemListWnd_vt5b50__dtor | Destructor for UIItemListWnd variant (vtable 0x01145b50). Same pattern as vt59a0 dtor. |
| 0x0096F890 | 128 | UIItemListWnd_vt5a78__dtor | Destructor for UIItemListWnd variant (vtable 0x01145a78). Same pattern as other item list dtors. |
| 0x0096F910 | 128 | UIItemListWnd_vt58c8__dtor | Destructor for UIItemListWnd variant (vtable 0x011458c8). Same pattern as other item list dtors. |
| 0x0096F990 | 128 | UIItemListWnd_vt57f0__dtor | Destructor for UIItemListWnd variant (vtable 0x011457f0). Same pattern as other item list dtors. |
| 0x0096FA10 | 161 | UIItemListWnd_vt5568__dtor | Destructor for UIItemListWnd variant (vtable 0x01145568). Destroys 2 SSO strings, then sets parent vtable to UIItemListWnd, destroys hash table at 0x3a, calls UIWindowBase__dtor. |
| 0x00970640 | 185 | UIItemListWnd_vt5568__scalar_deleting_dtor | Scalar deleting destructor for UIItemListWnd variant (vtable 0x01145568, size 0x164). Destroys 2 SSO strings, then base class hash table at 0xE8, frees 0x100 buffer, calls UIWindowBase::dtor, frees object if flag bit 0 set. |
| 0x009A7D30 | 84 | UIItemListWndEx__ctor | Constructor for UIItemListWndEx. Calls UIItemListWnd_vt59a0__ctor then sets vtable to PTR_01147dec. |
| 0x009A7D90 | 84 | UIItemListWndEx__ctor_009a7d90 | Constructor for a UIItemListWnd subclass. Calls UIItemListWnd_vt57f0__ctor then sets vtable to PTR_FUN_01147d14. |
| 0x009A7DF0 | 154 | UIItemListWndEx2__ctor_009a7df0 | Constructor for a UIItemListWnd subclass. Calls UIItemListWnd__ctor, sets vtable to PTR_FUN_01147ec4, initializes extra fields (filter type=0x1d, various flags). |
| 0x009A7E90 | 71 | UIItemListWndEx__dtor_009a7e90 | Destructor for UIItemListWnd subclass (vtable PTR_FUN_01147dec). Sets vtable then calls UIItemListWnd_vt59a0__dtor. |
| 0x009A7EE0 | 71 | UIItemListWndEx__dtor_009a7ee0 | Destructor for UIItemListWnd subclass (vtable PTR_FUN_01147d14). Sets vtable then calls UIItemListWnd_vt57f0__dtor. |
| 0x009A7F30 | 94 | UIItemListWndEx2__dtor_009a7f30 | Destructor for UIItemListWnd subclass (vtable PTR_FUN_01147ec4). Calls FUN_00dd8540 then UIItemListWnd__dtor. |
| 0x009A7F90 | 99 | UIItemListWndEx__scalar_deleting_dtor_009a7f90 | Scalar deleting destructor for UIItemListWnd subclass (vtable PTR_FUN_01147dec). Calls UIItemListWnd_vt59a0__dtor, conditionally frees memory (size 0x104). |
| 0x009A8000 | 99 | UIItemListWndEx__scalar_deleting_dtor_009a8000 | Scalar deleting destructor for UIItemListWnd subclass (vtable PTR_FUN_01147d14). Calls UIItemListWnd_vt57f0__dtor, conditionally frees memory (size 0x110). |
| 0x009A8070 | 118 | UIItemListWndEx2__scalar_deleting_dtor_009a8070 | Scalar deleting destructor for UIItemListWnd subclass (vtable PTR_FUN_01147ec4). Calls FUN_00dd8540 then UIItemListWnd__dtor, conditionally frees memory (size 0x104). |
| 0x009BD7D0 | 444 | UIDialogC__ctor | Constructor for UIDialogC. Calls CEffect__ctor, sets vtable to UIDialogC, initializes linked list node at offset 0x24 (0x2c bytes), STL string at 0x26, fields 0x20-0x34 to zero, second linked list at 0x35 (0x40 bytes), selection index 0x37=-1, flags at 0x38. |
| 0x009BD990 | 444 | UIDialogD__ctor | Constructor for UIDialogD. Same structure as UIDialogC but with UIDialogD vtable. Second linked list node is 0x2c bytes instead of 0x40. |
| 0x009BDB50 | 444 | UIDialogE__ctor | Constructor for UIDialogE. Same structure as UIDialogC/D but with UIDialogE vtable. Second linked list node is 0x5c bytes. |
| 0x009BDD10 | 444 | UIDialogF__ctor | Constructor for UIDialogF. Same structure as UIDialogC/D/E but with UIDialogF vtable. Second linked list node is 0x38 bytes. |
| 0x009BE5A0 | 60 | UIDialog__release_texture_if_set | Releases a texture resource if one is set. Checks if field[0] is non-null, and if so calls FUN_00af0be0 to release/free it. Used by dialog destructors for cleanup. |
| 0x009BE5F0 | 340 | UIDialogA__dtor | Destructor for UIDialogA. Sets vtable, destroys child widget at 0x3f, walks and frees linked list at 0x31, destroys STL string, recursively destroys map nodes at 0x24, releases textures at 0x20-0x23, then calls CEffect__dtor. |
| 0x009BE750 | 340 | UIDialogB__dtor | Destructor for UIDialogB. Same pattern as UIDialogA__dtor but sets UIDialogB vtable. Destroys child widget, linked list, STL string, map nodes, textures, then CEffect__dtor. |
| 0x009BE8B0 | 348 | UIDialogC__dtor | Destructor for UIDialogC. Sets UIDialogC vtable, destroys two child widgets at 0x4d and 0x43, calls FUN_009bf7e0 and FUN_009bfb70 for additional cleanup, then destroys string, map, textures, and calls CEffect__dtor. |
| 0x009BEA10 | 348 | UIDialogD__dtor | Destructor for UIDialogD. Same pattern as UIDialogC__dtor but with UIDialogD vtable. Calls FUN_009bf890 and FUN_009bfc00 for type-specific cleanup. |
| 0x009BEB70 | 348 | UIDialogE__dtor | Destructor for UIDialogE. Sets UIDialogE vtable, destroys child widgets, calls FUN_009bf930 and STL_vector_int_deallocate for type-specific cleanup, then standard dialog teardown. |
| 0x009BECD0 | 348 | UIDialogF__dtor | Destructor for UIDialogF. Sets UIDialogF vtable, destroys child widgets, calls FUN_009bf740 and STL_vector_int_deallocate for type-specific cleanup, then standard dialog teardown. |
| 0x009BEED0 | 33 | UIDialog__release_child_widget_at_9_009beed0 | Releases the child widget at field[9] if non-null. Calls vtable+0x10 to notify detachment, then nulls the field. |
| 0x009BEF00 | 33 | UIDialog__release_child_widget_at_9 | Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to move/detach the widget, then nulls the pointer. Used by various dialog types for cleanup. |
| 0x009BEF30 | 33 | UIDialog__release_child_widget_at_9_009bef30 | Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9. |
| 0x009BEF60 | 33 | UIDialog__release_child_widget_at_9_009bef60 | Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9. |
| 0x009BEF90 | 33 | UIDialog__release_child_widget_at_9_009bef90 | Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9. |
| 0x009BEFC0 | 33 | UIDialog__release_child_widget_at_9_009befc0 | Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9. |
| 0x009BEFF0 | 33 | UIDialog__release_child_widget_at_9_009beff0 | Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9. |
| 0x009BF020 | 33 | UIDialog__release_child_widget_at_9_009bf020 | Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9. |
| 0x009BF050 | 33 | UIDialog__release_child_widget_at_9_009bf050 | Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9. |
| 0x009BF1C0 | 147 | UIDialog__destroy_linked_list_node | Destroys a linked list node used by dialog system. If field[1] (the node pointer) is non-null, releases child widget at node+0x3c via virtual call, then frees the 0x40-byte node allocation. |
| 0x009BF260 | 78 | UIDialog__free_node_2c | Frees a 0x2c-byte linked list node if field[1] is non-null. Simple deallocation with SEH frame. |
| 0x009BF2B0 | 78 | UIDialog__free_node_40 | Frees a 0x40-byte linked list node if field[1] is non-null. Simple deallocation with SEH frame. |
| 0x009BF300 | 92 | UIDialog__release_child_widget_seh | Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Same as UIDialog__release_child_widget_at_9 but with structured exception handling wrapper. |
| 0x009BF360 | 92 | UIDialog__release_child_widget_seh_009bf360 | Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh. |
| 0x009BF3C0 | 92 | UIDialog__release_child_widget_seh_009bf3c0 | Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh. |
| 0x009BF420 | 92 | UIDialog__release_child_widget_seh_009bf420 | Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh. |
| 0x009BF480 | 92 | UIDialog__release_child_widget_seh_009bf480 | Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh. |
| 0x009BF4E0 | 92 | UIDialog__release_child_widget_seh_009bf4e0 | Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh. |
| 0x009BF540 | 92 | UIDialog__release_child_widget_seh_009bf540 | Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh. |
| 0x009BF5A0 | 92 | UIDialog__release_child_widget_seh_009bf5a0 | Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh. |
| 0x009BF600 | 92 | UIDialog__release_child_widget_seh_009bf600 | Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh. |
| 0x009BF660 | 103 | UIDialog__destroy_linked_list_0c | Walks and frees a singly-linked list of 0xc-byte nodes. Nulls the tail pointer first, then iterates through the list freeing each node, finally frees the head sentinel. |
| 0x009BF6D0 | 103 | UIDialog__destroy_linked_list_0c_009bf6d0 | Walks and frees a singly-linked list of 0xc-byte nodes. Duplicate instance of UIDialog__destroy_linked_list_0c. |
| 0x009BF740 | 151 | UIDialogF__destroy_item_list_38 | Destroys UIDialogF item list. Walks linked list of 0x38-byte nodes, each containing two STL strings. Destroys both strings per node then frees the node. |
| 0x009BF7E0 | 165 | UIDialogC__destroy_item_list_40 | Destroys UIDialogC item list. Walks linked list of 0x40-byte nodes, each containing formatted data. Calls CFmt__func_0058c230 and STL_string_dtor per node, then frees the 0x40-byte allocation. |
| 0x009BF890 | 151 | UIDialogD__destroy_item_list_2c | Destroys UIDialogD item list. Same pattern as UIDialogC but nodes are 0x2c bytes. |
| 0x009BF930 | 177 | UIDialogE__destroy_item_list_5c | Destroys UIDialogE item list. Walks linked list of 0x5c-byte nodes, each containing formatted data and two STL strings. Calls CFmt__func_0058c230 and two STL_string_dtors per node. |
| 0x009BFB00 | 105 | UIDialog__release_child_widget_at_2c | Releases child widget at byte offset 0x2c (field at param+0x2c) if non-null. Uses virtual call at vtable+0x10 to detach, then nulls the pointer. |
| 0x009BFDB0 | 200 | UIDialog__dtor_009bfdb0 | UI dialog destructor: sets vtable to PTR_FUN_011489f0, releases two COM-style interface pointers (offsets 0x3b and 0x31) via virtual Release, destroys string member, then calls base class destructor chain (FUN_00a79e90). |
| 0x009C0770 | 38 | UIDialogA__scalar_deleting_dtor_009c0770 | Scalar deleting destructor: calls dtor FUN_009be5f0, then frees 0x100-byte object if bit 0 of flags param is set. |
| 0x009C07A0 | 38 | UIDialogB__scalar_deleting_dtor_009c07a0 | Scalar deleting destructor: calls dtor FUN_009be750, then frees 0x100-byte object if bit 0 of flags param is set. |
| 0x009C07D0 | 38 | UIDialogC__scalar_deleting_dtor_009c07d0 | Scalar deleting destructor: calls dtor FUN_009be8b0, then frees 0x138-byte object if bit 0 of flags param is set. |
| 0x009C0800 | 38 | UIDialogD__scalar_deleting_dtor_009c0800 | Scalar deleting destructor: calls dtor FUN_009bea10, then frees 0x138-byte object if bit 0 of flags param is set. |
| 0x009C0830 | 38 | UIDialogE__scalar_deleting_dtor_009c0830 | Scalar deleting destructor: calls dtor FUN_009beb70, then frees 0x138-byte object if bit 0 of flags param is set. |
| 0x009C0860 | 38 | UIDialogF__scalar_deleting_dtor_009c0860 | Scalar deleting destructor: calls dtor FUN_009becd0, then frees 0x138-byte object if bit 0 of flags param is set. |
| 0x009C0890 | 38 | UIDialog__scalar_deleting_dtor_009c0890 | Scalar deleting destructor: calls UIDialog__dtor_009bfdb0, then frees 0xf0-byte object if bit 0 of flags param is set. |
| 0x009C1550 | 4637 | UIDialogA__init_encrypted_resources_009c1550 | Large initialization function for a UI dialog. Allocates 0x100-byte object with UIDialogA constructor, decrypts multiple XOR-encrypted string resources (using xor_decrypt_buffer with various keys), populates a map<int,string> with decrypted names (keys 0,1,2), loads sprite/texture resources via FUN_009f28f0, FUN_009f2e40, FUN_009f2be0. Stores result at param_1+0xec. |
| 0x009C5BB0 | 5013 | UIDialogF__init_child_widgets | Initializes UIDialogF child widgets. Creates UIStringDialog, UIScrollbar, UIListBox, UICallback objects. Configures scrollbar, rebuilds list items, and decrypts XOR-encrypted strings from TLS. ~5K bytes. |
| 0x009C6F50 | 7588 | UIDialogC__init_child_widgets | Initializes UIDialogC child widgets. Creates UIButton, UIListDialog, UIScrollbar, UIListBox, UICallback objects. Configures buttons, rebuilds list, swaps callbacks, decrypts XOR strings. ~7.5K bytes. |
| 0x009CDD40 | 7588 | UIDialogE__init_child_widgets | Initializes UIDialogE child widgets. 7.5K bytes. Creates scrollbars, buttons, list boxes, callbacks. Configures component layout from stream. No callers (registered as callback/vtable). |
| 0x009EC430 | 1046 | UIDialog__ctor | UIDialog constructor. Calls CEffect::ctor, sets UIBase then UIDialog vtable. Initializes strings (4 SSO strings at offsets 0x22-0x5E), tree map for state tracking (sentinel at offset 0x55), color fields (default white/gray), font size 0xC. Inserts keys 0,1,2 into state map. |
| 0x009ED360 | 116 | UIDialog__set_state_colors | Sets 3 state colors in the dialog's state map (keys 0,1,2 for normal/pressed/hover) and sets background color at offset 0x57. Calls virtual refresh. |
| 0x009ED790 | 24 | UIDialog__set_id_and_refresh | Sets the dialog ID at offset 0x20 and calls virtual refresh (vtable+0x98). |
| 0x009ED800 | 24 | UIDialog__set_state_and_refresh | Sets dialog state value at offset 0x21 and calls virtual refresh (vtable+0x98). |
| 0x009ED820 | 24 | UIDialog__set_flags_and_refresh | Sets dialog flags at offset 0x22 and calls virtual refresh (vtable+0x98). |
| 0x009ED880 | 54 | UIDialog__set_padding_and_resize | Sets 4 padding values (left, top, right, bottom) at offsets 0x23-0x26 and triggers virtual resize with current width/height. |
| 0x009FD340 | 2286 | EnchantUI__setup_socket_button_panel_009fd340 | Sets up an enchant UI socket button panel. Calls FUN_009ff700 for base init, positions child at 0x3b,1. Creates 4 button BMP strings (EnchantUI_btn_socket_out.bmp, _over.bmp, _select.bmp) and calls FUN_009efb00 to create the button. Configures a text label: font size 12, bold, color 0x965532, magenta outline (0xffff00ff), size 39x13, with hardcoded string references. |
| 0x009FDC30 | 2286 | EnchantUI__setup_socket_button_panel_009fdc30 | Sets up an enchant UI socket button panel (variant). Nearly identical to 009fd340 - calls FUN_009ff700, positions child, creates socket button BMPs (EnchantUI_btn_socket_out/over/select.bmp), configures text label with font 12, bold, color 0x965532, magenta outline. Different vtable pointer (PTR_FUN_0114e298). |
| 0x009FE520 | 2286 | EnchantUI__setup_socket_button_panel_009fe520 | Sets up an enchant UI socket button panel (variant 3). Calls FUN_009ff700 for base init, positions child at 3,1. Creates socket button BMPs, configures text label with font 12, bold, color 0x965532, magenta outline. Uses PTR_FUN_0114e2b4 vtable. |
| 0x009FEE10 | 2286 | EnchantUI__setup_socket_button_panel_009fee10 | Sets up an enchant UI socket button panel (variant 4). Calls FUN_009ff700 for base init, positions child at 3,1. Creates socket button BMPs, configures text label with font 12, bold, color 0x965532, magenta outline. Uses PTR_FUN_0114e2d0 vtable. |
| 0x009FF700 | 4474 | EnchantUI__init_base_panel_009ff700 | Base initialization for EnchantUI panels. Allocates a 0x178-byte window via FUN_009bdf40, sets vtable, sets size 44x44. Creates a text edit box (0x1d8 at offset 0x84) with 100 char limit. Creates a label (0xe0 at offset 0x88) sized 39x96 with font 12 bold 0x965532 magenta outline. Decrypts 4 XOR-encrypted BMP strings for button creation via FUN_009efb00. Also decrypts strings for tooltip display via FUN_009ea900/FUN_009ea940/FUN_009ea960. |
| 0x00A00D50 | 3443 | EnchantUI__init_complex_panel_00a00d50 | Complex EnchantUI panel initialization (3443 bytes). Creates and configures multiple child UI elements. |
| 0x00A04860 | 148 | EnchantUI__init_manager_singleton_00a04860 | Initializes EnchantUI manager. Sets vtable, creates singleton Ench tree (0x38 bytes via Ench__tree_0067ff60) if not already created, registers with Ench manager via Ench__mgr_00682960, then calls CUIWindow base destructor to save position. |
| 0x00A04D70 | 226 | EnchantUI__on_socket_selected_00a04d70 | Handles socket selection in EnchantUI. Gets selected item index from list at offset 0x98, traverses linked list to get data, ensures Ench tree singleton exists, gets pointer offset, calls Ench__mgr_00683c20 with item params and equipment slot info. |
| 0x00A04E60 | 162 | EnchantUI__request_enchant_00a04e60 | Requests enchant operation. Ensures Ench tree singleton, gets equipment pointer and slot info, calls Ench__mgr_00683d10 to send enchant request. |
| 0x00A04F10 | 152 | EnchantUI__request_reset_00a04f10 | Requests enchant reset. Ensures Ench tree singleton, gets equipment pointer and slot info, calls Ench__mgr_00683e00 to send reset request. |
| 0x00A04FB0 | 295 | EnchantUI__confirm_or_select_action_00a04fb0 | Handles enchant confirm/select. If flag 0xb8 is set, calls Ench__mgr_00683ff0. Otherwise gets selected item from list, calls Ench__mgr_006863f0, then Ench__mgr_00683ef0 with the selected socket data. |
| 0x00A050E0 | 162 | EnchantUI__request_perfect_upgrade_enchant | Sends a perfect upgrade enchant request to the server. Ensures CEnchantMgr singleton exists, gets equipment pointer and slot info via CUIItemSlot__this_adjust_0x90, then calls CEnchantMgr__send_perfect_upgrade_enchant_packet with account/character IDs, equipment slot, and enchant slot. Previously misnamed as request_close. |
| 0x00A05290 | 218 | EnchantUI__find_available_slot_00a05290 | Finds first available enchant slot. Gets equipment info from offset 0xa4, copies CShopItem data, iterates slot indices checking which are empty (value 0 in aiStack_f0 array). Returns first empty slot index, or -1 if all slots are filled. |
| 0x00A053E0 | 114 | EnchantUI__find_enchant_data_by_id_00a053e0 | Searches an RB-tree (at offset 0xa4+0x60) for enchant data by ID (param_3). Performs standard RB-tree upper_bound search. Returns pointer to data (node+6) if found with matching or lower key, sets valid flag. Returns invalid if equipment data is null or key not found. |
| 0x00A05470 | 455 | EnchantUI__on_enchant_slot_select | Handles enchant slot selection. Hides all child windows, resets text to '0', finds enchant data by ID, reads slot index from string field, looks up and navigates to the enchant list window. |
| 0x00A05640 | 543 | EnchantUI__on_enchant_slot_select_extended | Extended enchant slot selection handler. Similar to on_enchant_slot_select but handles two-level navigation: first finds slot data, then reads sub-index to navigate deeper into enchant hierarchy. |
| 0x00A05860 | 259 | EnchantUI__populate_item_slot | Populates an item slot in the enchant UI. Clears existing data, loads item info (class/level), populates slot from item data, builds tooltip string, assigns to text label, and calls virtual enable/disable (vtable+0xE0). |
| 0x00A05970 | 538 | EnchantUI__update_enchant_buttons | Updates enchant UI button states for both enchant containers (offsets 0x3A, 0x3B) and the confirm button (0x3C). For each container's two slots (0x80, 0x84), calls button event handler and optionally resizes based on enchant data. |
| 0x00A05B90 | 329 | EnchantUI__update_item_slot_display | Updates item slot display with enchant count. Populates slot from item data, formats count string if positive, shows/hides count label, builds tooltip, assigns text. |
| 0x00A05CF0 | 253 | EnchantUI__create_item_slot_grid | Creates an 8-item slot grid (4 columns x 2 rows). Each slot is factory-created as a UI window, positioned at column*0x4A, row*0x34. Slots are added to a linked list at offset 0x90. Calls button handler after creation. |
| 0x00A05E20 | 81 | EnchantUI__enable_both_child_views | Enables both child listbox views at offsets 0x80 and 0x84. Finds items via UIListBox__find_item_by_data, sets enabled flag (0x21) to 1, and refreshes display via vtable 0x98. |
| 0x00A05E80 | 132 | EnchantUI__refresh_all_button_states_00a05e80 | Calls FUN_00a05cf0 for cleanup, then traverses the RB-tree at offset 0x88 (in-order), setting each node's child window (node[5]+0x80) enabled flag to 1 and refreshing via vtable 0x98. |
| 0x00A05F10 | 153 | EnchantUI__refresh_buttons_and_list_00a05f10 | Same as 00a05e80 but also sets list at offset 0x98 field 0x31 to 1 and calls its vtable 0x98 to refresh. |
| 0x00A05FB0 | 153 | EnchantUI__refresh_buttons_and_list_00a05fb0 | Same as 00a05f10 - refreshes all button states via RB-tree traversal, then refreshes list control. |
| 0x00A06050 | 50 | EnchantUI__disable_scroll_and_select_tab | Disables child 0x84 (clears flag 0x7c), hides scrollbar, then calls vtable 0xb4(0) on child 0x80 to select tab index 0. |
| 0x00A06090 | 50 | EnchantUI__disable_scroll_and_select_tab_00a06090 | Disables child 0x84, hides scrollbar, calls vtable 0xb4(1) on child 0x80 to select tab index 1. |
| 0x00A060D0 | 50 | EnchantUI__disable_scroll_and_select_tab_00a060d0 | Disables child 0x84, hides scrollbar, calls vtable 0xb4(2) on child 0x80 to select tab index 2. |
| 0x00A06110 | 50 | EnchantUI__disable_scroll_and_select_tab_00a06110 | Disables child 0x84, hides scrollbar, calls vtable 0xb4(3) on child 0x80 to select tab index 3. |
| 0x00A06170 | 30 | EnchantUI__cleanup_and_refresh_list_00a06170 | Calls FUN_00a05cf0 for cleanup, then sets list (offset 0x98) field 0x31 to 1 and calls vtable 0x98 to refresh. |
| 0x00A06190 | 45 | EnchantUI__on_mouse_move | Mouse move handler for EnchantUI. Performs hit test, and if cursor is over the control, calls prepare_render_context to update display. |
| 0x00A061C0 | 33 | EnchantUI__delegate_to_child_vtable70 | Delegates a virtual call (vtable+0x70) to the child control at offset 0xe8. Used for forwarding UI events in EnchantUI. |
| 0x00A061F0 | 33 | EnchantUI__delegate_to_child_vtable70_00a061f0 | Delegates a virtual call (vtable+0x70) to the child control at offset 0xe8. Duplicate of 00a061c0 for a different context. |
| 0x00A06220 | 36 | EnchantUI__delegate_to_child_vtable80 | Delegates a virtual call (vtable+0x80) to the child control at offset 0xe8. |
| 0x00A06250 | 60 | EnchantUI__delegate_mouse_to_child | Performs hit test, then delegates mouse event to child window at offset 0x84 with coordinates adjusted relative to the child's position. |
| 0x00A06290 | 36 | EnchantUI__delegate_to_child_vtable80_00a06290 | Delegates a virtual call (vtable+0x80) to the child control at offset 0xe8. Duplicate of 00a06220. |
| 0x00A062C0 | 52 | EnchantUI__dynamic_dispatch_to_child | Uses RTDynamicCast to get a typed child control from offset 0x10, then calls vtable+0xe8 on it with data from param_2+0x2c. |
| 0x00A06300 | 74 | EnchantUI__sync_scrollbar_state | Synchronizes scrollbar state: sets max value (item_count * row_height + header), visible range, current scroll position, and marks the list as needing redraw. |
| 0x00A06350 | 462 | EnchantUI__on_item_deselected | Handles item deselection in EnchantUI. Clears list data, disables all linked list items (vtable 0x38 with 0), resets count to "0", refreshes child 0x28, then toggles a listbox item's enabled state based on vtable 0xe0 result. |
| 0x00A06520 | 384 | EnchantUI__on_item_deselected_variant | Variant of item deselection handler. Disables linked list items, resets count label to "0", refreshes child 0x28, clears list data, then calls vtable 0xe0. |
| 0x00A066A0 | 73 | EnchantUI__handle_item_drop | Handles item drop/selection in EnchantUI. Calls button event handler to reset state, then if param_4 != 0, validates via populate_slot_items and stores coordinates (x, y, item) before calling vtable 0xe4. |
| 0x00A066F0 | 163 | EnchantUI__handle_dual_panel_item_drop | Handles item drop on both panels (children 0x80 and 0x84). For each panel, resets via button event handler, validates via populate_slot_items, and stores drop coordinates before calling vtable 0xe4. |
| 0x00A067A0 | 39 | EnchantUI__forward_event_to_children | Forwards an event (param_2) to both child controls at offsets 0x80 and 0x84 via vtable 0xec. |
| 0x00A067D0 | 47 | EnchantUI__toggle_listbox_item_enabled | Finds a listbox item by data and toggles its enabled state (XOR with 1), then refreshes the item display via vtable 0x98. |
| 0x00A06800 | 482 | EnchantUI__reset_all_slots_and_list | Resets all enchant UI state. Disables all slot items in the RB-tree (vtable 0x38 with 0), clears linked list items, resets the item list, zeros the count label, refreshes child 0x28, and notifies parent with -1 via vtable 0xec. |
| 0x00A069F0 | 86 | EnchantUI__set_tab_selected_style | Sets the visual style for a selected/deselected tab. Stores selection state at offset 0x48, sets font size (selected=0x644031, deselected=0xb6752e), toggles bold, and rebuilds text layout. |
| 0x00A06A50 | 165 | EnchantUI__adjust_child_positions | Adjusts child control positions by +/-1 pixel based on param_2 (expand/collapse toggle). Moves three children at offsets 0xe8, 0xec, 0xf0. Checks field 0x88 to avoid double-adjusting. Calls set_orientation at end. |
| 0x00A06B00 | 221 | EnchantUI__select_tab_by_id | Selects a tab by ID. Iterates the RB-tree at offset 0x22, comparing each node's key to param_2. Matching tab gets bold font + larger size, others get normal. Calls vtable 0xe4 after selection change. |
| 0x00A06BE0 | 63 | EnchantUI__set_enabled_with_color | Sets enabled/disabled state on child at 0xe8 (flag 0x86) and changes text label color: enabled=0xaaaaaa (gray), disabled=0xc89682 (muted red). |
| 0x00A06C20 | 30 | EnchantUI__set_child_enabled | Sets the enabled flag (offset 0x21) on child control at 0x80, then refreshes via vtable 0x98. |
| 0x00A06C40 | 827 | EnchantUI__load_enchant_data_and_populate_items | Loads enchant data by uint64 key via CEnchantMgr. For each eligible item, checks equip status, base level, refine level, and enchant flag. Adds qualifying items to the enchant item list and syncs the scrollbar. |
| 0x00A06F80 | 380 | EnchantUI__populate_available_enchants | Finds available enchant slot, loads enchant data, iterates enchant options. For each option, checks expiration time and material costs (quantity owned vs required). Adds to list with availability flag. Syncs scrollbar after populating. |
| 0x00A07100 | 472 | EnchantUI__populate_enchant_options | Populates enchant option details for a specific slot. Finds the enchant slot by item level in an RB-tree, builds linked list of option IDs, adds each as an item pair to the list control, syncs scrollbar, and updates the main window. |
| 0x00A072E0 | 345 | EnchantUI__validate_enchant_requirements | Validates enchant requirements for the selected item. Updates main window display, then checks if the item has all required enchant slots filled (up to 4). Returns true if all requirements met, false if any slot is empty. |
| 0x00A07440 | 412 | EnchantUI__populate_enchant_list_by_grade | Populates enchant list filtered by grade. Looks up enchant data by selected ID, finds matching grade entry, iterates enchant options checking expiration and material costs. Adds items with availability flags. Syncs scrollbar on success. |
| 0x00A075E0 | 510 | EnchantUI__populate_enchant_options_by_slot | Populates enchant options filtered by slot index. Looks up enchant data, finds slot by atoi of item string, searches RB-tree for matching entry. Builds option list, adds items, syncs scrollbar, and updates main window with selected info. |
| 0x00A077E0 | 226 | EnchantUI__display_item_info | Displays item info in the EnchantUI. Creates CItemDesc from item ID, populates slot data, builds tooltip string, and sets it on a text label. |
| 0x00A078D0 | 271 | EnchantUI__display_item_detail_panel | Displays item detail on a text panel in EnchantUI. Creates CItemDesc, populates slot data, copies item name string, clears panel, then appends tooltip text. |
| 0x00A079E0 | 448 | EnchantUI__populate_slot_items | Populates the enchant slot grid items. For each slot in the RB-tree (up to 4), loads item data, builds name/tooltip, and sets visibility. Returns true if any slots were populated, false if param_2 has no data. |
| 0x00A07BA0 | 519 | EnchantUI__display_material_requirement | Displays a material requirement row. Shows item icon, owned quantity vs required count. Colors text red (0x5a3ce6) if insufficient, white (0xf0f0f0) if sufficient. Enables/disables the row's child control accordingly. |
| 0x00A07DB0 | 328 | EnchantUI__update_selected_item_info | Updates the selected item's info display. Populates item data, shows base level requirement if > 0, enables/disables confirm button, and sets tooltip text on a label. |
| 0x00A07F00 | 528 | EnchantUI__update_material_list | Updates the material requirements list for the selected enchant. Iterates slot list, shows/hides each row, calls display_material_requirement for visible ones. Sets cost text, checks expiration and material availability to enable/disable confirm button. |
| 0x00A08110 | 118 | EnchantUI__is_enchant_mgr_idle | Gets or creates the CEnchantMgr singleton, then returns true if field 0x30 is zero (manager is idle/not busy). Not a destructor despite original name. |
| 0x00A19C60 | 199 | UIDialog__ctor_00a19c60 | Constructor for UIDialog. Inherits from UIBase (vtable 0x011489F0). Initializes dialog-specific fields: flags, STL string, two object pointers at +0x31*4 and +0x3B*4. |
| 0x00A19DC0 | 250 | UIDialog__dtor_00a19dc0 | Destructor for UIDialog variant (vtable 0x01150200). Cleans up child widget at +0x8C, destroys two owned objects at +0xEC and +0xC4 via virtual delete, then calls UIBase dtor. |
| 0x00A19EC0 | 250 | UIDialog__dtor_00a19ec0 | Destructor for UIDialog variant (vtable 0x011502DC). Same cleanup pattern: destroys child widget at +0x8C, two owned objects at +0xEC and +0xC4 via virtual delete, then calls UIBase dtor. |
| 0x00A19FC0 | 250 | UIDialog__dtor_00a19fc0 | Destructor for UIDialog variant (vtable 0x01150124). Same pattern: cleans up child widget +0x8C, destroys owned objects at +0xEC and +0xC4, calls UIBase dtor. |
| 0x00A1A0C0 | 250 | UIDialog__dtor_00a1a0c0 | Destructor for UIDialog variant (vtable 0x01150048). Same pattern: cleans up child widget +0x8C, destroys owned objects at +0xEC and +0xC4, calls UIBase dtor. |
| 0x00A1B240 | 274 | UIDialog__scalar_deleting_dtor_00a1b240 | Scalar deleting destructor for UIDialog (vtable 0x01150200). Runs dtor then conditionally frees 0xF0-byte object if bit 0 of param_2 is set. |
| 0x00A1B360 | 274 | UIDialog__scalar_deleting_dtor_00a1b360 | Scalar deleting destructor for UIDialog (vtable 0x011502DC). Runs dtor then conditionally frees 0xF0-byte object. |
| 0x00A1B480 | 274 | UIDialog__scalar_deleting_dtor_00a1b480 | Scalar deleting destructor for UIDialog (vtable 0x01150124). Runs dtor then conditionally frees 0xF0-byte object. |
| 0x00A1B5A0 | 274 | UIDialog__scalar_deleting_dtor_00a1b5a0 | Scalar deleting destructor for UIDialog (vtable 0x01150048). Runs dtor then conditionally frees 0xF0-byte object. |
| 0x00A1B820 | 353 | UIOptionWindow__create_subwindow_00a1b820 | Factory function that creates a UIComponent subwindow (0xF0 bytes). Sets up position/size from parent, creates child stream handlers for option slots, and adds it to the parent hierarchy. |
| 0x00A1B990 | 353 | UIOptionWindow__create_subwindow_00a1b990 | Factory function that creates a UIComponent subwindow variant (0xF0 bytes). Sets up position/size from parent, creates child stream handlers for option slots. |
| 0x00A1BB00 | 353 | UIOptionWindow__create_subwindow_00a1bb00 | Factory function that creates a UIComponent subwindow variant (0xF0 bytes). Sets up position/size from parent, creates child stream handlers for option slots. |
| 0x00A1BC70 | 353 | UIOptionWindow__create_subwindow_00a1bc70 | Factory function that creates a UIComponent subwindow variant (0xF0 bytes). Sets up position/size from parent, creates child stream handlers for option slots. |
| 0x00A1BDE0 | 353 | UIOptionWindow__create_subwindow_00a1bde0 | Factory function that creates a UIComponent subwindow variant (0xF0 bytes). Sets up position/size from parent, creates child stream handlers for option slots. |
| 0x00A1C1B0 | 2782 | UIOptionWindow__init_controls_00a1c1b0 | Initializes the option window controls. Stores width/height/param4, creates UIComponent + UIDialog + CListCtrl sub-widgets. Uses XOR-encrypted strings for control names (decrypted at runtime). Sets up scrollbar, item list, and multiple text labels via encrypted resource strings. |
| 0x00A1CC90 | 2782 | UIOptionWindow__init_controls_00a1cc90 | Initializes option window controls variant. Same pattern as 00a1c1b0 with XOR-encrypted strings and sub-widget creation. |
| 0x00A1D770 | 2782 | UIOptionWindow__init_controls_00a1d770 | Initializes option window controls variant. Same pattern as 00a1c1b0 with XOR-encrypted strings and sub-widget creation. |
| 0x00A1E250 | 2782 | UIOptionWindow__init_controls_00a1e250 | Initializes option window controls variant. Same pattern as 00a1c1b0 with XOR-encrypted strings and sub-widget creation. |
| 0x00A1EE20 | 92 | UIOptionWindow__init_window_layout_00a1ee20 | Initializes the option window layout. Sets flags, calls virtual methods to set size (400x350), position (0,0), activate/show, applies skin colors (0,0,3,1), and sets render mode to 3. |
| 0x00A1EE80 | 189 | UIOptionWindow__create_tab_page_00a1ee80 | Creates a tab page (0x84 bytes) for the option window. Sets its size (400x288), adds to parent hierarchy, then pushes it to the vector at this+0xE4/0xE8 (using emplace if full). |
| 0x00A1EF40 | 80 | UIOptionWindow__scroll_to_bottom_00a1ef40 | Scrolls an option window pane to the bottom. If a condition is met, calculates max scroll (height-1) and calls FUN_00aa27b0 to scroll the list control at +0x8C. |
| 0x00A1EF90 | 80 | UIOptionWindow__scroll_to_bottom_00a1ef90 | Scrolls an option window pane to the bottom. Same pattern as 00a1ef40. |
| 0x00A1EFE0 | 80 | UIOptionWindow__scroll_to_bottom_00a1efe0 | Scrolls an option window pane to the bottom. Same pattern as 00a1ef40. |
| 0x00A1F030 | 80 | UIOptionWindow__scroll_to_bottom_00a1f030 | Scrolls an option window pane to the bottom. Same pattern as 00a1ef40. |
| 0x00A1F210 | 193 | UIOptionWindow__create_scrollbar_00a1f210 | Creates a scrollbar child widget (0xF0 bytes) using FUN_009be480. Stores at this+0xB0, sets hidden (flag 0), creates stream handler, and adds to parent hierarchy. |
| 0x00A1F2E0 | 193 | UIOptionWindow__create_scrollbar_00a1f2e0 | Creates a scrollbar child widget variant. Same pattern as 00a1f210. |
| 0x00A1F3B0 | 193 | UIOptionWindow__create_scrollbar_00a1f3b0 | Creates a scrollbar child widget variant. Same pattern as 00a1f210. |
| 0x00A1F480 | 193 | UIOptionWindow__create_scrollbar_00a1f480 | Creates a scrollbar child widget variant. Same pattern as 00a1f210. |
| 0x00A1F550 | 193 | UIOptionWindow__create_option_slot | Creates an option slot control (0xF0 bytes, UIInterfaceDialog). Sets invisible via vtable+0x38, registers OptionSlot callback for option changes, and adds as child to parent hierarchy. Stores at this+0xB0. |
| 0x00A1F620 | 623 | UIOptionWindow__create_child_widgets | Creates 6 child widgets for a UIOptionWindow section: UILabel at +0x80 (0x88 bytes, 400x36), UISlider at +0x84 (0xA4 bytes, 400x60), UIPanel at +0x88 (0x94 bytes, 400x36), UICheckBox at +0x8C (0x94 bytes, 400x60), UIProgressBar at +0x90 (0x9C bytes, 400x36), UIImage at +0x94 (0x94 bytes, 400x36). Each positioned vertically in sequence and added as child. |
| 0x00A1F890 | 636 | UIOptionWindow__create_description_label_00a1f890 | Creates a text label widget (0xFC bytes) for the option window description area. Positions at (0x9B, 0x10), sets size, font (XOR-encrypted name), line spacing 12, no bold, black color with white outline/shadow. Stores at this+0xE8. |
| 0x00A1FB10 | 13033 | UIOptionWindow__setup_option_pages_00a1fb10 | Large function (13033 bytes) that sets up all option pages for the settings/options window. SKIPPED decompilation due to size > 5000 bytes. |
| 0x00A22E00 | 623 | UIOptionWindow__create_all_controls_00a22e00 | Creates all child controls for the option window: UISprite (+0x80, 400x32), UIListBox (+0x84, 400x64), UIButton (+0x88), UIRadioButton (+0x8C), UIScrollPanel (+0x90), and UIDropdown (+0x94). Each is sized 400xW and positioned vertically. |
| 0x00A23070 | 5276 | UIOptionWindow__init_page_content_a_00a23070 | Option window page content initialization (5276 bytes). SKIPPED decompilation due to size > 5000 bytes. |
| 0x00A24510 | 5326 | UIOptionWindow__init_page_content_b_00a24510 | Option window page content initialization (5326 bytes). SKIPPED decompilation due to size > 5000 bytes. |
| 0x00A259E0 | 5954 | UIOptionWindow__init_page_content_c_00a259e0 | Option window page content initialization (5954 bytes). SKIPPED decompilation due to size > 5000 bytes. |
| 0x00A27130 | 3015 | UIOptionWindow__create_list_section | Creates a list-based option section: text label at +0x80 (0xFC bytes, XOR-encrypted title, bold, black with white outline/shadow), option dialog at +0x84 (0xF0 bytes) initialized via init_controls_00a1d770 with 4 XOR-encrypted button text labels, and optional list dialog at +0x88 (0x120 bytes) with stream callbacks for item selection and scrolling. Positioned at offset (9, 0x96). |
| 0x00A27D00 | 5244 | UIOptionWindow__init_page_content_d_00a27d00 | Option window page content initialization (5244 bytes). SKIPPED decompilation due to size > 5000 bytes. |
| 0x00A29180 | 7484 | UIOptionWindow__init_page_content_e_00a29180 | Option window page content initialization (7484 bytes). SKIPPED decompilation due to size > 5000 bytes. |
| 0x00A2AEC0 | 5372 | UIOptionWindow__init_page_content_f_00a2aec0 | Option window page content initialization (5372 bytes). SKIPPED decompilation due to size > 5000 bytes. |
| 0x00A2C3C0 | 3006 | UIOptionWindow__create_list_section_00a2c3c0 | Creates a list-based option section variant: text label at +0x80 (0xFC bytes, shorter title 0x4B wide, XOR-encrypted), option dialog at +0x84 (0xF0 bytes) initialized via init_controls_00a1e250 with 4 XOR-encrypted button labels, and optional list dialog at +0x88 (0x120 bytes). Same pattern as 00a27130 but with different init_controls call and positioned at (9, 0x6E). |
| 0x00A2CF80 | 10486 | UIOptionWindow__handle_message_00a2cf80 | Option window message handler (10486 bytes). SKIPPED decompilation due to size > 5000 bytes. |
| 0x00A2F880 | 3083 | UIOptionWindow__create_scrollbar_section | Creates a scrollbar-based option section: text label at +0x80 (0xFC bytes, XOR-encrypted title, bold, black with white outline/shadow), scrollbar at +0x84 (0xF0 bytes, UIInterfaceDialog) with max=0x80, visible range=0x80, XOR-encrypted button/background/thumb textures. Sets up scroll callback and positions at (0xB, 0x99). |
| 0x00A30490 | 3034 | UIOptionWindow__create_scrollbar_section_00a30490 | Creates a scrollbar-based option section variant: text label at +0x80 (0xFC bytes, XOR-encrypted 14-char title, bold, black with white outline/shadow), scrollbar at +0x84 (0xF0 bytes) with max=0x80, visible range=0x80, XOR-encrypted button/background/thumb textures. Same pattern as 00a2f880 but different TLS offsets and texture keys. Positioned at (0xB, 0x99). |
| 0x00A31070 | 5340 | UIOptionWindow__save_settings_00a31070 | Saves current option settings from UI controls to configuration (5340 bytes). SKIPPED decompilation due to size > 5000 bytes. |
| 0x00A32550 | 3323 | UIOptionWindow__create_listctrl_section | Creates a CListCtrl-based option section: list control at +0x80 (0x138 bytes, item size 0x183x0x1A, viewport 400x0x11E). Clones child objects for item/row templates, initializes 3 map columns (0,1,2) with empty strings, configures scrollbar with XOR-encrypted button labels, background texture, and horizontal thumb textures. Calls rebuild_visible_items and adds as child. |
| 0x00A33250 | 4732 | UIOptionWindow__create_main_controls | Creates the main controls for a UIOptionWindow variant: checkbox at +0xE8 (0x150 bytes), list dialog at +0xEC (0x120 bytes) with stream callback, dialog at +0xF0 (0x190 bytes) with label/font/colors, and text label at +0xF4 (0xFC bytes). Sets XOR-encrypted button textures for both list dialogs and configures label formatting (font, size 12, bold, black text with white shadow/outline). |
| 0x00A36B70 | 83 | UIDialog__notify_callbacks_00a36b70 | Notifies registered callbacks when dialog state changes. Calls callback at +0xEC with widget ID, and callback at +0xC4 with param_2. |
| 0x00A36BD0 | 83 | UIDialog__notify_callbacks_00a36bd0 | Notifies registered callbacks. Same pattern as 00a36b70. |
| 0x00A3A430 | 20 | SettingsUI__on_slider_change_callback | Callback for slider value change in settings UI. Dereferences pointer param and forwards to SettingsUI::notify_apply_button_update. |
| 0x00A3A450 | 20 | SettingsUI__on_checkbox_change_callback | Callback for checkbox state change in settings UI. Dereferences pointer param and forwards to SettingsUI::check_and_update_apply_button. |
| 0x00A3F100 | 99 | SettingsUI__initialize_window | Initializes the settings UI window. Checks a condition via FUN_00a401c0, creates window with ID 0xC5F or 0xC60, dimensions 0x118x0x78. If window creation succeeds (not 0xBC), calls FUN_00a40900 and FUN_00a421e0 to set up content. |
| 0x00A3F180 | 277 | SettingsUI__apply_and_refresh | Applies all game settings changes and refreshes the settings UI. Creates settings window (0xC5E), notifies all child controls to save (vtable+0xD8), ensures GameSettings singleton exists, calls apply_all_options, notifies children to reload (vtable+0xDC), then syncs all checkboxes/labels. |
| 0x00A3F2A0 | 128 | SettingsUI__apply_single_option | Applies a single game option change. Ensures GameSettings singleton exists (allocates 0x58 bytes if needed), then calls GameSettings__apply_option_change_2 with the option ID from this->offset_0xF8. |
| 0x00A3F320 | 52 | SettingsUI__on_list_selection | Handles list selection in settings UI. If selected index > 0, gets UI window 0x13B and dispatches an event with the selected value. |
| 0x00A3F360 | 107 | SettingsUI__toggle_smooth_scroll | Toggles smooth scroll option (option ID 7). Inverts the param, sets scrollbar smooth scroll, updates the control at offset 0x88, saves to GameSettings, and if the value changed, sends notification event (0x5A) via global callback. |
| 0x00A3F3D0 | 168 | SettingsUI__on_bgm_volume_changed | Handles BGM volume slider change. Sets stream volume via CSoundMgr, reads back the volume value, sets BGM max volume, converts to string and updates scrollbar thumb tooltip text. |
| 0x00A3F480 | 64 | SettingsUI__toggle_option_0xb | Toggles game option 0xB. Inverts param, sets scrollbar smooth scroll, updates control at offset 0x98, and saves to GameSettings. |
| 0x00A3F4C0 | 159 | SettingsUI__on_sound_volume_changed | Handles sound effect volume slider change. Sets sound volume and 3D volume via CSoundMgr, reads config value at offset 0xe8, converts to string and updates scrollbar thumb tooltip text. |
| 0x00A3F560 | 92 | SettingsUI__toggle_option_0xf3 | Toggles game option 0xF3. Saves to GameSettings, sends effect notification (type=3 clear, type=1 with resource ID 0xDC7 or 0xDC8 based on toggle state). |
| 0x00A3F5C0 | 92 | SettingsUI__toggle_option_0xa5 | Toggles game option 0xA5. Saves to GameSettings, sends effect notification (type=3 clear, type=1 with resource ID 0x414 or 0x415 based on toggle state). |
| 0x00A3F640 | 94 | SettingsUI__send_packet_option_toggle | Sends a network packet for a settings toggle. XORs param with 1, builds packet with header 0xB93 and toggle flag, calls packet assembly functions FUN_00c7d7d0 twice, then sends via FUN_00c7ce30. |
| 0x00A3F6B0 | 20 | SettingsUI__toggle_smooth_scroll_wrapper | Wrapper that calls SettingsUI__toggle_smooth_scroll_00a3f360. |
| 0x00A3F6D0 | 66 | SettingsUI__set_smooth_scroll_direct | Sets smooth scroll directly (without inverting). Updates scrollbar, control at offset 0x98, and saves inverted value to GameSettings option 0xB. |
| 0x00A3F720 | 152 | SettingsUI__toggle_invertible_option | Toggles an option that may be invertible. Ensures GameSettings singleton exists, checks if option type is invertible via GameSettings__is_invertible_type, XORs value if so, then applies via GameSettings__apply_option_change. |
| 0x00A3F950 | 81 | SettingsUI__on_full_list_item_selected | Handles selection of a full list item. Gets selected index from inner listbox, traverses linked list to find the item, copies it via UIListItem__assign, then calls FUN_00a427a0 to process the selection. |
| 0x00A3F9E0 | 171 | SettingsUI__on_small_list_item_selected | Handles selection of a small list item. Gets selected index from inner listbox, traverses to find the item, copies 3 data fields + 1 string to this+0x184, then uses RTDynamicCast to get settings panel (0x271E) and calls FUN_00a421e0 to update UI. |
| 0x00A3FAC0 | 81 | SettingsUI__on_medium_list_item_selected | Handles selection of a medium list item. Gets selected index from inner listbox, traverses to find item, copies data field to this+0x8C, then calls FUN_00a42460 to process selection. |
| 0x00A3FB50 | 66 | SettingsUI__on_skin_selected | Handles skin selection from the settings list. Gets selected index (subtracts 1), updates CSkinSelector if changed, then calls FUN_00a8bb20 and FUN_00a966e0 to apply the new skin. |
| 0x00A3FCD0 | 863 | SettingsUI__get_user_hotkey_info_string | Builds a hotkey info string. Allocates "GetUserHotKeyInfo" string, calls FUN_00afc9a0 on a global. If CFmt check passes, also allocates "GetOriginalHotKeyInfo". Returns the resulting string in param_1 (std::string out-param). |
| 0x00A40080 | 102 | SettingsUI__check_settings_unchanged | Checks if UI settings have not changed from stored global values. Calls FUN_00a401c0 first; if that returns 0, compares UI control values at offsets 0x88/0x8c/0x94 against DAT_0173a8e0/e4/e8. Returns 0 if all match (unchanged), 1 if any differ. |
| 0x00A40110 | 55 | SettingsUI__validate_two_fields | Validates two UI input fields at offsets +0xf8 and +0x184 within the settings object using stub_00569da0 and stub_00569e60. Returns 0 if both pass validation, 1 otherwise. |
| 0x00A401C0 | 114 | SettingsUI__check_page_and_fields_valid | Checks if the settings page is valid: verifies offsets 0x88==0x8c in the sub-object at +0x80, validates two input fields (+0xf8, +0x184) via stub_00569da0/stub_00569e60, and compares a checkbox state against DAT_0173a8c0. Returns 0 if all pass, 1 otherwise. |
| 0x00A40240 | 36 | SettingsUI__is_tab_page_4_selected | Checks if tab page 4 (accessibility) is currently selected. Reads the selection value from the tab control at offset +0xf0. Returns 1 if page index == 4, 0 otherwise. Returns 0xffffff00 if the sub-object at +0x80 is null. |
| 0x00A40280 | 404 | SettingsUI__apply_option_to_controls | Applies a game settings option to UI controls. Stores option ID at +0xf8, creates GameSettings singleton if needed, retrieves the option state, sets checkbox/radio button states, updates text label and tooltip from the option's string data. Uses GameSettings__is_invertible_type and GameSettings__get_option_state. |
| 0x00A40430 | 75 | SettingsUI__disable_option_0xf3_and_notify | Disables game option 0xF3 (sets to 0), plays notification sound (type 3 then type 1 with msg ID 0xDC8). Sends a UI notification after changing the setting. |
| 0x00A40480 | 75 | SettingsUI__enable_option_0xa5_and_notify | Enables game option 0xA5 (sets to 1), plays notification sound (type 3 then type 1 with msg ID 0x414). Sends a UI notification after changing the setting. |
| 0x00A404F0 | 89 | SettingsUI__send_packet_0xb93 | Constructs and sends a network packet with header 0xB93. Sets up local_14=0xB93, local_10=1, local_c=1, calls two packet construction functions, then sends via FUN_00c7ce30. |
| 0x00A40560 | 876 | SettingsUI__apply_audio_and_scroll_defaults_from_lua | Applies default audio and scroll settings from obfuscated Lua config strings. Decrypts TLS-cached config key strings via xor_decrypt_buffer, reads default int values via lua_get_default_option_value_int, then applies: BGM volume (on_bgm_volume_changed), smooth scroll toggle, sound volume (on_sound_volume_changed), and scrollbar smooth scroll state + GameSettings option 0xB. |
| 0x00A40900 | 655 | SettingsUI__on_settings_changed | Handles settings change events. If page/fields are valid (check_page_and_fields_valid returns nonzero), saves current state to globals DAT_0173a8xx (text rendering mode, font settings, etc.) for page type 1 or 2. If fields haven't changed, updates individual settings like DAT_0173a8e0 (render mode), DAT_0173a8e4 (font quality mapping), DAT_0173a8e8 (bold toggle). Triggers text render reinit and reflow as needed. |
| 0x00A40C40 | 1236 | SettingsUI__init_settings_dialog | Initializes the settings dialog window. Centers the window on screen, sets the title text from msg ID 0x946, populates 5 list box items (IDs 0-4) with localized strings from msg IDs 0x102E-0x107E. Iterates child control lists to trigger their init/refresh callbacks. |
| 0x00A41120 | 151 | SettingsUI__init_graphics_tab_labels | Initializes text labels for the graphics settings tab. Sets 3 labels using localized strings from msg IDs 0x1032, 0x1035, and 0x1036 via UITextLabel__assign_text_and_recalc. |
| 0x00A411C0 | 151 | SettingsUI__init_audio_tab_labels | Initializes text labels for the audio settings tab. Sets 3 labels using localized strings from msg IDs 0x1057, 0x1058, and 0x1059 via UITextLabel__assign_text_and_recalc. |
| 0x00A41260 | 676 | SettingsUI__init_font_tab_and_populate | Initializes the font settings tab. Sets header labels from msg IDs 0xC6D and 0xC6E, calls CRT_init_text_render_singleton, retrieves font info via stub_0056a0f0, populates the UI list item with font data (name string, metrics at various offsets), assigns current settings from DAT_0173a8c4/c8/cc, and copies current font settings to the working copy. |
| 0x00A41510 | 79 | SettingsUI__init_community_tab_header | Initializes the community/social settings tab header. Sets label text from msg ID 0x1001, initializes text render singleton, gets a value via stub_0056a230 and stores it as both the current and max value at offsets +0x88 and +0x8c. |
| 0x00A41560 | 431 | SettingsUI__init_accessibility_tab_labels | Initializes the accessibility settings tab labels. Sets 3 text labels from msg IDs 0x107D, 0x1033, and 0x1034. Also decrypts an obfuscated string using xor_decrypt_buffer (key 0xf96d9da5/0x03772763) and sets it as a non-recalculated text label, likely an anticheat or protected setting name. |
| 0x00A41710 | 343 | SettingsUI__init_gameplay_tab_labels | Initializes text labels for the gameplay settings tab. Sets 7 labels using localized strings from msg IDs 0x1039-0x103F. Alternates between recalc and no-recalc text assignment for the label pairs. |
| 0x00A41870 | 151 | SettingsUI__init_notification_tab_labels | Initializes text labels for the notification settings tab. Sets 3 labels from msg IDs 0xC40, 0x1038, and 0x1037 via UITextLabel__assign_text_and_recalc. |
| 0x00A41910 | 582 | SettingsUI__populate_font_list | Populates the font selection list in settings UI. First adds a header item from msg ID 0x5D9, then adds a default item from msg ID 0xC12. Iterates through CStringTable entries (font names) and adds each as a list box item. Finally calls FUN_00a42160 to update the scrollbar. |
| 0x00A41B60 | 247 | SettingsUI__init_chat_tab_labels | Initializes text labels for the chat settings tab. Sets 5 labels from msg IDs 0x5CD, 0x5D7, 0x1034, 0x5D8, and 0x1034 via UITextLabel__assign_text_and_recalc. |
| 0x00A41CE0 | 151 | SettingsUI__init_shortcut_tab_labels | Initializes text labels for the shortcut/keybind settings tab. Sets 3 labels from msg IDs 0x105A, 0x1033, and 0x1034 via UITextLabel__assign_text_and_recalc. |
| 0x00A41DA0 | 57 | SettingsUI__layout_child_controls_vertically | Iterates through linked list of child controls at offset +0x50, positioning each one vertically. Each control is set to y-position = cumulative height, then the child's height (offset +6*4=0x18) is added to the running total. |
| 0x00A41DE0 | 45 | SettingsUI__draw_if_visible | Draws the settings UI element if it passes hit testing. Calls UIControl__hit_test first, and if visible, calls UIWindow__draw_header_area to render the header. |
| 0x00A41E10 | 26 | SettingsUI__select_accessibility_tab | Selects the accessibility tab (item ID 4) in the settings list box. Finds and selects the list item via UIListBox__find_item_by_id and UIListBox__select_item. |
| 0x00A41E30 | 27 | SettingsUI__wrapper_toggle_option_0xf3 | Simple wrapper that calls SettingsUI__toggle_option_0xf3_00a3f560. Used as a callback handler for a UI button/event. |
| 0x00A41E50 | 52 | SettingsUI__check_and_update_apply_button | Checks if settings have changed and updates the apply button state. Looks up window ID 0x271E via FUN_00aa5f70, casts it via __RTDynamicCast, and if the cast succeeds calls FUN_00a421e0 to enable/disable the apply button based on whether settings differ from saved values. |
| 0x00A41E90 | 27 | SettingsUI__wrapper_toggle_option_0xa5 | Simple wrapper that calls SettingsUI__toggle_option_0xa5_00a3f5c0. Used as a callback handler for a UI button/event. |
| 0x00A41EB0 | 120 | SettingsUI__set_process_priority | Sets the process priority class based on which radio button is selected. Compares param_2 against three button IDs at offsets +0x84, +0x8c, +0x94. Sets priority to NORMAL_PRIORITY_CLASS (0x80/0x20) or IDLE_PRIORITY_CLASS (0x40) via SetPriorityClass on the current process. Stores selection in DAT_0173a5c4. |
| 0x00A41F30 | 101 | SettingsUI__on_priority_radio_changed | Handles priority radio button change event. Determines which radio is not selected (local_c = param_2 != offset +0x8c), constructs and sends packet 0xB93 with the selection state. |
| 0x00A41FA0 | 52 | SettingsUI__check_and_update_apply_button_alt | Alternative path to check and update the apply button. Same logic as SettingsUI__check_and_update_apply_button - looks up window 0x271E, casts via RTDynamicCast, calls FUN_00a421e0 if cast succeeds. |
| 0x00A41FE0 | 128 | SettingsUI__update_font_list_scrollbar | Updates the scrollbar for the font selection list. Calculates visible item count (min of total items and max visible), resizes the list if needed, then updates scrollbar max value, visible range, and current position. Marks the list as needing redraw. |
| 0x00A42060 | 128 | SettingsUI__update_font_detail_list_scrollbar | Updates scrollbar for the font detail/variant list. Same pattern as update_font_list_scrollbar: calculates visible count, resizes if needed, updates scrollbar max/range/value, marks for redraw. |
| 0x00A420E0 | 128 | SettingsUI__update_options_list_scrollbar | Updates scrollbar for the options list control. Same pattern: calculates visible items, resizes list, updates scrollbar max/visible range/position, marks for redraw. |
| 0x00A42160 | 128 | SettingsUI__update_generic_list_scrollbar | Updates scrollbar for a generic settings list. Calculates visible items from list count and max visible, resizes if needed, updates scrollbar max/range/value, and marks the list for redraw. |
| 0x00A421E0 | 162 | SettingsUI__update_apply_button_enabled_state | Updates the apply button enabled state based on whether settings have changed. Checks if the tab page index is 3 (font settings), then compares current UI values against stored globals (DAT_0173a8e0/e4/e8). Enables the apply button (+0xf8 control) with value 1 if changes detected, 0 if unchanged. |
| 0x00A42290 | 453 | SettingsUI__load_options_into_list | Loads game settings options into a list control. Creates GameSettings singleton if needed, loads option config entries for the given param_2, iterates the returned linked list and inserts each entry into the UI list at +0x80. Updates scrollbar, marks list as needing redraw, and calls SettingsUI__sync_all_checkboxes_and_labels to refresh the UI state. |
| 0x00A42460 | 830 | SettingsUI__populate_font_family_list | Populates the font family selection list. Clears the existing list at +0x84->0x8c, resets scrollbar. Retrieves font families from the text render system, creates linked list entries with font data (name strings, metrics). Updates font list scrollbar. Searches for the currently selected font and scrolls to it, triggering selection via FUN_00a36cf0. Cleans up temporary font data. |
| 0x00A427A0 | 1069 | SettingsUI__populate_font_style_list | Populates the font style/variant list for the selected font family. Clears existing list at +0x8c->0x8c, resets scrollbar. Retrieves font styles for the given family (via +0xfc), creates linked list entries with style info. Updates scrollbar. If no matching style found, falls back to default font from stub_0056a240 and uses stored DAT_0173a8cc. Scrolls to the matching style and selects it via CListCtrl__on_item_clicked. Cleans up temporary data. |
| 0x00A42BD0 | 699 | SettingsUI__populate_font_size_list | Populates the font size selection list. Clears existing list at +0x84->0x8c, resets scrollbar. Retrieves available font sizes via stub_0056a2a0, creates linked list entries with size values and names. Updates scrollbar. Finds the entry matching the current selection (+0x8c) and scrolls to it, triggering selection via CListCtrl__on_item_clicked. Cleans up temporary data. |
| 0x00A42E90 | 301 | SettingsUI__save_font_settings_to_globals | Saves font settings from the UI to global variables. Calls UIListItem__assign to update the display, copies font metrics. For page type 1 (font family): copies font name to DAT_0173a898, font metrics to DAT_0173a878-0173a894. For page type 2 (font style): copies style data to DAT_0173a8f4-0173a904. Always updates DAT_0173a8c4/c8/cc with current selection. |
| 0x00A42FE0 | 9 | thunk_to_SettingsUI__on_bgm_volume_changed | Wrapper that calls FUN_00a3f3d0 and returns |
| 0x00A42FF0 | 9 | thunk_to_SettingsUI__on_sound_volume_changed | Wrapper that calls FUN_00a3f4c0 and returns |
| 0x00A43000 | 52 | SettingsUI__notify_apply_button_update | Callback that triggers apply button state update. Finds the settings window (ID 0x271E) via CUIWindowMgr, dynamic casts to the settings UI type, and calls update_apply_button_enabled_state if valid. |
| 0x00A43040 | 52 | SettingsUI__notify_apply_button_update_alt | Alternative callback for apply button state update. Same logic as notify_apply_button_update: finds window 0x271E, casts, and calls update_apply_button_enabled_state. |
| 0x00A43080 | 92 | SettingsUI__scroll_to_and_select_font_item | Scrolls the font list to a specific item index and selects it. Sets scrollbar value based on item height * index, then iterates visible items to find the one matching param_2 and triggers FUN_00a36cf0 (selection callback). Returns 1 if found, 0 if not. |
| 0x00A430E0 | 92 | SettingsUI__scroll_to_and_click_list_item | Scrolls the list to a specific item index and triggers a click on it. Sets scrollbar value based on item height * index, iterates visible items to find the matching one, and calls CListCtrl__on_item_clicked. Returns 1 if found, 0 if not. |
| 0x00A43140 | 92 | SettingsUI__find_and_select_option_a_00a43140 | Searches through child elements by param_2 index, calls FUN_009f2530 to set computed value, then iterates vector at offset 0xC8 looking for matching option ID at +0x94. If found, calls FUN_00a36eb0 to select it. Uses indirect parent ptr at +0x8C. |
| 0x00A431A0 | 92 | SettingsUI__find_and_select_option_b_00a431a0 | Same pattern as 00a43140 but calls FUN_00a36f90 instead of FUN_00a36eb0 for the selected option. Uses indirect parent ptr at +0x8C. |
| 0x00A43200 | 89 | SettingsUI__find_and_apply_option_a_00a43200 | Iterates option vector at +0xC8, matches param_2 to option ID at +0x94. Calls FUN_00a36cf0 on match. Direct this-ptr usage (no indirection). Returns 1 if found, 0 otherwise. |
| 0x00A43260 | 89 | SettingsUI__find_and_apply_option_b_00a43260 | Iterates option vector at +0xC8, matches param_2 to option ID at +0x94. Calls FUN_00a36dd0 on match. Returns 1 if found, 0 otherwise. |
| 0x00A432C0 | 89 | SettingsUI__find_and_apply_option_c_00a432c0 | Iterates option vector at +0xC8, matches param_2 to option ID at +0x94. Calls FUN_00a36eb0 on match. Returns 1 if found, 0 otherwise. |
| 0x00A43320 | 89 | SettingsUI__find_and_apply_option_d_00a43320 | Iterates option vector at +0xC8, matches param_2 to option ID at +0x94. Calls FUN_00a36f90 on match. Returns 1 if found, 0 otherwise. |
| 0x00A433D0 | 59 | SettingsUI__invoke_vtable_and_refresh_00a433d0 | Calls virtual method at vtable+0x38 on object at +0xF4. Compares FUN_009f0ea0(3) result with param_2. Then refreshes via FUN_00a421e0. |
| 0x00A43410 | 380 | SettingsUI__update_option_labels_00a43410 | Iterates options in parent's vector (+0x80 -> +0xC8/0xCC), for each visible option (flag at +0x28), looks up option config via FUN_00a3c1e0 and FUN_00a3fcd0. Creates GameSettings singleton if needed. Updates option label text via GameSettings__get_option_ptr and STL string assignment. |
| 0x00A43590 | 188 | SettingsUI__sync_checkbox_from_option_00a43590 | Syncs checkbox widget state from game option value. Searches tabs in +0xE4 vector, for each tab iterates options in +0x80 vector to find matching option ID at +0xF8. Applies inverted state via GameSettings__is_invertible_type XOR GameSettings__get_option_state to checkbox at +0x48. Also updates all child linked list items via vtable+0xDC. |
| 0x00A43700 | 81 | SettingsUI__update_toggle_pair_00a43700 | Updates a pair of toggle UI widgets for option 0xA5. Gets option state, sets first widget at +0x84 checkbox, sets second widget at +0x8C to inverse. Calls virtual refresh on both. |
| 0x00A43870 | 451 | SettingsUI__init_sound_volume_and_toggles | Initializes sound volume scrollbars and game option toggles. Sets up two volume sliders: first for CSoundMgr volume (option 7), second for a global value at DAT_0138be7c+0xE8 (option 0xB). For each slider: sets range to 0x87, visible range from pixel conversion, current value from volume/global, tooltip text. For each option: reads GameSettings state (inverted), sets scrollbar smooth scroll and checkbox widgets at +0x88/+0x8C and +0x98/+0x9C respectively. |
| 0x00A43A40 | 58 | SettingsUI__clamp_and_set_value_a_00a43a40 | Clamps global DAT_0173a8e0 to max 2, then calls FUN_009f2b70(3) to set range and FUN_009f2530 with clamped value. Used for a settings slider/dropdown with 3 options (0,1,2). |
| 0x00A43A80 | 58 | SettingsUI__clamp_and_set_value_b_00a43a80 | Clamps global DAT_0173a8e4 to max 2, then calls FUN_009f2b70(3) to set range and FUN_009f2530 with clamped value. Used for a settings slider/dropdown with 3 options (0,1,2). |
| 0x00A43BA0 | 71 | SettingsUI__refresh_all_child_options_00a43ba0 | Refreshes all child option widgets. Iterates linked list at +0xDC offset calling vtable+0xDC on each node. Then iterates vector at +0xE4 calling FUN_00a43bf0 (sync all checkboxes) for each tab. |
| 0x00A43BF0 | 127 | SettingsUI__sync_all_checkboxes_and_labels_00a43bf0 | Iterates all options in parent's vector (+0x80->+0xC8/0xCC). For each visible option (+0x28!=0), syncs checkbox widget at +0xE8 by XORing GameSettings__is_invertible_type with GameSettings__get_option_state for the option at +0xF8. Then calls FUN_00a43410 to update labels. |
| 0x00A43C70 | 432 | SettingsUI__update_all_tab_option_labels_00a43c70 | Updates option labels for all tabs. Iterates tabs in +0xE4 vector, for each tab iterates options in +0x80 vector. Same GameSettings lookup pattern as FUN_00a43410 but operates across all tabs rather than single parent. |
| 0x00A44030 | 141 | SettingsUI__dtor_00a44030 | Destructor for SettingsUI. Sets vtable to PTR_FUN_01153054, releases timer/resource at +0x31 via vtable+0x10, resets vtable to PTR_FUN_0114875c, then calls base class dtor FUN_00a79e90. |
| 0x00A440C0 | 165 | SettingsUI__scalar_deleting_dtor_00a440c0 | Scalar deleting destructor for SettingsUI. Performs same cleanup as dtor, then conditionally frees memory (size 200 bytes) if param_2 & 1. |
| 0x00A44240 | 12354 | SettingsUI__main_setup_00a44240 | Large settings UI initialization function (12354 bytes). Too large to decompile in agent context. Likely the main setup/create method for the settings window, building all tabs and option controls. |
| 0x00A4FF10 | 193 | QuestUI__create_scrollbar | Creates and initializes a scrollbar for the Quest UI. Allocates a new object via FUN_009be480, hides it initially (virtual call with 0), sets up a callback with QuestUI__init_vtable_d, and adds the scrollbar as a child control via CEffect__add_child_to_list_end. Stores the scrollbar pointer at offset +0xB0. |
| 0x00A4FFE0 | 2433 | QuestUI__init_header_panel_00a4ffe0 | Initializes the Quest UI header panel. Creates icon button (+0x80, 10x9), title label (+0x84, 50x12 with font), and text description panel (+0x88, UIFmtDialog with CTextPanel). Loads Renew_QuestUI/poring.bmp as icon. Sets fonts, colors, margins. Creates scrollbar with QuestUI arrow textures. |
| 0x00A50970 | 3972 | QuestUI__init_main_panel_00a50970 | Initializes the Quest UI main panel. Creates multi-resource dialog (+0xD8), title label with 'QUEST' text, checkable button (+0xEC, 0x120 bytes), tree view list (+0x9C). Sets titlebar textures (basic_interface_titlebar_left/mid/right.bmp). Configures scrollbar with QuestUI assets. |
| 0x00A51900 | 1475 | QuestUI__init_detail_panel_00a51900 | Initializes the Quest UI detail panel. Creates icon (+0xE8, 38x38 with QuestUI/questIocn.bmp), tooltip widget (+0xEC, 0x1D8 bytes with CItemInfoMgr), name label (+0xF0, 170x12), and description label (+0xF4, 170x12 with color 0xA0551D). |
| 0x00A51ED0 | 4764 | QuestUI__init_objectives_panel_00a51ed0 | Initializes the Quest UI objectives panel. Creates icon (+0x80), multiple text labels (+0x84 to +0x98) for quest name, description, progress, etc. Creates tree view (+0x9C) with scrollbar configured using QuestUI arrow textures. Sets texture names and scrollbar background. |
| 0x00A53170 | 2175 | QuestUI__init_rewards_panel_00a53170 | Initializes the Quest UI rewards panel. Creates text boxes (+0x80, +0x88 as UITextBoxA), separator lines (+0x84, +0x8C as image buttons with line.bmp texture), reward detail box (+0x90 as UITextBoxD), and a vertical scrollbar (+0x94). Configures scrollbar with QuestUI arrow and thumb textures. |
| 0x00A53A00 | 63 | QuestUI__scroll_step_or_forward | Handles a scroll step or forward action. Checks the child object at +0xB0: if its flag at +0xA8 is zero and its count (+0x94) is less than its max (+0x90), calls virtual function +0x8C on the child. Otherwise, calls the same virtual function on the parent at +0x10. Used as a scrollbar callback. |
| 0x00A53A40 | 65 | QuestUI__set_selection_highlight | Sets the selection highlight on visible list items. Iterates all items from +0xC8 to +0xCC, calling virtual function +0xDC on each with a boolean: true if the item matches param_2 (selected), false otherwise. |
| 0x00A53A90 | 603 | QuestUI__rebuild_visible_items_00a53a90 | Rebuilds the visible items array for the QuestUI list view. Removes all existing child items from the parent, clears the item vector (+0xC8/+0xCC), then calculates how many items fit based on the view height (+0x18) divided by item height (+0xB8). Creates UITextBoxC instances for each visible slot, sets their button textures from stored texture handles (+0x80 to +0x8C), registers click and tooltip callbacks, and adds them as children. Updates the scrollbar max value and visible range. |
| 0x00A53CF0 | 522 | QuestUI__load_textures_00a53cf0 | Loads texture resources for the QuestUI list view. Loads 4 textures from a string map (indices 0-2 from the map, index 3 from offset +0x98 string), storing texture handles at +0x80 to +0x8C. Releases old texture references before replacing. Then iterates all visible items (+0xC8 to +0xCC) and applies the new button state textures to each via UIButton__set_state_textures_direct. |
| 0x00A53F00 | 115 | QuestUI__resize_and_rebuild_00a53f00 | Handles resize for the QuestUI list view. Calls CEffect__resize_surface with new dimensions, rebuilds visible items, resizes the scrollbar height, recalculates scrollbar max value from item count * item height + header offset, sets visible range, restores scroll position, and marks layout as dirty (+0xE1=1). |
| 0x00A53F80 | 498 | QuestUI__update_visible_range_00a53f80 | Updates the visible range of items in the QuestUI list view based on scroll position (param_2). Calculates which items should be visible based on scroll offset divided by item height (+0xB8). Rotates the item array to reuse existing slots when scrolling. For each visible slot, updates the data index, calls the data binding callback (+0x134), sets selected state via vtable+0xD8, positions the item, and shows it. Hides items that scroll out of view. |
| 0x00A54180 | 218 | QuestUI__on_item_clicked_00a54180 | Handles item click in the QuestUI list view. If not locked (+0xC4==0), deselects all other items by calling vtable+0xD8 with 0, selects the clicked item with 1. If selection changed or first click, performs RTTI dynamic cast, stores the selected data index at +0xDC, and invokes the selection callback (+0x10C) with the item data from the linked list at +0xD4. |
| 0x00A54260 | 216 | QuestUI__set_texture_names_00a54260 | Sets texture names for the QuestUI list view. Stores 3 texture names into a string map (indices 0, 1, 2) and a 4th string into the scrollbar label field (+0x98). Then triggers a texture reload via vtable+0xD4 and layout refresh via vtable+0x98. |
| 0x00A54340 | 22 | QuestUI__init_vtable_c_00a54340 | Initializes a vtable callback object for QuestUI. Sets vtable pointer to PTR_01153e28 (init_vtable_c table) and copies context pointer from source +4. |
| 0x00A54360 | 22 | QuestUI__init_vtable_d_00a54360 | Initializes a vtable callback object for QuestUI. Sets vtable pointer to PTR_01153e0c (init_vtable_d table) and copies context pointer from source +4. |
| 0x00A54380 | 22 | QuestUI__init_vtable_e_00a54380 | Initializes a vtable callback object for QuestUI. Sets vtable pointer to PTR_01153dd4 (init_vtable_e table) and copies context pointer from source +4. |
| 0x00A543A0 | 22 | QuestUI__init_vtable_f_00a543a0 | Initializes a vtable callback object for QuestUI. Sets vtable pointer to PTR_01153d80 (init_vtable_f table) and copies context pointer from source +4. |
| 0x00A543C0 | 22 | QuestUI__create_vtable_callback_a | Creates a vtable callback object for QuestUI. Sets vtable pointer to PTR_FUN_01153db8 and copies the second dword from the source object. |
| 0x00A543E0 | 22 | QuestUI__create_vtable_callback_b | Creates a vtable callback object for QuestUI. Sets vtable pointer to PTR_FUN_01153e44 and copies the second dword from the source object. |
| 0x00A54400 | 22 | QuestUI__create_vtable_callback_c | Creates a vtable callback object for QuestUI. Sets vtable pointer to PTR_FUN_01153df0 and copies the second dword from the source object. |
| 0x00A54420 | 22 | QuestUI__create_vtable_callback_d | Creates a vtable callback object for QuestUI. Sets vtable pointer to PTR_FUN_01153d9c and copies the second dword from the source object. |
| 0x00A54440 | 68 | QuestUI__conditional_free_a | Conditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object via FUN_00e6227f. Part of scalar deleting destructor pattern. |
| 0x00A54490 | 68 | QuestUI__conditional_free_b | Conditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern. |
| 0x00A544E0 | 68 | QuestUI__conditional_free_c | Conditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern. |
| 0x00A54530 | 68 | QuestUI__conditional_free_d | Conditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern. |
| 0x00A54580 | 68 | QuestUI__conditional_free_e | Conditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern. |
| 0x00A545D0 | 68 | QuestUI__conditional_free_f | Conditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern. |
| 0x00A54620 | 68 | QuestUI__conditional_free_g | Conditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern. |
| 0x00A54670 | 68 | QuestUI__conditional_free_h | Conditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern. |
| 0x00A546C0 | 65 | QuestUI__highlight_selected_item | Highlights the selected item in the quest list. Dereferences param_2 to get the selected item pointer, then iterates all visible items in the list (offsets +0xC8 to +0xCC). For each item, calls virtual function at vtable+0xDC with true if it matches the selected item, false otherwise. |
| 0x00A54710 | 20 | QuestUI__wrapper_update_visible_range | Wrapper that calls QuestUI__update_visible_range_00a53f80 with the dereferenced first parameter. Used as a callback/delegate. |
| 0x00A54740 | 23 | QuestUI__wrapper_null_stub | Wrapper that calls null_stub_00a55710 with dereferenced first param and second param. Used as a delegate for an empty handler. |
| 0x00A54760 | 20 | QuestUI__wrapper_reposition_children | Wrapper that calls UIQuestWnd__reposition_children_00a55f20 with dereferenced first param. Used as a callback/delegate for layout updates. |
| 0x00A54780 | 216 | QuestUI__on_item_clicked | Handles item click in the quest list. Deselects all other items (calls vtable+0xD8 with 0), selects the clicked item (vtable+0xD8 with 1). If the selection changed or first click, dynamic casts to get the item's data index, stores it at +0xDC, and calls the item selection callback at +0x10C with the item data from the linked list. |
| 0x00A54870 | 23 | QuestUI__wrapper_setup_item_tooltip | Wrapper that calls UIQuestWnd__setup_item_tooltip_00a55720 with dereferenced first param and second param. Used as a delegate for tooltip display. |
| 0x00A54920 | 22 | QuestUI__create_vtable_callback_e | Creates a vtable callback object using QuestUI__init_vtable_c. Sets vtable pointer and copies context from source object. |
| 0x00A54940 | 22 | QuestUI__create_vtable_callback_f | Creates a vtable callback object using QuestUI__init_vtable_d. Sets vtable pointer and copies context from source object. |
| 0x00A54960 | 22 | QuestUI__create_vtable_callback_g | Creates a vtable callback object using QuestUI__init_vtable_e. Sets vtable pointer and copies context. |
| 0x00A54980 | 22 | QuestUI__create_vtable_callback_h | Creates a vtable callback object using QuestUI__init_vtable_f. Sets vtable pointer and copies context. |
| 0x00A549A0 | 22 | QuestUI__create_vtable_callback_i | Creates a vtable callback object referencing QuestUI__create_vtable_callback_a vtable. Sets vtable pointer and copies context. |
| 0x00A549C0 | 22 | QuestUI__create_vtable_callback_j | Creates a vtable callback object referencing QuestUI__create_vtable_callback_b vtable. Sets vtable pointer and copies context. |
| 0x00A549E0 | 22 | QuestUI__create_vtable_callback_k | Creates a vtable callback object referencing QuestUI__create_vtable_callback_c vtable. Sets vtable pointer and copies context. |
| 0x00A54A00 | 22 | QuestUI__create_vtable_callback_l | Creates a vtable callback object referencing QuestUI__create_vtable_callback_d vtable. Sets vtable pointer and copies context. |
| 0x00A55720 | 320 | UIQuestWnd__setup_item_tooltip_00a55720 | Sets up item tooltip for quest window. Calls CItemInfoMgr__clear_tree_and_free_alt, CItemDesc__get_class_and_level, CItemDB__build_item_tooltip_string. Sets up tooltip text with item name and description using string ID 0xb6. |
| 0x00A558B0 | 130 | UIQuestWnd__set_initial_position_00a558b0 | Sets the initial position of the quest window. Looks up string ID 0xd48, sets window title. Tries to find saved position from UIManager (ID 0x2718), if found uses saved pos, otherwise centers on screen. |
| 0x00A55950 | 309 | UIQuestWnd__init_tabs_and_worldmap_00a55950 | Initializes quest window tabs and world map. Sets 3 tab labels from string IDs 0xd4c-0xd4e, enables scrollbar on tab panel, allocates+constructs CWorldMap, adds it as child with size 0x4b x 0x91, then shows the world map. |
| 0x00A55A90 | 190 | UIQuestWnd__set_tab_labels_00a55a90 | Sets tab labels and enables visibility for quest window's 3 tab panels (at +0x80, +0x88, +0x90). Sets visible flag at +0x79 for each, then sets label strings from msgstringtable IDs 0xd49, 0xd4a, 0xd4b. |
| 0x00A55B50 | 18 | UIQuestWnd__virtual_dispatch_00a55b50 | Virtual dispatch stub. Calls virtual method at vtable offset 0x8c on the child object at +0x94. |
| 0x00A55B70 | 333 | UIQuestWnd__refresh_quest_list_00a55b70 | Refreshes the quest list display. Gets quest data from the map tree at +0xe4, looks up quest ID +0xf0 in the global quest map (DAT_0138cf40), processes bulk packet data via CPacketSystem__bulk_processor, updates scrollbar dimensions and child heights, then adjusts scroll range. |
| 0x00A55CC0 | 327 | UIQuestWnd__load_quest_by_id_00a55cc0 | Loads and displays quest details by quest ID (param_2). Looks up quest in global map, processes bulk packet text lines, updates tab scrollbar visibility and child element heights, then adjusts total scroll range. |
| 0x00A55E10 | 142 | UIQuestWnd__update_scrollbar_h_00a55e10 | Updates horizontal scrollbar for quest window. Shows/hides scrollbar based on whether content exceeds visible area (+0x32 vs +0x33). Adjusts scrollbar position and recalculates max child content width, then sets scroll range via FUN_00a82eb0. |
| 0x00A55EA0 | 126 | UIQuestWnd__update_scrollbar_v_00a55ea0 | Updates vertical scrollbar for quest window detail panel (+0x9c). Shows/hides based on content count (+0x36). Adjusts scrollbar size based on item count * item height + padding. Recalculates max child content height and sets scroll range. |
| 0x00A55F20 | 78 | UIQuestWnd__reposition_children_00a55f20 | Repositions child elements in the quest window. Iterates linked list of children (+0x50), for each non-header child, moves it by -param_2 offset and stacks based on previous child's bottom edge. |
| 0x00A55F70 | 217 | UIQuestWnd__load_worldmap_data_00a55f70 | Loads world map data for quest window. If param_2 has a map name (string length > 0), copies it and calls CWorldMap__LoadMapData. Optionally sets display name from param_3 via CWorldMap__SetMapName. Calls the show method on the world map object. |
| 0x00A56050 | 242 | UIQuestWnd__select_quest_entry_00a56050 | Selects a quest entry by ID (param_2) in the quest window. Looks up quest in global map, sets display name and description text, calls CPacketManager handler for additional data, then calls FUN_00a56150 to populate the detail view. Stores selected quest ID at +0xf0. |
| 0x00A56150 | 1292 | UIQuestWnd__populate_quest_detail_00a56150 | Populates the quest detail view for a selected quest ID. Clears existing list items, looks up quest in global map, processes objectives and description lines, populates reward item list, loads world map data if available, then updates scrollbars and layout. |
| 0x00A56860 | 115 | UIQuestWnd__create_window_child_00a56860 | Factory function: allocates 0xec bytes and constructs a UIQuestWindowChild via FUN_00a586c0. Returns null if allocation fails. |
| 0x00A568E0 | 66 | UIQuestWnd__reset_window_layout_00a568e0 | Resets quest window layout. Clears flags, enables close button, sets window size to 0x156 x 0x19c, moves to origin (0,0), then auto-sizes and centers. |
| 0x00A56930 | 189 | UIQuestWnd__add_quest_tab_entry_00a56930 | Adds a new quest tab entry. Allocates 0x84 bytes, constructs via FUN_00a58640, adds as child at 300x150 size, then pushes to vector at +0x8c. Uses emplace_grow helper if vector is at capacity. |
| 0x00A569F0 | 1790 | UIQuestWnd__init_text_label_and_scrollbar_00a569f0 | Initializes the quest window's text label and scrollbar. Creates UITextEdit-like control (0xe0 bytes), configures font size 12, text color white, alignment, sets scrollbar sprites from 'Renew_QuestUI_bt_scrollbar_arrow' resources, adds as child at +0x80. |
| 0x00A570F0 | 3572 | UIQuestWnd__init_detail_panel_00a570f0 | Initializes the quest window detail panel. Creates title bar with left/mid/right BMP sprites (basic_interface_titlebar), creates description text labels, button controls, and multiple sub-panels for quest details. Stores controls at +0xd8 (text), +0xdc (image), +0xe0 (label), +0xe4 (panel), +0xe8 (description). |
| 0x00A57EF0 | 1406 | UIQuestWnd__init_tab_panels_00a57ef0 | Initializes the 3 quest tab panels with background images. Creates panel +0x80 (0x150x0x13e, bg_quest01.png), +0x84 (0x144x0x8a, bg_quest01.png), +0x88 (0xd0x0x5c, bg_quest02.png). Creates 3 tab entries via add_quest_tab_entry, then configures panel sizes and positions for list, content, and detail views with scrollbar heights. |
| 0x00A587C0 | 177 | UIQuestWndEx__ctor | Constructor for UIQuestWndEx (extended quest window). Calls CEffect__ctor as base class, sets vtable first to UIBase then UIQuestWndEx, zeroes out 7 member fields at offsets +0x80 through +0x98. |
| 0x00A589C0 | 108 | UIQuestWndEx__dtor_00a589c0 | Destructor for UIQuestWndEx. Sets vtable to PTR_FUN_0115445c, calls cleanup FUN_00a58880, resets vtable to base UIBase, then calls base dtor FUN_00a79e90. |
| 0x00A58B10 | 132 | UIQuestWndEx__scalar_deleting_dtor_00a58b10 | Scalar deleting destructor for UIQuestWndEx. Sets vtable, calls cleanup and base dtors, frees 0x9c bytes if param_2 & 1. |
| 0x00A58BE0 | 130 | UIQuestWndEx__set_initial_position_00a58be0 | Sets initial position for UIQuestWndEx. Same pattern as UIQuestWnd: looks up string ID 0xd48 for title, checks UIManager ID 0x2718 for saved position, otherwise centers on screen. |
| 0x00A58C70 | 145 | UIQuestWndEx__init_worldmap_00a58c70 | Initializes the world map widget for UIQuestWndEx. Allocates 0xa4 bytes, constructs CWorldMap, adds as child at 0x4b x 0x91, initially hidden. Stores at +0x98. |
| 0x00A58D10 | 225 | UIQuestWndEx__load_worldmap_data_00a58d10 | Loads world map data for UIQuestWndEx. Same pattern as UIQuestWnd version: loads map from param_2 string via CWorldMap__LoadMapData, optionally sets display name from param_3, then shows the map widget at +0x98. |
| 0x00A58E00 | 114 | UIQuestWndEx__select_quest_entry_00a58e00 | Selects a quest entry by ID in UIQuestWndEx. Looks up quest in global map (DAT_0138cf40), sets name text, then calls FUN_00a58e80 to populate the detail view. |
| 0x00A58E80 | 1085 | UIQuestWndEx__populate_quest_detail_00a58e80 | Populates quest detail view for UIQuestWndEx. Clears tab entries, looks up quest by ID in global map, builds description from packet stream, iterates up to 3 tab objective sections (at +0xe0), sets each tab's text lines. Loads world map data if quest has a map, otherwise hides world map. |
| 0x00A64E30 | 20 | UIQuestWnd__dropdown_update_callback | UIQuestWnd callback wrapper: dereferences param and forwards to UIDropdownList__update_visible_items. |
| 0x00A64E50 | 23 | UIQuestWnd__quest_double_click_callback | UIQuestWnd callback wrapper: dereferences param and forwards to UIQuestWnd__on_quest_double_click with selection data. |
| 0x00A64F60 | 23 | UIQuestWnd__populate_detail_callback | UIQuestWnd callback wrapper: dereferences param and forwards to UIQuestWnd__populate_quest_detail with quest data. |
| 0x00A64F90 | 21 | UIQuestWnd__toggle_complete_callback | UIQuestWnd callback wrapper: forwards to UIQuestWnd__toggle_show_complete to toggle display of completed quests. |
| 0x00A64FB0 | 21 | UIQuestWnd__toggle_expanded_view_callback | UIQuestWnd callback wrapper: forwards to UIQuestWnd__toggle_quest_expanded_view to toggle the expanded/collapsed quest detail view. |
| 0x00A64FE0 | 20 | UIQuestWnd__packet_update_callback | UIQuestWnd callback wrapper: dereferences param and forwards to UIQuestWnd__on_packet_update for server packet handling. |
| 0x00A65090 | 21 | UIQuestWnd__send_action_callback | UIQuestWnd callback wrapper: forwards to UIQuestWnd__send_quest_action to send quest action to server. |
| 0x00A66140 | 150 | UIQuestWnd__send_quest_action_00a66140 | Sends a quest action. If quest type (offset 0xFC) is 2, calls CPacketSystem method and conditionally refreshes quest list. Otherwise, constructs packet 0x2B6 and sends it via the packet system. |
| 0x00A661F0 | 57 | UIQuestWnd__toggle_show_complete_00a661f0 | Toggles the "show completed quests" setting. Calls FUN_00a83300 with type 6, subtype 0xD5, and the toggle flag. Then notifies the quest window (ID 0xCC) via virtual method at vtable+0x38. |
| 0x00A66230 | 66 | UIQuestWnd__submit_search_text_00a66230 | Gets the search text from the editable text widget, measures its length (strlen), updates the text display, then refreshes the quest list via FUN_00a67290 with flag 0xF (all categories). |
| 0x00A66280 | 67 | UIQuestWnd__toggle_quest_expanded_view | Toggles the expanded/simple view state for an ongoing quest. Calls CQuestMgr__set_ongoing_quest_expanded_flag with the current quest ID and the toggle parameter, saves the simple view list, then notifies the quest window (ID 0xCC) via vtable+0x98 to refresh display. |
| 0x00A66370 | 66 | UIQuestWnd__submit_search_text_b_00a66370 | Alternate search text submission handler. Gets display text, measures length, updates display, refreshes quest list with flag 0xF. |
| 0x00A663C0 | 67 | UIQuestWnd__find_quest_tab_by_id_00a663c0 | Searches the tab array (offset 0xF0..0xF4) for a tab whose ID at +0x84 matches param_2. Returns the value at +0x80 of the matching tab, or 0 if not found. |
| 0x00A66410 | 163 | UIQuestWnd__filter_quest_entry_00a66410 | Filters a quest entry against the current search criteria. Checks name via CPacketSystem method. If a text filter (offset 0x110) is active, searches both the quest display name and internal name via CFmt string find. Returns 1 if entry passes filter, 0 otherwise. |
| 0x00A664C0 | 251 | UIQuestWnd__on_quest_double_click_00a664c0 | Handles double-click on a quest entry. Selects the quest, performs RTDynamicCast to get appropriate window type (differs for type 2 vs other), and notifies the detail window to display quest info. Destroys the child window after action. |
| 0x00A665C0 | 1559 | UIQuestWnd__populate_quest_detail_00a665c0 | Populates quest detail view when a quest is selected. Stores quest type and ID, looks up quest data in the global quest map via _Find_lower_bound, formats reward text (fixed notation), sets quest description, title, objectives, and updates tab visibility and button state. Handles both type 2 (completed) and normal quest display paths. |
| 0x00A66BE0 | 40 | UIQuestWnd__set_quest_filter_context | Sets the quest filter context for the quest window. Calls a position/state setter, then stores param_3 at offset 0x10C (quest filter category) and param_2 at offset 0x108 (quest list reference). These values are used by other quest window methods to filter and display quests. |
| 0x00A66C70 | 274 | UIQuestWnd__set_button_text_00a66c70 | Loads a string resource (ID 0xD51) and assigns it to the button text at offset 0xF4+0x88. Handles SSO string buffer management. |
| 0x00A66DA0 | 411 | UIQuestWnd__init_quest_window_00a66da0 | Initializes the quest window. Destroys old window (0x2718), destroys window 0x8F, loads window title (string 0xD48), loads subtitle (string 0x7E3), checks if show-complete flag is set, assigns category bitmask to tab items (powers of 2), refreshes quest list with flag 0xF, and populates quest names from linked list via CPacketManager. |
| 0x00A66FF0 | 403 | UIQuestWnd__find_and_select_quest_00a66ff0 | Finds a quest by ID (param_2) in the quest list. Iterates tab entries, searches linked list for matching quest ID. If found, scrolls to the entry and selects it. If not found, formats a "Not found Quest Info" error message and displays it in a message box. |
| 0x00A67190 | 241 | UIQuestWnd__on_quest_double_click_b_00a67190 | Alternate quest double-click handler. Same logic as on_quest_double_click: selects quest, dynamic casts to get detail window, and notifies. Differs slightly in context handling. |
| 0x00A67290 | 2576 | UIQuestWnd__refresh_quest_lists_00a67290 | Refreshes quest lists by category bitmask (param_2). Bit 1=active, 2=completed, 4=special type A, 8=special type B. For each category: clears the list, iterates the global quest map, filters entries via UIQuestWnd__filter_quest_entry, and adds matching quests. Recalculates scroll bounds and restores scroll position afterward. |
| 0x00A67CA0 | 50 | UIQuestWnd__set_active_color_00a67ca0 | Sets the active/inactive color for a quest element. Active=0xE47B2E (orange), inactive=0x955322 (dark brown). Calls FUN_009f0da0 to set color and FUN_009f0290 to set state. |
| 0x00A67D40 | 208 | UIQuestWnd__on_button_action_00a67d40 | Handles button actions in quest window. Action type 6 subtype 0xD5: toggle show-complete checkbox and notify quest window. Action type 0x16: calls log2 and scroll update. Delegates to UIWindow__handle_button_click for other actions. |
| 0x00A67E10 | 36 | UIQuestWnd__on_quest_category_update | Handles a quest category update from packet data. If param_2 is non-null, reads the category/filter ID from offset 0x2C and stores it at offset 0x10C, then refreshes all quest lists to reflect the updated category. |
| 0x00AB1200 | 28 | CConnectionPointSink__ctor_simple | Constructor for a simple COM connection point sink. Sets vtable pointer to PTR_FUN_01158c24, clears ref count, stores param_2 as the connection target. |
| 0x00AB1220 | 28 | CConnectionPointSink__ctor_type_c04 | Constructor for COM connection point sink with vtable PTR_01158c04. |
| 0x00AB1240 | 28 | CConnectionPointSink__ctor_type_bb8 | Constructor for COM connection point sink with vtable PTR_01158bb8. |
| 0x00AB1260 | 28 | CConnectionPointSink__ctor_type_b38 | Constructor for COM connection point sink with vtable PTR_01158b38. |
| 0x00AB1280 | 131 | CConnectionPointSink__ctor_with_inner | Constructor for a COM connection point sink with an inner object. Sets vtable to PTR_FUN_01158b78, allocates an inner 0xc-byte COM object with vtable PTR_FUN_01158b38. Stores param_2 as the connection target in both outer and inner objects. |
| 0x00AB1310 | 368 | CWebBrowserEventSink__ctor | Constructor for a web browser event sink COM object. Creates a hierarchy of COM sink objects for handling browser events: inner sink (0xc bytes, vtable PTR_FUN_01158b38), wrapper (0x10 bytes, vtable PTR_FUN_01158b78), and three additional sinks (0xc bytes each with different vtables). Calls AddRef on the target connection point at param_3. |
| 0x00AB14E0 | 232 | CWebBrowserEventSink__dtor | Destructor for the web browser event sink COM object. Queries the connection point for unadvise, releases all child sink objects (vtables 5-7, and inner wrapper at 4), calls Release on the connection point. |
| 0x00AB16A0 | 78 | CWebBrowserEventSink__QueryInterface | IUnknown::QueryInterface for the web browser event sink. Compares the requested IID against a known GUID at DAT_011b0880. Only supports interface IDs 0x28 and 0x29 (IDispatch-related). Returns 0x80040104 (no interface) or 0x80040100 on mismatch. |
| 0x00AB1880 | 300 | CWebBrowserEventSink__on_navigate | Handles web browser navigation events (event ID 0x111/BeforeNavigate2). Extracts the URL from the event args (BSTR/WCHAR), converts to multibyte via WideCharToMultiByte, builds a string, and calls FUN_00ab2d50 to process the URL. Sets navigation status to 0xB. |
| 0x00AB19F0 | 92 | CWebBrowserEventSink__advise_connection | Advises (connects) the event sink to a connection point. Queries the target for IConnectionPointContainer, then finds the correct connection point by IID and calls Advise to register this sink. |
| 0x00AB1B20 | 303 | CWebBrowserControl__QueryInterface | IUnknown::QueryInterface for the web browser control. Supports 6 different IIDs, returning different interface pointers from offsets +0x10 through +0x1c of the object. Returns E_NOINTERFACE (0x80004002) for unknown IIDs. |
| 0x00AB1DE0 | 246 | CWebBrowser__ctor | Constructor for the CWebBrowser class. Initializes all fields to zero, gets screen dimensions via GetSystemMetrics. If option 0x10F (hardware cursor) is enabled, saves cursor state, disables the option, converts cursor coordinates, and repositions the cursor on screen. |
| 0x00AB1F20 | 456 | CWebBrowser__dtor | Destructor for CWebBrowser. Restores cursor state if hardware cursor was changed, hides system cursor. Unadvises the event sink from the connection point, releases the browser COM object, destroys the browser window, and restores the parent window. |
| 0x00AB21F0 | 104 | CWebBrowser__address_bar_wndproc | Subclassed window procedure for the browser address bar. Intercepts Enter key (WM_KEYDOWN/0x100 with VK_RETURN/0xD) and sends WM_COMMAND with ID 1000 to navigate. Suppresses WM_KEYUP/WM_CHAR for Enter. Other messages pass through to the original wndproc. |
| 0x00AB2260 | 79 | CWebBrowser__check_resize | Checks if the browser window was resized by querying current width/height from the COM object. If dimensions differ from stored values (fields 0xD, 0xE), calls FUN_00ab3060 to handle the resize. |
| 0x00AB22B0 | 373 | CWebBrowser__create_browser_window | Creates the embedded web browser window. Uses CoCreateInstance to create an IWebBrowser2, registers the "ROWebBrowser" window class, creates a child window, sets up the OLE container, then creates the address bar (FUN_00ab27a0) and advises the event sink (FUN_00ab2ab0). |
| 0x00AB2430 | 150 | CWebBrowser__disconnect_events | Disconnects the event sink from the browser COM object. Queries for IConnectionPointContainer, unadvises, then destroys the event sink object. |
| 0x00AB24D0 | 310 | CWebBrowser__close_and_cleanup | Fully closes and cleans up the web browser. Hides cursor, disconnects events, releases OLE object, restores window styles, releases COM interface, destroys the browser window. Returns 1. |
| 0x00AB2610 | 187 | CWebBrowser__fix_fullscreen_window | Fixes the browser window when it enters fullscreen mode. Checks if the OLE control window size matches the expected dimensions, and if so resets the window styles and containment to prevent fullscreen. |
| 0x00AB26D0 | 79 | CWebBrowser__get_address_bar_height | Returns the height of the address bar (rebar control) + 4 pixels padding. Returns 0 if the rebar window doesn't exist or is not visible (flag at +0x18). |
| 0x00AB2720 | 120 | CWebBrowser__disable_hardware_cursor | Disables the hardware cursor option (0x10F) for the web browser. Saves current cursor position, converts from client to screen coordinates, sets the system cursor position, and marks the cursor state at +0x3c. |
| 0x00AB27A0 | 420 | CWebBrowser__create_address_bar | Creates the address bar toolbar. Creates a ReBarWindow32 control, inserts a COMBOBOX band for URL input, subclasses the combo's edit child with CWebBrowser__address_bar_wndproc. Stores rebar/combo handles, gets address bar height. |
| 0x00AB2950 | 125 | CWebBrowser__init_ole_container | Initializes the OLE container for the web browser. Allocates a 0x1c-byte container object via FUN_00ab3710, calls its initialization method, then activates the browser control via FUN_00ab3ae0. |
| 0x00AB29D0 | 223 | CWebBrowser__create_container_window | Creates the ROWebBrowser container window. Registers the window class, creates a child popup window, parents the OLE control inside it. |
| 0x00AB2AB0 | 347 | CWebBrowser__advise_and_activate | Creates the event sink, connects to the browser COM object, sets OLE containment, resizes to client area, and advises the connection point for navigation events. |
| 0x00AB2C10 | 189 | CWebBrowser__create_browser_frame | Creates IWebBrowser2 using CoCreateInstance with CLSCTX_LOCAL_SERVER. Sets up the OLE site, disables toolbar, address bar, and menu bar on the browser control. Handles COM error logging. |
| 0x00AB2CD0 | 127 | CWebBrowser__create_browser_inproc | Creates IWebBrowser2 using CoCreateInstance with CLSCTX_INPROC_SERVER. Simpler version that only sets up the OLE site. Handles COM error logging. |
| 0x00AB2D50 | 284 | CWebBrowser__navigate_to_url | Navigates the web browser to a URL string. Converts the multibyte URL to a wide string, creates a BSTR, calls IWebBrowser2::Navigate, shows the window, activates in-place, and updates the address bar text. Returns 1 on success, 0 on failure. |
| 0x00AB2E70 | 442 | CWebBrowser__update_and_manage_cursor | Updates the web browser window state and manages cursor visibility. Checks if browser window is visible, fixes fullscreen mode, handles resize, and toggles between game cursor (hidden) and system arrow cursor based on whether the mouse is over the game window or the browser window. |
| 0x00AB3030 | 40 | CWebBrowser__is_child_window | Checks if param_2 is the browser container window or a direct child of it. Returns 1 if match, 0 otherwise. |
| 0x00AB3060 | 180 | CWebBrowser__resize_browser | Resizes the browser to the given width and height. Adjusts for address bar height if visible. Stores actual content dimensions at fields 0xD and 0xE. Calls IWebBrowser2::put_Width and put_Height. Repositions the rebar toolbar. |
| 0x00AB3120 | 257 | CWebBrowser__toggle_address_bar | Toggles the address bar visibility on the web browser. Shows/hides the rebar control (field 10), adjusts the OLE control position for the address bar height, and resizes the browser content area to fill the remaining space. |
| 0x00AB3230 | 173 | CWebBrowser__update_cursor_visibility | Updates cursor visibility based on whether the mouse is over the game window or the browser. If over the game window (DAT_0173ad68), hides the system cursor. Otherwise shows the arrow cursor. Stores cursor state at offset +0x14. |
| 0x00AB32E0 | 109 | CWebBrowser__set_cursor_state | Sets the cursor visibility state for the web browser. If param_2 is 0, hides the cursor. If 1, shows the arrow cursor and enables hardware cursor processing. Stores state at +0x14. |
| 0x00AB3350 | 105 | CWebBrowser__restore_hardware_cursor | Restores the hardware cursor option (0x10F) when closing the web browser. Converts cursor position from screen to client coordinates, re-enables the game option, and activates the game window. |
| 0x00AB33C0 | 683 | ROWebBrowser__WndProc | Window procedure for ROWebBrowser windows. Handles WM_NCHITTEST/WM_CREATE (tracking active browser), WM_DESTROY (cleanup), WM_SIZE (resize browser), WM_CLOSE, WM_COMMAND with id 1000 (address bar navigate - reads URL, converts to wide, calls IWebBrowser2::Navigate), and filters F1/F11 key events. |
| 0x00AB4060 | 84 | CMoviePlayer__ctor_base | Base constructor for CMoviePlayer. Calls CDialogWnd__on_resize_handler for parent initialization, then sets vtable to PTR_FUN_01158dc8. |
| 0x00AB40C0 | 154 | CMoviePlayer__ctor | Full constructor for CMoviePlayer. Calls CEffect__ctor(1) for base class, sets vtable to PTR_FUN_01158ea4, initializes fields (playing=0, volume=0, state=-1), then creates a CBinkPlayer instance at offset 0x1f*4. |
| 0x00AB4160 | 71 | CMoviePlayer__dtor_base | Base destructor for CMoviePlayer. Resets vtable to PTR_FUN_01158dc8, then calls UIBaseDialog__destructor_2 for parent cleanup. |
| 0x00AB41B0 | 160 | CMoviePlayer__dtor | Destructor for CMoviePlayer. Sets vtable, releases COM object via Release, closes and frees the CBinkPlayer, restores stream volume if saved, then calls CEffect__dtor for base cleanup. |
| 0x00AB4250 | 99 | CMoviePlayer__scalar_deleting_dtor_base | Scalar deleting destructor for CMoviePlayer base class (UITextDisplayWidget). Sets vtable to base vtable, calls UIBaseDialog__destructor_2, and conditionally frees the 0xB4-byte object. |
| 0x00AB42C0 | 184 | CMoviePlayer__scalar_deleting_dtor_full | Scalar deleting destructor for full CMoviePlayer (CEffect-derived). Sets vtable, releases COM object, closes/frees CBinkPlayer, restores sound volume, calls CEffect__dtor, and conditionally frees the 0x88-byte object. |
| 0x00AB4390 | 198 | CMoviePlayer__create_close_button | Creates a close button for the movie player. Allocates and constructs a UITextDisplayWidget, sets its size to 0x7F x 0x2B, positions it relative to params, assigns window type 0x209, and adds it as a child effect. |
| 0x00AB4460 | 409 | CMoviePlayer__render_text_overlay | Renders the text overlay on the movie player. Fills background with black, measures and draws a short text string (from DAT_01158f78) centered in the player area. Text color is 0xFFFFFF normally, 0x4EC7FF when state is 1 (playing). |
| 0x00AB4600 | 125 | CMoviePlayer__render_frame | Renders the movie player frame. Draws a black background, then if the BinkPlayer has a valid frame, scales it maintaining aspect ratio and draws the textured quad centered vertically. |
| 0x00AB4680 | 69 | CMoviePlayer__update_frame | Updates the movie player each tick. Calls CBinkPlayer__update_frame to advance the video, copies the frame to the render surface, triggers a redraw. If playback state is 2 (finished), opens the movie end dialog (window type 0x130). |
| 0x00AB46D0 | 69 | CMoviePlayer__handle_message | Message handler for CMoviePlayer. Handles: event 0x96 (open video file, create texture), 0x97 (pause/unpause via BinkPause), 0x9F (set volume via BinkSetVolume, save/mute stream), 0 with key 0x1B (trigger close dialog), 5 (show close confirmation), 6 (close on confirm). Forwards to CEffect__notify_parent_of_state_change. |
| 0x00AD64B0 | 39 | CToolTipMgr__hide_tooltip | Hides the current tooltip by unregistering its window (offset 0x1C) from CUIWindowMgr, nulling the pointer, and stamping the hide time via timeGetTime. |
| 0x00AD64E0 | 44 | CToolTipMgr__is_target_map | Checks if the given param_2 matches the target map ID. Only valid when mode==1 (offset 0x58) and field 4 is non-zero. Calls FUN_00cf0320 and compares param_2 to the value at offset 0x70 of the result. |
| 0x00AD6510 | 440 | CToolTipMgr__show_tooltip | Shows a tooltip with text (param_2) at position (param_3, param_4) with color (param_5). If param_7 is set, processes the text through FUN_00dff1f0 (encoding conversion). Creates the tooltip dialog widget (0xCC bytes) if it doesn't exist, configures size, text content (split by '#' delimiter), text color (byte-swapped), and positions it clamped to screen bounds. |
| 0x00AD67A0 | 47 | CToolTipMgr__auto_hide_expired_tooltip | Automatically hides the tooltip if more than 100ms have elapsed since it was shown (offset 0x20 timestamp). Unregisters the tooltip window and nulls the pointer. |
| 0x00CA7640 | 121 | CReportStorage__ctor | Constructs CReportStorage. Sets vtable, creates 0x18-byte RB-tree sentinel node with self-referencing pointers. |
| 0x00CA76C0 | 86 | CReportStorage__dtor | Destructor for CReportStorage. Sets vtable, destroys tree and frees sentinel via CReportStorage__destroy_tree_and_sentinel. |
| 0x00CA7720 | 111 | CReportStorage__scalar_deleting_dtor | Scalar deleting destructor for CReportStorage. Calls dtor, then frees 0xC bytes if flag bit 0 set. |
| 0x00CA7790 | 229 | CReportStorage__insert_or_update | Inserts or updates an entry in CReportStorage's RB-tree map. If key not found, creates 0x18-byte node. Sets value at offset 0x14 regardless. |
| 0x00CA7880 | 72 | CReportStorage__find_by_id | Finds an entry in CReportStorage by ID using lower_bound. Returns value at offset 0x14 of found node, or 0 if not found. |
| 0x00CA7960 | 75 | CReportManager__map_lower_bound_00ca7960 | Performs lower_bound search in CReportManager's RB-tree map. Traverses tree comparing keys at offset 0x10, returns iterator with node, found flag, and end sentinel. |
| 0x00CA79B0 | 132 | CReportManager__ctor | Constructs CReportManager. Sets vtable, creates 0x20-byte RB-tree sentinel node, sets initialized flag to 1. |
| 0x00CA7A40 | 67 | CReportManager__free_sentinel_node | Frees the 0x20-byte RB-tree sentinel node of CReportManager if it exists. |
| 0x00CA7A90 | 76 | CReportManager__destroy_tree_and_sentinel | Destroys all RB-tree nodes and frees the 0x20-byte sentinel for CReportManager. |
| 0x00CA7AF0 | 116 | CReportManager__cleanup_and_free | Cleans up CReportManager by calling CReportStorage dtor on sentinel data, then freeing the 0x20-byte sentinel node. |
| 0x00CA7B70 | 78 | CReportManager__free_sentinel_node_variant | Variant of CReportManager sentinel node free. Frees the 0x20-byte RB-tree sentinel if it exists. |
| 0x00CA7BC0 | 87 | CReportManager__destroy_tree_and_free | Destroys all RB-tree nodes and frees the 0x20-byte sentinel for CReportManager (variant). |
| 0x00CA7C20 | 68 | CReportStorage__deinit_wrapper | Wrapper that calls CReportStorage__dtor. Used as a cleanup callback. |
| 0x00CA7C70 | 108 | CReportManager__dtor | Destructor for CReportManager. Sets vtable, destroys RB-tree of 0x20-byte nodes, frees sentinel. |
| 0x00CA7CE0 | 133 | CReportManager__scalar_deleting_dtor | Scalar deleting destructor for CReportManager. Calls dtor, then frees 0x10 bytes if flag bit 0 set. |
| 0x00CA7D70 | 253 | CReportManager__add_report_entry | Adds a report entry to CReportManager. Creates outer map entry (CReportStorage) if needed, then calls CReportStorage__insert_or_update with the inner key-value pair. |
| 0x00CA7E70 | 41 | CReportManager__clear_all | Clears all entries in CReportManager. Destroys all subtree nodes, resets sentinel to empty state. |
| 0x00CA7FB0 | 80 | CReportManager__find_nested_entry | Finds a nested entry in CReportManager. First looks up outer key, then delegates to CReportStorage__find_by_id for the inner key. Returns 0 if outer key not found. |
| 0x00D18AB0 | 232 | CReportManager__insert_or_update_entry | Inserts or updates an entry in the report manager's red-black tree (at offset 0x7FC0). Uses lower_bound to find the insertion point. If the key doesn't exist, allocates a new 0x18-byte node, inserts it. Sets the data field (offset 0x14) to param_3. |
| 0x00E07AA0 | 1285 | CReportSystem__save_report_entry | CReportSystem: save report entry |
| 0x00E07FB0 | 476 | CReportSystem__process_report_string | Processes a report string input. Takes a char* string, builds an STL string from it, splits by whitespace, checks if result has entries, and if so looks up the first token in a hash table. Returns boolean success. Part of CReportSystem. |
| 0x00E48C00 | 649 | CItemList__parse_items_from_buffer | Parses items from a binary buffer into a linked list of CItemNode entries (0x58 bytes each). Copies param_3 bytes from param_4 at offset param_2, then iterates parsing each item via FUN_00e494f0, constructing CItemNode and inserting into the doubly-linked list. Handles STL string cleanup for each parsed item. |
No function here matches that. Search all 47,061 functions instead.