UI Framework
CUIWindowMgr, base controls, layout widgets, UIWidget, UIControl, UIComponent, UITextLabel, CTextPanel, CScrollControl, CListCtrl
| Address | Size | Name | Description |
|---|---|---|---|
| 0x007375E0 | 151 | CUIElement__constructor | Constructor for CUIElement. Sets vtable, initializes fields 7-12 to zero, sets bounding rectangle to (0, 0, screenWidth, screenHeight) using SetRect. |
| 0x00737680 | 427 | CGridOverlay__ctor | Constructor for CGridOverlay. Sets vtable (01119fb4), creates sentinel node for a linked list (field 7), sets bounding RECT to full screen, calculates grid columns/rows from cell size globals (DAT_01329138 x DAT_0132913c). Iterates all cells and adds those fully within the provided RECT parameter to the linked list. Object size 0x24 bytes. |
| 0x00737940 | 93 | CUIElement__destructor | Destructor for CUIElement. Sets vtable, cleans up internal resources, frees vector of 16-byte elements. |
| 0x007379A0 | 129 | CGridOverlay__dtor | Destructor for CGridOverlay. Sets vtable, frees all linked list nodes (0xC bytes each) containing grid cell indices, then frees the sentinel node. Same class as CGridOverlay__ctor (shares vtable at 01119fb4). |
| 0x00737A50 | 114 | CUIElement__scalar_deleting_destructor | Scalar deleting destructor for CUIElement. Calls destructor and optionally frees memory (0x34 bytes). |
| 0x00737AD0 | 35 | CGridOverlay__scalar_deleting_dtor | Scalar deleting destructor for CGridOverlay. Calls destructor and optionally frees memory (0x24 bytes). |
| 0x00737B00 | 570 | CUIElement__find_free_grid_cell | Finds a free cell in the UI element's grid layout. Calculates grid dimensions from visible area and cell size globals, builds a linked list of cell indices within visible bounds, then searches the element's stored entries (offset 0x28 vector) for one whose cell matches a valid slot and has no existing window (find_window_by_field_104 returns 0). Returns the matching entry index, or -1 if none found. |
| 0x00737D40 | 373 | CUIElement__clone_grid_cell_list | Clones the grid cell linked list into a new flat linked list. Allocates new 0xC-byte nodes copying each cell index (field at offset 8), creates a sentinel node, and returns the result in param_2 (sentinel pointer + count). |
| 0x00737EC0 | 48 | CUIGrid__GetCellPosition | Gets the pixel position of a grid cell by index. Computes row = index / columns, col = index % columns. Uses global cell width/height (DAT_01329138/DAT_0132913c) plus origin offset. |
| 0x00737EF0 | 48 | CUIGrid__GetCellPosition2 | Gets the pixel position of a grid cell by index (duplicate of GetCellPosition). Same calculation. |
| 0x00737F20 | 186 | CUIElement__find_cell_at_position | Finds the grid cell index at a given pixel position. Converts (x, y) to grid (col, row) using cell size globals (DAT_01329138, DAT_0132913c) with rounding threshold (DAT_010dd628). Clamps to grid bounds, computes linear index, then searches the stored entries vector (offset 0x28) for a match. Returns cell index or -1 if not found. |
| 0x00737FE0 | 227 | CUIElement__build_free_cell_list | Builds the free cell list for the UI element grid. Recalculates grid dimensions (cols/rows) from bounding rect and cell size globals, iterates all cells, skips those overlapping existing child RECTs (offset 0x1C vector of 16-byte entries), adds remaining cell indices to the free list (offset 0x2C vector). |
| 0x00738D40 | 15 | thunk_to_CUIControl__clear_fields_and_invalidate | Thunk that calls CUIControl__set_fields_0x28_0x29_and_invalidate. Used as a callback to clear UI control state. |
| 0x007435C0 | 111 | CUIElement__ensure_singleton | Lazy-initializes the CUIElement singleton at DAT_0138d42c. Allocates 0x34 bytes via placement new if not already created. Called before using the global CUIElement instance for hit-testing UI elements. |
| 0x007B38A0 | 17 | CUIScrollList__clear_items | Clears all items from the scroll list by calling UIScrollList__clear_and_remove_children, then resets the flag at offset +0xf8 to 0. |
| 0x007B3910 | 436 | CUIScrollList__init_with_rows | Initializes a scroll list UI widget with the specified number of rows. Sets up row heights, scroll parameters, and child widgets. |
| 0x007B3C40 | 50 | CUIScrollList__set_size_and_offsets | Sets the scroll list size via virtual calls (resize + layout), then stores custom x/y offset values at offsets +0x1f and +0x20. |
| 0x007B3C80 | 274 | CUIScrollList__load_item_sprite | Loads and draws an item sprite by item ID. Stores draw position at +0xb4/+0xb8, uses CItemDesc to convert the item ID to a resource path string, loads the sprite resource via CResourceMgr, and draws it with CEffect__draw_sprite. |
| 0x007B41A0 | 33 | CUIScrollList__get_child_value | Returns the value at offset +0x7c of the child widget at the given index. Returns 0 if index is out of bounds (>= count at +0x7c). |
| 0x007B41D0 | 69 | CUIScrollList__hit_test_row | Tests if a y-coordinate hits a valid row in the scroll list. Divides y by row height to get row index, checks bounds against item count. Returns 1 and outputs row index via param_4 if hit, 0 otherwise. |
| 0x007B4440 | 36 | CUIScrollList__get_child_value_alt | Returns an alternate child value at the given index from the scroll list's child array. Returns field +0x80 of the child widget at the specified index, or 0 if index is out of bounds. |
| 0x007B65F0 | 435 | CUIScrollList__render_scrollbar | Renders the scrollbar for a scroll list. Draws: track background tiles, top/bottom caps, up/down arrow buttons, and the draggable thumb (handle) with top cap, tiled middle, and bottom cap. Only renders if scrollbar is enabled (field +0x80 != 0). |
| 0x007B6DB0 | 420 | CUIScrollList__render_items | Renders the visible items in a scroll list. Handles two render modes: normal text (mode 0) and outlined text (mode != 0). Applies strikethrough decoration if flag +0xf8 is set. Calculates visible range based on scroll offset and row height. |
| 0x007B78D0 | 79 | CUIScrollList__on_click_select_row | Handles click on a scroll list row. Calculates which row was clicked based on y-coordinate divided by row height. If valid, sets the selected tab index and captures hover focus. |
| 0x007B7D90 | 57 | CUIScrollList__on_scroll_vertical | Handles mouse wheel scroll on a scroll list. If scrolling is enabled (+0x26 flag), sends command 7 to parent with delta +3 (scroll down) or -3 (scroll up) depending on wheel direction. |
| 0x007B7E10 | 243 | CUIScrollList__update_scroll_state | Updates the scroll state for a scroll list. Calculates scrollable range (total items - visible items), enables/disables scroll flag, clamps scroll position to valid range, updates the scrollbar widget range, and refreshes visibility of each row widget based on current scroll offset. |
| 0x007B80A0 | 41 | CUIScrollList__on_command | Handles commands for the scroll list. Command 6: opens item detail window for the clicked item. Commands 7/9/10: scroll by delta/page-down/page-up respectively. Clamps scroll position and returns the scroll delta applied. |
| 0x007B8760 | 172 | CUIScrollList__select_item_by_id | Selects an item in the scroll list by its ID value. Searches the item array for the matching ID, sets the selection index, adjusts scroll position to make the item visible, updates the scrollbar, and notifies parent via callback 0x87 with the selected item ID (or -1 if not found). |
| 0x007B8810 | 869 | CUIScrollList__populate_from_tree | Populates scroll list from achievement tree. Mode 0: adds completed first then uncompleted. Mode 1: adds only completed+unclaimed achievements. Sorts list after each insertion. Resets scroll and selects first item. |
| 0x007DEC20 | 340 | UIGridItemWnd__constructor | Constructor for a grid item window widget. Sets vtable to PTR_FUN_01127d3c, initializes grid layout parameters: cell count (0x23), spacing (0x14, 0xA, 0xA), padding (0x1E, 5, 2), and other display properties. Zeroes out item data arrays and state fields. |
| 0x007DEEA0 | 95 | UIGridItemWnd__destructor | Destructor for the grid item window. Sets vtable, clears the pointer vector, then calls parent destructor (FUN_008a4e90). |
| 0x007DEF00 | 119 | UIGridItemWnd__scalar_deleting_destructor | Scalar deleting destructor for grid item window. Sets vtable, clears vector, calls parent destructor, and optionally frees this (0x118 bytes) if param_2 & 1. |
| 0x007DEF80 | 474 | UIGridItemWnd__toggle_item_group | Toggles visibility of a group of grid items when Ctrl is held. Gets item group ID from param_2, iterates all child items, checks if they share the same group ID (via atoi of item property string at +0xEC). Toggles group visibility based on current state of the clicked item. |
| 0x007DF160 | 488 | UIGridItemWnd__layout_items | Lays out grid items in rows and columns. Calculates items per row based on available width, cell size (0xB4), and margins. For each visible item (checking property string for non-empty), positions it in a grid pattern, sets visibility, and calls positioning methods. Starts from page offset (0x110 * 0x104). |
| 0x007DF350 | 113 | UIGridItemWnd__draw_grid_cells | Draws grid cell backgrounds/borders. Iterates through items per page (0x10C), calculates grid position based on cell size and margins, calls FUN_008a9000 for each cell position. |
| 0x007DF3D0 | 170 | UIGridItemWnd__get_item_group_id | Gets the group ID of a grid item by converting its property string to integer via atoi. Extracts string from item property (FUN_00ddd5a0), converts to int, and cleans up strings. |
| 0x007DF480 | 161 | UIGridItemWnd__collect_checked_items | Collects checked/selected item IDs into a vector of shorts. Iterates all child items, adds those with non-null pointer and checked state (offset +0x30 != 0) using their 2-byte ID at +0xEC. If count < required minimum (offset 0xDC), shows error message (msg ID 0x87A) and returns 0. Otherwise returns 1. |
| 0x007DF530 | 41 | UIGridItemWnd__hide_all_items | Hides all child items in the grid by calling FUN_0086af70(1) (set invisible) on each item in the child vector (offsets 0xEC-0xF0). |
| 0x007DF560 | 23 | UIGridItemWnd__init_and_resize | Initializes child widgets (via FUN_007df580) and resizes the grid window using dimensions from offsets +0x14 and +0x18. |
| 0x007DF580 | 605 | UIGridItemWnd__create_child_widgets | Creates child widgets for the grid item window: two navigation button widgets (0x120 bytes each) with sprite sets for up/down arrows (IDs 0xB8/0xB9), a scrollbar widget (0xF0), a text label widget (0xB0) with font color 0xFFFF00FF, and a sprite background widget (0xB4). Each widget is configured with bitmaps and added as child. |
| 0x007DF7E0 | 73 | UIGridItemWnd__serialize_item_list | Serializes the grid item list. Inserts header value 0x96E as 4 bytes, then appends the short vector data (all checked item IDs) into the output buffer via insert_range. |
| 0x007DF830 | 25 | UIGridItemWnd__init_and_resize_2 | Same as init_and_resize - creates child widgets and resizes using dimensions from offsets +0x14 and +0x18. Duplicate entry point. |
| 0x007DF850 | 709 | UIGridItemWnd__render | Renders the grid item window. Gets background colors, draws background fill, draws grid cell positions, hides all items, then for each visible item at current page offset: positions item, draws item content with item sprite/text via FUN_008a9040. Finishes with render state cleanup (FUN_008d0920). |
| 0x007DFB20 | 125 | UIGridItemWnd__on_item_click | Handles click on a grid item. If param_3 < 0x11, delegates to parent handler. Otherwise resolves item ID (FUN_007dfd60), finds the matching child widget, toggles its checked state, then calls toggle_item_group to update related items. |
| 0x007DFBA0 | 341 | UIGridItemWnd__show_item_tooltip | Shows a tooltip for a grid item at the given position. Resolves item ID, gets item property string, builds tooltip text using CItemDB__build_item_tooltip_string, formats with item resource (msg 0xB7), and displays the tooltip at the item's position via FUN_00ad6510. |
| 0x007DFD10 | 66 | UIGridItemWnd__on_mouse_wheel | Handles mouse wheel events for the grid item window. If scrolling is enabled (offset 0x45 != 0), scrolls up or down by clamping to max 3 rows. Sends scroll message (type 7) to the parent via virtual call. |
| 0x007DFD60 | 228 | UIGridItemWnd__hit_test_item | Hit tests a screen position against grid items. Converts x,y to grid cell coordinates, accounts for page offset, then checks if click is within the circular hit radius (offset 0xD8) of the cell center. Returns the item ID at +0xEC if hit, or -1 if no hit. |
| 0x007DFE50 | 184 | UIGridItemWnd__update_item_property | Updates a property on a grid item. Extracts item string via FUN_00ddd5a0, updates the item data, sets a secondary value, and refreshes the item display. |
| 0x007DFF10 | 162 | UIGridItemWnd__update_scrollbar | Updates the scrollbar state for the grid. Calculates total rows from item count and items per row, clamps current page offset (0x110) to valid range, updates max scroll range (0x114), configures scrollbar widget (0xFC) range and position, and triggers visual refresh. |
| 0x007DFFC0 | 156 | UIGridItemWnd__position_child_widgets | Positions child widgets (buttons, scrollbar, label, sprite) relative to the grid window dimensions. Each widget offset is hardcoded (e.g., up arrow at -0x6E,-0x19, down arrow at -0x3C,-0x19, scrollbar at -0xE,3). Updates scrollbar state after repositioning. |
| 0x007E0060 | 294 | UIGridItemWnd__resize_and_layout | Resizes the grid and recalculates layout. Computes visible columns and rows based on window dimensions, cell size (0x2D), margins, and padding. Clamps dimensions to min 5 and max 10 columns, min 3x and max 6x cell height. Updates stored columns (0x41), rows (0x42), and total visible cells (0x43). Calls resize callback. |
| 0x007E0190 | 70 | UIGridItemWnd__send_confirm_packet | Sends a confirmation packet for grid item selection. Constructs packet with ID 0x974, adds two fields via FUN_00c7d7d0, converts to network packet and sends via FUN_00c7ce30, then opens URL 0xE3. |
| 0x007E01E0 | 112 | UIGridItemWnd__OnMessage | Message handler for grid item window. Handles: msg 2 (toggle item group), msg 6 (button clicks - 0xB8 confirm, 0xB9/0xC9 send packet), msg 7 (scroll with page update), msg 0xE (resize request), msg 0x22 (populate items from short array, create child widgets), msg 0x3C (update item property). Returns 0. |
| 0x007E04B0 | 509 | UIGridItemWnd__confirm_selection | Confirms the current item selection. Collects all checked item IDs into a short vector, validates minimum count against 0xDC threshold. If valid, serializes selection (header 0x96E + item IDs) into a packet buffer, sends it via network. Shows error message (0x87A) if too few items selected. Returns success boolean. |
| 0x007E06B0 | 272 | UIGridItemWnd__populate_items | Populates the grid with items from a short array. Sets total item count (0x100), creates child widget objects (0x10C bytes each) for each item with properties: size 0x78x0xC, map name labels, item ID from short array at +0xEC, initially hidden, selectable flag set. Adds each to child vector and calls resize_and_layout. |
| 0x007E07C0 | 305 | UIGridItemWnd__show_item_tooltip_2 | Shows a tooltip for a grid item (alternate version). Same logic as show_item_tooltip: extracts item property, builds tooltip, formats with msg 0xB7, displays via FUN_00ad6510. |
| 0x007E0900 | 39 | UIGridItemWnd__scroll_page | Scrolls the grid by a delta amount (param_2). Adds delta to page offset (0x44/0x110), updates scrollbar, and triggers visual refresh via virtual call at +0x98. |
| 0x00816290 | 99 | UIWidget_00816290__scalar_deleting_dtor | Scalar deleting destructor; sets vtable 0112be24, size 0x8c, calls base dtor 00a79e90 |
| 0x008392C0 | 78 | CScrollControl__RecalcLayout | Recalculates the scroll control layout. Iterates through pages calling FUN_0083d090/FUN_0083cda0 in a chain until all items are laid out, then calls finalization functions. |
| 0x00839420 | 1081 | CScrollControl__SearchAndHighlight | Searches for and highlights text within a scroll control. Splits the input text into segments based on the available width, measuring each segment's pixel width via CEffect__measure_text_size. If a segment fits within the remaining line width, it's added as a single entry. Otherwise, it formats the text using CScrollControl__FormatRichText to split across lines. Builds a vector of 24-byte string entries (text + width data) for the caller to render. |
| 0x00839860 | 1222 | CScrollControl__FormatRichText | Formats rich text by iterating through characters, measuring each multibyte character's width via CEffect__measure_text_size. If cumulative width exceeds the max width constraint, creates a substring and sets the overflow flag. Returns the fitted text portion. |
| 0x00839D60 | 401 | CScrollControl__AppendFormattedLine | Factory method that creates CTextLine pair objects based on message type ID. Handles types 0x1B5, 0x1B6, 0x1D0, 0x1F5, 0x205, 0x21B, 0x232, 0x233. Default case creates an empty text line pair with two empty strings. |
| 0x00839FA0 | 150 | CScrollControl__MeasureText | Measures text dimensions for the scroll control. Uses FUN_00a80340 to compute width and height based on font properties. Returns 0,0 if param_1 is null. |
| 0x0083A040 | 83 | CScrollControl__DecrementX | Decrements the X scroll position by 1. If position reaches 0, sets dirty flag at offset 0x48. Cleans up temporary string. |
| 0x0083A0A0 | 88 | CScrollControl__IncrementX | Increments the X scroll position by 1. If position was 0, sets dirty flag at offset 0x48. Cleans up temporary string. |
| 0x0083A100 | 122 | CScrollControl__PageUp | Pages up in the scroll control by decrementing the page pointer by 8 bytes. Updates the display position from the previous page entry, or resets to initial position if at the first page. Sets dirty flag. |
| 0x0083A180 | 579 | CScrollControl__ParseFontTagAttributes | Parses FONT tag attributes (SIZE and COLOR) from a string. Extracts numeric SIZE value and 6-digit hex COLOR code. Byte-swaps RGB color from RRGGBB to internal format. Pushes position+color entry to the page vector at offset 0x40. Sets dirty flag. |
| 0x0083A3D0 | 83 | CScrollControl__DecrementY | Decrements the Y scroll position by 1. If position reaches 0, sets dirty flag at offset 0x48. Cleans up temporary string. |
| 0x0083A430 | 88 | CScrollControl__IncrementY | Increments the Y scroll position by 1. If position was 0, sets dirty flag at offset 0x48. Cleans up temporary string. |
| 0x0083A490 | 345 | CScrollControl__CreateAnimatedSpriteElement | Creates an animated sprite element for embedded emoticons/images. Looks up category+ID from a data source, loads sprite and animation resources via CResourceMgr, initializes with timeGetTime for animation timing. Sets element size to 50x50. Returns new element or null if lookup fails. |
| 0x0083A5F0 | 551 | CScrollControl__CreateTextWidgetFromStrings | Creates a UIWidget text element from a text string and a vector of styled string entries. Measures text size, constructs a UIWidget via UIWidget__ctor, sets text content and layout. Copies string entries from the input vector to the widget's internal string list at offset 0x3C. Returns null if text is empty. |
| 0x0083A820 | 254 | CScrollControl__ProcessCommand | Processes an embedded command in text content. Gets the formatted line pair for the given type, searches for the command string, and if found creates a hyperlink entry. Appends the matched text to the output buffer and sets dirty flag. Returns updated parse position. |
| 0x0083A920 | 275 | CScrollControl__CreateTextStringElement | Creates a CTextElement of string type (vtable PTR_CTextElement__string_scalar_dtor). Initializes with an embedded string at offset 0x7C, sets the line-break flag at offset 0x79 to 1. Sets element size to 25x25 and copies the input string content. |
| 0x0083AA40 | 330 | CScrollControl__SetItemEntry | Appends a new empty line entry (3 ints = 12 bytes) to the content lines vector at offset 0x70. Grows the vector if needed via std__vector_12byte__insert_with_grow. |
| 0x0083AB90 | 345 | CScrollControl__AddHyperlink | Adds a hyperlink entry (48 bytes) to the hyperlink vector at offset 0x68. Stores current position (offset 0x1C), color (offset 0x24), bold/italic flags from offsets 0x10/0x14, link type, and the hyperlink text string. Clears dirty flag at offset 0x48. |
| 0x0083ACF0 | 556 | CScrollControl__CreateStyledTextElement | Creates a styled font text element (vtable PTR_CTextElement__font_scalar_dtor). Measures text dimensions, sets font size (12pt default), foreground/background colors (0xFFFFFF default), bold/italic flags, alignment, and text string. If auto-size flag is set, measures total text width and resizes the element. |
| 0x0083AF20 | 46 | CScrollControl__IteratePages | Iterates through all content characters up to the total count at offset 0x5C. For each position, tries ParseContentAtOffset first; if it doesn't advance, falls back to ProcessCharacter. Continues until all content has been processed. |
| 0x0083AF50 | 324 | CScrollControl__RenderSkillRequirements | Renders skill requirement entries from a skill tree node. Iterates through detail entries, loads sprites from resource arrays, and renders them as sprite quads at scaled positions. Only processes entries with valid IDs and slot indices less than 2. Requires non-null skill tree and layout objects. |
| 0x0083B0A0 | 165 | CScrollControl__DrawBgImage | Draws the background image for the scroll control. Loads a sprite from the filename stored at offset 0x7C, renders it at position (0,0) with full opacity. |
| 0x0083B220 | 37 | CScrollControl__RedrawChild | Redraws the child widget at offset 0x10, offsetting the draw position by the scroll control's own position (offsets 0x1C and 0x20). |
| 0x0083B250 | 37 | CScrollControl__ForwardMouseDown | Forwards mouse down event to child widget at offset 0x10, adjusting coordinates by scroll position (0x1C, 0x20). Calls vtable+0x64. |
| 0x0083B280 | 37 | CScrollControl__ForwardMouseMove | Forwards mouse move event to child widget at offset 0x10, adjusting coordinates by scroll position. Calls vtable+0x7C. |
| 0x0083B2B0 | 325 | CScrollControl__ShowItemTooltip | Shows an item tooltip for the scroll control. Creates a CItemDesc, copies the item string from offset 0x7C, accumulates parent offsets for positioning, builds a tooltip string via CItemDB, and displays it via CToolTipMgr__show_tooltip with color code. Only shows if DAT_013495bc is non-zero. |
| 0x0083B400 | 37 | CScrollControl__ForwardMouseUp | Forwards mouse up event to child widget at offset 0x10, adjusting coordinates by scroll position. Calls vtable+0x6C. |
| 0x0083B430 | 37 | CScrollControl__ForwardRightDown | Forwards right mouse down event to child widget at offset 0x10. Calls vtable+0x78. |
| 0x0083B460 | 231 | CScrollControl__UpdateAnimationFrame | Updates the animation frame for an animated text element. Uses timeGetTime for timing, calculates current frame based on elapsed time and frame duration. Advances frame loop counter when all frames in a cycle complete. Calls vtable+0x98 to refresh display after frame update. |
| 0x0083B550 | 217 | CScrollControl__ShowItemInfoWindow | Opens an item info window when an item element is clicked. Creates a CItemDesc from the string at offset 0x7C, then opens a window of type 0xC (item info) via CGameObject__create_window_by_type, passing the item description data through vtable+0x94. |
| 0x0083B630 | 40 | CScrollControl__ForwardDoubleClick | Forwards double-click event to child widget at offset 0x10. Calls vtable+0x80. |
| 0x0083B660 | 40 | CScrollControl__ForwardRightDblClick | Forwards right double-click event to child widget at offset 0x10. Calls vtable+0x84. |
| 0x0083B690 | 23 | UIControl__invoke_parent_redraw | Calls parent virtual method at offset 0x8c if parent pointer at +0x10 is non-null |
| 0x0083B6B0 | 314 | CScrollControl__ProcessClickTarget | Processes a click target from the hyperlink vector. Extracts the first entry as text and second entry as item ID (via atoi). Creates a CItemDesc, then opens an item info window (type 0xC) via CGameObject__create_window_by_type to display the clicked item's details. |
| 0x0083B7F0 | 754 | CScrollControl__OnMessage | Handles navigation messages for the scroll control. Parses vector entries to extract coordinates and map data. For most cases, delegates to CNavigator__process_navigation_request. Special case for value -0xDE (map navigation) sets a navigation target with optional prefix string based on type 3. |
| 0x0083BD80 | 617 | CScrollControl__ParseFormatTag | Parses embedded format tags using regex patterns. First tries matching emoticon tags like <e=(\d{1,3})...>, then tries item link tags like <e=(\d{1,3})\s+(\d{1,3})...>. On match, creates a hyperlink entry (type 0x236) and advances the parse position past the tag. |
| 0x0083BFF0 | 982 | CScrollControl__ParseAndBuildContent | Parses HTML-like formatting tags from the content string. Handles <FONT...> (pushes font attributes), </FONT> (pops font), <B>/</B> (bold toggle via offset 0x10), <I>/</I> (italic toggle via offset 0x14). Returns updated parse position after the closing '>'. |
| 0x0083C3D0 | 706 | CScrollControl__MatchAndDispatchCommand | Matches the current text substring against up to 8 predefined command strings. Tries each command in sequence; on the first match, calls CScrollControl__ProcessCommand to handle the embedded command. Returns the updated parse position or unchanged if no command matched. |
| 0x0083C6A0 | 489 | CScrollControl__ParseItemImageTag | Parses inline item image tags matching regex <i=(\d{1,7})...>. On match, creates a hyperlink entry (type 0x241) for the item image and appends the matched text content. Advances the parse position past the tag. Returns updated position. |
| 0x0083C890 | 1294 | CScrollControl__ParseItemIdEmbed | Parses embedded item ID references in the format '_nItemID_' followed by hex digit characters. Extracts the item ID via atoi, looks up the item name via CItemDesc, formats it as a clickable hyperlink entry (type 600). Advances parse position past the item ID string. Returns updated position. |
| 0x0083CDA0 | 572 | CScrollControl__ProcessCharacter | Processes a single character during content parsing. Handles special characters: newline ('\n') adds a hyperlink break, tab ('\t') triggers special handling. For regular text, if dirty flag is set at offset 0x48, creates a hyperlink entry first, then appends the character text. Returns updated parse position. |
| 0x0083D090 | 341 | CScrollControl__ParseContentAtOffset | Main content parser dispatcher. First checks for '^RRGGBB' color codes. Then tries each parser in priority order: ParseItemIdEmbed, ParseFormatTag, ParseItemImageTag, MatchAndDispatchCommand, ParseAndBuildContent. Returns the first parser's position that advances past the current offset, or the original position if none match. |
| 0x0083D1F0 | 357 | CScrollControl__LayoutAndPositionElements | Lays out all content elements by iterating through line entries at offset 0x70. For each line, finds the tallest element, then positions elements according to alignment: 0=left, 1=right (reverse order), 2=center. Accumulates total content height into offset 0x7C (negative if empty). Uses line spacing from offset 0xC. |
| 0x0083D360 | 763 | CScrollControl__ParseHyperlinkMarkup | Parses hyperlink markup from text content. Searches for start/end delimiters to extract link text and link target URL/data. Creates a CItemLink entry with the extracted text and target. If delimiters are not found or data is empty, creates an empty link entry. Returns the result structure with two strings and a link flag. |
| 0x0083D660 | 993 | CScrollControl__SetContent | Sets the content of a scroll control by splitting the input text into segments using a delimiter string. Creates a vector of string segments where each segment is a portion between delimiters. Handles the trailing segment after the last delimiter. Returns a 3-element structure (begin, end, capacity pointers) for the resulting vector. |
| 0x0083DA50 | 229 | CScrollControl__SetTextAndStyle | Sets the text content and style for a scroll control. Copies the string, updates font/color/alignment properties at offsets 0x1F-0x25. If auto-size flag is set, measures text width and resizes the control. |
| 0x0084A970 | 33 | UIWidget__set_position_and_refresh | Sets widget position (x at offset 0x1c, y-4 at offset 0x20) then registers in the UI window grid. |
| 0x0084EF70 | 149 | UIProgressBarWidget__ctor_with_strings | Constructor for a UIProgressBarWidget variant with string fields. Calls base UIWidget ctor, sets vtable to PTR_UIProgressBarWidget__scalar_deleting_dtor_01133108. Initializes two SSO string fields at offsets 0x20 and 0x26. |
| 0x0084F860 | 625 | UITextWidget__copy_ctor | Copy constructor for UITextWidget. Copies text properties from source object (param_2): position coords (offsets 0x7c-0x84), color RGB (0x90-0x98), font size clamped to max 0x169, text strings (std::string copies at 0xbc and 0xd8), alignment flags, and various display parameters. Allocates a linked-list node for text lines. |
| 0x0084FAE0 | 474 | UITextWidget__default_ctor | Default constructor for UITextWidget. Calls base UIWidget constructor (FUN_00a79a90), sets vtable, initializes color to white (0xFF,0xFF,0xFF), font size to 255, shadow enabled flag, std::string members for text content, and linked-list node for text lines. Sets various display defaults including alignment and position. |
| 0x0084FE60 | 104 | UIProgressBarWidget__ctor | Constructor for UIProgressBarWidget. Calls base UIWidget ctor, sets vtable, stores progress bar type/variant param, and sets widget type ID to 0xBD at offset 0xb. |
| 0x008509B0 | 67 | UIWidget__delete_child_node_12byte | Deletes a child node object of 0xC (12) bytes. Checks if the pointer at offset 4 of the object is non-null, and if so, calls operator_delete with size 0xC. Used for linked list node cleanup in UI widget hierarchies. |
| 0x00850A00 | 67 | UIWidget__delete_child_node_20byte | Deletes a child node object of 0x14 (20) bytes. Checks if the pointer at offset 4 of the object is non-null, and if so, calls operator_delete with size 0x14. Used for linked list node cleanup in UI widget hierarchies. |
| 0x00850AA0 | 104 | UIWidget__free_aligned_and_delete_node | Frees aligned vector storage and deletes a 0x14 byte node. First calls std__vector_free_aligned on the node's data if it exists, then operator_delete on the 0x14 byte node itself. Two-phase cleanup for nodes containing vector data. |
| 0x00850CD0 | 68 | UIWidget__dtor_string_field | Simple destructor helper that calls STL_string_dtor on a single string field. Used as a cleanup function for widgets with one string member. |
| 0x00850F80 | 86 | UIWidget__dtor_two_string_fields | Destructor helper that destroys two std::string fields. Calls STL_string_dtor twice in sequence. Used for cleanup of widgets with two string members. |
| 0x00850FE0 | 65 | UIWidget__dtor_one_string_field | Destructor helper that destroys one std::string field. Identical to UIWidget__dtor_string_field at 00850cd0 but at a different address. Used for cleanup of a single string member. |
| 0x00852520 | 144 | UIProgressBarWidget__scalar_deleting_dtor | Scalar deleting destructor for UIProgressBarWidget. Sets vtable, destroys 2 std::string members, calls base widget dtor. Frees 0xC4 bytes if param_2 & 1. |
| 0x00852B20 | 99 | UIProgressBarWidget__scalar_del_dtor2 | Scalar deleting destructor variant for UIProgressBarWidget. Sets vtable, calls base widget dtor. Frees 0x8C bytes if param_2 & 1. |
| 0x00853810 | 38 | UIWidget__measure_text_width | Measures the pixel width of a std::string for UI layout. Handles SSO check, then calls FUN_00a80580 with font size 0xC to get the rendered width. Used during layout calculations. |
| 0x00853840 | 1617 | UITextWidget__process_embedded_links | Processes embedded link tags in text content. Searches for a global delimiter string (DAT_0133a090) in the input text, extracts segments between delimiters, processes link-type substrings (e.g., item links via UIEditBox), and reconstructs the final display string with links resolved. Used for chat message rendering with clickable item links. |
| 0x008540C0 | 104 | UITextWidget__clear_text_lines | Clears all text line entries from a UITextWidget. Iterates the linked list at offset 0xFC, calls FUN_00a82e50 to release each text line resource, then frees all list nodes and resets the list to empty (count at 0x100 = 0). |
| 0x00854240 | 103 | UITextWidget__set_text_if_fits | Sets text on a UI text widget only if the rendered text width fits within param_2 pixels. Resizes the widget, assigns the text string, measures width via FUN_00a80580 with font 0xC. Returns 1 if text fits, 0 otherwise. |
| 0x008542B0 | 433 | UITextWidget__clear_text_lines_with_vectors | Clears all text line entries from a UITextWidget that uses vector-based storage. Iterates linked list at offset 0x11C, releases vector elements via FUN_00a82e50, unlinks and frees each list node (0x14 bytes each), and resets count at 0x120 to 0. |
| 0x00854470 | 3129 | UITextWidget__process_item_link | Processes item link references in text content. Handles packet type 0x1B6 (item link). Searches for delimiter patterns in text, extracts link metadata (item ID, card slots), resolves item names, and manages the linked list of text line objects. Uses CItemLink to build formatted display strings. |
| 0x008550B0 | 43 | UITextWidget__set_scroll_position | Sets the scroll position of a text widget. Clamps param_2 to max value at offset 0xE8, stores it at both 0x80 and 0x7C, then calls FUN_00acf590 to update the scroll display. |
| 0x008550E0 | 112 | UITextWidget__auto_scroll_to_view | Automatically scrolls the text widget to keep the current content visible. Checks if the viewer is the local player, then adjusts scroll position if the content extends beyond the visible area. Scrolls forward or backward based on which half of the widget the overflow is in. |
| 0x00855150 | 52 | UITextWidget__reset_scroll_to_max | Resets the scroll position to the maximum (end of content). If the widget belongs to the local player, uses the global scroll value; otherwise sets both 0x7C and 0x80 to the max value stored at 0xE8. |
| 0x00855190 | 20 | UIWidget__forward_virtual_call_0x28 | Forwards a virtual call to offset 0x28 on the child widget at offset 0x10 if it exists. Simple delegation pattern. |
| 0x00856EB0 | 91 | UITextWidget__render_cursor_blink | Renders the blinking cursor for a text widget. Uses timeGetTime with 500ms period to toggle visibility. When visible and widget has focus (FUN_00ab1120 check), draws the cursor character "\|" at position 1 with font size 0xC using the widget's color from offset 0. |
| 0x00856F10 | 153 | UITextWidget__position_text_line_objects | Positions text line objects within a text widget. Iterates linked list at offset 0x11C, for each line's vector of child objects: checks if the line index (field 0x7D) falls within the visible range (param_4 to param_5). Visible lines at the target index (param_6) get positioned with offset; others get moved offscreen (-100,-100). |
| 0x00857040 | 140 | UIWidget__draw_selection_highlight | Draws a text selection highlight rectangle. Calculates position from param_2 (x start) and param_3 (width), clamps to widget bounds. Gets the highlight color via CColorPicker (index 6,2), then draws the filled rectangle using FUN_00a7bd60 with the widget's height from offset 0x18. |
| 0x00857420 | 1848 | UITextWidget__parse_item_link_encoded_string | Parses an encoded item link string from chat text. Allocates a copy of the text string, then iterates character by character looking for field delimiters (matched against a 14-char delimiter table). Decodes base62-encoded fields for item ID, card slots, and other item metadata. Populates the output param_2 vector with decoded integer values. Handles special delimiter types: type 7 calls parse_item_link_fields, type 9 calls UIWidget__handle_drag_message for drag-link data. Non-delimiter characters are accumulated into a temporary string buffer for base62 decoding. |
| 0x00857B60 | 2149 | UITextWidget__find_link_at_position | Searches for embedded link/tag patterns in text at a given position. Used for detecting item links and chat links for click handling. Returns match information for the link at the specified text position. |
| 0x008583D0 | 1120 | UITextWidget__render_single_line | Renders a single-line text widget. Handles text alignment, shadow rendering, and color formatting. Supports both simple and gradient text colors. |
| 0x00858830 | 93 | UIWidget__clamp_and_position_child | Positions a child widget clamped within bounds. Takes screen coords (param_1, param_2) and a widget struct (param_3). Clamps the position to the widget's bounds using fields at offsets 5-8 (x, y, width, height), then calls the widget's virtual position function at vtable+0x10. |
| 0x00859050 | 138 | UIWidget__check_overlap | Checks if two UI widgets overlap. Builds bounding rects from each widget's position (0x1C/0x20) and size (0x14/0x18), then calls FUN_00af64a0 to test intersection. Returns non-zero if overlapping. |
| 0x008590E0 | 134 | UITextWidget__contains_item_link | Checks if a std::string contains an item link delimiter. Searches for two different global delimiter patterns (DAT_0133a090 and DAT_0133a0a8). Returns 1 if either delimiter is found, 0 otherwise. |
| 0x00859170 | 134 | UITextWidget__contains_chat_link | Checks if a std::string contains a chat link delimiter. Searches for two global delimiter patterns (DAT_0133a168 and DAT_0133a180). Returns 1 if either is found, 0 otherwise. Similar to contains_item_link but uses different delimiters. |
| 0x00859220 | 577 | UITextWidget__build_item_link_tooltip | Builds an item link tooltip string. Checks if the text starts with "0000T0" prefix for old-style item IDs. For old-style: parses item ID from link and gets formatted string via CTreeMap. For new-style: parses encoded item link data, builds item description, and constructs tooltip text. Returns success flag. |
| 0x00859470 | 382 | UITextWidget__setup_item_link_display | Sets up item link display in a text widget. Creates or reuses a UIListDetailWidgetA at offset 0x144. Builds item tooltip text, copies the string to the internal buffer at 0xD8, then inserts the tooltip text into the input manager (CInputMgr). Finally calls CUIChatWindow__init_from_config. |
| 0x008595F0 | 3996 | UITextWidget__parse_and_create_item_link_widgets | Parses text containing item links and creates individual widget elements for each link. Searches for link delimiters in the input text (DAT_0133a090). For each link found: checks if old-style (0000T0 prefix) or encoded format. Old-style: parses item ID, gets formatted name from CTreeMap. Encoded: parses item link data, builds tooltip text. Creates CEffect text widgets for each link, measures widths, and appends them to a linked list. Also accumulates non-link text segments. |
| 0x0085A5D0 | 664 | UITextWidget__build_tagged_text | Builds a tagged text string by wrapping content in angle brackets. Initializes output string, appends '<', then calls CEffect__draw_multiline_text_with_links to get formatted content, appends that, then appends '>'. Used for creating tagged/formatted text representations. |
| 0x0085BDE0 | 1643 | UIWidget__draw_stateful_background_and_text | Draws a stateful widget with background sprite and centered text. Checks 0x138 entry vector for matching state. Based on state (0/1/2) and overlay flag (0xAC), loads appropriate background sprite. If text at 0x120 exists (offset 0x130 flag), draws it with shadow/outline using state-specific colors and positioning. Supports custom text layout from matched entries. |
| 0x0085C450 | 154 | UIWidget__draw_state_sprite_with_text | Draws a simple state-dependent sprite with text overlay. Returns early if flag 0xAD is not set. Loads sprite from DAT based on state (0/1/2). Draws the sprite at (0,0), then draws text from offset 0x7C at (0,0) in black with font size 0xC. |
| 0x0085C4F0 | 413 | UIWidget__draw_bordered_content | Draws a bordered content area with colored fill. Computes border/fill colors from member offsets 0x24-0x29 with optional dimming (flag 0x35 subtracts 0x1E from RGB). Draws outer border with background colors, inner 1px-inset border with fill colors. Updates scroll offset at 0x2D, calls virtual draw at 0xDC, and processes tab control text if present at 0x51. |
| 0x0085C690 | 550 | UIWidget__draw_frame_borders | Draws a decorative frame with tiled border sprites. Renders corner sprites (top-left, top-right, bottom-left, bottom-right) and fills horizontal edges with tiled 12px-wide middle sprites. Also draws a centered bottom sprite and a toggle/checkbox sprite at (3,3) that changes based on flag at 0xB0. |
| 0x0085C9A0 | 511 | UIWidget__draw_colored_button | Draws a button-style widget with colored background and centered text. Measures text width, samples pixel color at (0x16, 2) for the 3D border. Based on state (0/1/2), fills a colored rectangle using RGB values from different offsets. State 2 draws with offset shadow text; states 0-1 draw centered text with 1px shadow offset. Text color is white (0xFFFFFF) foreground, black (0x000000) shadow. |
| 0x0085CBF0 | 165 | UIWidget__draw_skinned_content | Draws widget content using skin-based colors. Queries CSkinSelector and CSkinManager to get the current skin color. Stores RGB components at offsets 0x90-0x98. Calls virtual draw function at 0x98, then notifies parent with the color, calls virtual draw at 0xDC, and triggers child repaint if present. |
| 0x0085CCA0 | 315 | UIWidget__draw_color_bordered_rect | Draws a color-bordered rectangle, identical pattern to draw_bordered_content. Computes border/fill colors with optional dimming (flag 0x35), draws outer border with background RGB, inner 1px-inset with fill RGB. Updates scroll position at 0x2D and calls virtual draw at 0xDC. Does NOT handle tab control text (simpler variant). |
| 0x0085CE40 | 322 | UIWidget__draw_conditional_level_sprite | Draws a conditional sprite based on game settings and player level. Checks a game option flag, then if job level is non-zero and base level is zero, loads and draws a sprite. Also loads a secondary resource by string copy-construction and draws it if the same level conditions are met. |
| 0x0085D150 | 155 | UIWidget__draw_3d_border_with_checkbox | Draws a 3D bordered area with a checkbox/radio sprite. Fills the background with white (or highlighted yellow 0x7DFAFF if selected at DAT_01738228). Draws a 3D border at (0,0) and an inner border at (2,2) in gray (0xC3C3C3). Loads and draws a checkbox sprite at (3,3) that changes state based on flag at 0x88. |
| 0x0085D1F0 | 614 | UIWidget__draw_icon_and_text_entries | Draws a list entry with optional icon and text. First draws a prefix icon sprite if 0xBD is set (centered vertically). Then draws a main icon from path at 0xA0 (supports .bmp, .spr, and raw texture formats). Finally iterates text entries from 0x84 vector and draws each with outline using colors from 0x90/0x94 with global font settings from DAT_01348f88/DAT_016d3b06. |
| 0x0085D470 | 472 | UIWidget__draw_button_with_text | Draws a button/label widget with centered sprite and text. If no sprite data (0xC8/0xE0 both zero), draws a simple state-based sprite (0x30: normal/hover/pressed) with text. Otherwise loads a sprite from path at 0xB8 with state-specific variant at 0xD0, centers it vertically, and draws text below using font size from 0xE8 with color from 0xEC or default gray (0xB5B5B5). |
| 0x0085D650 | 103 | UIWidget__draw_header_bar | Draws a header/title bar for a widget. If flag at 0x8C is non-zero, loads and draws a sprite from the string at offset 0x7C. Otherwise, fills a 2px-high colored rectangle at the top using the color at 0xA8, with background color from 0xAC. |
| 0x0085DA90 | 93 | UIWidget__draw_state_sprite | Draws a simple state-based sprite. If flag at 0x8C is set and state (0x30) is 0, loads and draws sprite from string at 0x7C. If state is 1, clears the area with white color (0xFFFF00FF). For state 0x8C=0, does nothing. |
| 0x0085DFC0 | 166 | UIWidget__draw_indexed_sprite | Draws an indexed sprite based on two state values. Uses value at 0x80 (0-3) to select a base format string pattern, and value at 0x30 (+1) as the index parameter. Formats the sprite name via lua_util_sprintf, loads via CMessageStringTable + CResourceMgr, and draws at (0,0). |
| 0x0085E080 | 500 | UIWidget__draw_colored_text_list | Draws a list of colored text lines with a 3D border. Returns early if text entry vector (0x84-0x88) is empty. Draws a 3D border using color from 0xC8. Maps display mode value (0x9A: 0-9) to font style flags (0x14-0x1C). Iterates text entries (0x18-byte each), drawing each line at x=6 with per-entry color from vector at 0xBC (falling back to default at 0x90). Supports both shadow and multiline shadow rendering modes based on flag at 0x9C. |
| 0x0085E280 | 236 | UIWidget__draw_icon_with_text_entries | Draws an icon sprite with text entries below. If icon path at 0xA0 exists and is loadable, draws the icon centered horizontally at (0, 0) as a sprite sheet frame, adjusting text start y to 0x1C. Iterates text entries from 0x84 vector, drawing each with outlined text using CEffect__draw_text_offset_with_outline, with global font settings from DAT_01348f88/DAT_016d3b06. |
| 0x0085EB50 | 53 | UIWidget__on_mouse_move_delegate | Delegates mouse move events to a child widget. If not disabled (0xD4 == 0), plays a sound via FUN_00aa9b40. Forwards the adjusted mouse coordinates (adding widget position 0x1C/0x20) to the child widget's virtual function at vtable+0x64. |
| 0x0085EE10 | 33 | UIWidget__forward_mouse_down_to_parent | Forwards mouse down event to parent widget (field 0x10) via vtable+0x64, adjusting coordinates by widget position (0x1C, 0x20). |
| 0x0085EE40 | 33 | UIWidget__forward_mouse_down_to_parent_alt | Alternate mouse down forwarder to parent widget via vtable+0x64 with adjusted coordinates. Identical code to forward_mouse_down_to_parent. |
| 0x0085EED0 | 243 | UIWidget__on_mouse_up_with_action | Mouse up handler with button action dispatch. If not disabled and this is the focused widget: checks if mouse is inside bounds. Inside: sets state to 1, sends button action (msg 6) to parent with button ID. Special handling for IDs 0xB8/0x141 which flush children text to network. Outside: resets state to 0. Clears hover window after. |
| 0x0085EFD0 | 46 | UIWidget__on_lose_focus | UI widget lose focus handler. Clears focus state and notifies parent when this widget loses input focus. |
| 0x0085F000 | 33 | UIWidget__forward_double_click_to_parent | Forwards double-click event to parent widget (field 0x10) via vtable+0x7C, adjusting coordinates by widget position offset (0x1C, 0x20). |
| 0x0085F030 | 33 | UIWidget__forward_double_click_to_parent_alt | Alternate double-click forwarder to parent via vtable+0x7C with adjusted coordinates. Identical code to forward_double_click_to_parent. |
| 0x0085F060 | 252 | UIWidget__on_mouse_up_button_action | Mouse up handler for button widgets. If not disabled and this is the focused widget, checks if mouse is inside bounds. If inside: sets pressed state, sends button action (msg 6) with button ID and value to parent. Special handling for button IDs 0xB8 and 0x141 which send children text to network first. Supports toggle mode (field 0x47). Clears hover state after. |
| 0x0085F180 | 398 | UIWidget__on_mouse_over_with_tooltip | Mouse over handler with tooltip and Lua behavior query. For buttons with IDs 0xC9/0xCA, calls Lua function "GetBeHaviorOfWindow" to get custom tooltip behavior. Shows tooltip from field 0x25 (tooltip text string) if tooltip flag (0x29) is set. If not disabled, forwards to vtable+0x6C (mouse over visual handler). |
| 0x0085F310 | 127 | UIWidget__on_mouse_over_show_tooltip | Mouse over handler that shows tooltip and calls visual handler. If not locked (field 0x1F), calls vtable+0x6C. If tooltip flag (0x36) is set, calculates tooltip position with Y offset -20 and shows tooltip from field 0x32 or 0x3D (alternate text if state is 0 and field 0x41 is set). |
| 0x0085F390 | 107 | UIWidget__on_mouse_over_show_tooltip_alt | Mouse over handler that shows tooltip with X offset 10. If not disabled (field 0x35), calls vtable+0x6C. If tooltip flag (0x33) is set, shows tooltip from field 0x2F with position offset (10, -20). |
| 0x0085F400 | 101 | UIWidget__on_mouse_over_show_tooltip_b | Mouse over handler that shows tooltip. Calls vtable+0x6C then shows tooltip from field 0x28 with offset (10, -20) if tooltip flag (0x2C) is set. |
| 0x0085F480 | 51 | UIWidget__on_mouse_over_forward_to_child | Mouse over handler that runs the tooltip/Lua handler (on_mouse_over_with_tooltip) then forwards to child widget at field 0x114 via vtable+0x70, if child exists. Adjusts coordinates by widget position (0x1C, 0x20). |
| 0x0085F4C0 | 50 | UIWidget__on_mouse_over_forward_to_root | Mouse over handler that runs the tooltip/Lua handler then forwards to root parent widget via vtable+0x70 with adjusted coordinates. |
| 0x0085F500 | 114 | UIWidget__on_mouse_leave_with_tooltip | Mouse leave handler with tooltip. If field 0xB4 is set, forwards to parent via vtable+0x70. If tooltip flag (0xA4) is set, calculates tooltip position from fields 0xAC/0xB0 and shows tooltip from string at field 0x94. |
| 0x0085F580 | 93 | UIWidget__on_mouse_leave_show_tooltip | Shows tooltip on mouse leave/hover. If tooltip flag (0xA4) is set, calculates position with offset (-6, -4) and shows tooltip from string at field 0xC0. |
| 0x0085F600 | 196 | UIWidget__on_mouse_move_update_hover | Mouse move handler that updates widget hover state (field 0xC). If this is the focused widget and mouse is inside bounds, sets state to 2 (hover). If mouse is outside, sets to 0. If not focused but inside, sets to 1 (normal). Notifies parent window (DAT_0145785c) with message 0x10F and hover state. Calls vtable+0x98 (redraw) on state change. |
| 0x0085F6D0 | 145 | UIWidget__on_drag_update_position | Drag position update handler. Calculates new widget position based on mouse delta from drag start. Uses a direction mode switch (field 0x9C, 0-7) to determine axis behavior: modes 0-1 affect X only, 2-3 affect Y only, 4-7 affect both. Notifies parent with message 0x0E including direction mode and new position. |
| 0x0085F7A0 | 207 | UIWidget__on_mouse_move_hover_and_forward | Mouse move handler that updates hover state and forwards to child. Updates field 0xC based on focus and bounds: 2=focused+inside, 1=unfocused+inside, 0=outside. Notifies parent (DAT_0145785c) with message 0x10F. Then forwards mouse move to child widget at field 0x114 via vtable+0x6C if child exists. |
| 0x0085F870 | 39 | UIWidget__forward_mouse_over_to_root | Forwards mouse over event to root parent widget via vtable+0x6C, adjusting coordinates by widget position (0x1C, 0x20). |
| 0x0085F8A0 | 33 | UIWidget__forward_mouse_over_to_parent | Forwards mouse over event to parent widget (field 0x10) via vtable+0x6C, adjusting coordinates by widget position (0x1C, 0x20). |
| 0x0085F8D0 | 44 | UIWidget__forward_mouse_leave_and_over | Forwards mouse leave (vtable+0x70) to self, then forwards mouse over (vtable+0x6C) to parent widget with adjusted coordinates. |
| 0x0085F900 | 68 | UIWidget__on_mouse_out_reset_state | Mouse out handler. Checks if mouse coordinates are outside widget bounds (fields 0x7/0x8 for position, 0x5/0x6 for size). If outside and state (0xC) is nonzero, resets state to 0 and redraws (vtable+0x98). |
| 0x0085F950 | 35 | UIWidget__on_right_click_set_cursor | Right-click handler. If field 0xAC is set, calls request_entity_update_zero. Otherwise sets game cursor mode to 2 (action cursor) via CGameMode__set_state. |
| 0x0085F980 | 61 | UIWidget__on_hover_set_cursor_state | Hover cursor state handler. Sets game cursor mode based on whether point (param_2, param_3) is inside widget bounds (0x14=width, 0x18=height). Inside: cursor mode 2 (action), outside: cursor mode 0 (default). |
| 0x0085F9E0 | 61 | UIWidget__on_hover_set_cursor_state_alt | Alternate hover cursor state handler. Identical to on_hover_set_cursor_state - sets cursor mode 2 if point is inside bounds, mode 0 if outside. |
| 0x0085FA20 | 94 | UIWidget__on_mouse_move_set_cursor_state | Mouse move cursor state handler with focus check. If this is not the focused widget and mouse is outside bounds, sets cursor mode 0. Otherwise (focused or inside), sets cursor mode 2 (action cursor). |
| 0x0085FA80 | 33 | UIWidget__forward_drag_to_parent | Forwards drag event to parent widget (field 0x10) via vtable+0x78, adjusting coordinates by widget position (0x1C, 0x20). |
| 0x0085FAB0 | 33 | UIWidget__forward_drag_to_parent_alt | Alternate drag event forwarder to parent via vtable+0x78 with adjusted coordinates. Identical code to forward_drag_to_parent. |
| 0x0085FAF0 | 415 | UIWidget__on_update_bgm_resource | Update handler for a BGM/music resource widget. Checks game settings for a display option, adjusts widget size (0x1C vs 0x18). Loads the current map's BGM resource, updates stored BGM bounds (fields 0x1F/0x20) from the map entry (offsets 0xAC/0xB0). Loads and checks resource readiness, triggering a redraw if the resource is newly ready. |
| 0x0085FC90 | 156 | UIWidget__check_resource_loaded_and_refresh | Checks if the resource at path (field 0x28 string) is loaded and ready. Tries loading as one resource type via RTDynamicCast, falls back to another type. If the resource's ready flag (offset 0x24D or 0x13D) is set, triggers a redraw (vtable+0x98). |
| 0x0085FD30 | 237 | UIWidget__sync_position_to_map_surface | Syncs widget position to a map surface. Looks up the current map BGM/surface reference, gets surface dimensions (0xac/0xb0), and repositions the widget using scaled screen coordinates via virtual function 0x10. |
| 0x0085FE60 | 63 | UIWidget__notify_parent_style_change | Notifies parent widget of style changes. Sends two events to parent via vtable 0x94: event 0xD with value from 0xC0, and event 6 with value from 0x2C and constant 0xE2. |
| 0x0085FEA0 | 36 | UIWidget__move_to_parent_offset_80 | Dispatches to parent virtual function 0x80 with this widget's position (0x1C, 0x20) plus the provided offsets. |
| 0x0085FED0 | 36 | UIWidget__move_to_parent_offset_80_v2 | Dispatches to parent virtual function 0x80 with this widget's position (0x1C, 0x20) plus the provided offsets. Variant 2. |
| 0x0085FF00 | 36 | UIWidget__move_to_parent_offset_84 | Dispatches to parent virtual function 0x84 with this widget's position (0x1C, 0x20) plus the provided offsets. |
| 0x0085FF30 | 36 | UIWidget__move_to_parent_offset_84_v2 | Dispatches to parent virtual function 0x84 with this widget's position (0x1C, 0x20) plus the provided offsets. Variant 2. |
| 0x0085FF60 | 60 | UIWidget__notify_scroll_step | Sends a scroll step notification to the parent. If field 0x4D is set, sends event type 7 with value 3 (scroll down) or -3 (scroll up) based on the sign of param_2. |
| 0x0085FFA0 | 23 | UIWidget__dispatch_to_parent_8c | Dispatches to parent widget's virtual function 0x8c if parent (at offset 0x10) is not null. |
| 0x0085FFC0 | 47 | UIControl__notify_scroll_direction | Sends scroll up (0x12) or scroll down (0x13) notification based on direction parameter |
| 0x0085FFF0 | 26 | UIWidget__dispatch_to_scrollbar_8c | Dispatches to the scrollbar widget (at offset 0x114) via its virtual function 0x8c, if the scrollbar exists. |
| 0x00860010 | 15 | UIWidget__dispatch_to_parent_8c_unchecked | Dispatches to parent widget's virtual function 0x8c unconditionally (no null check on parent pointer). |
| 0x00860020 | 15 | UIWidget__dispatch_to_parent_8c_v2 | Dispatches to parent widget's virtual function 0x8c unconditionally (no null check). Variant 2 for a different widget class. |
| 0x00860030 | 68 | UIWidget__wrap_text_to_width | Wraps text content to fit widget width. Calculates available width from widget size (0x14) minus padding, accounting for scrollbar (at 0x130). Calls CEffect__split_text_into_lines_by_width to perform the actual word-wrapping into the line buffer at 0x174. |
| 0x008632D0 | 40 | UIWidget__on_resize_store_size | Handles resize events by storing current dimensions. Calls base resize handler FUN_00a82eb0, then stores the current width (0x14) and height (0x18) into fields 0xA8 and 0xAC respectively. |
| 0x00863BF0 | 114 | UIWidget__handle_click_focus_next | Handles left-click by advancing focus to the next sibling or child widget. On left click (param_2==0): checks if this is the last visible sibling; if so, focuses next child, otherwise focuses next sibling. Then notifies parent. Other button clicks delegate to UIWidget__default_event_handler. |
| 0x00864140 | 114 | UIWidget__handle_click_focus_next_alt | Handles left-click by advancing focus to the next sibling or child widget. Same logic as UIWidget__handle_click_focus_next but for a different widget class vtable entry. |
| 0x008641C0 | 2837 | UIWidget__default_event_handler | Default event handler for UI widgets. Handles common events like focus, key input, mouse clicks, resize notifications. Delegates to parent when appropriate. |
| 0x00864D60 | 65 | UIProgressBarWidget__handle_event | Event handler for progress bar widget. Event 0x22: sets min (0x21) and max (0x22) values. Event 0x3C: if current value matches param_4, invalidates the widget. |
| 0x00864DB0 | 795 | UITextWidget__handle_text_event | Handles text-related events for a text widget. Event 6: sets value at 0x20. Event 0x1C: also sets at 0x20. Event 0x22: sets text content with font size mapping (1-9 mapped to font IDs 0x14-0x1C), handles embedded CR characters by truncating, strips color codes, then calls FUN_00868880 to reflow text and invalidates. |
| 0x00865180 | 29 | UIWidget__handle_set_active_index | Simple event handler that sets the active index (offset 0xC) on event 0xD and invalidates the widget. Returns 0. |
| 0x00865200 | 29 | UIWidget__handle_set_active_index_alt | Same as UIWidget__handle_set_active_index. Sets active index on event 0xD and invalidates. Used by a different widget class. |
| 0x00865360 | 24 | UIWidget__handle_set_flag | Simple event handler that stores param_4 into field 0xD4 when receiving event 0x22 (set value). Returns 0. |
| 0x00865380 | 44 | UIWidget__set_text_from_cstr | Sets text on a widget from a C-string. Calculates string length via null-terminator scan, then calls STL_lib_func_004fa8f0 to assign the string data. |
| 0x008656B0 | 44 | UIWidget__set_text_from_cstr_alt | Sets text on a widget from a C-string. Calculates string length via null-terminator scan, then calls STL_string_assign_buffer to assign the string data. Alternate version for a different widget field. |
| 0x00865970 | 37 | UITextWidget__set_color_and_shadow_value | Sets text color (offset 0x2A) and shadow color (offset 0x2B) as integer values, then invalidates the widget via virtual call at vtable+0x98. The color at 0x2A may be a packed RGB value. |
| 0x008659A0 | 662 | UITextWidget__set_text_with_resource_resolve | Sets text content while resolving embedded resource references. Assigns text to string field, stores param_3 flag at 0xBD. Searches text for ".bmp" extension references. If a BMP resource exists (via CResourceMgr), stores the resource path at offset 0x28. If resource not found, falls back to original text. Calls virtual resize (0x04) and/or invalidate (0x98) depending on param_3 flag. |
| 0x00865CE0 | 43 | UITextWidget__set_font_params | Sets font rendering parameters on a text widget. Stores font ID at 0x9C, font size at 0x98, bold flag at 0xA0, and italic flag at 0xA1. |
| 0x00865D10 | 27 | UITextWidget__set_font_size_enum | Sets the font size on a text widget using an enum value. Maps logical sizes 1-9 to internal font IDs (0x14-0x1C) stored at offset 0xCC. |
| 0x00865DD0 | 42 | UITextWidget__set_text_color_and_invalidate | Sets text color (R, G, B) at offsets 0x24, 0x25, 0x26 and invalidates the widget for redraw. |
| 0x00865E00 | 34 | UIWidget__set_position_xyz | Sets the 3D position of a widget. Stores x at 0x9C, y at 0xA0, z at 0xA4. |
| 0x00865E30 | 114 | UITextWidget__set_all_line_colors | Sets color on all text line child objects. Iterates linked list at 0x11C, for each line's vector of child objects: sets color value (param_2) at offsets 0xB4, 0xB8, and 0xBC on each child object. |
| 0x00865EB0 | 3880 | UITextWidget__set_multiline_content_with_search | Sets multiline text content with town info search integration. Clears existing line entries, processes text with optional '#' truncation, performs CTownInfoMgr searches on substrings from the param_2 structure (fields at 0x1C, 0x34, 0x4C, 0x64, 0x7C), formats combined search result strings, pushes each as a line entry. Measures all line widths to find the maximum, sets widget width (0x2E), handles scroll background images based on param_4 flag, resizes and invalidates. |
| 0x00866DE0 | 531 | UITextWidget__set_single_line_entry | Sets a single text line entry. Clears existing entries in the line vector (0x21-0x22), pushes the given text as a new 0x18-byte string entry, measures text width (min 32px), resizes widget to fit (width = textWidth+8, height = fontSize+8), and invalidates. |
| 0x00867000 | 1843 | UITextWidget__set_dual_line_entry | Sets text with two line entries (main text + optional secondary text). Clears existing entries, pushes main text, optionally processes secondary text (with town info search), measures both entries' widths (taking the maximum), and resizes widget. Uses per-character width measurement. Height = line count * (fontSize+2) + 6. |
| 0x00867740 | 535 | UITextWidget__set_single_line_entry_alt | Sets a single text line entry (alternate). Similar to UITextWidget__set_single_line_entry but with different resize logic: uses per-character width measurement, swaps width/height params in resize call. Stores measured width at offset 0x30. |
| 0x008679F0 | 16 | UIWidget__set_field_0x11c | Simple setter that stores param_2 at offset 0x11C. |
| 0x00867AA0 | 44 | UIWidget__set_text_from_cstr_alt2 | Sets text from a C-string. Calculates length, assigns via STL_lib_func_004fa8f0. Yet another variant used by a different widget field. |
| 0x00867AD0 | 220 | UITextWidget__set_sprite_name_with_extensions | Sets sprite resource names from a base filename. Copies param_1 to a 256-byte buffer, strips the last 2 characters, then assigns the truncated name + ".bmp" to one string field and the truncated name + ".pal" to another. Used to set both the bitmap and palette file paths for a sprite resource. |
| 0x00867BB0 | 21 | UIWidget__set_index_and_invalidate | Sets the active index (offset 0xC) and invalidates the widget for redraw. |
| 0x00867BD0 | 193 | UITextWidget__set_text_with_wrap_check | Sets text content with automatic line wrapping check. Assigns text to two string fields, sets param_3 flag at 0x23, clears 0x29. Measures text width; if it exceeds widget width, calls FUN_00868880 to word-wrap. Otherwise resizes widget to fit text and invalidates. |
| 0x00867CA0 | 206 | UITextWidget__set_text_with_auto_resize | Sets text with automatic widget resizing. Assigns to two string fields, sets shadow flag, clears 0x29. If text is wider than widget, word-wraps via FUN_00868880. Otherwise resizes widget to exact text width and invalidates. |
| 0x00867D70 | 165 | UITextWidget__set_text_force_resize | Sets text and always resizes widget to text width. Assigns to two string fields, sets shadow flag (0x23), clears 0x29. Measures text width with font params and resizes widget unconditionally, then invalidates. |
| 0x00867E20 | 154 | UITextWidget__set_text_expand_only | Sets text and expands widget width if text is wider. Only resizes if text width exceeds current widget width. Assigns text to two string fields, sets shadow flag, clears 0x29, and invalidates. |
| 0x00868180 | 51 | UITextWidget__set_text_and_invalidate | Sets text from a C-string and invalidates the widget. Assigns the string via STL_lib_func_004fa8f0 and calls virtual invalidate (0x98). |
| 0x008681C0 | 105 | UITextWidget__set_text_pair | Sets the same text string to two different string fields, stores param_3 at offset 0x23, clears 0x29, and invalidates the widget. |
| 0x00868570 | 52 | UITextWidget__set_color_and_shadow | Sets text color (R,G,B packed into offset 0x2A) and shadow color (param_5 at offset 0x2B), then invalidates the widget. |
| 0x008685B0 | 39 | UIWidget__set_fields_1f_20_21_invalidate | Sets three fields (0x1F, 0x20, 0x21) from params and invalidates the widget. |
| 0x00868750 | 154 | UITextWidget__set_text_auto_width | Sets text and auto-sizes widget width to fit. Assigns text to two string fields, clears 0x29, invalidates, measures text width using font params from 0x26-0x28, and resizes widget to text width + 2. |
| 0x008687F0 | 142 | UITextWidget__set_numeric_text | Sets the widget text from a numeric value. Formats param_2 as a string using lua_util_sprintf with format string from DAT_010dbe28 (%d), assigns to both string fields, clears 0x29, and invalidates. |
| 0x00868880 | 882 | UITextWidget__word_wrap_text | Performs word-wrapping on text content. Splits text into lines based on widget width, using font measurement functions. Handles multi-byte characters (Korean/Japanese) and resizes the widget height to fit all wrapped lines. |
| 0x00868C00 | 1491 | UITextWidget__word_wrap_and_layout | Performs word wrapping with full layout calculation. Extended version of word_wrap_text that also handles embedded objects, text styling, and multi-line positioning. |
| 0x008691E0 | 167 | UITextWidget__set_text_with_wrap | Sets text content with word wrapping. Assigns text to two string fields, sets shadow flag (0x23), clears 0x29. Measures text width; if it exceeds widget width (accounting for shadow padding), calls FUN_00868880 to wrap. Always invalidates. |
| 0x00869290 | 242 | UITextWidget__set_text_centered | Sets text content with horizontal centering. Assigns text to two string fields (0x2A and another), sets shadow flag at 0x23, clears 0x29 and 0x36. Measures text width; if it fits, calculates centered x-offset (0x36) = (width - textWidth) * 0.5. If too wide, word-wraps via FUN_00868880. |
| 0x00869390 | 535 | UITextWidget__add_or_update_styled_text_entry | Adds or updates a styled text entry in the vector at 0x120 (0x34-byte structs). Each entry has: text string, position, font size, font ID, bold flag, italic flag, and two additional params. If an entry with the same index already exists, updates it in place. Otherwise appends a new entry to the vector. Cleans up temp string on exit. |
| 0x00869700 | 44 | UIWidget__assign_cstr_to_field | Assigns a C-string to a std::string field. Calculates length and calls STL_lib_func_004fa8f0. |
| 0x00869730 | 47 | UIWidget__assign_cstr_safe | Safely assigns a C-string to a std::string field. Null-checks param_1 before computing length and calling STL_lib_func_004fa8f0. |
| 0x00869760 | 47 | UIWidget__assign_cstr_safe_alt | Safely assigns a C-string to a std::string field (alternate). Same null-check pattern as UIWidget__assign_cstr_safe. |
| 0x00869790 | 47 | UIWidget__assign_cstr_safe_alt2 | Safely assigns a C-string to a std::string field (alternate 2). Same null-check pattern. |
| 0x008697C0 | 25 | UIWidget__set_offset_ac_b0 | Sets two values at offsets 0xAC and 0xB0 on a widget. Used for position or size overrides. |
| 0x008697E0 | 16 | UIWidget__set_field_0xb4 | Simple setter for field at offset 0xB4. |
| 0x008697F0 | 16 | UIWidget__set_field_0x9c | Simple setter for field at offset 0x9C. |
| 0x00869800 | 16 | UIWidget__set_flag_0x138 | Sets a single byte flag at offset 0x138. |
| 0x00869810 | 1378 | UITextWidget__layout_text_with_links | Lays out text content with embedded item links for a UITextWidget. Processes the input text through UITextWidget__process_embedded_links, splits it into lines by width via CEffect__split_text_into_lines_by_width, processes item links via CItemLink__build_display_text, then parses and creates item link widgets for each line. Updates line count at offset 0x4f (param_1[0x13c]). Handles special scrollbar mode (param_1[0x4d]) with adjusted width. Finally calls virtual 0xd4 to set the processed text. |
| 0x00869D80 | 158 | UIWidget__reposition_if_overlapping | Repositions a widget if it overlaps with another widget (param_2). Checks bounding rect intersection via FUN_00af64a0. If overlapping: moves to the right edge of param_2 + 3px (param_3=0) or left edge - 3px (param_3=1) to avoid overlap. |
| 0x00869E30 | 549 | UITextWidget__navigate_input_history_next | Navigates to the next entry in the text input history. Manages a vector of strings (fields 0x47-0x49) with current index at 0x50. If at the last entry and it exceeds max count (0x52), erases the oldest entry. Calls virtual 0xe0 to refresh and virtual 0xd4 to set the displayed text to the next history entry. Shows empty text constant (DAT_010d4ee8) when past the end. |
| 0x0086A060 | 1255 | UITextWidget__add_or_find_input_history_entry | Adds a new text entry to the input history or finds the matching existing entry. Searches the string vector (fields 0x47-0x49) for a match with the current text (field 0x36). If found, sets index (0x4a) to that position. If not found, appends a new entry (possibly removing oldest if over limit of 0x1d). Calls virtual 0xd4 to set displayed text. When no history exists, initializes the total count (0x4a). |
| 0x0086A550 | 130 | UIWidget__position_selection_start_marker | Positions the text selection start marker (global DAT_01457a24). Converts text position to screen coords via FUN_00a7d870, clamps to screen bounds (DAT_01389638), then positions the marker widget below the text widget. |
| 0x0086A5E0 | 130 | UIWidget__position_selection_end_marker | Positions the text selection end marker (global DAT_01457a2c). Same logic as position_selection_start_marker but for the end-of-selection handle. |
| 0x0086AF70 | 42 | UIWidget__set_enabled_state | Sets enabled/disabled state on a UI widget. Stores param_2 at this+0xE0, calls virtual function at vtable+0x38 with inverted state, then calls virtual at vtable+0x98 to refresh display. |
| 0x0086AFA0 | 116 | UIListItem__ctor_with_id | Constructor for a list item with an integer ID and empty SSO string. Copies ID from param_3, initializes string fields to empty (size=0, capacity=0xF for SSO), sets additional field to 0. |
| 0x0086C120 | 103 | UIWidgetC__ctor | UIWidgetC constructor. Calls CEffect__ctor as base, sets vtable to UIWidgetC vtable (PTR_UIWidgetC__scalar_deleting_dtor_01135cf0), initializes flag=0 at offset 0x7C and color=0xFFFFFF at offset 0x80. Object size 0x84 bytes. |
| 0x0086C240 | 103 | UIWidget__ctor_0086c240 | Constructs UI widget with vtable 0x01134488, initializes two flags to 0 |
| 0x0086C2B0 | 93 | UIWidget__ctor_0086c2b0 | Constructs UI widget with vtable 0x011342D8, initializes flag at offset 0x1F to 0 |
| 0x0086C4C0 | 103 | UIWidget__ctor_0086c4c0 | Constructs UI widget with vtable 0x01136BEC, index field set to -1 |
| 0x0086C7B0 | 114 | UIListItem__ctor | Constructs list item widget, calls base ctor 0x0086c8d0, sets RGB fields to 0xFF |
| 0x0086C830 | 147 | UIListItemEx__ctor | Constructs extended list item, inherits from UIListItem, adds enabled=1 and type=0xC fields |
| 0x0086E3A0 | 104 | UIProgressBar__ctor | Constructs progress bar widget from UIThemeColors, max value=100 |
| 0x0086E7D0 | 106 | UIWidgetTypeB__ctor | Constructor for UIWidgetTypeB. Calls CEffect__ctor base, sets UIWidgetTypeB vtable, zeroes 2 state fields at offsets 0x21-0x22. |
| 0x0086EC10 | 219 | UITextWidget__ctor | Constructs text widget with SSO string, font size 12, text color 0xFFFFFF, bold/italic flags |
| 0x0086F2B0 | 144 | UIWidget__init_linked_list_0x180 | Initializes linked list with 0xC byte sentinel at object offset 0x180, zeroes related fields |
| 0x0086F520 | 33 | UIWidget__release_child_at_9 | Releases child widget at offset 9 via vtable call, sets pointer to null |
| 0x0086F8C0 | 92 | UIWidget__release_child_at_9_0086f8c0 | SEH wrapper: releases child widget at offset 9 via vtable call, sets to null |
| 0x0086FFA0 | 71 | UIWidget__dtor_0086ffa0 | Destructor for widget vtable 0x01134488: resets vtable then calls base cleanup |
| 0x0086FFF0 | 71 | UIWidget__dtor_0086fff0 | Destructor for widget vtable 0x011342D8: resets vtable then calls base cleanup |
| 0x00870230 | 71 | UIWidget__dtor_00870230 | Destructor for widget vtable 0x01136BEC: resets vtable then calls base cleanup |
| 0x00870420 | 71 | UIListItem__dtor | Destructor for list item: resets vtable, calls list base dtor |
| 0x00870470 | 84 | UIListItemEx__dtor | Destructor for extended list item: resets 2 vtables, calls list base dtor |
| 0x00871960 | 71 | UIWidgetTypeB__dtor | Simple destructor for UIWidgetTypeB. Sets vtable, calls base UI destructor CEffect__dtor. |
| 0x00872070 | 164 | UIWidget__clone_child | Clones a child widget. If param_2+0x24 is non-null, calls virtual clone function (vtable[0]) on the child to create a copy into local buffer. Passes result to FUN_0089f0e0, then destroys temp if allocated separately. |
| 0x00872360 | 99 | UIWidgetC__scalar_deleting_dtor | Scalar deleting destructor for UI widget (0x84 bytes). Sets vtable, calls base destructor, optionally frees memory if param_2 bit 0 is set. |
| 0x008723D0 | 112 | UIWidgetD__scalar_deleting_dtor | Scalar deleting destructor for UI widget (0x9C bytes, dual inheritance). Sets two vtable pointers, calls base destructor, optionally frees memory. |
| 0x00872440 | 99 | UIWidgetE__scalar_deleting_dtor | Scalar deleting destructor for UI widget (0x84 bytes). Sets vtable, calls base destructor, optionally frees memory. |
| 0x008724B0 | 99 | UIWidgetF__scalar_deleting_dtor | Scalar deleting destructor for UI widget (0x80 bytes). Sets vtable, calls base destructor, optionally frees memory. |
| 0x008726C0 | 99 | UIWidgetG__scalar_deleting_dtor | Scalar deleting destructor for UI widget (0x84 bytes). Sets vtable, calls base dtor, optionally frees. |
| 0x008728E0 | 112 | UIListItemEx__scalar_dtor | Scalar deleting destructor for extended list item (0x138 bytes), calls UIListBase__dtor |
| 0x00872A70 | 112 | UIWidgetH__scalar_deleting_dtor | Scalar deleting destructor for UI widget (0xB8 bytes, dual inheritance). Sets two vtables, calls base dtor, optionally frees. |
| 0x00872AE0 | 99 | UIWidgetI__scalar_deleting_dtor | Scalar deleting destructor for UI widget (0xA8 bytes). Sets vtable, calls base dtor, optionally frees. |
| 0x00873050 | 99 | UIWidgetJ__scalar_deleting_dtor | Scalar deleting destructor for UI widget (0x9C bytes). Sets vtable, calls base dtor, optionally frees. |
| 0x008730C0 | 99 | UIWidgetK__scalar_deleting_dtor | Scalar deleting destructor for UI widget (0x90 bytes). Sets vtable, calls base dtor, optionally frees. |
| 0x00873330 | 112 | UIWidgetL__scalar_deleting_dtor | Scalar deleting destructor for UI widget (0xAC bytes, dual inheritance). Sets 2 vtables, calls base dtor, optionally frees. |
| 0x00874190 | 99 | UIWidgetTypeB__scalar_deleting_dtor | Scalar deleting destructor for UIWidgetTypeB (0x8C bytes). Sets vtable, calls base dtor, optionally frees. |
| 0x00874A40 | 933 | UIWidget__create_formatted_entry | Creates a formatted text entry for a UI widget. Gets formatted string from CTreeMap, creates dialog entry via CEffect__create_text_widget, formats IP/port/name strings with snprintf, pushes to list of 0x1C8-byte entries, constructs final packet stream result with string data. |
| 0x00874E50 | 640 | UIWidget__add_wrapped_text_lines | Adds word-wrapped text lines to a UI widget. Wraps text using CEffect__split_text_into_lines_by_width with widget width, iterates result strings, strips trailing CR, formats each with param_4 prefix using sprintf, and calls virtual method at vtable+0xEC to add each line. |
| 0x008750D0 | 544 | UIWidget__add_text_with_links | Adds text to a UI widget, handling item links. If text contains an item link delimiter, calls virtual method directly. Otherwise word-wraps using CEffect__split_text_with_color_and_links, allocates C strings for each line, and calls virtual method at vtable+0xE4 per line. |
| 0x00879300 | 137 | UITabCtrl__select_tab | Selects a tab in UITabCtrl. Validates param_2 is within range and different from current selection. Updates selected index at this+0x7C. Calls virtual method on child widget at this+0xD8 to update visual, repositions child, notifies parent via virtual callback with event 0x16, refreshes display. |
| 0x00879390 | 1164 | UITextWidget__process_item_link_tags | Processes item link tags in text widget content. Searches for link delimiters in text using _mbsstr. Iteratively finds format tags, extracts text between tags, resolves item links/tooltips, wraps resolved text in angle brackets, appends to output string. Returns processed string with links replaced by resolved names. |
| 0x0087A3C0 | 347 | UITabCtrl__remove_tab_at_index | Removes a tab at the given index from UITabCtrl. Calls virtual method on child widget to update display, checks if removed tab is currently shown. Shifts data in 3 parallel vectors (data, strings, flags) to fill the gap using memcpy/move. Erases corresponding bit from bool vector. Resets selected tab and auto-resizes. |
| 0x0087A520 | 120 | UITabCtrl__clear_all_tabs | Clears all tabs from UITabCtrl. Destroys all strings in tab label vector (0xB4-0xB8), resets all 4 parallel vectors (labels, data, flags, bool), zeroes selected tab and sets default item height to 12. Calls auto-resize. |
| 0x0087B4B0 | 69 | UIWidget__init_left_aligned | Initializes a UI widget with left alignment (mode=0). Sets alignment at this+0xB4, calls FUN_00a82eb0 for base init, then virtual methods to set position and size. |
| 0x0087B500 | 69 | UIWidget__init_right_aligned | Initializes a UI widget with right alignment (mode=1). Same as init_left_aligned but sets this+0xB4 = 1. |
| 0x0087B550 | 69 | UIWidget__init_with_alignment | Initializes a UI widget with specified alignment mode from param_6. Sets this+0xB4 = param_6, calls base init, sets position and size via virtual methods. |
| 0x0087B5A0 | 69 | UIWidget__init_with_mode_a | Initializes a UI widget with specified display mode from param_6 at this+0xB0. Same init pattern: base init, position, size via virtual methods. |
| 0x0087B5F0 | 69 | UIWidget__init_with_mode_b | Initializes a UI widget with specified display mode from param_6 at this+0xB0. Identical to init_with_mode_a - separate template instantiation. |
| 0x0087B640 | 69 | UIWidget__init_with_alignment_v2 | Initializes UI widget with alignment mode param_6 at this+0xB4. Standard init pattern: base init, position, size via virtuals. |
| 0x0087B690 | 69 | UIWidget__init_with_mode_c | Initializes UI widget with display mode param_6 at this+0xB0. Standard init pattern: base init, position, size via virtuals. |
| 0x0087B6E0 | 69 | UIWidget__init_with_mode_d | Initializes UI widget with display mode param_6 at this+0xB0. Same as init_with_mode_c - separate instantiation. |
| 0x0087B730 | 79 | UIWidget__init_with_alignment_row21 | Initializes UI widget with alignment, then sets row height to 21 (0x15) at this+0xB8. Sets alignment from param_6 at this+0xB4. |
| 0x0087B780 | 69 | UIWidget__init_with_alignment_v3 | Initializes UI widget with alignment param_6 at this+0xB4. Standard init pattern. |
| 0x0087B840 | 604 | UIProgressBar__init | Initializes a progress bar widget. Stores type at this+0x8C, max value at this+0x80. Appends '.bmp' suffix to name string for texture, stores label at this+0x98. Allocates param_5 bytes for two buffers (this+0x90, this+0x94), zeroes them (with SIMD optimization for large sizes). Calls base init and virtual methods. |
| 0x0087F010 | 436 | UITabCtrl__draw_horizontal_tab | Draws a horizontal tab in tab control. Calculates tab position from cumulative sizes, draws selection highlight, border, and centered text label. Handles left/right/center tab alignment modes. |
| 0x0087F1D0 | 608 | UITabCtrl__draw_tab_border | Draws tab border based on orientation mode (0-3). Each mode draws 5 line segments forming an L-shaped or U-shaped border around the active tab area. Uses A7BD60 for line drawing. |
| 0x0087F610 | 446 | UITabCtrl__draw_vertical_tab | Draws a vertical tab. Same logic as draw_horizontal_tab but uses vertical layout (swapped x/y). Handles top/bottom/center tab alignment modes (1/3/other). |
| 0x0087F7D0 | 1427 | UITabCtrl__parse_format_string | Parses format string for tab control entries. Copies text, splits by format codes into fields (up to 0x104 entries). Handles special escape sequences and nested sub-entries via recursive parsing. |
| 0x0087FD70 | 2149 | UITabCtrl__strip_format_tags_from_string | Strips format tags from tab control string. Searches for open/close tag delimiters (from global vars 0133a300/0133a2e8), recursively processes nested tags via 008816e0, returns cleaned string. |
| 0x00880660 | 57 | UITabCtrl__hit_test_tab_from_y | Hit tests y coordinate against vertical tab positions. Returns tab index from y/tabHeight + scrollOffset. Returns -1 if out of bounds. |
| 0x008806A0 | 57 | UITabCtrl__hit_test_tab_from_y_v2 | Identical to hit_test_tab_from_y. Hit tests y coordinate against vertical tab positions. Returns tab index or -1 if invalid. |
| 0x008806E0 | 282 | UITabCtrl__hit_test_region | Hit tests (x,y) against tab control regions. Returns region code: 0=before tabs, 1=tab header, 2=tab content header, 3=content area, 4=after content. Supports horizontal (mode 0) and vertical (mode 1) layouts. |
| 0x00880800 | 280 | UITabCtrl__find_tab_index_by_name | Finds tab index by name string. Searches std::map at +0x88 using string comparison (std::_Traits_equal). Returns map node's field[4] (tab index) or -1 if not found. |
| 0x00880920 | 123 | UITabCtrl__calc_tab_index_from_coord | Calculates tab index from pixel coordinate. Divides available space by number of tabs, then finds which tab the coordinate falls in. Handles horizontal vs vertical layout via mode +0x8c flag. |
| 0x008809A0 | 216 | UITabCtrl__get_entity_display_value | Gets entity display value string. Checks entity type (0x1ea/0x1ec/0x1ed/0x1ee = different entity types), gets field +0xb0 as numeric value. Converts to string if within data range. |
| 0x00880AB0 | 36 | UITabCtrl__calc_cumulative_tab_offset | Calculates cumulative tab offset by summing tab sizes from array at +0xcc up to given index. Each tab size is (size-1) accumulated. |
| 0x00880AE0 | 51 | UITabCtrl__get_content_area_size | Calculates content area size. Takes width or height based on orientation mode, subtracts 2x margin (+0x28) and virtual method +0xd4 result. Returns available content pixels. |
| 0x00880B20 | 30 | UITabCtrl__get_tab_count | Returns the number of tabs. Computed as (end - begin) / 0x18 from the tab data vector at +0xb4/+0xb8. |
| 0x00880B40 | 101 | UITabCtrl__find_tab_at_position | Finds which tab contains a given pixel position. Iterates through tab sizes at +0xcc, subtracting each from the coordinate. Returns tab index when coordinate goes negative, or -1 if past all tabs. |
| 0x00880BB0 | 75 | UITabCtrl__get_tab_label_string | Gets tab label string by index. Accesses vector at +0xf4, validates index bounds, returns string pointer from 24-byte element (checks SSO vs heap allocation). |
| 0x00880C00 | 65 | UITabCtrl__get_tab_header_size | Gets tab header pixel size. Multiplies content area size by (tabCount-1)/totalTabs ratio. Used for proportional tab sizing within available space. |
| 0x00880CC0 | 186 | UITabCtrl__get_selected_tab_text | Gets text of currently selected tab. Reads selected index from +0x94, validates against child control's item count, copies string via STL string construct. |
| 0x00880D90 | 459 | UITabCtrl__serialize_tab_data_to_buffer | Serializes tab data to output buffer. Concatenates all tab labels from vector at +0x88 into single string, then copies to param_2. If param_3 is 0, calculates total size from alternating pair sums. |
| 0x00880F60 | 141 | UITabCtrl__calc_total_serialized_size | Calculates total serialized size of tab data. Sums pairs of fields from 24-byte elements at +0x88, handling even/odd count. Returns total byte count needed. |
| 0x00881080 | 51 | UITabCtrl__set_title_text | Sets title text on tab control. Copies string to internal field at +0x128, sets value at +0x158. |
| 0x008810C0 | 67 | UIWidget__close_and_clear_focus | Closes widget and clears focus. Calls virtual +0xd4 with empty string on child at +0xd8, hides it at (-100,-100). If focused, calls clear focus function. |
| 0x008816B0 | 42 | UIWidget__notify_parent_on_close | Notifies parent widget on close. Calls A81C30, then if parent at +0x10 exists and field +0x1e byte is 0, fires parent's virtual +0x94 event with event code 0x3c. |
| 0x00885240 | 9 | thunk_to_UIWidget__create_two_sprite_children_00885240 | Wrapper that calls UIWidget__create_two_sprite_children and returns |
| 0x00886840 | 327 | UIWidget__create_two_sprite_children | Creates 2 sprite widget children (0xB4 bytes each) at offsets 0xAC and 0xB0, configures positions |
| 0x00887290 | 9 | thunk_to_UIWidget__create_two_sprite_children_00887290 | Wrapper that calls UIWidget__create_two_sprite_children and returns |
| 0x008872A0 | 9 | thunk_to_UIWidget__create_two_sprite_children_008872a0 | Wrapper that calls UIWidget__create_two_sprite_children and returns |
| 0x008873F0 | 73 | UIWidget__draw_border_rect | Draws a 1-pixel border rectangle around the widget. Creates rect from (1,1) to (width-1, height-1) and draws it using the color at +0x80. |
| 0x00887440 | 446 | UIProgressBar__render_with_percentage_text | Renders a progress bar with percentage text. Mode 0 (offset 0x80==0): horizontal bar with yellow border, background fill, proportional fill, and centered "%3ld%%" text. Mode 1: fills background color then draws vertical fill from bottom based on percentage. Colors from RGB offsets 0x84-0x98. |
| 0x00887600 | 388 | UIProgressBar__render_with_color_picker | Renders a progress bar using CColorPicker pixel colors. Gets border color from pixel (26,2), background from (30,2), and fill from (2,6). If progress is below threshold (from DAT_011388f8) and param_1+0x84 is 0, forces fill color to red (0xFF0000). Ratio = current/max value. |
| 0x00887790 | 1297 | UIProgressBar__render_segmented | Renders a segmented/tiled progress bar using left/mid/right BMP textures. Calculates fill width from percentage (param_1+0x7c), loads textures via string path construction (color prefix + left/mid/right.bmp). Fill color is "blue" if >= threshold, otherwise uses alternate 3-char color string. Tiles mid segment across the fill width. |
| 0x00887CB0 | 1536 | UIProgressBar__render_segmented_with_text | Renders a segmented progress bar with text overlay showing "current / max" values. Uses callback functions at offsets 0xa4 and 0xcc to get current and max values. Builds bar with left/mid/right BMP tiles, colors blue or alternate based on threshold. Background texture loaded separately. Displays formatted I64d text. |
| 0x008882C0 | 1242 | UIProgressBar__render_segmented_simple | Renders a simpler segmented progress bar with text. Similar to render_segmented_with_text but uses a single background texture. Gets current/max via callbacks at 0xa4/0xcc, builds left/mid/right tiled bar, shows "current / max" text overlay. |
| 0x008887A0 | 1130 | UIProgressBar__render_segmented_no_bg | Renders segmented progress bar without separate background. Gets current/max via callbacks at 0xa4/0xcc. Only draws fill if ratio > 0. Uses blue or alternate color based on threshold comparison. Always shows "current / max" text regardless of fill. |
| 0x0088AC80 | 99 | UIWidget__render_texture_with_bg_color | Renders a widget with background color fill (from offsets 0x8c/0x90/0x94) and a texture loaded from path string at offset 0xa8. Simple render: fill background, draw texture at (0,0). |
| 0x0088AD00 | 442 | UIProgressBar__render_exp_bar | Renders an EXP-style progress bar. Validates current >= target values (offsets 0x80/0x84/0x88/0x8c) with special case for 99999999. Uses CColorPicker for border/bg/fill colors. Turns fill red if below threshold and flag 0x7c is false. Fills proportionally based on current/max ratio. |
| 0x0088B4A0 | 57 | UIWidget__draw_bottom_sprite | Draws a sprite at bottom of widget. Loads sprite from path "011380b8", positions it at y = height - spriteHeight. Used for bottom decorative border. |
| 0x0088C630 | 171 | UIProgressBar__render_with_threshold | Renders a progress bar with threshold-based coloring. Border color at 0x7c, background at 0x80. Calculates percentage from current (0xa0) / max (0xa4) * 100. Uses normal color (0x84) above threshold (0xb0) and warning color (0x8c) below. |
| 0x0088C6E0 | 110 | UIWidget__render_filled_rect_with_border | Renders a filled rectangle with optional border. Fills entire widget area with fill color (0x88/0x8c/0x90). If flag 0x84 is false, additionally draws border outline with border color (0x94/0x98/0x9c). |
| 0x0088C750 | 544 | UIProgressBar__render_dual_bar | Renders a dual progress bar (HP/SP style). Mode 0 (0x9c==0): single bar with threshold coloring (normal color 0x84, warning 0x8c). Mode 1 (0x9c!=0): splits widget in half vertically, top bar from 0xa0/0xa4, bottom bar from 0xa8/0xac with separate color (0x88). Threshold at DAT_011388f8. |
| 0x0088C970 | 469 | UIProgressBar__render_tiled_with_fill | Renders a tiled progress bar using left/mid/right texture pieces for both background and fill. Background uses 3 textures tiled across full width. Fill overlay also uses 3 separate textures, fill width calculated from percentage value at 0x7c (converted via double). Percentage can exceed 100. |
| 0x0088CB50 | 795 | UIProgressBar__render_multi_bar_callbacks | Renders multi-bar progress display using std::function callbacks for values. Supports modes 7 (single bar), 8 (triple bar at y=1,5,9), 9/10 (double bar), 0xd/0xe (single with callbacks), and default (triple with individual bar callbacks). Each bar has threshold-based coloring. Colors at offsets 0x80(bg), 0x84/0x8c(normal/warning), 0x88(SP), 0x90/0x94(HP normal/warning), 0x98(third bar). |
| 0x0088D560 | 347 | UIWidget__render_tiled_texture | Renders a texture tiled/repeated multiple times. Clears render queue, then loops param_1+0x94 times, loading texture from path string at offset 0x7c and drawing it at (0,0) each iteration. Handles SSO string allocation for texture path. |
| 0x0088D6C0 | 140 | UIProgressBar__render_simple_fill | Renders a simple progress bar with border (0x7c), background (0x80), and fill (0x84) colors. Percentage = (current 0x9c * 100) / max 0xa0. Fill width proportional to percentage. No threshold coloring. |
| 0x0088F100 | 181 | UIWidget__render_sprite_from_path | Renders a sprite from a file path. Gets path from string at offset 0xac, converts via FUN_00ddd280 with flag from 0xdc, loads and draws texture. Falls back to default texture at DAT_0112ce70 if primary fails. |
| 0x0088F450 | 363 | UIWidget__render_text_with_sprite | Renders text with optional background sprite. If 0xbc flag is set, loads sprite from path at 0xac and draws it first, then parses text buffer (0xdc) with embedded formatting via FUN_00a7ca20/FUN_00a81ba0 to draw styled text. Extended text rendering at position (0x18, 7) or (0, 0). |
| 0x0088F6C0 | 334 | UITabCtrl__render_tabs | Renders all tabs in a tab control. Iterates through tab entries, calling draw_vertical_tab for modes 1/3 or draw_horizontal_tab for modes 0/2. If tab count exceeds visible limit (0xf8) and tab has notification flag set (bit in 0xec), draws notification indicator texture at tab position. |
| 0x0088FFB0 | 194 | UIWidget__process_item_desc_and_render | Processes item description data and renders the widget. Destroys and rebuilds CItemDesc nodes, then renders either directly via vtable 0x98 or through FUN_00a7d6d0 for positioned rendering with text measurement. |
| 0x008900D0 | 114 | UITabCtrl__fire_tab_double_click_event | Fires tab double-click event. Validates selected tab index at +0x94, gets tab label string, sends event (type=6, code=0x15b) to parent widget. |
| 0x008901E0 | 65 | UITabCtrl__fire_tab_select_event | Fires tab selection event. Gets selected item from map at +0x90, sends event (type=6) with item code from +0x2c to parent widget via virtual +0x94. |
| 0x00890260 | 53 | UIWidget__on_scroll_delta | Handles scroll delta event. Calls virtual +0x64 for own scrolling, then if mode +0x20 is 0, forwards scroll to child widget at +0x4 with offset adjustment. |
| 0x00890330 | 199 | UITabCtrl__show_inline_edit_for_tab | Shows inline edit control for selected tab. Only works for left/top tab modes and if editable flag +0xa8 is set. Positions edit widget at tab location with tab's text content. |
| 0x00890480 | 50 | UIWidget__fire_event_0xcc_to_skill_window | Fires event code 0xcc to the skill window (type 0x116). Looks up the skill window via CUIWindowMgr, then calls its event handler with type=6, code=0xcc. |
| 0x00890940 | 169 | UITabCtrl__on_tab_clicked | Handles tab click. Finds clicked tab by position, validates index, sets selected tab +0x1f. Clears edit widget, hides it, fires event 0x16 to parent with tab index. Captures focus. |
| 0x00890A00 | 37 | UIWidget__forward_scroll_to_parent | Forwards scroll event to parent widget. Adjusts coordinates by own position (+0x1c, +0x20), calls parent's virtual +0x64 (scroll handler). |
| 0x00891240 | 263 | UIProgressBar__render_percentage_text | Renders percentage text overlay on a progress bar. Validates current <= max values (offsets 0x7c/0x80 pointers). Formats as "%1f%%" with value = (current/max * multiplier * 0.01). Draws 3D text at widget position with white color. |
| 0x00891350 | 643 | UIWidget__render_item_tooltip_text | Renders item tooltip text. Parses item count from string at 0xcc. If count < 1, uses raw text from 0x88. Otherwise builds formatted tooltip via CItemDB with price (0xb0) and optional quantity (0x138). Uses message IDs 0x9f7 (with quantity) or 0xb7 (without). Draws via FUN_00ad6510. |
| 0x00891810 | 93 | UIWidget__draw_label_text | Draws label text at computed offset (-20) if string length is non-zero |
| 0x00891870 | 93 | UIWidget__show_tooltip_at_cursor | Shows tooltip at cursor position. If tooltip text +0x1b0 length is non-zero, gets cursor position, draws tooltip string at cursor using AD6510 with color -1 and mode 1. |
| 0x008918D0 | 315 | UIProgressBar__render_exp_percentage_text | Renders EXP percentage text on a progress bar. Validates current/target values (0x80-0x8c) with special case for 99999999. Calculates ratio = current/max, formats as "%1f%%" and draws as 3D text at widget position. |
| 0x00891A10 | 44 | UITabCtrl__on_mouse_move_highlight_tab | Tab control mouse move handler. Calculates tab under cursor, updates +0x1f highlight. Only redraws if highlight changed. |
| 0x00891A40 | 51 | UIWidget__fire_event_0x93_to_window_0x114 | Fires event 0x93 with data from +0xf8 to window 0x114 (auction window). |
| 0x00891A80 | 316 | UIWidget__check_and_update_sprite_path | Checks if the sprite path has changed by building a new path from prefix string (0x94) + "<" and comparing with the current path (0x7c). If different, calls the sprite update handler to reload the texture. |
| 0x00891E40 | 201 | UIWidget__render_item_name_tooltip | Renders item name tooltip. Gets item name via CItemDesc__get_field_checked (field 0), draws 3D tooltip text at widget position offset (-20 y) if name is non-empty. |
| 0x00891F20 | 212 | UITabCtrl__show_tab_tooltip | Shows tooltip for tab when hovered. Finds tab at mouse position, compares display text (0xdc) with full text (0xb4) - if truncated, shows full text tooltip. Calculates y position from cumulative tab widths. |
| 0x00892000 | 50 | UIWidget__on_mouse_drag_forward_to_parent | Mouse drag handler. Forwards drag event to parent widget's virtual method at +0x70 with coordinates adjusted by own position (+0x1c, +0x20). Then calls UIWidget__on_mouse_over_with_tooltip to handle tooltip display during drag. |
| 0x008923D0 | 113 | UIWidget__handle_drag_threshold | Handles drag threshold detection. If widget is being dragged and mouse has moved more than 5 pixels from initial click position (0xac/0xb0), sends drag notification (0x75) to parent with widget ID (0x7c). Records new position. |
| 0x00892520 | 51 | UIWidget__set_hover_flag_from_bounds | Sets hover flag +0xac based on whether point (x,y) is within widget bounds. Sets 1 if inside, 0 if outside. |
| 0x00892570 | 35 | UIWidget__set_cursor_style | Sets cursor style based on mode. If mode +0x80 is 0, shows default cursor (A81D60). Otherwise shows custom cursor mode 2 (AD75E0). |
| 0x008925D0 | 35 | UIWidget__set_cursor_on_hover | Sets cursor based on hover state. If hover flag +0xac is set, shows default cursor. Otherwise shows mode 0 cursor. |
| 0x00892AB0 | 46 | UIWidget__send_tooltip_info_to_chat | Sends tooltip info string at +0x80 to chat window (0xc) as event 0x18. |
| 0x00892C20 | 36 | UIWidget__forward_right_click_to_parent | Forwards right-click to parent widget. Adjusts coordinates by own position, calls parent's virtual +0x84. |
| 0x00892CA0 | 124 | CUIControl__handle_click_event | Handles a click event on a UI control. Checks if control is disabled (field 0x2b). Validates click coordinates (param_2, param_3) against bounds (fields 5,6). If valid, sets click flag (field 0xc=1) and dispatches event 0x65 via vtable+0x94. Calls invalidate via vtable+0x98. |
| 0x00892D20 | 62 | CUIControl__dispatch_event_99 | Dispatches event code 99 (0x63) on a UI control. Checks disabled flag at field 0x2b. If parent (field 4) exists, sends event via vtable+0x94 with field 0x3d value and params. Then calls invalidate via vtable+0x98. |
| 0x00892D60 | 125 | CUIControl__handle_click_with_data | Similar to handle_click_event but dispatches event 99 with field 0xb and field 0x34 as data parameters. Validates click within control bounds, sets click flag, sends event to parent via vtable+0x94, invalidates. |
| 0x00892DE0 | 114 | CUIControl__scroll_index_by_direction | Scrolls the selected index (field 0x25) up or down based on param_2 sign. Clamps to [0, maxItems-1] using field 0x27+0x8c. Sends event 0x27 with new index via parent vtable+0x94. Then invalidates. |
| 0x00892E60 | 60 | CUIControl__scroll_child_vertical | Scrolls a child control vertically. If field 0x29 (has vertical scrollbar) is set, dispatches scroll event (type 7) with +3 or -3 offset to child control at field 0x2b via vtable+0x94. |
| 0x00892EA0 | 60 | CUIControl__scroll_child_horizontal_a | Scrolls a child control horizontally. If field 0x28 (has horizontal scrollbar) is set, dispatches scroll event (type 7) with +3 or -3 offset to child control at field 0x2a via vtable+0x94. |
| 0x00892EE0 | 60 | CUIControl__scroll_child_horizontal_b | Identical to scroll_child_horizontal_a - scrolls child control horizontally using field 0x28 check and field 0x2a target with event type 7 and +/-3 offset. Likely a duplicate or variant for a different UI class. |
| 0x00892F20 | 15 | CUIControl__call_child_vtable_8c | Calls vtable function at offset 0x8c on child control referenced at field 0x10. Indirect jump through child's vtable. |
| 0x00892F30 | 23 | CUIControl__call_child_vtable_8c_safe | Null-safe version of call_child_vtable_8c. Checks if child at field 0x10 is non-null before calling vtable offset 0x8c. |
| 0x00892F50 | 57 | CUIControl__scroll_child_widget | Scrolls a child widget referenced at field 0x1f. If field 0x20 (has scrollbar) is set, dispatches scroll event type 7 with +3/-3 offset based on param_2 direction via vtable+0x94. |
| 0x00892F90 | 186 | CUIControl__draw_colored_item_cell | Draws a colored item cell. Checks disabled flag (0xa9). Looks up color override from array at field 0xc0 using param_2 index. Adjusts draw rectangle based on orientation (field 0x80: 0=vertical, 1=horizontal, 2/3=variants) and calls FUN_00a7bd60 to fill. |
| 0x00893050 | 632 | CUIControl__process_hyperlink_navigate_to_map | Processes a hyperlink string at field 0xf8 to navigate to a map location. Searches for delimiter from global DAT_0133a3d8 and DAT_0133a3c0 to extract map/coordinate info. If the extracted string is non-empty, calls CNavigator__set_destination_from_map_coords to set the navigation target. |
| 0x008932D0 | 261 | CUIControl__process_item_data_entry | Processes an item data entry from a list. If entry type (param_2[0]) is not 3, calls FUN_00a82310 with string data. If type is 3, initializes a local array and calls FUN_00a81fd0 for multi-element item processing, then frees the array. |
| 0x008961F0 | 207 | CUIControl__update_scrollbar_range | Updates scrollbar range for a UI control. Calculates visible items from height/item_size (fields 0x18/0xa0). Sets scrollbar (field 0x7c) total (field 0xa4), visible count. If no scrolling needed, resets scroll pos and clears total/visible. Handles scroll position clamping. |
| 0x008970F0 | 45 | CUIControl__set_position_and_refresh | Sets position of a UI control via vtable+4 (setPosition). If height (field 5) changed, calls FUN_0089c080 to refresh layout if param_4 flag is set. |
| 0x00897370 | 100 | CUIControl__resize_with_borders | Resizes a UI control with border offsets. Calls FUN_00a82eb0 for main resize. Adjusts two child controls (fields 0x2b, 0x2c) - sets one to (9, param_3) and repositions to (param_2-10, 0), the other to (param_2-10, 9) and repositions to (0, param_3-10). Calls vtable+0xe0 for final update. |
| 0x00897510 | 106 | CUIControl__resize_with_side_scrollbar | Resizes a UI control with a side scrollbar (field 0x2a). Calls FUN_00a82eb0 for base resize, vtable+0xe0 for update. Repositions scrollbar to right edge (param_2-7). If field 0x28 is 0, also resizes scrollbar to (7, param_3) and repositions. |
| 0x00897750 | 100 | CUIControl__resize_with_dual_children_a | Resizes control with two child controls (fields 0x2a, 0x2b). Sets first child to (0xc, param_3) repositioned at (param_2-0xd, 0). Sets second child to (param_2-0xd, 0xc) repositioned at (0, param_3-0xd). Calls vtable+0xe0 for update. |
| 0x008977C0 | 100 | CUIControl__resize_with_dual_children_b | Identical to resize_with_dual_children_a. Resizes control with two child controls using standard border layout. Variant for a different UI class. |
| 0x00897830 | 100 | CUIControl__resize_constrained_axis | Resizes a UI control with one axis constrained. Invalidates first (vtable+0x98). If field 0x22==0, constrains height to field 0x29. If field 0x22==1, constrains width to field 0x29. Calls FUN_00a82eb0 and vtable+0x58 with final dimensions. |
| 0x00897A10 | 63 | CUIControl__resize_with_child_scrollbar | Resizes a control with a child scrollbar at field 0x1f. Calls FUN_00a82eb0 for base resize, repositions child to x=(width-10), resizes child to (child_width, param_3). Calls vtable+0xd4 for final update. |
| 0x00897BF0 | 29 | CUIControl__handle_scroll_position_event | Handles scroll position event (event code 0xd). Sets field 0xc to param_4 value and invalidates the control. Returns 0. |
| 0x00897C20 | 64 | CUIGridList__handle_event | Event handler for a grid-based list control. Handles events: 0=confirm (sends selected index 0x27 event to linked control, plays sound 0x1a), 0x12=scroll up (decrement selected), 0x13=scroll down (increment selected with bounds from item list), 0x1f=call vtable+0xd8 with param, 0x28=set selected index with clamping, 0x53=set linked control ID. Default delegates to FUN_00898b00. |
| 0x00898730 | 136 | CUIGridControl__handle_event | Event handler for a grid control. Event 0x22: initializes grid with rows/columns (param_4/param_5), sets title from param_6 string, allocates row/column boolean arrays. Event 0x53: sets linked ID. Event 0x66: sets field 0xb. Events 0x69/0x6a: set row/column enable flags. Default delegates to FUN_00a83660. |
| 0x0089B450 | 120 | CUIControl__push_back_string_entry | Pushes a new string entry (24 bytes / stride 0x18) to the vector at fields 0xa8/0xac. If at capacity, uses STL_vector_insert_single_24byte for reallocation. Otherwise copies directly and increments end pointer. |
| 0x0089B4D0 | 22 | CUIControl__set_position_fields | Sets position fields at offsets 0x7c (x) and 0x80 (y) of the UI control. |
| 0x0089B4F0 | 25 | CUIControl__set_field_0x1f_and_invalidate | Sets field 0x1f to param_2 and invalidates the control via vtable+0x98. |
| 0x0089B510 | 43 | CUIControl__set_rect_fields | Sets rectangle fields 0x80, 0x84, 0x88, 0x8c from four parameters. Likely left, top, right, bottom or x, y, width, height. |
| 0x0089B540 | 21 | CUIControl__set_field_0x1f_and_invalidate_b | Sets field 0x1f to param_2 and invalidates the control. Identical to set_field_0x1f_and_invalidate, likely from a different class. |
| 0x0089B560 | 33 | CUIControl__set_scroll_range_and_invalidate | Sets scroll range fields 0x27 and 0x28 from parameters and invalidates the control via vtable+0x98. |
| 0x0089B590 | 164 | CUIControl__clone_two_children | Clones two child widgets using UIWidget__clone_child. After cloning, destroys the original child widgets via vtable+0x10. Used during UI initialization to create child control instances from templates. |
| 0x0089B760 | 183 | CUIControl__load_two_sprite_textures | Loads two sprite textures from string paths. For each string param, calls FUN_00af1620, FUN_00b01200, FUN_00aee770 to resolve texture IDs. Stores results in fields 0x30 and 0x31. Invalidates the control. Cleans up temporary strings. |
| 0x0089B820 | 236 | CUIControl__load_three_sprite_textures_a | Loads three sprite textures from string paths. For each of three string params, resolves texture ID via FUN_00af1620/FUN_00b01200/FUN_00aee770. Stores in fields 0x2d, 0x2e, 0x2f. Invalidates. Cleans up strings. |
| 0x0089B910 | 236 | CUIControl__load_three_sprite_textures_b | Loads three sprite textures into fields 0x32, 0x33, 0x34. Same pattern as load_three_sprite_textures_a but stores in different fields. Used for a different set of button/sprite states. |
| 0x0089BA00 | 93 | CUIControl__reset_item_slot_display | Resets item slot display. 93-byte function that delegates to CEffect__set_position (likely misnamed target) to clear/reset the item slot visual state. |
| 0x0089BA60 | 16 | CUIControl__set_field_0xe4 | Sets field 0xe4 to param_2. Simple field setter with no invalidation. |
| 0x0089BA70 | 24 | CUIControl__set_field_0x35_and_invalidate | Sets field 0x35 (likely a linked control ID or texture index) and invalidates via vtable+0x98. |
| 0x0089BA90 | 490 | CUIControl__set_item_slot_with_job_icon | Sets an item slot display with a job icon. Stores item index at field 0x12c, checks weight limit via CGameMode__is_weight_over_limit. If valid item, formats job icon path as "sicon_jobs_%d.bmp" using the item's job class (field 0x54), sets texture on checkbox widget at field 0x130. |
| 0x0089BC80 | 51 | CUIControl__set_draw_params_and_invalidate | Sets draw parameters: field 0x35 (param_2), field 0x36 (param_3), field 0x37 byte (param_4), and byte at offset 0xdd (param_5). Invalidates via vtable+0x98. |
| 0x0089BCC0 | 33 | CUIControl__set_fields_0x28_0x29_and_invalidate | Sets fields 0x28 and 0x29 and invalidates the control. |
| 0x0089BCF0 | 164 | CUIControl__clone_two_children_b | Identical to clone_two_children. Clones two child widgets from templates and destroys originals. Different class variant. |
| 0x0089BDA0 | 164 | CUIControl__clone_two_children_c | Identical to clone_two_children. Another class variant for child widget cloning. |
| 0x0089BE50 | 16 | CUIControl__set_field_0x94 | Sets field 0x94 to param_2. Simple field setter. |
| 0x0089BFE0 | 144 | CUIControl__set_numeric_display_value | Sets a numeric display value (field 0x84) and updates the child control's text via vtable+0xd4. Formats the number using FUN_00af62d0 with DAT_010dbe28 format string (%d pattern). Gets the child control from field 0x7c. |
| 0x0089C070 | 16 | CUIControl__set_field_0x9c | Sets field 0x9c to param_2. Simple field setter. |
| 0x0089C210 | 16 | CUIControl__set_field_0x84 | Sets field 0x84 to param_2. Simple field setter. |
| 0x0089C2A0 | 147 | CUIControl__set_numeric_display_value_b | Sets numeric display value (field 0x88) and updates child control (field 0x80) text via vtable+0xd4. Formats number with FUN_00af62d0 and DAT_010dbe28 format string. Same pattern as set_numeric_display_value but uses different fields. |
| 0x0089C340 | 25 | CUIControl__set_field_0xa_and_invalidate | Sets field 10 (0xa in word index = 0x28 offset) to param_2. If non-zero, invalidates via vtable+0x98. |
| 0x0089C360 | 33 | CUIControl__set_fields_0x2a_0x2b_and_invalidate | Sets fields 0x2a and 0x2b and invalidates the control via vtable+0x98. |
| 0x0089C390 | 164 | CUIControl__clone_two_children_d | Another variant of clone_two_children. Clones two child widgets and destroys originals. Different class. |
| 0x0089CDB0 | 164 | CUIControl__clone_two_children_e | Clones two child widgets from templates using UIWidget__clone_child, then destroys the original template widgets. Used during UI initialization. Variant e of identical clone pattern. |
| 0x0089CE60 | 164 | CUIControl__clone_two_children_f | Clones two child widgets from templates using UIWidget__clone_child, then destroys the original template widgets. Used during UI initialization. Variant f of identical clone pattern. |
| 0x0089CFD0 | 16 | CUIControl__set_field_0x80 | Sets field 0x80 to param_2. Simple field setter. |
| 0x0089E0F0 | 889 | CUIGridList__add_item_with_link_processing | Adds an item to the grid list, processing any embedded item link tags. Checks for link delimiters in the text; if none, adds as plain text. If links found, strips link tags, processes item data entries, and adds the processed text to the list. |
| 0x0089EA40 | 133 | CUIControl__strip_color_codes_from_text | Strips color codes from an STL string. Takes an STL string parameter, calls strip_color_codes_from_string to remove embedded color markup, and returns the cleaned result. |
| 0x0089EAD0 | 165 | CUIControl__export_strings_to_file | Exports string entries to a file. Opens the file at param_2 path, iterates through a vector of STL strings (fields 0x88-0x8c, each 0x18 bytes), writing each string followed by a newline. Returns 1 on success, 0 if file open fails. |
| 0x0089F5C0 | 14 | CUIControl__call_child_0x80_vtable_dc | Calls vtable function at offset 0xdc on the child control at field 0x80. This is an indirect tail call, likely a clear/reset operation on the child. |
| 0x0089F5D0 | 61 | CUIControl__reset_child_list_control | Resets a child list control at field 0x9c. Calls vtable+0xdc to clear items, resizes to (width, 0x14), and sends event 0x28 with index -1 to deselect all items. |
| 0x008A25F0 | 112 | CUIControl__forward_string_to_child_0x80 | Forwards a string event (0x1f) to the child control at field 0x80. Extracts raw string pointer from STL string param_2 and sends via child's vtable+0x94. |
| 0x008A2660 | 157 | CUIControl__forward_string_to_child_0x9c | Forwards a string event (0x1f) to the child list control at field 0x9c. After sending, resizes the child list based on item count (0x23 * 16 height, minimum 0x10). Extracts string pointer and sends via child's vtable+0x94. |
| 0x008A2700 | 34 | CUIControl__set_three_fields_0x9c | Sets three consecutive fields at offsets 0x9c, 0xa0, 0xa4 on this control. These likely represent RGB color components or three related configuration values. |
| 0x008A2730 | 91 | CUIControl__select_item_in_child_list | Selects an item in the child list control at field 0x80. Sends event 0x28 with index to child, then looks up the item string from the map, and calls FUN_008681c0 to display the selected item's text. |
| 0x008A2790 | 281 | UIWidget__create_grid_children | Creates grid of UI window child widgets (0x84 bytes each) in rows*cols layout, triggers redraw |
| 0x008A3380 | 128 | CUIControl__destroy_tree_nodes_recursive | Recursively destroys a binary tree of 0x2c-byte nodes. Walks left children (param_3[0] = next node) while the sentinel flag at offset 0xD is false. For each node, recurses into param_3[2] (right child), destroys the string, and frees the node. Returns param_1 unchanged. |
| 0x008A3400 | 129 | CUIControl__tree_lower_bound_by_string | Performs a lower_bound search on a red-black tree by string key. Traverses the BST rooted at param_1, comparing each node's string (offset 0x10/0x14) against param_3 using std::char_traits::compare. Writes result to param_2: [0]=found node, [1]=comparison direction, [2]=parent/bound node. Sentinel check at offset 0xD. |
| 0x008A8D30 | 430 | UIWidget__draw_item_with_count | Draws item sprite and count text overlay with shadow effect, adjusts position for count < 1000 |
| 0x008AD130 | 27 | UIWidget__set_offset_and_refresh_a | Sets widget offset at this[7] = x, this[8] = y, then calls virtual method at vt+0x90 to refresh/redraw. |
| 0x008AD150 | 27 | UIWidget__set_offset_and_refresh_b | Sets widget offset at this[7] = x, this[8] = y, then calls virtual method at vt+0x90 to refresh/redraw. Identical code to set_offset_and_refresh_a but at a different address (different class vtable). |
| 0x008AD170 | 31 | UIWidget__set_position_from_base | Sets widget absolute position by adding param offsets to base position. this+0x1c = this+0x84 + param_2 (x), this+0x20 = this+0x88 + param_3 (y). |
| 0x008C7FC0 | 350 | CUIGridWindow__ctor | CUIGridWindow constructor. Sets vtable to 0113afdc. Initializes grid layout state: row/col counts at 0x2d-0x34, initializes a string at 0x35 with a 3-char default from DAT_0113ee38, and resets cell tracking fields. |
| 0x008CCD60 | 119 | CUIGridWindow__scalar_deleting_dtor | Scalar deleting destructor for CUIGridWindow (0xf4 bytes). Sets vtable to 0113afdc, destroys string, calls UIWindowBase__dtor, conditionally frees. |
| 0x008DAF80 | 9 | thunk_to_UIWidget__set_offset_and_refresh_b_008daf80 | Thunk that calls FUN_008ad150 and returns |
| 0x008DB030 | 9 | thunk_to_UIWidget__set_offset_and_refresh_b_008db030 | Single-call thunk that wraps FUN_008ad150 |
| 0x009105F0 | 187 | UIClass_0913c90__ctor | Constructor for a UI class (vtable at 0x0913c90). Zeroes out 14 fields including counters, flags, and an inline SSO string (capacity 0xf) at offset 0xe. Sets a boolean flag at offset 0x28 to true. |
| 0x00913C90 | 93 | UIClass_0913c90__dtor | Destructor for a UI class. Sets vtable to PTR_FUN_01140d28, destroys an STL string member, then calls std__vector_3c__clear_and_free to clean up a vector of 0x3C-byte elements. |
| 0x00913D70 | 71 | UIClass_0913d70__dtor | Destructor. Sets vtable to PTR_FUN_011414c8 then calls UIWindowBase__dtor for base class cleanup. |
| 0x00913F40 | 110 | UIClass_0913f40__dtor | Destructor. Sets vtable to PTR_FUN_011409bc, destroys an STL string, frees a vector, then calls UIWindowBase__dtor for base cleanup. |
| 0x00913FB0 | 71 | UIClass_0913fb0__dtor | Destructor. Sets vtable to PTR_FUN_01140734 then calls UIWindowBase__dtor for base cleanup. |
| 0x00914000 | 71 | UIClass_0914000__dtor | Destructor. Sets vtable to PTR_FUN_0114014c then calls UIHyperlinkTextWidget__dtor for base cleanup. |
| 0x00914050 | 71 | UIClass_0914050__dtor | Destructor. Sets vtable to PTR_FUN_01141090 then calls UIWindowBase__dtor for base cleanup. |
| 0x009140A0 | 194 | UIClass_09140a0__dtor | Destructor for a complex UI class. Sets vtable to PTR_FUN_01140fb8, cleans up 4 linked lists at offset 0xDC (loop of 4 iterations, 8 bytes each), calls CUIWindowMgr__unregister_window, uses eh_vector_destructor_iterator for array cleanup, then UIWindowBase__dtor. |
| 0x00914170 | 71 | UIClass_0914170__dtor | Destructor. Sets vtable to PTR_FUN_011404ac then calls UIWindowBase__dtor for base cleanup. |
| 0x009141C0 | 71 | UIClass_09141c0__dtor | Destructor. Sets vtable to PTR_FUN_01140c48 then calls UIWindowBase__dtor for base cleanup. |
| 0x00914210 | 110 | UIClass_0914210__dtor | Destructor. Sets vtable to PTR_FUN_01140e08, destroys two STL strings, then calls UIWindowBase__dtor for base cleanup. |
| 0x00914280 | 71 | UIClass_0914280__dtor | Destructor. Sets vtable to PTR_FUN_011413f0 then calls UIWindowBase__dtor for base cleanup. |
| 0x009142D0 | 125 | UIClass_09142d0__dtor | Destructor. Sets vtable to PTR_FUN_01141318, destroys a CFmt object and two STL strings, then calls UIWindowBase__dtor. |
| 0x009143C0 | 71 | UIClass_09143c0__dtor | Destructor. Sets vtable to PTR_FUN_011402fc then calls UIWindowBase__dtor. |
| 0x00914410 | 71 | UIClass_0914410__dtor | Destructor. Sets vtable to PTR_FUN_01141168 then calls UIWindowBase__dtor. |
| 0x00914460 | 71 | UIClass_0914460__dtor | Destructor. Sets vtable to PTR_FUN_0114080c then calls UIWindowBase__dtor. |
| 0x00914620 | 166 | UIClass_0914620__dtor | Destructor. Sets vtable to PTR_FUN_0114065c. Clears an ItemEntry vector, destroys 9 CFmt objects at offset 0x118 (0xC each), cleans a linked list at offset 0x110, then UIWindowBase__dtor. |
| 0x009146D0 | 151 | UIClass_09146d0__dtor | Destructor. Sets vtable to PTR_FUN_01140584. Cleans a linked list at offset 0x14C, destroys 9-element array at offset 0x104 (8 bytes each), then UIWindowBase__dtor. |
| 0x00914770 | 71 | UIClass_0914770__dtor | Destructor. Sets vtable to PTR_FUN_011403d4 then calls UIWindowBase__dtor. |
| 0x00914840 | 95 | UIClass_0914840__dtor | Destructor. Sets vtable to PTR_FUN_01141240, destroys an STL string, then calls UIWindowBase__dtor. |
| 0x009148A0 | 71 | UIClass_09148a0__dtor | Destructor. Sets vtable to PTR_FUN_01140074 then calls UIWindowBase__dtor. |
| 0x009148F0 | 95 | UIClass_09148f0__dtor | Destructor. Sets vtable to PTR_FUN_01140a98, destroys an STL string, then calls UIWindowBase__dtor. |
| 0x00914950 | 71 | UIClass_0914950__dtor | Destructor. Sets vtable to PTR_FUN_011408e4 then calls UIWindowBase__dtor. |
| 0x009149A0 | 71 | UIClass_09149a0__dtor | Destructor. Sets vtable to PTR_FUN_01140ee0 then calls UIWindowBase__dtor. |
| 0x009151D0 | 114 | UIClass_0913c90__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01140d28, destroys string and vector, optionally frees 0x50 bytes if param_2 & 1. |
| 0x00915250 | 135 | UIClass_0915250__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01140d20, destroys two strings and vector, optionally frees 0x68 bytes if param_2 & 1. |
| 0x009152E0 | 99 | UIClass_09152e0__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_011414c8, calls UIWindowBase__dtor, optionally frees 0xD8 bytes if param_2 & 1. |
| 0x00915350 | 134 | UIClass_0915350__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_011409bc, destroys string and vector, calls UIWindowBase__dtor, optionally frees 0x118 bytes if param_2 & 1. |
| 0x009153E0 | 99 | UIClass_09153e0__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01140734, calls UIWindowBase__dtor, optionally frees 0x174 bytes if param_2 & 1. |
| 0x00915450 | 99 | UIClass_0915450__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_0114014c, calls UIHyperlinkTextWidget__dtor, optionally frees 0xCC bytes if param_2 & 1. |
| 0x009154C0 | 99 | UIClass_09154c0__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01141090, calls UIWindowBase__dtor, optionally frees 0xD8 bytes if param_2 & 1. |
| 0x00915530 | 212 | UIClass_0915530__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01140fb8, cleans up 4 linked lists, calls FUN_00aa2c90, destroys array, calls UIWindowBase__dtor, optionally frees 0x120 bytes. |
| 0x00915610 | 99 | UIClass_0915610__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_011404ac, calls UIWindowBase__dtor, optionally frees 0xF0 bytes. |
| 0x00915680 | 99 | UIClass_0915680__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01140c48, calls UIWindowBase__dtor, optionally frees 0xBC bytes. |
| 0x009156F0 | 134 | UIClass_09156f0__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01140e08, destroys two strings, calls UIWindowBase__dtor, optionally frees 0xE8 bytes. |
| 0x00915780 | 99 | UIClass_0915780__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_011413f0, calls UIWindowBase__dtor, optionally frees 0xBC bytes. |
| 0x009157F0 | 149 | UIClass_09157f0__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01141318, destroys CFmt and two strings, calls UIWindowBase__dtor, optionally frees 0x138 bytes. |
| 0x00915890 | 128 | UIClass_0915890__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01140b70, calls FUN_00933e40, clears pointer vector, calls UIWindowBase__dtor, optionally frees 0x140 bytes. |
| 0x00915910 | 99 | UIClass_0915910__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_011402fc, calls UIWindowBase__dtor, optionally frees 0xB8 bytes. |
| 0x00915980 | 99 | UIClass_0915980__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01141168, calls UIWindowBase__dtor, optionally frees 0xCC bytes. |
| 0x009159F0 | 99 | UIClass_09159f0__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_0114080c, calls UIWindowBase__dtor, optionally frees 0xB4 bytes. |
| 0x00915A60 | 38 | UIClass_0915a60__scalar_deleting_dtor | Scalar deleting destructor. Calls UIClass_09144b0__dtor, optionally frees 0x228 bytes if param_2 & 1. |
| 0x00915A90 | 190 | UIClass_0915a90__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_0114065c. Clears ItemEntry vector, destroys 9 CFmt objects, cleans linked list, calls UIWindowBase__dtor, optionally frees 0x1D4 bytes. |
| 0x00915B50 | 175 | UIClass_0915b50__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01140584. Cleans linked list, destroys 9-element array, calls UIWindowBase__dtor, optionally frees 0x180 bytes. |
| 0x00915C00 | 99 | UIClass_0915c00__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_011403d4, calls UIWindowBase__dtor, optionally frees 0x1EC bytes. |
| 0x00915D10 | 119 | UIClass_0915d10__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01141240, destroys string, calls UIWindowBase__dtor, optionally frees 0x108 bytes. |
| 0x00915D90 | 99 | UIClass_0915d90__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01140074, calls UIWindowBase__dtor, optionally frees 0x18C bytes. |
| 0x00915E00 | 119 | UIClass_0915e00__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01140a98, destroys string, calls UIWindowBase__dtor, optionally frees 0x130 bytes. |
| 0x00915E80 | 99 | UIClass_0915e80__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_011408e4, calls UIWindowBase__dtor, optionally frees 0xC0 bytes. |
| 0x00915EF0 | 99 | UIClass_0915ef0__scalar_deleting_dtor | Scalar deleting destructor. Sets vtable to PTR_FUN_01140ee0, calls UIWindowBase__dtor, optionally frees 0xB4 bytes. |
| 0x00916070 | 42 | UIClass__update_and_redraw_child | Updates a child list box item and triggers redraw. Calls UIListBox__set_item_data_at_index with two params, then invokes virtual redraw method (vtable offset 0x98) on the child widget at offset 0xF8. |
| 0x00916DD0 | 180 | UIClass__reload_string_list | Reloads a string list from data. Clears the existing string vector at offset 0x1FC (destroying each 0x18-byte string entry), then calls helper_00613e00 with the given params to get a new data source. Iterates the source's entries (at offsets 0x48-0x4C), copying strings from offset 0x2C of each entry into the vector. Returns whether the list is non-empty. |
| 0x00916EF0 | 59 | UIClass__check_bounds_match | Compares a 4-value bounding rect (param_2) against the bounding rect at offset 0x38 of a child element at offset 0xC0. Returns 1 if all 4 values match exactly, 0 otherwise. |
| 0x00916F30 | 29 | UIClass__clear_listbox_and_redraw | Zeros all data values in the list box via UIListBox__zero_all_data_values, then invokes virtual redraw method (vtable offset 0x98) on the child widget at offset 0xF8. |
| 0x00916F50 | 163 | UIClass__create_and_add_text_widget | Creates a new UI widget (0xD0 bytes) via UIScrollbarWidget__ctor, sets its text via UITextWidget__set_text_if_fits, positions it at (0,0), applies a setting via virtual method 0xB4, then adds it to the parent via CEffect__add_child_to_list_end. Updates parent bounds from child dimensions. |
| 0x00917000 | 110 | UIClass__clear_string_vector_at_12c | Clears a vector of 0x18-byte string entries at offsets 0x12C-0x130. First zeros out each string content (sets length to 0, null-terminates buffer), then destroys all string objects and resets the vector end pointer to begin. Always returns 1. |
| 0x00918190 | 89 | UIClass__render_colored_rect_list | Renders colored rectangles for list entries. Iterates through a linked list at offset 0xB4, filtering entries matching DAT_013899bc. Draws filled rectangles using per-entry bounds (offsets 0x40-0x4C) with cycling colors from DAT_0133abcc array (12 colors max, wrapping at index 0xC). |
| 0x009181F0 | 260 | UIClass__render_tab_bar | Renders a tab bar for a UI window. Gets base position, iterates through string entries (0x18 bytes each from vector at offset 0x138+0xB4), drawing each tab as a filled rect. Selected tab (index at 0x114) gets lighter alpha (0x66000000), others get darker (0x99000000). Also draws a content area rect using bounds at offsets 0xC4-0xD0 with color at 0xD8. |
| 0x00918300 | 127 | UIClass__render_two_rects | Renders two filled rectangles. First draws an overlay rect at (1,1) with dimensions from offsets 0xEC/0xE8 in semi-transparent black (0x66000000). Then draws a content rect using bounds from offsets 0xC0-0xCC with color at 0xD4. |
| 0x009189C0 | 932 | UIClass__render_npc_kafra_animation | Renders an animated NPC Kafra sprite. Loads sprite/action data for "npc_4_f_kafra6" via FUN_00aee770 with __RTDynamicCast. Calculates animation frame from timeGetTime() using 4000ms cycle divided by entry count. Looks up sprite frame data, renders as textured quad with 0.8 alpha and UV coordinates. Stores rendered bounds at offset 0x218-0x224. |
| 0x00918D70 | 1243 | UIClass__render_tooltip_popup | Renders a tooltip popup for an element at offset 0xC0. Draws highlight border if element quality < 100, copies element position, looks up position offsets from string map. Positions tooltip at 130x130 rect near the element, clamped to screen bounds. Renders the element name in white/gray text at (x+3, y+0x73), gets display name via FUN_00dde770, renders it in gold (0xD2FF) text at (x+3, y+3). Creates a texture resource via stub_005717a0. Allocates a 0x14-byte bounds struct at offset 0xC8. |
| 0x00919250 | 80 | UIClass__render_tooltip_background | Renders the tooltip background. If offset 0xD0 is non-null, draws a filled rect (130x130) with semi-transparent black (0x88000000) at the position stored at offset 0xC8, then invokes virtual method 0x2C on the tooltip texture to render the content on top. |
| 0x009192A0 | 1080 | UIClass__render_list_entries_with_text | Renders list entries with text and optional status labels. For each entry matching DAT_013899bc, draws a white bounding rect, truncates name text to remove last 4 chars, measures and centers it horizontally. If the entry name matches a lookup result (from FUN_00ad6450 virtual method 0x18 with param 9), also draws a secondary label in pink (0x8080F0) below the name. |
| 0x00919B50 | 677 | UIClass__render_autocomplete_dropdown | Renders an autocomplete dropdown near a UI element. Frees previous bounds (offset 0xC4), measures text widths of all entries in the linked list (at offset 0xBC+0x4C). Positions the dropdown adjacent to the element (right or left depending on space). Compares each entry name against the current input via FUN_00e08c70 (case-sensitive byte compare), highlighting matches in pink (0x8080F0) vs white (0xFFFFFF). Allocates a 0x14-byte bounds struct and draws the bounding outline. |
| 0x00919E00 | 673 | UIClass__render_entry_labels | Renders text labels for entries with quality < 100. Gets font size from DAT_013899e0 array, iterates entries from stub_00617940 vector. For each entry, copies the name string, measures text width, and renders centered text with shadow (FUN_00a84360) using DAT_013899d8/dc colors. |
| 0x0091A0B0 | 1814 | UIClass__render_entry_labels_extended | Extended label rendering for entries. Handles two cases: (1) entries with quality < 100 - renders name label with shadow text, and (2) entries with quality >= 100 - renders each sub-entry with alternating vertical positioning, draws bounding rects with border color, centered text with shadow in multiple font sizes. Uses multiple color globals from DAT_01389xxx. |
| 0x0091A960 | 748 | UIClass__render_connections_and_nodes | Renders connection lines and node textures between entries. Loads two textures for node rendering. For each entry with quality < 100: if it has sub-entries, draws connecting lines via render_line_as_textured_quad with highlighting for selected items, and renders source node texture. For single entries, renders the node directly. Uses stub_005717a0 for texture loading. |
| 0x0091AC50 | 949 | UIClass__render_waypoints | Renders waypoint entries. Iterates through entries from util_00617270/util_00617220, draws filled rects with color DAT_01389bec. Draws connecting lines between consecutive waypoints using render_line_as_textured_quad. For the last waypoint, compares its name against an icon resource name - if matching, renders an icon texture centered at the waypoint position with semi-transparent alpha. |
| 0x0091B750 | 169 | UIClass__render_selection_and_tooltip | Renders selection highlight and tooltip for the current element. If element at 0xC0 and bounds at 0xC8 exist, draws selection rect with DAT_01389c08 color. If tooltip texture at 0xD0 exists, draws 130x130 semi-transparent background and renders texture. Also draws dropdown bounds at 0xC4 if present. |
| 0x0091B800 | 298 | UIClass__process_text_with_item_links | Processes text by stripping item link tags. Copies the input string, calls CItemLink__strip_link_tags to remove link markup, then iterates through entries at offsets 0xF4-0xF8, calling FUN_00879390 to get display text for each entry. Moves string data via direct field copy (6 dwords) for each match. Returns the processed output in param_2. |
| 0x0091B9C0 | 87 | UIClass__find_entry_by_flag_offset | Searches a tree (DAT_01732d74) for the first entry with a non-zero byte at offset (0x2C + param_2). Returns the corresponding element from the vector at offset 0xF4 using the entry index. Returns 0 if no matching entry found. |
| 0x0091BE80 | 253 | UIClass__init_entry_from_string_and_bounds | Initializes an entry struct from a string and bounding rect. Copies the string, then copies the 4 bounds values + a flag into offsets 6-0x12 of the output. Calculates center position (x + width*0.5, y + height*0.5) and stores at offsets 0xB/0xC. Stores width and height as floats at 0xD/0xE. |
| 0x0091BF80 | 1138 | UIClass__process_click_on_map | Processes mouse clicks on the navigation map. If get_field_0x17e0 returns 0 or less, handles single-entry click: gets current map name, initializes a zone entry, adds to linked list, and searches category list. If > 0, handles multi-entry click: iterates through item nodes, for each node checks if its name matches any entry in the linked list at offset 0xB4. If no match found, creates a new zone entry and searches category list. Uses STL linked list push_back for matched entries. |
| 0x0091C400 | 203 | UIClass__find_entry_in_category_list | Searches for an entry by name in the category list (DAT_013899c4-c8). Copies the entry name from offset 0x20, then iterates categories calling util_00613c30 for each. If found, stores category index, copies 5 bounding values to offsets 0xE-0x12, and returns 1. Returns 0 if not found. |
| 0x0091C600 | 164 | UIClass__find_node_at_position | Finds a node at a given (x,y) screen position. First checks if the position is within the currently selected element's bounds (offset 0xC0, fields 0x38-0x44). If outside or no selection, traverses a red-black tree (DAT_01737954) using in-order iteration, checking each node's bounding box (offsets 5-8 as dwords). Returns the node's value at offset 4 (typically a map/zone index), or -1 if no node contains the position. |
| 0x0091C6B0 | 100 | UIClass__calculate_frame_delta_time | Calculates frame delta time in seconds. On first call (flag at 0xDC == 1), initializes timestamp from timeGetTime(). Computes elapsed milliseconds since last call, converts to float seconds by dividing by DAT_010dd25c (likely 1000.0). Returns the delta time as float10. Stores current time at offset 0xD8. |
| 0x0091C9B0 | 44 | UIClass__get_scroll_state | Copies scroll/view state from the object into param_2. Copies 7 values from offsets 0xC4-0xDC into the output struct (scroll position, view bounds, and flags). Always returns 1. |
| 0x0091C9E0 | 44 | UIClass__get_scroll_state_b | Copies scroll/view state from offsets 0xC0-0xD8 into param_2 struct (7 dwords). Similar to UIClass__get_scroll_state but reads from offset 0xC0 instead of 0xC4. Always returns 1. |
| 0x0091CF40 | 101 | UIClass__clear_all_entries | Clears all entries from the UI class. Destroys the linked list at offset 0xB4 via FUN_0090fae0, resets list head/tail pointers, zeros out count (0xB8), tooltip (0xD0), selection (0xC4/0xC8/0xC0), element (0xBC), and flag (0xCC). |
| 0x0091E080 | 101 | UIClass__copy_and_init_entry | Copies an entry's name string (from offset 0x20) and initializes it via UIClass__init_entry_from_string_and_bounds. |
| 0x0091E120 | 937 | UIClass__rebuild_navigation_entries | Rebuilds navigation entries from a source vector. Clears the current 0x3C-element vector, then iterates the source param_2 array (0x18-byte elements). For each element, calls CWorldView__find_child_zone_by_name_in_groups to look up the zone. If found, copies the zone name string, calls UIClass__init_entry_from_string_and_bounds to set up bounds, and appends a new 0x3C-byte entry to the vector. Sets flag at offset 0x35 to 1 when complete. |
| 0x0091E4D0 | 403 | UIClass__is_special_map_name | Checks if a map name matches certain special maps. Based on mode (offset 0x2C): mode 0 checks for "izlude.rsw", "ra_fild12.rsw", "yuno.rsw"; mode 1 checks for "einbroch.rsw", "lighthalzen.rsw", "hugel.rsw". Returns 1 if match found, 0 otherwise. |
| 0x0091E670 | 185 | UIClass__find_and_push_entry_by_name | Searches the linked list at offset 0xB4 for an entry whose name (at offset 0x28 in the node) matches the given string. If found, pushes a value to a list via std__list_push_back_string and returns 1. Returns 0 if no matching entry found. |
| 0x0091E730 | 169 | UIClass__has_entry_in_string_map | Checks if a given string key exists in the string map. Calls FUN_0090fa50 (lower_bound) and compares the result. Returns true if the key is found in the map, false if not present (comparing against sentinel DAT_01456f7c). |
| 0x0091E7E0 | 27 | UIClass__has_valid_quality_widget | Checks if the quality widget at offset 0x13C is valid. Returns 1 if the widget exists and its sub-member at +0x28 is non-zero, 0 otherwise. 27 bytes. |
| 0x0091E960 | 93 | UIClass__set_position_clamped | Sets the UI element position, clamping to screen bounds. X is clamped to [0, screen_width - widget_width], Y defaults to 0x136 if out of bounds. Calls UIWidget__set_offset_and_refresh_b and updates global position cache at DAT_01737f78/7c. |
| 0x0091E9C0 | 125 | UIClass__set_position_and_notify | Sets widget position and notifies parent. Calls UIWidget__set_offset_and_refresh_b, gets absolute position via FUN_00a7d870, updates internal offsets at 0xC4 and 0xC8. If DAT_01457a70 is non-null, sends notification via virtual method 0x94 with message type 6, subtype 0xC5, and absolute dimensions. |
| 0x0091EA40 | 78 | UIClass__set_position_with_adjustment | Sets position with auto-adjustment. Stores initial (x,y) at offsets 0x1C/0x20, calls FUN_00a914a0 to get adjustment deltas, adds them to position. Clamps Y to >= 0. Then calls FUN_00aab0d0 to finalize. |
| 0x0091EA90 | 114 | UIClass__set_position_and_update_map | Sets widget position and updates the position map. Calls UIWidget__set_offset_and_refresh_b, gets absolute position, stores X at 0xC0 and Y+offset(0xE8) at 0xC4. Updates the std::map at offset 0xF4 with the new absolute position (x at +0x34, y at +0x38 in the map entry). |
| 0x0091EBA0 | 140 | UIClass__update_button_visibility | Updates visibility of three child buttons (at offsets 0x83-0x85). If DAT_014a67f4 is 0 or DAT_016fc55c is non-zero, positions buttons at fixed locations (0x14F,0), (0x177,3), (0x83,0) and sets DAT_016fc550=1. Otherwise hides all three by moving them offscreen (-100,-100). Then triggers redraw. |
| 0x0091EC40 | 343 | UIClass__initialize_list_with_controls | Initializes a list UI with controls. Creates a sprite widget (0xB4 bytes) via UISpriteWidget__ctor at offset 0x2D, positions it, creates button and close button widgets via CUIEquipWindow helpers. Creates a radio button group (0x10C bytes) via FUN_0084f010 at offset 0x45, sets up filter tabs. Calculates visible rows from height (param_3 - 0x26) / 0x14. Calls virtual method 0xD4 to finalize. |
| 0x0091EDA0 | 1872 | UIClass__init_navigation_dialog_buttons | Initializes navigation dialog buttons (1872 bytes). Creates two UIDialogBox widgets at offsets 0xB4 and 0xB8 with button textures (normal/cancel states), a text widget with CNavigatorDialog vtable at 0xBC, and sets up their positions and child relationships. Sets focused widget and message ID 0xB8. |
| 0x0091F4F0 | 2782 | UIClass__init_escape_shortcut_buttons | Initializes 7 escape/shortcut button dialog boxes (2782 bytes). Creates UIDialogBox widgets in a loop for escape key shortcuts (esc_01, esc_001, esc_08, esc_09, esc_02, esc_05, esc_10) stored at offsets 0x2D-0x33. Each button gets 3 texture states (normal/a/b). Positions buttons based on param_1[0x34] mode (0=5 columns, 1=2 rows, 2=3 rows). |
| 0x0091FFD0 | 3456 | UIClass__initialize_navigation_window | Initializes the navigation window (3456 bytes). Sets up all child widgets, buttons, text fields, and data structures for the navigation/map UI. |
| 0x00920D60 | 1274 | UIClass__init_job_list_panel | Initializes the job list sub-panel (1274 bytes). Creates an editable text widget at 0xB4 with "Job_List" label, a close button, and a dialog box button at 0xD0 with 3 texture states. Zeroes out 6 fields at 0xB8-0xCC. |
| 0x00921260 | 711 | UIClass__init_navigation_minimap_controls | Initializes navigation minimap controls (711 bytes). Creates a UIDialogBox button at 0xB4 with "Alt+B" shortcut label and 3 texture states, a scrollbar widget at 0xB8 with text from message 0xCC6, then calls UISkillBar layout. |
| 0x00921530 | 1339 | UIClass__init_navigation_details_list | Initializes the navigation details scroll list (1339 bytes). Creates a UIColoredScrollListBase at 0xB4 and populates it with ~25 rows of message strings (0x8C1-0x8D0, 0xC90-0xC92) as categorized detail labels with spacer rows between sections. |
| 0x00921A70 | 5664 | UIClass__build_navigation_database | Builds the navigation database (5664 bytes, >5000 - renamed based on context). Large initialization function that populates the navigation graph/tree with map data. |
| 0x009230A0 | 5991 | UIClass__parse_navigation_config | Parses navigation configuration data (5991 bytes, >5000 - renamed based on context). Reads and processes map configuration files for the navigation system. |
| 0x00924810 | 568 | UIClass__init_party_booking_help_panel | Initializes the party booking help panel (568 bytes). Creates a colored scroll list at 0xB4 and calls the Lua function "GetPartyBookingHelp" to populate help text content. |
| 0x00924A60 | 2760 | UIClass__populate_navigation_list | Populates the navigation list view (2760 bytes). Fills the list with filtered navigation entries for display. |
| 0x00925530 | 2107 | UIClass__handle_navigation_list_click | Handles click events on the navigation list (2107 bytes). Processes item selection, expansion, and navigation actions. |
| 0x00925D70 | 5685 | UIClass__render_navigation_list_items | Renders navigation list items (5685 bytes, >5000 - renamed based on context). Draws the scrollable list of navigation entries with icons, text, and selection highlights. |
| 0x009273B0 | 3555 | UIClass__initialize_skill_window | Initializes the skill window (3555 bytes). Sets up child widgets, skill tree display, and tab controls for the skill UI. |
| 0x009281A0 | 2227 | UIClass__handle_skill_window_message | Handles messages for the skill window (2227 bytes). Processes skill selection, leveling, and drag operations. |
| 0x00928A60 | 3191 | UIClass__init_character_preview_slots | Initializes character preview slots (3191 bytes). Creates a dialog box button at 0x19E4, then for each entry in DAT_017334CC, creates tab widgets at 0x199C+ and builds sprite resource paths (head palette, body palette, weapon, shield, IMF) using sync_and_get_current_map_id. Stores character appearance data (job, equip locations, sprite paths) per slot for the character selection/preview UI. |
| 0x009296E0 | 2722 | UIClass__render_skill_tooltip | Renders skill tooltip information (2722 bytes). Displays skill name, description, level requirements, and SP cost in a tooltip popup. |
| 0x0092A190 | 1405 | UIClass__handle_skill_list_event | Handles events for the skill list view (1405 bytes). Processes mouse clicks and keyboard input for the flat skill list display. |
| 0x0092A710 | 2246 | UIClass__render_skill_list | Renders the flat skill list display (2246 bytes). Draws skill entries in a scrollable list format with icons and level information. |
| 0x0092B000 | 886 | UIClass__render_route_visualization | Renders route visualization on the map (886 bytes). Draws animated route lines showing the path between navigation points. |
| 0x0092B380 | 1185 | UIClass__process_route_data | Processes route/path data for navigation (1185 bytes). Calculates and stores route segments for visualization. |
| 0x0092B830 | 389 | UIClass__render_skill_tree_node_sprites | Renders skill tree node sprites with animation (389 bytes). For each detail entry in the current skill tree node, finds/acquires tile cache entries and draws them at centered positions. Advances animation frame counter on a timer (offset 0xB4 ms interval), wrapping back to 0 when reaching the node count. |
| 0x0092B9C0 | 729 | UIClass__render_item_list_with_checkboxes | Renders an item list with checkboxes (729 bytes). Draws left and right borders with tiled sprites, a vertical separator line, then iterates over items drawing text entries at x=0x32 with selection highlight, checkbox icons based on boolean state at 0xEC+index, and row separators. Returns early when visible row count (0xBC) is reached. |
| 0x0092BCA0 | 49 | UIClass__draw_minimap_background_sprite | Draws the minimap background sprite (49 bytes). Loads a sprite resource from a path and draws it at position (0,0). |
| 0x0092BCE0 | 251 | UIClass__render_paired_text_list | Renders a paired text list (251 bytes). Iterates over entries at offsets 0x84-0x88 (0x18 bytes each), drawing text alternately at x=6 and x=0x32, with text height advancing the y position after each pair. |
| 0x0092BDE0 | 214 | UIClass__render_minimap_title_label | Renders the minimap title label (214 bytes). Builds a formatted string using an obfuscated map ID (DAT_01733C40) and message 0x5CB, loads the result as a texture resource, stores it at offset 0xD4, then draws its border. |
| 0x0092BEC0 | 1904 | UIClass__render_full_minimap | Renders the full minimap view (1904 bytes). Draws the complete minimap with background, terrain, and all overlay elements. |
| 0x0092C640 | 111 | UIClass__render_minimap_background | Renders the minimap background area (111 bytes). Draws the title bar, fills the main area with a sampled background color, and draws the bottom tiled border. |
| 0x0092C6B0 | 1949 | UIClass__handle_minimap_message | Handles messages for the minimap window (1949 bytes). Processes zoom, pan, click, and display mode changes for the minimap. |
| 0x0092CE50 | 106 | UIClass__render_minimap_icon_sprite | Renders the minimap icon sprite (106 bytes). If offset 0x2C >= 0, checks whether a window of type 0xE4 exists and is visible. If so, loads the sprite path from offset 0xB4, otherwise from 0xCC. Draws the loaded sprite at (0,0). |
| 0x0092CEF0 | 1317 | UIClass__initialize_minimap_window | Initializes the minimap window (1317 bytes). Sets up the minimap display area, child widgets, and data structures. |
| 0x0092D420 | 518 | UIClass__render_world_map | Renders the world map view (518 bytes). Draws the full world map with zone boundaries and player position. |
| 0x0092D660 | 1915 | UIClass__handle_world_map_message | Handles messages for the world map window (1915 bytes). Processes zoom, click, and navigation events on the world map display. |
| 0x0092DDE0 | 49 | UIClass__draw_world_map_background_sprite | Draws the world map background sprite (49 bytes). Loads a sprite resource from a path and draws it at position (0,0). |
| 0x0092DE90 | 922 | UIClass__initialize_world_map_window | Initializes the world map window (922 bytes). Sets up the world map display area, zoom controls, and navigation elements. |
| 0x0092E230 | 195 | UIClass__setup_map_texture | Sets up the map texture for rendering (195 bytes). Loads and configures the map background texture resource. |
| 0x0092E300 | 614 | UIClass__render_map_with_markers | Renders the map with entity markers (614 bytes). Draws the map background and overlays entity positions (NPCs, players, etc). |
| 0x0092E570 | 1644 | UIClass__handle_map_interaction | Handles map interaction events (1644 bytes). Processes click, drag, and zoom interactions on the map display. |
| 0x0092EBE0 | 3321 | UIClass__initialize_map_system | Initializes the map system (3321 bytes). Sets up all map-related data structures, textures, and configuration for the map/minimap subsystem. |
| 0x0092F8E0 | 2698 | UIClass__process_map_data_update | Processes map data updates (2698 bytes). Handles dynamic updates to map data such as zone changes, NPC positions, and waypoint modifications. |
| 0x00930370 | 476 | UIClass__finalize_map_initialization | Finalizes map initialization (476 bytes). Completes the map system setup after all data has been loaded and processed. |
| 0x0094EE80 | 28 | UIWidget__delegate_vtable_0x64 | Delegates to the parent widget's virtual function at vtable offset 0x64, if parent pointer at this+0x10 is non-null. Used as an event forwarding thunk. |
| 0x0094EEA0 | 20 | UIWidget__delegate_vtable_0x64_b | Delegates to the parent widget's virtual function at vtable offset 0x64, if parent pointer at this+0x10 is non-null. Second instance of this pattern. |
| 0x0094EF80 | 28 | UIWidget__delegate_vtable_0x7c | Delegates to the parent widget's virtual function at vtable offset 0x7c, if parent pointer at this+0x10 is non-null. |
| 0x0094EFA0 | 20 | UIWidget__delegate_vtable_0x7c_b | Delegates to the parent widget's virtual function at vtable offset 0x7c, if parent pointer at this+0x10 is non-null. Second instance. |
| 0x0094EFC0 | 93 | UIWidget__render_text_label | Renders a text label on a UI widget. Checks if text content exists at offset 0xd4, transforms position with offset (10, -20), reads the SSO string from offset 0xc4 and renders it via FUN_00ad6510 with color -1 (white). |
| 0x0094F0E0 | 67 | UIWidget__check_timer_expiry | Checks if a timer has expired on a UI widget. Compares current timeGetTime() against a stored 64-bit deadline at offsets 0xb8-0xc4. If the deadline has passed, plays sound effect 0x166 via FUN_00a8cf20. Only runs if enabled flag at 0xcc is set. |
| 0x0094F130 | 138 | UIWidget__update_countdown_timer | Updates a countdown timer on a UI widget. Uses timeGetTime() to track elapsed seconds. Decrements the remaining time at offset 0x2f by elapsed seconds (clamped to 0). Calls repaint callback and updates global DAT_01738244 with (3600 - remaining). Only runs if widget is visible (offset 0x28 != 0) and timer < 300 and time > 0. |
| 0x0094F2C0 | 60 | UIWidget__handle_scroll_event | Handles mouse wheel scroll on a UI widget. If scrollable flag (offset 0xa5 == 1), sends scroll event via vtable 0x94 with command 7 and direction 0xc (up) or -0xc (down) based on scroll delta sign. |
| 0x0094F300 | 23 | UIWidget__delegate_vtable_0x8c | Delegates to the parent widget's virtual function at vtable offset 0x8c, if parent pointer at this+0x10 is non-null. |
| 0x0094F380 | 40 | UIWidget__store_position | Stores the current widget position. Calls FUN_00a82eb0 with params, then saves the widget's x,y from offsets 0x14,0x18 into offsets 0xc8,0xcc. |
| 0x0095D570 | 9 | thunk_to_UIWidget__create_two_sprite_children_0095d570 | Wrapper that calls UIWidget__create_two_sprite_children and returns |
| 0x0096FAC0 | 161 | UIClass_5490__dtor | Destructor for UI window class (vtable 01145490). Destroys two STL strings, destroys hash table at offset 0xE8, frees hash table buffer (0x100 bytes), then calls UIWindowBase::dtor. |
| 0x0096FB70 | 160 | UIClass_5640__dtor | Destructor for UI window class (vtable 01145640). Zeroes DAT_01738268, destroys one STL string, hash table at 0xE8, frees 0x100, calls UIWindowBase::dtor. |
| 0x0096FC10 | 128 | UIClass_6060__dtor | Destructor for UI window class (vtable 01146060). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor. |
| 0x0096FC90 | 128 | UIClass_5d00__dtor | Destructor for UI window class (vtable 01145d00). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor. |
| 0x0096FD10 | 71 | UIClass_5dd8__dtor | Destructor for UI window class (vtable 01145dd8). Simply sets vtable and calls UIWindowBase::dtor. No hash table or strings to destroy. |
| 0x0096FD60 | 128 | UIClass_5eb0__dtor | Destructor for UI window class (vtable 01145eb0). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor. |
| 0x0096FDE0 | 128 | UIClass_5c28__dtor | Destructor for UI window class (vtable 01145c28). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor. |
| 0x0096FE60 | 128 | UIClass_6138__dtor | Destructor for UI window class (vtable 01146138). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor. |
| 0x0096FEE0 | 128 | UIClass_6210__dtor | Destructor for UI window class (vtable 01146210). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor. |
| 0x0096FF60 | 145 | UIClass_63c0__dtor | Destructor for UI window class (vtable 011463c0). Destroys two STL strings, hash table at offset 0x148, frees 0x100, calls UIWindowBase::dtor. |
| 0x00970000 | 71 | UIClass_5f88__dtor | Destructor for UI window class (vtable 01145f88). Sets vtable and calls UIWindowBase::dtor. |
| 0x00970050 | 110 | UIClass_5718__dtor | Destructor for UI window class (vtable 01145718). Clears and frees item entry vector, destroys linked list (4c nodes), then calls UIWindowBase::dtor. |
| 0x009701B0 | 99 | UIClass_52cc__scalar_deleting_dtor | Scalar deleting destructor for UI dialog class (vtable 011452cc, size 0x11C). Calls UIBaseDialog::destructor, then frees memory if flag bit 0 is set. |
| 0x00970220 | 139 | UIClass_53b8__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 011453b8, size 0xF0). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor, then frees if flag set. |
| 0x009702B0 | 99 | UIClass_62e8__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 011462e8, size 0xBC). Sets vtable and calls UIWindowBase::dtor, then frees if flag set. |
| 0x00970320 | 152 | UIClass_59a0__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 011459a0, size 0x104). Destroys hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x009703C0 | 152 | UIClass_5b50__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01145b50, size 0x100). Destroys hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x00970460 | 152 | UIClass_5a78__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01145a78, size 0xFC). Destroys hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x00970500 | 152 | UIClass_58c8__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 011458c8, size 0x10C). Destroys hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x009705A0 | 152 | UIClass_57f0__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 011457f0, size 0x110). Destroys hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x00970700 | 185 | UIClass_5490__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01145490, size 0x160). Destroys two STL strings and hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x009707C0 | 184 | UIClass_5640__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01145640, size 0x194). Zeroes DAT_01738268, destroys STL string and hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x00970880 | 152 | UIClass_6060__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01146060, size 0x130). Destroys hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x00970920 | 152 | UIClass_5d00__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01145d00, size 0x120). Destroys hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x009709C0 | 99 | UIClass_5dd8__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01145dd8, size 0xD4). Sets vtable and calls UIWindowBase::dtor, frees if flag set. |
| 0x00970A30 | 152 | UIClass_5eb0__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01145eb0, size 0x10C). Destroys hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x00970AD0 | 152 | UIClass_5c28__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01145c28, size 0x11C). Destroys hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x00970B70 | 152 | UIClass_6138__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01146138, size 0xFC). Destroys hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x00970C10 | 152 | UIClass_6210__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01146210, size 0xF8). Destroys hash table, calls UIWindowBase::dtor, frees if flag set. |
| 0x00970CB0 | 169 | UIClass_63c0__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 011463c0, size 400). Destroys two STL strings and hash table at offset 0x148, frees 0x100, calls UIWindowBase::dtor. |
| 0x00970D60 | 99 | UIClass_5f88__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01145f88, size 0xBC). Calls UIWindowBase::dtor, frees if flag set. |
| 0x00970DD0 | 134 | UIClass_5718__scalar_deleting_dtor | Scalar deleting destructor for UI window class (vtable 01145718, size 0x148). Clears item entry vector, destroys linked list, calls UIWindowBase::dtor, frees if flag set. |
| 0x00999C70 | 68 | UIWidget__scalar_deleting_dtor_00999c70 | Scalar deleting destructor for a UI widget (size 8). Conditionally frees memory via operator delete. |
| 0x00999CC0 | 68 | UIWidget__scalar_deleting_dtor_00999cc0 | Scalar deleting destructor for a UI widget (size 8). Conditionally frees memory via operator delete. |
| 0x00999D10 | 68 | UIWidget__scalar_deleting_dtor_00999d10 | Scalar deleting destructor for a UI widget (size 8). Conditionally frees memory via operator delete. |
| 0x00999D60 | 68 | UIWidget__scalar_deleting_dtor_00999d60 | Scalar deleting destructor for a UI widget (size 8). Conditionally frees memory via operator delete. |
| 0x00999DB0 | 68 | UIWidget__scalar_deleting_dtor_00999db0 | Scalar deleting destructor for a UI widget (size 8). Conditionally frees memory via operator delete. |
| 0x00999E00 | 68 | UIWidget__scalar_deleting_dtor_00999e00 | Scalar deleting destructor for a UI widget (size 8). Conditionally frees memory via operator delete. |
| 0x00999F30 | 16 | UIWidget__set_vtable_00999f30 | Sets vtable pointer to PTR_FUN_011471f4 for a UI widget class. |
| 0x00999F40 | 16 | UIWidget__set_vtable_00999f40 | Sets vtable pointer to PTR_FUN_01147210 for a UI widget class. |
| 0x00999F60 | 16 | UIWidget__set_vtable_00999f60 | Sets vtable pointer to PTR_FUN_01147248 for a UI widget class. |
| 0x00999F70 | 16 | UIWidget__set_vtable_00999f70 | Sets vtable pointer to PTR_FUN_01147264 for a UI widget class. |
| 0x00999F80 | 16 | UIWidget__set_vtable_00999f80 | Sets vtable pointer to PTR_FUN_01147280 for a UI widget class. |
| 0x009A50E0 | 55 | UIWidget__is_position_within_map_bounds_009a50e0 | Checks if a widget's X/Y position is within map bounds (0 < x <= mapWidth-300 and 0 < y <= mapHeight-150). Returns 1 if valid, 0 otherwise. |
| 0x009A5120 | 164 | UIWidget__validate_npc_placement_009a5120 | Validates NPC placement position. Checks if object type is 0xDC, validates direction (0x37/0x47/0x86/0x95 with orientation check), and ensures position fits within map bounds accounting for object dimensions. |
| 0x009ADF10 | 612 | UIWidgetList__sync_from_range | Syncs widget list with source range: updates existing entries, appends new ones, removes excess |
| 0x009AE180 | 174 | UIWidgetList__insert_before | Inserts a new 0x10-byte list node before the specified position; increments count |
| 0x009AE230 | 37 | UIWidgetList__init_empty | Initializes an empty circular doubly-linked widget list with sentinel node (0x4C bytes) |
| 0x009AE260 | 309 | UIItemListMgr__constructor | Constructor for item list manager: inits 4 widget lists, 2 linked lists, sets default timing and flags |
| 0x009AE3A0 | 67 | UIWidgetList__free_sentinel | Frees the 0x10-byte sentinel node of a widget list if it exists |
| 0x009AE3F0 | 78 | UIWidgetList__free_sentinel_alt | Frees the 0x10-byte sentinel node of a widget list (alternate version with different SEH setup) |
| 0x009AE440 | 114 | UIWidgetList__clear_all_entries | Clears all entries from widget list: calls destructor on each 0x4C-byte node, frees memory |
| 0x009AE530 | 235 | UIItemListMgr__destructor_base | Base destructor for UIItemListMgr: frees both linked lists, destroys 4 widget lists via iterators |
| 0x009AE620 | 259 | UIItemListMgr__scalar_deleting_destructor | Scalar deleting destructor for UIItemListMgr (0x2B0 bytes); calls base destructor then optionally frees |
| 0x009AE730 | 456 | UIItemListMgr__process_pending_skill_ups | Processes pending skill point allocations: in classic mode, sends skill-up packets (0x43) for each queued skill. In new mode, compares current vs desired levels and sends packets for the difference. Clears the pending list and refreshes layout afterward. |
| 0x009AE900 | 36 | UIItemListMgr__has_valid_data | Returns 1 if list has valid data: checks offsets 4, 0x10, and 0xC are all non-zero |
| 0x009AE930 | 2501 | UIItemListMgr__render_skill_preview_sprites | Renders skill preview sprites including body/head/weapon/shield sprite paths, Doram offset adjustment via Lua, and IMF resource loading. Iterates twice for different animation frames with timing-based frame selection. |
| 0x009AF300 | 1619 | UIItemListMgr__render_skill_grid_classic | Renders the classic skill grid with icons, Sp/Ap cost labels, skill level counts (current/max), selection highlight, and skill names per slot. Used when DAT_017326ec != 0 (classic mode). |
| 0x009AF960 | 2263 | UIItemListMgr__render_skill_grid_detailed | Renders detailed skill grid with selection borders, equipment marks, level overlays (current/max with color coding), card indicators, skill names with ellipsis truncation, and exceeded-level badges. |
| 0x009B0240 | 171 | UIItemListMgr__hit_test_grid_slot | Converts mouse x,y position to grid slot index; returns -1 if outside valid slot area |
| 0x009B0320 | 77 | UIItemListMgr__get_pending_skill_up_count | Gets pending skill-up count for a skill ID from the allocation queue (0x2A0), minus the base skill level from CSkillMgr. Returns 0 if skill not found. |
| 0x009B0370 | 232 | UIItemListMgr__get_selection_count_string | Gets selection count as string for an item ID from the selection list; returns empty if count <= 0 |
| 0x009B0460 | 171 | UIItemListMgr__get_skill_entry_by_slot | Retrieves CSkillEntry info for a given slot index by searching the current tab's skill list. Returns via copy constructor. |
| 0x009B0510 | 353 | UIItemListMgr__find_skill_entry_by_id | Searches all tabs for a skill entry by skill ID and returns its CSkillEntry info struct. Copies to output param via CSkillEntry copy constructor. |
| 0x009B0680 | 204 | UIItemListMgr__get_skill_entry_by_display_index | Retrieves CSkillEntry at a display index (adjusted by scroll offset) from current tab's skill list. |
| 0x009B0750 | 106 | UIItemListMgr__try_get_skill_at_index | Tries to get skill entry at index from tab's skill list; returns success flag and pointer to CSkillEntry data. In new mode uses sequential index, classic mode matches by display slot index. |
| 0x009B07C0 | 94 | UIItemListMgr__get_tab_skill_list | Returns skill list pointer for a given tab index; returns global list for last tab, or calls CSkillMgr for filtered list, or local array entry for direct access. |
| 0x009B0820 | 984 | UIItemListMgr__initialize_skill_tabs_and_categories | Initializes skill list tabs based on equipment slot/skill category mapping. Handles all skill type IDs via large switch (basic 1-54, extended 142-157, guild 500-544, 3rd class 2000+, homunculus 411-444, etc). Calls Lua for category resolution and creates tab entries. |
| 0x009B0E40 | 155 | UIItemListMgr__refresh_all_tabs | Refreshes all 4 tabs by syncing from data source, clears purchase list and resets edit mode |
| 0x009B0EE0 | 62 | UIItemListMgr__is_last_tab | Returns true if the given tab index equals the last tab index (total tabs - 1) |
| 0x009B0F20 | 113 | UIItemListMgr__has_skill_with_level | Checks if current tab's skill list contains a skill with matching ID and non-zero level. |
| 0x009B0FA0 | 118 | UIItemListMgr__is_point_in_grid_area | Tests if x,y coordinates fall within the item grid area bounds, accounting for header offset |
| 0x009B1020 | 41 | UIItemListMgr__is_skill_selected | Checks if a skill ID exists in the selection list (offset 0x298). Returns 1 if found, 0 otherwise. |
| 0x009B1050 | 4357 | UIItemListMgr__create_child_controls | Creates all child controls: scrollbar, skill up buttons (3 states), item slot buttons, apply/reset buttons |
| 0x009B2160 | 1071 | UIItemListMgr__render_window_frame | Renders the skill list window frame: borders, tab bar header tiles, window title (msg 0x11B), weight/skill point display, and dispatches to either render_skill_grid_classic or render_skill_grid_detailed + render_skill_preview_sprites depending on mode. |
| 0x009B2590 | 309 | UIItemListMgr__on_double_click | Handles double-click on item: opens item info or equips it depending on equip type |
| 0x009B31C0 | 958 | UIItemListMgr__layout_child_widgets | Positions all child widgets (scrollbar, buttons, arrow buttons, item slots) in the item list window |
| 0x009B3580 | 116 | UIItemListMgr__handle_message | Main message handler: processes scroll, tab change, resize, item click, buy/reset, layout mode toggle |
| 0x009B3DC0 | 172 | UIItemListMgr__set_skill_level_by_id | Sets the skill level for a specific skill ID across all tabs in the skill list. Iterates all tab lists searching by skill ID at field offset +0x10. |
| 0x009B3E70 | 56 | UIItemListMgr__sync_position_to_parent | Copies window position and size to parent rect pointer at offset 0x24C |
| 0x009B4100 | 42 | UIItemListMgr__get_pending_level_for_skill_id | Looks up the pending target level for a specific skill ID from the skill-up queue list (offset 0x2A0). Returns 0 if not queued. |
| 0x009B4130 | 42 | UIItemListMgr__get_queued_level_for_skill_id | Returns the queued target level for a skill ID from the skill-up queue list (offset 0x2A0). Returns 0 if not found. Identical implementation to get_pending_level_for_skill_id. |
| 0x009B4160 | 76 | UIItemListMgr__set_pending_count_for_item | Sets pending count for item ID in purchase list; creates new entry if not found |
| 0x009B54A0 | 215 | UIWidget__on_mouse_up_009b54a0 | Mouse-up handler for a UI widget. If not locked (field 0x2b), checks Shift key state. Without Shift: validates click in bounds, sets active flag (field 0xc), sends msg 0x62 with widget data to parent. With Shift held: if a drag target exists (field 0x55), sends msg 0x94 with widget rect data to drag target. |
| 0x009C02D0 | 164 | UIComponent__create_from_stream_009c02d0 | Factory method: optionally clones interface from param_2+0x24 via virtual call, then initializes component via FUN_009d7730. Returns this pointer. |
| 0x009C0380 | 164 | UIComponent__create_from_stream_009c0380 | Factory method: optionally clones interface from param_2+0x24, then initializes component via FUN_009d7890. Returns this pointer. |
| 0x009C0430 | 164 | UIComponent__create_from_stream_009c0430 | Factory method: optionally clones interface from param_2+0x24, then initializes component via FUN_009d79f0. Returns this pointer. |
| 0x009C04E0 | 164 | UIComponent__create_from_stream_009c04e0 | Factory method: optionally clones interface from param_2+0x24, then initializes component via FUN_009d7b50. Returns this pointer. |
| 0x009C0590 | 164 | UIComponent__create_from_stream_009c0590 | Factory method: optionally clones interface from param_2+0x24, then initializes component via FUN_009d7f70. Returns this pointer. |
| 0x009C12B0 | 85 | UIComponent__clear_child_items_009c12b0 | Iterates through child item vector (offsets 0xc8-0xcc), calls FUN_00a82e50 with flag=1 on each, resets end pointer to begin, and sets selected index (0xdc) to -1. |
| 0x009C1310 | 85 | UIComponent__clear_child_items_009c1310 | Identical to 009c12b0: iterates child items vector, calls FUN_00a82e50 with flag=1, resets to empty, sets selected index to -1. |
| 0x009C1370 | 85 | UIComponent__clear_child_items_009c1370 | Identical to 009c12b0: iterates child items vector, calls FUN_00a82e50 with flag=1, resets to empty, sets selected index to -1. |
| 0x009C13D0 | 85 | UIComponent__clear_child_items_009c13d0 | Identical to 009c12b0: iterates child items vector, calls FUN_00a82e50 with flag=1, resets to empty, sets selected index to -1. |
| 0x009C1430 | 36 | UIComponent__set_position_and_size_009c1430 | Sets width/height at offsets 0xb4/0xb8 from params 4/5, then calls FUN_00a7b470 to set position from params 2/3. |
| 0x009C1460 | 36 | UIComponent__set_position_and_size_009c1460 | Sets width/height at offsets 0xb4/0xb8, then calls FUN_00a7b470 to set position. Identical to 009c1430. |
| 0x009C1490 | 36 | UIComponent__set_position_and_size_009c1490 | Sets width/height at offsets 0xb4/0xb8, then calls FUN_00a7b470 to set position. Identical to 009c1430. |
| 0x009C14C0 | 36 | UIComponent__set_position_and_size_009c14c0 | Sets width/height at offsets 0xb4/0xb8, then calls FUN_00a7b470 to set position. Identical to 009c1430. |
| 0x009C14F0 | 87 | UIComponent__reset_and_center_009c14f0 | Resets a 2-byte flag at offset 0x2d*4, sets size to 750x468 via vtable+4, centers on screen using global screen dimensions at DAT_01389638, calls vtable+0x3c and vtable+0x40 for layout update. |
| 0x009C2770 | 69 | UIComponent__get_selected_item_data_009c2770 | Gets data for the currently selected item. Reads selected index from offset 0xdc, validates against count at 0xd8, traverses linked list from head at 0xd4 to the selected node, returns pointer to data at node+8. Sets success flag in param_2+1. |
| 0x009C27C0 | 69 | UIComponent__get_selected_item_data_009c27c0 | Identical to 009c2770: gets selected item data by traversing linked list to selected index. Returns node+8 pointer with success flag. |
| 0x009C2810 | 69 | UIComponent__get_selected_item_data_009c2810 | Identical to 009c2770: gets selected item data by traversing linked list to selected index. |
| 0x009C2860 | 69 | UIComponent__get_selected_item_data_009c2860 | Identical to 009c2770: gets selected item data by traversing linked list to selected index. |
| 0x009C28B0 | 193 | UIComponent__create_child_component_009c28b0 | Allocates 0xf0-byte child component via FUN_009be480, sets visibility to 0 via vtable+0x38, creates sub-component via FUN_009d3120, stores at param_1+0xb0, then finalizes via FUN_00a7a080. |
| 0x009C2980 | 193 | UIComponent__create_child_component_009c2980 | Allocates 0xf0-byte child component, constructs via FUN_009be480, sets hidden, attaches via FUN_009d3120, stores at param_1+0xb0, finalizes via FUN_00a7a080. Uses vtable PTR_FUN_011495d4. |
| 0x009C2A50 | 193 | UIComponent__create_child_component_009c2a50 | Identical pattern to 009c28b0: allocates 0xf0-byte child, constructs, hides, attaches. Uses vtable PTR_FUN_0114959c. |
| 0x009C2B20 | 193 | UIComponent__create_child_component_009c2b20 | Identical pattern: allocates 0xf0-byte child, constructs, hides, attaches. Uses vtable PTR_FUN_01149580. |
| 0x009C2BF0 | 193 | UIComponent__create_child_component_009c2bf0 | Identical pattern: allocates 0xf0-byte child, constructs, hides, attaches. Uses vtable PTR_FUN_01149564. |
| 0x009C2CC0 | 193 | UIComponent__create_child_component_009c2cc0 | Identical pattern: allocates 0xf0-byte child, constructs, hides, attaches. Uses vtable PTR_FUN_01149548. |
| 0x009C5400 | 1965 | UIComponent__init_text_labels_009c5400 | Creates 3 text label sub-components at offsets 0x80, 0x84, 0x88, 0x8c. First is 0xb8-byte sprite widget, other three are 0xfc-byte text labels. Each text label: decrypts XOR-encrypted font name, sets font size 12, configures colors (white foreground), and positions. Labels are finalized via FUN_00a7a080. |
| 0x009D1830 | 1090 | UIComponent__init_label_and_sprite_009d1830 | Initializes two sub-components: a 0xfc-byte text label at offset 0xe8 (decrypts font name, sets font size 12, bold, brown color 0x5f3c2c) and a 0xb8-byte sprite at offset 0xec (decrypts sprite resource path). Both finalized via FUN_00a7a080. |
| 0x009D1C80 | 639 | UIComponent__init_single_label_009d1c80 | Creates single 0xfc-byte text label at offset 0xe8. Decrypts XOR-encrypted font name, sets font size 12, bold, brown color 0x5f3c2c, white foreground. Finalized via FUN_00a7a080. |
| 0x009D1F00 | 1200 | UIComponent__init_two_labels_009d1f00 | Creates two 0xfc-byte text labels at offsets 0xe8 and 0xec. First label: bold, color 0x815a48. Second label: normal, color 0x2a435d. Both decrypt XOR-encrypted font names, use font size 12, white foreground. |
| 0x009D2410 | 63 | UIComponent__scroll_or_delegate_009d2410 | Checks if child component at offset 0xb0 is scrollable (flag at 0x2a*4 == 0 and position < max). If so, calls vtable+0x8c on it. Otherwise delegates to parent at offset 0x10. |
| 0x009D2450 | 63 | UIComponent__scroll_or_delegate_009d2450 | Identical to 009d2410: checks child scrollability, calls vtable+0x8c or delegates to parent. |
| 0x009D2490 | 63 | UIComponent__scroll_or_delegate_009d2490 | Identical to 009d2410: checks child scrollability, calls vtable+0x8c or delegates to parent. |
| 0x009D24D0 | 63 | UIComponent__scroll_or_delegate_009d24d0 | Identical to 009d2410: checks child scrollability, calls vtable+0x8c or delegates to parent. |
| 0x009D2510 | 63 | UIComponent__scroll_or_delegate_009d2510 | Identical to 009d2410: checks child scrollability, calls vtable+0x8c or delegates to parent. |
| 0x009D2550 | 63 | UIComponent__scroll_or_delegate_009d2550 | Identical to 009d2410: checks child scrollability, calls vtable+0x8c or delegates to parent. |
| 0x009D2590 | 65 | UIComponent__set_selected_highlight_009d2590 | Iterates child items vector (0xc8-0xcc), calls vtable+0xdc on each with boolean (true if item == param_2, false otherwise). Highlights the selected item. |
| 0x009D25E0 | 65 | UIComponent__set_selected_highlight_009d25e0 | Identical to 009d2590: iterates children, highlights selected item via vtable+0xdc. |
| 0x009D2630 | 65 | UIComponent__set_selected_highlight_009d2630 | Identical to 009d2590: iterates children, highlights selected item via vtable+0xdc. |
| 0x009D2680 | 65 | UIComponent__set_selected_highlight_009d2680 | Identical to 009d2590: iterates children, highlights selected item via vtable+0xdc. |
| 0x009D3050 | 196 | UIComponent__swap_callback_009d3050 | Clones interface from optional param, swaps callback object at this+0xa0 via GameSettings__swap_callback_objects, releases the clone. |
| 0x009D3120 | 196 | UIComponent__swap_callback_009d3120 | Identical to 009d3050: clones interface, swaps callback at this+0xa0. |
| 0x009D31F0 | 367 | UIComponent__insert_callback_by_key_009d31f0 | Inserts a callback into an RB-tree map keyed by int. Allocates 0x40-byte tree node if key not found, clones interface, swaps callback data via std__any__swap_009d7470, releases clone. |
| 0x009D3360 | 522 | UIComponent__load_textures_from_map_009d3360 | Loads 4 texture resources from string map (keys 0,1,2 + name at this+0x98). Stores texture handles at offsets 0x80-0x8c, replacing and releasing previous textures. Propagates textures to all child items in linked list at 0xc4. |
| 0x009D3570 | 522 | UIComponent__load_textures_from_map_009d3570 | Identical to 009d3360: loads 4 texture resources from string map, stores at 0x80-0x8c. |
| 0x009D3780 | 522 | UIComponent__load_textures_from_map_009d3780 | Identical to 009d3360: loads 4 texture resources. |
| 0x009D3990 | 522 | UIComponent__load_textures_from_map_009d3990 | Identical to 009d3360: loads 4 texture resources. |
| 0x009D3BA0 | 522 | UIComponent__load_textures_from_map_009d3ba0 | Identical to 009d3360: loads 4 texture resources. |
| 0x009D3DB0 | 522 | UIComponent__load_textures_from_map_009d3db0 | Identical to 009d3360: loads 4 texture resources. |
| 0x009D4F50 | 216 | UIComponent__set_map_strings_and_update_009d4f50 | Sets 4 strings into int->string map (keys 0,1,2 + name at this+0x26), then calls vtable+0xd4 to update and vtable+0x98 to refresh. |
| 0x009D5030 | 216 | UIComponent__set_map_strings_and_update_009d5030 | Identical to 009d4f50: sets map strings and updates. |
| 0x009D5110 | 216 | UIComponent__set_map_strings_and_update_009d5110 | Identical to 009d4f50: sets map strings and updates. |
| 0x009D51F0 | 216 | UIComponent__set_map_strings_and_update_009d51f0 | Identical to 009d4f50: sets map strings and updates. |
| 0x009D52D0 | 216 | UIComponent__set_map_strings_and_update_009d52d0 | Identical to 009d4f50: sets map strings and updates. |
| 0x009D53B0 | 216 | UIComponent__set_map_strings_and_update_009d53b0 | Identical to 009d4f50: sets map strings and updates. |
| 0x009D62B0 | 65 | UIComponent__set_selected_via_parent_009d62b0 | Highlights selected child via parent reference at offset 4. Dereferences param_2 to get target item, iterates parent's children vector, calls vtable+0xdc on each with match comparison. |
| 0x009D6300 | 65 | UIComponent__set_selected_via_parent_009d6300 | Highlights selected child via parent ref. Identical to 009d62b0. |
| 0x009D6350 | 65 | UIComponent__set_selected_via_parent_009d6350 | Highlights selected child via parent ref. Identical to 009d62b0. |
| 0x009D63A0 | 65 | UIComponent__set_selected_via_parent_009d63a0 | Highlights selected child via parent ref. Identical to 009d62b0. |
| 0x009D8F50 | 143 | UIControl__ctor_009d8f50 | Constructor for a UIControl class. Calls base constructor at 00a79a90, sets UIBase vtable, then sets own vtable to 0114b158. Initializes 4 zero fields at offsets 0x20-0x23. |
| 0x009D8FE0 | 146 | UIControl__ctor_009d8fe0 | Constructor for a UIControl class. Calls base constructor at 00a79a90, sets vtable chain (UIBase -> intermediate 0114b31c -> final 0114b3fc). Initializes 3 zero fields. |
| 0x009D9220 | 173 | UIControl__ctor_with_string_009d9220 | Constructor for a UIControl with an embedded string. Calls base at 00a79a90, sets vtable to 0114b78c. Initializes 3 zero fields and an SSO string buffer (capacity 0xf). |
| 0x009D9360 | 183 | UIControl__ctor_with_string_009d9360 | Constructor for a UIControl with an embedded string. Calls base at 00a79a90, sets vtable to 0114b5c4. Initializes 4 zero fields and an SSO string buffer (capacity 0xf). |
| 0x009D94D0 | 124 | UIControl__ctor_009d94d0 | Constructor for a UIControl. Calls larger base ctor at 009efc30, sets vtable to 0114ba34. Initializes 4 zero state fields at offsets 0x3a-0x3d. |
| 0x009D9550 | 175 | UIControl__ctor_009d9550 | Constructor for a UIControl. Calls base at 009efc30, sets vtable to 0114bb1c. Initializes state fields, SSO string (capacity 0xf), item count default 7, and 2 trailing zeros. |
| 0x009D9600 | 104 | UIControl__ctor_009d9600 | Constructor for a UIControl. Calls base at 009efc30, sets vtable to 0114b234. Initializes 2 zero state fields at offsets 0x3a-0x3b. |
| 0x009DA180 | 84 | UIControl__dtor_009da180 | Destructor for UIControl (vtable 0114b158). Sets vtable chain back to UIBase, then calls base destructor at 00a79e90. |
| 0x009DA1E0 | 84 | UIControl__dtor_009da1e0 | Destructor for UIControl (vtable 0114b3fc). Sets vtable chain back to UIBase, then calls base destructor at 00a79e90. |
| 0x009DA310 | 266 | UIControlBase__dtor_009da310 | Base destructor for UI controls with tree/any members. Sets vtable to 0114af94, destroys two std::any objects (at offsets 0x39 and 0x2f), clears an std::set, reverts to UIBase vtable, calls base dtor. |
| 0x009DA420 | 108 | UIControl__dtor_with_string_009da420 | Destructor for UIControl (vtable 0114b78c). Destroys embedded string, reverts to UIBase vtable, calls base dtor. |
| 0x009DA490 | 71 | UIControl__dtor_009da490 | Destructor for UIControl (vtable 0114b6a4). Sets vtable, then calls UIControlBase__dtor_009da310 for cleanup. |
| 0x009DA4E0 | 78 | UIControl__dtor_base_only_009da4e0 | Simple UIControl destructor that just reverts to UIBase vtable and calls base dtor at 00a79e90. |
| 0x009DA530 | 108 | UIControl__dtor_with_string_009da530 | Destructor for UIControl (vtable 0114b5c4). Destroys embedded string, reverts to UIBase vtable, calls base dtor. |
| 0x009DA600 | 71 | UIControl__dtor_009da600 | Destructor for UIControl (vtable 0114ba34). Sets vtable, then calls UIControlBase__dtor_009da310. |
| 0x009DA650 | 95 | UIControl__dtor_with_string_009da650 | Destructor for UIControl (vtable 0114bb1c). Destroys embedded string, then calls UIControlBase__dtor_009da310. |
| 0x009DA6B0 | 71 | UIControl__dtor_009da6b0 | Destructor for UIControl (vtable 0114b234). Sets vtable then calls UIControlBase__dtor_009da310. |
| 0x009DA7D0 | 112 | UIControl__scalar_deleting_dtor_009da7d0 | Scalar deleting destructor for UIControl (0x90 bytes, vtable 0114b158). Calls base dtor, optionally frees memory. |
| 0x009DA870 | 112 | UIControl__scalar_deleting_dtor_009da870 | Scalar deleting destructor for UIControl (0x8c bytes, vtable 0114b3fc). Calls base dtor, optionally frees memory. |
| 0x009DA9F0 | 38 | UIControlBase__scalar_deleting_dtor_009da9f0 | Scalar deleting destructor for UIControlBase (0xe8 bytes). Calls UIControlBase__dtor_009da310, optionally frees memory. |
| 0x009DAA20 | 132 | UIControl__scalar_deleting_dtor_009daa20 | Scalar deleting destructor for UIControl (0xa0 bytes, vtable 0114b78c). Destroys string, calls base dtor, optionally frees memory. |
| 0x009DAAB0 | 99 | UIControl__scalar_deleting_dtor_009daab0 | Scalar deleting destructor for UIControl (0x100 bytes, vtable 0114b6a4). Calls UIControlBase dtor, optionally frees memory. |
| 0x009DAB20 | 106 | UIControl__scalar_deleting_dtor_009dab20 | Scalar deleting destructor for UIControl (0x80 bytes). Sets UIBase vtable, calls base dtor, optionally frees memory. |
| 0x009DAB90 | 132 | UIControl__scalar_deleting_dtor_009dab90 | Scalar deleting destructor for UIControl (0xa4 bytes, vtable 0114b5c4). Destroys string, calls base dtor, optionally frees memory. |
| 0x009DACA0 | 99 | UIControl__scalar_deleting_dtor_009daca0 | Scalar deleting destructor for UIControl (0xf8 bytes, vtable 0114ba34). Calls UIControlBase dtor, optionally frees memory. |
| 0x009DAD10 | 119 | UIControl__scalar_deleting_dtor_009dad10 | Scalar deleting destructor for UIControl (0x118 bytes, vtable 0114bb1c). Destroys string, calls UIControlBase dtor, optionally frees memory. |
| 0x009DAD90 | 99 | UIControl__scalar_deleting_dtor_009dad90 | Scalar deleting destructor for UIControl (0xf0 bytes, vtable 0114b234). Calls UIControlBase dtor, optionally frees memory. |
| 0x009DB720 | 461 | UIControl__parse_action_string_009db720 | Parses an action string (from member at offset 0x8c). Splits by delimiter, extracts action name and two integer params (X,Y coords). Calls FUN_00b99030 with parsed action data. Falls back to error state if parsing fails. |
| 0x009DB8F0 | 461 | UIControl__parse_action_string_009db8f0 | Parses an action string (same pattern as 009db720). Splits string, extracts action name and two integer params. Calls FUN_00b99030 with parsed data. Identical structure, different instance. |
| 0x009DBB80 | 292 | UIControl__handle_click_open_window_009dbb80 | Click handler that parses action string to find comma-delimited window name. Looks up window by ID 0xcb (via FUN_00aa5f70/FUN_00a978d0), then calls virtual method at +0x94 to display it with params (0,6,499,0,0,0). Resets globals DAT_016fc5cc/DAT_016fc5d0. |
| 0x009DBCB0 | 364 | UIControl__handle_click_open_or_send_009dbcb0 | Click handler that parses action string. If FUN_00b9dbd0 returns false, falls back to sending packet 0x1091 via FUN_00b00f00/FUN_00aa9100. If true, looks up window ID 0xcb and calls virtual methods to display and configure it. |
| 0x009DC0B0 | 44 | UIControl__forward_value_to_parent_009dc0b0 | Forwards a value from a child control to its parent. If param_2 is non-null, reads value at offset 0xf0 from param_2 and calls virtual method at +0xd8 on the parent (at offset 0x10c) with stored param at 0x108. |
| 0x009DC0F0 | 69 | UIControl__set_two_text_labels_009dc0f0 | Sets text on two UI text labels from a parameter struct containing two SSO strings. Reads strings at offsets 0 and +6 dwords, calling UITextLabel__assign_text_and_recalc for each. |
| 0x009DC140 | 197 | UIControl__update_text_and_notify_parent_009dc140 | Updates a text label from the control's own string at offset 0xf0, then notifies the parent via virtual call at +0xd8. Handles tab control selection logic - if a tab control exists, selects the appropriate tab and forwards the selected tab's value. |
| 0x009DC210 | 88 | UIControl__update_text_from_param_009dc210 | Updates the control's text from param_2's string at offset 0x108 (with SSO check at 0x11c). Enables/disables two child controls at offsets 0x84 and 0x88 based on whether the string is non-empty. |
| 0x009DC270 | 80 | UIControl__update_text_from_child_009dc270 | Updates text from a child object's string (at param_2+0xe8+0x98). Copies to own string at offset 0x88 if different. Enables/disables child control at 0x84 based on string length at 0x98. |
| 0x009DC2C0 | 88 | UIControl__update_text_from_param_alt_009dc2c0 | Updates control text from param_2's string at offset 0xf8 (SSO check at 0x10c). Enables/disables two child controls at 0x84 and 0x88 based on string non-emptiness. Same pattern as 009dc210 with different offsets. |
| 0x009DC910 | 43 | UIControl__draw_with_icon_009dc910 | Draws a UI control with an icon. Calls UIButton__draw_background_map, then renders an icon at position (0xf4, 0xf8) with size 0x7c x 0x7c, type 0x10, alignment 2. |
| 0x009DE410 | 172 | UIControl__toggle_expand_and_resize_009de410 | Toggles an expand/collapse state on a UI control. Shows/hides child at 0x3b based on param_2 and child state. Resizes via virtual call +4 adding child height (offset 0x18) to base height (0x44). Uses RTDynamicCast to update parent scrollbar if applicable. |
| 0x009DEF40 | 2950 | CTextPanel__parse_and_populate_regex | Parses text content using regex to split lines at ^777777 color codes. For each input string from param_3 vector, builds a regex matcher, extracts matched groups, appends text lines to the text panel. Sets content type to 5 or 4 based on param_2. Uses STL regex infrastructure with locale-aware matching. Processes up to 7 input strings. |
| 0x009DFCB0 | 1573 | CTextPanel__set_content_with_images | Sets text panel content with optional image support. Clears existing content, copies text string, checks if images should be loaded (via FUN_00b95b00). If images enabled, loads two image resources into fields 0xf4/0xf8, formats and appends three text lines with localized strings. |
| 0x009E02E0 | 58 | CTextPanel__set_lines_from_vector_009e02e0 | Clears the text panel then appends all text lines from a vector (param_1[0] to param_1[1], step 0x18 per entry). |
| 0x009E0320 | 36 | CTextPanel__set_single_line_009e0320 | Clears the text panel then appends a single text line from param_1. |
| 0x009E0770 | 58 | CTextPanel__set_lines_from_vector_009e0770 | Clears text panel and appends all lines from a vector. Same as 009e02e0, different instance. |
| 0x009E07B0 | 58 | CTextPanel__set_lines_from_vector_009e07b0 | Clears text panel and appends all lines from a vector. Same as 009e02e0, different instance. |
| 0x009E07F0 | 44 | CTextPanel__try_select_tab | Attempts to select a tab in the text panel. If param_2 is non-zero, calls UITabControl__select_tab. Returns 1 if the selected tab differs from current tab at offset 0xcc, 0 otherwise. |
| 0x009E0820 | 44 | CTextPanel__try_select_tab_alt | Alternate tab selection for text panel. Same logic as try_select_tab but uses the alternate UITabControl__select_tab variant. |
| 0x009E0850 | 33 | CTextPanel__set_both_scrollbar_values | Sets values on both scrollbar widgets at offsets 0x84 and 0x88 via virtual call at vtable+0x38. |
| 0x009E0880 | 15 | CTextPanel__set_single_scrollbar_value | Sets a value on the scrollbar widget at offset 0x84 via virtual call at vtable+0x38. |
| 0x009E0890 | 33 | CTextPanel__set_both_scrollbar_values_009e0890 | Sets values on both scrollbar widgets at offsets 0x84 and 0x88 via virtual call at vtable+0x38. Duplicate of 009e0850 for a different CTextPanel instance. |
| 0x009E08C0 | 22 | CTextPanel__create_iterator_a | Creates an iterator object for text panel. Sets vtable pointer and copies the panel's field[1] into the iterator's second field. |
| 0x009E08E0 | 22 | CTextPanel__create_iterator_b | Creates an alternate iterator object for text panel. Sets a different vtable pointer and copies field[1] into the iterator. |
| 0x009E0900 | 22 | CTextPanel__create_iterator_c | Creates iterator variant C for text panel. Sets vtable and copies field[1]. |
| 0x009E0920 | 22 | CTextPanel__create_iterator_d | Creates iterator variant D for text panel. Sets vtable and copies field[1]. |
| 0x009E0940 | 68 | CTextPanel__scalar_deleting_dtor_iter_a | Scalar deleting destructor for text panel iterator type A. If param_2 flag is set, frees the 8-byte iterator object. |
| 0x009E0990 | 68 | CTextPanel__scalar_deleting_dtor_iter_b | Scalar deleting destructor for text panel iterator type B. If param_2 flag is set, frees the 8-byte iterator object. |
| 0x009E09E0 | 68 | CTextPanel__scalar_deleting_dtor_iter_c | Scalar deleting destructor for text panel iterator type C. If param_2 flag is set, frees the 8-byte iterator object. |
| 0x009E0A30 | 68 | CTextPanel__scalar_deleting_dtor_iter_d | Scalar deleting destructor for text panel iterator type D. If param_2 flag is set, frees the 8-byte iterator object. |
| 0x009E0A80 | 65 | CTextPanel__notify_tab_children_selected | Notifies all tab children of selection change. Iterates the linked list at field[1]+0xc4, for each child calls virtual method at vtable+0xdc with a boolean indicating whether it matches the selected panel from param_2. |
| 0x009E0AD0 | 65 | CTextPanel__notify_tab_children_selected_009e0ad0 | Notifies all tab children of selection change. Same as 009e0a80 for a different CTextPanel instance. Iterates linked list at field[1]+0xc4, calls vtable+0xdc on each child. |
| 0x009E0B20 | 20 | CTextPanel__forward_tab_select | Forwards tab selection to UITabControl__select_tab. Dereferences param_1 to get the tab value and passes it through. |
| 0x009E0B40 | 20 | CTextPanel__forward_tab_select_alt | Forwards tab selection to UITabControl__select_tab_009de560 (alternate variant). Same as forward_tab_select but uses alt function. |
| 0x009E0DB0 | 22 | CTextPanel__create_iterator_a_alt | Alternate entry point for creating CTextPanel iterator type A. Uses same vtable (PTR_CTextPanel__create_iterator_a_0114bd40) as create_iterator_a at 009e08c0. Sets vtable pointer and copies field[1] into iterator. |
| 0x009E0DD0 | 22 | CTextPanel__create_iterator_b_alt | Creates CTextPanel iterator type B (alternate entry point). Sets vtable to PTR_CTextPanel__create_iterator_b and copies field[1] from source. |
| 0x009E0DF0 | 22 | CTextPanel__create_iterator_c_alt | Creates CTextPanel iterator type C (alternate entry point). Sets vtable to PTR_CTextPanel__create_iterator_c and copies field[1] from source. |
| 0x009E0E10 | 22 | CTextPanel__create_iterator_d_alt | Creates CTextPanel iterator type D (alternate entry point). Sets vtable to PTR_CTextPanel__create_iterator_d and copies field[1] from source. |
| 0x009E2CE0 | 34 | UIControl__on_move_and_invalidate | Handles UI control move event. Calls move handler, then invokes virtual invalidate method at vtable+0xD4 with param 0. |
| 0x009E3460 | 36 | UIControl__find_child_by_id | Searches linked list of child controls at offset 0x50 for a child matching the given ID. Returns true if found, false if end of list reached. |
| 0x009E3490 | 58 | UIControl__has_child_in_parent | Checks if a given child ID exists in the parent control's child list. Returns false if param_2 is 0 or parent (offset 0x80) is null. Delegates to find_child_by_id on parent. |
| 0x009E3500 | 121 | UIControl__attach_child_control | Attaches a child control. Searches child list to verify it's not already added. If not found, unregisters current, resizes to child dimensions+2, adds child, sets new registration, and refreshes. |
| 0x009E4B50 | 12 | UIControl__invalidate_from_root | Gets the root parent of the UI tree via CEffect__get_root_parent, then calls CEffect__invalidate_recursive to force a full repaint of the entire UI hierarchy. |
| 0x009E96C0 | 202 | CUIControl__load_and_set_texture_009e96c0 | Loads a texture resource from a string path (param_1+0x2D area) and sets it as the control's display texture (offset 0x20). Releases previous texture, resizes the control to match the texture dimensions (from offsets 0x114, 0x118), and adjusts position relative to the parent. |
| 0x009E9790 | 64 | UIControl__set_text_and_refresh | Sets text on a UI control. If source string differs from current text at offset 0x2D (using SSO), assigns the new string. Then calls virtual invalidate (vtable+0xD4) and refresh (vtable+0x98). |
| 0x009E9840 | 321 | CTextPanel__add_child_widget_to_map_009e9840 | Adds a child widget to the text panel's widget map (offset 0xD8). Positions the widget with a vertical offset from the panel's current content height (offset 0xD4), adds it as a child via FUN_00a7a0a0, then inserts into the red-black tree map keyed by widget pointer, storing X,Y position. |
| 0x009E9990 | 1072 | CTextPanel__append_text_line_009e9990 | Appends a text line (STL string) to the text panel. Creates a CTextLayout to word-wrap the text within the available width, adds the result to the text vector (offset 0xC8), positions any embedded widgets in the widget map, updates content height (offset 0xD4), and reconfigures the scrollbar and margins on the child border panel (offset 0xC4). |
| 0x009E9DD0 | 291 | CTextPanel__clear_all_content_009e9dd0 | Clears all text content from the panel. Iterates the widget map (offset 0x36), detaching each child widget. Destroys all map nodes, clears the text line vector (offset 0x32/0x33), resets content height (offset 0x35), and reconfigures the scrollbar. |
| 0x009E9F00 | 684 | CTextPanel__create_children_009e9f00 | Creates the child components for the text panel. Allocates a 0x94-byte border panel (vtable PTR_FUN_0114c5a4) with white background and 3px margins as offset 0xC4, then creates a 0xF0-byte scroll container (UIInterfaceDialog vtable) as offset 0xC0 with a scroll callback. Adds both as children. |
| 0x009EA280 | 63 | CTextPanel__handle_scroll_event | Handles mouse wheel scroll events for the text panel. If the scroll container (offset 0xC0) has scrollable content and is not scrolled to the limit, scrolls locally via vtable+0x8C. Otherwise forwards the scroll event to the parent widget. |
| 0x009EA2C0 | 316 | CTextPanel__rebuild_text_layout_009ea2c0 | Rebuilds the text layout from scratch. Copies the current text vector (offset 0xC8) into a local, clears all content via clear_all_content, then re-appends each text line via append_text_line. Restores the scrollbar position, frees the temporary vector. |
| 0x009EA400 | 381 | CTextPanel__on_resize_009ea400 | Resize handler for the text panel. Resizes the scroll container and border panel children, saves current scrollbar position, clears all content, re-appends all text lines to reflow, then restores the scrollbar position. Frees temporary vector. |
| 0x009EA580 | 275 | CTextPanel__layout_child_widgets_009ea580 | Positions all child widgets in the text panel relative to the current scroll offset (param_2). Iterates the widget map (offset 0xD8), computes each widget's position with alignment adjustment (center=6, bottom=8), calls virtual move/visibility methods. Hides widgets that are scrolled out of view. |
| 0x009EA6A0 | 76 | CTextPanel__on_event_dispatch_009ea6a0 | Event dispatcher for the text panel. When event type is 0x62, dispatches sub-commands: 0x1B5=open URL, 0x1B6=scroll control message, 0x1D0=click target processing, 0x205=show item info, 0x21B=navigate to NPC. All events also forwarded to default handler FUN_00a83660. |
| 0x009EA7A0 | 25 | CTextPanel__set_alignment_mode_009ea7a0 | Sets text alignment mode (offset 0x80) and vertical alignment (offset 0x84) for the text panel. |
| 0x009EA7C0 | 24 | CTextPanel__set_background_color_009ea7c0 | Sets background color (offset 0x20) and invalidates for redraw. |
| 0x009EA7E0 | 36 | CTextPanel__set_border_color_009ea7e0 | Sets border color on the text panel (offset 0xAC) and also sets the background color (offset 0x20) on the child border panel (offset 0xC4), then invalidates. |
| 0x009EA810 | 16 | CTextPanel__set_bold_flag_009ea810 | Sets the bold text flag (offset 0x90) on the text panel. |
| 0x009EA820 | 16 | CTextPanel__set_font_size_009ea820 | Sets the font size (offset 0x94) for text rendering in the panel. |
| 0x009EA830 | 16 | UITextLabel__set_font_size | Sets the font size value at offset 0x8C for text rendering |
| 0x009EA840 | 28 | CTextPanel__set_font_by_name_009ea840 | Sets the font (offset 0x88) by looking up the font index from its name via CTextVertex__lookup_font_index_by_name. |
| 0x009EA860 | 16 | CTextPanel__set_line_spacing_009ea860 | Sets the line spacing (offset 0xA8) for the text panel. |
| 0x009EA870 | 25 | CTextPanel__set_shadow_params_009ea870 | Sets text shadow parameters: enabled flag (offset 0xA0) and shadow color (offset 0xA4). |
| 0x009EA890 | 51 | CTextPanel__set_border_padding_009ea890 | Sets the 4 border padding values (offsets 0x21-0x24) on the border panel, then invalidates for redraw. |
| 0x009EA8D0 | 43 | CTextPanel__set_content_margins_009ea8d0 | Sets the 4 content margin values (left=0xB0, top=0xB4, bottom=0xB8, right=0xBC) for the text panel content area. |
| 0x009EA900 | 15 | CTextPanel__set_button_labels_wrapper | Wrapper that delegates to UIScrollbar__set_button_labels to configure scrollbar button labels for this text panel. |
| 0x009EA910 | 30 | CTextPanel__set_text_interactable_flag_009ea910 | Sets the interactable/clickable text flag (offset 0x98) on the scroll container (offset 0x30), then invalidates for redraw. |
| 0x009EA930 | 15 | CTextPanel__resize_wrapper_009ea930 | Wrapper that delegates to CEffect__set_size_and_reload to resize the text panel. |
| 0x009EA940 | 15 | CTextPanel__setup_horizontal_scrollbar_009ea940 | Wrapper that calls UIScrollbar__setup_horizontal_thumb to configure horizontal scrollbar thumb. |
| 0x009EA950 | 15 | CTextPanel__setup_horizontal_scrollbar_single_009ea950 | Wrapper that calls UIScrollbar__setup_horizontal_thumb_single to configure a single-piece horizontal scrollbar. |
| 0x009EA960 | 15 | CTextPanel__set_scrollbar_background_009ea960 | Wrapper that calls UIScrollbar__set_background_texture to set the scrollbar background texture. |
| 0x009EA970 | 25 | CTextPanel__set_link_style_009ea970 | Sets the link style parameters: underline flag (offset 0x98) and link color (offset 0x9C). |
| 0x009EA9A0 | 22 | CTextPanel__init_scroll_callback_009ea9a0 | Initializes a scroll callback struct with vtable PTR_FUN_0114c680 and stores the text panel pointer from offset 4. |
| 0x009EA9C0 | 68 | CTextPanel__conditional_free_callback_009ea9c0 | Conditionally frees an 8-byte callback object if param_2 is non-zero. Scalar deleting destructor for the scroll callback. |
| 0x009EAA10 | 290 | CTextPanel__on_scroll_callback_009eaa10 | Scroll callback invoked when the scrollbar position changes. Retrieves the parent text panel from offset 4, then positions all child widgets relative to the new scroll offset using the same layout logic as layout_child_widgets (alignment, visibility clipping). |
| 0x009EAB50 | 22 | CTextPanel__init_scroll_callback_b_009eab50 | Copy constructor for scroll callback. Sets vtable to PTR_CTextPanel__init_scroll_callback and copies the parent pointer from offset 4. |
| 0x009EB200 | 230 | CUIWindowPositionMgr__ctor_009eb200 | Constructor for CUIWindowPositionMgr (vtable PTR_FUN_0114c6f0). Creates 3 internal red-black tree maps: a 0x40-byte node map (for window config), and two 0x1C-byte node maps (for position and size caching). Initializes a CRITICAL_SECTION for thread safety. |
| 0x009EB560 | 226 | CUIWindowPositionMgr__dtor_009eb560 | Destructor for CUIWindowPositionMgr. Sets vtable, saves position data to UIInfo.lua via FUN_009ebf40 (writes temp file then renames), deletes the CRITICAL_SECTION, and destroys all 3 internal maps (two 0x1C-byte and one 0x40-byte node maps). |
| 0x009EB920 | 1567 | CUIWindowPositionMgr__load_from_lua_file_009eb920 | Loads UI window position data from a Lua save file (savedata/UIInfo.lua). Opens file, base64-decodes content, executes as Lua script, then iterates tree of window IDs calling GetWindowPos and GetWindowSize to populate position/size maps. |
| 0x009ECF60 | 162 | UIControl__show_tooltip | Shows tooltip for a UI control. If has secondary tooltip (offset 0x188), positions at (0,-20) and draws. Otherwise positions at (-4,-6) and draws primary tooltip text. |
| 0x009ED680 | 74 | UIControl__render_border_frame | Renders border frame around a UI control. If border thickness (offset 0x88) > 0, draws inner rectangle with border inset. Otherwise draws with default color. |
| 0x009ED750 | 57 | UIControl__on_mouse_down_with_callback | Mouse down handler with callback. If button is 0 (left click) and callback is registered at offset 0xC4, invokes callback. Then delegates to base mouse handler. |
| 0x009EE1E0 | 31 | UIControl__on_mouse_enter | Mouse enter handler. Sets this control as hover window in CUIWindowMgr and stores cursor type at offset 0x90. |
| 0x009EE200 | 44 | UIControl__on_mouse_leave | Mouse leave handler. If this is the focused UI element, clears hover in CUIWindowMgr. Stores cursor type at offset 0x90. |
| 0x009EE6A0 | 22 | UIControl__create_callback_a_009ee6a0 | Creates a callback object with vtable PTR_FUN_0114cb14 and stores the source object pointer from field +4. |
| 0x009EE6C0 | 22 | UIControl__create_callback_b_009ee6c0 | Creates a callback object with vtable PTR_FUN_0114cb30 and stores the source object pointer from field +4. |
| 0x009EE6E0 | 22 | UIControl__create_callback_c_009ee6e0 | Creates a callback object with vtable PTR_FUN_0114cb4c and stores the source object pointer from field +4. |
| 0x009EE700 | 68 | UIControl__conditional_delete_009ee700 | Conditional destructor helper. If param_2 is nonzero, frees the object (8 bytes) via operator delete. SEH protected. |
| 0x009EE750 | 68 | UIControl__conditional_delete_b_009ee750 | Conditional destructor helper. If param_2 is nonzero, frees the object (8 bytes) via operator delete. SEH protected. Variant B. |
| 0x009EE7A0 | 68 | UIControl__conditional_delete_c_009ee7a0 | Conditional destructor helper. If param_2 is nonzero, frees the object (8 bytes) via operator delete. SEH protected. Variant C. |
| 0x009EE810 | 23 | UIControl__forward_set_color_009ee810 | Forwards set_color call to the child control at field+4 via vtable offset 0xdc. |
| 0x009EE860 | 22 | UIControl__create_callback_a2_009ee860 | Creates a callback object with vtable PTR_FUN_0114cb14 and stores the source object pointer. Duplicate of 009ee6a0 pattern. |
| 0x009EE880 | 22 | UIControl__create_callback_b2_009ee880 | Creates a callback object with vtable PTR_FUN_0114cb30 and stores the source object pointer. Duplicate of 009ee6c0 pattern. |
| 0x009EE8A0 | 22 | UIControl__create_callback_c2 | Creates a callback object with vtable PTR_FUN_0114cb4c (same as callback_c pattern) and stores the source object pointer from field +4. Duplicate of 009ee6e0 for a different caller context. |
| 0x009EE8F0 | 41 | UIControl__set_state_009ee8f0 | Sets control state field 0x20. If state changes and field 0x21 (locked flag) is false, triggers layout refresh via vtable 0x98. |
| 0x009EE930 | 63 | UIControl__set_state_normal_009ee930 | Sets control state to Normal (1). If state changed and not locked, triggers layout refresh. Then if not locked, calls focus handler (FUN_00aa9b30). |
| 0x009EE970 | 91 | UIControl__set_state_pressed_009ee970 | Sets control state to Pressed (2). If changed and not locked, triggers layout. If this is the active control (checked via get_field_0x19c), and not locked and has callback at field 0x31*4, invokes it. Also calls FUN_00aa66c0. |
| 0x009EEA00 | 107 | UIControl__draw_tooltip_text_009eea00 | Draws tooltip text for a control. If callback at field 0xec exists, invokes it. If field 0x98 (has tooltip text) is set, calculates position offset and renders text from field 0x88 string via FUN_00ad6510. |
| 0x009EEAD0 | 40 | UIControl__forward_mouse_move_009eead0 | Forwards a mouse move event to child control at field 0x10. Adjusts coordinates by adding control's position offsets (fields 0x1c, 0x20) before calling child's vtable method at offset 0x28. |
| 0x009EF520 | 123 | UIControl__load_texture_resource_009ef520 | Loads a texture resource for a UI control. Returns 0 if field 0x10 is empty. If param_2 is true, loads via FUN_00b01200+FUN_00aee770 (sprite path). Otherwise constructs string from param_1 and validates via FUN_00aeecc0. |
| 0x009EF59B | 54 | UIControl__load_texture_fallback_009ef59b | Fallback path for texture loading. Constructs string from EDI register, validates via FUN_00aeecc0. Uses non-standard calling convention (mid-function entry point). |
| 0x009EF5E0 | 12 | UIControl__invalidate_from_root_009ef5e0 | Invalidates the UI control tree starting from the root parent. Calls get_root_parent() to find the topmost ancestor, then invalidate_recursive() to mark the entire tree for redraw. |
| 0x009EF5F0 | 83 | UIControl__hit_test_009ef5f0 | Hit test for UI control. Builds a RECT from control position (fields 0x1c, 0x20) and size (fields 0x14, 0x18), then uses WinAPI PtInRect to check if point (param_2, param_3) is inside. |
| 0x009EF650 | 37 | UIControl__forward_mouse_down_009ef650 | Forwards mouse down event to child control at field 0x10. Adjusts coordinates by control position (0x1c, 0x20) before calling vtable offset 0x68. |
| 0x009EF680 | 37 | UIControl__forward_mouse_up_009ef680 | Forwards mouse up event to child control at field 0x10. Adjusts coordinates by control position (0x1c, 0x20) before calling vtable offset 0x64 (100). |
| 0x009EF6B0 | 37 | UIControl__forward_mouse_wheel_009ef6b0 | Forwards mouse wheel event to child control at field 0x10. Adjusts coordinates by control position before calling vtable offset 0x7c. |
| 0x009EF6E0 | 37 | UIControl__forward_mouse_dblclick_009ef6e0 | Forwards mouse double-click event to child at field 0x10 via vtable offset 0x70. Adjusts coords by position. |
| 0x009EF710 | 37 | UIControl__forward_right_click_009ef710 | Forwards right-click event to child at field 0x10 via vtable offset 0x6c. Adjusts coords by position. |
| 0x009EF740 | 37 | UIControl__forward_right_dblclick_009ef740 | Forwards right double-click event to child at field 0x10 via vtable offset 0x78. Adjusts coords by position. |
| 0x009EF770 | 40 | UIControl__forward_drag_009ef770 | Forwards drag event to child at field 0x10 via vtable offset 0x88. Adjusts coords by position. |
| 0x009EF7A0 | 40 | UIControl__forward_drag_end_009ef7a0 | Forwards drag end event to child at field 0x10 via vtable offset 0x80. Adjusts coords by position. |
| 0x009EF7D0 | 40 | UIControl__forward_drag_start_009ef7d0 | Forwards drag start event to child at field 0x10 via vtable offset 0x84. Adjusts coords by position. |
| 0x009EF800 | 23 | UIControl__forward_key_event_009ef800 | Forwards key event to child at field 0x10 via vtable offset 0x8c. No coordinate adjustment. |
| 0x009EF820 | 57 | UIControl__propagate_color_to_children_009ef820 | Propagates color value to this control (vtable 0xd4) and all child controls in linked list at field 0x14. Iterates children calling their vtable offset 0xd0. |
| 0x009F0840 | 81 | UITextLabel__draw_text_009f0840 | Draws text label content. Calculates offset position (-8 vertical), then renders the text string from field 0x84 via FUN_00ad6510 with default color (0xffffffff) and alignment. |
| 0x009F08A0 | 145 | UITextLabel__load_icon_texture_009f08a0 | Loads icon texture for text label from field 0xa0 string resource. Stores result in field 0x80, releases old texture. Uses load_texture_resource helper. |
| 0x009F0940 | 64 | UITextLabel__set_text_009f0940 | Sets text label string. If param_2 differs from field 0x28 (the internal text string), copies it via STL_lib_func_004fa8f0. Then triggers visual update (vtable 0xd4 with 0) and layout refresh (vtable 0x98). |
| 0x009F0A70 | 101 | UITextLabel__on_double_click_or_tooltip_009f0a70 | Handles double-click on text label. If field 0xc0 (has tooltip) is 0, forwards to base class double-click. Otherwise draws tooltip text from field 0xb0 string at offset (-6,-4) via FUN_00ad6510. |
| 0x009F0AE0 | 608 | UITextLabel__recalculate_layout_009f0ae0 | Recalculates text label layout. Clears display string, applies text truncation if truncate flag (field 0x32/0xc8) is set. Measures text dimensions, applies horizontal alignment (field 0x33: 0=left, 2=right, 6=center) and vertical alignment (field 0x34: 0=top, 8=bottom, 6=center), stores offsets in fields 0x3d/0x3e, then triggers layout refresh. |
| 0x009F0D40 | 30 | UITextLabel__set_text_offset_009f0d40 | Sets text rendering offsets (fields 0xcc, 0xd0) and recalculates layout. |
| 0x009F0D60 | 21 | UITextLabel__set_truncate_flag_009f0d60 | Sets text truncation flag (field 0xc8 = 200) and recalculates layout. |
| 0x009F0D80 | 21 | UITextLabel__set_bold_flag_009f0d80 | Sets bold text flag (field 0xdc) and recalculates layout. |
| 0x009F0DA0 | 24 | UITextLabel__set_color_009f0da0 | Sets text color (field 0x38) and triggers layout refresh via vtable 0x98. |
| 0x009F0DC0 | 21 | UITextLabel__set_line_spacing_009f0dc0 | Sets line spacing (field 0xd8) and recalculates layout. |
| 0x009F0DE0 | 35 | UITextLabel__set_font_by_name_009f0de0 | Sets font by looking up font index from name via CTextVertex__lookup_font_index_by_name. Stores result in field 0xd4 and recalculates layout. |
| 0x009F0E10 | 25 | UITextLabel__set_shadow_009f0e10 | Sets text shadow flag (field 0xec) and shadow color (field 0xf0). |
| 0x009F0E30 | 25 | UITextLabel__set_outline_009f0e30 | Sets text outline flag (field 0xe4) and outline color (field 0xe8). |
| 0x009F0E50 | 35 | UITextLabel__assign_text_and_recalc_009f0e50 | Assigns text via STL string assign and recalculates layout. |
| 0x009F0E80 | 24 | UITextLabel__assign_text_no_recalc_009f0e80 | Assigns text via STL string assign without triggering layout recalculation. |
| 0x009F1210 | 260 | UITextLabel__auto_resize_to_text_009f1210 | Auto-resizes text label to fit text content. Two modes based on field 0x4f: mode 1 (vertical) measures text width, resizes height, applies vertical alignment; mode 0 (horizontal) measures text height, resizes width+2, applies horizontal alignment. Uses FUN_00a80230/FUN_00a80580 for text measurement. |
| 0x009F1690 | 96 | UIListItem__update_skin_colors_009f1690 | Updates list item skin colors. Resolves 3 colors from sprite names at fields 0x1d4, 0x1dc, 0x1e4 via CSkinManager__get_color_from_sprite, stores results in fields 0x1c8/0x1cc/0x1d0 (normal/selected/hover colors). Calls FUN_009e8150 to propagate. |
| 0x009F16F0 | 72 | UIListItem__set_selected_state_009f16f0 | Sets list item selected state. Calls UIControl__set_state, notifies scrollbar at field 0x70 (vtable 0x38), if selected (param_2) and callback at field 0x31 exists invokes it, triggers layout. |
| 0x009F1740 | 94 | UIListItem__set_grid_params_009f1740 | Sets list item grid/layout parameters. Stores 6 values to fields 0x75-0x7a (column/row info, spacing), sets flag 0x71=1, triggers visual update (vtable 0xd4) and layout refresh (vtable 0x98). |
| 0x009F17A0 | 436 | UIListItem__set_behavior_009f17a0 | Sets list item behavior. Stores param_2 in field 0xe4, allocates 0x20 byte buffer with "GetBeHaviorOfWindow" string, calls FUN_00afc9a0 with a global to register behavior. |
| 0x009F19E0 | 185 | UIProgressBar__draw_bar_009f19e0 | Draws progress bar fill. Two modes: simple (field 0x80==0) draws single texture; 3-part mode draws left cap (field 0x84), tiling middle (field 0x88) repeating based on width, and right cap (field 0x8c). Each piece uses sprite width from field+0x114. |
| 0x009F1AA0 | 335 | UIProgressBar__load_textures_009f1aa0 | Loads progress bar textures. Always loads middle texture from field 0xa8 into field 0x88. If 3-part mode (field 0x80), also loads left cap from field 0x90 into field 0x84, and right cap from field 0xc0 into field 0x8c. Releases old textures. |
| 0x009F1BF0 | 78 | UIProgressBar__on_resize_009f1bf0 | Handles progress bar resize. Computes size delta, calls base resize (FUN_00a82eb0), then repositions two child controls at fields 0xe0 and 0xe4 by adjusting their x position by the delta. |
| 0x009F1C40 | 133 | UIProgressBar__set_3part_textures_009f1c40 | Enables 3-part mode (field 0x20=1) and sets texture names: left cap (field 0x24), middle tile (field 0x2a), right cap (field 0x30). Triggers visual update and layout refresh. |
| 0x009F1CD0 | 71 | UIProgressBar__set_single_texture_009f1cd0 | Sets single texture mode (field 0x20=0) with texture name in field 0x2a. Triggers visual update and layout refresh. |
| 0x009F1D20 | 28 | UIProgressBar__set_text_if_enabled_009f1d20 | Sets progress bar text if field 0xdc (show text flag) is nonzero. Delegates to UITextLabel__assign_text_and_recalc. |
| 0x009F7820 | 33 | UIControl__destroy_callback_a_009f7820 | Destroys callback object at field[9]. Calls destructor via vtable offset 0x10, then nulls the field. Checks self-reference to avoid double-free. |
| 0x009F7850 | 33 | UIControl__destroy_callback_b_009f7850 | Destroys callback object at field[9]. Same pattern as 009f7820. |
| 0x009F7880 | 33 | UIControl__destroy_callback_c_009f7880 | Destroys callback object at field[9]. Same pattern as 009f7820. |
| 0x009F78B0 | 33 | UIControl__destroy_callback_d_009f78b0 | Destroys callback object at field[9]. Same pattern as 009f7820. |
| 0x009F78E0 | 33 | UIControl__destroy_callback_e_009f78e0 | Destroys callback object at field[9]. Same pattern as 009f7820. |
| 0x009F7A30 | 92 | UIControl__destroy_callback_seh_a | Destroys callback object at field[9] with SEH protection. Calls virtual destroy method via vtable offset 0x10 if non-null, then nulls the pointer. Variant A. |
| 0x009F7A90 | 92 | UIControl__destroy_callback_seh_b | Destroys callback object at field[9] with SEH protection. Same pattern as variant A. Variant B. |
| 0x009F7AF0 | 92 | UIControl__destroy_callback_seh_c | Destroys callback object at field[9] with SEH protection. Same pattern as variant A. Variant C. |
| 0x009F7B50 | 92 | UIControl__destroy_callback_seh_d | Destroys callback object at field[9] with SEH protection. Same pattern as variant A. Variant D. |
| 0x009F7BB0 | 92 | UIControl__destroy_callback_seh_e | Destroys callback object at field[9] with SEH protection. Same pattern as variant A. Variant E. |
| 0x009F85B0 | 71 | UIControlWindow__dtor | UIControlWindow destructor. Sets vtable, delegates to UIControlBase::dtor. |
| 0x009F9190 | 99 | UIControlWindow__scalar_deleting_dtor | UIControlWindow scalar deleting destructor. Sets vtable, calls UIControlBase::dtor, optionally frees object memory. |
| 0x00A084C0 | 444 | UIListCtrl__ctor | UIListCtrl constructor. Calls CEffect::ctor, sets UIBase then UIListCtrl vtable. Initializes 4 smart pointer fields (0x20-0x23), tree map with 0x2C-byte nodes (sentinel at 0x24), string at 0x26, vectors, linked list of columns (0x35), selection index (-1). Creates row tracking structures. |
| 0x00A08680 | 348 | UIListCtrl__dtor | UIListCtrl destructor. Releases 2 callbacks (offsets 0x4D, 0x43), frees helper data, frees vector buffer, destroys string at 0x26, recursively destroys tree map with string nodes at 0x24, releases 4 smart pointers (0x20-0x23), resets vtable to UIBase, calls CEffect::dtor. |
| 0x00A08840 | 92 | UIListCtrlA__release_inner_object_00a08840 | Releases the inner object at offset 0x24 (field[9]) by calling its Release virtual method (vtable+0x10), then nulls the pointer. |
| 0x00A088A0 | 92 | UIListCtrlB__release_inner_object_00a088a0 | Releases the inner object at offset 0x24 (field[9]) by calling its Release virtual method (vtable+0x10), then nulls the pointer. Variant B. |
| 0x00A08900 | 129 | UIListCtrl__free_vector_buffer_00a08900 | Frees the underlying heap buffer of an STL vector (fields 0/1/2). Computes allocation size from capacity-begin, handles debug heap bookkeeping, then zeros begin/end/capacity pointers. |
| 0x00A08990 | 175 | UIListCtrl__dtor_00a08990 | Destructor for a UIListCtrl-derived class. Sets vtable to PTR_FUN_0114efe8, releases delegate at field 0x3d, destroys STL string member, frees additional buffer at field 0x20, then chains to base class destructor FUN_00a79e90. |
| 0x00A08A40 | 164 | UIListCtrl__clone_from_source_00a08a40 | Creates a clone from a source object. If source has a factory at offset 0x24, calls its virtual clone method, then forwards result to FUN_00a0e630 for initialization. |
| 0x00A08AF0 | 38 | UIListCtrl__scalar_deleting_dtor_00a08af0 | Scalar deleting destructor for UIListCtrl (size 0x138). Calls the destructor, then conditionally frees the 0x138-byte allocation. |
| 0x00A08B20 | 199 | UIListCtrl__vdtor_00a08b20 | Virtual deleting destructor for UIListCtrl-derived class (size 0xF8). Destroys delegate, STL string, buffer, chains to base destructor, then conditionally frees 0xF8-byte object. |
| 0x00A08BF0 | 353 | UIListCtrl__create_and_init_item_00a08bf0 | Allocates a new 0xF8-byte list item via FUN_00a0ebf0, sets its position from param_1 offsets 0xB4/0xB8, calls virtual setup (vtable+0x38) with visible=false, sets foreground colors from 0x80-0x8C, registers two delegate callbacks (PTR_FUN_0114f344 and PTR_FUN_0114f360), then finalizes via FUN_00a7a080. |
| 0x00A08D60 | 115 | UIListCtrl__alloc_and_init_item_00a08d60 | Allocates a 0xEC-byte block and constructs a list item via FUN_00a0eaf0. Returns null if allocation fails. |
| 0x00A08DE0 | 85 | UIListCtrl__clear_all_items_00a08de0 | Iterates vector of list item pointers (offsets 0xC8-0xCC) calling FUN_00a82e50 on each to destroy them, then resets end pointer to begin and sets selected index (0xDC) to -1. |
| 0x00A08E40 | 36 | UIListCtrl__set_item_dimensions_00a08e40 | Stores item width (param_4) and height (param_5) at offsets 0xB4 and 0xB8, then calls FUN_00a7b470 with position params 2 and 3. |
| 0x00A08E70 | 92 | UIListCtrl__init_and_show_00a08e70 | Initializes the list control display. Sets flags at offsets 0xB4 and 0xD4, calls virtual methods for size (300x0x134), position (0,0), layout, and refresh. Sets up scroll bar via FUN_009e6d60 with 3 columns, marks field 0xD0 = 1. |
| 0x00A08ED0 | 69 | UIListCtrl__get_selected_item_00a08ed0 | Returns the currently selected item from the linked list at offset 0xD4. Uses selected index (0xDC) to traverse the list, returning a pointer to the item data (node+8). Sets success flag in output param. |
| 0x00A08F20 | 525 | UIListCtrl__create_scrollbar_item_00a08f20 | Allocates and initializes a new 0xF0-byte scrollbar item for the list. Sets up vtable chain (PTR_FUN_0114875c -> PTR_FUN_01148c84), initializes multiple fields, registers a callback delegate (PTR_FUN_0114f328), links to list's item vector at offset 0xC8, then finalizes layout. |
| 0x00A09130 | 14475 | UIListCtrl__static_layout_init | Static layout initialization for UIListCtrl widget. 14K bytes. Sets up list items, tab controls, labels, scrollbars, buttons, and delegates with visual configuration. No callers (registered as callback/vtable). |
| 0x00A0C9C0 | 1181 | UIListCtrl__init_label_controls_00a0c9c0 | Initializes two label controls (at offsets 0xE8 and 0xEC) for the list. Each is a 0xFC-byte UIControl allocated and constructed via FUN_009be1a0. Sets position, alignment, font, encrypted text (via xor_decrypt_buffer), foreground/background colors to white (0xFFFFFF). First label at position (0x2C,0xC), second at (0xD8,0xC). |
| 0x00A0CE70 | 63 | UIListCtrl__scroll_next_page_00a0ce70 | Scrolls to the next page in the list. Checks if list is not fully scrolled (field 0x2A == 0 and items remain), then calls virtual scroll method (vtable+0x8C) on the main control (offset 0xB0) or the parent control (offset 0x10). |
| 0x00A0CEB0 | 65 | UIListCtrl__notify_items_selected_00a0ceb0 | Iterates all items in the vector (0xC8-0xCC) and calls each item's virtual method at vtable+0xDC with a boolean indicating whether that item matches param_2. |
| 0x00A0CF00 | 603 | UIListCtrl__rebuild_items_00a0cf00 | Rebuilds the list items when dimensions change. Clears existing items, calculates required item count from total height / item height, allocates items via vector resize or memset, creates each 0xF8-byte item with delegates (PTR_FUN_0114f344, PTR_FUN_0114f360), then refreshes scrollbar display. |
| 0x00A0D160 | 522 | UIListCtrl__load_textures_00a0d160 | Loads 4 textures from a map (using subscript indices 0,1,2 and a string at offset 0x98) via FUN_009ef520. Stores them at offsets 0x80, 0x84, 0x88, 0x8C. Releases old textures via FUN_00af0be0 when replacing. Then sets colors on all child items via FUN_009f02e0. |
| 0x00A0D370 | 115 | UIListCtrl__set_data_and_refresh_00a0d370 | Sets data content and refreshes the list display. Calls FUN_00a82eb0 with given params, rebuilds items, updates scrollbar position based on current index * item height + offset, refreshes total scroll range, updates scrollbar thumb position, and marks dirty flag at 0xE1. |
| 0x00A0D3F0 | 498 | UIListCtrl__layout_visible_items_00a0d3f0 | Lays out visible list items based on scroll position. Calculates which items are visible from scroll offset / item height, rearranges item order if scrolled, applies data from linked list to each visible item via delegates, sets position and visibility, marks non-visible items as hidden with index -1. |
| 0x00A0D5F0 | 218 | UIListCtrl__on_item_selected_00a0d5f0 | Handles item selection in the list. If not disabled (flag at 0xC4), deselects all items except the clicked one by calling vtable+0xD8 with false/true. Uses RTDynamicCast to verify item type, stores selected index at 0xDC, then notifies selection callback at 0x10C with the selected data from the linked list. |
| 0x00A0D6D0 | 216 | UIListCtrl__set_textures_and_refresh_00a0d6d0 | Sets 4 texture strings via map subscript (indices 0,1,2 + this+0x98) from the given string parameters. If any differ from current, updates the stored string. Then calls virtual methods at vtable+0xD4 (with 0) and vtable+0x98 to refresh display. |
| 0x00A0D7B0 | 22 | UIListCtrl__make_delegate_f1bc_00a0d7b0 | Delegate initializer: sets vtable to PTR_FUN_0114f1bc and stores this pointer from offset 0x4. |
| 0x00A0D7D0 | 22 | UIListCtrl__make_delegate_f1d8_00a0d7d0 | Delegate initializer: sets vtable to PTR_FUN_0114f1d8 and stores this pointer from offset 0x4. |
| 0x00A0D7F0 | 22 | UIListCtrl__make_delegate_f1f4_00a0d7f0 | Delegate initializer: sets vtable to PTR_FUN_0114f1f4 and stores this pointer from offset 0x4. |
| 0x00A0D810 | 22 | UIListCtrl__make_delegate_f344_00a0d810 | Delegate initializer: sets vtable to PTR_FUN_0114f344 and stores this pointer from offset 0x4. |
| 0x00A0D830 | 22 | UIListCtrl__make_delegate_f328_00a0d830 | Delegate initializer: sets vtable to PTR_FUN_0114f328 and stores this pointer from offset 0x4. |
| 0x00A0D850 | 22 | UIListCtrl__make_delegate_f210_00a0d850 | Delegate initializer: sets vtable to PTR_FUN_0114f210 and stores this pointer from offset 0x4. |
| 0x00A0D870 | 22 | UIListCtrl__make_delegate_f22c_00a0d870 | Delegate initializer: sets vtable to PTR_FUN_0114f22c and stores this pointer from offset 0x4. |
| 0x00A0D890 | 22 | UIListCtrl__make_delegate_f248_00a0d890 | Delegate initializer: sets vtable to PTR_FUN_0114f248 and stores this pointer from offset 0x4. |
| 0x00A0D8B0 | 22 | UIListCtrl__make_delegate_f360_00a0d8b0 | Delegate initializer: sets vtable to PTR_FUN_0114f360 and stores this pointer from offset 0x4. |
| 0x00A0D8D0 | 22 | UIListCtrl__make_delegate_f264_00a0d8d0 | Delegate initializer: sets vtable to PTR_FUN_0114f264 and stores this pointer from offset 0x4. |
| 0x00A0D8F0 | 22 | UIListCtrl__make_delegate_f280_00a0d8f0 | Delegate initializer: sets vtable to PTR_FUN_0114f280 and stores this pointer from offset 0x4. |
| 0x00A0D910 | 22 | UIListCtrl__make_delegate_f29c_00a0d910 | Delegate initializer: sets vtable to PTR_FUN_0114f29c and stores this pointer from offset 0x4. |
| 0x00A0D930 | 22 | UIListCtrl__make_delegate_f2b8_00a0d930 | Delegate initializer: sets vtable to PTR_FUN_0114f2b8 and stores this pointer from offset 0x4. |
| 0x00A0D950 | 22 | UIListCtrl__make_delegate_f2d4_00a0d950 | Delegate initializer: sets vtable to PTR_FUN_0114f2d4 and stores this pointer from offset 0x4. |
| 0x00A0D970 | 22 | UIListCtrl__make_delegate_f2f0_00a0d970 | Delegate initializer: sets vtable to PTR_FUN_0114f2f0 and stores this pointer from offset 0x4. |
| 0x00A0D990 | 22 | UIListCtrl__make_delegate_f30c_00a0d990 | Delegate initializer: sets vtable to PTR_FUN_0114f30c and stores this pointer from offset 0x4. |
| 0x00A0D9B0 | 22 | UIListCtrl__make_delegate_f1a0_00a0d9b0 | Delegate initializer: sets vtable to PTR_FUN_0114f1a0 and stores this pointer from offset 0x4. |
| 0x00A0DF30 | 23 | UIListCtrl__delegate_null_stub_00a0df30 | Delegate callback thunk: dereferences first param and calls null_stub_00a0ef20 (a no-op) with it and param_2. |
| 0x00A0DF50 | 23 | UIListCtrl__delegate_forward_00a0df50 | Delegate callback thunk: dereferences first param and calls FUN_00a0ef30 with it and param_2. |
| 0x00A0DF70 | 65 | UIListCtrl__delegate_notify_items_00a0df70 | Delegate callback: iterates all items in the parent list (via this+4 -> items vector at 0xC8-0xCC) and calls each item's vtable+0xDC with boolean (param_2 == item). Used for selection notification. |
| 0x00A0DFC0 | 20 | UIListCtrl__delegate_layout_00a0dfc0 | Delegate callback thunk: dereferences first param and forwards to UIListCtrl__layout_visible_items_00a0d3f0. |
| 0x00A0DFE0 | 20 | UIListCtrl__delegate_forward2_00a0dfe0 | Delegate callback thunk: dereferences first param and forwards to FUN_00a0f570. |
| 0x00A0E020 | 216 | UIListCtrl__delegate_on_item_selected_00a0e020 | Delegate callback for item selection. Dereferences this+4 to get parent list, then performs full selection logic: deselects all other items, selects clicked item, uses RTDynamicCast to verify type, stores selected index, notifies selection callback at 0x10C. |
| 0x00A0E160 | 25 | UIListCtrl__delegate_forward_virtual_00a0e160 | Delegate callback: calls vtable+0x44 on the parent control (this+4) with dereferenced params. Used for forwarding coordinate/position events. |
| 0x00A0E2B0 | 22 | UIListCtrl__make_delegate_f1bc_copy_00a0e2b0 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f1bc and stores this pointer from offset 0x4. |
| 0x00A0E2D0 | 22 | UIListCtrl__make_delegate_f1d8_copy_00a0e2d0 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f1d8 and stores this pointer from offset 0x4. |
| 0x00A0E2F0 | 22 | UIListCtrl__make_delegate_f1f4_copy_00a0e2f0 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f1f4 and stores this pointer from offset 0x4. |
| 0x00A0E310 | 22 | UIListCtrl__make_delegate_f344_copy_00a0e310 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f344 and stores this pointer from offset 0x4. |
| 0x00A0E330 | 22 | UIListCtrl__make_delegate_f328_copy_00a0e330 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f328 and stores this pointer from offset 0x4. |
| 0x00A0E350 | 22 | UIListCtrl__make_delegate_f210_copy_00a0e350 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f210 and stores this pointer from offset 0x4. |
| 0x00A0E370 | 22 | UIListCtrl__make_delegate_f22c_copy_00a0e370 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f22c and stores this pointer from offset 0x4. |
| 0x00A0E390 | 22 | UIListCtrl__make_delegate_f248_copy_00a0e390 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f248 and stores this pointer from offset 0x4. |
| 0x00A0E3B0 | 22 | UIListCtrl__make_delegate_f360_copy_00a0e3b0 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f360 and stores this pointer from offset 0x4. |
| 0x00A0E3D0 | 22 | UIListCtrl__make_delegate_f264_copy_00a0e3d0 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f264 and stores this pointer from offset 0x4. |
| 0x00A0E3F0 | 22 | UIListCtrl__make_delegate_f280_copy_00a0e3f0 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f280 and stores this pointer from offset 0x4. |
| 0x00A0E410 | 22 | UIListCtrl__make_delegate_f29c_copy_00a0e410 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f29c and stores this pointer from offset 0x4. |
| 0x00A0E430 | 22 | UIListCtrl__make_delegate_f2b8_copy_00a0e430 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f2b8 and stores this pointer from offset 0x4. |
| 0x00A0E450 | 22 | UIListCtrl__make_delegate_f2d4_copy_00a0e450 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f2d4 and stores this pointer from offset 0x4. |
| 0x00A0E470 | 22 | UIListCtrl__make_delegate_f2f0_copy_00a0e470 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f2f0 and stores this pointer from offset 0x4. |
| 0x00A0E490 | 22 | UIListCtrl__make_delegate_f30c_copy_00a0e490 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f30c and stores this pointer from offset 0x4. |
| 0x00A0E4B0 | 22 | UIListCtrl__make_delegate_f1a0_copy_00a0e4b0 | Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f1a0 and stores this pointer from offset 0x4. |
| 0x00A0EAF0 | 242 | UIListItem__ctor_00a0eaf0 | Constructor for UIListItem (size 0xEC). Calls UIWindowBase__ctor, sets vtable to PTR_FUN_0114b07c then PTR_FUN_0114f6fc. Initializes colors (text=0xFFFFFF, disabled=0xCECECE), alignment fields, flags, and selection index to -1. |
| 0x00A0EBF0 | 124 | UIListItemButton__ctor_00a0ebf0 | Constructor for UIListItemButton (size 0xF8), derived from UIButton. Calls UIButton__ctor_009efc30, sets vtable to PTR_FUN_0114f614, zeroes 4 additional fields at offsets 0xE8-0xF4. |
| 0x00A0EC70 | 153 | UIListItem__dtor_00a0ec70 | Destructor for UIListItem. Sets vtable to PTR_FUN_0114f6fc, ensures singleton CDataTable at DAT_0138d260 exists (allocates 0x1FC if needed), resets ItemBonus UI callback to 0, then chains to CUIWindow__dtor_save_position_009e69d0. |
| 0x00A0ED10 | 71 | UIListItemButton__dtor_00a0ed10 | Destructor for UIListItemButton. Sets vtable to PTR_FUN_0114f614, then chains to FUN_009da310 (UIButton destructor). |
| 0x00A0ED60 | 177 | UIListItem__scalar_deleting_dtor_00a0ed60 | Scalar deleting destructor for UIListItem (size 0xEC). Calls UIListItem__dtor, then conditionally frees the 0xEC-byte allocation. |
| 0x00A0EE20 | 99 | UIListItemButton__scalar_deleting_dtor_00a0ee20 | Scalar deleting destructor for UIListItemButton (size 0xF8). Calls UIListItemButton__dtor, then conditionally frees the 0xF8-byte allocation. |
| 0x00A0EF30 | 444 | UIListItem__render_text_with_color_00a0ef30 | Renders list item text with optional color formatting. If text is non-empty, sets label color, parses text using CFmt (delimiter 0x0110f644), handles color-coded segments (0x3c00ff for special text). Splits text into prefix/body/suffix parts and renders each via FUN_009f0e50. |
| 0x00A0F0F0 | 183 | UIListItem__draw_00a0f0f0 | Draw method for UIListItem. Calls base CUIWindow draw, loads texture from DAT_01130944, draws tiled background, then draws two border lines (bottom horizontal and left vertical) using item boundary color at offset 0xBC. |
| 0x00A0F1B0 | 56 | UIListItem__draw_separator_00a0f1b0 | Draws separator line for the list item. Uses color from offset 0xF0 (normal) or 0xF4 (selected/bit 0 of 0x94), fills background, then draws a vertical line at x=0x2C with the selected color. |
| 0x00A0F1F0 | 126 | UIListItem__init_data_table_00a0f1f0 | Ensures the singleton CDataTable at DAT_0138d260 exists (allocates 0x1FC bytes and constructs if null), then sets the ItemBonus UI callback to this list item. |
| 0x00A0F280 | 104 | UIListItem__adjust_child_positions_00a0f280 | Adjusts positions of child controls when the item moves. Updates position of self (vtable+4), inner control at field 0x39 (vtable+0x10), and two sub-controls at fields 0x36 and 0x37 by adding the delta (param_2, param_3) to their current positions. |
| 0x00A0F2F0 | 124 | UIListItem__load_separator_colors_00a0f2f0 | Loads separator line colors from a bitmap/texture. Reads pixel RGB at (2,2) for normal color (stored at 0xF0) and (2,10) for selected color (stored at 0xF4) via CColorPicker__GetPixelRGB. Colors packed as 0x00RRGGBB. |
| 0x00A0F370 | 477 | UIListItem__update_bonus_data_00a0f370 | Updates item bonus data. Stores item ID at offset 0xE8, creates a temporary STL list, ensures CDataTable singleton exists, calls ItemBonus__process_bonus_script to parse bonus text. Compares old and new bonus lists - if different, swaps them, refreshes scrollbar range, and marks dirty. Cleans up temp list on exit. |
| 0x00A0F550 | 27 | UIListItem__on_message_00a0f550 | Message handler for UIListItem. If message ID is 0x3C, calls update_bonus_data on the item bonus field (offset 0xE8). Returns 0. |
| 0x00A0F570 | 37 | UIListItem__on_item_changed_00a0f570 | Handles item change notification. If param_2 is non-null and its field at 0x2C differs from stored item ID (0xE8), calls update_bonus_data with the new item ID. |
| 0x00A193A0 | 444 | CListCtrl__ctor_00a193a0 | Constructor for a list control widget. Inherits from a base UI widget (via FUN_00a79a90). Sets up vtable pointers, initializes member fields including linked lists, STL string, item arrays, and selection state. Allocates sentinel nodes for two linked lists. |
| 0x00A19560 | 444 | CListCtrl__ctor_00a19560 | Constructor for a list control variant (vtable 0x0115064C). Same pattern as CListCtrl__ctor_00a193a0 but with different vtable and slightly different sentinel node size (0x2C). |
| 0x00A19720 | 444 | CListCtrl__ctor_00a19720 | Constructor for a list control variant (vtable 0x01150494). Same pattern with sentinel node size 0x24. |
| 0x00A198E0 | 444 | CListCtrl__ctor_00a198e0 | Constructor for a list control variant (vtable 0x011503B8). Same pattern with sentinel node size 0x20. |
| 0x00A19AA0 | 444 | CListCtrl__ctor_00a19aa0 | Constructor for a list control variant (vtable 0x0114FF6C). Same pattern with sentinel node size 0xC (minimal). |
| 0x00A1A1C0 | 348 | CListCtrl__dtor_00a1a1c0 | Destructor for CListCtrl variant (vtable 0x01150570). Destroys two owned sub-objects at +0x134 and +0x10C, cleans up linked list items, string, sentinel nodes, frees 4 texture/bitmap objects, and calls UIBase dtor. |
| 0x00A1A320 | 348 | CListCtrl__dtor_00a1a320 | Destructor for CListCtrl variant (vtable 0x0115064C). Same cleanup pattern with linked list, sentinel nodes, and 4 bitmap objects. |
| 0x00A1A480 | 348 | CListCtrl__dtor_00a1a480 | Destructor for CListCtrl variant (vtable 0x01150494). Same cleanup pattern with linked list, sentinel nodes, and 4 bitmap objects. |
| 0x00A1A5E0 | 348 | CListCtrl__dtor_00a1a5e0 | Destructor for CListCtrl variant (vtable 0x011503B8). Same cleanup pattern with linked list, sentinel nodes, and 4 bitmap objects. |
| 0x00A1A740 | 393 | CListCtrl__dtor_00a1a740 | Destructor for CListCtrl variant (vtable 0x0114FF6C). Differs from others: manually walks and frees linked list nodes (0xC-byte items), then same cleanup pattern. |
| 0x00A1A8D0 | 33 | UIWidget__destroy_child_at_0x24_00a1a8d0 | Destroys a child widget stored at offset +0x24. Calls virtual destructor (vtable+0x10) with ownership flag, then NULLs the pointer. |
| 0x00A1A900 | 33 | UIWidget__destroy_child_at_0x24_00a1a900 | Destroys a child widget stored at offset +0x24. Calls virtual destructor (vtable+0x10) with ownership flag, then NULLs the pointer. |
| 0x00A1A930 | 33 | UIWidget__destroy_child_at_0x24_00a1a930 | Destroys a child widget stored at offset +0x24. Calls virtual destructor (vtable+0x10) with ownership flag, then NULLs the pointer. |
| 0x00A1A960 | 33 | UIWidget__destroy_child_at_0x24_00a1a960 | Destroys a child widget stored at offset +0x24. Calls virtual destructor (vtable+0x10) with ownership flag, then NULLs the pointer. |
| 0x00A1A990 | 33 | UIWidget__destroy_child_at_0x24_00a1a990 | Destroys a child widget stored at offset +0x24. Calls virtual destructor (vtable+0x10) with ownership flag, then NULLs the pointer. |
| 0x00A1A9C0 | 92 | UIWidget__destroy_child_seh_00a1a9c0 | SEH-wrapped version of child widget destruction at offset +0x24. Same logic but with structured exception handling frame. |
| 0x00A1AA20 | 92 | UIWidget__destroy_child_seh_00a1aa20 | SEH-wrapped version of child widget destruction at offset +0x24. Same logic but with structured exception handling frame. |
| 0x00A1AA80 | 92 | UIWidget__destroy_child_seh_00a1aa80 | SEH-wrapped version of child widget destruction at offset +0x24. |
| 0x00A1AAE0 | 92 | UIWidget__destroy_child_seh_00a1aae0 | SEH-wrapped version of child widget destruction at offset +0x24. |
| 0x00A1AB40 | 92 | UIWidget__destroy_child_seh_00a1ab40 | SEH-wrapped version of child widget destruction at offset +0x24. |
| 0x00A1ABA0 | 152 | CListCtrl__destroy_item_list_0x70_00a1aba0 | Destroys a linked list of 0x70-byte list items. Each node has two strings that get destroyed. Walks the list, frees each node, then frees the sentinel. |
| 0x00A1AC40 | 134 | CListCtrl__destroy_item_list_0x2c_00a1ac40 | Destroys a linked list of 0x2C-byte list items. Each node has one string that gets destroyed. Walks list, frees each node, then frees sentinel. |
| 0x00A1ACD0 | 134 | CListCtrl__destroy_item_list_0x24_00a1acd0 | Destroys a linked list of 0x24-byte list items. Each node has one string that gets destroyed. Walks list, frees each node, then frees sentinel. |
| 0x00A1AED0 | 164 | UIWidget__clone_child_object_00a1aed0 | Clones a child object from param_2's +0x24 pointer via its virtual clone method (vtable[0]). Swaps into this via std::any::swap, then destroys the temporary clone. |
| 0x00A1AF80 | 164 | UIWidget__clone_child_object_00a1af80 | Clones a child object from param_2's +0x24 pointer via its virtual clone method. Swaps into this via std::any::swap, then destroys the temporary clone. |
| 0x00A1B030 | 164 | UIWidget__clone_child_object_00a1b030 | Clones a child object from param_2's +0x24 pointer via its virtual clone method. Swaps into this via std::any::swap, then destroys the temporary clone. |
| 0x00A1B0E0 | 164 | UIWidget__clone_child_object_00a1b0e0 | Clones a child object from param_2's +0x24 pointer via its virtual clone method. Swaps into this via std::any::swap, then destroys the temporary clone. |
| 0x00A1B190 | 164 | UIWidget__clone_child_object_00a1b190 | Clones a child object from param_2's +0x24 pointer via its virtual clone method. Swaps into this via std::any::swap, then destroys the temporary clone. |
| 0x00A1B6C0 | 38 | CListCtrl__scalar_deleting_dtor_00a1b6c0 | Scalar deleting destructor for CListCtrl (0x138 bytes). Calls CListCtrl__dtor_00a1a1c0 then conditionally frees. |
| 0x00A1B6F0 | 38 | CListCtrl__scalar_deleting_dtor_00a1b6f0 | Scalar deleting destructor for CListCtrl variant. Calls dtor then conditionally frees. |
| 0x00A1B720 | 38 | CListCtrl__scalar_deleting_dtor_00a1b720 | Scalar deleting destructor for CListCtrl variant. Calls dtor then conditionally frees. |
| 0x00A1B750 | 38 | CListCtrl__scalar_deleting_dtor_00a1b750 | Scalar deleting destructor for CListCtrl variant. Calls dtor then conditionally frees. |
| 0x00A1B780 | 38 | CListCtrl__scalar_deleting_dtor_00a1b780 | Scalar deleting destructor for CListCtrl variant. Calls dtor then conditionally frees. |
| 0x00A1BFD0 | 85 | CListCtrl__clear_all_items_00a1bfd0 | Clears all items from a list control. Iterates the vector at +0xC8 to +0xCC, calls FUN_00a82e50(item, 1) to destroy each, then resets end pointer to begin and selection to -1. |
| 0x00A1C030 | 85 | CListCtrl__clear_all_items_00a1c030 | Clears all items from a list control variant. Same pattern as 00a1bfd0. |
| 0x00A1C090 | 85 | CListCtrl__clear_all_items_00a1c090 | Clears all items from a list control variant. Same pattern as 00a1bfd0. |
| 0x00A1C0F0 | 85 | CListCtrl__clear_all_items_00a1c0f0 | Clears all items from a list control variant. Same pattern as 00a1bfd0. |
| 0x00A1C150 | 85 | CListCtrl__clear_all_items_00a1c150 | Clears all items from a list control variant. Same pattern as 00a1bfd0. |
| 0x00A1ED30 | 36 | UIWidget__set_size_and_position_00a1ed30 | Sets widget size (this+0xB4, this+0xB8) from params 4,5 and calls FUN_00a7b470 to set position from params 2,3. |
| 0x00A1ED60 | 36 | UIWidget__set_size_and_position_00a1ed60 | Sets widget size and position. Same pattern as 00a1ed30. |
| 0x00A1ED90 | 36 | UIWidget__set_size_and_position_00a1ed90 | Sets widget size and position. Same pattern as 00a1ed30. |
| 0x00A1EDC0 | 36 | UIWidget__set_size_and_position_00a1edc0 | Sets widget size and position. Same pattern as 00a1ed30. |
| 0x00A1EDF0 | 36 | UIWidget__set_size_and_position_00a1edf0 | Sets widget size and position. Same pattern as 00a1ed30. |
| 0x00A1F080 | 69 | CListCtrl__get_selected_item_00a1f080 | Gets the currently selected item from the list control. Walks the linked list at +0xD4 by selection index (+0xDC). Returns item data pointer and valid flag in param_2. |
| 0x00A1F0D0 | 69 | CListCtrl__get_selected_item_00a1f0d0 | Gets the currently selected item from the list control. Same pattern as 00a1f080. |
| 0x00A1F120 | 69 | CListCtrl__get_selected_item_00a1f120 | Gets the currently selected item from the list control. Same pattern as 00a1f080. |
| 0x00A1F170 | 69 | CListCtrl__get_selected_item_00a1f170 | Gets the currently selected item from the list control. Same pattern as 00a1f080. |
| 0x00A1F1C0 | 69 | CListCtrl__get_selected_item_00a1f1c0 | Gets the currently selected item from the list control. Same pattern as 00a1f080. |
| 0x00A34720 | 65 | CListCtrl__set_selected_highlight_00a34720 | Iterates all items in the list control vector (+0xC8 to +0xCC). For each item, calls vtable+0xDC with 1 if it matches param_2, 0 otherwise, to toggle selection highlight. |
| 0x00A34770 | 65 | CListCtrl__set_selected_highlight_00a34770 | Sets selection highlight on list control items. Same pattern as 00a34720. |
| 0x00A347C0 | 65 | CListCtrl__set_selected_highlight_00a347c0 | Sets selection highlight on list control items. Same pattern as 00a34720. |
| 0x00A34810 | 65 | CListCtrl__set_selected_highlight_00a34810 | Sets selection highlight on list control items. Same pattern as 00a34720. |
| 0x00A34860 | 65 | CListCtrl__set_selected_highlight_00a34860 | Sets selection highlight on list control items. Same pattern as 00a34720. |
| 0x00A348B0 | 545 | CListCtrl__rebuild_visible_items_00a348b0 | Rebuilds the visible item components in a list control. Clears existing items, calculates how many fit (height/item_height), resizes vector, creates UIComponent for each slot with button textures and stream handlers. Updates scroll range. |
| 0x00A34AE0 | 545 | CListCtrl__rebuild_visible_items_00a34ae0 | Rebuilds visible item components in a list control variant. Same pattern as 00a348b0. |
| 0x00A34D10 | 545 | CListCtrl__rebuild_visible_items_00a34d10 | Rebuilds visible item components in a list control variant. Same pattern as 00a348b0. |
| 0x00A34F40 | 545 | CListCtrl__rebuild_visible_items_00a34f40 | Rebuilds visible item components in a list control variant. Same pattern as 00a348b0. |
| 0x00A35170 | 603 | CListCtrl__rebuild_visible_items_00a35170 | Rebuilds visible item components in a list control variant (603 bytes). Slightly different size due to different item node layout. |
| 0x00A353D0 | 196 | CListCtrl__set_scroll_callback | Sets a scroll/update callback delegate on the list control. Creates a delegate object from the provided callback, swaps it into the list's callback slot at offset 0x128. |
| 0x00A354A0 | 522 | CListCtrl__load_item_textures | Loads item textures for the list control from a resource map. Loads 4 texture states (normal, hover, pressed, disabled) into fields 0x80-0x8c, releases old textures, then applies them to all child item buttons. |
| 0x00A356B0 | 522 | CListCtrl__load_item_textures_00a356b0 | Loads item textures for a list control variant. Same pattern as 00a354a0 - loads 4 texture states and applies to child buttons. |
| 0x00A358C0 | 522 | CListCtrl__load_item_textures_00a358c0 | Loads item textures for a list control variant. Same pattern as 00a354a0. |
| 0x00A35AD0 | 522 | CListCtrl__load_item_textures_00a35ad0 | Loads item textures for a list control variant. Same pattern as 00a354a0. |
| 0x00A35CE0 | 522 | CListCtrl__load_item_textures_00a35ce0 | Loads item textures for a list control variant. Same pattern as 00a354a0. |
| 0x00A35EF0 | 115 | CListCtrl__add_item_and_refresh_00a35ef0 | Adds an item to the list and refreshes the display. Calls FUN_00a82eb0 to add data, rebuilds visible items, updates parent size, sets scroll range/value, and marks dirty. |
| 0x00A35F70 | 115 | CListCtrl__add_item_and_refresh_00a35f70 | Adds an item to the list and refreshes. Same pattern as 00a35ef0. |
| 0x00A35FF0 | 115 | CListCtrl__add_item_and_refresh_00a35ff0 | Adds an item to the list and refreshes. Same pattern as 00a35ef0. |
| 0x00A36070 | 115 | CListCtrl__add_item_and_refresh_00a36070 | Adds an item to the list and refreshes. Same pattern as 00a35ef0. |
| 0x00A360F0 | 115 | CListCtrl__add_item_and_refresh_00a360f0 | Adds an item to the list and refreshes. Same pattern as 00a35ef0. |
| 0x00A36170 | 498 | CListCtrl__layout_visible_items_00a36170 | Lays out visible items in the list based on scroll position. Calculates which items are visible, rotates the item component array for reuse, assigns data to each visible slot via callback at +0x134, positions components, and hides offscreen ones. |
| 0x00A36370 | 498 | CListCtrl__layout_visible_items_00a36370 | Lays out visible items in the list based on scroll position. Same pattern as 00a36170. |
| 0x00A36570 | 498 | CListCtrl__layout_visible_items_00a36570 | Lays out visible items in the list based on scroll position. Same pattern as 00a36170. |
| 0x00A36770 | 498 | CListCtrl__layout_visible_items_00a36770 | Lays out visible items in the list based on scroll position. Same pattern as 00a36170. |
| 0x00A36970 | 498 | CListCtrl__layout_visible_items_00a36970 | Lays out visible items in the list based on scroll position. Same pattern as 00a36170. |
| 0x00A36DD0 | 218 | CListCtrl__on_item_clicked_00a36dd0 | Handles item click in list control. If not locked (+0xC4 flag), deselects all other items, selects the clicked one, updates selection index (+0xDC), and calls the selection callback at +0x10C with item data from the linked list. |
| 0x00A36EB0 | 218 | CListCtrl__on_item_clicked_00a36eb0 | Handles item click in list control variant. Same pattern as 00a36dd0. |
| 0x00A36F90 | 218 | CListCtrl__on_item_clicked_00a36f90 | Handles item click in list control variant. Same pattern as 00a36dd0. |
| 0x00A37070 | 218 | CListCtrl__on_item_clicked_00a37070 | Handles item click in list control variant. Same pattern as 00a36dd0. |
| 0x00A37150 | 319 | CListCtrl__create_header_row_00a37150 | Creates a header row component for the list control. Destroys existing header if present, adjusts position to make room, allocates a 0x120-byte object, sets position/size, text labels, and adds to parent hierarchy via stream handler. |
| 0x00A37290 | 319 | CListCtrl__create_header_row_00a37290 | Creates a header row for list control variant. Same pattern as 00a37150. |
| 0x00A373D0 | 319 | CListCtrl__create_header_row_00a373d0 | Creates a header row for list control variant. Same pattern as 00a37150. |
| 0x00A37510 | 319 | CListCtrl__create_header_row_00a37510 | Creates a header row for list control variant. Same pattern as 00a37150. |
| 0x00A37650 | 216 | CListCtrl__set_text_strings_00a37650 | Sets four text strings on a list control using map subscript access (keys 0,1,2 + the name string at +0x98). Calls vtable+0xD4 with 0 and vtable+0x98 to trigger repaint. |
| 0x00A3C390 | 176 | UIWidget__ctor_00a3c390 | Constructor for a UI widget derived from UIBase. Calls UIBase ctor (FUN_00a79a90), sets multiple vtable pointers (UIBase, intermediate, final at PTR_FUN_01152844), sets visible flag=1, and zeroes out 6 data members at offsets 0x20-0x25. |
| 0x00A3C440 | 94 | UIComponent__ctor_00a3c440 | Constructor for a UI component. Calls base ctor FUN_009efc30, sets vtable to PTR_FUN_0115202c, initializes member at offset 0x3a to 0. |
| 0x00A3CA60 | 186 | UIProgressBar__ctor_00a3ca60 | Constructor for UIProgressBar derived from UIBase. Sets vtable to PTR_FUN_0115267c. Zeroes 7 members at offsets 0x20-0x26 (current value, max value, fill color, etc). |
| 0x00A3D010 | 138 | UIListItem__copy_ctor_00a3d010 | Copy constructor for a UI list item structure. Copies header fields, two STL strings (via STL_string_copy_construct at offsets +2 and +0x14), and 16 dwords of data fields at offsets 0x8-0x13. |
| 0x00A3D610 | 84 | UIWidget__dtor_00a3d610 | Destructor for UIWidget (vtable PTR_FUN_01152844). Resets vtable to UIBase, calls UIBase dtor (FUN_00a79e90). |
| 0x00A3D670 | 71 | UIComponent__dtor_00a3d670 | Destructor for UIComponent (vtable PTR_FUN_0115202c). Calls base dtor FUN_009da310. |
| 0x00A3DA30 | 84 | UIProgressBar__dtor_00a3da30 | Destructor for UIProgressBar (vtable PTR_FUN_0115267c). Resets vtable to UIBase, calls UIBase dtor. |
| 0x00A3DDD0 | 108 | UIListItem__assign_00a3ddd0 | Assignment operator for UIListItem. Copies header fields, assigns two STL strings (at offsets +2 and +0x14 with SSO check), and copies 16 dwords of data fields (offsets 0x8-0x13). |
| 0x00A3DE40 | 112 | UIWidget__scalar_deleting_dtor_00a3de40 | Scalar deleting destructor for UIWidget. Destroys the widget (UIBase dtor), then conditionally frees the 0x98-byte allocation if bit 0 of param is set. |
| 0x00A3DEB0 | 99 | UIComponent__scalar_deleting_dtor_00a3deb0 | Scalar deleting destructor for UIComponent. Destroys the component (UIControlBase dtor), then conditionally frees the 0xF0-byte allocation. |
| 0x00A3E0F0 | 112 | UIProgressBar__scalar_deleting_dtor | UIProgressBar scalar deleting destructor. Sets vtable chain, calls CEffect::dtor, optionally frees 0x94-byte object. |
| 0x00A3E340 | 112 | UIProgressBar__scalar_deleting_dtor_00a3e340 | Scalar deleting destructor for UIProgressBar. Calls UIBase dtor, then conditionally frees 0x9C-byte allocation. |
| 0x00A3FC80 | 68 | UIListCtrl__get_item_at_index | Gets item data at a given index from UIListCtrl's linked list. Walks the list from head, skipping 'index' nodes. Returns optional-like struct: pointer to node data at offset+8, and validity flag (1=found, 0=out of range). |
| 0x00A44170 | 115 | UITextLabel__create_00a44170 | Factory function that allocates 0x120 bytes for a UITextLabel, calls FUN_00a477f0 (constructor) on it. Returns the new object or 0 on allocation failure. |
| 0x00A441F0 | 66 | UITextLabel__init_default_00a441f0 | Initializes a UITextLabel with default values. Clears fields at +0x2D and +0x35, sets size to 0xE7 x 0xBD via vtable+4, position to 0,0 via vtable+0x10, and triggers resize/redraw via vtable+0x3C and +0x40. |
| 0x00A47290 | 22 | UITextLabel__init_vtable_a_00a47290 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_0115314c and copies parent field at +4. |
| 0x00A472B0 | 22 | UITextLabel__init_vtable_b_00a472b0 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_01153168 and copies parent field at +4. |
| 0x00A472D0 | 22 | UITextLabel__init_vtable_c_00a472d0 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_01153184 and copies parent field at +4. |
| 0x00A472F0 | 22 | UITextLabel__init_vtable_d_00a472f0 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_011531a0 and copies parent field at +4. |
| 0x00A47310 | 22 | UITextLabel__init_vtable_e_00a47310 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_011531bc and copies parent field at +4. |
| 0x00A47330 | 22 | UITextLabel__init_vtable_f_00a47330 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_011531d8 and copies parent field at +4. |
| 0x00A47350 | 22 | UITextLabel__init_vtable_g_00a47350 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_01153130 and copies parent field at +4. |
| 0x00A47370 | 68 | UITextLabel__conditional_delete_a_00a47370 | Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped. |
| 0x00A473C0 | 68 | UITextLabel__conditional_delete_b_00a473c0 | Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped. |
| 0x00A47410 | 68 | UITextLabel__conditional_delete_c_00a47410 | Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped. |
| 0x00A47460 | 68 | UITextLabel__conditional_delete_d_00a47460 | Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped. |
| 0x00A474B0 | 68 | UITextLabel__conditional_delete_e_00a474b0 | Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped. |
| 0x00A47500 | 68 | UITextLabel__conditional_delete_f_00a47500 | Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped. |
| 0x00A47550 | 68 | UITextLabel__conditional_delete_g_00a47550 | Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped. |
| 0x00A475E0 | 20 | UITextLabel__delegate_select_a_00a475e0 | Delegate that calls FUN_00a47cd0 (set_selection_index) with the value pointed to by param_1. Used as callback. |
| 0x00A47600 | 20 | UITextLabel__delegate_select_b_00a47600 | Delegate that calls FUN_00a47cd0 (set_selection_index) with the value pointed to by param_1. Used as callback. |
| 0x00A476A0 | 22 | UITextLabel__init_vtable_h_00a476a0 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_0115314c and copies parent field at +4. |
| 0x00A476C0 | 22 | UITextLabel__init_vtable_i_00a476c0 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_01153168 and copies parent field at +4. |
| 0x00A476E0 | 22 | UITextLabel__init_vtable_j_00a476e0 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_01153184 and copies parent field at +4. |
| 0x00A47700 | 22 | UITextLabel__init_vtable_k_00a47700 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_011531a0 and copies parent field at +4. |
| 0x00A47720 | 22 | UITextLabel__init_vtable_l_00a47720 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_011531bc and copies parent field at +4. |
| 0x00A47740 | 22 | UITextLabel__init_vtable_m_00a47740 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_011531d8 and copies parent field at +4. |
| 0x00A47760 | 22 | UITextLabel__init_vtable_n_00a47760 | Vtable interface initializer. Sets vtable ptr to PTR_FUN_01153130 and copies parent field at +4. |
| 0x00A477F0 | 349 | UITextLabel__ctor_00a477f0 | Constructor for UITextLabel. Calls UIWindowBase__ctor(0) as base class, initializes vtable to PTR_FUN_01153444, sets default colors (0xFFFFFF text, 0xCECECE), empty string at +0x42, zero-inits fields 0x36-0x42. Object size 0x120 bytes. |
| 0x00A47950 | 95 | UITextLabel__dtor_00a47950 | Destructor for UITextLabel. Sets vtable to PTR_FUN_01153444, destroys STL string, then calls base class dtor FUN_009e69d0. |
| 0x00A479B0 | 119 | UITextLabel__scalar_deleting_dtor_00a479b0 | Scalar deleting destructor for UITextLabel. Sets vtable, destroys STL string, calls base dtor. Conditionally frees 0x120 bytes if param_2 & 1. |
| 0x00A47A50 | 456 | UITextLabel__submit_chat_message_00a47a50 | Builds and submits a chat message packet (opcode 0xBE2). Copies DAT_01733c3c to header, reads name from +0x100/+0x104 and text from editable widget via UIEditableTextWidget__get_display_text. Sends via FUN_00c7ce30. Also calls FUN_00a8cf20(0x2715) to play a sound effect. |
| 0x00A47C40 | 130 | UITextLabel__show_centered_and_load_data_00a47c40 | Shows the text label window centered on screen. Sets visible flag +0x35, centers using screen dimensions from DAT_01389638. Loads player name and text data from FUN_00ad6450() into fields +0x40 and +0x42 (STL string). |
| 0x00A47CD0 | 50 | UITextLabel__set_selection_index_00a47cd0 | Sets selection index. If param_2 matches field at +0xF4, sets +0x104 to 0. If param_2 matches +0xF8, sets +0x104 to 1. Used for toggle/radio selection between two options. |
| 0x00A47FA0 | 444 | UIScrollableList__ctor | Constructor for UIScrollableList. Calls CEffect__ctor as base class, sets vtable to UIBase then UIScrollableList, initializes members: linked lists for items and nodes, string buffer (capacity 0xf), selection index to -1, various flags and counters to 0. Allocates sentinel nodes for two internal linked lists. |
| 0x00A48160 | 348 | UIScrollableList__dtor_00a48160 | Destructor for UIScrollableList (0x138 bytes). Sets vtable to PTR_FUN_01153520, releases two child widgets at +0x4D and +0x43 via vtable+0x10. Destroys linked list via FUN_00a48350, frees item vector via FUN_00a483e0, destroys STL string. Destroys 4 texture resources at +0x20-0x23. Calls base UIWindowBase dtor. |
| 0x00A482C0 | 33 | UIScrollableList__release_child_widget_00a482c0 | Releases child widget at field +9 (offset 0x24). If non-null, calls vtable+0x10 on it and nulls the pointer. |
| 0x00A482F0 | 92 | UIScrollableList__release_child_seh_00a482f0 | SEH-wrapped version of release_child_widget. Same logic: releases child at +9 via vtable+0x10 if non-null. |
| 0x00A48350 | 134 | UIScrollableList__destroy_linked_list_00a48350 | Destroys a singly-linked list. Walks list starting from *param_1, for each node: destroys STL string, frees 0x30-byte node. Finally frees the head sentinel node. |
| 0x00A483E0 | 129 | UIScrollableList__free_item_vector_00a483e0 | Frees the dynamic array/vector buffer at *param_1. Handles aligned allocation: checks for stored original pointer at -4 offset for large allocations (>0xFFF). Zeroes all three vector fields (begin, end, capacity). |
| 0x00A48470 | 164 | UIScrollableList__create_from_descriptor_00a48470 | Creates a UIScrollableList from a descriptor param_2. Optionally clones a UI stream object from param_2+0x24 first, then calls FUN_00a4d0c0 for initialization. Cleans up the stream clone on exit. |
| 0x00A48520 | 38 | UIScrollableList__scalar_deleting_dtor_00a48520 | Scalar deleting destructor for UIScrollableList. Calls FUN_00a48160 (dtor), then frees 0x138 bytes if param_2 & 1. |
| 0x00A48550 | 353 | UIScrollableList__create_item_widget_00a48550 | Creates a single item widget for the scrollable list. Allocates 0xF8 bytes, calls FUN_00a4d620 (UIListItem ctor). Sets size via FUN_00a7b470, visibility, colors via FUN_009f02e0. Registers two UI callbacks via UIComponent__create_from_stream. Calls FUN_00a7a080 to add to layout. |
| 0x00A486C0 | 115 | UIListItem__create_00a486c0 | Factory function that allocates 0x110 bytes and constructs a UIListItem via FUN_00a4d6a0. Returns pointer or 0 on allocation failure. |
| 0x00A48740 | 85 | UIScrollableList__clear_all_items_00a48740 | Clears all items from the scrollable list. Iterates the item vector at +0xC8/+0xCC, calls FUN_00a82e50 on each item to destroy it, resets vector end to begin, and sets selected index to -1. |
| 0x00A487A0 | 36 | UIScrollableList__set_dimensions_and_position_00a487a0 | Sets list item dimensions and position. Stores param_4/param_5 at +0xB4/+0xB8, then calls FUN_00a7b470(param_2, param_3) to set overall widget size. |
| 0x00A487D0 | 59 | UIScrollableList__init_default_00a487d0 | Initializes scrollable list with default size 0x159 x 0x1C7. Clears field at +0x2D, sets size via vtable+4, position to 0,0 via vtable+0x10, triggers layout via vtable+0x3C/+0x40. |
| 0x00A48810 | 69 | UIScrollableList__get_selected_item_00a48810 | Gets the currently selected item from the linked list. Walks linked list from offset +0xD4, advancing by selected index at +0xDC. Returns item data pointer (+2 from node) and success flag in param_2. |
| 0x00A48860 | 525 | UIScrollableList__init_dialog_container_00a48860 | Initializes the dialog container for the scrollable list. Allocates 0xF0-byte UIInterfaceDialog, sets up fields (visibility, flags, empty strings). Stores at +0xB0. Registers a UI callback via UIComponent__create_from_stream. Calls FUN_00a7a080 for layout. |
| 0x00A48A70 | 2388 | UIScrollableList__setup_text_labels_00a48a70 | Sets up two text label widgets for the scrollable list. Creates label at +0xE8 (size 0xE7 x 0x1D) and label at +0xEC (size 0x4E x 0x1D). Each label gets decrypted text via xor_decrypt_buffer, font size 12, white color 0xFFFFFF. Configures alignment, margins, and text strings. |
| 0x00A493D0 | 11285 | UIScrollableList__main_ctor_00a493d0 | Large constructor for UIScrollableList (11285 bytes). Too large to decompile in agent context. Initializes the full scrollable list control including all sub-widgets. |
| 0x00A4C000 | 63 | UIScrollableList__handle_scroll_event_00a4c000 | Handles scroll events for the list. If dialog at +0xB0 is not scrolled to end and has more content, calls vtable+0x8C to scroll it. Otherwise forwards to parent widget at +0x10. |
| 0x00A4C040 | 65 | UIScrollableList__set_active_item_00a4c040 | Sets the active/selected item in the list. Iterates all items in vector +0xC8, calls vtable+0xDC with true on the matching item and false on all others. |
| 0x00A4C090 | 603 | UIScrollableList__rebuild_visible_items_00a4c090 | Rebuilds the list of visible item widgets. Clears existing items, calculates how many fit based on height / item_height. Allocates widget vector, creates each item widget via FUN_00a4d620 with callbacks. Sets scroll range. |
| 0x00A4C2F0 | 522 | UIScrollableList__load_textures_00a4c2f0 | Loads 4 textures for the list control (normal, hover, pressed, background) from a map using keys 0-3. Each texture is loaded via UIControl__load_texture_resource and reference-counted. Applies textures to all existing list items via FUN_009f02e0. |
| 0x00A4C500 | 115 | UIScrollableList__resize_and_rebuild_00a4c500 | Resizes the scrollable list and rebuilds items. Calls FUN_00a82eb0 for size change, rebuilds visible items via FUN_00a4c090, resizes dialog container, updates scroll range and position. Sets dirty flag at +0xE1. |
| 0x00A4C580 | 498 | UIScrollableList__update_visible_range_00a4c580 | Updates which items are visible based on scroll position param_2. Calculates start index from scroll / item_height. For each visible slot, assigns data index, calls item bind callback at +0x134, sets selected state, positions item, and shows/hides items. Handles scroll direction optimization with FUN_00a47f40. |
| 0x00A4C780 | 218 | UIScrollableList__on_item_clicked_00a4c780 | Item click handler. If not in single-select mode (+0xC4), deselects all items then selects the clicked one. Uses __RTDynamicCast to verify item type. Stores selected index at +0xDC. Fires selection callback at +0x10C with the linked list node data. |
| 0x00A4C860 | 216 | UIScrollableList__set_texture_names_00a4c860 | Sets texture names for the list's item states. Copies 4 STL strings from params into the name map at keys 0-3 (normal, hover, pressed, background). Then calls vtable+0xD4(0) and vtable+0x98 to refresh. |
| 0x00A4C940 | 22 | UIScrollableList__init_vtable_a_00a4c940 | Initializes a vtable callback object. Sets vtable pointer and copies parent object reference from param_1+4. |
| 0x00A4C960 | 22 | UIScrollableList__init_vtable_b_00a4c960 | Initializes a vtable-based delegate functor for UIScrollableList. |
| 0x00A4C980 | 22 | UIScrollableList__init_vtable_c_00a4c980 | Initializes a vtable-based delegate functor for UIScrollableList. |
| 0x00A4C9A0 | 22 | UIScrollableList__init_vtable_d_00a4c9a0 | Initializes a vtable-based delegate functor for UIScrollableList. |
| 0x00A4C9C0 | 22 | UIScrollableList__init_vtable_e_00a4c9c0 | Initializes a vtable-based delegate functor for UIScrollableList. |
| 0x00A4C9E0 | 22 | UIScrollableList__init_vtable_f_00a4c9e0 | Initializes a vtable-based delegate functor for UIScrollableList. |
| 0x00A4CA00 | 22 | UIScrollableList__init_vtable_g_00a4ca00 | Initializes a vtable-based delegate functor for UIScrollableList. |
| 0x00A4CA20 | 22 | UIScrollableList__init_vtable_h_00a4ca20 | Initializes a vtable-based delegate functor for UIScrollableList. |
| 0x00A4CA40 | 22 | UIScrollableList__init_vtable_i_00a4ca40 | Initializes a vtable-based delegate functor for UIScrollableList. |
| 0x00A4CA60 | 68 | UIScrollableList__conditional_delete_a_00a4ca60 | Scalar deleting destructor for a callback delegate object. If param_2 is true, frees the 8-byte object memory. |
| 0x00A4CAB0 | 68 | UIScrollableList__conditional_delete_b_00a4cab0 | Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory. |
| 0x00A4CB00 | 68 | UIScrollableList__conditional_delete_c_00a4cb00 | Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory. |
| 0x00A4CB50 | 68 | UIScrollableList__conditional_delete_d_00a4cb50 | Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory. |
| 0x00A4CBA0 | 68 | UIScrollableList__conditional_delete_e_00a4cba0 | Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory. |
| 0x00A4CBF0 | 68 | UIScrollableList__conditional_delete_f_00a4cbf0 | Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory. |
| 0x00A4CC40 | 68 | UIScrollableList__conditional_delete_g_00a4cc40 | Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory. |
| 0x00A4CC90 | 68 | UIScrollableList__conditional_delete_h_00a4cc90 | Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory. |
| 0x00A4CCE0 | 68 | UIScrollableList__conditional_delete_i_00a4cce0 | Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory. |
| 0x00A4CD60 | 65 | UIScrollableList__delegate_set_active_item | Delegate callback for setting active item. Called from a callback context (param_1+4 = parent UIScrollableList). Iterates all items in vector +0xC8 and calls vtable+0xDC to select/deselect based on match with the clicked item from param_2. |
| 0x00A4CDB0 | 20 | UIScrollableList__delegate_scroll_changed | Delegate callback that forwards scroll position changes to UIScrollableList__update_visible_range. Called when the scrollbar value changes. |
| 0x00A4CDD0 | 23 | UIScrollableList__delegate_null_stub_00a4cdd0 | Delegate that forwards to null_stub_00a4e030 - effectively a no-op callback handler. |
| 0x00A4CDF0 | 23 | UIScrollableList__delegate_forward_00a4cdf0 | Delegate that forwards to UIListItem__bind_data_display to bind data to a list item widget for display. |
| 0x00A4CE10 | 216 | UIScrollableList__delegate_item_click_00a4ce10 | Delegate callback for item click events, called from callback context (param_1+4 = parent UIScrollableList). Deselects all items, selects clicked item, stores index at +0xDC, fires selection callback at +0x10C with linked list node data. Same logic as UIScrollableList__on_item_clicked but accessed via delegate. |
| 0x00A4CFA0 | 22 | UIScrollableList__init_vtable_j_00a4cfa0 | Initializes a vtable-based delegate functor for UIScrollableList. |
| 0x00A4CFC0 | 22 | UIScrollableList__init_vtable_k_00a4cfc0 | Initializes a vtable-based delegate functor for UIScrollableList. |
| 0x00A4CFE0 | 22 | UIScrollableList__init_vtable_l_00a4cfe0 | Initializes a vtable-based delegate functor for UIScrollableList. |
| 0x00A4D000 | 22 | UIScrollableList__init_vtable_m | Initializes a vtable callback object using the same vtable pointer as init_vtable_d (011536c0). Sets vtable and copies parent object reference. |
| 0x00A4D020 | 22 | UIListItem__init_vtable_a_00a4d020 | Initializes a vtable-based delegate functor for UIListItem. |
| 0x00A4D040 | 22 | UIListItem__init_vtable_b_00a4d040 | Initializes a vtable-based delegate functor for UIListItem. |
| 0x00A4D060 | 22 | UIListItem__init_vtable_c_00a4d060 | Initializes a vtable-based delegate functor for UIListItem. |
| 0x00A4D080 | 22 | UIListItem__init_vtable_d_00a4d080 | Initializes a vtable-based delegate functor for UIListItem. |
| 0x00A4D0A0 | 22 | UIListItem__init_vtable_e_00a4d0a0 | Initializes a vtable-based delegate functor for UIListItem. |
| 0x00A4D620 | 114 | UIListItemButton__ctor_00a4d620 | Constructor for UIListItemButton (0xF8 bytes). Inherits from UIButton via UIButton__ctor_009efc30. Sets vtable to PTR_FUN_011538f4. Initializes fields: +0x3A=0, +0x3B=0, +0x3C=-1 (no selection). |
| 0x00A4D6A0 | 313 | UIListItemWindow__ctor_00a4d6a0 | Constructor for UIListItemWindow (0x110 bytes). Inherits from UIWindowBase. Sets vtable to PTR_FUN_011539dc, default colors (0xFFFFFF/0xCECECE), zero-inits fields 0x36-0x43. Has embedded STL string at +0x3D. |
| 0x00A4D980 | 71 | UIListItemButton__dtor_00a4d980 | Destructor for UIListItemButton. Sets vtable to PTR_FUN_011538f4, then calls UIControlBase__dtor. |
| 0x00A4D9D0 | 95 | UIListItemWindow__dtor_00a4d9d0 | Destructor for UIListItemWindow. Sets vtable to PTR_FUN_011539dc, destroys embedded STL string, calls CUIWindow__dtor_save_position. |
| 0x00A4DA30 | 99 | UIListItemButton__scalar_deleting_dtor_00a4da30 | Scalar deleting destructor for UIListItemButton (0xF8 bytes). Calls dtor then frees if param_2 & 1. |
| 0x00A4DAA0 | 119 | UIListItemWindow__scalar_deleting_dtor_00a4daa0 | Scalar deleting destructor for UIListItemWindow (0x110 bytes). Calls dtor, destroys STL string, then frees if param_2 & 1. |
| 0x00A4DB20 | 352 | UIScrollableList__add_item_00a4db20 | Adds a new item to the scrollable list. Allocates 0x30-byte node, copies data from param_2 (including STL strings at offsets 1-8 and sort key at 9). Links into circular list at +0xD4. If param_3, updates scroll range and position. Returns new item index. Max capacity 0x5555555. |
| 0x00A4DCA0 | 750 | UIScrollableList__search_and_select_00a4dca0 | Searches the list for text matching the edit widget content. Gets selected item's strings for highlight. Uses linked_list__find_by_string to search. If found, scrolls to item, selects it, updates highlight. If not found, shows a message box (0x1012). Uses format strings from DAT_01343de8/DAT_01343e00. |
| 0x00A4DF90 | 123 | UIScrollableList__clear_all_data_00a4df90 | Clears all data from the scrollable list. Destroys all linked list nodes, resets head pointers, clears count to 0, resets selected index to -1, updates scroll range and position. Sets dirty flag. |
| 0x00A4E040 | 206 | UIListItem__bind_data_display_00a4e040 | Binds data from linked list node to a list item for display. Calls several UI setup functions for text/color, formats a float value from param_2+0x20 using format string '%.4lf' and sets it as text. |
| 0x00A4E110 | 109 | UIScrollableList__draw_border_lines_00a4e110 | Draws border lines around the scrollable list. Calls FUN_00a7b430 for setup, then draws 4 colored lines (0xFFCEADA5) at top, left (x=0), middle (x=0xE8), and right edges using FUN_00a7bd60. |
| 0x00A4E180 | 207 | UIScrollableList__draw_grid_background_00a4e180 | Draws the grid background for the scrollable list. Fills background (0xFFFFFFFF), draws outline (0xFF808080), draws header bar at y=0x3C (0xFF99E5FF). Draws horizontal grid lines every 0x1E pixels and 3 vertical separator lines. |
| 0x00A4E250 | 43 | UIScrollableList__disable_both_scrollbars_00a4e250 | Disables and hides both scrollbar widgets by calling UIScrollbar__disable_and_hide(1) twice. |
| 0x00A4E280 | 200 | UIScrollableList__show_positioned_with_labels_00a4e280 | Shows the scrollable list window positioned relative to a parent window (FUN_00aa5f70 returns parent). Centers vertically if no parent. Sets 3 text labels using message strings 0x1017, 0x1018, 0x1019 via FUN_00b00f00. |
| 0x00A4E360 | 74 | UIScrollableList__refresh_scroll_range_00a4e360 | Refreshes the scroll range based on item count * item height + padding. Sets max value, visible range, and current scroll value. Marks dirty flag +0xE1. |
| 0x00A4E3B0 | 124 | UIScrollableList__rebind_item_at_index_00a4e3b0 | Re-binds data to the list item widget at given index. Finds the visible item widget matching param_2 index. Advances linked list iterator to that index, calls the bind callback at +0x134. Returns 1 on success, 0 on failure. |
| 0x00A4E430 | 89 | UIScrollableList__scroll_to_and_select_00a4e430 | Scrolls to the specified index and selects it. Sets scrollbar value to item_height * param_2. Finds the matching visible item and triggers on_item_clicked. Returns 1 if found, 0 if not. |
| 0x00A4E490 | 56 | UIScrollableList__handle_button_event_00a4e490 | Button event handler for scrollable list. If button ID is 0xB1, calls CListBoxDialog__apply_skin_to_child to re-skin. Always forwards to UIWindow__handle_button_click for default handling. |
| 0x00A4FE40 | 36 | UIScrollableList__set_scroll_params_and_init | Sets scroll parameters (param_4 and param_5 at offsets +0xB4 and +0xB8) and initializes the scrollable list by calling FUN_00a7b470 with param_2 and param_3. |
| 0x00A4FE70 | 66 | UIScrollableList__init_layout | Initializes the layout of a UIScrollableList. Clears flags at offset +0x2D, sets flag at +0x35 to 1, calls virtual functions to set size (0x156 x 0x19C), position (0,0), and perform resize/layout operations. |
| 0x00A4FEC0 | 69 | UIScrollableList__get_selected_item | Gets the currently selected item in the scrollable list. Uses the selection index at +0xDC to traverse the linked list at +0xD4. If index is valid (>=0 and < count at +0xD8), returns pointer to the item data (node+2) with success flag. Otherwise returns with success=false. |
| 0x00AA1350 | 1118 | CUIWindowMgr__create_window_by_type | Creates a UI window by type ID. Calls Lua GetWindowInfo to get position/size data. Switch on type: 0x9c creates UIWindow_915530 (stored at 0x404), 0x9d creates FUN_00ba6000, 0x9f creates UIWindow_915980, 0xb5 creates UIWindow_915d10, 0xd1 creates FUN_00ba5560. Applies saved positions from timer data, adds to window list. For types 0x9f/0x9d/0xd4 sends message 0x22 with extra data. |
| 0x00AA1800 | 2248 | CUIWindowMgr__reset_all_window_state | Resets all window manager state. Walks the callback list, processing non-sentinel entries via UICallback__ctor. Then zeros out ~200 window pointer fields covering all game window types (inventory, equipment, chat, skill, status, etc.), clears the linked list at 0x50c, clears map data, and resets all tracking fields to 0. |
| 0x00AA20F0 | 311 | CUIWindowMgr__show_message_box | Shows a message box dialog. Limits to 6 concurrent message boxes (shows Win32 MessageBoxA error if exceeded). Allocates UIWindowE, initializes layout with provided parameters, inserts into window list. If param_11 flag set, pushes to modal stack at 0x9e8. Clears current focus state at 0x19c/0x1a0. |
| 0x00AA2230 | 671 | CUIWindowMgr__close_window_and_process_queue | Closes a window and processes the modal window queue. If param_2=0 returns 0xb9. Saves focus state to tree, clears focus. Pushes param_2 to the circular buffer deque at 0x1a8. Loops: pops windows from deque, hides and unregisters them. If a timer fires, closes all remaining queued windows. Returns 0xb8 on timeout or the stored return code. |
| 0x00AA2510 | 170 | CUIWindowMgr__update_cell_positions | Iterates linked list at this+0x4f240, creates a CUIElement singleton (DAT_0138d42c) if needed, then calls GetCellPosition and a virtual method on each element to update cell positions. |
| 0x00AA26C0 | 145 | CUIWindowMgr__render_all_windows | Renders all UI windows. Iterates three collections: (1) linked list at 0x17c calling virtual Render (vtable+0x4c), (2) tree at 0x9c4 calling FUN_00ab2e70 on items with non-null +0x14, (3) tree at 0x4f198 calling virtual Render on contained elements. |
| 0x00AA27B0 | 585 | CUIWindowMgr__add_or_show_window | Creates or shows a UI window at this+0xa30. Allocates UIBase-derived object if needed, sets position, calls SetSize, manages window z-order in linked list at 0x17c. Handles special window types 0xc and 0x52 by removing conflicting windows before inserting. |
| 0x00AA2A00 | 496 | CUIWindowMgr__create_achievement_window | Creates or shows the achievement window stored at this+0x4f2ac. Allocates 0x9c byte object via FUN_00ab49d0 if not already present, sets position to screen coords, sets a numeric ID 0x2728, inserts into window list at 0x17c, handles z-order with type-based conflict resolution, then shows. |
| 0x00AA2BF0 | 66 | CUIWindowMgr__invalidate_all_windows | Iterates all windows in the linked list at 0x17c. For each visible window (vtable+0x8 returns true), calls a method at vtable+0x94 with params (0,4,0,0,0,0) to trigger full invalidation/redraw. |
| 0x00AA2C40 | 66 | CUIWindowMgr__resize_all_windows | Iterates all windows in the linked list at 0x17c. For each visible window (vtable+0x8 returns true), calls a method at vtable+0x94 with params (0,3,0,0,0,0) to trigger resize/layout recalculation. |
| 0x00AA2C90 | 117 | CUIWindowMgr__unregister_window | Unregisters a window pointer from the window manager. Clears references at offsets 0x3d4, 0x3d8, 0x3dc, 0x1b8, and 0x4f2ac if they match the given window pointer. Then removes from the collection at 0x184. |
| 0x00AA2D10 | 149 | CUIWindowMgr__reorder_window_by_type | Reorders a window in the linked list based on its type field at +0x2c. Handles type 0xC (maps to z-order 0xEA) and type 0x52 (maps to z-order 0xFA). Removes existing window of the same z-order from the list and re-inserts the given window. |
| 0x00AA2DB0 | 1704 | CUIWindowMgr__handle_keyboard_input | Handles keyboard input for the window manager. Dispatches TAB (0x9) for focus cycling (with Shift+Tab support), Enter (0xD), ESC (0x1B) for closing windows/exit prompts, PageUp/PageDown (0x21/0x22) for scrolling, F keys for shortcuts, and various other keys. Uses GetAsyncKeyState for Ctrl/Shift modifiers. |
| 0x00AA35F0 | 4061 | CUIWindowMgr__handle_shortcut_command | Processes shortcut command IDs (param_2 must be 4/key-down). Maps command IDs (0x64-0x9F+) to window open/toggle/action. Checks battle mode restrictions via FUN_00b875e0 field flags. Handles hotbar slots (<0x2d), window toggles (skill, equip, inventory, party, guild, options, quest, etc.), chat commands starting with '/', and various UI panel toggles. |
| 0x00AA4730 | 3691 | CUIWindowMgr__process_mouse_input | Main mouse input processing for the window manager. Handles mouse move, click, drag for UI windows. Processes window focusing/z-order on click, dispatches virtual mouse handlers (OnMove, OnClick, OnDoubleClick, OnDrag, OnWheel), manages tooltip updates, cursor position tracking, and hit-testing across multiple window collections. |
| 0x00AA55C0 | 387 | CUIWindowMgr__dispatch_key_event | Top-level keyboard event dispatcher. Sets input active flag at +0x25, checks if player exists and whether a modal window (0x9c) is open. Routes key events through FUN_00a8bc00 for basic processing, then to shortcut handler (FUN_00aa35f0) if not consumed. Handles focus mode filtering for text input fields (allows Tab, Enter, Shift, Ctrl, F keys to pass through). Falls through to FUN_00aa2db0 for remaining key handling. |
| 0x00AA57E0 | 799 | CUIWindowMgr__send_chat_line | Sends a chat line from the chat input buffer (indexed by param_1). Copies text from the string table at DAT_01733630. If DAT_0145785c is set, checks for banned words. Handles slash commands (starting with '/') by parsing command + args via FUN_00de1010. Otherwise sends as normal chat, with special routing for different chat modes: party (mode 2), guild (mode 1), battleground (mode 3). |
| 0x00AA5B00 | 912 | CUIWindowMgr__manage_window_visibility_state | Multi-phase window visibility manager using state machine at offset 0x508 (states 0/1/2). Phase 0: saves currently visible windows to backup list at 0x50c. Phase 1: hides non-essential windows, checks which should stay via FUN_00a96a60. Phase 2: restores windows from backup, re-shows them. Handles special cases for game session windows and minimap (0xBD with option 0xFA check). |
| 0x00AA5E90 | 218 | CUIWindowMgr__close_and_clear_window_ref | Closes a window and clears all references to it in the window manager. Nullifies stored pointers at offsets 0x19c, 0x1a0, 0x1b8, 0xa30, and 0x4f1d4 if they match the given window (or a child via FUN_00a81c90). Adds to close set and calls Hide (vtable+0x38 with 0). |
| 0x00AA5F70 | 706 | CUIWindowMgr__find_window_by_type | Looks up a window by its type ID. Has fast-path hardcoded lookups for common window types (1=main, 3, 0x1b, 0x1c, etc.) that directly return pointers from fixed offsets. For unknown types, falls back to a tree-based search. Window type 600 has special handling when DAT_016f7144 (battle mode) is set. Returns the window pointer or 0 if not found. |
| 0x00AA6440 | 133 | CUIWindowMgr__notify_language_change | Notifies multiple windows of a language/locale change by sending event code 0x17 via their virtual ProcessMessage (vtable+0x94). Targets: windows at offsets 0x1d4, 0x1e8, window type 0x9f, and 0x4f260. |
| 0x00AA64D0 | 379 | CUIWindowMgr__notify_item_data_changed | Notifies windows of item data changes. Sends event 0x17 to the window at 0x2c8, then iterates the collection at 0x4f240 comparing item IDs (offset +0x2e from entries in the list, against param_2+4). When a matching entry is found, sends the event with param_2 data to that window. |
| 0x00AA6650 | 103 | CUIWindowMgr__flush_pending_windows | Processes and clears the pending window list at offset 0x18c. Calls Update (vtable+0x98) on each window in the list, then frees all list nodes and resets the list to empty. Clears count at offset 0x190 (400 decimal). |
| 0x00AA66C0 | 11 | CUIWindowMgr__clear_hover_window | Clears the hover/mouseover window pointer at offset 0x19c to null. |
| 0x00AA66D0 | 1188 | CUIWindowMgr__destroy_all_windows | Destroys all UI windows managed by the window manager. Iterates the window list at 0x17c, calling destructor (vtable+0x2c) and delete on each. Clears the tree collections at 0x9c4 and 0x4f198 (freeing associated 0x40 and 0x18 byte objects). Empties both linked lists at 0x17c and 0x184. Clears the grid collection at 0x4f240. |
| 0x00AA6B80 | 1616 | CUIWindowMgr__rebuild_window_layout | Rebuilds the entire window layout/state. Calls FUN_00aab260 for initial setup, then if main window (0x1c8) doesn't exist, delegates to destroy_all_windows. Otherwise hides popup at 0xa30, iterates all windows checking if they should be kept or destroyed based on type mapping tree. Destroys unneeded windows, clears the tree at 0x194, rebuilds the position/layout tree, and restores key window pointers. |
| 0x00AA71E0 | 31 | CUIWindowMgr__close_popup_window | Closes the popup window stored at offset 0x4f250. Unregisters it from the window manager and sets the pointer to null. |
| 0x00AA7200 | 77 | CUIWindowMgr__remove_from_pending_list | Removes a window (param_2) from the pending window list at offset 0x18c. Searches the linked list for a matching pointer, unlinks it, decrements count at offset 0x190, and frees the node. |
| 0x00AA7250 | 341 | CUIWindowMgr__destroy_single_window | Destroys a single window by pointer. Searches the linked list at 0x17c, removes layout data if option 0x8d is enabled, calls SpriteLayer__remove_child_by_id, then destructor (vtable+0x2c) and delete. Also checks the tree at 0x4f198 and destroys from there if found instead. |
| 0x00AA73B0 | 696 | CUIWindowMgr__render_all_visible_windows | Renders all visible UI windows. First renders floating windows from the tree at 0x4f198. Then iterates the main window list at 0x17c, for each visible window: calls Update, SetViewport, checks clip rect, renders filled background rect, calls main render, renders child overlays (scrollbar/skin), and post-render effects. Special handling for minimap (0xBD), main view (0x400 offset), and roulette window. |
| 0x00AA7670 | 113 | CUIWindowMgr__render_floating_windows | Renders floating/overlay windows stored in the tree at 0x4f198. For each entry, calls SetViewport (vtable+0xa4 with 0), then uses the skin renderer (vtable+0x30 from element[9]) to draw with position and alpha values from the window object. |
| 0x00AA76F0 | 2466 | CUIWindowMgr__render_minimap_ui | Renders the minimap UI elements. Handles dragging of minimap components (regions 1-6) based on mouse state. Draws minimap sprites using stub_005717a0 texture lookups and FUN_00ad5fa0 for rendering. Positions are calculated relative to screen quarter size (sVar4) and third size (sVar2). Components include the map frame, zoom controls, party markers, and navigation elements. |
| 0x00AA80A0 | 98 | CUIWindowMgr__center_loading_window | Centers the loading window (at offset 0x478) on screen. Gets screen dimensions via CRT_init_text_render_singleton and stub calls, calculates centered position based on window dimensions at 0x47c and 0x480, then calls SetRect on the window. Clears flag at 0x4fc. |
| 0x00AA8130 | 778 | CUIWindowMgr__build_save_packet | Builds a save/hotkey packet for the server. Constructs a byte vector with three TLV entries: header (type 25000/0x61A8 with no payload), a data block (type 0x61B2 with 4 bytes from this+0x64), and a terminator (type 0x61A9 with no payload). |
| 0x00AA8660 | 786 | CUIWindowMgr__build_window_layout_save_packet | Builds a save packet containing all window positions/layout data. Creates a byte vector with header (type 20000/0x4E20), then iterates all windows in the list at 0x17c. For each visible window with a valid type (<0x2739), calls GetSaveData (vtable+0xB0) and appends as TLV entry (type = windowType+0x4E84, payload = save data). Ends with terminator (type 0x4E21). |
| 0x00AA8980 | 109 | CUIWindowMgr__reset_ui_state_from_packet | Resets various UI state fields to zero and initializes two values from param_2. Clears offsets 0x5a4, 0x588, 0x568, 0x54c, 0x73c, 0x77c, 0x5bc, 0x5d0. Sets offset 0x758 from param_2[7] and offset 0x3c from param_2[6] (both single bytes). |
| 0x00AA8B20 | 266 | CUIWindowMgr__parse_save_packet | Parses a save packet from a byte vector (param_2). Expects header type 25000 (0x61A8). Iterates TLV entries: type 0x61B2 copies payload to this+0x64, type 0x61A9 is the terminator. Returns 0xFFFFFFFF on empty/invalid packets, otherwise returns the byte offset consumed. |
| 0x00AA8D10 | 537 | CUIWindowMgr__parse_window_layout_packet | Parses a window layout save packet (header type 20000/0x4E20). For each TLV entry, extracts window type (entry type - 0x4E84, valid range 0-399), creates the window via FUN_00a978d0, copies layout data, and sends event 0x7B to restore saved position/size. Returns byte offset consumed or 0xFFFFFFFF on error. |
| 0x00AA8F30 | 11 | CUIWindowMgr__clear_tooltip_window | Clears the tooltip window pointer at offset 0x1b8 to null. |
| 0x00AA8F50 | 114 | CUIWindowMgr__scroll_to_bottom_all | Sends scroll-to-bottom event (0x15) to windows. If a specific chat window exists at 0x3dc or 0x3b0, sends directly to it. Otherwise iterates all visible windows in the main list and sends the event to each visible one. |
| 0x00AA8FD0 | 298 | CUIWindowMgr__save_window_position | Saves a window's position/size by type ID. Finds the window via find_window_by_type, then either updates an existing layout entry with position (x,y at +0x1c,+0x20) and size (w,h at +0x14,+0x18), or creates a new 16-byte layout record if the type is not yet tracked in the layout tree. |
| 0x00AA9100 | 2342 | CUIWindowMgr__dispatch_chat_message | Main chat message dispatcher. Handles multiple message types: type 1/0x13 for normal/party chat (with word-wrap, color, text formatting), type 2 for system messages, type 3 for server announcements (with FUN_00aaa310 call), type 4/5 for guild/whisper, type 6 for chat log save, type 7 for whisper window render, type 8/9 for notification window creation, type 0xA for close, type 0xE for creating tooltip/NPC dialog windows, type 0x9A for broadcasting to all NPC windows. |
| 0x00AA9B30 | 16 | CUIWindowMgr__set_hover_window | Sets the hover/mouseover window pointer at offset 0x19c to the given value. |
| 0x00AA9B40 | 115 | CUIWindowMgr__set_focus_window | Sets the focused/active window at offset 0x1a0. Calls OnLoseFocus (vtable+0x60) on the previously focused window, then sets the new focus. If param_2 is non-null, gets the parent window via vtable+0x18 and calls OnGainFocus (vtable+0x5c). If null, clears focus pointer. |
| 0x00AA9BC0 | 168 | CUIWindowMgr__focus_next_child | Moves focus to the next focusable child widget within the currently focused window. Gets the parent container at offset +0x50 of the focused window's +0x10, iterates child list looking for the next child where IsTabStop (vtable+0x14) returns true. Calls OnLoseFocus/OnGainFocus as appropriate. If no next child found, clears focus to null. |
| 0x00AA9C70 | 173 | CUIWindowMgr__focus_prev_child | Moves focus to the previous focusable child widget (Shift+Tab). Iterates the child list backwards from the focused window's parent container, looking for IsTabStop==true. Calls OnLoseFocus/OnGainFocus as appropriate. |
| 0x00AA9D20 | 158 | CUIWindowMgr__focus_next_sibling | Moves focus to the next sibling window via FUN_00a7ed50 (Tab navigation). If the sibling has IsTabStop set, transfers focus. If no valid sibling found, clears focus. |
| 0x00AA9DC0 | 158 | CUIWindowMgr__focus_prev_sibling | Moves focus to the previous sibling window via FUN_00a7ff30 (Shift+Tab navigation). If the sibling has IsTabStop set, transfers focus. If no valid sibling found, clears focus. |
| 0x00AA9E60 | 41 | CUIWindowMgr__set_topmost_window | Sets the topmost/fullscreen window pointer at offset 0x4f1d4. If param_2 is non-null, walks up the parent chain (via +0x10) to find the root window and stores that. If null, clears the pointer. |
| 0x00AA9E90 | 52 | CUIWindowMgr__close_popup_if_active | Closes the popup window at 0x4f250 if it exists and has an active animation (offset +0xb4 != 0). Sets the window's done flag (+0x30 = 1), unregisters it, and clears the pointer. |
| 0x00AA9ED0 | 150 | CUIWindowMgr__set_loading_screen_size | Sets the loading screen dimensions. Stores width (param_2) at 0x47c and height (param_3) at 0x480. Calculates Y offset at 0x34 from height minus 0x38. Creates CUIElement singleton (DAT_0138d42c) if needed, then calls RemoveAllChildren on it. |
| 0x00AA9F70 | 88 | CUIWindowMgr__deactivate_chat_input | Deactivates chat input when the focused widget matches the main chat window's input fields. Checks if focused window (0x1a0) matches either input at (main_window+0xbc) or (main_window+0xc0). Sends clear text command via vtable+0xd4 to the appropriate field. |
| 0x00AA9FD0 | 119 | CUIWindowMgr__set_loading_texture | Sets or clears the loading screen texture at offset 0x478. If param_2 is 0, destroys the existing texture and clears pointer. If non-null and no texture exists, creates one via stub_00569f60 using dimensions from param_2+0x114/0x118. Then calls SetSource (vtable+0x20) with the texture data. |
| 0x00AAA280 | 70 | CUIWindowMgr__toggle_minimap_visibility | Toggles visibility of all minimap windows (type 0xBD) in the main window list. Iterates all windows and calls Show/Hide (vtable+0x38) with param_2 on any window whose type field at +0x2c equals 0xBD. |
| 0x00AAA2D0 | 53 | CUIWindowMgr__show_hide_windows_by_type | Shows or hides all windows matching a given type ID. Iterates the window list at 0x17c and for each window whose type (field +0x2c) matches param_2, calls Show/Hide (vtable+0x38) with param_3. |
| 0x00AAA310 | 2051 | CUIWindowMgr__toggle_window_by_type | Toggles specific window types on/off with z-order management. Handles type 1 (main chat), 0xF (status window), 0x24 (equipment window with option 0x10E equipment info toggle), 0x2E (party window), 0x111, and 0x114 (special windows). Creates windows via FUN_00a978d0 if not yet open. Manages z-order conflicts for types 0xC and 0x52 by removing and re-inserting. |
| 0x00AAAB20 | 609 | CUIWindowMgr__update_grid_layout | Updates the grid layout for UI elements. Creates a CGridOverlay from screen dimensions and skill bar height, then iterates the collection at 0x4f240 to reposition each window using grid cell positions. Copies string properties and layout data from each element. Cleans up temporary list and grid overlay on completion. |
| 0x00AAADA0 | 76 | CUIWindowMgr__broadcast_timer_event | Broadcasts a timer/tick event (message type 2) to all visible windows. Iterates the window list, checks visibility via vtable+0x8, then sends ProcessMessage(0, 2, param_2, 0, 0, 0) to each visible window. |
| 0x00AAAE60 | 168 | CUIWindowMgr__dispatch_enter_key_to_focused | Dispatches an Enter key event (message 0x12) to the appropriate window. Checks a priority chain of window pointers (offsets 0x1f8, 0x1f0, 0x1f4, 0x214, 0x21c, 0x20c, 0x374, 0x1a0) for the first non-null. If none found, broadcasts to all visible windows in the main list. |
| 0x00AAAF10 | 348 | CUIWindowMgr__send_event_to_grid_window | Finds a window in the grid collection (0x4f240) by its secondary ID (field +0xb8) and sends it event 0x22 with params. Iterates grid windows, copying string data for comparison, and dispatches ProcessMessage(0, 6, 0x22, param_2, param_3, param_4) to the matching window. |
| 0x00AAB0D0 | 307 | CUIWindowMgr__register_window_in_grid | Registers a window in the grid collection at 0x4f240. If the window is already registered (matching pointer found), returns early. If option 0x8D (window snap) is enabled, adds the window's position to the layout tree at 0x194 using CCollisionRect bounds. Creates a new tree node with 0x44-byte allocation for the layout data. |
| 0x00AAB210 | 67 | CUIWindowMgr__update_web_browser_overlays | Iterates the web browser window tree at offset 0x9c4, calling CWebBrowser__update_and_manage_cursor on each entry that has a non-null window pointer at +0x14. Stops early if the tree count at 0x9c8 becomes zero. |
| 0x00AAB260 | 1592 | CUIWindowMgr__build_window_reopen_list | Builds a list of windows that should be reopened after a mode change. Clears the reopen list at 0x4f280, then iterates all windows checking specific type IDs (8, 10, 11, 13, 0x25, 0x141, 0xCD, 0x86, 0x45/0x22) against their corresponding state flags. Also handles special types 0x10F, 0x11E, 0x271E, and 0x12D. Windows qualifying for reopen are added to the list. |
| 0x00AAB8A0 | 62 | CUIWindowMgr__check_and_send_close_event | Checks if the main window at 0x4f174 exists and DAT_016fc55c is false, then tests a condition via stub_005c45d0. If true, sends close event (message 6, subtype 0xCA) to the window. |
| 0x00AAB8E0 | 57 | CUIWindowMgr__broadcast_mouse_position | Broadcasts mouse position (param_2, param_3) to all windows in the main list via their OnMouseMove virtual method (vtable+0x74). Iterates backwards through the window list. |
| 0x00AAD8E0 | 752 | CUIWindowMgr__open_or_find_npc_window | Opens or finds an NPC dialog window by name (param_2 = string). Searches the NPC window tree at 0x500, creates a new tree entry with 0x2c-byte node if not found. Sends event 0x30 to the window. The tree is keyed by the NPC name string. |
| 0x00AB1120 | 38 | CUIWindowMgr__is_chat_input_focused | Returns 1 if the currently focused window (0x1a0) is one of the main chat window's input fields (at main_window+0xBC or +0xC0), 0 otherwise. |
No function here matches that. Search all 47,061 functions instead.