Back to legacygamers.net
WARPGATE

UI Events

UI event handlers, UIWindow messages, UIListBox/Button/Scrollbar/Tab/Tree/EditBox events, callbacks

Functions 1,010Code 309 KBAddresses 0x0077EF40 to 0x00A86E30Group UI
1,010 functions
AddressSizeNameDescription
0x0077EF4026UIWindow__InvokeVfuncHandlerInvokes the first virtual function on the object with forwarded parameters and some zeroed defaults.
0x0077EF7042ui_callback_create_skill_effect_aUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null. Used as an effect handler callback.
0x0077EFA036ui_callback_remove_effect_0x99c_aUI callback that removes effect 0x99C from the actor's effect manager at offset +0x110 via CEffectMgr__find_effect_by_type_and_id. Guard checks param_2 is non-null.
0x0077F60036ui_callback_remove_effect_0x99c_bUI callback that removes effect 0x99C from the actor's effect manager at offset +0x110 via CEffectMgr__find_effect_by_type_and_id. Duplicate of ui_callback_remove_effect_0x99c_a.
0x0077FD6042ui_callback_create_skill_effect_bUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null. Duplicate of ui_callback_create_skill_effect_a at a different address.
0x0078084042ui_callback_create_skill_effect_cUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null.
0x00780DB042ui_callback_create_skill_effect_dUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null.
0x007812F036ui_callback_remove_effect_0x99dUI callback that removes effect 0x99D from the actor's effect manager at offset +0x110 via CEffectManager__remove_effect_by_id_and_type. Guard checks param_2 is non-null.
0x00781B5042ui_callback_create_skill_effect_eUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null.
0x00781C3042ui_callback_create_skill_effect_fUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null.
0x00781DB077ui_callback_create_effect_0x51eUI callback that creates effect 0x51E on the actor's effect manager at offset +0x110 via CEffectManager__create_effect with default position/params. Guard checks param_2 is non-null.
0x00781E0077ui_callback_create_effect_0x963UI callback that creates effect 0x963 on the actor's effect manager at offset +0x110 via CEffectManager__create_effect with default position/params. Guard checks param_2 is non-null.
0x00781E5036ui_callback_remove_effect_0x963UI callback that removes effect 0x963 from the actor's effect manager at offset +0x110 via CEffectManager__remove_effect_by_id_and_type. Guard checks param_2 is non-null.
0x00781E8026UIWindow__InvokeVfuncHandler_bInvokes the first virtual function on the object with forwarded parameters and some zeroed defaults. Duplicate of UIWindow__InvokeVfuncHandler.
0x00781EA042ui_callback_create_skill_effect_gUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null.
0x007820B077ui_callback_create_effect_0x4e8UI callback that creates effect 0x4E8 on the actor's effect manager at offset +0x110 via CEffectManager__create_effect with default position/params. Guard checks param_2 is non-null.
0x00782270285ui_callback_remove_groggy_effectUI callback that removes the "groggy_on_loop" effect from the actor's effect manager at offset +0x110. Looks up the effect ID by name string via CEffectDataMgr, then calls CEffectManager__remove_effect_by_id_and_type.
0x0078239026UIWindow__InvokeVfuncHandler_cInvokes the first virtual function on the object with forwarded parameters and zeroed defaults.
0x007823B0180ui_callback_npc_reset_effectUI callback that sends message 0x96a and plays the "NPC_RESET_EFST" sound effect. Calculates relative position from player to play 3D positional audio.
0x00782700303ui_callback_stop_target_marker_effectUI callback that stops the "target_marker_loop" effect. Looks up the effect ID by name from CEffectDataMgr and sends stop command to the object at param_2+0x110.
0x0078283026UIWindow__InvokeVfuncHandler_dInvokes the first virtual function on the object with forwarded parameters and zeroed defaults.
0x0078286042ui_callback_close_window_hUI callback that closes/destroys a window if param_2 is non-null.
0x00782890180ui_callback_aimed_shower_effectUI callback that sends message 0x4f4 and plays the "NPC_AIMED_SHOWER" sound effect. Calculates relative position from player for 3D positional audio.
0x0078295077ui_callback_send_msg_0x965UI callback that sends extended message 0x965 with default params to the object at param_2+0x110.
0x007829A042ui_callback_close_window_iUI callback that closes/destroys a window if param_2 is non-null.
0x00782B2042ui_callback_close_window_jUI callback that closes/destroys a window if param_2 is non-null.
0x00782F20565ui_callback_stop_block_seal_effectsUI callback that stops the "npc_block_seal_loop_bottom" and "npc_block_seal_loop" effects. Sends message 0x960 first, then stops both effect IDs looked up from CEffectDataMgr.
0x0078316026UIWindow__InvokeVfuncHandler_eInvokes the first virtual function on the object with forwarded parameters and zeroed defaults.
0x007832F042ui_callback_close_window_kUI callback that closes/destroys a window if param_2 is non-null.
0x007834A062ui_callback_exit_gameUI callback that exits the game. Calls FUN_00cadd60 with mode 0x49 (game exit). Does not return.
0x007836A042ui_callback_close_window_lUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null. One of many identical close/cleanup callback stubs.
0x0078386042ui_callback_close_window_mUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null. One of many identical close/cleanup callback stubs.
0x00783CA042ui_callback_close_window_nUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null. One of many identical close/cleanup callback stubs.
0x0078413042ui_callback_close_window_oUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null. One of many identical close/cleanup callback stubs.
0x0078416075ui_callback_return_to_select_charUI callback that returns to character select screen. Calls FUN_00cadd60 with mode 0xc if both params are non-null. Does not return.
0x007842D072ui_callback_send_emoticonUI callback that sends an emoticon. Calculates emoticon index from param_1 / 0x18, then sends message 0x5a8 with the emoticon index.
0x0078496042ui_callback_close_window_pUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null. One of many identical close/cleanup callback stubs.
0x00784E6051ui_callback_close_two_windowsUI callback that closes two windows. Calculates window group index from param_1 (signed divide by 16), then closes windows with IDs 9 and 12 for that group.
0x00785370581ui_callback_play_gravitation_effectsUI callback that plays 2 ground gravitation effects: "ground_gravitation_bottom_loop" and "ground_gravitation_loop". Each effect is looked up by name, played on the object, and if a previous effect instance exists, it is stopped via vfunc +0x7c.
0x007855D042ui_callback_close_window_qUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null. One of many identical close/cleanup callback stubs.
0x0078579042ui_callback_close_window_rUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null. One of many identical close/cleanup callback stubs.
0x00785AB0303ui_callback_stop_breakinglimit_buffUI callback that stops the "breakinglimit_buff" effect. Looks up the effect ID by name from CEffectDataMgr and sends stop command.
0x00785BE026UIWindow__InvokeVfuncHandler_fInvokes the first virtual function on the object with forwarded parameters and zeroed defaults: (param_2, param_3, 0, 0, param_6, 0).
0x00785C1042ui_callback_close_window_sUI callback that calls create_skill_effect_wrapper_a if param_2 is non-null. One of many identical close/cleanup callback stubs.
0x00785F10285ui_callback_stop_rulebreak_buffUI callback that stops the "rulebreak_buff" effect. Looks up the effect ID by name from CEffectDataMgr and sends stop command.
0x0078603026UIWindow__InvokeVfuncHandler_gInvokes a UI window virtual function handler through a vtable dispatch.
0x008160C099UIListBox_008160c0__scalar_deleting_dtorScalar deleting destructor; sets vtable 0112c344, size 0x88, calls base dtor 00a79e90
0x00816130112UIListBoxDerived_00816130__scalar_deleting_dtorScalar deleting destructor; sets vtable 0112c41c then 0112c344, size 0x88
0x0081640099UIButton_00816400__scalar_deleting_dtorScalar deleting destructor; sets vtable 0112c854, size 0x80, calls base dtor 00a79e90
0x008267C028UIWindow__get_flag_by_indexReturns byte flag at +0x84+index if index less than 5, else returns 0
0x0084DA309thunk_to_UIWindow__prepare_render_context_0084da30Thunk to UIWindow__draw_header_area at 008ba1e0. Simple JMP forwarder.
0x0084EA20139UIScrollbarWidget__ctorUIScrollbarWidget constructor. Calls UIBaseTextRender base ctor (on_resize_handler), sets vtable to UIScrollbarWidget, initializes string buffer (0x2d-0x32), sets default height 0x14 at offset 6.
0x00850120171UIDropdownWidget__ctor_baseConstructor for UITextLabelWidget (also UIDropdownWidget base). Calls base UIWidget ctor, sets vtable to PTR_UIDropdownWidget__scalar_deleting_dtor_01132e80. Initializes one SSO string field, font size (0x27), alignment (0x28), style (0x29), and two color values to 0xFFFF00FF (magenta with full alpha).
0x00850910160UIDropdownWidget__ctorConstructor for UIDropdownWidget. Calls UIWindowBase__ctor (not the standard UIWidget base), sets vtable to PTR_UIDropdownWidget__scalar_del_dtor2_01133390. Initializes one SSO string field at offset 0x2f, clears it, and sets widget size to 24x24 pixels via CEffect__set_size_and_reload.
0x00850A5078UIDropdownWidget__delete_child_nodeDeletes a child node for UIDropdownWidget. Checks if offset 4 pointer is non-null, deletes 0xC byte allocation. Similar to UIWidget__delete_child_node_12byte but called from dropdown context.
0x00851120138UIScrollbarWidget__dtorDestructor for UIScrollbarWidget. Sets vtable to PTR_UIScrollbarWidget__scalar_deleting_dtor_0113251c, destroys one string field. Then sets vtable to PTR_UITextDisplayWidget (011321ac), destroys two more string fields, and calls CEffect__dtor for final base cleanup.
0x00851FC095UIDropdownWidget__dtorDestructor for UIDropdownWidget. Sets vtable, destroys one std::string member (selected item text), then calls UIWindowBase__dtor for base cleanup.
0x00852170162UIScrollbarWidget__scalar_deleting_dtorScalar deleting destructor for UIScrollbarWidget. Destroys 1 string at own level, switches to parent vtable, destroys 2 more strings, then calls base dtor. Frees 0xD0 bytes if param_2 & 1.
0x00852D70110UIDropdownWidget__scalar_deleting_dtorScalar deleting destructor for UIDropdownWidget. Destroys 1 string, calls base widget dtor. Frees 0xB0 bytes if param_2 & 1.
0x00853330119UIDropdownWidget__scalar_del_dtor2Scalar deleting destructor variant for UIDropdownWidget. Sets vtable, destroys string, calls UIWindowBase dtor. Frees 0xD8 bytes if param_2 & 1.
0x008572F0289UIButtonWidget__render_textureRenders a button widget's texture. Selects texture based on button state (0=normal/hover, 1=pressed, 2=disabled) from std::string filenames at offsets 0xBC/0xD4/0xEC. Loads texture via stub_005717a0, gets dimensions, and renders at widget position using render_textured_rect_from_texture with full white tint.
0x00858890739UIButtonWidget__calculate_text_heightCalculates the total text height for a button widget's label. Builds the display string by appending charset hex to the label text at offset 0xD8, then splits it into lines using CEffect__split_text_into_lines_by_width based on the available widget width. Returns (number of lines) * line spacing from offset 0x138. Cleans up all temporary string and vector allocations.
0x00858F0044UIButtonWidget__get_texture_infoGets button texture rendering info. Copies 7 dwords (28 bytes) from offset 0xA0 into param_2: texture coordinates, dimensions, and rendering parameters. Returns 1 (success).
0x0085A59056UIEditBox__OnFocusLostHandles focus lost event for edit box. If this is the active focused control, calls FUN_00acf590 to clear focus. Otherwise, resets caret state (0x7C=0) and restores text position from 0xE8 to 0x80.
0x0085A870413UIEditBox__create_formatted_contentCreates formatted text content for the edit box. Creates or reuses UIListDetailWidgetA at 0x144. If fewer than 3 entries and text fits within bounds (0xF0+0xE8 <= 0x88), creates a formatted entry with color 0x7F00E4, concatenates it with existing text from 0xD8, clears and reinserts combined text via CInputMgr, and updates the display buffer.
0x0085AA1040UIEditBox__OnMoveHandles the move event for the edit box. Delegates position setting to CEffect__set_position, then saves the current absolute position (offsets 0x1C and 0x20) to the cached position fields at 0xA0 and 0xA4.
0x0085AB80187UIEditBox__create_text_widget_0085ab80Creates and initializes the editable text input widget for the edit box. Allocates a UIEditableTextWidget (0xD8 bytes), sets its size, position, font size (0xC), and text alignment, then adds it as a child widget at offset 0x7C.
0x0085AC40141UIEditBox__create_scrollbarCreates and initializes a vertical scrollbar widget for the edit box. Allocates a UIWidget (0xB4 bytes), initializes it as a scrollbar with vertical orientation, and adds it as a child at offset 0x130.
0x0085ACE0187UIEditBox__create_alt_text_widgetCreates and initializes an alternate/secondary text widget for the edit box. Same structure as create_text_widget but stored at a different offset. Allocates UIEditableTextWidget (0xD8 bytes), configures size, position, font, and adds as child at offset 0x7C.
0x0085ADA0528UIEditBox__create_dialog_boxCreates a UIDialogBox child widget when flag at 0xB8 is set. Allocates a 0x120-byte dialog, loads three background/button resources via CMessageStringTable, adjusts dialog size to fit the largest resource dimensions, centers it relative to the parent widget, and adds it as a child at offset 0xBC.
0x0085B010295UIEditBox__draw_centered_multiline_textDraws centered multiline text entries. Iterates the vector of 0x18-byte text entries at offset 0x84, measures total height, calculates vertical centering offset, then draws each line centered horizontally with shadow using CEffect__draw_text_with_shadow. Uses font from 0xCC and size from 0x80.
0x0085B140225UIEditBox__draw_text_linesDraws text lines from the entry vector at offset 0x84 vertically stacked. For each entry, draws text at x=6 with incrementing y position (starting at 4), measuring each line's height to calculate the next y offset. Uses font size from offset 0x80 and color from 0x90.
0x0085B2302136UIEditBox__OnDrawDraws the edit box with state-dependent background and centered text. Draws a 3-part horizontal border (left cap, tiled middle in 6px segments, right cap) using different sprite sets based on state: 0xAC=1 (active), 0x30=0 (default), 0x30=1 (hover), 0x30=2 (pressed). Measures text at 0xB4 to center it, draws with appropriate shadow color per state (gray/green/white/shadow). Optionally triggers child repaint if 0xCC flag is set.
0x0085BA90198UIEditBox__draw_background_spriteDraws the background sprite for the widget based on its current state (offset 0x30). State 0 uses sprite at 0xBC, state 1 at 0xD4, state 2 at 0xEC. If overlay flag (0xAC) is set and overlay string (0x104) exists, draws an additional overlay sprite. Optionally triggers parent repaint.
0x0085BBC0294UIEditBox__draw_tab_spritesDraws tab-like sprites by iterating through 0x1C-byte entries between offsets 0x7C and 0x80. For each entry, formats a sprite name with state suffix ('a' or 'b' based on active tab at 0x30), loads and draws the sprite vertically stacked. Tracks cumulative y position from sprite heights.
0x0085BCF0235UIEditBox__draw_background_with_labelsDraws the widget background with labels. If overlay (0xAC) is set, forces state to 3. Otherwise draws state-based sprite (0xBC/0xD4/0xEC). Optionally draws overlay sprite from 0x104. Renders the sprite at (0,0), triggers parent repaint if 0x11C is set, then calls UIFormWidget__render_labels.
0x0085CBA067UIEditBox__DrawLabelDraws the label text for an edit box. Renders the string at offset 0x84 with white color (0xFFFFFF) at position (6,4), font size 0xC.
0x0085E3B025UIEditBox__RefreshAndRedrawCalls the edit box's refresh handler (vtable+0xE0) followed by redraw (vtable+0x98).
0x0085E3D046UIEditBox__RefreshRedrawNotifyCalls refresh, redraw, and then sends a notification message (vtable+0x94) with all zero params.
0x0085E40032UIEditBox__ClearRefreshRedrawClears the edit box content via FUN_0086a060, then refreshes and redraws.
0x0085E4201049UIEditBox__ProcessInputMain input processing for UIEditBox. Handles key events via a switch on param_2 (key code): Backspace (8) - deletes character if editable and cursor at valid position; End (0x23) - moves cursor to end of current line; Home (0x24) - moves cursor to start of current line; Left arrow (0x25) - moves cursor left if editable; Right arrow (0x27) - moves cursor right, double-stepping over line boundaries; Other keys (Delete/0x2D, Ctrl+A/C/V/X) - forwarded to CInputMgr__handle_key_down. Uses a vector of 0x18-byte string entries at field 0x168 for multi-line text.
0x0085E8B09UIEditBox__ForwardMouseDownForwards mouse down to the edit box by calling vtable+0x64. Tiny thunk function (9 bytes).
0x0085E8C095UIEditBox__on_confirm_inputHandles Enter/confirm on the edit box. Checks input mode (0xB0): mode 0 creates a new window (type 0x1D) and sends message 0x2F; mode 3 sends message 0x2D to the current mode-1 window. Other modes send to the existing window's vtable+0x18.
0x0085E92091UIEditBox__send_input_to_parentSends the edit box's current input value to the parent system. Checks global flags (DAT_01457a98/DAT_01457988) and the input mode (0x88). Sends message 0x54 (normal mode) or 0x110 (alternate mode) with the value from field 0x80.
0x0085E9B051UIEditBox__forward_mouse_down_to_childForwards mouse down event (vtable+0x64) to self, then propagates adjusted coordinates (adding widget offset 0x1C/0x20) to the child widget at field 0x114 via vtable+0x68, if child exists.
0x0085E9F050UIEditBox__forward_mouse_down_to_rootForwards mouse down event (vtable+0x64) to self, then propagates adjusted coordinates to the root parent widget via vtable+0x68.
0x0085EA3033UIEditBox__forward_mouse_move_to_parentForwards mouse move event to the parent widget (field 0x10) via vtable+0x68, adjusting coordinates by adding the widget's position offset (0x1C, 0x20).
0x0085EA6033UIEditBox__forward_mouse_move_to_parent_altForwards mouse move event to the parent widget (field 0x10) via vtable+0x68 with adjusted coordinates. Identical to forward_mouse_move_to_parent, used as alternate vtable slot.
0x0085EB2044UIButtonWidget__on_mouse_enterMouse enter handler for a button widget. If the button is not disabled (field 0x2B == 0), plays a hover sound via FUN_00aa9b30, sets state to 2 (hover), and invalidates the widget.
0x0085EB90132UIButton__toggle_stateToggles button pressed state (field 0xc). Refreshes self and parent window. Notifies parent with message type 6 (button action) including button ID and new state. Also sends secondary message (type 2) if field 0x3C is set.
0x0085ECE080UIButton__begin_dragBegin drag handler for UIButton. Sets hover state, stores initial mouse position (param_2, param_3) at fields 0x94/0x98. If parent widget exists (field 0x10), copies parent scroll offsets (0x14/0x18) to fields 0xA0/0xA4. Accumulates parent offsets for coordinate transformation.
0x0085ED3060UIButton__notify_parent_selectionNotifies parent of button selection. Sends two messages to parent (field 0x10): first message 0x0D with field 0xC0 value, then message 6 (button action) with button ID from field 0x2C.
0x0085ED7077UIButton__on_click_releaseClick release handler for UIButton. If not disabled (field 0x2B), sets hover state and changes button state to 2 (hover). Redraws via vtable+0x98. If child widget exists at field 0x114, forwards adjusted mouse coordinates to child via vtable+0x64.
0x0085EDC076UIButton__on_click_release_altAlternate click release handler for UIButton. Same as on_click_release but forwards to root parent widget instead of optional child. Sets hover state if not disabled, then forwards adjusted coordinates to root parent via vtable+0x64.
0x00861AB0145UIScrollbarWidget__update_scroll_stateUpdates scrollbar state based on content size. Calculates visible rows (height / row_height), determines if scrollbar should be visible based on total items vs visible count. Calls FUN_0089c220 to configure the scrollbar range and invalidates the associated widget.
0x008651A087UIButtonWidget__handle_eventEvent handler for button widget. Event 6 with param_4==0xCB: notifies parent with callback event 6 and value from 0xC0. Event 0xD: sets button state at offset 0x30. Other events delegate to FUN_00a83660.
0x008653B0149UIButtonWidget__auto_resize_to_contentAuto-resizes button widget to fit its content. Measures text label width, loads the current state's icon texture (normal at 0x26 or pressed at 0x20), gets icon width, adds 3px padding, and calls resize virtual if the calculated width differs from current.
0x00865450311UIButtonWidget__set_textures_and_labelSets button texture paths and text label. Assigns param_2 to normal texture (0x20), param_3 to hover texture (0x26), param_4 to text label (0x2C, empty string if null). Pre-loads the hover texture via CResourceMgr. If auto-size is enabled (0x30 != 0), measures text width plus icon width and resizes the button to fit.
0x008657A0287UIButtonWidget__set_texture_resolvedSets a button texture with texture file resolution. Resolves the file via FUN_00af1620/FUN_00b01200/FUN_00aee770, tracks max width/height, optionally forces exact size (param_4 != 0). Assigns path to state-specific string (0-3 for normal/pressed/hover/disabled). Returns 1 on success, 0 if texture not found.
0x00867EC091UIDropdownWidget__set_items_from_stringSets dropdown items from a delimited string. Clears existing items in the vector at 0x84 (destroys 0x18-byte string entries), then calls FUN_009b4220 to parse param_2 with delimiter param_3 and populate the items vector.
0x00867F20156UIDropdownWidget__set_items_parsedSets dropdown items by parsing a delimited string. Clears existing items, uses FUN_009b4220 or FUN_009b4730 depending on flag at 0x9C. If items were added, recalculates layout via UIListWidget__recalc_layout.
0x008695B0146UIButtonWidget__set_texture_for_stateSets a button texture for a specific state (0=normal, 1=pressed, 2=hover, 3=disabled). Loads the texture, tracks max width/height at 0xB4/0xB8 across all state textures. Returns 1 on success, 0 if texture loading is disabled (DAT_016d3b10).
0x0086CEA0150UIDropdown__ctorConstructs dropdown widget with linked list sentinel (0x18 byte nodes), ID 0x2739
0x0086D53091UITreeViewWidget__ctorConstructs tree view widget inheriting UITreeBase, zeroes bool flag at offset 0x31
0x0086FEF071UIWindow__base_dtorDestructor for UI window base: resets vtable, calls base cleanup FUN_00a79e90
0x00870800164UIDropdown__dtorDestructor for dropdown: destroys tree, clears RB-tree, frees sentinel, base cleanup
0x00870C40152UITreeViewWidget__dtorDestructor for tree view: resets 3 vtables, clears RB-tree, frees sentinel, base cleanup
0x008752F0555UIListBox__add_text_entryAdds a text entry to UIListBox. Handles auto-scrolling, trims excess entries if over max, stores param_3 in data vector. Checks for link delimiters in text - dispatches to column-based or grid-based or plain text insertion depending on content type. Updates scrollbar position.
0x00875520831UIListBox__add_text_entry_with_titleAdds a text entry with optional title to UIListBox. Same auto-scroll and trim logic as add_text_entry. If param_4 title is non-null, creates title string. Dispatches to appropriate insertion method based on text content (links, columns, plain). Updates scrollbar.
0x00875860517UIListBox__add_item_with_dataAdds an item with associated data pointer to UIListBox. Stores param_3 in item vector, creates string from param_2, emplaces into map, calculates max text width, calls virtual layout method. If param_4 is non-null, inserts into secondary map keyed by list position.
0x00875A70356UIListBox__push_back_string_itemPushes a string item to UIListBox. Creates SSO string from param_2, appends to string vector at this+0x8C. If vector is full, calls realloc helper. Updates max text width and calls virtual layout method.
0x00875BE0485UIListBox__insert_string_with_dataInserts a string with associated data into UIListBox's map. Creates string from param_2 with param_3 data, uses lower_bound to find insert position, allocates 0x30-byte map node if key not found, updates max text width and calls layout.
0x00875DD0325UIListBox__emplace_string_with_dataEmplaces a string with data into UIListBox map. Creates string from param_2, uses STL_map_emplace_int_key to insert, updates max text width and calls virtual layout method.
0x00875F20405UIListBox__push_back_string_with_extraPushes a string item with extra integer data to UIListBox. Appends string to vector at this+0x8C and appends 0 to secondary int vector at this+0xDC. Updates max text width and calls layout.
0x008760C09thunk_to_UIListBox__push_back_string_item_008760c0Wrapper that calls FUN_00875a70 and returns
0x00876D50631UIListBox__add_dual_column_entryAdds a dual-column entry to UIListBox. If over max items, halves vectors. Creates string from param_2, appends to text vector. Stores param_3 in data vector. Creates second string from param_4, appends to second text vector.
0x00876FD079UIListBox__set_item_data_at_indexSets item data at a specific index in UIListBox. Calculates absolute index from param_2 + this+0xE4 offset. Validates index is in range, stores param_3 at data_vector[index], then calls virtual refresh.
0x008776501191UIListBox__split_and_add_column_itemsSplits a comma-delimited text string and adds each part as a separate column item to UIListBox. Copies input string, finds comma separators using memchr, extracts substrings between commas, pushes each as a string item to the text vector at this+0xF0. Handles SSO string allocation and cleanup.
0x00877B003149UIListBox__build_and_add_column_widgetsBuilds and adds column-based text widgets to UIListBox. Processes formatted chat text (sender name, formatting, item links, tag stripping), word-wraps by character width, creates UIWidget sub-items for each text segment, splits by columns, configures text display and layout for each widget.
0x008787501693UIListBox__build_and_add_column_widgets_v2Variant 2 of column widget builder for UIListBox. Similar to v1 but uses different formatting helpers (strip_default_color_markers/strip_item_link_markers). Creates UI widgets per text entry with word-wrap, item link processing, column splitting, and layout configuration.
0x00878DF01001UIDropdownList__init_with_button_texturesInitializes a UIDropdownList with button textures. Calls FUN_00a82eb0 for base setup, creates CDialogWnd (0x120 bytes) at this+0x7C. Loads 3 button state textures (_out.bmp, _over.bmp, _press.bmp) from name prefix. Creates UITreeBase (0xC4 bytes) and editable text widget. Configures sizes and positions.
0x00879E80133UIListBox__clear_all_columns_and_itemsClears all columns and items from UIListBox. Destroys strings in two column vectors (at offsets 0x100/0x104 and 0x118/0x11C), resets their end pointers, calls virtual clear and item cleanup methods.
0x00879F10110UIListBox__clear_and_trim_vectorsClears UIListBox and trims vectors. Calls clear_items_and_reset, resets data vector end to begin, moves remaining strings in secondary vector to compact it.
0x00879F80130UIListBox__clear_items_and_resetClears all items from UIListBox and resets state. Sets selected index to -1, clears max width and scroll fields, destroys all strings in item vector, resets end pointer, calls virtual layout and refresh methods.
0x0087A0F0143UIListBox__clear_items_and_reset_extraClears UIListBox items and resets extra data. Like clear_items_and_reset but also resets extra data vector (this+0xDC=this+0xD8) and sets anchor index to -1 (this+0xE4).
0x0087A18081UIListBox__clear_secondary_stringsClears secondary string vector in UIListBox. Destroys all strings at offsets 0xA4-0xA8, resets end pointer, zeroes count at 0xA0.
0x0087A1E0171UIListBox__destroy_all_child_widgets_and_resetDestroys all child widgets in UIListBox and resets. Calls FUN_00a82e50 (widget destroy) on each pointer in two widget pointer vectors (this+0xEC-0xF0 and this+0xD4-0xD8). Destroys 0xC-byte entries. Clears items via clear_items_and_reset, double-refreshes display.
0x0087A39041UIListBox__zero_all_data_valuesZeroes all data values in UIListBox's data pointer vector (this+0xD8-0xDC). Sets each entry to 0, then calls virtual refresh.
0x0087AAF0189UIListBox__copy_data_from_sourceCopies data from another UIListBox source. Assigns 3 parallel vectors: string vector at +0x100, data vector at +0x10C (memcpy), and secondary string vector at +0x118. Calls rebuild_all_items to reconstruct the display.
0x0087BAA092UIScrollbar__init_with_orientationInitializes a scrollbar widget with orientation. Stores orientation mode at this+0x88. Swaps width/height based on mode (0=horizontal uses param_5/param_4+0xA4, 1=vertical uses param_4+0xA4/param_5). Calls base init, position, size via virtuals.
0x0087BB00105UIScrollbar__init_with_rangeInitializes a scrollbar with range parameters. Stores orientation at this+0x88, plus values at this+0xA0 and this+0xA4. Computes width/height based on orientation (0=horizontal, 1=vertical), calls base init with computed dimensions.
0x0087C2A0329UIEditBox__on_text_inputUIEditBox text input handler. Checks if input is newline (executes submit). Otherwise copies text, updates internal string, calls virtual layout methods.
0x0087C3F0414UIEditBox__initialize_propertiesInitializes UIEditBox properties: position, colors (default 0xffffff/0xc3c3c3), font size=12, clears string list and counters. Creates child sprite object at +0x98 for button visuals.
0x0087C590329UIEditBox__set_text_and_layoutSets editbox text and layout. Copies text string, assigns to two internal string fields (+0x1f, +0x35), sets dimensions and scroll params, calculates pixel size and calls resize/layout virtuals.
0x0087C6E0217UIEditBox__resize_and_create_childResizes editbox and creates child widget. Calls resize on base, parent, and scroll area, then allocates a 0x194-byte child widget (linked list node) and initializes its properties.
0x0087C7C0678UIEditBox__create_button_and_treeCreates button with 4 states (normal/mouseon/pressed/disabled) and a tree widget. Loads sprite textures for each state, positions button, creates UITreeBase child at +0x9c.
0x0087CA70433UIListBox__clear_all_itemsClears all items from linked list at +0xd4. Iterates list, hides each item widget, removes nodes, frees memory. Resets list to empty and count to 0.
0x0087CC30320UIListBox__halve_string_and_int_vectorsHalves multiple vectors by copying second half to first half. Operates on 24-byte string vectors at +0x100/+0x118, and int vector at +0x10c. Used to truncate history/log buffers.
0x0087CD70323UIListBox__halve_vectors_variantVariant of halve_vectors operating on offsets +0x22/+0x39/+0x3d. Same pattern: copies second half to first, resizes. Calls virtual method +0xe0 at end.
0x0087CEC0440UIListBox__decrement_item_lifetimesDecrements lifetime counters on list items at +0xd4. Subtracts half the string vector size from field+500 of each item. Removes items whose lifetime drops below 0.
0x0087D080441UIListBox__decrement_overlay_lifetimesDecrements overlay lifetimes in list at +0xdc. Filters by type 0x1b6, subtracts half-vector-size from field +0x114. Removes expired overlays from linked list.
0x0087D2403136UIListBox__process_chat_line_entryProcesses a chat line entry in the listbox. Searches for delimiter patterns in text, splits lines by delimiter, handles special chat formatting. Removes processed entries, calls CSVParser for parsing.
0x0087DE90112UIListBox__scroll_to_ensure_visibleScrolls listbox to ensure current item is visible. Compares item position range against viewport, scrolls up or down as needed if item is partially out of view.
0x0087DF00377UIListBox__on_item_clickedHandles click on listbox item. Validates item type matches filter (0x15=weapon, 0x16=armor, 0x17=accessory or exact match). If valid, triggers action via parent or child virtual call. Fires event 0x12.
0x0087E080262UIListBox__on_skill_item_clickedHandles click on skill item in listbox. Validates item has skill flag (+0x80), looks up skill entry, checks skill levels are valid. Sets skill ID/type at +0x1f/+0x20. Fires event 0x12.
0x0087E19060UIListBox__forward_mouse_eventForwards mouse event. Checks if AA5F70 returns 0x271b (specific UI mode). If so, forwards to child widget's virtual +0x28. Otherwise calls A7BB00.
0x0087E1D020UIListBox__forward_to_child_widgetForwards to child widget at +0x10. If child exists, calls virtual method +0x28 on it. Simple delegation pattern.
0x0087E1F01344UIEditBox__draw_text_with_cursorDraws editbox text with cursor. Handles password mask mode, text alignment (left/right/center), selection highlight, blinking cursor via timeGetTime(). Measures text width for positioning.
0x0087E730634UIListBox__draw_item_with_number_overlayDraws listbox item with optional number overlay. Converts item ID string to int via atoi, loads sprite, renders at position. If item has count (+0xb0), draws count text with shadow/outline effect.
0x0087E9B01292UIListBox__render_items_recursiveRecursively renders listbox items. Iterates linked list, positions each item widget, handles tree node expansion (type 0=leaf, 1=branch). Updates row height and manages visibility based on scroll position.
0x0087EEC0105UIListBox__draw_background_spriteDraws listbox background sprite. Checks item ID via atoi; if positive and has extra field +0xa4, uses sprite at +0x4d8 else uses +0x4a8 default. Loads and renders sprite.
0x0087EF30223UIListBox__position_child_widgetsPositions child widgets in the listbox. Iterates linked list at +0xd4, for each widget checks if its row index is in visible range. Positions visible items, hides out-of-range ones at (-100,-100).
0x0087F430233UIListBox__position_overlay_widgetsPositions overlay widgets from list at +0xdc. Same pattern as position_child_widgets but filters by type 0x1b6. Sets visible items to correct row position, hides others.
0x0087F520237UIEditBox__draw_text_with_shadowDraws text with optional shadow color. If shadow color is -1, uses simple text draw. Otherwise acquires GDI DC, sets font size 12, draws text twice (shadow offset by -1, then foreground) using color codes.
0x008805F0109UIListBox__hit_test_row_from_pointHit tests a point (x,y) against listbox rows. Returns row index from y coordinate divided by row height, offset by scroll position. Returns -1 if out of bounds or not clickable.
0x00880FF0136UIListBox__hide_all_item_widgets_recursiveRecursively hides all item widgets in listbox. For each linked list node, hides expand icon (+0x178), collapse icon (+0x174), and content widget (+0x17c) by positioning at (-100,-100). Recurses into child lists at +0x180.
0x00881110929UIListBox__create_expand_collapse_iconsCreates expand/collapse icon buttons for tree list items. Loads "battle_option_b.bmp" and "wnd_mini_b.bmp" sprites for each button state (normal/pressed/hover). Sets parent reference and updates max row height.
0x008814C0493UIListBox__create_text_item_widgetCreates a text item widget (0xf8 bytes) for listbox. Sets vtable to 011366d0, initializes font size=12, colors=0xffffff. Auto-sizes to text content, positions off-screen initially. Stores in tree node at +0x17c.
0x008816E01222UIListBox__resolve_item_link_or_tooltipResolves item link or tooltip from text. Checks for "0000T0" marker (item link format). If found, parses item ID and gets formatted tooltip via CTreeMap. Otherwise parses format string for regular item tooltips.
0x00881BB02132UIListBox__build_display_text_with_linksBuilds display text with embedded item links for listbox. Iterates linked list items, finds embedded markers (0x245 format codes), resolves item tooltips, measures text positions for link hotspots. Updates widget text and sizes.
0x008824604093UIListBox__add_formatted_chat_lineAdds a formatted chat line to listbox with embedded item link support. Parses format tags, creates item link widgets (0x200 bytes each), handles text wrapping, manages linked list insertion. Supports both item ID links and regular formatted text.
0x008834604085UIListBox__add_overlay_with_item_linksAdds overlay items with item links to listbox overlay list (+0xdc). Parses text for embedded markers, creates overlay widgets (0x118 bytes, vtable 0113787c), handles item link formatting. Inserts into overlay linked list.
0x00884460664UIListBox__wrap_text_in_angle_bracketsWraps text in angle brackets '<' and '>'. Builds string by appending '<', word-wrapped text (via A837D0 with half-width), then '>'. Used for item link display formatting.
0x00884720329UIListBox__move_to_entity_positionMoves view to entity position. Gets current entity's sprite height via +0xb4, then calls virtual +0x10 to reposition. If *param_3 is 0, measures text width first via 853810. Otherwise uses direct position value.
0x00884870970UIListBox__position_tooltip_at_textPositions tooltip widget at text location in listbox. Iterates text segments from +0x15c, measures cumulative text widths to find target position. Accounts for scroll offset and entity dimensions. Hides tooltip if outside visible range.
0x00884C40388UIListBox__position_npc_dialog_tooltipPositions tooltip for NPC dialog (entity type 0x1ec). Measures text width via 8CED00, calculates tooltip X position relative to entity sprite. Hides tooltip at (1000,y) if past sprite boundary.
0x00884DE0351UIScrollbar__create_scroll_arrows_v1Creates two scroll arrow sprites (0xb4 bytes each). First at +0xac (vtable default, type=10, vertical), second at +0xb0 (vtable 01133bf0, type=10, horizontal). Positions at edges of parent bounds.
0x00884F40375UIScrollbar__create_scroll_arrows_v2Creates two scroll arrow sprites (0xb4 bytes each, vtable 01133ccc, type=9). First at +0xac (vertical), second at +0xb0 (horizontal). Similar to v1 but with different vtable and type.
0x008850C0375UIScrollbar__create_scroll_arrows_v3Creates two scroll arrow sprites (0xb4 bytes each, vtable 01133bf0, type=10). Same pattern as v1 but both arrows use same vtable.
0x00885EE0371UIScrollbar__create_small_scroll_arrowsCreates two small scroll arrows (7x7 pixel, vtable 01137be8). First at +0xa8, second at +0xac. Sets row height +0xb4 to 18.
0x008860609thunk_to_UIScrollbar__create_scroll_arrows_standard_00886060Thunk to UIScrollbar__create_scroll_arrows_standard. Single JMP forwarder.
0x00886070327UIScrollbar__create_default_scroll_arrowsCreates two default scroll arrows (13px offset). First at +0xa8 (vertical), second at +0xac (horizontal). Uses default UISpriteWidget vtable.
0x008861E032UIScrollbar__create_arrows_and_set_row_heightWrapper: calls create_scroll_arrows_standard then sets row height +0xb4 to 15.
0x00886990327UIScrollbar__create_scroll_arrows_standardCreates standard scroll arrows (0xb4 bytes, 13px offset). First at +0xa8 (vertical), second at +0xac (horizontal). Default UISpriteWidget construction.
0x00886AE0327UIScrollbar__create_scroll_arrows_standard_v2Same as create_scroll_arrows_standard - creates two 0xb4-byte sprite widgets at +0xa8 and +0xac with 13px offsets. Duplicate implementation.
0x00888C10122UIListBox__draw_preview_sprite_with_overlayDraws preview sprite with number overlay. Sets tint color to 0xffff00ff, loads background sprite by item ID, renders at (0,0), then draws item number overlay at position (4,0).
0x00888EA01528UIButtonWidget__render_text_with_effectsRenders button text with shadow/outline effects based on button state. Selects texture path from 4 states: 0xf8=pressed, 0x30==1=hover, 0xdc=disabled, default=normal (offsets 0xc4/0xac/0x94/0x7c). Iterates through text effect entries (7 ints each) to draw text with shadows. Different states use different shadow colors (gray, white, tan, etc).
0x008894B0324UIListBox__render_items_with_colorRenders list box items with per-item color from color array at offset 0xe4. Iterates visible items (from scroll offset 0x98), draws text at x=2, spaced by row height (0xb8). Special handling for language mode 0x13 (Korean?) with right-alignment offset. Calls position_overlay_widgets and position_child_widgets for each item.
0x00889600262UIListBox__render_items_basicRenders list box items with basic styling. If offset 0xb4 is nonzero, uses transparent background and calls parent render; otherwise fills with background color (0x7c/0x80/0x84). Items drawn at x=2 with font size from 0x134. Calls position_overlay_widgets and position_child_widgets per item.
0x00889710493UIListBox__render_items_with_shadowRenders list box items with shadow text effect. Draws each item twice: first in black (shadow) at offset (+1,+1), then in per-item color. Has parent widget rendering call at start. Special Korean mode right-alignment handling. Calls position_overlay_widgets and position_child_widgets per item.
0x00889900685UIListBox__render_bordered_with_cornersRenders a bordered list box with corner textures. Uses CColorPicker for border/background colors, loads 4 corner BMP textures, draws items with selection highlight (color from pixel 6,2). Has optional scrollbar area (offset 0xa4 nonzero draws 16px wide). Calls parent widget render at end.
0x00889BB0432UIDropdown__update_text_positionUpdates dropdown text widget position when mode is 1 (offset 0xac). Calculates centered x position using half-width minus half-text-width. If position changed from cached value (0xb4), repositions the editable text widget and triggers re-render.
0x00889E501295UIListBox__render_map_items_borderedRenders a bordered list box using std::map for item data (keyed by index). Supports two column modes (0xc4==0 or 1): mode 0 is left-aligned, mode 1 is center-aligned with text width calculation. Uses map insert-or-find for lazy item creation. Draws brown border (0xc59582), selection highlight, and scrollbar area.
0x0088A3601124UIListBox__render_map_items_with_cornersRenders bordered list box with corner textures and std::map-based item storage. Uses CColorPicker for colors, loads 4 corner BMP textures, draws items from map with per-item color stored in map node at offset 0x2c. Selection highlight from color picker pixel (6,2). Optional scrollbar area at right side.
0x0088A7D0915UIListBox__render_map_items_simpleRenders bordered list box with corner textures and simpler std::map item storage. Similar to render_map_items_with_corners but uses different map structure (lower_bound variant). Items stored in map nodes with string at offset 0x18. Selection highlight, scrollbar area, parent widget render call.
0x0088ACF016UIEditBox__draw_border_and_contentSimple composite render: calls UIEditBox__draw_background_sprite to draw the background, then CUITreeView__build_display_list to render the inner content/text.
0x0088B120880UIListBox__render_map_items_with_selectionRenders list box with map-based items and selection BMP overlay. When selected item is in view, loads selection overlay texture formatted with index (two format variants based on flag 0x31). Uses std::map for item text and color storage. Draws items with per-item color, calls parent render at end.
0x0088B5A0450UIListBox__render_items_advancedAdvanced list box renderer with selection highlight, vertical text centering option (0xcc), and extended text rendering via FUN_00a84b80. Supports background color or transparent mode (0xb4). Selection draws colored rect at selected row. Text can be vertically centered within row height. Uses extended text params including font style flags (0xd4/0xd8/0xdc/0xdd).
0x0088B770419UIListBox__render_items_extended_textRenders list items with extended text rendering (FUN_00a84e30). Supports selection highlight, vertical centering, and configurable x offset (0xd0 - 0x9c). Uses per-item string data with embedded color at item+0x10. Background color or transparent mode supported.
0x0088B920935UIListBox__render_map_items_extendedRenders map-based list items with extended text. Uses 3 map lookups per item for text, color, and style data. Selection highlight via colored rect. Items stored in std::map keyed by index, with lazy creation on first access.
0x0088BCD0732UIListBox__render_map_items_extended_v2Variant of render_map_items_extended using different map structure (lower_bound variant with different node offsets). Selection highlight, map-based item storage with lazy creation. Extended text rendering with color from map node offset 0x28.
0x0088BFB0348UIListBox__render_items_with_highlightRenders list items with per-row conditional highlight. Checks highlight array (0xd8) per item - if value is 1, temporarily sets highlight color (0xd4) for that row. Selection rect drawn for selected item. Extended text rendering with embedded color data.
0x0088C1101050UIListBox__render_map_items_with_filterRenders map-based list with filter matching. Uses global filter list (DAT_017387a4/a8) to check if item ID matches any filter entry - if so, draws alternate highlight color (0xc0). Normal selection highlight for selected item. Map-based item storage with 3 lookups per item for text, color, and data.
0x0088C530245UIListBox__render_items_with_yellow_selectRenders list box items with yellow (0xc8c832) selection highlight. Background fill from RGB at offsets 0x124/0x128/0x12c. Items drawn at x=2 with per-item color from array at 0xe4. Selection highlight is full-width row.
0x0088D7501177UIScrollbar__render_verticalRenders a vertical scrollbar using basic_interface skin. If scrollbar is visible (offset 0x80 != 0) and mode is 1 (0x88): draws track background (0xafaaa5), up arrow button (dialscr_up.bmp) with 3 states (normal/hover/pressed), down arrow button (dialscr_down.bmp) with 3 states. Track area between arrows, size from vtable call 0xd4.
0x0088DBF01214UIScrollbar__render_vertical_v2Variant vertical scrollbar renderer using dialscr_up1/down1 textures and lighter colors (0xf1f1f1 track, 0xe9e9e9 thumb area). Similar structure to render_vertical but with different visual style. Resets flag at offset 0xa8 to 0 after rendering.
0x0088E0B0598UIScrollbar__render_horizontalRenders a horizontal scrollbar using basic_interface skin. If visible (0x80 != 0) and mode is 0 (0x88): draws scrollbar.bmp track background tiled, then scroll_bar.bmp thumb at calculated position. Resets flag 0xa8 to 0 after rendering.
0x0088E3101046UIScrollbar__render_texturedRenders a textured scrollbar with distinct textures for track, thumb, and end caps. Mode 0 = horizontal, mode 1 = vertical. Track is tiled with 13px segments, thumb has top/mid/bottom (or left/mid/right) pieces tiled to size. Position calculated from scroll offset (0x84) / total (0x80). Uses 8+ different texture resources.
0x0088E730500UIScrollbar__render_custom_texturedRenders a vertical scrollbar using custom pre-loaded texture objects at offsets 0xb4-0xd0. Track uses top (0xb4), mid (0xb8) tiled, and bottom (0xbc) textures. Button textures at 0xc0/0xc4. Thumb uses top (0xc8), mid (0xcc) tiled, and bottom (0xd0) textures. Position from scroll ratio.
0x0088E930564UIScrollbar__render_skinned_verticalRenders a skinned vertical scrollbar with 3-part track and 3-part thumb. Track loaded from texture paths, tiled vertically. Thumb positioned by scroll ratio and tiled. Resets flag 0xa8, calls parent render at end.
0x0088FBB0528UIListBox__render_formatted_text_itemsRenders list items with embedded text formatting. Pre-parses hidden items above viewport for color state. Visible items rendered with either extended text (0xe9==0), styled text with background color (0xe9!=0), or HTML-style text (0xbc flag). Uses FUN_00a7ca20/FUN_00a81ba0 for color code parsing.
0x0088FE20387UIScrollbar__render_bordered_verticalRenders a bordered vertical scrollbar with brown border (0xd9c8b8) and white background. Uses up/down arrow textures and 3-part thumb (top/mid/bottom pieces tiled). Position calculated from scroll offset/total ratio.
0x0089008066UIListBox__clear_selection_and_redrawClears current selection by setting +0x1f to -1, then redraws via virtual +0x98. If parent wrapper exists, forwards redraw to parent and calls A81C50.
0x008902A051UIEditBox__on_mouse_down_notify_parentHandles mouse down on editbox. Forwards to UIEditBox base handler, then notifies parent with event (type=6, code=0xb8).
0x008902E069UIListBox__on_item_double_clickHandles double-click on listbox item. If not disabled (+0x2b byte is 0), sets click flag +0xc=1, sends event (type=0x61) with item data to parent, then redraws.
0x0089043028UIListBox__set_hover_row_from_pointSets hover row from mouse point. Hit tests (x,y) to find row index, stores in +0x94.
0x008904C0172UIListBox__on_mouse_upHandles mouse up on listbox item. If type is 0x205, triggers item link event. Otherwise sets click flag based on bounds check, fires event 0x62 with item data to parent, redraws.
0x0089057038UIListBox__on_mouse_move_update_hoverMouse move handler that updates hover row. Hit tests point to find row, stores at +0x25, then redraws.
0x0089064074UIListBox__on_mouse_down_select_rowMouse down handler that selects row. Hit tests point, stores at +0x25. If valid row (!=-1) and not locked by global 016f7144, fires event type 6 to parent. Redraws.
0x0089069038UIListBox__on_mouse_move_update_hover_v2Mouse move handler. Hit tests point, stores hover row at +0x25, redraws. Same as on_mouse_move_update_hover.
0x008906D065UIListBox__on_mouse_down_select_and_notifyMouse down that selects row and notifies parent. Hit tests, stores at +0x25, fires event with code from +0xb to parent via +0x94. Redraws.
0x00890720341UIScrollbar__on_mouse_downScrollbar mouse down handler. Hit tests against 5 regions (before/header/content-header/content/after). Fires scroll events: type 7/8 for page up/down, type 9-12 for arrow buttons. Region 2 starts drag mode (+0x1f=6).
0x008908A071UIButton__on_mouse_enter_notify_parentButton mouse enter handler. Calls base UIButtonWidget handler, then sends events type 0xd and type 6 (with code from +0x2c) to parent.
0x008908F068UIListBox__on_right_clickRight-click handler on listbox item. If not disabled, sets click state to 2, redraws, fires event 0x6b with item data to parent, sets flag +0xb6.
0x00890A30121UIListBox__on_drag_endHandles drag end on listbox. Checks if this widget is the drag source. Sets click state based on bounds check, fires event 100 with item code to parent, redraws, clears drag.
0x00890AC0134UIListBox__on_right_click_select_and_notifyRight-click on listbox: selects row, sends event 0x27 to target window (from +0xd4) or parent. Plays sound 0x1a.
0x00890C20369UIListBox__handle_click_select_itemHandles click event on a list box to select an item. Calculates clicked row from y coordinate / row height + scroll offset. Validates bounds. Looks up item in map, sends selection notification (0x27) to parent with item data. Updates sound effect (0x1a).
0x00890E9071UIScrollbar__on_mouse_up_or_release_dragScrollbar mouse up handler. If mode +0x80 is 0, forwards to parent's virtual +0x7c with adjusted coordinates. If dragging, checks if still captured and releases drag.
0x00890EE0362UIListBox__show_item_info_or_tooltipShows item info or tooltip based on mode +0x94. If mode 0 and has string +0xac, copies it to local buffer, sends event 0x18 to window 0xc. If mode 1, sends event 0x3e with string from +0x84 to window 0xc9, positions tooltip relative to screen.
0x00891050124UIListBox__on_drag_end_with_tree_idDrag end handler using tree item ID at +0x48. Checks if this is drag source, bounds-checks point, fires event 100 with tree ID to parent. Redraws and clears drag state.
0x008910D088UIListBox__on_mouse_up_send_eventMouse up handler that sends either event 0x6d (if +0xb6 flag not set, with zeroed coords) or 0x62 (if flag set). Clears +0xb6 flag after. Redraws.
0x00891140138UIListBox__on_drag_end_with_item_typeDrag end handler with item type. Checks drag source, bounds-checks, fires event 0x62 with item code and type +0x34 to parent. Clears drag.
0x008911D0108UIScrollbar__on_mouse_up_reset_stateScrollbar mouse up: resets hover state +0x22=0 if point is in bounds, clears positions +0x23/+0x24, resets disabled flag +0x2b. Forwards to parent's +0x7c handler.
0x00891BC0249UIListBox__show_overflow_tooltipShows overflow tooltip for list items. If hovered item text is wider than widget width (minus column padding * 15), creates a tooltip positioned at the item row showing the full text via FUN_00ad6510.
0x00891CC0381UIListBox__handle_hover_show_hyperlinkHandles mouse hover on list items to show hyperlink popup. If hovered item has hyperlink data (item[4] != 0), creates a UIHyperlinkText widget positioned near cursor, parses item text for links. Destroys previous popup if hovering different item.
0x0089206050UIListBox__on_mouse_move_conditional_redrawMouse move that only redraws on row change. Hit tests point, updates +0x25 hover row. Only triggers redraw if hover row actually changed from previous value.
0x008921D0301UIScrollbar__handle_mouse_moveHandles mouse move for scrollbar. Hit tests regions (up arrow=0, track=2, down arrow=4) and updates visual state (0x7c). If being dragged, calculates new scroll position from mouse offset relative to content area. Sends scroll command (7=vertical, 8=horizontal) to parent.
0x00892340131UIButton__handle_mouse_hoverHandles mouse hover for a button widget. If not locked (0xac==0): sets hover state (0x30=1) when mouse enters bounds, clears it when leaving. Sends hover notification (0x6c) to parent with button ID (0xf4). Updates cursor style (0xb4).
0x00892450198UIButton__update_visual_stateUpdates button visual state based on mouse position and capture state. If not locked: captured+inside=pressed (state 2, cursor 0xbc), not captured+inside=hover (state 1), outside=normal (state 0, cursor 0xb8). Triggers re-render on state change.
0x00892600783UIEditBox__format_number_with_commasFormats number in edit box with comma separators. Strips non-digit characters from text, converts to int64, re-formats with thousand separators, updates caret position accounting for added commas. Triggers re-render.
0x0089294077UIListBox__send_item_info_eventSends item info event to chat window. Parses item ID from string at +0xcc via atoi, if positive sends event 0x18 with string from +0xa0 to window 0xc (chat).
0x00892A1053UIListBox__on_mouse_leaveMouse leave handler. If not disabled, fires event 0x65 with item code to parent, redraws.
0x00892A5038UIListBox__on_mouse_move_update_hover_v3Mouse move handler. Hit tests point, stores hover row at +0x25, redraws. Third variant of the pattern.
0x00892AE056UIListBox__on_mouse_leave_with_tree_idMouse leave handler using tree item ID at +0x48. If not disabled, fires event 0x65 to parent, redraws.
0x00892B2062UIListBox__on_mouse_down_send_event_99Mouse down handler. Fires event 99 (0x63) with item data +0x3d and mouse coords to parent.
0x00892B6057UIListBox__on_mouse_leave_send_event_99Mouse leave handler. Fires event 99 (0x63) with item code +0xb and type +0x34 to parent.
0x00892BA0121UIListBox__on_drag_end_send_event_0x65Drag end handler. Checks if this is drag source, sets click state, fires event 0x65 with item code to parent. Redraws and clears drag state.
0x00892C7045UIScrollbar__forward_right_click_to_parentScrollbar right-click forward. Only forwards to parent's +0x84 if mode +0x80 is 0 (not in drag mode).
0x008A6C20406UIWindow__compute_adjusted_valueComputes an adjusted 64-bit value by reading a string from FUN_00858d20, converting it via virtual call at vt+0xd4 on object at this+0xb4, then parsing the result with _atoi64 and adding param_2. Clamps result to [0, 0x7fffffff]. Used for UI value calculations (e.g., experience, zeny adjustments).
0x008A6DC087UIWindow__animate_idle_spritesAnimates idle sprites for a UI window. Iterates 4 sprite objects at offset 0xd4, calling virtual method at vt+0x10 with position (-100,-100) to reset each. Then picks one of 4 sprites based on (timeGetTime() % 1000) / 250 and calls its position method with (6,5).
0x008A6E201319UIWindow__compute_adjusted_value_exExtended version of UIWindow__compute_adjusted_value. Gets text from FUN_00858d20 and FUN_00b00f00, compares them. If equal, computes adjustment using global values at DAT_01733d28/DAT_01738258/DAT_0173825c with overflow/underflow clamping. If different, parses text as int64 via _atoi64, validates range, and stores result. Handles display formatting via SimpleString::operator=. Returns clamped 64-bit value.
0x008A8EE0145UIWindow__draw_item_spriteDraws an item sprite at given position. Checks the identified flag at offset 0x5c and param_4 to determine sprite variant (0 or 1). Gets sprite name from string at offset 0x2c of param_3, converts via FUN_00ddd280 to 128-byte buffer, loads texture via FUN_00b01200 and FUN_00aee770, then renders with FUN_00a7bb60.
0x008A8F80117UIWindow__draw_sprite_directDraws a sprite directly at given position. Takes sprite name, converts via FUN_00ddd280 with param_4 variant flag, loads texture via FUN_00b01200 and FUN_00aee770, then renders with FUN_00a7bb60.
0x008A900057UIWindow__draw_static_spriteDraws a static sprite from DAT_011384a8 at given position. Loads texture, then renders with FUN_00a7bb60 with flag=0 (no flip/rotation).
0x008A9040414UIWindow__draw_item_sprite_with_countDraws an item sprite at given position and overlays the item count text. Uses FUN_00ddd280 for sprite variant, loads and renders texture. If item count at offset 0x10 is valid (!= -1 and != 0), formats it as text and draws with outline effect (4 offset copies in white 0xffffff, then final in black). Uses smaller font size (0xb) and adjusts position based on whether count < 1000.
0x008A91E0669UIWindow__draw_bordered_backgroundDraws a bordered background for a UI window using 8 edge/corner sprites and a filled rectangle. Renders top/bottom edges (repeating 0xe-pixel tiles), left/right edges, 4 corners, and fills the interior with CColorPicker color. Uses sprites from DAT_0113398c/39ac/39cc/39ec/3a0c/3a2c/9d4c/9d6c. param_2/param_3 are x/y position, param_4/param_5 are width/height (default to this->width/height if 0).
0x008A94802238UIWindow__draw_skinned_backgroundDraws a skinned/themed window background using named sprite parts. Constructs sprite names by concatenating a base skin name with suffixes (lu_bmp, ru_bmp, ld_bmp, rd_bmp for corners and edge pieces). Tiles edge sprites in 0xe-pixel increments along width and height. Fills interior with a pixel color from CSprite__GetPixelAt, optionally overridden by param_7 or CColorPicker color. param_2 is skin name, param_3/4 are x/y, param_5/6 are w/h.
0x008A9D403215UIWindow__draw_skinned_background_exExtended skinned background drawing with optional tiled fill mode. Similar to draw_skinned_background but supports param_6=1 for tiled background fill instead of solid color fill. When tiled, fills interior with repeating texture pattern. Uses same sprite naming convention (lu_bmp, ru_bmp, ld_bmp, rd_bmp suffixes). Falls back to CColorPicker solid fill when not tiled.
0x008AA9D057UIWindow__draw_default_spriteDraws a default/placeholder sprite from DAT_01139cc8 at given x,y position with no flags.
0x008AAA10221UIWindow__draw_labeled_buttonDraws a labeled button at x,y. Formats label as "%s %d" from param_3 and param_4 using wsprintfA. Draws a 0x46 x 0x10 background rect with param_5 color, inner rect with param_6 color, then centers the formatted text using CColorPicker pixel color for text, font size 0xc.
0x008AAAF01372UIWindow__serialize_widget_dataSerializes UI window widget data into a byte vector (param_2). Inserts multiple data blocks using CItemInfoMgr__rbtree_insert_with_hint with type IDs 0x5014-0x501f. Serializes: base data (0x5014), formatted text at offset 0x120 (0x5016), strings at offsets 0xb4 and 0xcc (0x5017/0x5018), integers at offsets 0xe4-0xf0 (0x5019-0x501c), and tree-based data entries with types 0x501e (flag=0) and 0x501f (flag=1). Finishes with terminator 0x5015.
0x008AB0703238UIWindow__init_transparent_buttonsInitializes 2 transparent buttons for a UI window. Uses XOR-encrypted TLS-stored sprite name strings (decrypted at first access). For each button, constructs 3 sprite variant names (normal/hover/pressed) by concatenating the decrypted base name with "win_transbtn" suffixes. Creates UIButton objects via FUN_0084eab0, loads sprite states via FUN_008657a0, positions buttons using coordinate table at local_24, and sets button IDs 0x167/0x168.
0x008ABD20144UIWindow__read_registry_dwordReads a DWORD value from the Windows registry at HKLM under the path from PTR_DAT_01348f80. Sets default value from DAT_016d3b10, then queries the registry for param_2 value name, storing result at this+0xd4.
0x008ABDB01631UIWindow__load_registry_settingsLoads multiple settings from the Windows registry under HKLM. Uses XOR-encrypted TLS-stored registry key names (decrypted on first access). Reads: enable flag (stored at this+0xc8), a byte value, a 0x33-byte string, and a 3-byte value. If enable flag is set, compares the string against known values to determine settings mode and calls FUN_00868570 to configure. Updates virtual call results at this+0xb4 and this+0xb8.
0x008AC4903223UIWindow__init_button_panelInitializes a button panel for a UI window. Creates buttons in a loop (2 iterations for main buttons with IDs 0xb8/0xb9), each with 3 sprite states (normal/hover/pressed) from sprite name suffixes. Also creates additional UI elements: two more buttons at offsets 0x2c4/0x2c8 with IDs 0xe3/0xe2, two UISpriteWidgets at offsets 0x2cc/0x2d0, and configures sprite animations and tooltips.
0x008AD7701288UIWindow__init_text_and_buttonInitializes a UI window with a text widget at offset 0xb8 (editable, font 6, light gray) and an editable text widget at offset 0xbc, plus a cancel button (3 sprite states) positioned at bottom-right. Sets widget ID to 0xb8.
0x008AF1906597UIWindow__init_complex_layoutLarge UI window initialization function (6597 bytes). Creates a complex layout with multiple child widgets. Too large to fully decompile; likely initializes a major game window with many controls.
0x008B0B60314UIWindow__init_scroll_controlsInitializes scroll-related controls for a UI window (314 bytes). Sets up scrollbar and list widgets.
0x008B0CA01425UIWindow__init_tabbed_layoutInitializes a tabbed layout for a UI window (1425 bytes). Creates tab buttons and associated panel content.
0x008B12401309UIWindow__init_list_layoutInitializes a list-style layout for a UI window (1309 bytes). Creates list widgets with scroll support.
0x008B28202510UIWindow__init_detail_view_layoutInitializes a detail view layout for a UI window (2510 bytes). Creates detail display with text labels and action buttons.
0x008B84B0349UIWindow__draw_decorated_backgroundDraws a decorated background for a UI window (349 bytes). Renders background with decorative elements.
0x008B8E6048UIWindow__draw_title_backgroundDraws the title background for a UI window. Gets title string from offset 0x100 (with SSO check at 0x114), calls FUN_008d2ce0 with flag=1 and FUN_008d03e0 to render the title bar.
0x008B8E9049UIWindow__draw_background_sprite_bDraws a background sprite from DAT_01139db4 at position (0,0) with no flags.
0x008B8ED01718UIWindow__draw_achievement_backgroundDraws the achievement window background (1718 bytes). Renders background elements specific to achievement display.
0x008B9790424UIWindow__draw_pet_backgroundDraws the pet window background (424 bytes). Renders background elements for pet info display.
0x008B994092UIWindow__draw_title_with_imageDraws the title background and an optional image. Gets title string from offset 0x100, calls FUN_008d2ce0/008d03e0 for title bar, FUN_008d0920 with flag 2 for additional rendering. If image handle at offset 0x120 is non-zero, renders it at position (0x9e,0x1b) with size (0x38,0x4b) via FUN_00a7bb20.
0x008B9E9049UIWindow__draw_background_sprite_cDraws a background sprite from DAT_0113a20c at position (0,0) with no flags.
0x008BA1E0152UIWindow__prepare_render_contextPrepares the render context for a UI window before drawing. Reorders the window in the global window list if needed (via CGameObject__reorder_window_in_list_18), sets hover focus, accumulates parent offsets to compute absolute screen coordinates (stored at this+0x7c/0x80/0x84/0x88), sets render flag 0x80, timestamps via timeGetTime(), and refreshes dependent navigator windows.
0x008BA28061UIWindow__on_mouse_over_list_rowHandles mouse hover over list row. Hit-tests the row from coordinates, stores result in field 0x94, calls virtual refresh and sends msg 0x50.
0x008BA2C068UIWindow__on_window_focus_resetResets window focus state. If this is the active window (field 0x19c match), resets selection to -1, sets alpha to 0xFF, records timestamp, clears hover, and rebuilds navigator children.
0x008BA310171UIWindow__on_mouse_click_dispatchDispatches mouse click. If this is active window and click is within bounds, sets click flag and sends virtual messages. Otherwise clears click flag. Calls virtual refresh and clears hover.
0x008BA3D0289UIWindow__show_tooltip_for_long_textShows tooltip for text that exceeds 100 pixels width. Accumulates parent offsets, measures text width at font size 12, and if >100px, shows tooltip via CToolTipMgr at the computed position.
0x008BA510335UIWindow__update_position_with_snapUpdates window position with snap offsets. Accumulates parent offsets, computes snap offsets, selects the larger offset between navigator snap and computed snap, then applies the combined position and registers in grid.
0x008BA670426UIWindow__update_elapsed_time_displayUpdates an elapsed time display. Gets current time, converts to minutes:seconds, formats via XOR-decrypted format string, sets text widget, and calls virtual refresh. Uses TLS for encrypted string storage.
0x008BA8201413UIWindow__update_input_fields_with_placeholderManages two input text fields with placeholder text and IME control. Compares current text against XOR-encrypted placeholder strings. Sets grey (0x9C) color for placeholder, black for user input. Handles IME conversion status toggling. Fields at offsets 0xB4 and 0xB8.
0x008BADC0301UIWindow__update_countdown_displayUpdates countdown timer display. Compares current time against deadline at offset 0xC4. When expired, sets DAT_01457af4=0xBB and clears active flag. Otherwise computes remaining seconds, formats via lua_util_sprintf with format string at offset 0xD0, and updates text widget.
0x008BAEF0378UIWindow__update_countdown_with_progressUpdates countdown timer with progress bar. Similar to update_countdown_display but also computes progress percentage from elapsed/total duration and sets it on a progress control via CUIControl__set_field_0x1f_and_invalidate.
0x008BB07051UIWindow__send_scroll_indicator_msgSends a scroll indicator message to a child widget. If param is negative, sends offset +6; otherwise sends -6 (0xFFFFFFFA). Uses virtual call at vtable+0x94 with the widget at field 0x170.
0x008BB0B030UIWindow__open_url_via_shellOpens a URL via Windows ShellExecuteA. Uses the main window handle (DAT_0173ad68), the 'open' verb (DAT_010d9804), and a URL from PTR_DAT_01348f6c.
0x008BB0D0537UIWindow__load_and_display_text_fileLoads a text file and displays its contents in a paged text view. Reads file from path at field 0x110, parses lines delimited by newlines, handles '^' as section markers, supports scrolling with up to 19 visible lines, sets each line as a text widget entry.
0x008BB2F076UIWindow__setup_child_scrollbarsSets up scroll ranges for two child scrollbar widgets at offsets 0x2CC and 0x2D0. First scrollbar: range 0-22 with page size 1. Second scrollbar: range 0-8 with page size 1. Calls virtual refresh on each.
0x008BB34058UIWindow__apply_snap_offsetApplies window snap offset. Computes snap offsets via CGameObject__compute_window_snap_offsets, adds them to position fields (0x1C, 0x20), then registers the window in the UI grid.
0x008BB380110UIWindow__save_setting_to_registrySaves a setting value to the Windows registry. Copies a value from the child widget's field 0x94 into field 0xD4, then writes it as a DWORD to HKLM under the game's registry key using the provided registry value name.
0x008BB410471UIWindow__process_trade_inputHandles trade window input events. Msg 6+0xB8/0xB9: confirm/cancel trade (sends command 0x78). Msg 0x4A: updates trade item info by combining item name with message table text 0x189, sets text on child widget.
0x008BB5F0213UIWindow__process_bank_inputHandles bank/zeny input. Processes deposit (0x1CE) and withdraw (0x1CF) with overflow and trade-busy checks. Amount buttons: 10M (0x186), 1M (0x187), 100K (0x188). Input fields at 0xB4/0xB8. Uses compute_adjusted_value_ex for 64-bit zeny math. Sends packets 0x9A7/0x9A9.
0x008BB9E0170UIWindow__chat_window_procMain chat window message handler. Extremely large proc handling: Msg 6+0xB8: send chat with link delimiter check, ASCII validation, report system, and whisper target detection. Msg 0x0E: window resize with min 280x120. Msg 0x22: update chat data (name, message, map info, town search). Msg 0x25: search results display. Msg 0x2B-0x2E: settings tree iteration. Msg 0x30: context menu actions (whisper, party, block, friend request, pet evolution). Msg 0x31: friend list population. Msg 0x35: position restore. Msg 0x7B: network sync data (multiple sub-packets 0x5015-0x501F).
0x008BDB0094UIWindow__generic_input_window_procGeneric input window proc. Msg 6+0xB8: reads text input, converts to int, sends command with stored ID. Msg 0x1D: sets text widget. Msg 0x50: stores list selection index. Msg 0x51: converts int to string and sets on text widget. Default: delegates to button click handler.
0x008BDC90125UIWindow__handle_button_clickHandles a button click event in a UI window (125 bytes).
0x008BDD101255UIWindow__search_window_procSearch/friend list window proc. Msg 6+0xB8: validates search text (length < 24, no URL patterns), performs town search or sends friend request (0xB9). Msg 6+0xC9: closes. Msg 6+0xD5: save data sync. Msg 6+0x121-0x123: manage friend windows (create, delete confirm, character delete). Msg 6+0x1E8: dialog result handling. Msg 0x22: reposition with validation.
0x008BE200647UIWindow__pincode_window_procPIN code window proc. Msg 6+0xB9: disconnect confirm dialog (msg 0x11). Msg 6+0x17E: plays sound, validates PIN is exactly 8 digits, sends via command 0x2728 + 0x27, closes window 0xB4. Shows error dialog (msg 0xCB1) if wrong length. Msg 0x3C: clears text field.
0x008BE490776UIWindow__account_service_window_procAccount service window proc. Handles account creation, URL launch, and quit flow. Msg 6+0xB9: disconnect. Msg 6+0xBA: password change with min 4/6 char validation, sends 0x2735/0x2717/0x2718/0x2736. Msg 6+0xD5: toggle display mode. Msg 6+0xDD: quit with disconnect confirm. Msg 6+0xE5: creates pet selection popup (window 0x1A). Msg 6+0x10B: quit to website or game mode on quit. Msg 0x27: decrypts TLS strings for button labels.
0x008BF720166UIWindow__enchant_window_procEnchant window message handler. Msg 0: default button handler. Msg 6: network packet forwarding + sub-msg handling (0xB8=refresh, 0xC9=close enchant, 0x15D=create enchant window 0x7E, 0x15E=confirm with dialog). Msg 0x22: reposition window.
0x008BF95067UIWindow__service_info_window_procService info window message handler. Msg 6: close on 0xB8/0xBB/0xBC. Msg 0x39: refresh child and send msg 0x1D. Msg 0x43: copy string. Msg 0x62: open URL from message table entry 0xD75 via ShellExecuteA. Msg 0x9C/0x9D/0x9E: get/set enable state at offset 0x118/0x11C.
0x008BFB7034UIWindow__simple_command_window_procSimple command window proc. Msg 6: stores param in DAT_01457af4 and returns 0. All other messages: delegates to UIWindow__handle_button_click.
0x008BFBA0113UIWindow__charselect_data_window_procCharacter select data window message handler. Msg 6+0xB8: unregister window. Msg 0x4F: copies 7 int + 1 bool (32 bytes) of char data from param into member fields at offset 0xB4-0xD0, then calls virtual refresh (vtable+0x98).
0x008BFC2063UIWindow__notice_window_procNotice/patch notes window message handler. Msg 0: self-close. Msg 6+0xB8: write read-state to notice_read.txt and close. Msg 6+0xDA/0xF6: page navigation (next/prev). Msg 7/9/10: vertical scrolling with bounds clamping. Draws equipped items section after scroll.
0x008BFE80154UIWindow__search_navigation_window_procSearch/navigation window message handler. Msg 6+0xB8: text search with town name validation, shows dialog on incomplete search. Msg 6+0xC9: close. Msg 6+0x10C: creates multi-option selection window (0x104) with 4 message table entries + pet item list from save data. Msg 6+0x1E8: confirm dialog for guild-related action. Msg 0x22: reposition. Msg 0x27: handles submenu selections (0x1D3-0x1D7) for guild/pet actions.
0x008C0B2065UIWindow__graphics_options_window_procGraphics options window message handler. Msg 6: dispatches session commands 0x191-0x196 (graphics presets), 0x194 closes window. Msg 0x23: toggles between two display modes by swapping child widget positions. Msg 0x3C: touch input. Msg 0xFB: no-op.
0x008C0DF01266UIWindow__recording_settings_window_procRecording/macro settings window proc. Msg 6+0xD5: handles 10+ checkbox toggles for recording categories via radio buttons, syncs to EffectMap config. Msg 6+0x1A4-0x1A9: mode transitions (start recording, stop, search filename with URL validation, manage states). Msg 0x22: reposition. Msg 0x3C: refresh display. Msg 0x57: saves resolution to EffectMap. Msg 0x74: updates animation display.
0x008C14F063UIWindow__replay_window_procReplay window message handler. Msg 6+0xB8: opens replay file, checks effect type match, starts playback or shows error dialog. Msg 6+0xB9/400: starts playback and closes. Msg 6+0xDD: disconnect confirmation. Msg 0x12/0x13/0x28: forward to child. Msg 0x50: process mouse. Msg 0x59: resize child widget.
0x008C18C067UIWindow__settings_registry_window_procSettings window with registry persistence. Msg 6+0xB8: saves selection to Windows registry (HKLM) and sends session command. Msg 6+0xB9: closes and sends 0x2716. Msg 6+0xDD: disconnect confirm. Msg 6+0x190: configures effect map settings and starts. Msg 0x50: reads saved value from registry. Msg 0x12/0x13/0x28: forward to child. Msg 0x59: resize.
0x008C1DB0276UIWindow__color_picker_window_procColor picker window proc. Msg 6+0xB8: confirms selection - gathers 4 color values from fields 0xB4-0xC0 plus text input, sends via mode1 command 0x83. Msg 6+0xB9: cancel, closes window. Msg 0x44: receives 4-value color data into fields 0xB4-0xC0.
0x008C1ED044UIWindow__set_string_from_cstrCopies a null-terminated C string into an STL string by computing strlen then calling STL_string_assign_buffer.
0x008C1F001372UIWindow__arrange_child_widgets_by_modeArranges child widget positions based on mode (0-3). Mode 0: shows file browser and checkboxes. Mode 1: shows recording controls with timestamp. Mode 2: shows playback controls with speed/navigation. Mode 3: shows password input with focus. Each mode hides irrelevant widgets by moving offscreen (-100,-100). Triggers touch input refresh at end.
0x008C2460813UIWindow__display_replay_file_infoDisplays replay file metadata. Checks if a replay entry is selected, opens the file, reads header. On success: shows type (Primary/Siege/Local/InstantEvent/PK), header fields (IP, version, dates), duration. On failure: shows error message 0x7B1. Uses EffectMap instance for replay data.
0x008C2E30732UIWindow__update_pet_intimacy_labelUpdates pet intimacy/closeness label based on DAT_01733684 value ranges. Ranges: <0 (invalid), 0-100 (with special Homunculus sub-ranges at 21/41), 101-250, 251-750, 751-900, 901-1000. Assigns corresponding message table text (0x2A0-0x2A4, 0x3FD-0x3FE). Also updates a float progress indicator. Refreshes display only if label text changed.
0x008C3110815UIWindow__display_replay_statusDisplays replay playback status. Shows elapsed time (h:m:s) and total duration, playback speed (messages 0x7A3-0x7AB for speeds 1-7+), and current map/location name from CEntity. Updates display and invalidates rendering.
0x008C3440349UIWindow__update_timer_displayUpdates a running timer display with blinking dots. Cycles through 4 dot positions based on timeGetTime()%1000/250. Only updates the time text if >200ms has passed since last update. Formats elapsed time as HH:MM:SS. Adjusts timer widget width at 100h and 1000h marks.
0x008C35A056UIWindow__copy_rect_to_field_0x120Copies window rect fields (0x14, 0x18, 0x1C, 0x20) into the structure pointed to by field 0x120. Layout: [0]=pos.x, [4]=pos.y, [8]=origin.x, [12]=origin.y.
0x008C35E056UIWindow__copy_rect_to_field_0xccCopies window rect fields (0x1C, 0x20, 0x14, 0x18) into the structure pointed to by field 0xCC. Layout: [0]=pos.x, [4]=pos.y, [8]=origin.x, [12]=origin.y.
0x008C363056UIWindow__copy_rect_to_field_0xc4Copies window rect fields (0x1C, 0x20, 0x14, 0x18) into the structure pointed to by field 0xC4.
0x008C367056UIWindow__copy_rect_to_field_0xb8Copies window rect fields (0x1C, 0x20, 0x14, 0x18) into the structure pointed to by field 0xB8.
0x008C36B056UIWindow__copy_rect_to_field_0x138Copies window rect fields (0x14, 0x18, 0x1C, 0x20) into the structure pointed to by field 0x138.
0x008C36F0750UIWindow__export_chat_to_fileExports chat log to a text file. Creates Chat/ directory under game path if needed. Sanitizes the chat partner name (replaces \\/:*?\"<>\| with underscore). Generates unique filename with incrementing suffix to avoid overwrite. Calls CUIControl__export_strings_to_file. Displays success message in green (0xFF00) in chat.
0x008C39E0747UIWindow__save_account_settings_to_registrySaves account settings to Windows registry (HKLM). Writes three XOR-encrypted registry values: (1) account ID string from text input or empty, (2) a DWORD flag indicating if account ID was present, (3) a DWORD with value 1 (always). Uses TLS for XOR-decrypted registry key names.
0x008C3E2016UIWindow__init_vtableInitializes the vtable pointer for a UIWindow-derived class. Sets param_1[0] to point to the vtable at PTR_UIWindow__thunk_vfunc_0_0113a55c.
0x008C3E3016UIWindow__thunk_vfunc_1Sets vtable pointer to 0x0113A4EC on the object. Part of a multi-inheritance UIWindow class hierarchy vtable initialization chain.
0x008C3E5016UIWindow__thunk_vfunc_2Sets vtable pointer to 0x0113A508 on the object. Part of UIWindow multi-inheritance vtable initialization chain.
0x008C3E6016UIWindow__thunk_vfunc_3Sets vtable pointer to 0x0113A594 on the object. Part of UIWindow multi-inheritance vtable initialization chain.
0x008C3E7016UIWindow__thunk_vfunc_4Sets vtable pointer to 0x0113A524 on the object. Part of UIWindow multi-inheritance vtable initialization chain.
0x008C3E8016UIWindow__thunk_vfunc_5Sets vtable pointer to 0x0113A5B0 on the object. Part of UIWindow multi-inheritance vtable initialization chain.
0x008C3E9016UIWindow__thunk_vfunc_6Sets vtable pointer to 0x0113A540 on the object. Part of UIWindow multi-inheritance vtable initialization chain.
0x008C3EA068UIWindow__scalar_deleting_dtor_aScalar deleting destructor for UIWindow base class A. Calls operator_delete(this, 8) if param_2 is nonzero.
0x008C3EF068UIWindow__scalar_deleting_dtor_bScalar deleting destructor for UIWindow base class B. Calls operator_delete(this, 8) if param_2 is nonzero.
0x008C3F4068UIWindow__scalar_deleting_dtor_cScalar deleting destructor for UIWindow base class C. Calls operator_delete(this, 8) if param_2 is nonzero.
0x008C3F9068UIWindow__scalar_deleting_dtor_dScalar deleting destructor for UIWindow base class D. Calls operator_delete(this, 8) if param_2 is nonzero.
0x008C3FE068UIWindow__scalar_deleting_dtor_eScalar deleting destructor for UIWindow base class E. Calls operator_delete(this, 8) if param_2 is nonzero.
0x008C403068UIWindow__scalar_deleting_dtor_fScalar deleting destructor for UIWindow base class F. Calls operator_delete(this, 8) if param_2 is nonzero.
0x008C408068UIWindow__scalar_deleting_dtor_gScalar deleting destructor for UIWindow base class G. Calls operator_delete(this, 8) if param_2 is nonzero.
0x008C40D068UIWindow__scalar_deleting_dtor_hScalar deleting destructor for UIWindow base class H. Calls operator_delete(this, 8) if param_2 is nonzero.
0x008C47D016UIWindow__thunk_vfunc_7Sets vtable pointer to 0x0113A55C on the object. Part of UIWindow multi-inheritance vtable initialization chain (second set, thunk_vfunc_7).
0x008C47E016UIWindow__thunk_vfunc_8Sets vtable pointer to 0x0113A4EC on the object. Part of UIWindow multi-inheritance vtable initialization chain (second set, thunk_vfunc_8). Same vtable as thunk_vfunc_1.
0x008C47F016UIWindow__thunk_vfunc_9Sets vtable pointer to 0x0113A578 on the object. Part of UIWindow multi-inheritance vtable initialization chain (second set, thunk_vfunc_9).
0x008C480016UIWindow__thunk_vfunc_10Sets vtable pointer to 0x0113A508 on the object. Part of UIWindow multi-inheritance vtable initialization chain (second set, thunk_vfunc_10).
0x008C481016UIWindow__thunk_vfunc_11Sets vtable pointer to 0x0113A594 on the object. Part of UIWindow multi-inheritance vtable initialization chain (second set, thunk_vfunc_11).
0x008C482016UIWindow__thunk_vfunc_12Sets vtable pointer to 0x0113A524 on the object. Part of UIWindow multi-inheritance vtable initialization chain (second set, thunk_vfunc_12).
0x008C483016UIWindow__thunk_vfunc_13Sets vtable pointer to 0x0113A5B0 on the object. Part of UIWindow multi-inheritance vtable initialization chain (second set, thunk_vfunc_13).
0x008C484016UIWindow__thunk_vfunc_14Sets vtable pointer to 0x0113A540 on the object. Part of UIWindow multi-inheritance vtable initialization chain (second set, thunk_vfunc_14).
0x008C99F067UIWindow__free_node_8c99f0Frees 0xC-byte linked list node at this+4 if non-null
0x008C9A4067UIWindow__free_node_0x34_8c9a40Frees 0x34-byte allocation at this+4 if non-null
0x008C9A9067UIWindow__free_node_0x18_8c9a90Frees 0x18-byte allocation at this+4 if non-null
0x008C9AE067UIWindow__free_node_0x1c_8c9ae0Frees 0x1C-byte allocation at this+4 if non-null
0x008C9B3078UIWindow__free_node_0xc_8c9b30Frees 0xC-byte allocation at this+4 if non-null
0x008C9B80144UIWindow__cleanup_and_free_8c9b80Cleanup: if this+4 non-null, destroys string via 008c4930 then frees 0x34-byte block
0x008C9C30111UIWindow__destroy_tree_nodes_8c9c30Iterates linked list, calls cleanup on each node key, frees 0x18-byte nodes, then frees sentinel
0x008C9CB076UIWindow__destroy_tree_0x1c_8c9cb0Destroys tree via 008c5f50, then frees 0x1C-byte root node
0x008C9D1078UIWindow__free_node_0x18_8c9d10Frees 0x18-byte allocation at this+4 if non-null
0x008C9D60116UIWindow__cleanup_and_free_0x1c_8c9d60Cleanup: calls helper on this+4 if non-null, then frees 0x1C-byte block
0x008C9DE078UIWindow__free_node_0x18_8c9de0Frees 0x18-byte allocation at this+4 if non-null
0x008C9E3078UIWindow__free_node_0x1c_8c9e30Frees 0x1C-byte allocation at this+4 if non-null
0x008C9E8091UIWindow__destroy_string_vector_8c9e80Iterates vector of 0x1C-byte elements, destroys std::string in each entry
0x008C9F10103UIWindow__destroy_slist_0xc_8c9f10Walks singly-linked list, frees each 0xC-byte node, then frees head node
0x008C9F8065UIWindow__destroy_tree_wrapper_8c9f80Wrapper: calls destroy_tree_nodes_8c9c30 to free all tree nodes
0x008C9FD087UIWindow__destroy_tree_0x1c_8c9fd0Destroys tree via 008c5f50, then frees 0x1C-byte root node
0x008CA030109UIWindow__cleanup_strings_8ca030Calls 008c4930 cleanup then destroys std::string
0x008CA0A068UIWindow__cleanup_helper_8ca0a0Calls helper_005c2a80 cleanup function
0x008CA2E099UIWindow__destroy_3_strings_8ca2e0Destroys 3 std::string members sequentially
0x008CA35068UIWindow__destroy_string_8ca350Destroys single std::string member
0x008CA3A071UIWindow__dtor_8ca3a0Destructor: sets vtable 0x0113e0cc, calls base UIWindow dtor 008a4e90
0x008CA3F097UIWindow__dtor_8ca3f0Destructor: unwinds 3 vtables (c92c->c344->c194), calls base UIWindow dtor 008a4e90
0x008CA46097UIWindow__dtor_8ca460Destructor: unwinds 3 vtables (c854->c344->c194), calls base UIWindow dtor 008a4e90
0x008CA4D095UIWindow__dtor_8ca4d0Destructor: sets vtable 0x0113dd6c, calls CFmt cleanup, then base UIWindow dtor
0x008CA530110UIWindow__dtor_8ca530Destructor: sets vtable 0x0113bad4, destroys 2 strings, calls base UIWindow dtor
0x008CA5A071UIWindow__dtor_8ca5a0Destructor: sets vtable 0x0113cc8c, delegates to dtor at 008ca5f0
0x008CA5F0155UIWindow__dtor_8ca5f0Destructor: sets vtable 0x0113cbb4, destroys 2 json objs, 2 CFmt objs, 1 string, base dtor
0x008CA69071UIWindow__dtor_8ca690Destructor: sets vtable 0x0113c194, calls base UIWindow dtor 008a4e90
0x008CA6E095UIWindow__dtor_8ca6e0Destructor: sets vtable 0x0113be34, calls CFmt cleanup, then base UIWindow dtor
0x008CA740104UIWindow__dtor_8ca740Destructor: sets vtable 0x0113bd5c, copies field +0x2e to +0x2f, destroys json obj, base dtor
0x008CA7B099UIWindow__dtor_8ca7b0Destructor: sets vtable 0x0113b774, calls destroy notify 0xfa, delegates to dtor 008cac40
0x008CA82071UIWindow__dtor_8ca820Destructor: sets vtable 0x0113b924, delegates to dtor 008cac40
0x008CA87071UIWindow__dtor_8ca870Destructor: sets vtable 0x0113d85c, calls base UIWindow dtor 008a4e90
0x008CA8C071UIWindow__dtor_8ca8c0Destructor: sets vtable 0x0113d784, calls base UIWindow dtor 008a4e90
0x008CA91097UIWindow__dtor_8ca910Destructor: unwinds 3 vtables (c4f4->c344->c194), calls base UIWindow dtor
0x008CA98071UIWindow__dtor_8ca980Destructor: sets vtable 0x0113c26c, calls base UIWindow dtor 008a4e90
0x008CA9D071UIWindow__dtor_8ca9d0Destructor: sets vtable 0x0113b18c, calls base UIWindow dtor 008a4e90
0x008CAA20192UIWindow__dtor_8caa20Destructor: sets vtable 0x0113ae2c, destroys 2 string vectors and 2 CFmt objs, base dtor
0x008CAAE084UIWindow__dtor_8caae0Destructor: unwinds 2 vtables (c344->c194), calls base UIWindow dtor
0x008CAB40175UIWindow__dtor_8cab40Destructor: sets vtable 0x0113aacc, destroys 2 strings and 2 linked lists (0x100-byte), base dtor
0x008CABF071UIWindow__dtor_8cabf0Destructor: sets vtable 0x0113dbbc, calls base UIWindow dtor 008a4e90
0x008CAC40212UIWindow__dtor_8cac40Destructor: sets vtable 0x0113b69c, calls notify 0x114, destroys tree/4 strings, base dtor
0x008CAD2071UIWindow__dtor_8cad20Destructor: sets vtable 0x0113b84c, delegates to dtor 008cac40
0x008CAD70143UIWindow__dtor_8cad70Destructor: unwinds vtables d274->cfec, destroys string and linked list, base dtor
0x008CAE00130UIWindow__dtor_8cae00Destructor: sets vtable 0x0113cfec, destroys string and linked list at +0x33, base dtor
0x008CAE9095UIWindow__dtor_8cae90Destructor: sets vtable 0x0113afdc, destroys 1 string, calls base UIWindow dtor
0x008CAEF097UIWindow__dtor_8caef0Destructor: unwinds 3 vtables (de44->c344->c194), calls base UIWindow dtor
0x008CAF6097UIWindow__dtor_8caf60Destructor: unwinds 3 vtables (ca04->c344->c194), calls base UIWindow dtor
0x008CAFD097UIWindow__dtor_8cafd0Destructor: unwinds 3 vtables (c41c->c344->c194), calls base UIWindow dtor
0x008CB04071UIWindow__dtor_8cb040Destructor: sets vtable 0x0113ac7c, calls base UIWindow dtor 008a4e90
0x008CB090143UIWindow__dtor_8cb090Destructor: unwinds vtables d19c->cfec, destroys string and linked list, base dtor
0x008CB120110UIWindow__dtor_8cb120Destructor: sets vtable 0x0113d6ac, frees vector and CFmt obj, base dtor
0x008CB190119UIWindow__dtor_8cb190Destructor: sets vtable 0x0113d34c, frees vector and tree nodes, base dtor
0x008CB21097UIWindow__dtor_8cb210Destructor: unwinds 3 vtables (c6a4->c344->c194), calls base UIWindow dtor
0x008CB280110UIWindow__dtor_8cb280Destructor: sets vtable 0x0113bbac, destroys 2 strings, base dtor
0x008CB2F071UIWindow__dtor_8cb2f0Destructor: sets vtable 0x0113c0bc, calls base UIWindow dtor 008a4e90
0x008CB340151UIWindow__dtor_8cb340Destructor: sets vtable 0x0113b33c, destroys 4 strings, base dtor
0x008CB3E071UIWindow__dtor_8cb3e0Destructor: sets vtable 0x0113d424, calls base UIWindow dtor 008a4e90
0x008CB43071UIWindow__dtor_8cb430Destructor: sets vtable 0x0113d4fc, calls base UIWindow dtor 008a4e90
0x008CB48071UIWindow__dtor_8cb480Destructor: sets vtable 0x0113b414, calls base UIWindow dtor 008a4e90
0x00900A2E32UIWindow__epilog_return_zero_00900a2eUIWindow: epilog return zero 00900a2e
0x00901370116UIWindow__msg_handler_scroll_keypadWindow message handler for a scroll/keypad UI element. On msg 6: handles key codes 0xB9 (scrolls with 0x30), 0xDC (sends vtable call with 0x19, value 1), 0xDD (sends vtable call with 0x58, value 0). Falls through to FUN_008bdc90 for other message types.
0x009013F091UIWindow__msg_handler_scroll_extendedWindow message handler with extended scroll functionality. On msg 6: handles 0xDC (vtable call 0x19), 0xB9 (scroll 0x13), 0xFB (scroll 0x13 + vtable 0x58), 0xFC (vtable 0x19 with value 1 + scroll 0x13 + 0x10d). Falls through to default handler for other messages.
0x00909CD013UIWindow__set_field_0x28Setter: stores param_2 at this+0x28
0x00913CF0114UIWindow__dtor_913cf0Destructor: sets vtable to 01140d20, destroys 2 STL strings, calls std__vector_3c__clear_and_free to clean up vector of 0x3C-byte elements.
0x00918940121UIWindow__draw_item_with_quantityDraws an item sprite with quantity overlay. First calls UIWindow__draw_item_sprite for the base sprite rendering. If the item has a non-zero quantity at offset 0x10, formats it with lua_util_sprintf and draws the number text at position (x+0x1B, y+0x11) in white (0xFFFFFF).
0x0091A7D0397UIWindow__render_highlights_91a7d0Renders highlight rectangles for entries matching the current selection. Gets the current map name via virtual method 0x18 on the mode-1 field. Iterates the linked list at offset 0xB4, and for entries matching DAT_013899bc, compares the entry name string against the current map name. If equal, draws a green border (0x23AEE8); otherwise draws a light pink border (0x7EE2F7). Uses CEffect__draw_3d_border for the rect outline.
0x00930CD0111UIWindow__toggle_child_visibilityToggles visibility of a child window found by ID at offset 0xE4. Looks up window via FUN_00aa5f70 or FUN_00a978d0, toggles show/hide, and sends msg 0x10F to parent.
0x009312E080UIWindow__on_click_send_parent_msg_c1Click handler that sends notification msg 0xC1 to parent window ID 0x84 with the value at offset 0xF4. Only active when DAT_01732d84 is set. Also handles header draw.
0x0093139068UIWindow__on_click_check_center_areaClick handler that checks if click is in the center area (x: 8-0x86, y: 0x27-0xA5). If click is within bounds, sends msg 0x1AD to parent via vtable 0x94. Always delegates to UIWindow__on_window_focus_reset for focus handling.
0x009313E09thunk_to_UIWindow__on_window_focus_reset_009313e0Thunk that jumps to UIWindow__on_window_focus_reset (at 0x008ba2c0). Simple pass-through with no additional logic.
0x009316F029UIWindow__on_mouse_up_focus_reset_and_refreshMouse up handler. Resets window focus state via UIWindow__on_window_focus_reset, then calls virtual function at vtable offset 0x2C to trigger a refresh/update pass.
0x00931710142UIWindow__on_mouse_up_notify_parent_at_cursorMouse up handler: draws footer bar, then checks if cursor is within parent window (ID 1) bounds. If so, sends msg 0x76 to the parent via vtable offset 0x94.
0x009328F047UIWindow__on_mouse_up_update_position_if_activeConditional mouse-up handler. Only updates window position (via UIWindow__update_position_with_snap) if this window matches the active window from get_field_0x19c and DAT_01732d84 is exactly 1 (drag mode active).
0x00932920536UIWindow__update_cell_position_and_tooltipUpdates UI cell position based on x,y coordinates. Checks if target differs from self, searches linked list for matching cells within bounds, sets active cell pointer at offset 0x2f, and creates/copies tooltip info struct (0x54 bytes) from map data including position and bounding rect.
0x00932B4037UIWindow__on_mouse_move_show_tooltip_and_updateMouse move handler wrapper. First shows item tooltip at position (via UITooltipWnd__show_item_tooltip_at_pos with filter=-1), then updates window position with snap. Combines tooltip display with position tracking.
0x00932B7038UIWindow__on_mouse_move_update_position_if_selfConditional mouse move handler. Only updates window position (via UIWindow__update_position_with_snap) if this window instance matches the active window returned by get_field_0x19c. Acts as a self-check guard for position updates.
0x00932C80409UIWindow__update_tooltip_from_map_entryUpdates tooltip content from a map entry at offset 0xC0. Compares entry name with current tooltip name, and if different, copies new name string and initializes tooltip entry from string and bounds. Accumulates display time with delta and caps at 1.0.
0x00932E2089UIWindow__check_loading_timeout_and_closeChecks if loading is complete (field 0x30 == field 0x31). If complete, starts a 2-second timeout timer using timeGetTime. After 2 seconds, calls FUN_00a8cf20(0xc4) to close/hide the loading window.
0x00933D2049UIWindow__on_resize_update_scroll_areaHandles window resize by calling base resize handler and updating scroll area dimensions. Sets scroll width to window width - 6 and scroll height to window height minus header height (field 0x11C).
0x00933D60174UIWindow__on_resize_layout_childrenHandles window resize with child layout. Calls base resize, repositions scrollbar (field 0xBC) flush to edges, positions close button (field 0xE4) at x offset, and updates scroll/content area dimensions. Stores width/height in std::map entries at offsets 0x3C and 0x40.
0x00933E1042UIWindow__set_child_width_fixed_338Sets the width field of the child control at offset 0x124. Clamps the input to a minimum of 0x152 (338px) and also caps at 0x152, effectively always setting width to exactly 0x152. Stores in child+0xC and calls UIWorldMapWnd__layout_all_controls to refresh layout.
0x0093474062UIWindow__set_timer_paramsSets timer parameters for a UI window when command is 0x50. If param_4 is 0, sets timer target (field 0xB8). Otherwise sets timer callback (field 0xC4), resets counter (field 0xC0), and sets interval to 200ms (field 0xB4).
0x0093CAB028UIWindow__open_child_on_command6Simple handler that opens a child window via FUN_00a978d0 when receiving command 6. The child window type is specified by param_3. Returns 0 always.
0x0093D22078UIWindow__set_visible_with_refreshSets window visibility with display refresh. If showing (non-zero), sends vtable 0x94 with command 0x17 to refresh data, calls vtable 0x98 to redraw, and FUN_00aab0d0 to notify. If hiding, calls FUN_00a8cd70. Stores visibility in field 0x28 (offset 10).
0x0093D27075UIWindow__toggle_child_panel_visibilityToggles visibility of child panel at offset 0x13C. When showing, calls FUN_00a82e50 to bring to front, checks if panel has been registered (FUN_00a81a30), and adds to manager (FUN_00a7a080) if not. Passes visibility flag to child's vtable 0x38.
0x00940B80381UIWindow__set_tooltip_from_coordsSets tooltip info from given x,y coordinates. Frees existing tooltip struct (0x54 bytes) if present, then looks up the map cell at the given position via handler_00613ab0. If found, allocates a new tooltip struct, copies cell name string, bounding rect (5 floats at +0x38), and parent map position data (4 floats at +0xC). Triggers redraw via vtable 0x98.
0x00940D00122UIWindow__find_cell_at_positionFinds the cell at given x,y position by iterating the linked list at field 0x2D. Matches cells where the current map ID equals DAT_013899bc and the position is within the cell's bounding box (fields 0x10-0x13). Sets field 0x2F to the matched cell pointer+2, or 0 if no match. Triggers redraw.
0x00940DE056UIWindow__sync_position_to_configSyncs window position and size to its associated config structure at offset 0xEC. Copies x (field 0x14) to config+8, y (field 0x18) to config+0xC, width (field 0x1C) to config+0, height (field 0x20) to config+4. Only writes if config pointer is non-null.
0x00940EE056UIWindow__sync_pos_to_config_0xb8Syncs window size and position to config struct at offset 0xB8. Width/height stored at config+0/+4, x/y position at config+8/+0xC.
0x00940F2056UIWindow__sync_pos_to_config_0x1d0Syncs window position/size to config struct at offset 0x1D0. Position x,y to config+8/+0xC, width/height to config+0/+4.
0x00940F6056UIWindow__sync_pos_to_config_0x17cSyncs window position/size to config struct at offset 0x17C. Position x,y to config+8/+0xC, width/height to config+0/+4.
0x00940FA056UIWindow__sync_pos_to_config_0x1e8Syncs window position/size to config struct at offset 0x1E8. Position x,y to config+8/+0xC, width/height to config+0/+4.
0x00940FE056UIWindow__sync_size_pos_to_config_0xb8Syncs window size and position to config struct at offset 0xB8. Width/height at config+0/+4, position x/y at config+8/+0xC. Same as UIWindow__sync_pos_to_config_0xb8 but for a different window class.
0x0094102056UIWindow__sync_pos_size_to_config_0xb8Syncs window position and size to config at offset 0xB8. Position x,y saved to config+8/+0xC, width/height saved to config+0/+4.
0x00941120108UIWindow__toggle_linked_window_visibilityToggles visibility of a linked window identified by field 0x39. If window exists and is visible, hides it; if not visible or doesn't exist, creates/shows it. Sends command 0x10F with the visibility state. Refreshes parent display via vtable 0x98.
0x0094C230152UIWindow__set_title_from_message_idSets window title from a message ID. Formats title string using FUN_00b00f00(0xA3B) with a count parameter of 300, concatenates via FUN_00af62d0, and copies to the title string field at offset 0xC4.
0x0095040080UIWindow__handle_button_0xb8_send_packetHandles button click for a UI window. On event type 6 with button ID 0xb8, sends packet 0xc2a to the server via FUN_00c7ce30. Otherwise delegates to UIWindow__handle_button_click.
0x00950A60249UIWindow__handle_close_button_check_blockingHandles close button (0xc0) for a UI window, but first checks if blocking windows are open. Checks windows 0x127, 0x157, 0x2716, 0x169 via FUN_00aa5f70 and shows appropriate error messages (0xbb0, 0xe83, 0xf03, 0xfd6). If no blocking window, plays sound 0x107 or opens window 0x107.
0x00950B6091UIWindow__handle_close_send_0xa19Handles close button (0xc0) for a UI window. If DAT_01457ae4 == 0, sends packet 0xa19 to the server. Returns 0 for button events, otherwise delegates to FUN_00a83660.
0x0095144038UIWindow__suppress_event_0x30Suppresses event 0x30 (returns 0 without handling). For all other events, delegates to FUN_00a83660.
0x0095470078UIWindow__free_member_0x20Frees a member pointer at offset +4 if non-null, deallocating 0x20 bytes via operator delete.
0x0095475078UIWindow__free_member_0x18Frees a member pointer at offset +4 if non-null, deallocating 0x18 bytes via operator delete.
0x009547A0170UIWindow__destroy_linked_list_0x80_with_stringsDestroys a singly-linked list of 0x80-byte nodes. Each node contains 3 STL strings that are destructed before freeing the node. Clears the list head pointer.
0x00954850134UIWindow__destroy_linked_list_0x38Destroys a singly-linked list of 0x38-byte nodes. Each node has one STL string destructed before freeing. Clears the list head pointer.
0x009548E087UIWindow__cleanup_tree_and_free_0x44Cleans up a red-black tree with 0x44-byte nodes by calling std__tree_0x44__recursive_destroy to remove all child nodes, then frees the root/sentinel node.
0x0095494065UIWindow__cleanup_wrapper_aWrapper that delegates to std__tree_destroy_0x20_all_nodes for cleanup of a 0x20-byte tree on a UI window member.
0x0095499065UIWindow__cleanup_wrapper_bWrapper that delegates to std__tree_destroy_0x18_all_nodes for cleanup of a 0x18-byte tree on a UI window member.
0x009549E083UIWindow__destroy_string_memberDestructs an STL string member at offset +4 of the object.
0x00954A40174UIWindow__clear_and_free_vector_0xcClears and frees a std::vector of 0xC-byte elements. Iterates calling CFmt__func_0058c230 on each element, then frees the backing buffer. Resets begin/end/capacity pointers to 0.
0x00954B0099UIWindow__destroy_three_strings_aDestructs three consecutive STL string members in sequence.
0x00954B7068UIWindow__destroy_single_stringDestructs a single STL string member passed as parameter.
0x00954BC099UIWindow__destroy_three_strings_bDestructs three consecutive STL string members in sequence (variant b).
0x00954C3068UIWindow__destroy_single_string_bDestructs a single STL string member passed as parameter (variant b).
0x0096DFA09thunk_to_UIWindow__handle_button_clickSimple thunk that jumps to UIWindow__handle_button_click (at 0x008bdc90).
0x00972120156UIWindow__on_drop_item_handle_sellHandles item drop onto sell window. If window 0x271B exists, delegates to standard drop handler. Otherwise checks drop type: type 3 with specific sub-types (4,5,8-15) sends msg 0x26, others open NPC shop dialog (msg 0xD, param 1). Non-type-3 sends msg 0x12.
0x009721F0173UIWindow__on_drop_item_handle_storeHandles item drop onto storage window. If window 0x271B exists, delegates to standard handler. Type 3: if equipped (param_4[4]==1) or DAT_014576e4 set, sends msg 0x26; otherwise opens storage dialog (msg 0xD, param 0x10). Non-type-3 sends msg 0x12.
0x009722A0173UIWindow__on_drop_item_handle_cartHandles item drop onto cart window. If window 0x271B exists, delegates to standard handler. Type 3: if equipped or DAT_014576e4 set, sends msg 0x26; otherwise opens cart dialog (msg 0xD, param 2). Non-type-3 sends msg 0x12.
0x00972350189UIWindow__on_drop_item_handle_guild_storageHandles item drop onto guild storage window. Accepts type 4/5 items. If member offset 0xF8 is set and item is not equipped, opens guild storage dialog (msg 0xD, param 0xF). Equipped items send msg 0x26.
0x00972410259UIWindow__on_drop_item_handle_equip_swapHandles item drop for equipment swap window. Type 4 (equip): if member 0xF8 is 0, equipped items send msg 0x26, unequipped open dialog (msg 0xD, param 3). Type 5 (storage): if member 0xF8 set, equipped/DAT_014576e4 sends msg 0x26, else dialog (msg 0xD, param 4).
0x0097252078UIWindow__on_drop_item_reject_allDrop handler that rejects all items. If window 0x271B exists, delegates to standard handler. Otherwise always sends msg 0x12 (reject drop).
0x00972570188UIWindow__on_drop_item_handle_tradeHandles item drop onto trade window. Accepts type 1/9 items. Checks trade status via CGame__check_and_show_disconnect_dialog. Equipped items (param_4[4]==1) send msg 0x26, unequipped open trade dialog (msg 0xD, param 7). Non-type-1/9 sends msg 0x12 (reject).
0x00972630446UIWindow__on_drop_item_handle_vendingHandles item drop onto vending setup window. Checks vending state: if DAT_01738270==1 shows 'cannot add' message, if DAT_0173826c==0 && state==0 shows error. Accepts type 1/9, checks trade state, equipped items msg 0x26, unequipped open dialog (msg 0xD, param 7).
0x009727F0114UIWindow__on_drop_item_handle_equipmentHandles item drop onto equipment window. Complex multi-type handler: type 1 checks equipment slot match and sends equip packet (0x907). Types 2,6,9,0xF,0x11,0x12,0x18 send msg 0x26. Type 0xE forwards to DAT_014579f8 (card insert). Type 0x1C resets card list, 0x21 resets refine window.
0x009729C0256UIWindow__on_drop_item_handle_skill_targetHandles item drop for skill target window. Type 0xC with sub-types 4,5,8-15 checks if item is identified (FUN_00ddf0f0) and shows error if not. Type 0x16 checks equipped state. Other sub-types open skill target dialog (msg 0xD, param 0xC).
0x00972B50164UIWindow__on_drop_item_handle_mailHandles item drop onto mail compose window. Accepts type 0xD items only. Equipped items send msg 0x26, unequipped open mail attach dialog (msg 0xD, param 0xB).
0x00972C00216UIWindow__on_drop_item_handle_auctionHandles item drop onto auction window. If window 0x271B exists or DAT_01457870/DAT_01457878 are set, delegates to standard handler. Accepts type 1/6, checks trade state. Equipped items msg 0x26, unequipped open dialog (msg 0xD, param 8).
0x00972CE0204UIWindow__on_drop_item_handle_pet_or_ammoHandles item drop for pet/ammo equip window. Accepts types 10,0x13,0x15. Equipped items or type 0x13 send msg 0x26. Unequipped: if member 0xF4==2, opens dialog (msg 0xD, param 0x12), else dialog (msg 0xD, param 10).
0x00972DB0171UIWindow__on_drop_item_handle_skill_useHandles item drop for skill use window. Accepts type 0xB items (equipped items msg 0x26, unequipped open dialog msg 0xD param 9). Type 0x14 items always send msg 0x26.
0x009A51D062UIWindow__validate_position_generic_009a51d0Window position validator. Checks width/height > 0 and position fits within screen bounds.
0x009A521066UIWindow__validate_position_min_280x120_009a5210Window position validator requiring minimum size 280x120 (0x118 x 0x78) and within screen bounds.
0x009A526068UIWindow__validate_position_fixed_280x120_009a5260Window position validator requiring exact size 280x120 (0x118 x 0x78) and within screen bounds.
0x009A52B073UIWindow__validate_position_fixed_400x317_009a52b0Window position validator requiring exact size 400x317 (0x190 x 0x13D) and within screen bounds.
0x009A530077UIWindow__validate_position_280_variableH_009a5300Window position validator requiring width=280 (0x118) and height between 120-450 (0x78-0x1C2), within screen bounds.
0x009A53A062UIWindow__validate_position_generic_009a53a0Window position validator. Checks width/height > 0 and position fits within screen bounds.
0x009A53E0127UIWindow__validate_position_280_multiH_009a53e0Window position validator for 280-wide window with multiple valid heights (0xA7, 0x11, 0xBB, or 0xBB+0x9E if chat mode). Also validates min height param at offset 0x10.
0x009A54B068UIWindow__validate_position_fixed_280x120_009a54b0Window position validator requiring exact size 280x120 (0x118 x 0x78) and within screen bounds.
0x009A550062UIWindow__validate_position_generic_009a5500Window position validator. Checks width/height > 0 and position fits within screen bounds.
0x009A554079UIWindow__validate_position_with_style_009a5540Window position validator with style check. Width/height must match config values at DAT_01345b4c/DAT_01345b50, position within bounds, and style param (offset 0x10) < 7.
0x009A559062UIWindow__validate_position_generic_009a5590Window position validator. Checks width/height > 0 and position fits within screen bounds.
0x009A55D077UIWindow__validate_position_280_variableH_009a55d0Window position validator requiring width=280, height in range 120-450, within screen bounds.
0x009A56C073UIWindow__validate_position_fixed_200x200_009a56c0Window position validator requiring exact size 200x200, within screen bounds.
0x009A571068UIWindow__validate_position_fixed_280x34_009a5710Window position validator requiring exact size 280x34 (0x118 x 0x22), within screen bounds.
0x009A576066UIWindow__validate_position_min_280x120_009a5760Window position validator requiring minimum size 280x120 (0x118 x 0x78), within screen bounds.
0x009A57B066UIWindow__validate_position_min_280x120_009a57b0Window position validator requiring minimum size 280x120 (0x118 x 0x78), within screen bounds.
0x009A580066UIWindow__validate_position_min_280x120_009a5800Window position validator requiring minimum size 280x120 (0x118 x 0x78), within screen bounds.
0x009A585066UIWindow__validate_position_min_280x120_009a5850Window position validator requiring minimum size 280x120 (0x118 x 0x78), within screen bounds.
0x009A58F075UIWindow__validate_position_with_extra_fields_009a58f0Window position validator. Checks position within screen bounds plus extra field constraints: field[5] < 4, field[6] < 4, field[7] < 4, field[8] < 5.
0x009A594062UIWindow__validate_position_generic_009a5940Window position validator. Checks width/height > 0 and position fits within screen bounds.
0x009A598064UIWindow__validate_position_generic_009a5980Window position validator. Checks width > 0, height > 0, and position fits within screen bounds. Uses struct offset-based field access (offset +8/+0xC/+0x10/+0x14).
0x009A59C062UIWindow__validate_position_generic_009a59c0Window position validator. Checks width/height > 0 and position fits within screen bounds.
0x009A5A0066UIWindow__validate_position_min_280x120_009a5a00Window position validator requiring minimum size 280x120 (0x118 x 0x78), within screen bounds.
0x009A5A5066UIWindow__validate_position_min_280x120_009a5a50Window position validator requiring minimum size 280x120 (0x118 x 0x78), within screen bounds.
0x009A5AA093UIWindow__validate_position_min_280or350x120_009a5aa0Window position validator with conditional min width. If param2==0, min width 280 (0x118); else min width 350 (0x15E). Min height always 120 (0x78). Within screen bounds.
0x009A5B0066UIWindow__validate_position_min_280x120_009a5b00Window position validator requiring minimum size 280x120 (0x118 x 0x78), within screen bounds.
0x009A5B5066UIWindow__validate_position_min_280x120_009a5b50Window position validator requiring minimum size 280x120 (0x118 x 0x78), within screen bounds.
0x009A5BA073UIWindow__validate_position_fixed_280x220_009a5ba0Window position validator requiring exact size 280x220 (0x118 x 0xDC), within screen bounds.
0x009A5BF087UIWindow__validate_position_min_243x166_with_flags_009a5bf0Window position validator requiring min size 243x166 (0xF3 x 0xA6), field[6] < 3, field[5] must be 0 or 1. Within screen bounds.
0x009A5C5062UIWindow__validate_position_generic_009a5c50Window position validator. Checks position fits within screen bounds.
0x009A5D1069UIWindow__validate_position_min_152x199_009a5d10Window position validator requiring minimum size 152x199 (0x98 x 0xC7), within screen bounds.
0x009A5DB069UIWindow__validate_position_min_360x350_009a5db0Window position validator requiring minimum size 360x350 (0x168 x 0x15E), within screen bounds.
0x009A5E0069UIWindow__validate_position_min_152x199_009a5e00Window position validator requiring minimum size 152x199 (0x98 x 0xC7), within screen bounds.
0x009A5E5073UIWindow__validate_position_fixed_280x180_009a5e50Window position validator requiring exact size 280x180 (0x118 x 0xB4), within screen bounds.
0x009A5EA062UIWindow__validate_position_generic_009a5ea0Window position validator. Checks width > 0, height > 0, and position fits within screen bounds.
0x009A5F3062UIWindow__validate_position_generic_009a5f30Window position validator. Checks width > 0, height > 0, and position fits within screen bounds.
0x009A5F7062UIWindow__validate_position_generic_009a5f70Window position validator. Checks width > 0, height > 0, and position fits within screen bounds.
0x009A5FB073UIWindow__validate_position_fixed_280x180_009a5fb0Window position validator requiring exact size 280x180 (0x118 x 0xB4), within screen bounds.
0x009A6000111UIWindow__validate_position_290_stepped_009a6000Window position validator for 290-wide (0x122) window. Height must be between 43-175 (0x2B-0xAF), stepped by 33 pixels ((h-10)%33==0). Height 0xAF only valid if DAT_0173a765 flag set.
0x009A611066UIWindow__validate_position_min_280x120_009a6110Window position validator requiring minimum size 280x120 (0x118 x 0x78), within screen bounds.
0x009A616062UIWindow__validate_position_fixed_width_280_009a6160Window position validator requiring exact width 280 (0x118). Does not check height minimum. Within screen bounds.
0x009A61A062UIWindow__validate_position_generic_009a61a0Window position validator. Checks width > 0, height > 0, and position fits within screen bounds.
0x009A622062UIWindow__validate_position_generic_009a6220Window position validator. Checks width > 0, height > 0, and position fits within screen bounds.
0x009A626062UIWindow__validate_position_generic_009a6260Window position validator. Checks width > 0, height > 0, and position fits within screen bounds.
0x009A62A066UIWindow__validate_position_min_280x120_009a62a0Window position validator requiring minimum size 280x120 (0x118 x 0x78), within screen bounds.
0x009A62F048UIWindow__validate_position_positive_size_009a62f0Window position validator. Checks width > 0, height > 0, and position fits within screen bounds. Returns 1 if valid, 0 otherwise.
0x009A632052UIWindow__validate_position_fixed_280x260_009a6320Window position validator for fixed size 280x260 (0x118 x 0x104). Checks x >= 0, y >= 0, and fits within screen bounds.
0x009A639037UIWindow__set_default_position_right_centerSets default window position: x = screenWidth - 350, y = (screenHeight - 150) / 2. Right-aligned, vertically centered.
0x009A63C0108UIWindow__init_costume_preview_rectInitializes costume preview window rect. x=0, y=0, w=220, h varies by job class: 4th class gets 149 (or 71 without flag), others get 55 (or 134 with flag). Calls CItem__remap_job_class_for_costume and is_valid_4th_class_id.
0x009A643028UIWindow__set_default_rect_200_150_298x380Sets default window rect: x=200, y=150, w=298 (0x12A), h=380 (0x17C).
0x009A645028UIWindow__set_default_position_009a6450Sets default window rect: x=500, y=180 (0xB4), w=280 (0x118), h=120 (0x78).
0x009A647028UIWindow__set_default_position_009a6470Sets default window rect: x=200, y=300, w=280 (0x118), h=120 (0x78).
0x009A649028UIWindow__set_default_position_009a6490Sets default window rect: x=0, y=34 (0x22), w=400, h=317 (0x13D).
0x009A64B028UIWindow__set_default_position_009a64b0Sets default window rect: x=280 (0x118), y=278 (0x116), w=280 (0x118), h=120 (0x78).
0x009A64F028UIWindow__set_default_position_009a64f0Sets default window rect: x=200, y=150 (0x96), w=375 (0x177), h=280 (0x118).
0x009A651042UIWindow__set_default_position_185x300_009a6510Sets default window position: x=185, y=300, w=280, h=167, minH=167, flags=0.
0x009A656028UIWindow__set_default_position_009a6560Sets default window rect: x=200, y=120 (0x78), w=280 (0x118), h=120 (0x78).
0x009A658028UIWindow__set_default_position_009a6580Sets default window rect: x=230 (0xE6), y=0, w=200, h=150 (0x96).
0x009A65A037UIWindow__set_default_position_009a65a0Sets default window rect: x=0, y=34 (0x22), w and h from global variables DAT_01345b4c and DAT_01345b50, field[4]=0.
0x009A65D028UIWindow__set_default_position_009a65d0Sets default window rect: x=150 (0x96), y=100, w=280 (0x118), h=180 (0xB4).
0x009A65F028UIWindow__set_default_position_009a65f0Sets default window rect: x=280 (0x118), y=126 (0x7E), w=280 (0x118), h=120 (0x78).
0x009A668078UIWindow__set_default_position_centered_009a6680Sets centered default window position. X is centered on screen offset by 200, Y is proportional to screen height (200/480), size is 200x200.
0x009A66D028UIWindow__set_default_position_009a66d0Sets default window position: x=280, y=246, w=280, h=34
0x009A66F028UIWindow__set_default_position_009a66f0Sets default window position: x=280, y=280, w=280, h=152
0x009A671028UIWindow__set_default_position_009a6710Sets default window position: x=280, y=280, w=280, h=152
0x009A673028UIWindow__set_default_position_009a6730Sets default window position: x=0, y=120, w=280, h=312
0x009A675035UIWindow__set_default_position_009a6750Sets default window position: x=360, y=200, w=280, h=458, plus extra field[4]=0
0x009A6780115UIWindow__set_default_position_by_index_009a6780Sets default position from a lookup table based on param index. Size is fixed 140x145 (0x8C x 0x91). Uses 4 predefined position pairs from ROM data at 01147CD0-01147D0C.
0x009A680070UIWindow__set_default_position_009a6800Sets default window position: x=0, y=120, w=280, h=120. Also sets additional config fields: field[4]=120, field[5]=0, field[6]=3, field[7]=3, field[8]=4, field[9]=0
0x009A685028UIWindow__set_default_position_009a6850Sets default window position: x=350, y=150, w=280, h=360
0x009A687068UIWindow__set_default_position_009a6870Sets default window position with screen-relative width. x=screenWidth-536, y=190, w=screenWidth-536, h=190. Also sets field[4]=516, field[5]=559, field[8]=1, field[6]=1, field[7]=1
0x009A68C028UIWindow__set_default_position_009a68c0Sets default window position: x=150, y=100, w=280, h=180
0x009A68E028UIWindow__set_default_position_009a68e0Sets default window position: x=200, y=120, w=280, h=120
0x009A690028UIWindow__set_default_position_009a6900Sets default window position: x=280, y=280, w=280, h=152
0x009A692047UIWindow__set_default_position_009a6920Sets default window position: x=0, y=120, h=312. Width is conditional: 350 if param_2 is nonzero, 280 if zero.
0x009A695028UIWindow__set_default_position_009a6950Sets default window position: x=200, y=120, w=280, h=120
0x009A697028UIWindow__set_default_position_009a6970Sets default window position: x=0, y=120, w=280, h=120
0x009A699028UIWindow__set_default_position_009a6990Sets default window position: x=0, y=240, w=280, h=220
0x009A69B049UIWindow__set_default_position_009a69b0Sets default window position: x=300, y=200, w=273, h=326. Also sets field[4]=0, field[5]=1, field[6]=0
0x009A69F028UIWindow__set_default_position_009a69f0Sets default window position: x=0, y=30, w=640, h=508 (full-screen-like)
0x009A6AA028UIWindow__set_default_position_009a6aa0Sets default window position: x=510, y=360, w=152, h=199
0x009A6AE028UIWindow__set_default_position_009a6ae0Sets default window position: x=510, y=360, w=360, h=350
0x009A6B0028UIWindow__set_default_position_009a6b00Sets default window position: x=510, y=360, w=152, h=199
0x009A6B2028UIWindow__set_default_position_009a6b20Sets default window position: x=280, y=246, w=280, h=180
0x009A6B4028UIWindow__set_default_position_009a6b40Sets default window position: x=150, y=100, w=280, h=200
0x009A6BB035UIWindow__set_default_position_009a6bb0Sets default window position: x=screenWidth-124, y=0, w=77, h=34. Position is relative to right edge of screen.
0x009A6BE028UIWindow__set_default_position_009a6be0Sets default window position: x=259, y=230, w=194, h=34
0x009A6C0028UIWindow__set_default_position_009a6c00Sets default window position: x=200, y=100, w=280, h=180
0x009A6C2035UIWindow__set_default_position_009a6c20Sets default window position: x=230, y=0, w=290, h=76. Also sets field[4]=1 (snap to top).
0x009A6CA028UIWindow__set_default_position_009a6ca0Sets default window position: x=360, y=200, w=280, h=240
0x009A6CC049UIWindow__set_default_position_009a6cc0Sets default window position: x=185, y=300, w=280, h=141. Also sets field[4]=141, field[5]=0, field[6]=1
0x009A6D0062UIWindow__set_default_position_009a6d00Sets default window position with conditional x based on param_2. If param_2==0: x=0, if param_2==1: x=300. y=screenHeight-119, w=300, h=95.
0x009A6D6028UIWindow__set_default_position_009a6d60Sets default window position: x=200, y=200, w=220, h=190
0x009A6D8028UIWindow__set_default_position_009a6d80Sets default window position: x=200, y=200, w=220, h=197
0x009A6DA028UIWindow__set_default_position_009a6da0Sets default window position: x=0, y=347, w=280, h=120
0x009A6DC051UIWindow__set_default_position_009a6dc0Sets default window position: x=249, y=308, w=screenWidth-299, h=(screenHeight-308)/2. Screen-relative sizing.
0x009A6E0070UIWindow__set_default_position_009a6e00Sets default window position using float scaling. x=float(screenWidth-280)*scale, y=float(screenHeight-260)*scale. Position is scaled by a global float factor.
0x009B7A109thunk_to_UIListBox__push_back_string_itemThunk to UIListBox__push_back_string_item at 0x00875a70. Simple jmp wrapper.
0x009D26D0603UIListBox__rebuild_items_009d26d0Rebuilds list box items when dimensions change. Clears existing child items, calculates row count from height/item_height, allocates UIListBox items via UIListBox__ctor_009d9150, sets up each with position/size and two sub-components, stores in items vector. Resets selection to -1. Calls FUN_009f2b70/FUN_009f2e80 for scrollbar layout.
0x009D2930603UIListBox__rebuild_items_009d2930Identical to 009d26d0: rebuilds list box items based on height/item_height.
0x009D2B90603UIListBox__rebuild_items_009d2b90Identical to 009d26d0: rebuilds list box items based on height/item_height.
0x009D2DF0603UIListBox__rebuild_items_009d2df0Identical to 009d26d0: rebuilds list box items based on height/item_height.
0x009D3FD0109UIListBox__add_item_and_update_scroll_009d3fd0Adds item via FUN_00a82eb0, resizes scrollbar child, calculates total height from linked list items, updates scrollbar max/visible range/value.
0x009D4040109UIListBox__add_item_and_update_scroll_009d4040Identical to 009d3fd0: adds item, updates scrollbar.
0x009D40B0115UIListBox__add_item_rebuild_scroll_009d40b0Adds item via FUN_00a82eb0, rebuilds list items, resizes scrollbar, calculates max from item_count * item_height + offset, updates scrollbar, sets dirty flag at 0xe1.
0x009D4130115UIListBox__add_item_rebuild_scroll_009d4130Identical to 009d40b0: adds item, rebuilds, updates scrollbar.
0x009D41B0115UIListBox__add_item_rebuild_scroll_009d41b0Identical to 009d40b0: adds item, rebuilds, updates scrollbar.
0x009D4230115UIListBox__add_item_rebuild_scroll_009d4230Identical to 009d40b0: adds item, rebuilds, updates scrollbar.
0x009D42B0134UIListBox__scroll_update_visibility_009d42b0Updates item visibility based on scroll position. Iterates linked list, hides items outside visible area, shows+repositions visible ones.
0x009D4340134UIListBox__scroll_update_visibility_009d4340Identical to 009d42b0: updates item visibility based on scroll offset.
0x009D43D0498UIListBox__layout_items_from_scrollLayouts visible list items based on scroll pixel offset. Computes start row from param_2/item_height, rotates item array to align with new start, iterates visible items: binds data from linked list at 0xd4 via callback at 0x134, sets selection highlight via vtable+0xd8, positions with vtable+0x10, shows with vtable+0x38. Hides items outside visible range. Sets dirty flag at 0xe1.
0x009D45D0498UIListBox__layout_items_from_scroll_009d45d0Variant of 009d43d0: layouts visible list items based on scroll pixel offset. Rotates item array, binds data, positions and shows visible items, hides others.
0x009D47D0498UIListBox__layout_items_from_scroll_009d47d0Variant of 009d43d0: layouts visible list items based on scroll pixel offset. Rotates item array, binds data, positions and shows visible items, hides others.
0x009D49D0498UIListBox__layout_items_from_scroll_009d49d0Variant of 009d43d0: layouts visible list items based on scroll pixel offset. Rotates item array, binds data, positions and shows visible items, hides others.
0x009D4BD0218UIListBox__on_item_click_with_rtti_009d4bd0Click handler with RTTI cast: deselects all children, selects clicked item, performs __RTDynamicCast to get item index at +0x94, updates selection index at parent+0xdc, invokes click callback at parent+0x10c with selected data.
0x009D4CB0218UIListBox__on_item_click_with_rtti_009d4cb0Identical to 009d4bd0: click handler with RTTI.
0x009D4D90218UIListBox__on_item_click_with_rtti_009d4d90Identical to 009d4bd0: click handler with RTTI.
0x009D4E70218UIListBox__on_item_click_with_rtti_009d4e70Identical to 009d4bd0: click handler with RTTI.
0x009D54A022UICallback__init_vtable_009d54a0Initializes callback object: sets vtable to PTR_FUN_01149510 and copies parent pointer from this+4.
0x009D54C022UICallback__init_vtable_009d54c0Initializes callback object: sets vtable to PTR_FUN_011494a0 and copies parent pointer from this+4.
0x009D54E022UICallback__init_vtable_009d54e0Initializes callback: sets vtable PTR_FUN_0114944c, copies parent ptr from this+4.
0x009D550022UICallback__init_vtable_009d5500Initializes callback: sets vtable PTR_FUN_011493dc, copies parent ptr from this+4.
0x009D552022UICallback__init_vtable_009d5520Callback vtable initializer, 22-byte pattern: sets vtable + copies parent pointer.
0x009D554022UICallback__init_vtable_009d5540Callback vtable initializer, 22-byte pattern.
0x009D556022UICallback__init_vtable_009d5560Callback vtable initializer, 22-byte pattern.
0x009D558022UICallback__init_vtable_009d5580Callback vtable initializer, 22-byte pattern.
0x009D55A022UICallback__init_vtable_009d55a0Callback vtable initializer, 22-byte pattern.
0x009D55C022UICallback__init_vtable_009d55c0Callback vtable initializer, 22-byte pattern.
0x009D55E022UICallback__init_vtable_009d55e0Callback vtable initializer, 22-byte pattern.
0x009D560022UICallback__init_vtable_009d5600Callback vtable initializer, 22-byte pattern.
0x009D562022UICallback__init_vtable_009d5620Callback vtable initializer, 22-byte pattern.
0x009D564022UICallback__init_vtable_009d5640Callback vtable initializer, 22-byte pattern.
0x009D566022UICallback__init_vtable_009d5660Callback vtable initializer, 22-byte pattern.
0x009D568022UICallback__init_vtable_009d5680Callback vtable initializer, 22-byte pattern.
0x009D56A022UICallback__init_vtable_009d56a0Callback vtable initializer, 22-byte pattern.
0x009D56C022UICallback__init_vtable_009d56c0Callback vtable initializer, 22-byte pattern.
0x009D56E022UICallback__init_vtable_009d56e0Callback vtable initializer, 22-byte pattern.
0x009D570022UICallback__init_vtable_009d5700Callback vtable initializer, 22-byte pattern.
0x009D572022UICallback__init_vtable_009d5720Callback vtable initializer, 22-byte pattern.
0x009D574022UICallback__init_vtable_009d5740Callback vtable initializer, 22-byte pattern.
0x009D576022UICallback__init_vtable_009d5760Callback vtable initializer, 22-byte pattern.
0x009D578022UICallback__init_vtable_009d5780Callback vtable initializer, 22-byte pattern.
0x009D57A022UICallback__init_vtable_009d57a0Callback vtable initializer, 22-byte pattern.
0x009D57C022UICallback__init_vtable_009d57c0Callback vtable initializer, 22-byte pattern.
0x009D57E022UICallback__init_vtable_009d57e0Callback vtable initializer, 22-byte pattern.
0x009D580022UICallback__init_vtable_009d5800Callback vtable initializer, 22-byte pattern.
0x009D582022UICallback__init_vtable_009d5820Callback vtable initializer, 22-byte pattern.
0x009D584022UICallback__init_vtable_009d5840Callback vtable initializer, 22-byte pattern.
0x009D586022UICallback__init_vtable_009d5860Callback vtable initializer, 22-byte pattern.
0x009D588068UICallback__scalar_deleting_dtor_009d5880Callback scalar deleting destructor: frees 8-byte callback object if param_2 is non-zero.
0x009D58D068UICallback__scalar_deleting_dtor_009d58d0Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D592068UICallback__scalar_deleting_dtor_009d5920Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D597068UICallback__scalar_deleting_dtor_009d5970Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D59C068UICallback__scalar_deleting_dtor_009d59c0Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5A1068UICallback__scalar_deleting_dtor_009d5a10Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5A6068UICallback__scalar_deleting_dtor_009d5a60Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5AB068UICallback__scalar_deleting_dtor_009d5ab0Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5B0068UICallback__scalar_deleting_dtor_009d5b00Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5B5068UICallback__scalar_deleting_dtor_009d5b50Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5BA068UICallback__scalar_deleting_dtor_009d5ba0Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5BF068UICallback__scalar_deleting_dtor_009d5bf0Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5C4068UICallback__scalar_deleting_dtor_009d5c40Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5C9068UICallback__scalar_deleting_dtor_009d5c90Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5CE068UICallback__scalar_deleting_dtor_009d5ce0Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5D3068UICallback__scalar_deleting_dtor_009d5d30Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5D8068UICallback__scalar_deleting_dtor_009d5d80Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5DD068UICallback__scalar_deleting_dtor_009d5dd0Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5E2068UICallback__scalar_deleting_dtor_009d5e20Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5E7068UICallback__scalar_deleting_dtor_009d5e70Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5EC068UICallback__scalar_deleting_dtor_009d5ec0Callback scalar deleting destructor: frees 8-byte callback object if param_2 is non-zero.
0x009D5F1068UICallback__scalar_deleting_dtor_009d5f10Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5F6068UICallback__scalar_deleting_dtor_009d5f60Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D5FB068UICallback__scalar_deleting_dtor_009d5fb0Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D600068UICallback__scalar_deleting_dtor_009d6000Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D605068UICallback__scalar_deleting_dtor_009d6050Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D60A068UICallback__scalar_deleting_dtor_009d60a0Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D60F068UICallback__scalar_deleting_dtor_009d60f0Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D614068UICallback__scalar_deleting_dtor_009d6140Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D619068UICallback__scalar_deleting_dtor_009d6190Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D61E068UICallback__scalar_deleting_dtor_009d61e0Callback scalar deleting destructor: frees 8-byte object if param_2 is non-zero.
0x009D6410140UIListBox__scroll_update_visibility_009d6410Updates list item visibility based on scroll position. Iterates linked list of items, hides items outside visible range, shows and repositions items within range. Scroll offset from param_2, parent reference at this+4.
0x009D64A0140UIListBox__scroll_update_visibility_009d64a0Identical to 009d6410: updates list item visibility based on scroll position.
0x009D6610216UIListBox__on_item_click_009d6610Handles item click in list box. If not disabled (flag at parent+0xc4), iterates children to deselect all except clicked item (vtable+0xd8). Then selects clicked item, updates selection index from RTTI-cast to get item index at +0x94, and if a click handler exists at parent+0x10c, invokes it with selected data from linked list.
0x009D66F0216UIListBox__on_item_click_009d66f0Identical to 009d6610: handles list box item click, deselects others, selects clicked, invokes handler.
0x009D67D0216UIListBox__on_item_click_009d67d0Identical to 009d6610: handles list box item click.
0x009D68B0216UIListBox__on_item_click_009d68b0Identical to 009d6610: handles list box item click.
0x009D709022UICallback__init_vtable_009d7090Callback vtable initializer, 22-byte pattern.
0x009D70B022UICallback__init_vtable_009d70b0Callback vtable initializer, 22-byte pattern.
0x009D70D022UICallback__init_vtable_009d70d0Callback vtable initializer, 22-byte pattern.
0x009D70F022UICallback__init_vtable_009d70f0Callback vtable initializer, 22-byte pattern.
0x009D711022UICallback__init_vtable_009d7110UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D713022UICallback__init_vtable_009d7130UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D715022UICallback__init_vtable_009d7150UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D717022UICallback__init_vtable_009d7170UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D719022UICallback__init_vtable_009d7190UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D71B022UICallback__init_vtable_009d71b0UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D71D022UICallback__init_vtable_009d71d0UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D71F022UICallback__init_vtable_009d71f0UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D721022UICallback__init_vtable_009d7210UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D723022UICallback__init_vtable_009d7230UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D725022UICallback__init_vtable_009d7250UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D727022UICallback__init_vtable_009d7270UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D729022UICallback__init_vtable_009d7290UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D72B022UICallback__init_vtable_009d72b0UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D72D022UICallback__init_vtable_009d72d0UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D72F022UICallback__init_vtable_009d72f0UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D731022UICallback__init_vtable_009d7310UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D733022UICallback__init_vtable_009d7330UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D735022UICallback__init_vtable_009d7350UICallback vtable initializer, 22-byte pattern. Sets vtable pointer and copies parent reference at offset +4.
0x009D9080197UIEditBox__ctor_009d9080Constructor for a UIEditBox-like control. Calls base at 00a79a90, sets vtable to 0114b954. Initializes SSO string buffer (capacity 0xf), caret position (-1), and 4 zero state fields.
0x009D9150201UIListBox__ctor_009d9150Constructor for a UIListBox-like control. Calls larger base ctor at 009efc30, sets vtable to 0114b86c. Initializes scroll state, selection index (-1), item height (0x15), SSO string buffer (capacity 0xf).
0x009D92D0134UIDropDownList__ctorConstructor for UIDropDownList. Calls base ctor at 009efc30, sets vtable to 0114b6a4. Initializes 5 zero state fields at offsets 0x3a-0x3e.
0x009DA240108UIEditBox__dtor_009da240Destructor for UIEditBox (vtable 0114b954). Destroys embedded string, reverts to UIBase vtable, calls base dtor.
0x009DA2B095UIListBox__dtor_009da2b0Destructor for UIListBox (vtable 0114b86c). Destroys embedded string, then calls base destructor chain via 009da310.
0x009DA8E0132UIEditBox__scalar_deleting_dtor_009da8e0Scalar deleting destructor for UIEditBox (0xa8 bytes, vtable 0114b954). Destroys string, calls base dtor, optionally frees memory.
0x009DA970119UIListBox__scalar_deleting_dtor_009da970Scalar deleting destructor for UIListBox (0x120 bytes, vtable 0114b86c). Destroys string, calls UIControlBase dtor, optionally frees memory.
0x009DAE00271UIListBox__add_item_009dae00Adds an item to a UIListBox's doubly-linked list. Allocates 0x40-byte node via packet_node copy ctor. Checks max size (0x3ffffff). If param_3 is true, updates scroll/layout. Returns new item index (count-1).
0x009DAF10303UIListBox__add_item_with_string_009daf10Adds an item to a UIListBox's doubly-linked list. Allocates 0x2c-byte node with STL string + CPacketQueue copy. Checks max size (0x5d1745d). Updates scroll/layout if param_3 is true. Returns new item index.
0x009DB040271UIListBox__add_item_large_009db040Adds a large item to a UIListBox's doubly-linked list. Allocates 0x5c-byte node via packet_node copy ctor (2 strings variant). Updates scroll/layout if param_3 is true. Returns new item index.
0x009DB150303UIListBox__add_item_two_strings_009db150Adds an item with two strings to a UIListBox's doubly-linked list. Allocates 0x38-byte node copying two STL strings. Checks max size (0x4924924). Updates scroll/layout if param_3 is true. Returns new item index.
0x009DB280556UIListBox__create_button_control_009db280Creates a new button UIControl (0xf8 bytes, vtable 0114ba34) for a UIListBox. Initializes with base button ctor, sets state textures from parent, creates two event handlers, adds to child list, updates layout.
0x009DB4B0607UIListBox__create_button_with_string_009db4b0Creates a new button UIControl (0x118 bytes, vtable 0114bb1c) with embedded string for a UIListBox. Initializes with button ctor, state textures, two event handlers, adds to child list, updates layout.
0x009DBE20123UIListBox__clear_items_009dbe20Clears all items from a UIListBox with single-string nodes. Destroys linked list, resets head/tail pointers, sets count to 0, selection to -1, updates scroll/layout, marks dirty.
0x009DBEA0123UIListBox__clear_items_two_strings_009dbea0Clears all items from a UIListBox with two-string nodes. Destroys linked list, resets head/tail pointers, sets count to 0, selection to -1, updates scroll/layout, marks dirty.
0x009DD8D054UITabControl__highlight_selected_009dd8d0Iterates child controls in the tab control's list at offset 0xc4. For each child, calls virtual method +0xdc with a bool indicating whether it matches param_2 (the selected tab).
0x009DD91054UITabControl__highlight_selected_009dd910Iterates child controls in the tab control's list at offset 0xc4. For each child, calls virtual method +0xdc with a bool indicating whether it matches param_2 (the selected tab). Same as 009dd8d0.
0x009DD95074UIListBox__update_scrollbar_009dd950Updates the scrollbar for a UIListBox. Computes max value from item count * item height + offset, sets visible range from height, restores scroll position from stored value. Marks control as dirty.
0x009DD9A076UIListBox__update_scrollbar_from_children_009dd9a0Updates scrollbar by summing heights of all child controls in list at 0xc4. Each child's height is at offset +0x18. Sets scrollbar max, visible range, and restores position.
0x009DD9F076UIListBox__update_scrollbar_from_children_009dd9f0Updates scrollbar by summing heights of all child controls in list at 0xc4. Same as 009dd9a0, different instance.
0x009DE4C0146UITabControl__select_tabSelects a tab: deactivates all others, activates selected, notifies callback via RTTI dynamic cast
0x009DE560146UITabControl__select_tab_009de560Selects a tab in a tab control. If not locked (offset 0xd0), iterates all children at 0xc4 deselecting via +0xd8(0), then selects param_2 via +0xd8(1). RTDynamicCast validates, sets selected at 0xcc, notifies callback at 0xfc if set.
0x009DE60056UITabControl__select_first_tab_009de600Selects the first tab in a tab control. Returns 0 if no tabs (count at 0xc8 is 0). Gets first child's data at +8, calls UITabControl__select_tab. Returns 1 if selection changed, 0 otherwise.
0x009DE64056UITabControl__select_first_tab_alt_009de640Selects the first tab, same logic as 009de600 but calls FUN_009de560 variant. Returns 1 if changed, 0 otherwise.
0x009E1E20361UIButton__draw_text_labelDraws button text label with color based on state. Normal(0)=gray D7D7D7, Pressed(1)=white with shadow, Hover(2)=golden C7A796. Disabled state uses gray text 6F6F6F with lighter shadow E2E2E2. Uses font size 0xC.
0x009E20B03109UIButton__load_all_state_texturesLoads all button state textures: out_left, press_left, over_left, disable_left (keys 0-3 and disabled at 0x1A0), out_mid, press_mid, over_mid, disable_mid (keys 0-2 and 0x1AC). Uses basic_interface_btn_*.bmp filenames.
0x009E2D10119UIButton__set_text_and_resizeSets button text and auto-resizes. If text is empty, reverts to default size. If text set, measures text width (font 0xC) and expands width if text+8 exceeds current. Updates visibility and text position.
0x009E31B0128UIButton__render_background_spriteRenders button background sprite based on state. If a custom override sprite is active, renders it. Otherwise looks up state sprite from map (checked=1 override) and draws at (0,0).
0x009E323088UIButton__toggle_checked_stateToggles checkbox checked state if not disabled. Plays click sound, toggles bool at offset 0x48, calls virtual update method, and notifies callback if registered.
0x009E329031UIButton__check_and_close_dialogChecks if this button is the active dialog close button. Gets field 0x19C from UI manager; if it matches param_1, triggers dialog close.
0x009ED4B071UIEditBox__dtor_009ed4b0UIEditBox destructor. Sets vtable, then delegates to UIComplexDialog destructor for cleanup.
0x009ED50099UIEditBox__scalar_deleting_dtorUIEditBox scalar deleting destructor. Sets vtable, calls UIComplexDialog destructor, optionally frees 0x188-byte object.
0x009ED57035UIEditBox__render_cursor_if_focusedRenders cursor blink in edit box only if this control has keyboard focus (checks against UI manager's focused field 0x1A0).
0x009ED5C0180UIEditBox__create_text_widgetCreates the internal text widget for a UIEditBox. Allocates 0x188-byte object, constructs it, sets vtable, configures as single-line with cursor enabled. Sets size and adds as child control.
0x009ED6F088UIEditBox__on_resizeHandles UIEditBox resize. Repositions the parent, then resizes and repositions the internal text widget using computed inner dimensions.
0x009ED84052UIEditBox__set_max_lengthSets max text length on the internal text widget (offset 0x88 of child at 0x9C). Then invalidates by getting display text and calling virtual update.
0x009ED8C023UIEditBox__set_password_modeSets password mode on the internal text widget. Stores char value at widget's offset 0x84 (0 = normal, non-zero = mask character).
0x009ED8E034UIEditBox__invalidate_text_widgetInvalidates the internal text widget of a UIEditBox by calling its virtual method at vtable+0xD4.
0x009EDBE0923UIScrollbar__create_child_controlsCreates 3 child controls for UIScrollbar: up button (offset 0x80), down button (offset 0x84), and thumb/track image (offset 0x88). Each is allocated as 0x120-byte UIImageControl, initialized with callbacks, and added as child.
0x009EE1B045UIScrollbar__on_click_trackHandles click on scrollbar track. If click position is above thumb, scrolls backward. If below thumb+height, scrolls forward.
0x009EE23062UIScrollbar__on_value_changed_009ee230Handles scrollbar value change. Checks if this is the active scrollbar (via get_field_0x19c), then if value differs from field 0x90, computes delta and calls callback at field 0x11c vtable offset 8.
0x009EE27027UIScrollbar__scroll_by_directionScrolls the scrollbar by direction. If param > 0, scrolls forward; otherwise scrolls backward. Delegates to UIScrollbar__scroll_forward/backward.
0x009EE290234UIScrollbar__update_thumb_position_009ee290Updates scrollbar thumb (slider) position. Two modes based on field 0x20 flag: proportional mode calculates thumb size from ratio, standard mode computes position from value/range ratio. Calls vtable methods to set size and position.
0x009EE38069UIScrollbar__on_resize_009ee380Handles scrollbar resize. Repositions track element via vtable offset 0x10, recalculates available track area (total height minus top/bottom button heights) and stores in field 0xa4.
0x009EE3D0310UIScrollbar__set_button_textures_009ee3d0Sets textures for scrollbar up/down buttons. Loads string resources for each button (fields 0x20/0x21), validates them, calls FUN_009efb00 to update display, and triggers layout recalc via vtable 0x98.
0x009EE510171UIScrollbar__set_thumb_texture_009ee510Sets the scrollbar thumb/slider texture. Computes available track area, calculates thumb size proportionally, sets thumb size/position/visibility via vtable, then calls set_data and triggers layout.
0x009EE5C0215UIScrollbar__set_thumb_and_update_009ee5c0Sets scrollbar thumb texture from string resource. Computes track area, loads texture string, validates it, updates thumb element (field 0x22) size/position/visibility, then triggers layout.
0x009EF860152UIButton__draw_background_009ef860Draws button background. Sets magenta clear color, then resolves texture from map (field 0x80) based on button state. If field 0x84 (use direct texture) is set, uses field 0xf8 directly. Renders texture via FUN_00a7bb60 or FUN_00a7be30 depending on field 0xfc flag.
0x009EF900503UIButton__load_state_textures_009ef900Loads textures for all button states (normal=0, hover=1, pressed=2) from a map using param_2 as key. Also loads a 4th texture from field 0x108. Each texture reference is stored via FUN_009e1aa0, with old references released via FUN_00af0be0.
0x009EFB00216UIButton__set_text_labels_009efb00Sets text labels for button states. Params 2-4 are strings for states 0, 1, 2 (normal/hover/pressed). Param 5 is a string for the control itself (field 0x42). Each string is assigned via STL_lib_func_004fa8f0, then triggers visual update via vtable 0xd4 and layout via vtable 0x98.
0x009EFC30728UIButton__ctor_009efc30UIButton constructor. Calls base UIControl ctor (FUN_00a79a90), sets vtable to PTR_FUN_0114af94, initializes state fields (0x20-0x25), creates internal map with 3 entries (keys 0,1,2) for button state textures, sets field 0x79 flag. Allocates 0x18 byte tree nodes for each map entry.
0x009F00E041UIButton__set_state_009f00e0Sets button state field 0x22. If changed and field 0x24 (locked) is false, triggers layout via vtable 0x98.
0x009F0110148UIButton__draw_background_map_009f0110Draws button background from state texture map. Sets magenta clear, checks direct mode (0x90), resolves texture from map via STL_map_insert_or_find. Falls back to colored rectangles (white/gray) if texture is 0. Otherwise renders via FUN_00a7bb60.
0x009F01B056UIButton__on_click_009f01b0Button click handler. If not locked (field 0x90 == 0), calls focus handler FUN_00aa9b30, then invokes click callback at field 0xe4 if present (vtable offset 8).
0x009F01F031UIButton__on_release_check_focus_009f01f0Checks if this button is the active/focused control and calls FUN_00aa66c0 (release focus) if so.
0x009F021032UIButton__invoke_callback_009f0210Invokes the button callback at field 0xbc if not null. Passes this pointer via vtable offset 8.
0x009F025051UIScrollbar__set_orientation_doubledSets scrollbar orientation at offset 0x22 to param*2 (doubling for internal encoding). Skips if already in fixed mode (1). Refreshes if not locked (offset 0x24).
0x009F029042UIScrollbar__set_orientationSets scrollbar orientation at offset 0x22. Skips if already set to same value. Refreshes if not locked.
0x009F02C024UIButton__set_locked_009f02c0Sets button locked/disabled state (field 0x24) and triggers layout refresh via vtable 0x98.
0x009F02E0644UIButton__set_state_textures_direct_009f02e0Sets button textures directly for all 3 states. Clears existing map entries, inserts new entries for keys 0/1/2 (normal/hover/pressed) with texture values from params. Sets field 0x23 to param_5 and triggers layout.
0x009F0EA044UIListBox__find_item_by_id_009f0ea0Searches linked list at field 0x50 for an item whose field 0x2c matches param_2 (item ID). Returns item pointer or 0 if not found.
0x009F0ED047UIListBox__find_item_by_data_009f0ed0Searches linked list at field 0x50 for an item whose field 0x1c0 matches param_2 (user data). Returns item pointer or 0 if not found.
0x009F0F10209UIListBox__select_item_009f0f10Selects a list box item. If param_2 is 0, deselects all items. Otherwise checks disabled flag (field 0x84), invokes selection filter callback at field 0xd4 if present, sets selection in field 0x80, updates all items' selected state via UIListItem__set_selected_state, and notifies via callback at field 0xac.
0x009F0FF0244UIListBox__select_item_by_data_009f0ff0Selects a list box item by searching for one with matching field 0x1c0 data value. If found, performs same selection logic as select_item (deselect others, notify callback). If not found, selects null.
0x009F10F0277UIListBox__select_item_by_index_009f10f0Selects a list box item by index. Returns 0 if index >= item count (field 0x54). Traverses linked list to find nth item, then performs standard selection logic. Returns 1 on success.
0x009F160040UIListBox__on_item_click_009f1600Handles click on a list box item. If not disabled (field 0x84 == 0), calls focus handler and then select_item if field 0x10 (parent) is set.
0x009F163031UIListBox__on_item_release_009f1630Handles item release in list box. Checks if this is active control and releases focus via FUN_00aa66c0.
0x009F198095UIListBox__resize_content_area_009f1980Resizes the list box content/scrollable area. Gets child container from field 0x10, adjusts height to match control or saved value (field 0xd8). Sets size via vtable, calls FUN_00aab0d0 and FUN_00a976c0 to update, then propagates offset delta to children via SpriteLayer__propagate_offset_to_children.
0x009F1D4019UIScrollbar__scroll_backward_009f1d40Scrolls backward (decrements). Calls FUN_009f2530 with current value (0x9c) minus step size (0x98).
0x009F1D6019UIScrollbar__scroll_forward_009f1d60Scrolls forward (increments). Calls FUN_009f2530 with current value (0x9c) plus step size (0x98).
0x009F1D8089UIScrollbar__pixel_to_value_009f1d80Converts pixel position to scrollbar value. Returns ceil(max_value * pixel_pos / track_area). Returns 0 if track area (field 0xa4) is 0.
0x009F1DE0913UIScrollbar__create_child_controls_009f1de0Creates scrollbar child controls if not already created. Creates 3 child controls at fields 0x80 (up button), 0x84 (down button), 0x88 (thumb/slider). Each is allocated (0x120 bytes), constructed via FUN_009bdf40 or FUN_00a79a90, given a callback, and parented. Thumb uses PTR_FUN_0114c95c vtable with extensive string fields init.
0x009F23B071UIScrollbar__on_track_click_009f23b0Handles click on scrollbar track area. If clicked above thumb position, scrolls backward by step size. If clicked below thumb (position + height), scrolls forward by step size.
0x009F240031UIScrollbar__on_thumb_drag_start_009f2400Handles thumb drag start. Grabs focus and stores initial Y position (param_3) in field 0x90.
0x009F242044UIScrollbar__on_thumb_drag_end_009f2420Handles thumb drag end. Releases focus if this is active control, stores final Y position in field 0x90.
0x009F245093UIScrollbar__draw_tooltip_009f2450Draws scrollbar tooltip text. If field 0xa8 (has tooltip) is nonzero, renders text from field 0x98 string at offset (0, -20) via FUN_00ad6510.
0x009F24B062UIScrollbar__on_thumb_drag_move_009f24b0Handles thumb drag movement. If this is active scrollbar and Y changed from stored position (field 0x90), computes delta and invokes scroll callback at field 0x11c.
0x009F250039UIScrollbar__on_wheel_scroll_009f2500Handles mouse wheel scroll. If param_2 < 1 (scroll down), adds step size to current value. Otherwise subtracts step size. Calls FUN_009f2530 to apply.
0x009F2530135UIScrollbar__set_value_009f2530Sets scrollbar value, clamped to [0, max_value (field 0x28)]. If not locked (field 0x2a==0), stores in field 0x27. Calls vtable 0x38 with enabled state, vtable 0xd8 to update thumb position, notifies value change callback at field 0x3b, triggers layout.
0x009F25C0234UIScrollbar__update_horizontal_thumb_009f25c0Updates horizontal scrollbar thumb position. Similar to vertical version but uses width fields and positions along X axis. Two modes: proportional calculates thumb width from ratio, standard computes position from value.
0x009F26B0335UIScrollbar__load_track_textures_009f26b0Loads scrollbar track textures. Loads middle texture from field 0xc8 into field 0x88. If 3-part mode (field 0x80), also loads top texture from field 0xb0 into field 0x84, bottom texture from field 0xe0 into field 0x8c.
0x009F2800145UIScrollbar__load_thumb_texture_009f2800Loads scrollbar thumb/grip texture from field 0xac into field 0x8c. Releases old texture reference.
0x009F28A069UIScrollbar__on_resize_update_layoutHandles scrollbar resize. Moves parent, repositions down button to bottom, calculates available track area as total height minus both button heights.
0x009F28F0310UIScrollbar__set_button_labelsSets text labels on scrollbar up/down buttons. Loads textures from provided string params, resizes buttons, sets text labels, and triggers visibility refresh.
0x009F2A3017UIScrollbar__disable_and_hide_009f2a30Disables scrollbar by setting flag 0xa9=1 and calling vtable 0x38 with 0 (hide/disable).
0x009F2A5052UIScrollbar__set_smooth_scroll_009f2a50Sets smooth scrolling flag (field 0xaa) on scrollbar and propagates to all 3 child controls: up button (0x80+0xfc), down button (0x84+0xfc), thumb (0x88+0x94).
0x009F2A90133UIScrollbar__set_3part_track_textures_009f2a90Enables 3-part track mode (field 0x20=1) and sets 3 texture names for track: top (field 0x2c), middle (field 0x32), bottom (field 0x38). Triggers visual update and layout.
0x009F2B2071UIScrollbar__set_single_track_texture_009f2b20Sets single track texture mode (field 0x20=0) with texture name in field 0x32. Triggers visual update and layout.
0x009F2B7068UIScrollbar__set_max_value_009f2b70Sets scrollbar maximum value (field 0x24, min 1). Clamps visible range (field 0x25) to not exceed max. Computes scrollable range (field 0x28 = max - visible). Triggers layout.
0x009F2BC024UIScrollbar__set_max_clamped_009f2bc0Sets scrollbar maximum value, but forces to 0 if disabled flag (field 0xa9) is set. Stores in field 0x28.
0x009F2BE0279UIScrollbar__setup_horizontal_thumb_009f2be0Sets up horizontal scrollbar thumb. Computes track area (width minus button widths), calculates thumb size from visible/total ratio, positions and sizes thumb control. Sets 3-part texture mode on thumb with params 2-4 as textures. Triggers layout.
0x009F2D00267UIScrollbar__setup_horizontal_thumb_single_009f2d00Sets up horizontal scrollbar thumb with single texture. Computes track area, validates texture string, sizes/positions thumb control, sets single texture mode with param_2. Triggers layout.
0x009F2E1044UIScrollbar__set_thumb_tooltip_text_009f2e10Sets tooltip text on the scrollbar thumb control. Assigns string to thumb's field 0x98 from field 0x88.
0x009F2E4064UIScrollbar__set_background_texture_009f2e40Sets scrollbar background texture name (field 0x2b). Triggers visual update and layout.
0x009F2E8050UIScrollbar__set_visible_range_009f2e80Sets scrollbar visible range (field 0x25), clamped to not exceed max value (field 0x24). Recomputes scrollable range (field 0x28 = max - visible). Triggers layout.
0x009F2EC045UIScrollbar__snap_to_step_009f2ec0Snaps scrollbar value to nearest step boundary. If adjusted value (param_2 - remainder + current) differs from current value, calls set_value.
0x009F2EF022UIScrollbar__create_callback_up_009f2ef0Creates callback for scrollbar up button with vtable PTR_FUN_0114cb68.
0x009F2F1022UIScrollbar__create_callback_down_009f2f10Creates callback for scrollbar down button with vtable PTR_FUN_0114cb84.
0x009F2F3022UIScrollbar__create_callback_thumb_009f2f30Creates callback for scrollbar thumb with vtable PTR_FUN_0114cba0.
0x009F2F5068UIScrollbar__scalar_deleting_dtor_up_009f2f50Scalar deleting destructor for scrollbar up-button callback. Frees 8 bytes if flag set.
0x009F2FA068UIScrollbar__scalar_deleting_dtor_down_009f2fa0Scalar deleting destructor for scrollbar down-button callback. Frees 8 bytes if flag set.
0x009F2FF068UIScrollbar__scalar_deleting_dtor_thumb_009f2ff0Scalar deleting destructor for scrollbar thumb callback. Frees 8 bytes if flag set.
0x009F308023UIScrollbar__forward_set_color_009f3080Forwards set_color to the scrollbar's parent control at field+4 via vtable 0xdc.
0x009F30D022UIScrollbar__create_callback_up2_009f30d0Creates callback with vtable PTR_FUN_0114cb68 for scrollbar up button. Variant 2.
0x009F30F022UIScrollbar__create_callback_down2_009f30f0Creates callback with vtable PTR_FUN_0114cb84 for scrollbar down button. Variant 2.
0x009F311022UIScrollbar__create_callback_thumb2_009f3110Creates callback with vtable PTR_FUN_0114cba0 for scrollbar thumb. Variant 2.
0x009F316066UIWindow__reset_to_default_size_009f3160Resets UI window to default size (690x470) at position (0,0). Clears fields 0x2d (2 bytes) and sets field 0x35 flag. Calls resize and reposition via vtable methods 0x3c and 0x40.
0x009F31B013770UIWindow__ctor_009f31b0UIWindow: ctor 009f31b0
0x009F678038UIWindow__scalar_deleting_dtor_009f6780UIWindow scalar deleting destructor. Calls base class destructor, then frees 0x108 bytes if deletion flag (bit 1) is set. Returns this pointer.
0x009F71F0250UIEditBox__ctor_009f71f0UIEditBox constructor. Calls base ctor, sets vtable PTR_FUN_0114cc98. Initializes text fields, cursor position, max length (100), various editing flags. Calls CItemInfoMgr__clear_tree_and_free_alt for internal tree setup.
0x009F7420191UITabControl__ctor_009f7420UITabControl constructor. Extends CUITabControl__ctor, sets vtable PTR_FUN_0114cd78. Initializes colors (0xffffff normal, 0xffffff selected, 0xcecece disabled), layout params, tab count/state fields.
0x009F7E6071UITabControl__dtor_009f7e60UITabControl destructor. Sets vtable, delegates to UIControlBase::dtor.
0x009F81E071UITreeView__dtorUITreeView destructor. Sets vtable, delegates to UIListView::dtor.
0x009F844084UIWindow__dtorUIWindow destructor. Sets 2-level vtable chain (Window->UIBase), calls CEffect::dtor.
0x009F856071UITabControlWindow__dtorUITabControlWindow destructor. Sets vtable, delegates to CUITabControl::dtor.
0x009F8A5099UITabControl__scalar_deleting_dtorUITabControl scalar deleting destructor. Sets vtable, calls UIControlBase dtor, optionally frees 0xF0-byte object.
0x009F8CF099UITreeView__scalar_deleting_dtorUITreeView scalar deleting destructor. Sets vtable, calls UIListView::dtor, optionally frees 0xB8-byte object.
0x009F8FD0112UIWindow__scalar_deleting_dtor_009f8fd0Scalar deleting destructor for a UIWindow subclass. Sets 2 vtable pointers (hierarchy teardown), calls base destructor FUN_00a79e90, and optionally frees 0x8c bytes of memory.
0x009F912099UITabControlWindow__scalar_deleting_dtorUITabControlWindow scalar deleting destructor. Sets vtable, calls CUITabControl::dtor, optionally frees object memory.
0x009F93D0405UIWindow__create_child_window_009f93d0Factory function that allocates a 0xf0-byte UITabControl child window. Calls UIButton__ctor base constructor, sets UITabControl vtable, initializes fields 0x3a-0x3b to 0, sets size from parent offsets 0xb4/0xb8, configures button state textures from parent 0x80-0x8c, creates two child components via UIComponent__create_from_stream, and adds to parent's child list.
0x009F9570415UIWindow__create_child_window_009f9570Factory function that allocates a 0xf8-byte UIWindow subclass. Calls UIButton__ctor base constructor, sets vtable, initializes 3 extra fields (0x3a-0x3c to 0), sets size from parent 0xb4/0xb8, configures button state textures, creates two child components via UIComponent__create_from_stream, and adds to parent child list.
0x009F9710355UIEditBox__factory_create_009f9710Factory function that allocates a 0x108-byte UIEditBox-like window. Calls UIWindowBase__ctor, sets initial vtable, initializes text color (0xffffff), background color (0xcecece), alignment fields, flags, then sets final vtable and zeroes out 11 extra fields (0x36-0x40). Returns new object or NULL.
0x009F995036UIWindow__set_size_and_position_009f9950Sets window position (params 4,5 stored at offsets 0xb4, 0xb8) and calls CEffect__set_size_and_reload with size parameters (params 2,3).
0x009F998036UIWindow__set_size_and_position_009f9980Sets window position (params 4,5 stored at offsets 0xb4, 0xb8) and calls CEffect__set_size_and_reload with size parameters (params 2,3).
0x009F9B40193UIWindow__create_embedded_child_009f9b40Creates and attaches an embedded child window (0xf0 bytes) to parent at offset 0xb0. Calls UIInterfaceDialog__ctor, sets visibility via vtable, creates stream component via UIComponent__swap_callback, finalizes with CEffect__add_child_to_list_end.
0x009F9C10193UIWindow__create_embedded_child_009f9c10Creates and attaches an embedded child window (0xf0 bytes) to parent at offset 0xb0. Calls UIInterfaceDialog__ctor, sets visibility via vtable, creates stream component via UIComponent__swap_callback, finalizes with CEffect__add_child_to_list_end.
0x009F9CE0767UIWindow__init_editbox_and_label_009f9ce0Initializes a text edit box (0x1d8 bytes via UIEditBox__ctor) stored at param+0xe8 with max length 100 and line mode, plus a text label (0xfc bytes) at param+0xec. Sets font size 12, bold, color 0xc89682, white text. Decrypts XOR-encrypted resource strings for setup.
0x009F9FE06172UIWindow__create_widgets_from_resourceCreates UI widgets from decrypted resource data. 6.1K bytes. Called by UIWindow__setup_with_decrypted_resource variants. Builds combo boxes, edit boxes, text labels, scrollbars, buttons, list items, item slots. Configures font, color, text properties for each widget.
0x009FB8002175UIWindow__init_buttons_editbox_labels_009fb800Complex UI initialization: creates two button controls (0xb8 each at offsets 0x80, 0x84) with XOR-decrypted BMP resources, a text edit box (0x1d8 at offset 0x88) with 100 char limit, and two text labels (0xfc each at offsets 0x8c, 0x90) with font size 12, bold, grey/brown colors. Uses xor_decrypt_buffer for all string resources.
0x009FC0803411UIWindow__init_complex_panel_009fc080Complex panel initialization: creates two image windows (0xb8 each at offsets 0x80, 0x84) sized 0x1d6x0x179, a button (0xd8 at offset 0x88) sized 0x4c x 0x14, two scrollable text windows (0x1f0 each). Decrypts multiple XOR-encrypted resource strings for BMP paths. Sets up 4 text streams via FUN_009e8350. Links image windows to scroll windows.
0x009FCDE0451UIWindow__setup_with_decrypted_resource_009fcde0Calls UIWindow__create_widgets_from_resource with params, then decrypts a XOR-encrypted resource string (0x29 bytes) and loads it as a BMP via UIControl__load_bmp_resource.
0x009FCFB0451UIWindow__setup_with_decrypted_resource_009fcfb0Calls UIWindow__create_widgets_from_resource with params, then decrypts a XOR-encrypted resource string (0x29 bytes) and loads it as a BMP via UIControl__load_bmp_resource.
0x009FD180435UIWindow__setup_with_decrypted_resource_009fd180Calls UIWindow__create_widgets_from_resource with params, then decrypts a XOR-encrypted resource string (0x28 bytes) and loads it as a BMP via UIControl__load_bmp_resource.
0x00A008801218UIWindow__init_editbox_button_label_00a00880Creates a text edit box (0x1d8 at offset 0xe8) with 100 char limit, a small image button (0xb8 at offset 0xec) sized 12x12 with XOR-decrypted BMP, and a text label (0xfc at offset 0xf0) sized 152x12 with font 12 bold grey (0x959595) colors. Decrypts resource strings for both BMP and font setup.
0x00A01AD0451UIWindow__setup_with_decrypted_resource_00a01ad0Calls UIWindow__create_widgets_from_resource with params, then decrypts a XOR-encrypted resource string (0x29 bytes) and loads it as a BMP via UIControl__load_bmp_resource.
0x00A01CA0451UIWindow__setup_with_decrypted_resource_00a01ca0Calls UIWindow__create_widgets_from_resource with params, then decrypts a XOR-encrypted resource string (0x29 bytes) and loads it as a BMP via UIControl__load_bmp_resource.
0x00A01E9063UIWindow__delegate_action_to_child_00a01e90Checks child window at offset 0xb0: if not locked (flag 0x2a==0) and has pending items (0x25 < 0x24), calls vtable method 0x8c on child. Otherwise delegates to parent at offset 0x10 via vtable 0x8c.
0x00A01ED063UIWindow__delegate_action_to_child_00a01ed0Checks child window at offset 0xb0: if not locked (flag 0x2a==0) and has pending items (0x25 < 0x24), calls vtable method 0x8c on child. Otherwise delegates to parent at offset 0x10 via vtable 0x8c.
0x00A021D0196UIWindow__bind_callback_and_notify_00a021d0Binds a callback object from the stack parameter, clones it via vtable call, passes to swap_polymorphic_child at this+0x150 for event registration, then releases the clone and original callback objects via their Release vtable methods.
0x00A022A0522UIButton__load_textures_from_map_00a022a0Loads 4 button state textures (normal=0, hover=1, pressed=2, disabled from offset 0x98) from a string map using std__map_int_string__subscript and UIControl__load_texture_resource. Stores texture handles at offsets 0x80, 0x84, 0x88, 0x8c. Releases old textures. Updates all child items with new textures via FUN_009f02e0.
0x00A024B0522UIButton__load_textures_from_map_00a024b0Loads 4 button state textures (normal=0, hover=1, pressed=2, disabled from offset 0x98) from a string map. Same pattern as 00a022a0 - stores at offsets 0x80-0x8c, releases old textures, updates children.
0x00A02D8016UIWindow__set_child_ptr_00a02d80Simple setter: stores param_2 at this+0xb0 (child window pointer).
0x00A02D90216UIButton__set_state_strings_and_reload_00a02d90Sets 4 button state BMP strings (normal=0, hover=1, pressed=2, disabled at this+0x98) into the internal string map via std__map_int_string__subscript. Calls vtable 0xd4(0) to reload textures and vtable 0x98 to refresh display.
0x00A02E70216UIButton__set_state_strings_and_reload_00a02e70Sets 4 button state BMP strings (normal=0, hover=1, pressed=2, disabled at this+0x98) into the internal string map. Calls vtable 0xd4(0) to reload and 0x98 to refresh. Same as 00a02d90.
0x00A0519073UIWindow__forward_to_parent_views_00a05190Dynamic casts parent (offset 0x10) to a specific UI type, then calls vtable method 0xec on both child windows at offsets 0x80 and 0x84 of the cast result, passing param_2.
0x00A0F840447UITreeCtrl__ctor_00a0f840Constructor for UITreeCtrl. Calls base FUN_00a79a90, sets vtable chain PTR_FUN_0114875c -> PTR_FUN_0114f7d8. Initializes 4 texture slots (0x80-0x8C=0), allocates 0x2C-byte tree root node (self-referencing linked list), STL string, vector fields, secondary 0x108-byte node, selected index=-1, and two delegate slots.
0x00A0FA00348UITreeCtrl__dtor_00a0fa00Destructor for UITreeCtrl. Sets vtable to PTR_FUN_0114f7d8, releases two delegates (fields 0x4D and 0x43), cleans up tree data structures, destroys STL string, frees tree root node (0x2C bytes), releases 4 textures at offsets 0x80-0x8C, chains to base destructor FUN_00a79e90.
0x00A0FB6033UITreeCtrl__release_delegate_00a0fb60Releases the delegate object at field[9] by calling its Release virtual method (vtable+0x10), then nulls the pointer. No SEH, simpler variant.
0x00A0FB9092UITreeCtrl__release_inner_delegate_00a0fb90Releases the delegate object at field[9] by calling its Release virtual method (vtable+0x10), then nulls the pointer. With SEH frame, same logic as 00a0fb60.
0x00A0FBF0168UITreeCtrl__destroy_tree_nodes_00a0fbf0Destroys all tree nodes in the linked list. Nulls the tail pointer, iterates nodes from head, destroying two STL strings per node and freeing each 0x108-byte node, then frees the sentinel node.
0x00A0FCA0129UITreeCtrl__free_vector_buffer_00a0fca0Frees the underlying heap buffer of the tree item pointer vector (fields 0/1/2). Same STL vector cleanup pattern as UIListCtrl variant.
0x00A0FD30164UITreeCtrl__clone_from_source_00a0fd30Creates a clone from a source object. If source has a factory at offset 0x24, calls its virtual clone method, then forwards result to FUN_00a16540 for initialization.
0x00A0FDE0164UITreeCtrl__clone_from_source_B_00a0fde0Creates a clone from a source object. If source has a factory at offset 0x24, calls its virtual clone method, then forwards to GameSettings__swap_callback_objects.
0x00A0FE9038UITreeCtrl__scalar_deleting_dtor_00a0fe90Scalar deleting destructor for UITreeCtrl (size 0x138). Calls UITreeCtrl__dtor, then conditionally frees the 0x138-byte allocation.
0x00A0FEC0353UITreeCtrl__create_and_init_item_00a0fec0Allocates and initializes a new 0xF8-byte tree item. Calls FUN_00a16e10 constructor, sets dimensions from offsets 0xB4/0xB8, visibility=false, state textures, and registers two delegate callbacks (PTR_FUN_0114f9cc and PTR_FUN_0114f9e8). Finalizes via FUN_00a7a080.
0x00A10030115UITreeCtrl__alloc_and_init_item_00a10030Allocates a 0x14C-byte block and constructs a tree item via FUN_00a16c50. Returns null if allocation fails.
0x00A100B085UITreeCtrl__clear_all_items_00a100b0Clears all tree items from the vector (0xC8-0xCC), calling FUN_00a82e50 on each to destroy them, resets end pointer to begin and sets selected index (0xDC) to -1.
0x00A1011036UITreeCtrl__set_item_dimensions_00a10110Sets item width (param_4) and height (param_5) at offsets 0xB4/0xB8. Same pattern as UIListCtrl variant.
0x00A1014066UITreeCtrl__init_displayInitializes tree control display. Clears flags at 0xB4/0xD4, sets enabled flag, sets size to 0x230 x 0x179, position to (0,0), then calls layout and refresh virtual methods.
0x00A1019069UITreeCtrl__get_selected_item_00a10190Returns the currently selected tree item from the linked list at offset 0xD4. Uses selected index (0xDC) to traverse, returning pointer to item data (node+8). Sets success flag in output param.
0x00A101E0525UITreeCtrl__create_scrollbar_item_00a101e0Creates and initializes a scrollbar item for the tree control. Allocates 0xF0-byte item, sets vtable chain, initializes fields, registers callback delegate (PTR_FUN_0114f9b0), links to item vector, finalizes layout.
0x00A103F017842UITreeCtrl__static_layout_initStatic layout initialization for UITreeCtrl widget. 17K bytes. Sets up text labels, scrollbars, list items, buttons, progress bars, and delegates. Creates tree control with full visual configuration. No callers (likely registered as callback/vtable).
0x00A149B01949UITreeCtrl__init_child_controls_00a149b0Initializes tree control child elements. Creates: (1) expand icon button (0xB8 bytes, 0x20x0x20, at position 9,0 with encrypted texture name), (2) item slot control (0x1D8 bytes, CItemInfoMgr-based, scale=100, at position 0xD,1), (3) name label (0xFC bytes at position 100,0xD with font/color setup), (4) description label (0xFC bytes at position 0xD7,0x1E). Uses XOR-encrypted strings for resource paths.
0x00A1516063UITreeCtrl__scroll_next_page_00a15160Scrolls to the next page. Checks if tree is not fully scrolled and items remain, then calls virtual scroll method on main control or parent.
0x00A151A065UITreeCtrl__notify_items_selected_00a151a0Iterates all items in the vector (0xC8-0xCC) and calls each item's virtual method at vtable+0xDC with boolean indicating whether that item matches param_2.
0x00A151F0603UITreeCtrl__rebuild_items_00a151f0Rebuilds the tree items when dimensions change. Clears existing items, calculates required count, allocates 0xF8-byte items via FUN_00a16e10 constructor, sets textures and registers delegates (PTR_FUN_0114f9cc, PTR_FUN_0114f9e8), refreshes scrollbar.
0x00A15450111UITreeCtrl__clone_wrapper_A_00a15450Clone wrapper: calls UITreeCtrl__clone_from_source with stack params, releases temp delegate on cleanup.
0x00A154C0111UITreeCtrl__clone_wrapper_B_00a154c0Clone wrapper variant B: calls UITreeCtrl__clone_from_source with stack params, releases temp delegate on cleanup.
0x00A15530522UITreeCtrl__load_textures_00a15530Loads 4 textures for the tree control from map subscript indices 0,1,2 and string at 0x98. Stores at offsets 0x80-0x8C, releases old textures. Then sets button state textures on all child items via UIButton__set_state_textures_direct.
0x00A15740115UITreeCtrl__resize_and_rebuildResizes the tree control surface, rebuilds all items via UITreeCtrl__rebuild_items, repositions scrollbar to match new height, recalculates scroll range based on item count * item height + padding, and marks dirty flag (0xE1).
0x00A157C0498UITreeCtrl__layout_visible_items_00a157c0Lays out visible items in a UITreeCtrl. Rotates the item pointer array to align with the scroll offset, then iterates visible items setting their index, binding data via delegate callback, updating selection state, and positioning them vertically.
0x00A159C0218UITreeCtrl__on_item_selected_00a159c0Handles item selection in UITreeCtrl. Deselects all other items, selects the clicked item, updates the selected index, and invokes the selection changed callback delegate if one is registered.
0x00A15AA0216UITreeCtrl__set_textures_and_refresh_00a15aa0Sets texture strings for UITreeCtrl (3 textures by index 0/1/2 plus a name string), then triggers a virtual refresh and layout recalculation.
0x00A15B8022UITreeCtrl__make_delegate_f87c_00a15b80Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A15BA022UITreeCtrl__make_delegate_f898_00a15ba0Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A15BC022UITreeCtrl__make_delegate_f8b4_00a15bc0Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A15BE022UITreeCtrl__make_delegate_f9cc_00a15be0Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A15C0022UITreeCtrl__make_delegate_f9b0_00a15c00Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A15C2022UITreeCtrl__make_delegate_f8d0_00a15c20Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A15C4022UITreeCtrl__make_delegate_f8ec_00a15c40Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A15C6022UITreeCtrl__make_delegate_f908_00a15c60Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A15C8022UITreeCtrl__make_delegate_f9e8_00a15c80Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A15CA022UITreeCtrl__make_delegate_f924_00a15ca0Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A15CC022UITreeCtrl__make_delegate_f940_00a15cc0Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A15CE022UITreeCtrl__make_delegate_f95c_00a15ce0Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A160C065UITreeCtrl__delegate_notify_items_00a160c0Delegate callback: iterates all tree items in parent (this+4) and calls each item's vtable+0xDC with boolean (param_2 == item). Used for selection notification.
0x00A1611020UITreeCtrl__delegate_layout_00a16110Delegate callback thunk: dereferences first param and forwards to UITreeCtrl__layout_visible_items.
0x00A1614023UITreeCtrl__delegate_null_stub_00a16140Delegate callback thunk: dereferences first param and calls null_stub_00a176a0 (a no-op).
0x00A1616023UITreeCtrl__delegate_forward_00a16160Delegate callback thunk: dereferences first param and forwards to thunk_to_00a18660.
0x00A16180216UITreeCtrl__delegate_on_item_selected_00a16180Delegate callback for tree item selection. Deselects all other items, selects clicked item, uses RTDynamicCast to verify type (PTR_PTR_01365c18), stores selected index, notifies selection callback at 0x10C.
0x00A162B023UITreeCtrl__make_delegate_f87c_copy_00a162b0Copy constructor for a UITreeCtrl delegate functor. Copies vtable and callback pointer.
0x00A162D023UITreeCtrl__make_delegate_f898_copy_00a162d0Copy constructor for a UITreeCtrl delegate functor. Copies vtable and callback pointer.
0x00A163C022UITreeCtrl__make_delegate_f8b4_copy_00a163c0Copy constructor for a UITreeCtrl delegate functor. Copies vtable and callback pointer.
0x00A163E022UITreeCtrl__make_delegate_f9cc_copy_00a163e0Copy constructor for a UITreeCtrl delegate functor. Copies vtable and callback pointer.
0x00A1640022UITreeCtrl__make_delegate_f9b0_copy_00a16400Copy constructor for a UITreeCtrl delegate functor. Copies vtable and callback pointer.
0x00A1642022UITreeCtrl__make_delegate_f8d0_copy_00a16420Copy constructor for a UITreeCtrl delegate functor. Copies vtable and callback pointer.
0x00A1644022UITreeCtrl__make_delegate_f8ec_copy_00a16440Copy constructor for a UITreeCtrl delegate functor. Copies vtable and callback pointer.
0x00A1646022UITreeCtrl__make_delegate_f908_copy_00a16460Copy constructor for a UITreeCtrl delegate functor. Copies vtable and callback pointer.
0x00A1648022UITreeCtrl__make_delegate_f9e8_copy_00a16480Copy constructor for a UITreeCtrl delegate functor. Copies vtable and callback pointer.
0x00A164A022UITreeCtrl__make_delegate_f924_copy_00a164a0Copy constructor for a UITreeCtrl delegate functor. Copies vtable and callback pointer.
0x00A164C022UITreeCtrl__make_delegate_f940_copy_00a164c0Copy constructor for a UITreeCtrl delegate functor. Copies vtable and callback pointer.
0x00A164E022UITreeCtrl__make_delegate_f95c_copy_00a164e0Copy constructor for a UITreeCtrl delegate functor. Copies vtable and callback pointer.
0x00A1650022UITreeCtrl__make_delegate_f978_00a16500Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A1652022UITreeCtrl__make_delegate_f994_00a16520Creates a delegate functor for UITreeCtrl, storing a vtable and callback pointer.
0x00A16930142UITreeCtrl__clear_node_listClears a linked list of UITreeCtrl nodes (0x108 bytes each). Nulls the tail pointer, iterates from head destroying two STL strings per node and freeing each node. Does NOT free the sentinel node.
0x00A3C7E0300UIListBox__ctor_00a3c7e0Constructor for UIListBox derived from UIBase. Sets vtable to PTR_FUN_01152a0c. Initializes two embedded string objects (offsets 0x5b-0x60 and 0x64-0x69), zeroes scroll/selection state, and initializes 4 members at offsets 0x20-0x23. Contains two sub-object initializations via FUN_00a3d0a0.
0x00A3CD30136UIButton__ctor_00a3cd30Constructor for UIButton derived from UIBase. Sets vtable to PTR_FUN_01152af0. Zeroes 2 members at offsets 0x20-0x21 (state, sprite handle).
0x00A3CE50166UIDropdown__ctor_00a3ce50Constructor for UIDropdown derived from UIBase. Sets vtable to PTR_FUN_01152d9c. Zeroes 5 members at offsets 0x20-0x24 (selected index, items list, expanded state, etc).
0x00A3D890221UIListBox__dtor_00a3d890Destructor for UIListBox (vtable PTR_FUN_01152a0c). Destroys 6 embedded STL strings in sequence, resets vtable to UIBase, calls UIBase dtor.
0x00A3DBB084UIButton__dtor_00a3dbb0Destructor for UIButton (vtable PTR_FUN_01152af0). Resets vtable to UIBase, calls UIBase dtor.
0x00A3DC7084UIDropdown__dtor_00a3dc70Destructor for UIDropdown (vtable PTR_FUN_01152d9c). Resets vtable to UIBase, calls UIBase dtor.
0x00A3E160245UIListBox__scalar_deleting_dtor_00a3e160Scalar deleting destructor for UIListBox. Destroys 6 STL strings, calls UIBase dtor, then conditionally frees 0x1A8-byte allocation.
0x00A3E500112UIButton__scalar_deleting_dtor_00a3e500Scalar deleting destructor for UIButton. Calls UIBase dtor, then conditionally frees 0x88-byte allocation.
0x00A3E5E0112UIDropdown__scalar_deleting_dtor_00a3e5e0Scalar deleting destructor for UIDropdown. Calls UIBase dtor, then conditionally frees 0x94-byte allocation.
0x00A3E7A0223UIListBoxProxy__add_item_full_00a3e7a0Adds a full UIListItem (0x70-byte node with 2 strings + data) to the listbox's internal linked list. Accessed via this->offset_0x8C. If param_3 is true, calls FUN_00a41fe0 to update scrollbar. Returns new item index (count-1). Throws _Xlength_error if list is full.
0x00A3E880249UIListBoxProxy__add_item_small_00a3e880Adds a small item (0x2c-byte node with 3 ints + 1 string) to the listbox's internal linked list. Accessed via this->offset_0x8C. If param_3 is true, calls FUN_00a42060 to update scrollbar. Returns new item index.
0x00A3E980241UIListBoxProxy__add_item_medium_00a3e980Adds a medium item (0x24-byte node with 1 int + 1 string) to the listbox's internal linked list. If param_3 is true, calls FUN_00a420e0 to update scrollbar. Returns new item index.
0x00A3EA80223UIListBoxProxy__add_item_string_00a3ea80Adds a string-only item (0x20-byte node with 1 string) to the listbox's internal linked list. If param_3 is true, calls FUN_00a42160 to update scrollbar. Returns new item index.
0x00A3EB60271UIListBox__add_item_full_00a3eb60Adds a full UIListItem (0x70-byte node) to the listbox's linked list at offset 0xD4. If param_3 is true, recalculates scrollbar max value (item_count * item_height + padding) and sets dirty flag. Returns new item index.
0x00A3EC70297UIListBox__add_item_small_00a3ec70Adds a small item (0x2c-byte node: 3 ints + 1 string) to the listbox's linked list. If param_3 is true, updates scrollbar max value and sets dirty flag. Returns new item index.
0x00A3EDA0288UIListBox__add_item_mediumAdds a medium item (0x24-byte node: 1 int + 1 string) to the listbox's linked list. If param_3 is true, updates scrollbar max value and sets dirty flag. Returns new item index.
0x00A3EED0271UIListBox__add_item_stringAdds a string-only item (0x20-byte node) to the listbox's linked list. If param_3 is true, updates scrollbar max value and sets dirty flag. Returns new item index.
0x00A3EFE0262UIListBox__add_item_intAdds an int-only item (0xC-byte node with 1 int) to the listbox's linked list. If param_3 is true, updates scrollbar max value and sets dirty flag. Returns new item index.
0x00A3F7C0123UIListBox__clear_full_itemsClears all full items (0x70-byte nodes with 2 strings) from the listbox's linked list at offset 0xD4. Resets list to empty sentinel, count=0, selection=-1, updates scrollbar, and sets dirty flag.
0x00A3F840123UIListBox__clear_small_itemsClears all small items (0x2c-byte nodes with 1 string) from the listbox's linked list. Resets list to empty, count=0, selection=-1, updates scrollbar, and sets dirty flag.
0x00A3F8C0123UIListBox__clear_medium_itemsClears all medium items (0x24-byte nodes with 1 string) from the listbox's linked list. Resets list to empty, count=0, selection=-1, updates scrollbar, and sets dirty flag.
0x00A3F9B041UIListBox__render_item_text_at_offset8Renders list item text by extracting the STL string at node offset+8 (with SSO check) and assigning it to a UITextLabel.
0x00A3FA9041UIListBox__render_item_text_at_offset0xcRenders list item text by extracting the STL string at node offset+0xC (with SSO check) and assigning it to a UITextLabel.
0x00A3FB2041UIListBox__render_item_text_at_offset4Renders list item text by extracting the STL string at node offset+4 (with SSO check) and assigning it to a UITextLabel.
0x00A3FBA038UIListBox__render_item_string_onlyRenders a string-only list item. Extracts the STL string at the node start (with SSO check) and assigns it to a UITextLabel.
0x00A3FBE068UIListBox__get_item_by_indexGets a list item by index. Traverses the linked list at offset 0xD4 to the given index. Returns result struct: pointer to item data (at node+2) and found=1, or found=0 if index out of range.
0x00A3FC3068UIListBox__get_item_by_index_altGets a list item by index (alternate variant, same implementation). Traverses linked list to given index. Returns result struct: pointer to item data and found flag.
0x00A4F630444UITreeView__ctor_00a4f630Constructor for UITreeView (0x138 bytes). Inherits from UIWindowBase. Sets vtable to PTR_FUN_01153c44. Creates linked list sentinel (0x2C bytes) and node list (0x10 bytes). Initializes STL string at +0x26, selection=-1, various widget ptrs to null.
0x00A4F7F0393UITreeView__dtor_00a4f7f0Destructor for UITreeView. Releases child widgets at +0x4D and +0x43 via vtable+0x10. Destroys node list, frees vector, destroys STL string, destroys texture map, releases 4 texture resources. Calls base UIWindowBase dtor.
0x00A4F98033UITreeView__release_child_widget_00a4f980Releases child widget at field +9. If non-null, calls vtable+0x10 and nulls pointer.
0x00A4F9B092UITreeView__release_child_seh_00a4f9b0SEH-wrapped version of release_child_widget for UITreeView. Same logic as 00a4f980.
0x00A4FA10103UITreeView__destroy_node_list_00a4fa10Destroys a singly-linked node list. Walks from head, frees each 0x10-byte node, then frees head. SEH-wrapped.
0x00A4FA80129UITreeView__free_item_vector_00a4fa80Frees a vector buffer. Handles aligned allocation (checks -4 offset for large buffers). Zeroes begin/end/capacity pointers. SEH-wrapped.
0x00A4FB10164UITreeView__create_from_descriptor_00a4fb10Creates a UITreeView from a descriptor. Optionally clones a UI stream from param_2+0x24, then calls std__any_swap_00a54a20 for initialization.
0x00A4FBC038UITreeView__scalar_deleting_dtor_00a4fbc0Scalar deleting destructor for UITreeView (0x138 bytes). Calls UITreeView__dtor then frees if param_2 & 1.
0x00A4FBF0353UITreeView__create_item_widget_00a4fbf0Creates a single item widget for the tree view. Allocates 0xF8-byte UITextBoxC via ctor. Sets size, visibility=0, colors. Registers two UI callbacks. Adds to layout via FUN_00a7a080.
0x00A4FDE085UITreeView__clear_all_items_00a4fde0Clears all items from the tree view. Iterates item vector +0xC8, calls FUN_00a82e50 on each. Resets vector end=begin, selected=-1.
0x00A599F0444UIDropdownList__ctor_00a599f0Constructor for UIDropdownList. Calls base UIBase ctor, sets vtable to PTR_FUN_01154614. Initializes 4 sprite pointers (0x20-0x23), linked list at +0x24 (0x2c-byte nodes), string at +0x26, item list at +0x35, selection index at +0x37 to -1. Object size ~0x138.
0x00A59C80393UIDropdownList__dtor_00a59c80Destructor for UIDropdownList. Destroys popup and dialog child objects, frees linked list nodes, clears item vector, destroys string, frees tree structure at +0x24, releases 4 sprite resources (0x20-0x23 via FUN_00af0be0), then calls base dtor.
0x00A5BF5038UIDropdownList__scalar_deleting_dtor_00a5bf50Scalar deleting destructor for UIDropdownList. Calls dtor, frees 0x138 bytes if param_2 & 1.
0x00A5BF80353UIDropdownList__create_tab_control_00a5bf80Creates a UITabControl for the dropdown list. Allocates 0x110 bytes, constructs via UITabControl__ctor, sets size from +0xb4/+0xb8, configures button textures from +0x80-0x8c, registers two callback functors (PTR_FUN_01154958, PTR_FUN_01154974), adds as child.
0x00A5C0F0115UIDropdownList__create_textbox_00a5c0f0Factory: allocates 0x128 bytes, constructs UITextBox via UITextBox__ctor_00a65af0. Returns null if allocation fails.
0x00A5C17085UIDropdownList__clear_items_00a5c170Clears all items from the dropdown list. Iterates the item vector at +0xc8, calls CEffect__remove_child_from_list on each to destroy, resets end pointer to begin, sets selected index at +0xdc to -1.
0x00A5C1D036UIDropdownList__set_sizes_00a5c1d0Sets dropdown list dimensions. Stores param_4/param_5 (tab button width/height) at +0xb4/+0xb8, then calls CEffect__set_size_and_reload with param_2/param_3 to set the base control size.
0x00A5C200100UIDropdownList__reset_layout_00a5c200Resets dropdown list window layout. Sets flags, close button visible, resizes to 0x17d x 0x1d2, centers on screen based on global screen dimensions, then auto-sizes.
0x00A5C270189UIDropdownList__add_tab_page_00a5c270Adds a new tab page to the dropdown list. Allocates 0x88 bytes, constructs UITabPage (00a65a70), sizes to 0x157 x 0x18a, adds as child, pushes to tab page vector at +0xf0.
0x00A5C33069UIDropdownList__get_selected_item_00a5c330Gets the currently selected item from the dropdown list. Traverses linked list at +0xd4 by index (+0xdc). Returns item data pointer in param_2[0] with success flag in param_2[1]. Returns false if index is -1 or out of range.
0x00A5C380525UIDropdownList__init_interface_dialog_00a5c380Initializes the interface dialog child for the dropdown list. Allocates 0xf0 bytes, constructs UIInterfaceDialog with default settings (page counts, visibility flags), registers a callback functor (PTR_FUN_0115493c) via std::any swap, adds as child at +0xb0.
0x00A5C5904794UIDropdownList__init_controls_00a5c590Initializes all child controls for the dropdown list UI. Large init function (4794 bytes) that creates buttons, text labels, scrollbars, and tab pages.
0x00A5D8504205UIDropdownList__init_child_dropdownInitializes a child UIDropdownList control at member offset +0x80. Creates the dropdown, sets dimensions (0x14a x 0x2e tab size, 0x157 x 0x18a overall), registers selection/tab change callback functors, configures 3 string map entries for tab labels, sets up scrollbar button/thumb/background textures from encrypted TLS strings, then calls rebuild_tab_controls and adds as child.
0x00A5E8C020424UIDropdownList__render_00a5e8c0UIDropdownList: render 00a5e8c0
0x00A638A063UIDropdownList__on_tab_changed_00a638a0Handles tab change event for dropdown list. If interface dialog (+0xb0) is not locked and current page < total pages, calls virtual navigate method. Otherwise delegates to parent control's navigate.
0x00A638E065UIDropdownList__set_item_selected_00a638e0Sets selection state on dropdown items. Iterates all items in vector at +0xc8, calls virtual method at vtable+0xdc on each, passing true if the item matches param_2, false otherwise.
0x00A63930603UIDropdownList__rebuild_tab_controls_00a63930Rebuilds all tab controls for the dropdown list based on current item height and visible area. Destroys existing tab controls, calculates how many fit (height/item_height + 1), creates new UITabControl instances with button textures and callbacks, then sets scrollbar range.
0x00A63B90111UITreeCtrl__clone_wrapperWrapper for cloning a UITreeCtrl. Calls UITreeCtrl__clone_from_source_B to perform the clone, then conditionally destroys the source object via virtual function at vtable+0x10 if a separate copy was made.
0x00A63C00196UITreeCtrl__swap_delegateSwaps the delegate/callback associated with a UITreeCtrl. If the source object exists, clones it into a local buffer. Calls delegate_swap_inner_objects to swap the callback at offset +0x88. Destroys both temporary and source objects if they were separately allocated.
0x00A63CD0522UITreeCtrl__load_state_texturesLoads texture resources for a UITreeCtrl's different states (normal, hover, pressed, disabled). Uses std::map subscript to get texture names for indices 0-3 and the label texture at +0x98. For each texture, calls UIControl__load_texture_resource, increments ref count, swaps old texture pointer, and releases old one. Finally iterates visible child items and applies the textures via UIButton__set_state_textures_direct.
0x00A63EE0115UIDropdownList__resize_and_update_scroll_00a63ee0Resizes the dropdown list and updates the scrollbar. Calls FUN_00a82eb0 to set control size, rebuilds tab controls, repositions the interface dialog child, then recalculates scrollbar max/visible range/value and marks dirty.
0x00A63F60498UIDropdownList__update_visible_items_00a63f60Updates which items are visible in the dropdown list based on scroll position (param_2). Rotates the tab control pool to reuse controls, binds visible items to their data via the item formatter callback (+0x134), highlights the selected item, positions controls, and hides out-of-view controls.
0x00A64160218UIDropdownList__on_item_clicked_00a64160Handles item click in the dropdown list. If not locked (+0xc4), deselects all other items, selects the clicked one. If selection changed or double-click mode disabled, stores new selection index at +0xdc, looks up the item data in the linked list, and calls the selection callback (+0x10c).
0x00A64240216UIDropdownList__set_button_textures_00a64240Sets button textures for the dropdown list. Assigns 3 texture strings to map slots 0/1/2 via subscript, copies a label string to +0x26 member, then calls virtual refresh and show methods.
0x00A64DE065UITabControl__notify_tab_selectionIterates through all tab children (vtable offsets 0xC8-0xCC), calling virtual method at vtable+0xDC with a bool indicating whether each tab matches the selected one from param_2.
0x00A64E80216UITabControl__on_tab_selectedTab selection handler. Deselects all tabs via vtable+0xD8, selects the clicked one, then uses RTDynamicCast to get extended tab info. If valid, looks up linked list node by tab index and invokes callback at offset 0x10C with the node data.
0x00A659B0181UITabControl__ctor_00a659b0Constructor for a UI tab control class. Calls parent constructor FUN_009efc30, sets vtable, then initializes member fields: zero-initializes offsets 0x3A-0x3D, sets 0x3E and 0x3F defaults (enable flags), clears remaining state.
0x00A65A70123UITabPage__ctor_00a65a70Constructor for a UITabPage. Calls FUN_00a79a90 (UIBase-derived ctor), sets intermediate vtable, sets visibility flag at +0x1F to true, then sets final vtable and initializes page-specific fields (offset 0x20=0, 0x21=1).
0x00A65D0071UITabControl__dtorDestructor for UITabControl. Sets vtable to UITabControl__scalar_deleting_dtor, then calls UIControlBase__dtor to destroy the base class.
0x00A65D5084UITabPage__dtorDestructor for UITabPage. Sets vtable to UITabPage then UIBase, then calls CEffect__dtor to destroy the base class.
0x00A65E4099UITabControl__scalar_deleting_dtor_00a65e40Scalar deleting destructor for UITabControl (size 0x110). Sets vtable, calls parent dtor FUN_009da310, conditionally frees memory.
0x00A65EB0112UITabPage__scalar_deleting_dtor_00a65eb0Scalar deleting destructor for UITabPage (size 0x88). Sets intermediate and base vtable, calls FUN_00a79e90 parent dtor, conditionally frees memory.
0x00A684E0447UIListBoxA__ctor_00a684e0Constructor for a UI list box class (variant A). Calls UIBase-derived ctor, allocates sentinel node (0x2C bytes) for doubly-linked list, allocates hash table node (0x100 bytes), initializes embedded SSO string, zero-initializes member fields, sets selected index to -1.
0x00A686A0444UIListBoxB__ctor_00a686a0Constructor for a UI list box class (variant B). Same pattern as UIListBoxA but with different vtable and smaller hash node (0x28 bytes).
0x00A68860348UIListBoxA__dtor_00a68860Destructor for UIListBoxA. Sets vtable, destroys functors at offsets 0x4D and 0x43, destroys hash table, destroys list data, destroys SSO string, cleans up doubly-linked list sentinel, frees sprite pointers (offsets 0x20-0x23), then calls parent dtor.
0x00A689C0348UIListBoxB__dtor_00a689c0Destructor for UIListBoxB. Same pattern as UIListBoxA dtor but with different vtable and different sub-destructors (FUN_00a68c40, FUN_00a68d60).
0x00A68C40134UIListBoxB__destroy_linked_list_00a68c40Destroys UIListBoxB's doubly-linked list. Walks forward chain, destroys string in each 0x28-byte node, frees node, then frees sentinel.
0x00A68DF071UIListBoxScrollbar__dtor_00a68df0Destructor for a list box scrollbar. Sets vtable, then calls FUN_009f7f70 (scrollbar base dtor).
0x00A68E40164UIListBoxA__copy_functor_00a68e40Copies a functor from another UIListBoxA. If source has functor at offset 0x24, clones it via vtable method. Then calls FUN_00a6ef40 to complete copy. Cleans up temp functor storage.
0x00A68EF0164UIListBoxB__copy_functor_00a68ef0Copies a functor from another UIListBoxB. Same pattern as UIListBoxA__copy_functor but calls FUN_00a6f0a0.
0x00A68FA038UIListBoxA__scalar_deleting_dtor_00a68fa0Scalar deleting destructor for UIListBoxA (size 0x138). Calls UIListBoxA__dtor, conditionally frees memory.
0x00A68FD038UIListBoxB__scalar_deleting_dtor_00a68fd0Scalar deleting destructor for UIListBoxB (size 0x138). Calls UIListBoxB__dtor, conditionally frees memory.
0x00A691E0353UIListBox__create_item_widget_00a691e0Creates a UI widget for a list box item. Allocates 0xF0 bytes, calls FUN_00a6f580 to initialize, sets position and button textures from source, registers two delegate callbacks via UIComponent__create_from_stream, and finishes setup via FUN_00a7a080.
0x00A69350115UIListBox__create_item_widget_b_00a69350Creates a UI list box item widget (variant B). Allocates 0xF4 bytes, calls FUN_00a6f470 to construct. Returns pointer or 0 on failure.
0x00A693D085UIListBox__clear_child_items_00a693d0Clears all child items from the list box. Iterates child pointer array (0xC8..0xCC), calls FUN_00a82e50 to destroy each child with flag 1, resets end pointer to begin, and sets selected index to -1.
0x00A6943085UIListBox__clear_child_items_00a69430Clears all child items from the list box. Same as 00a693d0 - different instantiation.
0x00A6949036UIListBox__set_item_dimensions_00a69490Sets list box item dimensions. Stores param_4 and param_5 at offsets 0xB4 and 0xB8, then calls FUN_00a7b470 with param_2 and param_3.
0x00A694C036UIListBox__set_item_dimensions_00a694c0Sets list box item dimensions. Same as 00a69490 - different instantiation.
0x00A6955069UIListBox__get_selected_data_00a69550Gets data for the currently selected list entry. Walks the linked list to the selected index (offset 0xDC), returns pointer to node data (+2) with success flag. Returns failure flag if index is invalid.
0x00A695A069UIListBox__get_selected_data_00a695a0Gets data for the currently selected list entry. Same as 00a69550 - different instantiation.
0x00A695F0193UIListBox__create_scrollbar_00a695f0Creates the scrollbar for the list box. Allocates 0xF0 bytes, constructs a scrollbar widget via FUN_009be480, stores at offset 0xB0, hides it initially, registers a scroll callback delegate, then finishes setup via FUN_00a7a080.
0x00A696C0193UIListBox__create_scrollbar_b_00a696c0Creates the scrollbar for the list box (variant B). Same pattern as 00a695f0 but with different delegate vtable.
0x00A697901565UIListBox__create_child_widgets_00a69790Creates child widgets for the list box: string dialog (0xB8 bytes with SSO strings), item slot (0x1D8 bytes with CItemInfoMgr), and text label (0xFC bytes). Configures text label with XOR-decrypted font name, line spacing, colors, and outline settings. Each widget is registered via FUN_00a7a080.
0x00A69DB012328UIListBox__handle_input_event_00a69db0Large input event handler for UIListBox (12328 bytes). Handles mouse/keyboard input for list selection, scrolling, and interaction. SKIPPED detailed analysis due to size.
0x00A6CDE0636UIListBox__create_text_label_00a6cde0Creates a text label widget (0xFC bytes) for the list box at offset 0xE8. Sets size 148x34, position 11,0, truncate off, XOR-decrypted font name, line spacing 12, bold off, color 0, no outline/shadow. Finishes via FUN_00a7a080.
0x00A6D08063UIListBox__scroll_page_down_00a6d080Scrolls the list box down by one page. Checks if scrollbar is enabled and has room to scroll. Calls virtual method at vtable+0x8C on scrollbar or parent.
0x00A6D0C063UIListBox__scroll_page_down_00a6d0c0Scrolls the list box down by one page. Same as 00a6d080 - different instantiation.
0x00A6D10065UIListBox__notify_selection_changed_00a6d100Notifies all child items of a selection change. Iterates items (0xC8..0xCC), calls virtual method at vtable+0xDC on each with bool indicating if it matches the selected item.
0x00A6D15065UIListBox__notify_selection_changed_00a6d150Notifies all child items of a selection change. Same as 00a6d100 - different instantiation.
0x00A6D1A0603UIListBoxA__rebuild_child_items_00a6d1a0Rebuilds all child item widgets for UIListBoxA. Destroys existing children, calculates how many fit (height/itemHeight+1), allocates/creates new item widgets (0xF8 bytes each) with button textures and delegate callbacks, then updates scrollbar max value.
0x00A6D400603UIListBoxB__rebuild_child_items_00a6d400Rebuilds all child item widgets for UIListBoxB. Same as UIListBoxA but creates 0xF0-byte items via FUN_00a6f580.
0x00A6D660522UIListBox__load_button_textures_00a6d660Loads button state textures from a resource map. Loads 4 states (normal, hover, pressed, disabled) from map indices 0-2 plus one direct path. Each old texture is released via FUN_00af0be0. Updates all existing child items with the new textures.
0x00A6D870522UIListBox__load_button_textures_b_00a6d870Loads button state textures (variant B). Same as 00a6d660.
0x00A6DA80115UIListBoxA__on_resize_00a6da80Handles resize for UIListBoxA. Calls FUN_00a82eb0 to resize base, rebuilds child items, updates scrollbar range and position, marks dirty.
0x00A6DB00115UIListBoxB__on_resize_00a6db00Handles resize for UIListBoxB. Same as UIListBoxA__on_resize but rebuilds B-type items.
0x00A6DB80498UIListBoxA__update_visible_items_00a6db80Updates visible items after scroll. Calculates first visible index from scroll position, rotates the child item array to reuse widgets, then iterates visible items: sets data index, calls update callback, applies selection state, positions item, shows it. Hides items past the visible range.
0x00A6DD80498UIListBoxB__update_visible_items_00a6dd80Updates visible items after scroll for UIListBoxB. Same logic as UIListBoxA variant.
0x00A6DF80218UIListBoxA__on_item_clicked_00a6df80Handles click on a list item. Deselects all other items, selects clicked one. Uses RTDynamicCast to get extended item info, stores selected index, and calls selection callback at offset 0x10C with the linked list data for the selected entry.
0x00A6E060218UIListBoxB__on_item_clicked_00a6e060Handles click on a list item for UIListBoxB. Same as UIListBoxA variant but different dynamic cast target.
0x00A6E140216UIListBox__set_texture_names_00a6e140Sets texture names for the list box button states. Stores 4 string params (normal, hover, pressed, disabled) into map indices 0-2 plus the direct path. Calls virtual method to load textures and redraw.
0x00A6E220216UIListBox__set_texture_names_00a6e220Sets texture names for the list box (variant B). Same as 00a6e140.
0x00A6EA1020UIListBoxA__delegate_update_visible_itemsDelegate wrapper: dereferences param_1 to get 'this' pointer, calls UIListBoxA__update_visible_items_00a6db80.
0x00A6EA3020UIListBoxB__delegate_update_visible_itemsDelegate wrapper: dereferences param_1 to get 'this' pointer, calls UIListBoxB__update_visible_items_00a6dd80.
0x00A78E90103UICallback__ctor_00a78e90UI callback object constructor. Stores callback function pointer and context data. Sets vtable to PTR_FUN_01156a84, stores self-reference at offset 36.
0x00A78F00103UICallback__ctor_00a78f00UI callback object constructor variant. Sets vtable to PTR_FUN_01156aa0, stores callback and context similarly to 00a78e90.
0x00A78F70103UICallback__ctor_00a78f70UI callback object constructor variant. Sets vtable to PTR_FUN_01156abc, stores callback and context.
0x00A78FE0103UICallback__ctor_00a78fe0UI callback object constructor variant. Sets vtable to PTR_FUN_01156ad8, stores callback and context.
0x00A86A8032UICallback__copy_from_sourceUICallback copy constructor. Sets vtable to PTR_FUN_01156a84, copies callback data from source at offsets 4-12.
0x00A86AA032UICallback__copy_from_source_00a86aa0UICallback copy constructor variant. Sets vtable pointer, copies callback data from source at offsets 4-12.
0x00A86AC032UICallback__copy_from_source_00a86ac0UICallback copy constructor variant. Sets vtable pointer, copies callback data from source at offsets 4-12.
0x00A86AE032UICallback__copy_from_source_00a86ae0UICallback copy constructor variant. Sets vtable pointer, copies callback data from source at offsets 4-12.
0x00A86B0068UICallback__conditional_free_16UICallback conditional destructor. Frees 16-byte object if param_2 bit 0 is set.
0x00A86B5068UICallback__conditional_free_16_00a86b50UICallback conditional destructor variant. Frees 16-byte object if param_2 bit 0 is set.
0x00A86BA068UICallback__conditional_free_16_00a86ba0UICallback conditional destructor variant. Frees 16-byte object if param_2 bit 0 is set.
0x00A86BF068UICallback__conditional_free_16_00a86bf0UICallback conditional destructor variant. Frees 16-byte object if param_2 bit 0 is set.
0x00A86C8074UICallback__move_to_left_of_targetUICallback that moves an effect to the left of a target. Calculates position by accumulating parent offsets, subtracting effect width, and setting via virtual move at vtable+0x10.
0x00A86CD062UICallback__move_to_right_of_targetUICallback that moves an effect to the right of a target. Calculates position from target's right edge + parent offsets, calls virtual move.
0x00A86DD032UICallback__copy_ctor_move_to_leftCopy constructor for UICallback that positions to the left. Sets vtable to move_to_left_of_target vtable, copies callback data from source.
0x00A86DF032UICallback__copy_ctor_move_to_rightCopy constructor for UICallback that positions to the right. Sets vtable to move_to_right_of_target vtable, copies callback data from source.
0x00A86E1032UICallback__copy_ctor_move_left_ofCopy constructor for UICallback that positions left-of. Sets vtable to move_left_of vtable, copies callback data from source.
0x00A86E3032UICallback__copy_ctor_move_right_ofCopy constructor for UICallback that positions right-of. Sets vtable to move_right_of vtable, copies callback data from source.