Back to legacygamers.net
WARPGATE

UI Framework

CUIWindowMgr, base controls, layout widgets, UIWidget, UIControl, UIComponent, UITextLabel, CTextPanel, CScrollControl, CListCtrl

Functions 1,268Code 379 KBAddresses 0x007375E0 to 0x00AB1120Group UI
1,268 functions
AddressSizeNameDescription
0x007375E0151CUIElement__constructorConstructor for CUIElement. Sets vtable, initializes fields 7-12 to zero, sets bounding rectangle to (0, 0, screenWidth, screenHeight) using SetRect.
0x00737680427CGridOverlay__ctorConstructor 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.
0x0073794093CUIElement__destructorDestructor for CUIElement. Sets vtable, cleans up internal resources, frees vector of 16-byte elements.
0x007379A0129CGridOverlay__dtorDestructor 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).
0x00737A50114CUIElement__scalar_deleting_destructorScalar deleting destructor for CUIElement. Calls destructor and optionally frees memory (0x34 bytes).
0x00737AD035CGridOverlay__scalar_deleting_dtorScalar deleting destructor for CGridOverlay. Calls destructor and optionally frees memory (0x24 bytes).
0x00737B00570CUIElement__find_free_grid_cellFinds 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.
0x00737D40373CUIElement__clone_grid_cell_listClones 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).
0x00737EC048CUIGrid__GetCellPositionGets 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.
0x00737EF048CUIGrid__GetCellPosition2Gets the pixel position of a grid cell by index (duplicate of GetCellPosition). Same calculation.
0x00737F20186CUIElement__find_cell_at_positionFinds 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.
0x00737FE0227CUIElement__build_free_cell_listBuilds 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).
0x00738D4015thunk_to_CUIControl__clear_fields_and_invalidateThunk that calls CUIControl__set_fields_0x28_0x29_and_invalidate. Used as a callback to clear UI control state.
0x007435C0111CUIElement__ensure_singletonLazy-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.
0x007B38A017CUIScrollList__clear_itemsClears all items from the scroll list by calling UIScrollList__clear_and_remove_children, then resets the flag at offset +0xf8 to 0.
0x007B3910436CUIScrollList__init_with_rowsInitializes a scroll list UI widget with the specified number of rows. Sets up row heights, scroll parameters, and child widgets.
0x007B3C4050CUIScrollList__set_size_and_offsetsSets the scroll list size via virtual calls (resize + layout), then stores custom x/y offset values at offsets +0x1f and +0x20.
0x007B3C80274CUIScrollList__load_item_spriteLoads 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.
0x007B41A033CUIScrollList__get_child_valueReturns the value at offset +0x7c of the child widget at the given index. Returns 0 if index is out of bounds (>= count at +0x7c).
0x007B41D069CUIScrollList__hit_test_rowTests 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.
0x007B444036CUIScrollList__get_child_value_altReturns 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.
0x007B65F0435CUIScrollList__render_scrollbarRenders 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).
0x007B6DB0420CUIScrollList__render_itemsRenders 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.
0x007B78D079CUIScrollList__on_click_select_rowHandles 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.
0x007B7D9057CUIScrollList__on_scroll_verticalHandles 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.
0x007B7E10243CUIScrollList__update_scroll_stateUpdates 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.
0x007B80A041CUIScrollList__on_commandHandles 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.
0x007B8760172CUIScrollList__select_item_by_idSelects 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).
0x007B8810869CUIScrollList__populate_from_treePopulates 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.
0x007DEC20340UIGridItemWnd__constructorConstructor 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.
0x007DEEA095UIGridItemWnd__destructorDestructor for the grid item window. Sets vtable, clears the pointer vector, then calls parent destructor (FUN_008a4e90).
0x007DEF00119UIGridItemWnd__scalar_deleting_destructorScalar deleting destructor for grid item window. Sets vtable, clears vector, calls parent destructor, and optionally frees this (0x118 bytes) if param_2 & 1.
0x007DEF80474UIGridItemWnd__toggle_item_groupToggles 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.
0x007DF160488UIGridItemWnd__layout_itemsLays 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).
0x007DF350113UIGridItemWnd__draw_grid_cellsDraws 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.
0x007DF3D0170UIGridItemWnd__get_item_group_idGets 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.
0x007DF480161UIGridItemWnd__collect_checked_itemsCollects 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.
0x007DF53041UIGridItemWnd__hide_all_itemsHides all child items in the grid by calling FUN_0086af70(1) (set invisible) on each item in the child vector (offsets 0xEC-0xF0).
0x007DF56023UIGridItemWnd__init_and_resizeInitializes child widgets (via FUN_007df580) and resizes the grid window using dimensions from offsets +0x14 and +0x18.
0x007DF580605UIGridItemWnd__create_child_widgetsCreates 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.
0x007DF7E073UIGridItemWnd__serialize_item_listSerializes 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.
0x007DF83025UIGridItemWnd__init_and_resize_2Same as init_and_resize - creates child widgets and resizes using dimensions from offsets +0x14 and +0x18. Duplicate entry point.
0x007DF850709UIGridItemWnd__renderRenders 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).
0x007DFB20125UIGridItemWnd__on_item_clickHandles 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.
0x007DFBA0341UIGridItemWnd__show_item_tooltipShows 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.
0x007DFD1066UIGridItemWnd__on_mouse_wheelHandles 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.
0x007DFD60228UIGridItemWnd__hit_test_itemHit 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.
0x007DFE50184UIGridItemWnd__update_item_propertyUpdates 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.
0x007DFF10162UIGridItemWnd__update_scrollbarUpdates 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.
0x007DFFC0156UIGridItemWnd__position_child_widgetsPositions 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.
0x007E0060294UIGridItemWnd__resize_and_layoutResizes 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.
0x007E019070UIGridItemWnd__send_confirm_packetSends 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.
0x007E01E0112UIGridItemWnd__OnMessageMessage 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.
0x007E04B0509UIGridItemWnd__confirm_selectionConfirms 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.
0x007E06B0272UIGridItemWnd__populate_itemsPopulates 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.
0x007E07C0305UIGridItemWnd__show_item_tooltip_2Shows 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.
0x007E090039UIGridItemWnd__scroll_pageScrolls 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.
0x0081629099UIWidget_00816290__scalar_deleting_dtorScalar deleting destructor; sets vtable 0112be24, size 0x8c, calls base dtor 00a79e90
0x008392C078CScrollControl__RecalcLayoutRecalculates 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.
0x008394201081CScrollControl__SearchAndHighlightSearches 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.
0x008398601222CScrollControl__FormatRichTextFormats 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.
0x00839D60401CScrollControl__AppendFormattedLineFactory 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.
0x00839FA0150CScrollControl__MeasureTextMeasures 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.
0x0083A04083CScrollControl__DecrementXDecrements the X scroll position by 1. If position reaches 0, sets dirty flag at offset 0x48. Cleans up temporary string.
0x0083A0A088CScrollControl__IncrementXIncrements the X scroll position by 1. If position was 0, sets dirty flag at offset 0x48. Cleans up temporary string.
0x0083A100122CScrollControl__PageUpPages 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.
0x0083A180579CScrollControl__ParseFontTagAttributesParses 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.
0x0083A3D083CScrollControl__DecrementYDecrements the Y scroll position by 1. If position reaches 0, sets dirty flag at offset 0x48. Cleans up temporary string.
0x0083A43088CScrollControl__IncrementYIncrements the Y scroll position by 1. If position was 0, sets dirty flag at offset 0x48. Cleans up temporary string.
0x0083A490345CScrollControl__CreateAnimatedSpriteElementCreates 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.
0x0083A5F0551CScrollControl__CreateTextWidgetFromStringsCreates 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.
0x0083A820254CScrollControl__ProcessCommandProcesses 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.
0x0083A920275CScrollControl__CreateTextStringElementCreates 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.
0x0083AA40330CScrollControl__SetItemEntryAppends 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.
0x0083AB90345CScrollControl__AddHyperlinkAdds 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.
0x0083ACF0556CScrollControl__CreateStyledTextElementCreates 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.
0x0083AF2046CScrollControl__IteratePagesIterates 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.
0x0083AF50324CScrollControl__RenderSkillRequirementsRenders 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.
0x0083B0A0165CScrollControl__DrawBgImageDraws 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.
0x0083B22037CScrollControl__RedrawChildRedraws the child widget at offset 0x10, offsetting the draw position by the scroll control's own position (offsets 0x1C and 0x20).
0x0083B25037CScrollControl__ForwardMouseDownForwards mouse down event to child widget at offset 0x10, adjusting coordinates by scroll position (0x1C, 0x20). Calls vtable+0x64.
0x0083B28037CScrollControl__ForwardMouseMoveForwards mouse move event to child widget at offset 0x10, adjusting coordinates by scroll position. Calls vtable+0x7C.
0x0083B2B0325CScrollControl__ShowItemTooltipShows 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.
0x0083B40037CScrollControl__ForwardMouseUpForwards mouse up event to child widget at offset 0x10, adjusting coordinates by scroll position. Calls vtable+0x6C.
0x0083B43037CScrollControl__ForwardRightDownForwards right mouse down event to child widget at offset 0x10. Calls vtable+0x78.
0x0083B460231CScrollControl__UpdateAnimationFrameUpdates 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.
0x0083B550217CScrollControl__ShowItemInfoWindowOpens 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.
0x0083B63040CScrollControl__ForwardDoubleClickForwards double-click event to child widget at offset 0x10. Calls vtable+0x80.
0x0083B66040CScrollControl__ForwardRightDblClickForwards right double-click event to child widget at offset 0x10. Calls vtable+0x84.
0x0083B69023UIControl__invoke_parent_redrawCalls parent virtual method at offset 0x8c if parent pointer at +0x10 is non-null
0x0083B6B0314CScrollControl__ProcessClickTargetProcesses 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.
0x0083B7F0754CScrollControl__OnMessageHandles 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.
0x0083BD80617CScrollControl__ParseFormatTagParses embedded format tags using regex patterns. First tries matching emoticon tags like &lt;e=(\d{1,3})...&gt;, then tries item link tags like &lt;e=(\d{1,3})\s+(\d{1,3})...&gt;. On match, creates a hyperlink entry (type 0x236) and advances the parse position past the tag.
0x0083BFF0982CScrollControl__ParseAndBuildContentParses HTML-like formatting tags from the content string. Handles &lt;FONT...&gt; (pushes font attributes), &lt;/FONT&gt; (pops font), &lt;B&gt;/&lt;/B&gt; (bold toggle via offset 0x10), &lt;I&gt;/&lt;/I&gt; (italic toggle via offset 0x14). Returns updated parse position after the closing '&gt;'.
0x0083C3D0706CScrollControl__MatchAndDispatchCommandMatches 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.
0x0083C6A0489CScrollControl__ParseItemImageTagParses inline item image tags matching regex &lt;i=(\d{1,7})...&gt;. 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.
0x0083C8901294CScrollControl__ParseItemIdEmbedParses 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.
0x0083CDA0572CScrollControl__ProcessCharacterProcesses 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.
0x0083D090341CScrollControl__ParseContentAtOffsetMain 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.
0x0083D1F0357CScrollControl__LayoutAndPositionElementsLays 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.
0x0083D360763CScrollControl__ParseHyperlinkMarkupParses 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.
0x0083D660993CScrollControl__SetContentSets 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.
0x0083DA50229CScrollControl__SetTextAndStyleSets 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.
0x0084A97033UIWidget__set_position_and_refreshSets widget position (x at offset 0x1c, y-4 at offset 0x20) then registers in the UI window grid.
0x0084EF70149UIProgressBarWidget__ctor_with_stringsConstructor 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.
0x0084F860625UITextWidget__copy_ctorCopy 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.
0x0084FAE0474UITextWidget__default_ctorDefault 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.
0x0084FE60104UIProgressBarWidget__ctorConstructor for UIProgressBarWidget. Calls base UIWidget ctor, sets vtable, stores progress bar type/variant param, and sets widget type ID to 0xBD at offset 0xb.
0x008509B067UIWidget__delete_child_node_12byteDeletes 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.
0x00850A0067UIWidget__delete_child_node_20byteDeletes 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.
0x00850AA0104UIWidget__free_aligned_and_delete_nodeFrees 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.
0x00850CD068UIWidget__dtor_string_fieldSimple destructor helper that calls STL_string_dtor on a single string field. Used as a cleanup function for widgets with one string member.
0x00850F8086UIWidget__dtor_two_string_fieldsDestructor helper that destroys two std::string fields. Calls STL_string_dtor twice in sequence. Used for cleanup of widgets with two string members.
0x00850FE065UIWidget__dtor_one_string_fieldDestructor 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.
0x00852520144UIProgressBarWidget__scalar_deleting_dtorScalar deleting destructor for UIProgressBarWidget. Sets vtable, destroys 2 std::string members, calls base widget dtor. Frees 0xC4 bytes if param_2 & 1.
0x00852B2099UIProgressBarWidget__scalar_del_dtor2Scalar deleting destructor variant for UIProgressBarWidget. Sets vtable, calls base widget dtor. Frees 0x8C bytes if param_2 & 1.
0x0085381038UIWidget__measure_text_widthMeasures 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.
0x008538401617UITextWidget__process_embedded_linksProcesses 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.
0x008540C0104UITextWidget__clear_text_linesClears 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).
0x00854240103UITextWidget__set_text_if_fitsSets 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.
0x008542B0433UITextWidget__clear_text_lines_with_vectorsClears 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.
0x008544703129UITextWidget__process_item_linkProcesses 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.
0x008550B043UITextWidget__set_scroll_positionSets 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.
0x008550E0112UITextWidget__auto_scroll_to_viewAutomatically 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.
0x0085515052UITextWidget__reset_scroll_to_maxResets 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.
0x0085519020UIWidget__forward_virtual_call_0x28Forwards a virtual call to offset 0x28 on the child widget at offset 0x10 if it exists. Simple delegation pattern.
0x00856EB091UITextWidget__render_cursor_blinkRenders 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.
0x00856F10153UITextWidget__position_text_line_objectsPositions 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).
0x00857040140UIWidget__draw_selection_highlightDraws 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.
0x008574201848UITextWidget__parse_item_link_encoded_stringParses 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.
0x00857B602149UITextWidget__find_link_at_positionSearches 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.
0x008583D01120UITextWidget__render_single_lineRenders a single-line text widget. Handles text alignment, shadow rendering, and color formatting. Supports both simple and gradient text colors.
0x0085883093UIWidget__clamp_and_position_childPositions 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.
0x00859050138UIWidget__check_overlapChecks 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.
0x008590E0134UITextWidget__contains_item_linkChecks 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.
0x00859170134UITextWidget__contains_chat_linkChecks 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.
0x00859220577UITextWidget__build_item_link_tooltipBuilds 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.
0x00859470382UITextWidget__setup_item_link_displaySets 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.
0x008595F03996UITextWidget__parse_and_create_item_link_widgetsParses 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.
0x0085A5D0664UITextWidget__build_tagged_textBuilds 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.
0x0085BDE01643UIWidget__draw_stateful_background_and_textDraws 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.
0x0085C450154UIWidget__draw_state_sprite_with_textDraws 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.
0x0085C4F0413UIWidget__draw_bordered_contentDraws 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.
0x0085C690550UIWidget__draw_frame_bordersDraws 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.
0x0085C9A0511UIWidget__draw_colored_buttonDraws 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.
0x0085CBF0165UIWidget__draw_skinned_contentDraws 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.
0x0085CCA0315UIWidget__draw_color_bordered_rectDraws 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).
0x0085CE40322UIWidget__draw_conditional_level_spriteDraws 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.
0x0085D150155UIWidget__draw_3d_border_with_checkboxDraws 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.
0x0085D1F0614UIWidget__draw_icon_and_text_entriesDraws 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.
0x0085D470472UIWidget__draw_button_with_textDraws 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).
0x0085D650103UIWidget__draw_header_barDraws 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.
0x0085DA9093UIWidget__draw_state_spriteDraws 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.
0x0085DFC0166UIWidget__draw_indexed_spriteDraws 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).
0x0085E080500UIWidget__draw_colored_text_listDraws 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.
0x0085E280236UIWidget__draw_icon_with_text_entriesDraws 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.
0x0085EB5053UIWidget__on_mouse_move_delegateDelegates 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.
0x0085EE1033UIWidget__forward_mouse_down_to_parentForwards mouse down event to parent widget (field 0x10) via vtable+0x64, adjusting coordinates by widget position (0x1C, 0x20).
0x0085EE4033UIWidget__forward_mouse_down_to_parent_altAlternate mouse down forwarder to parent widget via vtable+0x64 with adjusted coordinates. Identical code to forward_mouse_down_to_parent.
0x0085EED0243UIWidget__on_mouse_up_with_actionMouse 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.
0x0085EFD046UIWidget__on_lose_focusUI widget lose focus handler. Clears focus state and notifies parent when this widget loses input focus.
0x0085F00033UIWidget__forward_double_click_to_parentForwards double-click event to parent widget (field 0x10) via vtable+0x7C, adjusting coordinates by widget position offset (0x1C, 0x20).
0x0085F03033UIWidget__forward_double_click_to_parent_altAlternate double-click forwarder to parent via vtable+0x7C with adjusted coordinates. Identical code to forward_double_click_to_parent.
0x0085F060252UIWidget__on_mouse_up_button_actionMouse 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.
0x0085F180398UIWidget__on_mouse_over_with_tooltipMouse 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).
0x0085F310127UIWidget__on_mouse_over_show_tooltipMouse 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).
0x0085F390107UIWidget__on_mouse_over_show_tooltip_altMouse 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).
0x0085F400101UIWidget__on_mouse_over_show_tooltip_bMouse over handler that shows tooltip. Calls vtable+0x6C then shows tooltip from field 0x28 with offset (10, -20) if tooltip flag (0x2C) is set.
0x0085F48051UIWidget__on_mouse_over_forward_to_childMouse 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).
0x0085F4C050UIWidget__on_mouse_over_forward_to_rootMouse over handler that runs the tooltip/Lua handler then forwards to root parent widget via vtable+0x70 with adjusted coordinates.
0x0085F500114UIWidget__on_mouse_leave_with_tooltipMouse 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.
0x0085F58093UIWidget__on_mouse_leave_show_tooltipShows 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.
0x0085F600196UIWidget__on_mouse_move_update_hoverMouse 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.
0x0085F6D0145UIWidget__on_drag_update_positionDrag 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.
0x0085F7A0207UIWidget__on_mouse_move_hover_and_forwardMouse 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.
0x0085F87039UIWidget__forward_mouse_over_to_rootForwards mouse over event to root parent widget via vtable+0x6C, adjusting coordinates by widget position (0x1C, 0x20).
0x0085F8A033UIWidget__forward_mouse_over_to_parentForwards mouse over event to parent widget (field 0x10) via vtable+0x6C, adjusting coordinates by widget position (0x1C, 0x20).
0x0085F8D044UIWidget__forward_mouse_leave_and_overForwards mouse leave (vtable+0x70) to self, then forwards mouse over (vtable+0x6C) to parent widget with adjusted coordinates.
0x0085F90068UIWidget__on_mouse_out_reset_stateMouse 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).
0x0085F95035UIWidget__on_right_click_set_cursorRight-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.
0x0085F98061UIWidget__on_hover_set_cursor_stateHover 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).
0x0085F9E061UIWidget__on_hover_set_cursor_state_altAlternate hover cursor state handler. Identical to on_hover_set_cursor_state - sets cursor mode 2 if point is inside bounds, mode 0 if outside.
0x0085FA2094UIWidget__on_mouse_move_set_cursor_stateMouse 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).
0x0085FA8033UIWidget__forward_drag_to_parentForwards drag event to parent widget (field 0x10) via vtable+0x78, adjusting coordinates by widget position (0x1C, 0x20).
0x0085FAB033UIWidget__forward_drag_to_parent_altAlternate drag event forwarder to parent via vtable+0x78 with adjusted coordinates. Identical code to forward_drag_to_parent.
0x0085FAF0415UIWidget__on_update_bgm_resourceUpdate 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.
0x0085FC90156UIWidget__check_resource_loaded_and_refreshChecks 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).
0x0085FD30237UIWidget__sync_position_to_map_surfaceSyncs 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.
0x0085FE6063UIWidget__notify_parent_style_changeNotifies 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.
0x0085FEA036UIWidget__move_to_parent_offset_80Dispatches to parent virtual function 0x80 with this widget's position (0x1C, 0x20) plus the provided offsets.
0x0085FED036UIWidget__move_to_parent_offset_80_v2Dispatches to parent virtual function 0x80 with this widget's position (0x1C, 0x20) plus the provided offsets. Variant 2.
0x0085FF0036UIWidget__move_to_parent_offset_84Dispatches to parent virtual function 0x84 with this widget's position (0x1C, 0x20) plus the provided offsets.
0x0085FF3036UIWidget__move_to_parent_offset_84_v2Dispatches to parent virtual function 0x84 with this widget's position (0x1C, 0x20) plus the provided offsets. Variant 2.
0x0085FF6060UIWidget__notify_scroll_stepSends 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.
0x0085FFA023UIWidget__dispatch_to_parent_8cDispatches to parent widget's virtual function 0x8c if parent (at offset 0x10) is not null.
0x0085FFC047UIControl__notify_scroll_directionSends scroll up (0x12) or scroll down (0x13) notification based on direction parameter
0x0085FFF026UIWidget__dispatch_to_scrollbar_8cDispatches to the scrollbar widget (at offset 0x114) via its virtual function 0x8c, if the scrollbar exists.
0x0086001015UIWidget__dispatch_to_parent_8c_uncheckedDispatches to parent widget's virtual function 0x8c unconditionally (no null check on parent pointer).
0x0086002015UIWidget__dispatch_to_parent_8c_v2Dispatches to parent widget's virtual function 0x8c unconditionally (no null check). Variant 2 for a different widget class.
0x0086003068UIWidget__wrap_text_to_widthWraps 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.
0x008632D040UIWidget__on_resize_store_sizeHandles 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.
0x00863BF0114UIWidget__handle_click_focus_nextHandles 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.
0x00864140114UIWidget__handle_click_focus_next_altHandles 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.
0x008641C02837UIWidget__default_event_handlerDefault event handler for UI widgets. Handles common events like focus, key input, mouse clicks, resize notifications. Delegates to parent when appropriate.
0x00864D6065UIProgressBarWidget__handle_eventEvent 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.
0x00864DB0795UITextWidget__handle_text_eventHandles 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.
0x0086518029UIWidget__handle_set_active_indexSimple event handler that sets the active index (offset 0xC) on event 0xD and invalidates the widget. Returns 0.
0x0086520029UIWidget__handle_set_active_index_altSame as UIWidget__handle_set_active_index. Sets active index on event 0xD and invalidates. Used by a different widget class.
0x0086536024UIWidget__handle_set_flagSimple event handler that stores param_4 into field 0xD4 when receiving event 0x22 (set value). Returns 0.
0x0086538044UIWidget__set_text_from_cstrSets 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.
0x008656B044UIWidget__set_text_from_cstr_altSets 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.
0x0086597037UITextWidget__set_color_and_shadow_valueSets 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.
0x008659A0662UITextWidget__set_text_with_resource_resolveSets 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.
0x00865CE043UITextWidget__set_font_paramsSets 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.
0x00865D1027UITextWidget__set_font_size_enumSets 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.
0x00865DD042UITextWidget__set_text_color_and_invalidateSets text color (R, G, B) at offsets 0x24, 0x25, 0x26 and invalidates the widget for redraw.
0x00865E0034UIWidget__set_position_xyzSets the 3D position of a widget. Stores x at 0x9C, y at 0xA0, z at 0xA4.
0x00865E30114UITextWidget__set_all_line_colorsSets 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.
0x00865EB03880UITextWidget__set_multiline_content_with_searchSets 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.
0x00866DE0531UITextWidget__set_single_line_entrySets 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.
0x008670001843UITextWidget__set_dual_line_entrySets 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.
0x00867740535UITextWidget__set_single_line_entry_altSets 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.
0x008679F016UIWidget__set_field_0x11cSimple setter that stores param_2 at offset 0x11C.
0x00867AA044UIWidget__set_text_from_cstr_alt2Sets text from a C-string. Calculates length, assigns via STL_lib_func_004fa8f0. Yet another variant used by a different widget field.
0x00867AD0220UITextWidget__set_sprite_name_with_extensionsSets 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.
0x00867BB021UIWidget__set_index_and_invalidateSets the active index (offset 0xC) and invalidates the widget for redraw.
0x00867BD0193UITextWidget__set_text_with_wrap_checkSets 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.
0x00867CA0206UITextWidget__set_text_with_auto_resizeSets 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.
0x00867D70165UITextWidget__set_text_force_resizeSets 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.
0x00867E20154UITextWidget__set_text_expand_onlySets 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.
0x0086818051UITextWidget__set_text_and_invalidateSets text from a C-string and invalidates the widget. Assigns the string via STL_lib_func_004fa8f0 and calls virtual invalidate (0x98).
0x008681C0105UITextWidget__set_text_pairSets the same text string to two different string fields, stores param_3 at offset 0x23, clears 0x29, and invalidates the widget.
0x0086857052UITextWidget__set_color_and_shadowSets text color (R,G,B packed into offset 0x2A) and shadow color (param_5 at offset 0x2B), then invalidates the widget.
0x008685B039UIWidget__set_fields_1f_20_21_invalidateSets three fields (0x1F, 0x20, 0x21) from params and invalidates the widget.
0x00868750154UITextWidget__set_text_auto_widthSets 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.
0x008687F0142UITextWidget__set_numeric_textSets 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.
0x00868880882UITextWidget__word_wrap_textPerforms 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.
0x00868C001491UITextWidget__word_wrap_and_layoutPerforms word wrapping with full layout calculation. Extended version of word_wrap_text that also handles embedded objects, text styling, and multi-line positioning.
0x008691E0167UITextWidget__set_text_with_wrapSets 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.
0x00869290242UITextWidget__set_text_centeredSets 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.
0x00869390535UITextWidget__add_or_update_styled_text_entryAdds 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.
0x0086970044UIWidget__assign_cstr_to_fieldAssigns a C-string to a std::string field. Calculates length and calls STL_lib_func_004fa8f0.
0x0086973047UIWidget__assign_cstr_safeSafely assigns a C-string to a std::string field. Null-checks param_1 before computing length and calling STL_lib_func_004fa8f0.
0x0086976047UIWidget__assign_cstr_safe_altSafely assigns a C-string to a std::string field (alternate). Same null-check pattern as UIWidget__assign_cstr_safe.
0x0086979047UIWidget__assign_cstr_safe_alt2Safely assigns a C-string to a std::string field (alternate 2). Same null-check pattern.
0x008697C025UIWidget__set_offset_ac_b0Sets two values at offsets 0xAC and 0xB0 on a widget. Used for position or size overrides.
0x008697E016UIWidget__set_field_0xb4Simple setter for field at offset 0xB4.
0x008697F016UIWidget__set_field_0x9cSimple setter for field at offset 0x9C.
0x0086980016UIWidget__set_flag_0x138Sets a single byte flag at offset 0x138.
0x008698101378UITextWidget__layout_text_with_linksLays 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.
0x00869D80158UIWidget__reposition_if_overlappingRepositions 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.
0x00869E30549UITextWidget__navigate_input_history_nextNavigates 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.
0x0086A0601255UITextWidget__add_or_find_input_history_entryAdds 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).
0x0086A550130UIWidget__position_selection_start_markerPositions 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.
0x0086A5E0130UIWidget__position_selection_end_markerPositions the text selection end marker (global DAT_01457a2c). Same logic as position_selection_start_marker but for the end-of-selection handle.
0x0086AF7042UIWidget__set_enabled_stateSets 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.
0x0086AFA0116UIListItem__ctor_with_idConstructor 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.
0x0086C120103UIWidgetC__ctorUIWidgetC 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.
0x0086C240103UIWidget__ctor_0086c240Constructs UI widget with vtable 0x01134488, initializes two flags to 0
0x0086C2B093UIWidget__ctor_0086c2b0Constructs UI widget with vtable 0x011342D8, initializes flag at offset 0x1F to 0
0x0086C4C0103UIWidget__ctor_0086c4c0Constructs UI widget with vtable 0x01136BEC, index field set to -1
0x0086C7B0114UIListItem__ctorConstructs list item widget, calls base ctor 0x0086c8d0, sets RGB fields to 0xFF
0x0086C830147UIListItemEx__ctorConstructs extended list item, inherits from UIListItem, adds enabled=1 and type=0xC fields
0x0086E3A0104UIProgressBar__ctorConstructs progress bar widget from UIThemeColors, max value=100
0x0086E7D0106UIWidgetTypeB__ctorConstructor for UIWidgetTypeB. Calls CEffect__ctor base, sets UIWidgetTypeB vtable, zeroes 2 state fields at offsets 0x21-0x22.
0x0086EC10219UITextWidget__ctorConstructs text widget with SSO string, font size 12, text color 0xFFFFFF, bold/italic flags
0x0086F2B0144UIWidget__init_linked_list_0x180Initializes linked list with 0xC byte sentinel at object offset 0x180, zeroes related fields
0x0086F52033UIWidget__release_child_at_9Releases child widget at offset 9 via vtable call, sets pointer to null
0x0086F8C092UIWidget__release_child_at_9_0086f8c0SEH wrapper: releases child widget at offset 9 via vtable call, sets to null
0x0086FFA071UIWidget__dtor_0086ffa0Destructor for widget vtable 0x01134488: resets vtable then calls base cleanup
0x0086FFF071UIWidget__dtor_0086fff0Destructor for widget vtable 0x011342D8: resets vtable then calls base cleanup
0x0087023071UIWidget__dtor_00870230Destructor for widget vtable 0x01136BEC: resets vtable then calls base cleanup
0x0087042071UIListItem__dtorDestructor for list item: resets vtable, calls list base dtor
0x0087047084UIListItemEx__dtorDestructor for extended list item: resets 2 vtables, calls list base dtor
0x0087196071UIWidgetTypeB__dtorSimple destructor for UIWidgetTypeB. Sets vtable, calls base UI destructor CEffect__dtor.
0x00872070164UIWidget__clone_childClones 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.
0x0087236099UIWidgetC__scalar_deleting_dtorScalar deleting destructor for UI widget (0x84 bytes). Sets vtable, calls base destructor, optionally frees memory if param_2 bit 0 is set.
0x008723D0112UIWidgetD__scalar_deleting_dtorScalar deleting destructor for UI widget (0x9C bytes, dual inheritance). Sets two vtable pointers, calls base destructor, optionally frees memory.
0x0087244099UIWidgetE__scalar_deleting_dtorScalar deleting destructor for UI widget (0x84 bytes). Sets vtable, calls base destructor, optionally frees memory.
0x008724B099UIWidgetF__scalar_deleting_dtorScalar deleting destructor for UI widget (0x80 bytes). Sets vtable, calls base destructor, optionally frees memory.
0x008726C099UIWidgetG__scalar_deleting_dtorScalar deleting destructor for UI widget (0x84 bytes). Sets vtable, calls base dtor, optionally frees.
0x008728E0112UIListItemEx__scalar_dtorScalar deleting destructor for extended list item (0x138 bytes), calls UIListBase__dtor
0x00872A70112UIWidgetH__scalar_deleting_dtorScalar deleting destructor for UI widget (0xB8 bytes, dual inheritance). Sets two vtables, calls base dtor, optionally frees.
0x00872AE099UIWidgetI__scalar_deleting_dtorScalar deleting destructor for UI widget (0xA8 bytes). Sets vtable, calls base dtor, optionally frees.
0x0087305099UIWidgetJ__scalar_deleting_dtorScalar deleting destructor for UI widget (0x9C bytes). Sets vtable, calls base dtor, optionally frees.
0x008730C099UIWidgetK__scalar_deleting_dtorScalar deleting destructor for UI widget (0x90 bytes). Sets vtable, calls base dtor, optionally frees.
0x00873330112UIWidgetL__scalar_deleting_dtorScalar deleting destructor for UI widget (0xAC bytes, dual inheritance). Sets 2 vtables, calls base dtor, optionally frees.
0x0087419099UIWidgetTypeB__scalar_deleting_dtorScalar deleting destructor for UIWidgetTypeB (0x8C bytes). Sets vtable, calls base dtor, optionally frees.
0x00874A40933UIWidget__create_formatted_entryCreates 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.
0x00874E50640UIWidget__add_wrapped_text_linesAdds 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.
0x008750D0544UIWidget__add_text_with_linksAdds 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.
0x00879300137UITabCtrl__select_tabSelects 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.
0x008793901164UITextWidget__process_item_link_tagsProcesses 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.
0x0087A3C0347UITabCtrl__remove_tab_at_indexRemoves 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.
0x0087A520120UITabCtrl__clear_all_tabsClears 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.
0x0087B4B069UIWidget__init_left_alignedInitializes 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.
0x0087B50069UIWidget__init_right_alignedInitializes a UI widget with right alignment (mode=1). Same as init_left_aligned but sets this+0xB4 = 1.
0x0087B55069UIWidget__init_with_alignmentInitializes 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.
0x0087B5A069UIWidget__init_with_mode_aInitializes a UI widget with specified display mode from param_6 at this+0xB0. Same init pattern: base init, position, size via virtual methods.
0x0087B5F069UIWidget__init_with_mode_bInitializes a UI widget with specified display mode from param_6 at this+0xB0. Identical to init_with_mode_a - separate template instantiation.
0x0087B64069UIWidget__init_with_alignment_v2Initializes UI widget with alignment mode param_6 at this+0xB4. Standard init pattern: base init, position, size via virtuals.
0x0087B69069UIWidget__init_with_mode_cInitializes UI widget with display mode param_6 at this+0xB0. Standard init pattern: base init, position, size via virtuals.
0x0087B6E069UIWidget__init_with_mode_dInitializes UI widget with display mode param_6 at this+0xB0. Same as init_with_mode_c - separate instantiation.
0x0087B73079UIWidget__init_with_alignment_row21Initializes UI widget with alignment, then sets row height to 21 (0x15) at this+0xB8. Sets alignment from param_6 at this+0xB4.
0x0087B78069UIWidget__init_with_alignment_v3Initializes UI widget with alignment param_6 at this+0xB4. Standard init pattern.
0x0087B840604UIProgressBar__initInitializes 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.
0x0087F010436UITabCtrl__draw_horizontal_tabDraws 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.
0x0087F1D0608UITabCtrl__draw_tab_borderDraws 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.
0x0087F610446UITabCtrl__draw_vertical_tabDraws 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).
0x0087F7D01427UITabCtrl__parse_format_stringParses 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.
0x0087FD702149UITabCtrl__strip_format_tags_from_stringStrips 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.
0x0088066057UITabCtrl__hit_test_tab_from_yHit tests y coordinate against vertical tab positions. Returns tab index from y/tabHeight + scrollOffset. Returns -1 if out of bounds.
0x008806A057UITabCtrl__hit_test_tab_from_y_v2Identical to hit_test_tab_from_y. Hit tests y coordinate against vertical tab positions. Returns tab index or -1 if invalid.
0x008806E0282UITabCtrl__hit_test_regionHit 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.
0x00880800280UITabCtrl__find_tab_index_by_nameFinds 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.
0x00880920123UITabCtrl__calc_tab_index_from_coordCalculates 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.
0x008809A0216UITabCtrl__get_entity_display_valueGets 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.
0x00880AB036UITabCtrl__calc_cumulative_tab_offsetCalculates cumulative tab offset by summing tab sizes from array at +0xcc up to given index. Each tab size is (size-1) accumulated.
0x00880AE051UITabCtrl__get_content_area_sizeCalculates content area size. Takes width or height based on orientation mode, subtracts 2x margin (+0x28) and virtual method +0xd4 result. Returns available content pixels.
0x00880B2030UITabCtrl__get_tab_countReturns the number of tabs. Computed as (end - begin) / 0x18 from the tab data vector at +0xb4/+0xb8.
0x00880B40101UITabCtrl__find_tab_at_positionFinds 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.
0x00880BB075UITabCtrl__get_tab_label_stringGets tab label string by index. Accesses vector at +0xf4, validates index bounds, returns string pointer from 24-byte element (checks SSO vs heap allocation).
0x00880C0065UITabCtrl__get_tab_header_sizeGets tab header pixel size. Multiplies content area size by (tabCount-1)/totalTabs ratio. Used for proportional tab sizing within available space.
0x00880CC0186UITabCtrl__get_selected_tab_textGets text of currently selected tab. Reads selected index from +0x94, validates against child control's item count, copies string via STL string construct.
0x00880D90459UITabCtrl__serialize_tab_data_to_bufferSerializes 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.
0x00880F60141UITabCtrl__calc_total_serialized_sizeCalculates 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.
0x0088108051UITabCtrl__set_title_textSets title text on tab control. Copies string to internal field at +0x128, sets value at +0x158.
0x008810C067UIWidget__close_and_clear_focusCloses 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.
0x008816B042UIWidget__notify_parent_on_closeNotifies 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.
0x008852409thunk_to_UIWidget__create_two_sprite_children_00885240Wrapper that calls UIWidget__create_two_sprite_children and returns
0x00886840327UIWidget__create_two_sprite_childrenCreates 2 sprite widget children (0xB4 bytes each) at offsets 0xAC and 0xB0, configures positions
0x008872909thunk_to_UIWidget__create_two_sprite_children_00887290Wrapper that calls UIWidget__create_two_sprite_children and returns
0x008872A09thunk_to_UIWidget__create_two_sprite_children_008872a0Wrapper that calls UIWidget__create_two_sprite_children and returns
0x008873F073UIWidget__draw_border_rectDraws 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.
0x00887440446UIProgressBar__render_with_percentage_textRenders 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.
0x00887600388UIProgressBar__render_with_color_pickerRenders 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.
0x008877901297UIProgressBar__render_segmentedRenders 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.
0x00887CB01536UIProgressBar__render_segmented_with_textRenders 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.
0x008882C01242UIProgressBar__render_segmented_simpleRenders 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.
0x008887A01130UIProgressBar__render_segmented_no_bgRenders 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.
0x0088AC8099UIWidget__render_texture_with_bg_colorRenders 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).
0x0088AD00442UIProgressBar__render_exp_barRenders 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.
0x0088B4A057UIWidget__draw_bottom_spriteDraws a sprite at bottom of widget. Loads sprite from path "011380b8", positions it at y = height - spriteHeight. Used for bottom decorative border.
0x0088C630171UIProgressBar__render_with_thresholdRenders 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.
0x0088C6E0110UIWidget__render_filled_rect_with_borderRenders 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).
0x0088C750544UIProgressBar__render_dual_barRenders 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.
0x0088C970469UIProgressBar__render_tiled_with_fillRenders 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.
0x0088CB50795UIProgressBar__render_multi_bar_callbacksRenders 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).
0x0088D560347UIWidget__render_tiled_textureRenders 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.
0x0088D6C0140UIProgressBar__render_simple_fillRenders 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.
0x0088F100181UIWidget__render_sprite_from_pathRenders 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.
0x0088F450363UIWidget__render_text_with_spriteRenders 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).
0x0088F6C0334UITabCtrl__render_tabsRenders 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.
0x0088FFB0194UIWidget__process_item_desc_and_renderProcesses 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.
0x008900D0114UITabCtrl__fire_tab_double_click_eventFires tab double-click event. Validates selected tab index at +0x94, gets tab label string, sends event (type=6, code=0x15b) to parent widget.
0x008901E065UITabCtrl__fire_tab_select_eventFires 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.
0x0089026053UIWidget__on_scroll_deltaHandles 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.
0x00890330199UITabCtrl__show_inline_edit_for_tabShows 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.
0x0089048050UIWidget__fire_event_0xcc_to_skill_windowFires 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.
0x00890940169UITabCtrl__on_tab_clickedHandles 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.
0x00890A0037UIWidget__forward_scroll_to_parentForwards scroll event to parent widget. Adjusts coordinates by own position (+0x1c, +0x20), calls parent's virtual +0x64 (scroll handler).
0x00891240263UIProgressBar__render_percentage_textRenders 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.
0x00891350643UIWidget__render_item_tooltip_textRenders 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.
0x0089181093UIWidget__draw_label_textDraws label text at computed offset (-20) if string length is non-zero
0x0089187093UIWidget__show_tooltip_at_cursorShows 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.
0x008918D0315UIProgressBar__render_exp_percentage_textRenders 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.
0x00891A1044UITabCtrl__on_mouse_move_highlight_tabTab control mouse move handler. Calculates tab under cursor, updates +0x1f highlight. Only redraws if highlight changed.
0x00891A4051UIWidget__fire_event_0x93_to_window_0x114Fires event 0x93 with data from +0xf8 to window 0x114 (auction window).
0x00891A80316UIWidget__check_and_update_sprite_pathChecks 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.
0x00891E40201UIWidget__render_item_name_tooltipRenders 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.
0x00891F20212UITabCtrl__show_tab_tooltipShows 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.
0x0089200050UIWidget__on_mouse_drag_forward_to_parentMouse 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.
0x008923D0113UIWidget__handle_drag_thresholdHandles 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.
0x0089252051UIWidget__set_hover_flag_from_boundsSets hover flag +0xac based on whether point (x,y) is within widget bounds. Sets 1 if inside, 0 if outside.
0x0089257035UIWidget__set_cursor_styleSets cursor style based on mode. If mode +0x80 is 0, shows default cursor (A81D60). Otherwise shows custom cursor mode 2 (AD75E0).
0x008925D035UIWidget__set_cursor_on_hoverSets cursor based on hover state. If hover flag +0xac is set, shows default cursor. Otherwise shows mode 0 cursor.
0x00892AB046UIWidget__send_tooltip_info_to_chatSends tooltip info string at +0x80 to chat window (0xc) as event 0x18.
0x00892C2036UIWidget__forward_right_click_to_parentForwards right-click to parent widget. Adjusts coordinates by own position, calls parent's virtual +0x84.
0x00892CA0124CUIControl__handle_click_eventHandles 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.
0x00892D2062CUIControl__dispatch_event_99Dispatches 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.
0x00892D60125CUIControl__handle_click_with_dataSimilar 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.
0x00892DE0114CUIControl__scroll_index_by_directionScrolls 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.
0x00892E6060CUIControl__scroll_child_verticalScrolls 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.
0x00892EA060CUIControl__scroll_child_horizontal_aScrolls 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.
0x00892EE060CUIControl__scroll_child_horizontal_bIdentical 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.
0x00892F2015CUIControl__call_child_vtable_8cCalls vtable function at offset 0x8c on child control referenced at field 0x10. Indirect jump through child's vtable.
0x00892F3023CUIControl__call_child_vtable_8c_safeNull-safe version of call_child_vtable_8c. Checks if child at field 0x10 is non-null before calling vtable offset 0x8c.
0x00892F5057CUIControl__scroll_child_widgetScrolls 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.
0x00892F90186CUIControl__draw_colored_item_cellDraws 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.
0x00893050632CUIControl__process_hyperlink_navigate_to_mapProcesses 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.
0x008932D0261CUIControl__process_item_data_entryProcesses 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.
0x008961F0207CUIControl__update_scrollbar_rangeUpdates 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.
0x008970F045CUIControl__set_position_and_refreshSets 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.
0x00897370100CUIControl__resize_with_bordersResizes 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.
0x00897510106CUIControl__resize_with_side_scrollbarResizes 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.
0x00897750100CUIControl__resize_with_dual_children_aResizes 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.
0x008977C0100CUIControl__resize_with_dual_children_bIdentical to resize_with_dual_children_a. Resizes control with two child controls using standard border layout. Variant for a different UI class.
0x00897830100CUIControl__resize_constrained_axisResizes 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.
0x00897A1063CUIControl__resize_with_child_scrollbarResizes 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.
0x00897BF029CUIControl__handle_scroll_position_eventHandles scroll position event (event code 0xd). Sets field 0xc to param_4 value and invalidates the control. Returns 0.
0x00897C2064CUIGridList__handle_eventEvent 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.
0x00898730136CUIGridControl__handle_eventEvent 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.
0x0089B450120CUIControl__push_back_string_entryPushes 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.
0x0089B4D022CUIControl__set_position_fieldsSets position fields at offsets 0x7c (x) and 0x80 (y) of the UI control.
0x0089B4F025CUIControl__set_field_0x1f_and_invalidateSets field 0x1f to param_2 and invalidates the control via vtable+0x98.
0x0089B51043CUIControl__set_rect_fieldsSets rectangle fields 0x80, 0x84, 0x88, 0x8c from four parameters. Likely left, top, right, bottom or x, y, width, height.
0x0089B54021CUIControl__set_field_0x1f_and_invalidate_bSets field 0x1f to param_2 and invalidates the control. Identical to set_field_0x1f_and_invalidate, likely from a different class.
0x0089B56033CUIControl__set_scroll_range_and_invalidateSets scroll range fields 0x27 and 0x28 from parameters and invalidates the control via vtable+0x98.
0x0089B590164CUIControl__clone_two_childrenClones 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.
0x0089B760183CUIControl__load_two_sprite_texturesLoads 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.
0x0089B820236CUIControl__load_three_sprite_textures_aLoads 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.
0x0089B910236CUIControl__load_three_sprite_textures_bLoads 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.
0x0089BA0093CUIControl__reset_item_slot_displayResets item slot display. 93-byte function that delegates to CEffect__set_position (likely misnamed target) to clear/reset the item slot visual state.
0x0089BA6016CUIControl__set_field_0xe4Sets field 0xe4 to param_2. Simple field setter with no invalidation.
0x0089BA7024CUIControl__set_field_0x35_and_invalidateSets field 0x35 (likely a linked control ID or texture index) and invalidates via vtable+0x98.
0x0089BA90490CUIControl__set_item_slot_with_job_iconSets 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.
0x0089BC8051CUIControl__set_draw_params_and_invalidateSets 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.
0x0089BCC033CUIControl__set_fields_0x28_0x29_and_invalidateSets fields 0x28 and 0x29 and invalidates the control.
0x0089BCF0164CUIControl__clone_two_children_bIdentical to clone_two_children. Clones two child widgets from templates and destroys originals. Different class variant.
0x0089BDA0164CUIControl__clone_two_children_cIdentical to clone_two_children. Another class variant for child widget cloning.
0x0089BE5016CUIControl__set_field_0x94Sets field 0x94 to param_2. Simple field setter.
0x0089BFE0144CUIControl__set_numeric_display_valueSets 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.
0x0089C07016CUIControl__set_field_0x9cSets field 0x9c to param_2. Simple field setter.
0x0089C21016CUIControl__set_field_0x84Sets field 0x84 to param_2. Simple field setter.
0x0089C2A0147CUIControl__set_numeric_display_value_bSets 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.
0x0089C34025CUIControl__set_field_0xa_and_invalidateSets field 10 (0xa in word index = 0x28 offset) to param_2. If non-zero, invalidates via vtable+0x98.
0x0089C36033CUIControl__set_fields_0x2a_0x2b_and_invalidateSets fields 0x2a and 0x2b and invalidates the control via vtable+0x98.
0x0089C390164CUIControl__clone_two_children_dAnother variant of clone_two_children. Clones two child widgets and destroys originals. Different class.
0x0089CDB0164CUIControl__clone_two_children_eClones 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.
0x0089CE60164CUIControl__clone_two_children_fClones 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.
0x0089CFD016CUIControl__set_field_0x80Sets field 0x80 to param_2. Simple field setter.
0x0089E0F0889CUIGridList__add_item_with_link_processingAdds 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.
0x0089EA40133CUIControl__strip_color_codes_from_textStrips 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.
0x0089EAD0165CUIControl__export_strings_to_fileExports 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.
0x0089F5C014CUIControl__call_child_0x80_vtable_dcCalls 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.
0x0089F5D061CUIControl__reset_child_list_controlResets 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.
0x008A25F0112CUIControl__forward_string_to_child_0x80Forwards 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.
0x008A2660157CUIControl__forward_string_to_child_0x9cForwards 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.
0x008A270034CUIControl__set_three_fields_0x9cSets three consecutive fields at offsets 0x9c, 0xa0, 0xa4 on this control. These likely represent RGB color components or three related configuration values.
0x008A273091CUIControl__select_item_in_child_listSelects 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.
0x008A2790281UIWidget__create_grid_childrenCreates grid of UI window child widgets (0x84 bytes each) in rows*cols layout, triggers redraw
0x008A3380128CUIControl__destroy_tree_nodes_recursiveRecursively 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.
0x008A3400129CUIControl__tree_lower_bound_by_stringPerforms 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.
0x008A8D30430UIWidget__draw_item_with_countDraws item sprite and count text overlay with shadow effect, adjusts position for count < 1000
0x008AD13027UIWidget__set_offset_and_refresh_aSets widget offset at this[7] = x, this[8] = y, then calls virtual method at vt+0x90 to refresh/redraw.
0x008AD15027UIWidget__set_offset_and_refresh_bSets 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).
0x008AD17031UIWidget__set_position_from_baseSets widget absolute position by adding param offsets to base position. this+0x1c = this+0x84 + param_2 (x), this+0x20 = this+0x88 + param_3 (y).
0x008C7FC0350CUIGridWindow__ctorCUIGridWindow 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.
0x008CCD60119CUIGridWindow__scalar_deleting_dtorScalar deleting destructor for CUIGridWindow (0xf4 bytes). Sets vtable to 0113afdc, destroys string, calls UIWindowBase__dtor, conditionally frees.
0x008DAF809thunk_to_UIWidget__set_offset_and_refresh_b_008daf80Thunk that calls FUN_008ad150 and returns
0x008DB0309thunk_to_UIWidget__set_offset_and_refresh_b_008db030Single-call thunk that wraps FUN_008ad150
0x009105F0187UIClass_0913c90__ctorConstructor 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.
0x00913C9093UIClass_0913c90__dtorDestructor 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.
0x00913D7071UIClass_0913d70__dtorDestructor. Sets vtable to PTR_FUN_011414c8 then calls UIWindowBase__dtor for base class cleanup.
0x00913F40110UIClass_0913f40__dtorDestructor. Sets vtable to PTR_FUN_011409bc, destroys an STL string, frees a vector, then calls UIWindowBase__dtor for base cleanup.
0x00913FB071UIClass_0913fb0__dtorDestructor. Sets vtable to PTR_FUN_01140734 then calls UIWindowBase__dtor for base cleanup.
0x0091400071UIClass_0914000__dtorDestructor. Sets vtable to PTR_FUN_0114014c then calls UIHyperlinkTextWidget__dtor for base cleanup.
0x0091405071UIClass_0914050__dtorDestructor. Sets vtable to PTR_FUN_01141090 then calls UIWindowBase__dtor for base cleanup.
0x009140A0194UIClass_09140a0__dtorDestructor 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.
0x0091417071UIClass_0914170__dtorDestructor. Sets vtable to PTR_FUN_011404ac then calls UIWindowBase__dtor for base cleanup.
0x009141C071UIClass_09141c0__dtorDestructor. Sets vtable to PTR_FUN_01140c48 then calls UIWindowBase__dtor for base cleanup.
0x00914210110UIClass_0914210__dtorDestructor. Sets vtable to PTR_FUN_01140e08, destroys two STL strings, then calls UIWindowBase__dtor for base cleanup.
0x0091428071UIClass_0914280__dtorDestructor. Sets vtable to PTR_FUN_011413f0 then calls UIWindowBase__dtor for base cleanup.
0x009142D0125UIClass_09142d0__dtorDestructor. Sets vtable to PTR_FUN_01141318, destroys a CFmt object and two STL strings, then calls UIWindowBase__dtor.
0x009143C071UIClass_09143c0__dtorDestructor. Sets vtable to PTR_FUN_011402fc then calls UIWindowBase__dtor.
0x0091441071UIClass_0914410__dtorDestructor. Sets vtable to PTR_FUN_01141168 then calls UIWindowBase__dtor.
0x0091446071UIClass_0914460__dtorDestructor. Sets vtable to PTR_FUN_0114080c then calls UIWindowBase__dtor.
0x00914620166UIClass_0914620__dtorDestructor. 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.
0x009146D0151UIClass_09146d0__dtorDestructor. 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.
0x0091477071UIClass_0914770__dtorDestructor. Sets vtable to PTR_FUN_011403d4 then calls UIWindowBase__dtor.
0x0091484095UIClass_0914840__dtorDestructor. Sets vtable to PTR_FUN_01141240, destroys an STL string, then calls UIWindowBase__dtor.
0x009148A071UIClass_09148a0__dtorDestructor. Sets vtable to PTR_FUN_01140074 then calls UIWindowBase__dtor.
0x009148F095UIClass_09148f0__dtorDestructor. Sets vtable to PTR_FUN_01140a98, destroys an STL string, then calls UIWindowBase__dtor.
0x0091495071UIClass_0914950__dtorDestructor. Sets vtable to PTR_FUN_011408e4 then calls UIWindowBase__dtor.
0x009149A071UIClass_09149a0__dtorDestructor. Sets vtable to PTR_FUN_01140ee0 then calls UIWindowBase__dtor.
0x009151D0114UIClass_0913c90__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01140d28, destroys string and vector, optionally frees 0x50 bytes if param_2 & 1.
0x00915250135UIClass_0915250__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01140d20, destroys two strings and vector, optionally frees 0x68 bytes if param_2 & 1.
0x009152E099UIClass_09152e0__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_011414c8, calls UIWindowBase__dtor, optionally frees 0xD8 bytes if param_2 & 1.
0x00915350134UIClass_0915350__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_011409bc, destroys string and vector, calls UIWindowBase__dtor, optionally frees 0x118 bytes if param_2 & 1.
0x009153E099UIClass_09153e0__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01140734, calls UIWindowBase__dtor, optionally frees 0x174 bytes if param_2 & 1.
0x0091545099UIClass_0915450__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_0114014c, calls UIHyperlinkTextWidget__dtor, optionally frees 0xCC bytes if param_2 & 1.
0x009154C099UIClass_09154c0__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01141090, calls UIWindowBase__dtor, optionally frees 0xD8 bytes if param_2 & 1.
0x00915530212UIClass_0915530__scalar_deleting_dtorScalar 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.
0x0091561099UIClass_0915610__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_011404ac, calls UIWindowBase__dtor, optionally frees 0xF0 bytes.
0x0091568099UIClass_0915680__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01140c48, calls UIWindowBase__dtor, optionally frees 0xBC bytes.
0x009156F0134UIClass_09156f0__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01140e08, destroys two strings, calls UIWindowBase__dtor, optionally frees 0xE8 bytes.
0x0091578099UIClass_0915780__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_011413f0, calls UIWindowBase__dtor, optionally frees 0xBC bytes.
0x009157F0149UIClass_09157f0__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01141318, destroys CFmt and two strings, calls UIWindowBase__dtor, optionally frees 0x138 bytes.
0x00915890128UIClass_0915890__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01140b70, calls FUN_00933e40, clears pointer vector, calls UIWindowBase__dtor, optionally frees 0x140 bytes.
0x0091591099UIClass_0915910__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_011402fc, calls UIWindowBase__dtor, optionally frees 0xB8 bytes.
0x0091598099UIClass_0915980__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01141168, calls UIWindowBase__dtor, optionally frees 0xCC bytes.
0x009159F099UIClass_09159f0__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_0114080c, calls UIWindowBase__dtor, optionally frees 0xB4 bytes.
0x00915A6038UIClass_0915a60__scalar_deleting_dtorScalar deleting destructor. Calls UIClass_09144b0__dtor, optionally frees 0x228 bytes if param_2 & 1.
0x00915A90190UIClass_0915a90__scalar_deleting_dtorScalar 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.
0x00915B50175UIClass_0915b50__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01140584. Cleans linked list, destroys 9-element array, calls UIWindowBase__dtor, optionally frees 0x180 bytes.
0x00915C0099UIClass_0915c00__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_011403d4, calls UIWindowBase__dtor, optionally frees 0x1EC bytes.
0x00915D10119UIClass_0915d10__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01141240, destroys string, calls UIWindowBase__dtor, optionally frees 0x108 bytes.
0x00915D9099UIClass_0915d90__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01140074, calls UIWindowBase__dtor, optionally frees 0x18C bytes.
0x00915E00119UIClass_0915e00__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01140a98, destroys string, calls UIWindowBase__dtor, optionally frees 0x130 bytes.
0x00915E8099UIClass_0915e80__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_011408e4, calls UIWindowBase__dtor, optionally frees 0xC0 bytes.
0x00915EF099UIClass_0915ef0__scalar_deleting_dtorScalar deleting destructor. Sets vtable to PTR_FUN_01140ee0, calls UIWindowBase__dtor, optionally frees 0xB4 bytes.
0x0091607042UIClass__update_and_redraw_childUpdates 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.
0x00916DD0180UIClass__reload_string_listReloads 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.
0x00916EF059UIClass__check_bounds_matchCompares 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.
0x00916F3029UIClass__clear_listbox_and_redrawZeros 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.
0x00916F50163UIClass__create_and_add_text_widgetCreates 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.
0x00917000110UIClass__clear_string_vector_at_12cClears 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.
0x0091819089UIClass__render_colored_rect_listRenders 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).
0x009181F0260UIClass__render_tab_barRenders 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.
0x00918300127UIClass__render_two_rectsRenders 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.
0x009189C0932UIClass__render_npc_kafra_animationRenders 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.
0x00918D701243UIClass__render_tooltip_popupRenders 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.
0x0091925080UIClass__render_tooltip_backgroundRenders 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.
0x009192A01080UIClass__render_list_entries_with_textRenders 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.
0x00919B50677UIClass__render_autocomplete_dropdownRenders 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.
0x00919E00673UIClass__render_entry_labelsRenders 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.
0x0091A0B01814UIClass__render_entry_labels_extendedExtended 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.
0x0091A960748UIClass__render_connections_and_nodesRenders 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.
0x0091AC50949UIClass__render_waypointsRenders 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.
0x0091B750169UIClass__render_selection_and_tooltipRenders 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.
0x0091B800298UIClass__process_text_with_item_linksProcesses 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.
0x0091B9C087UIClass__find_entry_by_flag_offsetSearches 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.
0x0091BE80253UIClass__init_entry_from_string_and_boundsInitializes 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.
0x0091BF801138UIClass__process_click_on_mapProcesses 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.
0x0091C400203UIClass__find_entry_in_category_listSearches 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.
0x0091C600164UIClass__find_node_at_positionFinds 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.
0x0091C6B0100UIClass__calculate_frame_delta_timeCalculates 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.
0x0091C9B044UIClass__get_scroll_stateCopies 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.
0x0091C9E044UIClass__get_scroll_state_bCopies 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.
0x0091CF40101UIClass__clear_all_entriesClears 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).
0x0091E080101UIClass__copy_and_init_entryCopies an entry's name string (from offset 0x20) and initializes it via UIClass__init_entry_from_string_and_bounds.
0x0091E120937UIClass__rebuild_navigation_entriesRebuilds 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.
0x0091E4D0403UIClass__is_special_map_nameChecks 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.
0x0091E670185UIClass__find_and_push_entry_by_nameSearches 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.
0x0091E730169UIClass__has_entry_in_string_mapChecks 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).
0x0091E7E027UIClass__has_valid_quality_widgetChecks 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.
0x0091E96093UIClass__set_position_clampedSets 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.
0x0091E9C0125UIClass__set_position_and_notifySets 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.
0x0091EA4078UIClass__set_position_with_adjustmentSets 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.
0x0091EA90114UIClass__set_position_and_update_mapSets 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).
0x0091EBA0140UIClass__update_button_visibilityUpdates 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.
0x0091EC40343UIClass__initialize_list_with_controlsInitializes 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.
0x0091EDA01872UIClass__init_navigation_dialog_buttonsInitializes 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.
0x0091F4F02782UIClass__init_escape_shortcut_buttonsInitializes 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).
0x0091FFD03456UIClass__initialize_navigation_windowInitializes the navigation window (3456 bytes). Sets up all child widgets, buttons, text fields, and data structures for the navigation/map UI.
0x00920D601274UIClass__init_job_list_panelInitializes 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.
0x00921260711UIClass__init_navigation_minimap_controlsInitializes 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.
0x009215301339UIClass__init_navigation_details_listInitializes 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.
0x00921A705664UIClass__build_navigation_databaseBuilds the navigation database (5664 bytes, >5000 - renamed based on context). Large initialization function that populates the navigation graph/tree with map data.
0x009230A05991UIClass__parse_navigation_configParses navigation configuration data (5991 bytes, >5000 - renamed based on context). Reads and processes map configuration files for the navigation system.
0x00924810568UIClass__init_party_booking_help_panelInitializes 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.
0x00924A602760UIClass__populate_navigation_listPopulates the navigation list view (2760 bytes). Fills the list with filtered navigation entries for display.
0x009255302107UIClass__handle_navigation_list_clickHandles click events on the navigation list (2107 bytes). Processes item selection, expansion, and navigation actions.
0x00925D705685UIClass__render_navigation_list_itemsRenders navigation list items (5685 bytes, >5000 - renamed based on context). Draws the scrollable list of navigation entries with icons, text, and selection highlights.
0x009273B03555UIClass__initialize_skill_windowInitializes the skill window (3555 bytes). Sets up child widgets, skill tree display, and tab controls for the skill UI.
0x009281A02227UIClass__handle_skill_window_messageHandles messages for the skill window (2227 bytes). Processes skill selection, leveling, and drag operations.
0x00928A603191UIClass__init_character_preview_slotsInitializes 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.
0x009296E02722UIClass__render_skill_tooltipRenders skill tooltip information (2722 bytes). Displays skill name, description, level requirements, and SP cost in a tooltip popup.
0x0092A1901405UIClass__handle_skill_list_eventHandles events for the skill list view (1405 bytes). Processes mouse clicks and keyboard input for the flat skill list display.
0x0092A7102246UIClass__render_skill_listRenders the flat skill list display (2246 bytes). Draws skill entries in a scrollable list format with icons and level information.
0x0092B000886UIClass__render_route_visualizationRenders route visualization on the map (886 bytes). Draws animated route lines showing the path between navigation points.
0x0092B3801185UIClass__process_route_dataProcesses route/path data for navigation (1185 bytes). Calculates and stores route segments for visualization.
0x0092B830389UIClass__render_skill_tree_node_spritesRenders 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.
0x0092B9C0729UIClass__render_item_list_with_checkboxesRenders 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.
0x0092BCA049UIClass__draw_minimap_background_spriteDraws the minimap background sprite (49 bytes). Loads a sprite resource from a path and draws it at position (0,0).
0x0092BCE0251UIClass__render_paired_text_listRenders 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.
0x0092BDE0214UIClass__render_minimap_title_labelRenders 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.
0x0092BEC01904UIClass__render_full_minimapRenders the full minimap view (1904 bytes). Draws the complete minimap with background, terrain, and all overlay elements.
0x0092C640111UIClass__render_minimap_backgroundRenders 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.
0x0092C6B01949UIClass__handle_minimap_messageHandles messages for the minimap window (1949 bytes). Processes zoom, pan, click, and display mode changes for the minimap.
0x0092CE50106UIClass__render_minimap_icon_spriteRenders 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).
0x0092CEF01317UIClass__initialize_minimap_windowInitializes the minimap window (1317 bytes). Sets up the minimap display area, child widgets, and data structures.
0x0092D420518UIClass__render_world_mapRenders the world map view (518 bytes). Draws the full world map with zone boundaries and player position.
0x0092D6601915UIClass__handle_world_map_messageHandles messages for the world map window (1915 bytes). Processes zoom, click, and navigation events on the world map display.
0x0092DDE049UIClass__draw_world_map_background_spriteDraws the world map background sprite (49 bytes). Loads a sprite resource from a path and draws it at position (0,0).
0x0092DE90922UIClass__initialize_world_map_windowInitializes the world map window (922 bytes). Sets up the world map display area, zoom controls, and navigation elements.
0x0092E230195UIClass__setup_map_textureSets up the map texture for rendering (195 bytes). Loads and configures the map background texture resource.
0x0092E300614UIClass__render_map_with_markersRenders the map with entity markers (614 bytes). Draws the map background and overlays entity positions (NPCs, players, etc).
0x0092E5701644UIClass__handle_map_interactionHandles map interaction events (1644 bytes). Processes click, drag, and zoom interactions on the map display.
0x0092EBE03321UIClass__initialize_map_systemInitializes the map system (3321 bytes). Sets up all map-related data structures, textures, and configuration for the map/minimap subsystem.
0x0092F8E02698UIClass__process_map_data_updateProcesses map data updates (2698 bytes). Handles dynamic updates to map data such as zone changes, NPC positions, and waypoint modifications.
0x00930370476UIClass__finalize_map_initializationFinalizes map initialization (476 bytes). Completes the map system setup after all data has been loaded and processed.
0x0094EE8028UIWidget__delegate_vtable_0x64Delegates 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.
0x0094EEA020UIWidget__delegate_vtable_0x64_bDelegates 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.
0x0094EF8028UIWidget__delegate_vtable_0x7cDelegates to the parent widget's virtual function at vtable offset 0x7c, if parent pointer at this+0x10 is non-null.
0x0094EFA020UIWidget__delegate_vtable_0x7c_bDelegates to the parent widget's virtual function at vtable offset 0x7c, if parent pointer at this+0x10 is non-null. Second instance.
0x0094EFC093UIWidget__render_text_labelRenders 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).
0x0094F0E067UIWidget__check_timer_expiryChecks 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.
0x0094F130138UIWidget__update_countdown_timerUpdates 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.
0x0094F2C060UIWidget__handle_scroll_eventHandles 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.
0x0094F30023UIWidget__delegate_vtable_0x8cDelegates to the parent widget's virtual function at vtable offset 0x8c, if parent pointer at this+0x10 is non-null.
0x0094F38040UIWidget__store_positionStores the current widget position. Calls FUN_00a82eb0 with params, then saves the widget's x,y from offsets 0x14,0x18 into offsets 0xc8,0xcc.
0x0095D5709thunk_to_UIWidget__create_two_sprite_children_0095d570Wrapper that calls UIWidget__create_two_sprite_children and returns
0x0096FAC0161UIClass_5490__dtorDestructor 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.
0x0096FB70160UIClass_5640__dtorDestructor for UI window class (vtable 01145640). Zeroes DAT_01738268, destroys one STL string, hash table at 0xE8, frees 0x100, calls UIWindowBase::dtor.
0x0096FC10128UIClass_6060__dtorDestructor for UI window class (vtable 01146060). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor.
0x0096FC90128UIClass_5d00__dtorDestructor for UI window class (vtable 01145d00). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor.
0x0096FD1071UIClass_5dd8__dtorDestructor for UI window class (vtable 01145dd8). Simply sets vtable and calls UIWindowBase::dtor. No hash table or strings to destroy.
0x0096FD60128UIClass_5eb0__dtorDestructor for UI window class (vtable 01145eb0). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor.
0x0096FDE0128UIClass_5c28__dtorDestructor for UI window class (vtable 01145c28). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor.
0x0096FE60128UIClass_6138__dtorDestructor for UI window class (vtable 01146138). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor.
0x0096FEE0128UIClass_6210__dtorDestructor for UI window class (vtable 01146210). Destroys hash table at offset 0xE8, frees 0x100, calls UIWindowBase::dtor.
0x0096FF60145UIClass_63c0__dtorDestructor for UI window class (vtable 011463c0). Destroys two STL strings, hash table at offset 0x148, frees 0x100, calls UIWindowBase::dtor.
0x0097000071UIClass_5f88__dtorDestructor for UI window class (vtable 01145f88). Sets vtable and calls UIWindowBase::dtor.
0x00970050110UIClass_5718__dtorDestructor for UI window class (vtable 01145718). Clears and frees item entry vector, destroys linked list (4c nodes), then calls UIWindowBase::dtor.
0x009701B099UIClass_52cc__scalar_deleting_dtorScalar deleting destructor for UI dialog class (vtable 011452cc, size 0x11C). Calls UIBaseDialog::destructor, then frees memory if flag bit 0 is set.
0x00970220139UIClass_53b8__scalar_deleting_dtorScalar 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.
0x009702B099UIClass_62e8__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 011462e8, size 0xBC). Sets vtable and calls UIWindowBase::dtor, then frees if flag set.
0x00970320152UIClass_59a0__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 011459a0, size 0x104). Destroys hash table, calls UIWindowBase::dtor, frees if flag set.
0x009703C0152UIClass_5b50__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 01145b50, size 0x100). Destroys hash table, calls UIWindowBase::dtor, frees if flag set.
0x00970460152UIClass_5a78__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 01145a78, size 0xFC). Destroys hash table, calls UIWindowBase::dtor, frees if flag set.
0x00970500152UIClass_58c8__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 011458c8, size 0x10C). Destroys hash table, calls UIWindowBase::dtor, frees if flag set.
0x009705A0152UIClass_57f0__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 011457f0, size 0x110). Destroys hash table, calls UIWindowBase::dtor, frees if flag set.
0x00970700185UIClass_5490__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 01145490, size 0x160). Destroys two STL strings and hash table, calls UIWindowBase::dtor, frees if flag set.
0x009707C0184UIClass_5640__scalar_deleting_dtorScalar 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.
0x00970880152UIClass_6060__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 01146060, size 0x130). Destroys hash table, calls UIWindowBase::dtor, frees if flag set.
0x00970920152UIClass_5d00__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 01145d00, size 0x120). Destroys hash table, calls UIWindowBase::dtor, frees if flag set.
0x009709C099UIClass_5dd8__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 01145dd8, size 0xD4). Sets vtable and calls UIWindowBase::dtor, frees if flag set.
0x00970A30152UIClass_5eb0__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 01145eb0, size 0x10C). Destroys hash table, calls UIWindowBase::dtor, frees if flag set.
0x00970AD0152UIClass_5c28__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 01145c28, size 0x11C). Destroys hash table, calls UIWindowBase::dtor, frees if flag set.
0x00970B70152UIClass_6138__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 01146138, size 0xFC). Destroys hash table, calls UIWindowBase::dtor, frees if flag set.
0x00970C10152UIClass_6210__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 01146210, size 0xF8). Destroys hash table, calls UIWindowBase::dtor, frees if flag set.
0x00970CB0169UIClass_63c0__scalar_deleting_dtorScalar 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.
0x00970D6099UIClass_5f88__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 01145f88, size 0xBC). Calls UIWindowBase::dtor, frees if flag set.
0x00970DD0134UIClass_5718__scalar_deleting_dtorScalar deleting destructor for UI window class (vtable 01145718, size 0x148). Clears item entry vector, destroys linked list, calls UIWindowBase::dtor, frees if flag set.
0x00999C7068UIWidget__scalar_deleting_dtor_00999c70Scalar deleting destructor for a UI widget (size 8). Conditionally frees memory via operator delete.
0x00999CC068UIWidget__scalar_deleting_dtor_00999cc0Scalar deleting destructor for a UI widget (size 8). Conditionally frees memory via operator delete.
0x00999D1068UIWidget__scalar_deleting_dtor_00999d10Scalar deleting destructor for a UI widget (size 8). Conditionally frees memory via operator delete.
0x00999D6068UIWidget__scalar_deleting_dtor_00999d60Scalar deleting destructor for a UI widget (size 8). Conditionally frees memory via operator delete.
0x00999DB068UIWidget__scalar_deleting_dtor_00999db0Scalar deleting destructor for a UI widget (size 8). Conditionally frees memory via operator delete.
0x00999E0068UIWidget__scalar_deleting_dtor_00999e00Scalar deleting destructor for a UI widget (size 8). Conditionally frees memory via operator delete.
0x00999F3016UIWidget__set_vtable_00999f30Sets vtable pointer to PTR_FUN_011471f4 for a UI widget class.
0x00999F4016UIWidget__set_vtable_00999f40Sets vtable pointer to PTR_FUN_01147210 for a UI widget class.
0x00999F6016UIWidget__set_vtable_00999f60Sets vtable pointer to PTR_FUN_01147248 for a UI widget class.
0x00999F7016UIWidget__set_vtable_00999f70Sets vtable pointer to PTR_FUN_01147264 for a UI widget class.
0x00999F8016UIWidget__set_vtable_00999f80Sets vtable pointer to PTR_FUN_01147280 for a UI widget class.
0x009A50E055UIWidget__is_position_within_map_bounds_009a50e0Checks 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.
0x009A5120164UIWidget__validate_npc_placement_009a5120Validates 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.
0x009ADF10612UIWidgetList__sync_from_rangeSyncs widget list with source range: updates existing entries, appends new ones, removes excess
0x009AE180174UIWidgetList__insert_beforeInserts a new 0x10-byte list node before the specified position; increments count
0x009AE23037UIWidgetList__init_emptyInitializes an empty circular doubly-linked widget list with sentinel node (0x4C bytes)
0x009AE260309UIItemListMgr__constructorConstructor for item list manager: inits 4 widget lists, 2 linked lists, sets default timing and flags
0x009AE3A067UIWidgetList__free_sentinelFrees the 0x10-byte sentinel node of a widget list if it exists
0x009AE3F078UIWidgetList__free_sentinel_altFrees the 0x10-byte sentinel node of a widget list (alternate version with different SEH setup)
0x009AE440114UIWidgetList__clear_all_entriesClears all entries from widget list: calls destructor on each 0x4C-byte node, frees memory
0x009AE530235UIItemListMgr__destructor_baseBase destructor for UIItemListMgr: frees both linked lists, destroys 4 widget lists via iterators
0x009AE620259UIItemListMgr__scalar_deleting_destructorScalar deleting destructor for UIItemListMgr (0x2B0 bytes); calls base destructor then optionally frees
0x009AE730456UIItemListMgr__process_pending_skill_upsProcesses 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.
0x009AE90036UIItemListMgr__has_valid_dataReturns 1 if list has valid data: checks offsets 4, 0x10, and 0xC are all non-zero
0x009AE9302501UIItemListMgr__render_skill_preview_spritesRenders 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.
0x009AF3001619UIItemListMgr__render_skill_grid_classicRenders 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).
0x009AF9602263UIItemListMgr__render_skill_grid_detailedRenders 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.
0x009B0240171UIItemListMgr__hit_test_grid_slotConverts mouse x,y position to grid slot index; returns -1 if outside valid slot area
0x009B032077UIItemListMgr__get_pending_skill_up_countGets 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.
0x009B0370232UIItemListMgr__get_selection_count_stringGets selection count as string for an item ID from the selection list; returns empty if count <= 0
0x009B0460171UIItemListMgr__get_skill_entry_by_slotRetrieves CSkillEntry info for a given slot index by searching the current tab's skill list. Returns via copy constructor.
0x009B0510353UIItemListMgr__find_skill_entry_by_idSearches all tabs for a skill entry by skill ID and returns its CSkillEntry info struct. Copies to output param via CSkillEntry copy constructor.
0x009B0680204UIItemListMgr__get_skill_entry_by_display_indexRetrieves CSkillEntry at a display index (adjusted by scroll offset) from current tab's skill list.
0x009B0750106UIItemListMgr__try_get_skill_at_indexTries 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.
0x009B07C094UIItemListMgr__get_tab_skill_listReturns 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.
0x009B0820984UIItemListMgr__initialize_skill_tabs_and_categoriesInitializes 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.
0x009B0E40155UIItemListMgr__refresh_all_tabsRefreshes all 4 tabs by syncing from data source, clears purchase list and resets edit mode
0x009B0EE062UIItemListMgr__is_last_tabReturns true if the given tab index equals the last tab index (total tabs - 1)
0x009B0F20113UIItemListMgr__has_skill_with_levelChecks if current tab's skill list contains a skill with matching ID and non-zero level.
0x009B0FA0118UIItemListMgr__is_point_in_grid_areaTests if x,y coordinates fall within the item grid area bounds, accounting for header offset
0x009B102041UIItemListMgr__is_skill_selectedChecks if a skill ID exists in the selection list (offset 0x298). Returns 1 if found, 0 otherwise.
0x009B10504357UIItemListMgr__create_child_controlsCreates all child controls: scrollbar, skill up buttons (3 states), item slot buttons, apply/reset buttons
0x009B21601071UIItemListMgr__render_window_frameRenders 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.
0x009B2590309UIItemListMgr__on_double_clickHandles double-click on item: opens item info or equips it depending on equip type
0x009B31C0958UIItemListMgr__layout_child_widgetsPositions all child widgets (scrollbar, buttons, arrow buttons, item slots) in the item list window
0x009B3580116UIItemListMgr__handle_messageMain message handler: processes scroll, tab change, resize, item click, buy/reset, layout mode toggle
0x009B3DC0172UIItemListMgr__set_skill_level_by_idSets 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.
0x009B3E7056UIItemListMgr__sync_position_to_parentCopies window position and size to parent rect pointer at offset 0x24C
0x009B410042UIItemListMgr__get_pending_level_for_skill_idLooks up the pending target level for a specific skill ID from the skill-up queue list (offset 0x2A0). Returns 0 if not queued.
0x009B413042UIItemListMgr__get_queued_level_for_skill_idReturns 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.
0x009B416076UIItemListMgr__set_pending_count_for_itemSets pending count for item ID in purchase list; creates new entry if not found
0x009B54A0215UIWidget__on_mouse_up_009b54a0Mouse-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.
0x009C02D0164UIComponent__create_from_stream_009c02d0Factory method: optionally clones interface from param_2+0x24 via virtual call, then initializes component via FUN_009d7730. Returns this pointer.
0x009C0380164UIComponent__create_from_stream_009c0380Factory method: optionally clones interface from param_2+0x24, then initializes component via FUN_009d7890. Returns this pointer.
0x009C0430164UIComponent__create_from_stream_009c0430Factory method: optionally clones interface from param_2+0x24, then initializes component via FUN_009d79f0. Returns this pointer.
0x009C04E0164UIComponent__create_from_stream_009c04e0Factory method: optionally clones interface from param_2+0x24, then initializes component via FUN_009d7b50. Returns this pointer.
0x009C0590164UIComponent__create_from_stream_009c0590Factory method: optionally clones interface from param_2+0x24, then initializes component via FUN_009d7f70. Returns this pointer.
0x009C12B085UIComponent__clear_child_items_009c12b0Iterates 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.
0x009C131085UIComponent__clear_child_items_009c1310Identical to 009c12b0: iterates child items vector, calls FUN_00a82e50 with flag=1, resets to empty, sets selected index to -1.
0x009C137085UIComponent__clear_child_items_009c1370Identical to 009c12b0: iterates child items vector, calls FUN_00a82e50 with flag=1, resets to empty, sets selected index to -1.
0x009C13D085UIComponent__clear_child_items_009c13d0Identical to 009c12b0: iterates child items vector, calls FUN_00a82e50 with flag=1, resets to empty, sets selected index to -1.
0x009C143036UIComponent__set_position_and_size_009c1430Sets width/height at offsets 0xb4/0xb8 from params 4/5, then calls FUN_00a7b470 to set position from params 2/3.
0x009C146036UIComponent__set_position_and_size_009c1460Sets width/height at offsets 0xb4/0xb8, then calls FUN_00a7b470 to set position. Identical to 009c1430.
0x009C149036UIComponent__set_position_and_size_009c1490Sets width/height at offsets 0xb4/0xb8, then calls FUN_00a7b470 to set position. Identical to 009c1430.
0x009C14C036UIComponent__set_position_and_size_009c14c0Sets width/height at offsets 0xb4/0xb8, then calls FUN_00a7b470 to set position. Identical to 009c1430.
0x009C14F087UIComponent__reset_and_center_009c14f0Resets 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.
0x009C277069UIComponent__get_selected_item_data_009c2770Gets 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.
0x009C27C069UIComponent__get_selected_item_data_009c27c0Identical to 009c2770: gets selected item data by traversing linked list to selected index. Returns node+8 pointer with success flag.
0x009C281069UIComponent__get_selected_item_data_009c2810Identical to 009c2770: gets selected item data by traversing linked list to selected index.
0x009C286069UIComponent__get_selected_item_data_009c2860Identical to 009c2770: gets selected item data by traversing linked list to selected index.
0x009C28B0193UIComponent__create_child_component_009c28b0Allocates 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.
0x009C2980193UIComponent__create_child_component_009c2980Allocates 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.
0x009C2A50193UIComponent__create_child_component_009c2a50Identical pattern to 009c28b0: allocates 0xf0-byte child, constructs, hides, attaches. Uses vtable PTR_FUN_0114959c.
0x009C2B20193UIComponent__create_child_component_009c2b20Identical pattern: allocates 0xf0-byte child, constructs, hides, attaches. Uses vtable PTR_FUN_01149580.
0x009C2BF0193UIComponent__create_child_component_009c2bf0Identical pattern: allocates 0xf0-byte child, constructs, hides, attaches. Uses vtable PTR_FUN_01149564.
0x009C2CC0193UIComponent__create_child_component_009c2cc0Identical pattern: allocates 0xf0-byte child, constructs, hides, attaches. Uses vtable PTR_FUN_01149548.
0x009C54001965UIComponent__init_text_labels_009c5400Creates 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.
0x009D18301090UIComponent__init_label_and_sprite_009d1830Initializes 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.
0x009D1C80639UIComponent__init_single_label_009d1c80Creates 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.
0x009D1F001200UIComponent__init_two_labels_009d1f00Creates 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.
0x009D241063UIComponent__scroll_or_delegate_009d2410Checks 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.
0x009D245063UIComponent__scroll_or_delegate_009d2450Identical to 009d2410: checks child scrollability, calls vtable+0x8c or delegates to parent.
0x009D249063UIComponent__scroll_or_delegate_009d2490Identical to 009d2410: checks child scrollability, calls vtable+0x8c or delegates to parent.
0x009D24D063UIComponent__scroll_or_delegate_009d24d0Identical to 009d2410: checks child scrollability, calls vtable+0x8c or delegates to parent.
0x009D251063UIComponent__scroll_or_delegate_009d2510Identical to 009d2410: checks child scrollability, calls vtable+0x8c or delegates to parent.
0x009D255063UIComponent__scroll_or_delegate_009d2550Identical to 009d2410: checks child scrollability, calls vtable+0x8c or delegates to parent.
0x009D259065UIComponent__set_selected_highlight_009d2590Iterates child items vector (0xc8-0xcc), calls vtable+0xdc on each with boolean (true if item == param_2, false otherwise). Highlights the selected item.
0x009D25E065UIComponent__set_selected_highlight_009d25e0Identical to 009d2590: iterates children, highlights selected item via vtable+0xdc.
0x009D263065UIComponent__set_selected_highlight_009d2630Identical to 009d2590: iterates children, highlights selected item via vtable+0xdc.
0x009D268065UIComponent__set_selected_highlight_009d2680Identical to 009d2590: iterates children, highlights selected item via vtable+0xdc.
0x009D3050196UIComponent__swap_callback_009d3050Clones interface from optional param, swaps callback object at this+0xa0 via GameSettings__swap_callback_objects, releases the clone.
0x009D3120196UIComponent__swap_callback_009d3120Identical to 009d3050: clones interface, swaps callback at this+0xa0.
0x009D31F0367UIComponent__insert_callback_by_key_009d31f0Inserts 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.
0x009D3360522UIComponent__load_textures_from_map_009d3360Loads 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.
0x009D3570522UIComponent__load_textures_from_map_009d3570Identical to 009d3360: loads 4 texture resources from string map, stores at 0x80-0x8c.
0x009D3780522UIComponent__load_textures_from_map_009d3780Identical to 009d3360: loads 4 texture resources.
0x009D3990522UIComponent__load_textures_from_map_009d3990Identical to 009d3360: loads 4 texture resources.
0x009D3BA0522UIComponent__load_textures_from_map_009d3ba0Identical to 009d3360: loads 4 texture resources.
0x009D3DB0522UIComponent__load_textures_from_map_009d3db0Identical to 009d3360: loads 4 texture resources.
0x009D4F50216UIComponent__set_map_strings_and_update_009d4f50Sets 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.
0x009D5030216UIComponent__set_map_strings_and_update_009d5030Identical to 009d4f50: sets map strings and updates.
0x009D5110216UIComponent__set_map_strings_and_update_009d5110Identical to 009d4f50: sets map strings and updates.
0x009D51F0216UIComponent__set_map_strings_and_update_009d51f0Identical to 009d4f50: sets map strings and updates.
0x009D52D0216UIComponent__set_map_strings_and_update_009d52d0Identical to 009d4f50: sets map strings and updates.
0x009D53B0216UIComponent__set_map_strings_and_update_009d53b0Identical to 009d4f50: sets map strings and updates.
0x009D62B065UIComponent__set_selected_via_parent_009d62b0Highlights 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.
0x009D630065UIComponent__set_selected_via_parent_009d6300Highlights selected child via parent ref. Identical to 009d62b0.
0x009D635065UIComponent__set_selected_via_parent_009d6350Highlights selected child via parent ref. Identical to 009d62b0.
0x009D63A065UIComponent__set_selected_via_parent_009d63a0Highlights selected child via parent ref. Identical to 009d62b0.
0x009D8F50143UIControl__ctor_009d8f50Constructor 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.
0x009D8FE0146UIControl__ctor_009d8fe0Constructor for a UIControl class. Calls base constructor at 00a79a90, sets vtable chain (UIBase -> intermediate 0114b31c -> final 0114b3fc). Initializes 3 zero fields.
0x009D9220173UIControl__ctor_with_string_009d9220Constructor 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).
0x009D9360183UIControl__ctor_with_string_009d9360Constructor 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).
0x009D94D0124UIControl__ctor_009d94d0Constructor for a UIControl. Calls larger base ctor at 009efc30, sets vtable to 0114ba34. Initializes 4 zero state fields at offsets 0x3a-0x3d.
0x009D9550175UIControl__ctor_009d9550Constructor 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.
0x009D9600104UIControl__ctor_009d9600Constructor for a UIControl. Calls base at 009efc30, sets vtable to 0114b234. Initializes 2 zero state fields at offsets 0x3a-0x3b.
0x009DA18084UIControl__dtor_009da180Destructor for UIControl (vtable 0114b158). Sets vtable chain back to UIBase, then calls base destructor at 00a79e90.
0x009DA1E084UIControl__dtor_009da1e0Destructor for UIControl (vtable 0114b3fc). Sets vtable chain back to UIBase, then calls base destructor at 00a79e90.
0x009DA310266UIControlBase__dtor_009da310Base 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.
0x009DA420108UIControl__dtor_with_string_009da420Destructor for UIControl (vtable 0114b78c). Destroys embedded string, reverts to UIBase vtable, calls base dtor.
0x009DA49071UIControl__dtor_009da490Destructor for UIControl (vtable 0114b6a4). Sets vtable, then calls UIControlBase__dtor_009da310 for cleanup.
0x009DA4E078UIControl__dtor_base_only_009da4e0Simple UIControl destructor that just reverts to UIBase vtable and calls base dtor at 00a79e90.
0x009DA530108UIControl__dtor_with_string_009da530Destructor for UIControl (vtable 0114b5c4). Destroys embedded string, reverts to UIBase vtable, calls base dtor.
0x009DA60071UIControl__dtor_009da600Destructor for UIControl (vtable 0114ba34). Sets vtable, then calls UIControlBase__dtor_009da310.
0x009DA65095UIControl__dtor_with_string_009da650Destructor for UIControl (vtable 0114bb1c). Destroys embedded string, then calls UIControlBase__dtor_009da310.
0x009DA6B071UIControl__dtor_009da6b0Destructor for UIControl (vtable 0114b234). Sets vtable then calls UIControlBase__dtor_009da310.
0x009DA7D0112UIControl__scalar_deleting_dtor_009da7d0Scalar deleting destructor for UIControl (0x90 bytes, vtable 0114b158). Calls base dtor, optionally frees memory.
0x009DA870112UIControl__scalar_deleting_dtor_009da870Scalar deleting destructor for UIControl (0x8c bytes, vtable 0114b3fc). Calls base dtor, optionally frees memory.
0x009DA9F038UIControlBase__scalar_deleting_dtor_009da9f0Scalar deleting destructor for UIControlBase (0xe8 bytes). Calls UIControlBase__dtor_009da310, optionally frees memory.
0x009DAA20132UIControl__scalar_deleting_dtor_009daa20Scalar deleting destructor for UIControl (0xa0 bytes, vtable 0114b78c). Destroys string, calls base dtor, optionally frees memory.
0x009DAAB099UIControl__scalar_deleting_dtor_009daab0Scalar deleting destructor for UIControl (0x100 bytes, vtable 0114b6a4). Calls UIControlBase dtor, optionally frees memory.
0x009DAB20106UIControl__scalar_deleting_dtor_009dab20Scalar deleting destructor for UIControl (0x80 bytes). Sets UIBase vtable, calls base dtor, optionally frees memory.
0x009DAB90132UIControl__scalar_deleting_dtor_009dab90Scalar deleting destructor for UIControl (0xa4 bytes, vtable 0114b5c4). Destroys string, calls base dtor, optionally frees memory.
0x009DACA099UIControl__scalar_deleting_dtor_009daca0Scalar deleting destructor for UIControl (0xf8 bytes, vtable 0114ba34). Calls UIControlBase dtor, optionally frees memory.
0x009DAD10119UIControl__scalar_deleting_dtor_009dad10Scalar deleting destructor for UIControl (0x118 bytes, vtable 0114bb1c). Destroys string, calls UIControlBase dtor, optionally frees memory.
0x009DAD9099UIControl__scalar_deleting_dtor_009dad90Scalar deleting destructor for UIControl (0xf0 bytes, vtable 0114b234). Calls UIControlBase dtor, optionally frees memory.
0x009DB720461UIControl__parse_action_string_009db720Parses 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.
0x009DB8F0461UIControl__parse_action_string_009db8f0Parses 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.
0x009DBB80292UIControl__handle_click_open_window_009dbb80Click 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.
0x009DBCB0364UIControl__handle_click_open_or_send_009dbcb0Click 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.
0x009DC0B044UIControl__forward_value_to_parent_009dc0b0Forwards 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.
0x009DC0F069UIControl__set_two_text_labels_009dc0f0Sets 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.
0x009DC140197UIControl__update_text_and_notify_parent_009dc140Updates 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.
0x009DC21088UIControl__update_text_from_param_009dc210Updates 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.
0x009DC27080UIControl__update_text_from_child_009dc270Updates 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.
0x009DC2C088UIControl__update_text_from_param_alt_009dc2c0Updates 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.
0x009DC91043UIControl__draw_with_icon_009dc910Draws 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.
0x009DE410172UIControl__toggle_expand_and_resize_009de410Toggles 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.
0x009DEF402950CTextPanel__parse_and_populate_regexParses 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.
0x009DFCB01573CTextPanel__set_content_with_imagesSets 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.
0x009E02E058CTextPanel__set_lines_from_vector_009e02e0Clears the text panel then appends all text lines from a vector (param_1[0] to param_1[1], step 0x18 per entry).
0x009E032036CTextPanel__set_single_line_009e0320Clears the text panel then appends a single text line from param_1.
0x009E077058CTextPanel__set_lines_from_vector_009e0770Clears text panel and appends all lines from a vector. Same as 009e02e0, different instance.
0x009E07B058CTextPanel__set_lines_from_vector_009e07b0Clears text panel and appends all lines from a vector. Same as 009e02e0, different instance.
0x009E07F044CTextPanel__try_select_tabAttempts 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.
0x009E082044CTextPanel__try_select_tab_altAlternate tab selection for text panel. Same logic as try_select_tab but uses the alternate UITabControl__select_tab variant.
0x009E085033CTextPanel__set_both_scrollbar_valuesSets values on both scrollbar widgets at offsets 0x84 and 0x88 via virtual call at vtable+0x38.
0x009E088015CTextPanel__set_single_scrollbar_valueSets a value on the scrollbar widget at offset 0x84 via virtual call at vtable+0x38.
0x009E089033CTextPanel__set_both_scrollbar_values_009e0890Sets values on both scrollbar widgets at offsets 0x84 and 0x88 via virtual call at vtable+0x38. Duplicate of 009e0850 for a different CTextPanel instance.
0x009E08C022CTextPanel__create_iterator_aCreates an iterator object for text panel. Sets vtable pointer and copies the panel's field[1] into the iterator's second field.
0x009E08E022CTextPanel__create_iterator_bCreates an alternate iterator object for text panel. Sets a different vtable pointer and copies field[1] into the iterator.
0x009E090022CTextPanel__create_iterator_cCreates iterator variant C for text panel. Sets vtable and copies field[1].
0x009E092022CTextPanel__create_iterator_dCreates iterator variant D for text panel. Sets vtable and copies field[1].
0x009E094068CTextPanel__scalar_deleting_dtor_iter_aScalar deleting destructor for text panel iterator type A. If param_2 flag is set, frees the 8-byte iterator object.
0x009E099068CTextPanel__scalar_deleting_dtor_iter_bScalar deleting destructor for text panel iterator type B. If param_2 flag is set, frees the 8-byte iterator object.
0x009E09E068CTextPanel__scalar_deleting_dtor_iter_cScalar deleting destructor for text panel iterator type C. If param_2 flag is set, frees the 8-byte iterator object.
0x009E0A3068CTextPanel__scalar_deleting_dtor_iter_dScalar deleting destructor for text panel iterator type D. If param_2 flag is set, frees the 8-byte iterator object.
0x009E0A8065CTextPanel__notify_tab_children_selectedNotifies 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.
0x009E0AD065CTextPanel__notify_tab_children_selected_009e0ad0Notifies 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.
0x009E0B2020CTextPanel__forward_tab_selectForwards tab selection to UITabControl__select_tab. Dereferences param_1 to get the tab value and passes it through.
0x009E0B4020CTextPanel__forward_tab_select_altForwards tab selection to UITabControl__select_tab_009de560 (alternate variant). Same as forward_tab_select but uses alt function.
0x009E0DB022CTextPanel__create_iterator_a_altAlternate 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.
0x009E0DD022CTextPanel__create_iterator_b_altCreates CTextPanel iterator type B (alternate entry point). Sets vtable to PTR_CTextPanel__create_iterator_b and copies field[1] from source.
0x009E0DF022CTextPanel__create_iterator_c_altCreates CTextPanel iterator type C (alternate entry point). Sets vtable to PTR_CTextPanel__create_iterator_c and copies field[1] from source.
0x009E0E1022CTextPanel__create_iterator_d_altCreates CTextPanel iterator type D (alternate entry point). Sets vtable to PTR_CTextPanel__create_iterator_d and copies field[1] from source.
0x009E2CE034UIControl__on_move_and_invalidateHandles UI control move event. Calls move handler, then invokes virtual invalidate method at vtable+0xD4 with param 0.
0x009E346036UIControl__find_child_by_idSearches 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.
0x009E349058UIControl__has_child_in_parentChecks 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.
0x009E3500121UIControl__attach_child_controlAttaches 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.
0x009E4B5012UIControl__invalidate_from_rootGets 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.
0x009E96C0202CUIControl__load_and_set_texture_009e96c0Loads 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.
0x009E979064UIControl__set_text_and_refreshSets 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).
0x009E9840321CTextPanel__add_child_widget_to_map_009e9840Adds 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.
0x009E99901072CTextPanel__append_text_line_009e9990Appends 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).
0x009E9DD0291CTextPanel__clear_all_content_009e9dd0Clears 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.
0x009E9F00684CTextPanel__create_children_009e9f00Creates 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.
0x009EA28063CTextPanel__handle_scroll_eventHandles 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.
0x009EA2C0316CTextPanel__rebuild_text_layout_009ea2c0Rebuilds 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.
0x009EA400381CTextPanel__on_resize_009ea400Resize 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.
0x009EA580275CTextPanel__layout_child_widgets_009ea580Positions 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.
0x009EA6A076CTextPanel__on_event_dispatch_009ea6a0Event 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.
0x009EA7A025CTextPanel__set_alignment_mode_009ea7a0Sets text alignment mode (offset 0x80) and vertical alignment (offset 0x84) for the text panel.
0x009EA7C024CTextPanel__set_background_color_009ea7c0Sets background color (offset 0x20) and invalidates for redraw.
0x009EA7E036CTextPanel__set_border_color_009ea7e0Sets 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.
0x009EA81016CTextPanel__set_bold_flag_009ea810Sets the bold text flag (offset 0x90) on the text panel.
0x009EA82016CTextPanel__set_font_size_009ea820Sets the font size (offset 0x94) for text rendering in the panel.
0x009EA83016UITextLabel__set_font_sizeSets the font size value at offset 0x8C for text rendering
0x009EA84028CTextPanel__set_font_by_name_009ea840Sets the font (offset 0x88) by looking up the font index from its name via CTextVertex__lookup_font_index_by_name.
0x009EA86016CTextPanel__set_line_spacing_009ea860Sets the line spacing (offset 0xA8) for the text panel.
0x009EA87025CTextPanel__set_shadow_params_009ea870Sets text shadow parameters: enabled flag (offset 0xA0) and shadow color (offset 0xA4).
0x009EA89051CTextPanel__set_border_padding_009ea890Sets the 4 border padding values (offsets 0x21-0x24) on the border panel, then invalidates for redraw.
0x009EA8D043CTextPanel__set_content_margins_009ea8d0Sets the 4 content margin values (left=0xB0, top=0xB4, bottom=0xB8, right=0xBC) for the text panel content area.
0x009EA90015CTextPanel__set_button_labels_wrapperWrapper that delegates to UIScrollbar__set_button_labels to configure scrollbar button labels for this text panel.
0x009EA91030CTextPanel__set_text_interactable_flag_009ea910Sets the interactable/clickable text flag (offset 0x98) on the scroll container (offset 0x30), then invalidates for redraw.
0x009EA93015CTextPanel__resize_wrapper_009ea930Wrapper that delegates to CEffect__set_size_and_reload to resize the text panel.
0x009EA94015CTextPanel__setup_horizontal_scrollbar_009ea940Wrapper that calls UIScrollbar__setup_horizontal_thumb to configure horizontal scrollbar thumb.
0x009EA95015CTextPanel__setup_horizontal_scrollbar_single_009ea950Wrapper that calls UIScrollbar__setup_horizontal_thumb_single to configure a single-piece horizontal scrollbar.
0x009EA96015CTextPanel__set_scrollbar_background_009ea960Wrapper that calls UIScrollbar__set_background_texture to set the scrollbar background texture.
0x009EA97025CTextPanel__set_link_style_009ea970Sets the link style parameters: underline flag (offset 0x98) and link color (offset 0x9C).
0x009EA9A022CTextPanel__init_scroll_callback_009ea9a0Initializes a scroll callback struct with vtable PTR_FUN_0114c680 and stores the text panel pointer from offset 4.
0x009EA9C068CTextPanel__conditional_free_callback_009ea9c0Conditionally frees an 8-byte callback object if param_2 is non-zero. Scalar deleting destructor for the scroll callback.
0x009EAA10290CTextPanel__on_scroll_callback_009eaa10Scroll 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).
0x009EAB5022CTextPanel__init_scroll_callback_b_009eab50Copy constructor for scroll callback. Sets vtable to PTR_CTextPanel__init_scroll_callback and copies the parent pointer from offset 4.
0x009EB200230CUIWindowPositionMgr__ctor_009eb200Constructor 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.
0x009EB560226CUIWindowPositionMgr__dtor_009eb560Destructor 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).
0x009EB9201567CUIWindowPositionMgr__load_from_lua_file_009eb920Loads 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.
0x009ECF60162UIControl__show_tooltipShows 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.
0x009ED68074UIControl__render_border_frameRenders border frame around a UI control. If border thickness (offset 0x88) > 0, draws inner rectangle with border inset. Otherwise draws with default color.
0x009ED75057UIControl__on_mouse_down_with_callbackMouse 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.
0x009EE1E031UIControl__on_mouse_enterMouse enter handler. Sets this control as hover window in CUIWindowMgr and stores cursor type at offset 0x90.
0x009EE20044UIControl__on_mouse_leaveMouse leave handler. If this is the focused UI element, clears hover in CUIWindowMgr. Stores cursor type at offset 0x90.
0x009EE6A022UIControl__create_callback_a_009ee6a0Creates a callback object with vtable PTR_FUN_0114cb14 and stores the source object pointer from field +4.
0x009EE6C022UIControl__create_callback_b_009ee6c0Creates a callback object with vtable PTR_FUN_0114cb30 and stores the source object pointer from field +4.
0x009EE6E022UIControl__create_callback_c_009ee6e0Creates a callback object with vtable PTR_FUN_0114cb4c and stores the source object pointer from field +4.
0x009EE70068UIControl__conditional_delete_009ee700Conditional destructor helper. If param_2 is nonzero, frees the object (8 bytes) via operator delete. SEH protected.
0x009EE75068UIControl__conditional_delete_b_009ee750Conditional destructor helper. If param_2 is nonzero, frees the object (8 bytes) via operator delete. SEH protected. Variant B.
0x009EE7A068UIControl__conditional_delete_c_009ee7a0Conditional destructor helper. If param_2 is nonzero, frees the object (8 bytes) via operator delete. SEH protected. Variant C.
0x009EE81023UIControl__forward_set_color_009ee810Forwards set_color call to the child control at field+4 via vtable offset 0xdc.
0x009EE86022UIControl__create_callback_a2_009ee860Creates a callback object with vtable PTR_FUN_0114cb14 and stores the source object pointer. Duplicate of 009ee6a0 pattern.
0x009EE88022UIControl__create_callback_b2_009ee880Creates a callback object with vtable PTR_FUN_0114cb30 and stores the source object pointer. Duplicate of 009ee6c0 pattern.
0x009EE8A022UIControl__create_callback_c2Creates 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.
0x009EE8F041UIControl__set_state_009ee8f0Sets control state field 0x20. If state changes and field 0x21 (locked flag) is false, triggers layout refresh via vtable 0x98.
0x009EE93063UIControl__set_state_normal_009ee930Sets control state to Normal (1). If state changed and not locked, triggers layout refresh. Then if not locked, calls focus handler (FUN_00aa9b30).
0x009EE97091UIControl__set_state_pressed_009ee970Sets 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.
0x009EEA00107UIControl__draw_tooltip_text_009eea00Draws 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.
0x009EEAD040UIControl__forward_mouse_move_009eead0Forwards 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.
0x009EF520123UIControl__load_texture_resource_009ef520Loads 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.
0x009EF59B54UIControl__load_texture_fallback_009ef59bFallback path for texture loading. Constructs string from EDI register, validates via FUN_00aeecc0. Uses non-standard calling convention (mid-function entry point).
0x009EF5E012UIControl__invalidate_from_root_009ef5e0Invalidates 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.
0x009EF5F083UIControl__hit_test_009ef5f0Hit 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.
0x009EF65037UIControl__forward_mouse_down_009ef650Forwards mouse down event to child control at field 0x10. Adjusts coordinates by control position (0x1c, 0x20) before calling vtable offset 0x68.
0x009EF68037UIControl__forward_mouse_up_009ef680Forwards mouse up event to child control at field 0x10. Adjusts coordinates by control position (0x1c, 0x20) before calling vtable offset 0x64 (100).
0x009EF6B037UIControl__forward_mouse_wheel_009ef6b0Forwards mouse wheel event to child control at field 0x10. Adjusts coordinates by control position before calling vtable offset 0x7c.
0x009EF6E037UIControl__forward_mouse_dblclick_009ef6e0Forwards mouse double-click event to child at field 0x10 via vtable offset 0x70. Adjusts coords by position.
0x009EF71037UIControl__forward_right_click_009ef710Forwards right-click event to child at field 0x10 via vtable offset 0x6c. Adjusts coords by position.
0x009EF74037UIControl__forward_right_dblclick_009ef740Forwards right double-click event to child at field 0x10 via vtable offset 0x78. Adjusts coords by position.
0x009EF77040UIControl__forward_drag_009ef770Forwards drag event to child at field 0x10 via vtable offset 0x88. Adjusts coords by position.
0x009EF7A040UIControl__forward_drag_end_009ef7a0Forwards drag end event to child at field 0x10 via vtable offset 0x80. Adjusts coords by position.
0x009EF7D040UIControl__forward_drag_start_009ef7d0Forwards drag start event to child at field 0x10 via vtable offset 0x84. Adjusts coords by position.
0x009EF80023UIControl__forward_key_event_009ef800Forwards key event to child at field 0x10 via vtable offset 0x8c. No coordinate adjustment.
0x009EF82057UIControl__propagate_color_to_children_009ef820Propagates color value to this control (vtable 0xd4) and all child controls in linked list at field 0x14. Iterates children calling their vtable offset 0xd0.
0x009F084081UITextLabel__draw_text_009f0840Draws 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.
0x009F08A0145UITextLabel__load_icon_texture_009f08a0Loads icon texture for text label from field 0xa0 string resource. Stores result in field 0x80, releases old texture. Uses load_texture_resource helper.
0x009F094064UITextLabel__set_text_009f0940Sets 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).
0x009F0A70101UITextLabel__on_double_click_or_tooltip_009f0a70Handles 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.
0x009F0AE0608UITextLabel__recalculate_layout_009f0ae0Recalculates 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.
0x009F0D4030UITextLabel__set_text_offset_009f0d40Sets text rendering offsets (fields 0xcc, 0xd0) and recalculates layout.
0x009F0D6021UITextLabel__set_truncate_flag_009f0d60Sets text truncation flag (field 0xc8 = 200) and recalculates layout.
0x009F0D8021UITextLabel__set_bold_flag_009f0d80Sets bold text flag (field 0xdc) and recalculates layout.
0x009F0DA024UITextLabel__set_color_009f0da0Sets text color (field 0x38) and triggers layout refresh via vtable 0x98.
0x009F0DC021UITextLabel__set_line_spacing_009f0dc0Sets line spacing (field 0xd8) and recalculates layout.
0x009F0DE035UITextLabel__set_font_by_name_009f0de0Sets font by looking up font index from name via CTextVertex__lookup_font_index_by_name. Stores result in field 0xd4 and recalculates layout.
0x009F0E1025UITextLabel__set_shadow_009f0e10Sets text shadow flag (field 0xec) and shadow color (field 0xf0).
0x009F0E3025UITextLabel__set_outline_009f0e30Sets text outline flag (field 0xe4) and outline color (field 0xe8).
0x009F0E5035UITextLabel__assign_text_and_recalc_009f0e50Assigns text via STL string assign and recalculates layout.
0x009F0E8024UITextLabel__assign_text_no_recalc_009f0e80Assigns text via STL string assign without triggering layout recalculation.
0x009F1210260UITextLabel__auto_resize_to_text_009f1210Auto-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.
0x009F169096UIListItem__update_skin_colors_009f1690Updates 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.
0x009F16F072UIListItem__set_selected_state_009f16f0Sets 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.
0x009F174094UIListItem__set_grid_params_009f1740Sets 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).
0x009F17A0436UIListItem__set_behavior_009f17a0Sets 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.
0x009F19E0185UIProgressBar__draw_bar_009f19e0Draws 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.
0x009F1AA0335UIProgressBar__load_textures_009f1aa0Loads 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.
0x009F1BF078UIProgressBar__on_resize_009f1bf0Handles 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.
0x009F1C40133UIProgressBar__set_3part_textures_009f1c40Enables 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.
0x009F1CD071UIProgressBar__set_single_texture_009f1cd0Sets single texture mode (field 0x20=0) with texture name in field 0x2a. Triggers visual update and layout refresh.
0x009F1D2028UIProgressBar__set_text_if_enabled_009f1d20Sets progress bar text if field 0xdc (show text flag) is nonzero. Delegates to UITextLabel__assign_text_and_recalc.
0x009F782033UIControl__destroy_callback_a_009f7820Destroys callback object at field[9]. Calls destructor via vtable offset 0x10, then nulls the field. Checks self-reference to avoid double-free.
0x009F785033UIControl__destroy_callback_b_009f7850Destroys callback object at field[9]. Same pattern as 009f7820.
0x009F788033UIControl__destroy_callback_c_009f7880Destroys callback object at field[9]. Same pattern as 009f7820.
0x009F78B033UIControl__destroy_callback_d_009f78b0Destroys callback object at field[9]. Same pattern as 009f7820.
0x009F78E033UIControl__destroy_callback_e_009f78e0Destroys callback object at field[9]. Same pattern as 009f7820.
0x009F7A3092UIControl__destroy_callback_seh_aDestroys 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.
0x009F7A9092UIControl__destroy_callback_seh_bDestroys callback object at field[9] with SEH protection. Same pattern as variant A. Variant B.
0x009F7AF092UIControl__destroy_callback_seh_cDestroys callback object at field[9] with SEH protection. Same pattern as variant A. Variant C.
0x009F7B5092UIControl__destroy_callback_seh_dDestroys callback object at field[9] with SEH protection. Same pattern as variant A. Variant D.
0x009F7BB092UIControl__destroy_callback_seh_eDestroys callback object at field[9] with SEH protection. Same pattern as variant A. Variant E.
0x009F85B071UIControlWindow__dtorUIControlWindow destructor. Sets vtable, delegates to UIControlBase::dtor.
0x009F919099UIControlWindow__scalar_deleting_dtorUIControlWindow scalar deleting destructor. Sets vtable, calls UIControlBase::dtor, optionally frees object memory.
0x00A084C0444UIListCtrl__ctorUIListCtrl 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.
0x00A08680348UIListCtrl__dtorUIListCtrl 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.
0x00A0884092UIListCtrlA__release_inner_object_00a08840Releases the inner object at offset 0x24 (field[9]) by calling its Release virtual method (vtable+0x10), then nulls the pointer.
0x00A088A092UIListCtrlB__release_inner_object_00a088a0Releases the inner object at offset 0x24 (field[9]) by calling its Release virtual method (vtable+0x10), then nulls the pointer. Variant B.
0x00A08900129UIListCtrl__free_vector_buffer_00a08900Frees 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.
0x00A08990175UIListCtrl__dtor_00a08990Destructor 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.
0x00A08A40164UIListCtrl__clone_from_source_00a08a40Creates 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.
0x00A08AF038UIListCtrl__scalar_deleting_dtor_00a08af0Scalar deleting destructor for UIListCtrl (size 0x138). Calls the destructor, then conditionally frees the 0x138-byte allocation.
0x00A08B20199UIListCtrl__vdtor_00a08b20Virtual deleting destructor for UIListCtrl-derived class (size 0xF8). Destroys delegate, STL string, buffer, chains to base destructor, then conditionally frees 0xF8-byte object.
0x00A08BF0353UIListCtrl__create_and_init_item_00a08bf0Allocates 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.
0x00A08D60115UIListCtrl__alloc_and_init_item_00a08d60Allocates a 0xEC-byte block and constructs a list item via FUN_00a0eaf0. Returns null if allocation fails.
0x00A08DE085UIListCtrl__clear_all_items_00a08de0Iterates 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.
0x00A08E4036UIListCtrl__set_item_dimensions_00a08e40Stores item width (param_4) and height (param_5) at offsets 0xB4 and 0xB8, then calls FUN_00a7b470 with position params 2 and 3.
0x00A08E7092UIListCtrl__init_and_show_00a08e70Initializes 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.
0x00A08ED069UIListCtrl__get_selected_item_00a08ed0Returns 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.
0x00A08F20525UIListCtrl__create_scrollbar_item_00a08f20Allocates 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.
0x00A0913014475UIListCtrl__static_layout_initStatic 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).
0x00A0C9C01181UIListCtrl__init_label_controls_00a0c9c0Initializes 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).
0x00A0CE7063UIListCtrl__scroll_next_page_00a0ce70Scrolls 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).
0x00A0CEB065UIListCtrl__notify_items_selected_00a0ceb0Iterates 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.
0x00A0CF00603UIListCtrl__rebuild_items_00a0cf00Rebuilds 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.
0x00A0D160522UIListCtrl__load_textures_00a0d160Loads 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.
0x00A0D370115UIListCtrl__set_data_and_refresh_00a0d370Sets 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.
0x00A0D3F0498UIListCtrl__layout_visible_items_00a0d3f0Lays 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.
0x00A0D5F0218UIListCtrl__on_item_selected_00a0d5f0Handles 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.
0x00A0D6D0216UIListCtrl__set_textures_and_refresh_00a0d6d0Sets 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.
0x00A0D7B022UIListCtrl__make_delegate_f1bc_00a0d7b0Delegate initializer: sets vtable to PTR_FUN_0114f1bc and stores this pointer from offset 0x4.
0x00A0D7D022UIListCtrl__make_delegate_f1d8_00a0d7d0Delegate initializer: sets vtable to PTR_FUN_0114f1d8 and stores this pointer from offset 0x4.
0x00A0D7F022UIListCtrl__make_delegate_f1f4_00a0d7f0Delegate initializer: sets vtable to PTR_FUN_0114f1f4 and stores this pointer from offset 0x4.
0x00A0D81022UIListCtrl__make_delegate_f344_00a0d810Delegate initializer: sets vtable to PTR_FUN_0114f344 and stores this pointer from offset 0x4.
0x00A0D83022UIListCtrl__make_delegate_f328_00a0d830Delegate initializer: sets vtable to PTR_FUN_0114f328 and stores this pointer from offset 0x4.
0x00A0D85022UIListCtrl__make_delegate_f210_00a0d850Delegate initializer: sets vtable to PTR_FUN_0114f210 and stores this pointer from offset 0x4.
0x00A0D87022UIListCtrl__make_delegate_f22c_00a0d870Delegate initializer: sets vtable to PTR_FUN_0114f22c and stores this pointer from offset 0x4.
0x00A0D89022UIListCtrl__make_delegate_f248_00a0d890Delegate initializer: sets vtable to PTR_FUN_0114f248 and stores this pointer from offset 0x4.
0x00A0D8B022UIListCtrl__make_delegate_f360_00a0d8b0Delegate initializer: sets vtable to PTR_FUN_0114f360 and stores this pointer from offset 0x4.
0x00A0D8D022UIListCtrl__make_delegate_f264_00a0d8d0Delegate initializer: sets vtable to PTR_FUN_0114f264 and stores this pointer from offset 0x4.
0x00A0D8F022UIListCtrl__make_delegate_f280_00a0d8f0Delegate initializer: sets vtable to PTR_FUN_0114f280 and stores this pointer from offset 0x4.
0x00A0D91022UIListCtrl__make_delegate_f29c_00a0d910Delegate initializer: sets vtable to PTR_FUN_0114f29c and stores this pointer from offset 0x4.
0x00A0D93022UIListCtrl__make_delegate_f2b8_00a0d930Delegate initializer: sets vtable to PTR_FUN_0114f2b8 and stores this pointer from offset 0x4.
0x00A0D95022UIListCtrl__make_delegate_f2d4_00a0d950Delegate initializer: sets vtable to PTR_FUN_0114f2d4 and stores this pointer from offset 0x4.
0x00A0D97022UIListCtrl__make_delegate_f2f0_00a0d970Delegate initializer: sets vtable to PTR_FUN_0114f2f0 and stores this pointer from offset 0x4.
0x00A0D99022UIListCtrl__make_delegate_f30c_00a0d990Delegate initializer: sets vtable to PTR_FUN_0114f30c and stores this pointer from offset 0x4.
0x00A0D9B022UIListCtrl__make_delegate_f1a0_00a0d9b0Delegate initializer: sets vtable to PTR_FUN_0114f1a0 and stores this pointer from offset 0x4.
0x00A0DF3023UIListCtrl__delegate_null_stub_00a0df30Delegate callback thunk: dereferences first param and calls null_stub_00a0ef20 (a no-op) with it and param_2.
0x00A0DF5023UIListCtrl__delegate_forward_00a0df50Delegate callback thunk: dereferences first param and calls FUN_00a0ef30 with it and param_2.
0x00A0DF7065UIListCtrl__delegate_notify_items_00a0df70Delegate 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.
0x00A0DFC020UIListCtrl__delegate_layout_00a0dfc0Delegate callback thunk: dereferences first param and forwards to UIListCtrl__layout_visible_items_00a0d3f0.
0x00A0DFE020UIListCtrl__delegate_forward2_00a0dfe0Delegate callback thunk: dereferences first param and forwards to FUN_00a0f570.
0x00A0E020216UIListCtrl__delegate_on_item_selected_00a0e020Delegate 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.
0x00A0E16025UIListCtrl__delegate_forward_virtual_00a0e160Delegate callback: calls vtable+0x44 on the parent control (this+4) with dereferenced params. Used for forwarding coordinate/position events.
0x00A0E2B022UIListCtrl__make_delegate_f1bc_copy_00a0e2b0Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f1bc and stores this pointer from offset 0x4.
0x00A0E2D022UIListCtrl__make_delegate_f1d8_copy_00a0e2d0Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f1d8 and stores this pointer from offset 0x4.
0x00A0E2F022UIListCtrl__make_delegate_f1f4_copy_00a0e2f0Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f1f4 and stores this pointer from offset 0x4.
0x00A0E31022UIListCtrl__make_delegate_f344_copy_00a0e310Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f344 and stores this pointer from offset 0x4.
0x00A0E33022UIListCtrl__make_delegate_f328_copy_00a0e330Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f328 and stores this pointer from offset 0x4.
0x00A0E35022UIListCtrl__make_delegate_f210_copy_00a0e350Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f210 and stores this pointer from offset 0x4.
0x00A0E37022UIListCtrl__make_delegate_f22c_copy_00a0e370Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f22c and stores this pointer from offset 0x4.
0x00A0E39022UIListCtrl__make_delegate_f248_copy_00a0e390Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f248 and stores this pointer from offset 0x4.
0x00A0E3B022UIListCtrl__make_delegate_f360_copy_00a0e3b0Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f360 and stores this pointer from offset 0x4.
0x00A0E3D022UIListCtrl__make_delegate_f264_copy_00a0e3d0Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f264 and stores this pointer from offset 0x4.
0x00A0E3F022UIListCtrl__make_delegate_f280_copy_00a0e3f0Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f280 and stores this pointer from offset 0x4.
0x00A0E41022UIListCtrl__make_delegate_f29c_copy_00a0e410Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f29c and stores this pointer from offset 0x4.
0x00A0E43022UIListCtrl__make_delegate_f2b8_copy_00a0e430Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f2b8 and stores this pointer from offset 0x4.
0x00A0E45022UIListCtrl__make_delegate_f2d4_copy_00a0e450Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f2d4 and stores this pointer from offset 0x4.
0x00A0E47022UIListCtrl__make_delegate_f2f0_copy_00a0e470Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f2f0 and stores this pointer from offset 0x4.
0x00A0E49022UIListCtrl__make_delegate_f30c_copy_00a0e490Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f30c and stores this pointer from offset 0x4.
0x00A0E4B022UIListCtrl__make_delegate_f1a0_copy_00a0e4b0Delegate initializer copy: sets vtable to PTR_UIListCtrl__make_delegate_f1a0 and stores this pointer from offset 0x4.
0x00A0EAF0242UIListItem__ctor_00a0eaf0Constructor 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.
0x00A0EBF0124UIListItemButton__ctor_00a0ebf0Constructor 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.
0x00A0EC70153UIListItem__dtor_00a0ec70Destructor 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.
0x00A0ED1071UIListItemButton__dtor_00a0ed10Destructor for UIListItemButton. Sets vtable to PTR_FUN_0114f614, then chains to FUN_009da310 (UIButton destructor).
0x00A0ED60177UIListItem__scalar_deleting_dtor_00a0ed60Scalar deleting destructor for UIListItem (size 0xEC). Calls UIListItem__dtor, then conditionally frees the 0xEC-byte allocation.
0x00A0EE2099UIListItemButton__scalar_deleting_dtor_00a0ee20Scalar deleting destructor for UIListItemButton (size 0xF8). Calls UIListItemButton__dtor, then conditionally frees the 0xF8-byte allocation.
0x00A0EF30444UIListItem__render_text_with_color_00a0ef30Renders 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.
0x00A0F0F0183UIListItem__draw_00a0f0f0Draw 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.
0x00A0F1B056UIListItem__draw_separator_00a0f1b0Draws 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.
0x00A0F1F0126UIListItem__init_data_table_00a0f1f0Ensures the singleton CDataTable at DAT_0138d260 exists (allocates 0x1FC bytes and constructs if null), then sets the ItemBonus UI callback to this list item.
0x00A0F280104UIListItem__adjust_child_positions_00a0f280Adjusts 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.
0x00A0F2F0124UIListItem__load_separator_colors_00a0f2f0Loads 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.
0x00A0F370477UIListItem__update_bonus_data_00a0f370Updates 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.
0x00A0F55027UIListItem__on_message_00a0f550Message handler for UIListItem. If message ID is 0x3C, calls update_bonus_data on the item bonus field (offset 0xE8). Returns 0.
0x00A0F57037UIListItem__on_item_changed_00a0f570Handles 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.
0x00A193A0444CListCtrl__ctor_00a193a0Constructor 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.
0x00A19560444CListCtrl__ctor_00a19560Constructor for a list control variant (vtable 0x0115064C). Same pattern as CListCtrl__ctor_00a193a0 but with different vtable and slightly different sentinel node size (0x2C).
0x00A19720444CListCtrl__ctor_00a19720Constructor for a list control variant (vtable 0x01150494). Same pattern with sentinel node size 0x24.
0x00A198E0444CListCtrl__ctor_00a198e0Constructor for a list control variant (vtable 0x011503B8). Same pattern with sentinel node size 0x20.
0x00A19AA0444CListCtrl__ctor_00a19aa0Constructor for a list control variant (vtable 0x0114FF6C). Same pattern with sentinel node size 0xC (minimal).
0x00A1A1C0348CListCtrl__dtor_00a1a1c0Destructor 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.
0x00A1A320348CListCtrl__dtor_00a1a320Destructor for CListCtrl variant (vtable 0x0115064C). Same cleanup pattern with linked list, sentinel nodes, and 4 bitmap objects.
0x00A1A480348CListCtrl__dtor_00a1a480Destructor for CListCtrl variant (vtable 0x01150494). Same cleanup pattern with linked list, sentinel nodes, and 4 bitmap objects.
0x00A1A5E0348CListCtrl__dtor_00a1a5e0Destructor for CListCtrl variant (vtable 0x011503B8). Same cleanup pattern with linked list, sentinel nodes, and 4 bitmap objects.
0x00A1A740393CListCtrl__dtor_00a1a740Destructor for CListCtrl variant (vtable 0x0114FF6C). Differs from others: manually walks and frees linked list nodes (0xC-byte items), then same cleanup pattern.
0x00A1A8D033UIWidget__destroy_child_at_0x24_00a1a8d0Destroys a child widget stored at offset +0x24. Calls virtual destructor (vtable+0x10) with ownership flag, then NULLs the pointer.
0x00A1A90033UIWidget__destroy_child_at_0x24_00a1a900Destroys a child widget stored at offset +0x24. Calls virtual destructor (vtable+0x10) with ownership flag, then NULLs the pointer.
0x00A1A93033UIWidget__destroy_child_at_0x24_00a1a930Destroys a child widget stored at offset +0x24. Calls virtual destructor (vtable+0x10) with ownership flag, then NULLs the pointer.
0x00A1A96033UIWidget__destroy_child_at_0x24_00a1a960Destroys a child widget stored at offset +0x24. Calls virtual destructor (vtable+0x10) with ownership flag, then NULLs the pointer.
0x00A1A99033UIWidget__destroy_child_at_0x24_00a1a990Destroys a child widget stored at offset +0x24. Calls virtual destructor (vtable+0x10) with ownership flag, then NULLs the pointer.
0x00A1A9C092UIWidget__destroy_child_seh_00a1a9c0SEH-wrapped version of child widget destruction at offset +0x24. Same logic but with structured exception handling frame.
0x00A1AA2092UIWidget__destroy_child_seh_00a1aa20SEH-wrapped version of child widget destruction at offset +0x24. Same logic but with structured exception handling frame.
0x00A1AA8092UIWidget__destroy_child_seh_00a1aa80SEH-wrapped version of child widget destruction at offset +0x24.
0x00A1AAE092UIWidget__destroy_child_seh_00a1aae0SEH-wrapped version of child widget destruction at offset +0x24.
0x00A1AB4092UIWidget__destroy_child_seh_00a1ab40SEH-wrapped version of child widget destruction at offset +0x24.
0x00A1ABA0152CListCtrl__destroy_item_list_0x70_00a1aba0Destroys 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.
0x00A1AC40134CListCtrl__destroy_item_list_0x2c_00a1ac40Destroys a linked list of 0x2C-byte list items. Each node has one string that gets destroyed. Walks list, frees each node, then frees sentinel.
0x00A1ACD0134CListCtrl__destroy_item_list_0x24_00a1acd0Destroys a linked list of 0x24-byte list items. Each node has one string that gets destroyed. Walks list, frees each node, then frees sentinel.
0x00A1AED0164UIWidget__clone_child_object_00a1aed0Clones 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.
0x00A1AF80164UIWidget__clone_child_object_00a1af80Clones 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.
0x00A1B030164UIWidget__clone_child_object_00a1b030Clones 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.
0x00A1B0E0164UIWidget__clone_child_object_00a1b0e0Clones 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.
0x00A1B190164UIWidget__clone_child_object_00a1b190Clones 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.
0x00A1B6C038CListCtrl__scalar_deleting_dtor_00a1b6c0Scalar deleting destructor for CListCtrl (0x138 bytes). Calls CListCtrl__dtor_00a1a1c0 then conditionally frees.
0x00A1B6F038CListCtrl__scalar_deleting_dtor_00a1b6f0Scalar deleting destructor for CListCtrl variant. Calls dtor then conditionally frees.
0x00A1B72038CListCtrl__scalar_deleting_dtor_00a1b720Scalar deleting destructor for CListCtrl variant. Calls dtor then conditionally frees.
0x00A1B75038CListCtrl__scalar_deleting_dtor_00a1b750Scalar deleting destructor for CListCtrl variant. Calls dtor then conditionally frees.
0x00A1B78038CListCtrl__scalar_deleting_dtor_00a1b780Scalar deleting destructor for CListCtrl variant. Calls dtor then conditionally frees.
0x00A1BFD085CListCtrl__clear_all_items_00a1bfd0Clears 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.
0x00A1C03085CListCtrl__clear_all_items_00a1c030Clears all items from a list control variant. Same pattern as 00a1bfd0.
0x00A1C09085CListCtrl__clear_all_items_00a1c090Clears all items from a list control variant. Same pattern as 00a1bfd0.
0x00A1C0F085CListCtrl__clear_all_items_00a1c0f0Clears all items from a list control variant. Same pattern as 00a1bfd0.
0x00A1C15085CListCtrl__clear_all_items_00a1c150Clears all items from a list control variant. Same pattern as 00a1bfd0.
0x00A1ED3036UIWidget__set_size_and_position_00a1ed30Sets widget size (this+0xB4, this+0xB8) from params 4,5 and calls FUN_00a7b470 to set position from params 2,3.
0x00A1ED6036UIWidget__set_size_and_position_00a1ed60Sets widget size and position. Same pattern as 00a1ed30.
0x00A1ED9036UIWidget__set_size_and_position_00a1ed90Sets widget size and position. Same pattern as 00a1ed30.
0x00A1EDC036UIWidget__set_size_and_position_00a1edc0Sets widget size and position. Same pattern as 00a1ed30.
0x00A1EDF036UIWidget__set_size_and_position_00a1edf0Sets widget size and position. Same pattern as 00a1ed30.
0x00A1F08069CListCtrl__get_selected_item_00a1f080Gets 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.
0x00A1F0D069CListCtrl__get_selected_item_00a1f0d0Gets the currently selected item from the list control. Same pattern as 00a1f080.
0x00A1F12069CListCtrl__get_selected_item_00a1f120Gets the currently selected item from the list control. Same pattern as 00a1f080.
0x00A1F17069CListCtrl__get_selected_item_00a1f170Gets the currently selected item from the list control. Same pattern as 00a1f080.
0x00A1F1C069CListCtrl__get_selected_item_00a1f1c0Gets the currently selected item from the list control. Same pattern as 00a1f080.
0x00A3472065CListCtrl__set_selected_highlight_00a34720Iterates 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.
0x00A3477065CListCtrl__set_selected_highlight_00a34770Sets selection highlight on list control items. Same pattern as 00a34720.
0x00A347C065CListCtrl__set_selected_highlight_00a347c0Sets selection highlight on list control items. Same pattern as 00a34720.
0x00A3481065CListCtrl__set_selected_highlight_00a34810Sets selection highlight on list control items. Same pattern as 00a34720.
0x00A3486065CListCtrl__set_selected_highlight_00a34860Sets selection highlight on list control items. Same pattern as 00a34720.
0x00A348B0545CListCtrl__rebuild_visible_items_00a348b0Rebuilds 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.
0x00A34AE0545CListCtrl__rebuild_visible_items_00a34ae0Rebuilds visible item components in a list control variant. Same pattern as 00a348b0.
0x00A34D10545CListCtrl__rebuild_visible_items_00a34d10Rebuilds visible item components in a list control variant. Same pattern as 00a348b0.
0x00A34F40545CListCtrl__rebuild_visible_items_00a34f40Rebuilds visible item components in a list control variant. Same pattern as 00a348b0.
0x00A35170603CListCtrl__rebuild_visible_items_00a35170Rebuilds visible item components in a list control variant (603 bytes). Slightly different size due to different item node layout.
0x00A353D0196CListCtrl__set_scroll_callbackSets 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.
0x00A354A0522CListCtrl__load_item_texturesLoads 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.
0x00A356B0522CListCtrl__load_item_textures_00a356b0Loads item textures for a list control variant. Same pattern as 00a354a0 - loads 4 texture states and applies to child buttons.
0x00A358C0522CListCtrl__load_item_textures_00a358c0Loads item textures for a list control variant. Same pattern as 00a354a0.
0x00A35AD0522CListCtrl__load_item_textures_00a35ad0Loads item textures for a list control variant. Same pattern as 00a354a0.
0x00A35CE0522CListCtrl__load_item_textures_00a35ce0Loads item textures for a list control variant. Same pattern as 00a354a0.
0x00A35EF0115CListCtrl__add_item_and_refresh_00a35ef0Adds 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.
0x00A35F70115CListCtrl__add_item_and_refresh_00a35f70Adds an item to the list and refreshes. Same pattern as 00a35ef0.
0x00A35FF0115CListCtrl__add_item_and_refresh_00a35ff0Adds an item to the list and refreshes. Same pattern as 00a35ef0.
0x00A36070115CListCtrl__add_item_and_refresh_00a36070Adds an item to the list and refreshes. Same pattern as 00a35ef0.
0x00A360F0115CListCtrl__add_item_and_refresh_00a360f0Adds an item to the list and refreshes. Same pattern as 00a35ef0.
0x00A36170498CListCtrl__layout_visible_items_00a36170Lays 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.
0x00A36370498CListCtrl__layout_visible_items_00a36370Lays out visible items in the list based on scroll position. Same pattern as 00a36170.
0x00A36570498CListCtrl__layout_visible_items_00a36570Lays out visible items in the list based on scroll position. Same pattern as 00a36170.
0x00A36770498CListCtrl__layout_visible_items_00a36770Lays out visible items in the list based on scroll position. Same pattern as 00a36170.
0x00A36970498CListCtrl__layout_visible_items_00a36970Lays out visible items in the list based on scroll position. Same pattern as 00a36170.
0x00A36DD0218CListCtrl__on_item_clicked_00a36dd0Handles 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.
0x00A36EB0218CListCtrl__on_item_clicked_00a36eb0Handles item click in list control variant. Same pattern as 00a36dd0.
0x00A36F90218CListCtrl__on_item_clicked_00a36f90Handles item click in list control variant. Same pattern as 00a36dd0.
0x00A37070218CListCtrl__on_item_clicked_00a37070Handles item click in list control variant. Same pattern as 00a36dd0.
0x00A37150319CListCtrl__create_header_row_00a37150Creates 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.
0x00A37290319CListCtrl__create_header_row_00a37290Creates a header row for list control variant. Same pattern as 00a37150.
0x00A373D0319CListCtrl__create_header_row_00a373d0Creates a header row for list control variant. Same pattern as 00a37150.
0x00A37510319CListCtrl__create_header_row_00a37510Creates a header row for list control variant. Same pattern as 00a37150.
0x00A37650216CListCtrl__set_text_strings_00a37650Sets 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.
0x00A3C390176UIWidget__ctor_00a3c390Constructor 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.
0x00A3C44094UIComponent__ctor_00a3c440Constructor for a UI component. Calls base ctor FUN_009efc30, sets vtable to PTR_FUN_0115202c, initializes member at offset 0x3a to 0.
0x00A3CA60186UIProgressBar__ctor_00a3ca60Constructor 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).
0x00A3D010138UIListItem__copy_ctor_00a3d010Copy 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.
0x00A3D61084UIWidget__dtor_00a3d610Destructor for UIWidget (vtable PTR_FUN_01152844). Resets vtable to UIBase, calls UIBase dtor (FUN_00a79e90).
0x00A3D67071UIComponent__dtor_00a3d670Destructor for UIComponent (vtable PTR_FUN_0115202c). Calls base dtor FUN_009da310.
0x00A3DA3084UIProgressBar__dtor_00a3da30Destructor for UIProgressBar (vtable PTR_FUN_0115267c). Resets vtable to UIBase, calls UIBase dtor.
0x00A3DDD0108UIListItem__assign_00a3ddd0Assignment 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).
0x00A3DE40112UIWidget__scalar_deleting_dtor_00a3de40Scalar deleting destructor for UIWidget. Destroys the widget (UIBase dtor), then conditionally frees the 0x98-byte allocation if bit 0 of param is set.
0x00A3DEB099UIComponent__scalar_deleting_dtor_00a3deb0Scalar deleting destructor for UIComponent. Destroys the component (UIControlBase dtor), then conditionally frees the 0xF0-byte allocation.
0x00A3E0F0112UIProgressBar__scalar_deleting_dtorUIProgressBar scalar deleting destructor. Sets vtable chain, calls CEffect::dtor, optionally frees 0x94-byte object.
0x00A3E340112UIProgressBar__scalar_deleting_dtor_00a3e340Scalar deleting destructor for UIProgressBar. Calls UIBase dtor, then conditionally frees 0x9C-byte allocation.
0x00A3FC8068UIListCtrl__get_item_at_indexGets 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).
0x00A44170115UITextLabel__create_00a44170Factory function that allocates 0x120 bytes for a UITextLabel, calls FUN_00a477f0 (constructor) on it. Returns the new object or 0 on allocation failure.
0x00A441F066UITextLabel__init_default_00a441f0Initializes 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.
0x00A4729022UITextLabel__init_vtable_a_00a47290Vtable interface initializer. Sets vtable ptr to PTR_FUN_0115314c and copies parent field at +4.
0x00A472B022UITextLabel__init_vtable_b_00a472b0Vtable interface initializer. Sets vtable ptr to PTR_FUN_01153168 and copies parent field at +4.
0x00A472D022UITextLabel__init_vtable_c_00a472d0Vtable interface initializer. Sets vtable ptr to PTR_FUN_01153184 and copies parent field at +4.
0x00A472F022UITextLabel__init_vtable_d_00a472f0Vtable interface initializer. Sets vtable ptr to PTR_FUN_011531a0 and copies parent field at +4.
0x00A4731022UITextLabel__init_vtable_e_00a47310Vtable interface initializer. Sets vtable ptr to PTR_FUN_011531bc and copies parent field at +4.
0x00A4733022UITextLabel__init_vtable_f_00a47330Vtable interface initializer. Sets vtable ptr to PTR_FUN_011531d8 and copies parent field at +4.
0x00A4735022UITextLabel__init_vtable_g_00a47350Vtable interface initializer. Sets vtable ptr to PTR_FUN_01153130 and copies parent field at +4.
0x00A4737068UITextLabel__conditional_delete_a_00a47370Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped.
0x00A473C068UITextLabel__conditional_delete_b_00a473c0Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped.
0x00A4741068UITextLabel__conditional_delete_c_00a47410Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped.
0x00A4746068UITextLabel__conditional_delete_d_00a47460Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped.
0x00A474B068UITextLabel__conditional_delete_e_00a474b0Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped.
0x00A4750068UITextLabel__conditional_delete_f_00a47500Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped.
0x00A4755068UITextLabel__conditional_delete_g_00a47550Conditional delete helper. If param_2 is non-zero, frees 8 bytes at this pointer. SEH-wrapped.
0x00A475E020UITextLabel__delegate_select_a_00a475e0Delegate that calls FUN_00a47cd0 (set_selection_index) with the value pointed to by param_1. Used as callback.
0x00A4760020UITextLabel__delegate_select_b_00a47600Delegate that calls FUN_00a47cd0 (set_selection_index) with the value pointed to by param_1. Used as callback.
0x00A476A022UITextLabel__init_vtable_h_00a476a0Vtable interface initializer. Sets vtable ptr to PTR_FUN_0115314c and copies parent field at +4.
0x00A476C022UITextLabel__init_vtable_i_00a476c0Vtable interface initializer. Sets vtable ptr to PTR_FUN_01153168 and copies parent field at +4.
0x00A476E022UITextLabel__init_vtable_j_00a476e0Vtable interface initializer. Sets vtable ptr to PTR_FUN_01153184 and copies parent field at +4.
0x00A4770022UITextLabel__init_vtable_k_00a47700Vtable interface initializer. Sets vtable ptr to PTR_FUN_011531a0 and copies parent field at +4.
0x00A4772022UITextLabel__init_vtable_l_00a47720Vtable interface initializer. Sets vtable ptr to PTR_FUN_011531bc and copies parent field at +4.
0x00A4774022UITextLabel__init_vtable_m_00a47740Vtable interface initializer. Sets vtable ptr to PTR_FUN_011531d8 and copies parent field at +4.
0x00A4776022UITextLabel__init_vtable_n_00a47760Vtable interface initializer. Sets vtable ptr to PTR_FUN_01153130 and copies parent field at +4.
0x00A477F0349UITextLabel__ctor_00a477f0Constructor 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.
0x00A4795095UITextLabel__dtor_00a47950Destructor for UITextLabel. Sets vtable to PTR_FUN_01153444, destroys STL string, then calls base class dtor FUN_009e69d0.
0x00A479B0119UITextLabel__scalar_deleting_dtor_00a479b0Scalar deleting destructor for UITextLabel. Sets vtable, destroys STL string, calls base dtor. Conditionally frees 0x120 bytes if param_2 & 1.
0x00A47A50456UITextLabel__submit_chat_message_00a47a50Builds 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.
0x00A47C40130UITextLabel__show_centered_and_load_data_00a47c40Shows 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).
0x00A47CD050UITextLabel__set_selection_index_00a47cd0Sets 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.
0x00A47FA0444UIScrollableList__ctorConstructor 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.
0x00A48160348UIScrollableList__dtor_00a48160Destructor 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.
0x00A482C033UIScrollableList__release_child_widget_00a482c0Releases child widget at field +9 (offset 0x24). If non-null, calls vtable+0x10 on it and nulls the pointer.
0x00A482F092UIScrollableList__release_child_seh_00a482f0SEH-wrapped version of release_child_widget. Same logic: releases child at +9 via vtable+0x10 if non-null.
0x00A48350134UIScrollableList__destroy_linked_list_00a48350Destroys 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.
0x00A483E0129UIScrollableList__free_item_vector_00a483e0Frees 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).
0x00A48470164UIScrollableList__create_from_descriptor_00a48470Creates 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.
0x00A4852038UIScrollableList__scalar_deleting_dtor_00a48520Scalar deleting destructor for UIScrollableList. Calls FUN_00a48160 (dtor), then frees 0x138 bytes if param_2 & 1.
0x00A48550353UIScrollableList__create_item_widget_00a48550Creates 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.
0x00A486C0115UIListItem__create_00a486c0Factory function that allocates 0x110 bytes and constructs a UIListItem via FUN_00a4d6a0. Returns pointer or 0 on allocation failure.
0x00A4874085UIScrollableList__clear_all_items_00a48740Clears 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.
0x00A487A036UIScrollableList__set_dimensions_and_position_00a487a0Sets 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.
0x00A487D059UIScrollableList__init_default_00a487d0Initializes 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.
0x00A4881069UIScrollableList__get_selected_item_00a48810Gets 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.
0x00A48860525UIScrollableList__init_dialog_container_00a48860Initializes 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.
0x00A48A702388UIScrollableList__setup_text_labels_00a48a70Sets 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.
0x00A493D011285UIScrollableList__main_ctor_00a493d0Large constructor for UIScrollableList (11285 bytes). Too large to decompile in agent context. Initializes the full scrollable list control including all sub-widgets.
0x00A4C00063UIScrollableList__handle_scroll_event_00a4c000Handles 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.
0x00A4C04065UIScrollableList__set_active_item_00a4c040Sets 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.
0x00A4C090603UIScrollableList__rebuild_visible_items_00a4c090Rebuilds 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.
0x00A4C2F0522UIScrollableList__load_textures_00a4c2f0Loads 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.
0x00A4C500115UIScrollableList__resize_and_rebuild_00a4c500Resizes 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.
0x00A4C580498UIScrollableList__update_visible_range_00a4c580Updates 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.
0x00A4C780218UIScrollableList__on_item_clicked_00a4c780Item 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.
0x00A4C860216UIScrollableList__set_texture_names_00a4c860Sets 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.
0x00A4C94022UIScrollableList__init_vtable_a_00a4c940Initializes a vtable callback object. Sets vtable pointer and copies parent object reference from param_1+4.
0x00A4C96022UIScrollableList__init_vtable_b_00a4c960Initializes a vtable-based delegate functor for UIScrollableList.
0x00A4C98022UIScrollableList__init_vtable_c_00a4c980Initializes a vtable-based delegate functor for UIScrollableList.
0x00A4C9A022UIScrollableList__init_vtable_d_00a4c9a0Initializes a vtable-based delegate functor for UIScrollableList.
0x00A4C9C022UIScrollableList__init_vtable_e_00a4c9c0Initializes a vtable-based delegate functor for UIScrollableList.
0x00A4C9E022UIScrollableList__init_vtable_f_00a4c9e0Initializes a vtable-based delegate functor for UIScrollableList.
0x00A4CA0022UIScrollableList__init_vtable_g_00a4ca00Initializes a vtable-based delegate functor for UIScrollableList.
0x00A4CA2022UIScrollableList__init_vtable_h_00a4ca20Initializes a vtable-based delegate functor for UIScrollableList.
0x00A4CA4022UIScrollableList__init_vtable_i_00a4ca40Initializes a vtable-based delegate functor for UIScrollableList.
0x00A4CA6068UIScrollableList__conditional_delete_a_00a4ca60Scalar deleting destructor for a callback delegate object. If param_2 is true, frees the 8-byte object memory.
0x00A4CAB068UIScrollableList__conditional_delete_b_00a4cab0Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory.
0x00A4CB0068UIScrollableList__conditional_delete_c_00a4cb00Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory.
0x00A4CB5068UIScrollableList__conditional_delete_d_00a4cb50Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory.
0x00A4CBA068UIScrollableList__conditional_delete_e_00a4cba0Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory.
0x00A4CBF068UIScrollableList__conditional_delete_f_00a4cbf0Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory.
0x00A4CC4068UIScrollableList__conditional_delete_g_00a4cc40Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory.
0x00A4CC9068UIScrollableList__conditional_delete_h_00a4cc90Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory.
0x00A4CCE068UIScrollableList__conditional_delete_i_00a4cce0Scalar deleting destructor for a UIScrollableList delegate. Calls destructor and optionally frees memory.
0x00A4CD6065UIScrollableList__delegate_set_active_itemDelegate 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.
0x00A4CDB020UIScrollableList__delegate_scroll_changedDelegate callback that forwards scroll position changes to UIScrollableList__update_visible_range. Called when the scrollbar value changes.
0x00A4CDD023UIScrollableList__delegate_null_stub_00a4cdd0Delegate that forwards to null_stub_00a4e030 - effectively a no-op callback handler.
0x00A4CDF023UIScrollableList__delegate_forward_00a4cdf0Delegate that forwards to UIListItem__bind_data_display to bind data to a list item widget for display.
0x00A4CE10216UIScrollableList__delegate_item_click_00a4ce10Delegate 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.
0x00A4CFA022UIScrollableList__init_vtable_j_00a4cfa0Initializes a vtable-based delegate functor for UIScrollableList.
0x00A4CFC022UIScrollableList__init_vtable_k_00a4cfc0Initializes a vtable-based delegate functor for UIScrollableList.
0x00A4CFE022UIScrollableList__init_vtable_l_00a4cfe0Initializes a vtable-based delegate functor for UIScrollableList.
0x00A4D00022UIScrollableList__init_vtable_mInitializes a vtable callback object using the same vtable pointer as init_vtable_d (011536c0). Sets vtable and copies parent object reference.
0x00A4D02022UIListItem__init_vtable_a_00a4d020Initializes a vtable-based delegate functor for UIListItem.
0x00A4D04022UIListItem__init_vtable_b_00a4d040Initializes a vtable-based delegate functor for UIListItem.
0x00A4D06022UIListItem__init_vtable_c_00a4d060Initializes a vtable-based delegate functor for UIListItem.
0x00A4D08022UIListItem__init_vtable_d_00a4d080Initializes a vtable-based delegate functor for UIListItem.
0x00A4D0A022UIListItem__init_vtable_e_00a4d0a0Initializes a vtable-based delegate functor for UIListItem.
0x00A4D620114UIListItemButton__ctor_00a4d620Constructor 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).
0x00A4D6A0313UIListItemWindow__ctor_00a4d6a0Constructor 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.
0x00A4D98071UIListItemButton__dtor_00a4d980Destructor for UIListItemButton. Sets vtable to PTR_FUN_011538f4, then calls UIControlBase__dtor.
0x00A4D9D095UIListItemWindow__dtor_00a4d9d0Destructor for UIListItemWindow. Sets vtable to PTR_FUN_011539dc, destroys embedded STL string, calls CUIWindow__dtor_save_position.
0x00A4DA3099UIListItemButton__scalar_deleting_dtor_00a4da30Scalar deleting destructor for UIListItemButton (0xF8 bytes). Calls dtor then frees if param_2 & 1.
0x00A4DAA0119UIListItemWindow__scalar_deleting_dtor_00a4daa0Scalar deleting destructor for UIListItemWindow (0x110 bytes). Calls dtor, destroys STL string, then frees if param_2 & 1.
0x00A4DB20352UIScrollableList__add_item_00a4db20Adds 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.
0x00A4DCA0750UIScrollableList__search_and_select_00a4dca0Searches 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.
0x00A4DF90123UIScrollableList__clear_all_data_00a4df90Clears 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.
0x00A4E040206UIListItem__bind_data_display_00a4e040Binds 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.
0x00A4E110109UIScrollableList__draw_border_lines_00a4e110Draws 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.
0x00A4E180207UIScrollableList__draw_grid_background_00a4e180Draws 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.
0x00A4E25043UIScrollableList__disable_both_scrollbars_00a4e250Disables and hides both scrollbar widgets by calling UIScrollbar__disable_and_hide(1) twice.
0x00A4E280200UIScrollableList__show_positioned_with_labels_00a4e280Shows 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.
0x00A4E36074UIScrollableList__refresh_scroll_range_00a4e360Refreshes the scroll range based on item count * item height + padding. Sets max value, visible range, and current scroll value. Marks dirty flag +0xE1.
0x00A4E3B0124UIScrollableList__rebind_item_at_index_00a4e3b0Re-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.
0x00A4E43089UIScrollableList__scroll_to_and_select_00a4e430Scrolls 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.
0x00A4E49056UIScrollableList__handle_button_event_00a4e490Button 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.
0x00A4FE4036UIScrollableList__set_scroll_params_and_initSets 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.
0x00A4FE7066UIScrollableList__init_layoutInitializes 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.
0x00A4FEC069UIScrollableList__get_selected_itemGets 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.
0x00AA13501118CUIWindowMgr__create_window_by_typeCreates 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.
0x00AA18002248CUIWindowMgr__reset_all_window_stateResets 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.
0x00AA20F0311CUIWindowMgr__show_message_boxShows 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.
0x00AA2230671CUIWindowMgr__close_window_and_process_queueCloses 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.
0x00AA2510170CUIWindowMgr__update_cell_positionsIterates 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.
0x00AA26C0145CUIWindowMgr__render_all_windowsRenders 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.
0x00AA27B0585CUIWindowMgr__add_or_show_windowCreates 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.
0x00AA2A00496CUIWindowMgr__create_achievement_windowCreates 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.
0x00AA2BF066CUIWindowMgr__invalidate_all_windowsIterates 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.
0x00AA2C4066CUIWindowMgr__resize_all_windowsIterates 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.
0x00AA2C90117CUIWindowMgr__unregister_windowUnregisters 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.
0x00AA2D10149CUIWindowMgr__reorder_window_by_typeReorders 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.
0x00AA2DB01704CUIWindowMgr__handle_keyboard_inputHandles 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.
0x00AA35F04061CUIWindowMgr__handle_shortcut_commandProcesses 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.
0x00AA47303691CUIWindowMgr__process_mouse_inputMain 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.
0x00AA55C0387CUIWindowMgr__dispatch_key_eventTop-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.
0x00AA57E0799CUIWindowMgr__send_chat_lineSends 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).
0x00AA5B00912CUIWindowMgr__manage_window_visibility_stateMulti-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).
0x00AA5E90218CUIWindowMgr__close_and_clear_window_refCloses 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).
0x00AA5F70706CUIWindowMgr__find_window_by_typeLooks 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.
0x00AA6440133CUIWindowMgr__notify_language_changeNotifies 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.
0x00AA64D0379CUIWindowMgr__notify_item_data_changedNotifies 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.
0x00AA6650103CUIWindowMgr__flush_pending_windowsProcesses 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).
0x00AA66C011CUIWindowMgr__clear_hover_windowClears the hover/mouseover window pointer at offset 0x19c to null.
0x00AA66D01188CUIWindowMgr__destroy_all_windowsDestroys 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.
0x00AA6B801616CUIWindowMgr__rebuild_window_layoutRebuilds 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.
0x00AA71E031CUIWindowMgr__close_popup_windowCloses the popup window stored at offset 0x4f250. Unregisters it from the window manager and sets the pointer to null.
0x00AA720077CUIWindowMgr__remove_from_pending_listRemoves 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.
0x00AA7250341CUIWindowMgr__destroy_single_windowDestroys 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.
0x00AA73B0696CUIWindowMgr__render_all_visible_windowsRenders 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.
0x00AA7670113CUIWindowMgr__render_floating_windowsRenders 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.
0x00AA76F02466CUIWindowMgr__render_minimap_uiRenders 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.
0x00AA80A098CUIWindowMgr__center_loading_windowCenters 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.
0x00AA8130778CUIWindowMgr__build_save_packetBuilds 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).
0x00AA8660786CUIWindowMgr__build_window_layout_save_packetBuilds 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).
0x00AA8980109CUIWindowMgr__reset_ui_state_from_packetResets 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).
0x00AA8B20266CUIWindowMgr__parse_save_packetParses 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.
0x00AA8D10537CUIWindowMgr__parse_window_layout_packetParses 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.
0x00AA8F3011CUIWindowMgr__clear_tooltip_windowClears the tooltip window pointer at offset 0x1b8 to null.
0x00AA8F50114CUIWindowMgr__scroll_to_bottom_allSends 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.
0x00AA8FD0298CUIWindowMgr__save_window_positionSaves 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.
0x00AA91002342CUIWindowMgr__dispatch_chat_messageMain 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.
0x00AA9B3016CUIWindowMgr__set_hover_windowSets the hover/mouseover window pointer at offset 0x19c to the given value.
0x00AA9B40115CUIWindowMgr__set_focus_windowSets 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.
0x00AA9BC0168CUIWindowMgr__focus_next_childMoves 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.
0x00AA9C70173CUIWindowMgr__focus_prev_childMoves 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.
0x00AA9D20158CUIWindowMgr__focus_next_siblingMoves 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.
0x00AA9DC0158CUIWindowMgr__focus_prev_siblingMoves 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.
0x00AA9E6041CUIWindowMgr__set_topmost_windowSets 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.
0x00AA9E9052CUIWindowMgr__close_popup_if_activeCloses 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.
0x00AA9ED0150CUIWindowMgr__set_loading_screen_sizeSets 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.
0x00AA9F7088CUIWindowMgr__deactivate_chat_inputDeactivates 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.
0x00AA9FD0119CUIWindowMgr__set_loading_textureSets 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.
0x00AAA28070CUIWindowMgr__toggle_minimap_visibilityToggles 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.
0x00AAA2D053CUIWindowMgr__show_hide_windows_by_typeShows 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.
0x00AAA3102051CUIWindowMgr__toggle_window_by_typeToggles 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.
0x00AAAB20609CUIWindowMgr__update_grid_layoutUpdates 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.
0x00AAADA076CUIWindowMgr__broadcast_timer_eventBroadcasts 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.
0x00AAAE60168CUIWindowMgr__dispatch_enter_key_to_focusedDispatches 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.
0x00AAAF10348CUIWindowMgr__send_event_to_grid_windowFinds 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.
0x00AAB0D0307CUIWindowMgr__register_window_in_gridRegisters 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.
0x00AAB21067CUIWindowMgr__update_web_browser_overlaysIterates 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.
0x00AAB2601592CUIWindowMgr__build_window_reopen_listBuilds 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.
0x00AAB8A062CUIWindowMgr__check_and_send_close_eventChecks 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.
0x00AAB8E057CUIWindowMgr__broadcast_mouse_positionBroadcasts 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.
0x00AAD8E0752CUIWindowMgr__open_or_find_npc_windowOpens 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.
0x00AB112038CUIWindowMgr__is_chat_input_focusedReturns 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.