Back to legacygamers.net
WARPGATE

Game Core

CGameMode, CGameObject, CInputMgr, CStoveSDK, initialization, settings, hotkeys, timers, crash handling, services, utilities

Functions 1,916 to 3,427 of 8,042Code 2.5 MBAddresses 0x007C64D0 to 0x008EE7F0Group Game Logic
1,512 functions
AddressSizeNameDescription
0x007C64D09SearchShopGridWnd__virtual_init_callDispatches to virtual method +0x3C (create items callback)
0x007C64E049SearchShopGridWnd__find_item_by_idSearches linked list for item with matching ID at +0xA8; returns item pointer or 0
0x007C6AA013SearchShopGridWnd__default_initDefault init: calls virtual +0xD8 with param 0
0x007C6AC0134SearchShopGridWnd__process_select_messageHandles item select (0xAB): notifies parent and highlights selected item in grid
0x007C6B5071SearchShopGridWnd__set_item_display_modeFinds item in vector by ID and calls virtual +0xD8 to set display mode
0x007C6BF0103RBTree__destroy_nodes_recursive_0x18Recursively destroys red-black tree nodes: traverses right subtree then frees 0x18-byte nodes
0x007C6C6075RBTree__lower_bound_char_keyFinds lower bound in red-black tree using char key comparison at node+0x10
0x007C6DC067RBTree__free_node_0x18Frees a 0x18-byte RB tree node if field +4 is non-null
0x007C6E10111RBTree__destroy_all_nodes_and_sentinelDestroys all RB tree nodes recursively then frees 0x18-byte sentinel
0x007C6E9078RBTree__free_sentinel_only_0x6e90Frees 0x18-byte sentinel node if field +4 is non-null; no child cleanup
0x007C6EE078RBTree__free_sentinel_only_0x6ee0Frees 0x18-byte sentinel node if field +4 is non-null; no child cleanup (variant)
0x007C6F3065RBTree__destroy_and_free_wrapperWrapper that calls RBTree destroy-all-nodes-and-sentinel
0x007C6F8071EmotionShopTabWnd__destructorDestructor: sets vtable PTR_FUN_0112487c then calls tab window base destructor
0x007C706099EmotionShopTabWnd__scalar_deleting_destructorScalar deleting destructor: calls tab window destructor then optionally frees 0x124-byte object
0x007C8E3025memset_zero_dwordsZeroes param_2 dwords (param_2*4 bytes) at param_1 using memset
0x007C8E70264EmotionItemCtrl__constructorConstructs emotion item control: inits base, sets vtable 01124C94, creates scroll observer, zeros item data
0x007C8F8072EmotionItemCtrl__observer_destructorDestructor for scroll observer: resets vtable chain
0x007C8FD0110EmotionItemCtrl__destructorDestructor: sets vtable, destroys observer, calls base control destructor
0x007C904097EmotionItemCtrl__observer_scalar_dtorScalar deleting destructor for observer: resets vtable then optionally frees 4-byte object
0x007C90B0134EmotionItemCtrl__scalar_deleting_dtorEmotionItemCtrl scalar deleting destructor. Sets vtable to 01124c94, destroys scroll observer at +0x25, calls base CEffect dtor, frees 0xA0 bytes if param_2 & 1.
0x007C9140121UIPartyMatchWnd__on_item_selectedHandles item selection in the party match window. Checks if the selected player ID matches the local player (DAT_013896c4+0xC) or passes a validity check (CFmt__func_0059c490). If valid, updates the detail view at DAT_01457848+0xBC and calls FUN_0093d270. Otherwise, invokes vtable method +4 on child widget at +0x94.
0x007C91C055UIPartyMatchWnd__request_player_infoRequests detailed info for the currently selected player in the party match window. Checks if +0x7C is set, then calls CFmt__func_00592420 to get player ID from +0x9C and CFmt__func_00599d00 to send the request.
0x007C9200139UIPartyMatchWnd__set_data_sourceSets the data source for the party match window. Stores param_2 at +0x7C, resets selection indices at +0x98 and +0x9C to 0, updates the party member display via FUN_007c92b0(0), refreshes child controls at +0x8C and +0x90 via vtable +0xD4, conditionally hiding the scroll control based on data count.
0x007C92901stub_nop_007c9290Single-byte stub function (size=1)
0x007C92B0345UIPartyMatchWnd__update_member_slotsUpdates the 3 party member display slots (at offsets +0x80, +0x84, +0x88). For each slot that exists, looks up the player character ID via CFmt__func_00592420, checks if it's the local player or a friend (CFmt__func_0059c490), then calls FUN_007cbb30 to update the slot display. If no data source is set (+0x7C == 0), passes -1 as the ID. Refreshes the control via vtable +0x98.
0x007C9410139UIPartyMatchWnd__update_single_slotUpdates a single party member slot in the match window. Gets the character ID via CFmt__func_00592420, checks if it's the local player or friend, then calls FUN_007cbb30 to refresh the slot display with appropriate coloring/state. If no data source (+0x7C == 0), uses -1 as placeholders.
0x007C94A0561UIPartyMatchWnd__create_member_slotsCreates 3 party member slots (at +0x80 to +0x88) and 2 navigation buttons (at +0x8C and +0x90). Each slot is a 0x8C-byte widget (FUN_007cb9f0) positioned vertically with 0x31 pixel spacing. The left and right nav buttons are 0x120-byte image buttons (FUN_0084eab0) with 3 button state images each.
0x007C97901stub_nop_007c9790Single-byte stub function (size=1)
0x007C97C0210UIPartyMatchWnd__set_selection_indexSets the current selection index in the party match list. Updates navigation button visibility (prev at +0x23, next at +0x24) based on whether there are more items to scroll. Adjusts the scroll offset at +0x26 to keep the selection visible (3 items per page). Refreshes member slot display via UIPartyMatchWnd__update_member_slots.
0x007C98A074UIPartyMatchWnd__on_messageMessage handler for the party match window. Handles: msg 6 (navigation buttons - prev/next), msg 0x3C (refresh), msg 0xAE (player info request), msg 0xB0 (keyboard - Enter=request info, Left=scroll up, Right=scroll down). On Enter or player info, looks up the character and either shows detail panel or sends friend/whisper request.
0x007C9AF026UIPartyMatchWnd__hide_left_navHides/shows the left navigation button at +0x8C via vtable +0xD4 call.
0x007C9B1026UIPartyMatchWnd__hide_right_navHides/shows the right navigation button at +0x90 via vtable +0xD4 call.
0x007C9B40254build_party_search_filter_packetBuilds a party search filter packet with 5 filter parameters. Creates 5 pairs of (value, param_1) from the 5 input pointer params, then calls CFmt__func_00591270 with flag 0x11111 to send the packet. Used for filtering party match results.
0x007C9C40277UIPartyBookingWnd__ctorConstructor for the Party Booking window. Calls base class ctor FUN_00a79a90(0), sets vtable to PTR_FUN_01124efc. Initializes member variables: data pointers (+0x1F to +0x24), strings at +0x28/+0x2F/+0x35 (with SSO buffers of 0xF capacity), selection index at +0x2A to -1, and various flags to 0.
0x007C9D60152UIPartyBookingWnd__dtorDestructor for the Party Booking window. Sets vtable, saves current state (+0x20 = +0x1F), destroys 3 internal strings, clears a vector of pointers, then calls base class dtor FUN_00a79e90.
0x007C9E00176UIPartyBookingWnd__scalar_dtorScalar deleting destructor for the Party Booking window. Calls UIPartyBookingWnd__dtor logic, then conditionally frees 0xE0 bytes if param_2 & 1.
0x007C9EB0294UIPartyBookingWnd__apply_search_filtersApplies search filters in the Party Booking window. Reads filter values (FUN_00ae8310/8300/82f0/8320/83b0), builds a party search filter packet with the window's string at +0xAC and selection at +0xBC, then updates the display via FUN_00868880. Calls FUN_00ae8180/ae81a0 as pre/post processing.
0x007C9FE0274UIPartyBookingWnd__refresh_searchRefreshes the party search with current filter values. Similar to apply_search_filters but requires param_2 != 0 and doesn't call the pre/post processing functions. Builds and sends the filter packet, then updates the display.
0x007CA100438format_purchase_price_stringFormats a purchase price value into a display string. Calls CFmt__func_0059a110 to get the price. If price == 0, uses "EMSG_PURCHASE_FREE_PRICE" string. If price > 0, formats with "EMSG_PURCHASE_PRICE" template via CFmt__func_00591270. If price < 0 and no format string available, falls back to raw integer-to-string conversion.
0x007CA2C0653ItemShopGridWnd__populate_itemsPopulates item shop grid with item widgets. Iterates category item IDs, looks up item data in hash table, creates CItemSlotWidget for each valid item, arranges in 5-column grid layout. Returns 0x9F.
0x007CA550306UIPartyBookingWnd__create_header_controlsCreates header controls for the Party Booking window. Creates two text label widgets (0xD8 alloc, FUN_00850550): one at +0x88 positioned at (0x21, 0xE) with alignment=1, and one at +0x8C positioned at (0xA, 0x2A) with color 0xD60x180x10 and font size 0xB.
0x007CA690195UIPartyBookingWnd__draw_backgroundDraws the background images for the Party Booking window. Renders up to 3 images: main background from +0x90 string (stretched to window size), a smaller image from +0xC4 string at position (0xAB, 0xC), and a conditional overlay from a fixed DAT path if +0xDC flag is set.
0x007CA7C023ItemShopGridWnd__notify_parent_repaintNotifies parent window to repaint by calling parent's vtable +0x8C method (invalidate/redraw). Called when grid content changes.
0x007CA7E0136ItemShopGridWnd__on_command_timer_and_scrollMessage handler for ItemShopGridWnd. Handles msg 0x3C (timer tick, refreshes display and forwards to parent), msg 0xAE (item selection, forwards to parent). Other messages delegated to base class.
0x007CA870126ItemShopGridWnd__set_texture_by_typeSets background texture path based on shop type. Type 1 loads path from message table entry at 01125010, type 2 from 0112503c. Other types clear the string to empty.
0x007CA8F0108ItemShopGridWnd__set_title_textSets title text for ItemShopGridWnd. If param is null, clears string at +0xAC and resets +0xBC to 0. Otherwise assigns the string. Refreshes text display via child control at +0x8C.
0x007CA9C01stub_nop_007ca9c0Single-byte stub function (size=1)
0x007CA9D0197ItemShopGridWnd__vector_reallocate_alignedReallocates the item widget pointer vector with aligned allocation. Copies existing data, frees old buffer (with aligned-delete for >0xFFF byte allocations), updates begin/end/capacity pointers.
0x007CAAC0240ItemShopGridWnd__ctorConstructor for ItemShopGridWnd. Calls base UIPartyBookingWnd ctor, sets vtable to 0112509c. Creates a 0xC-byte timer object at +0x38 and a 4-byte observer at +0x39. Loads default texture path from message table.
0x007CABB0136ItemShopGridWnd__dtorDestructor for ItemShopGridWnd. Sets vtable, destroys timer object at +0x38 and observer at +0x39, then calls base UIPartyBookingWnd destructor.
0x007CAC40160ItemShopGridWnd__scalar_deleting_dtorScalar deleting destructor for ItemShopGridWnd. Destroys timer and observer objects, calls base UIPartyBookingWnd dtor, frees 0xE8 bytes if param_2 & 1.
0x007CACE0400ItemShopGridWnd__update_timer_displayUpdates the countdown timer display for item shop. Gets elapsed server time, calculates remaining time. If less than 61 seconds, shows "last time" message. Otherwise formats days/hours/minutes string using EMSG format template. Triggers 0x3C timer refresh event.
0x007CAE7042ItemShopGridWnd__forward_selection_to_parentForwards item selection to parent. If param_2 is non-null and the grid has valid data (+0x23 and +0x2F non-zero), calls vtable +0xDC with the selected item ID.
0x007CAEA09thunk_to_ItemShopGridWnd__populate_itemsSimple thunk that jumps to ItemShopGridWnd__populate_items (007ca2c0).
0x007CAEC0147UIPartyBookingWnd__on_messageMessage handler for the Party Booking window. Handles: msg 0x3C (timer/refresh - redraws and forwards to parent at +4), msg 0xAE (calls handler at +0x39 vtable +4), msg 0xAF (calls handler at +0x38 vtable +4). All other messages delegate to FUN_00a83660 (base handler).
0x007CAF60505UIPartyBookingWnd__populate_member_gridPopulates the party member grid in the booking window. If +0x22 is set, updates the title text from param_2. Clears existing member widgets (calling FUN_00a82e50 to remove each), then creates new 0x8C-byte member slot widgets (FUN_007cb9f0) from the data pairs in param_3 vector. Arranges in a 5-column grid with 0x2F pixel spacing both horizontally and vertically. Returns the total height used.
0x007CB1A0146UIPartyBookingSearchWnd__ctorConstructor for the Party Booking Search window. Calls UIPartyBookingWnd__ctor as base, sets intermediate vtable to SaleShopGridWnd vtable, then final vtable to PTR_FUN_011251fc. Creates a callback object (0xC bytes) at +0x38 via CFmt__func_00591ca0.
0x007CB240123UIPartyBookingSearchWnd__dtorDestructor for the Party Booking Search window. Sets vtable, destroys callback at +0x38 (calling its first virtual method with 1), sets intermediate vtable, then calls UIPartyBookingWnd__dtor.
0x007CB2C0147UIPartyBookingSearchWnd__scalar_dtorScalar deleting destructor for the Party Booking Search window. Calls UIPartyBookingSearchWnd__dtor logic, then conditionally frees 0xE4 bytes if param_2 & 1.
0x007CB36049UIPartyBookingSearchWnd__on_message_v2Message handler for Party Booking Search window variant. Handles msg 0xAF (calls handler at +0xE0 vtable +4). All other messages delegate to ItemShopGridWnd__on_command_timer_and_scroll.
0x007CB3A0159UIPartyBookingObserverWnd__ctorConstructor for Party Booking Observer window. Calls UIPartyBookingWnd__ctor, sets intermediate vtable, then final vtable to PTR_FUN_011252e0. Creates a 4-byte observer object at +0x38 with EmotionItemCtrl observer vtable.
0x007CB440123UIPartyBookingObserverWnd__dtorDestructor for Party Booking Observer window. Sets vtable, destroys observer at +0x38, sets intermediate vtable, then calls UIPartyBookingWnd__dtor.
0x007CB4C0147UIPartyBookingObserverWnd__scalar_dtorScalar deleting destructor for Party Booking Observer window. Calls dtor logic and frees 0xE4 bytes if param_2 & 1.
0x007CB560120UIPartyBookingObserverWnd__on_messageMessage handler for the Party Booking Observer window. Handles: msg 0x3C (timer/refresh - redraws and forwards to parent), msg 0xAE (calls handler at +0x38 vtable +4). Other messages delegate to ItemShopGridWnd__on_command_timer_and_scroll.
0x007CB5E0193UIPartyBookingDetailWnd__ctorConstructor for Party Booking Detail window. Calls UIPartyBookingWnd__ctor as base, sets vtable to PTR_FUN_011253c4. Initializes a flag at +0x38 to 0, a string at +0x39 (with initial content from FUN_00b01200 lookup of DAT_011254d4), and redraws via vtable +0x98.
0x007CB6B095UIPartyBookingDetailWnd__dtorDestructor for Party Booking Detail window. Sets vtable, destroys the internal string, then calls UIPartyBookingWnd__dtor.
0x007CB710119UIPartyBookingDetailWnd__scalar_deleting_dtorScalar deleting destructor for UIPartyBookingDetailWnd. Sets vtable, destroys internal string at +0x39, calls UIPartyBookingWnd__dtor, then frees 0xFC bytes if param_2 & 1.
0x007CB790191UIPartyBookingDetailWnd__populate_and_set_priceUIPartyBookingDetailWnd method. Populates items via ItemShopGridWnd__populate_items, then formats the purchase price string and stores it at +0xE4 (an STL string member).
0x007CB85064UIPartyBookingDetailWnd__render_price_labelUIPartyBookingDetailWnd render method. Draws the base background, then if a price string exists at +0xE4, renders it right-aligned in gold color (0xE68C5A) at position (0xE9, 0x2A).
0x007CB8F0127UIPartyBookingDetailWnd__set_sold_out_stateUIPartyBookingDetailWnd method. Sets the sold-out state flag at +0x38. When sold out (param_2 != 0), loads the sold-out message string; otherwise loads the normal title. Updates internal string at +0x39 and redraws.
0x007CB97072ItemShopGridWnd__on_item_clickMessage handler for ItemShopGridWnd. On msg 0xAE (item click): if not disabled (+0xE0) and parent exists, forwards item data (+0xA8) to parent as msg 0xAB. Other messages delegate to base handler.
0x007CB9F0122CItemSlotWidget__ctorConstructor for CItemSlotWidget. Calls CEffect__ctor as base, sets vtable. Initializes item ID pair at +0x1F/+0x20 to 0, child widget pointer at +0x21 to null, and flag at +0x22 to 0.
0x007CBA7071CItemSlotWidget__dtorDestructor for CItemSlotWidget. Sets vtable and calls CEffect__dtor.
0x007CBAC099CItemSlotWidget__scalar_deleting_dtorScalar deleting destructor for CItemSlotWidget. Calls CEffect__dtor, then frees 0x8C bytes if param_2 & 1.
0x007CBB30313CItemSlotWidget__set_itemSets item data for a slot widget. Looks up item info by ID pair, loads sprite/action data, sets quantity limits (BC/C0). If param_4 is true, loads item name string. Updates visibility and refresh flags.
0x007CBC70177CItemSlotWidget__create_child_buttonCreates a child CUISmallWidget button (0x11C bytes) for the item slot. Sets it at +0x84, configures size, position (0,0), and button ID 0xBD, then adds to child list.
0x007CBD30108CItemSlotWidget__render_highlightRenders the item slot highlight. Calls parent notify, then if both flags at +0x88 and +0x89 are set, draws a colored 3D border around the widget using CColorPicker pixel (14,6).
0x007CBE5023CItemSlotWidget__on_refreshOn-refresh handler for CItemSlotWidget. If a parent widget exists at +0x10, calls its virtual method at vtable offset 0x8C.
0x007CBE70136CItemSlotWidget__on_commandHandles commands for an item slot widget. Processes item slot interactions like click, drag, and tooltip display.
0x007CBF0023CItemSlotWidget__refresh_child_buttonRefreshes the child button widget at +0x84 by calling CUIWidget__set_flag_and_refresh on it, if it exists.
0x007CBF20121CUIScrollPanel__ctorConstructor for CUIScrollPanel. Calls UISpriteWidget__ctor as base, sets vtable. Initializes: flag at +0x2D to 0, scroll IDs at +0x2B/+0x2C to 0x87, and style at +0x29 to 0xB.
0x007CBFA071CUIScrollPanel__dtorDestructor for CUIScrollPanel. Sets vtable and calls UIBaseWidgetA__dtor.
0x007CBFF099CUIScrollPanel__scalar_deleting_dtorScalar deleting destructor for CUIScrollPanel. Calls UIBaseWidgetA__dtor, then frees 0xB8 bytes if param_2 & 1.
0x007CC060548CUIScrollPanel__render_frameRenders scroll panel frame. Draws background fill, top/bottom border sprites based on enabled/disabled state and scroll direction mode (1=vertical, 4=horizontal). Draws scrollbar track with repeating middle segment.
0x007CC29032CUIScrollPanel__set_disabled_stateSets disabled state for CUIScrollPanel. Updates flag at +0x2D and triggers redraw if the value changed.
0x007CC2B0155ItemShopGridWnd__ctor_with_paramsConstructor for ItemShopGridWnd with parameters. Calls UIScrollPanel__ctor_009ac040 with params, sets vtable. Removes existing scrollbar entries at +0x23/+0x24, resets them to 0, sets style at +0x25 to 0xB.
0x007CC440376CUIScrollPanel__add_child_and_update_treeAdds a child widget to the scroll panel and updates the tree layout. Recalculates scroll bounds and positions child elements.
0x007CC5C09thunk_to_virtual_method_offset_0x3c_007cc5c0Calls virtual method at offset 0x3c from vtable
0x007CC5D065CUIScrollPanel__reset_scrollbar_refsResets scrollbar references for CUIScrollPanel. Removes entries at +0x8C and +0x90, nulls them out, and resets style at +0x94 to 0xB.
0x007CC62052CUIScrollPanel__update_scrollbar_visibilityUpdates scrollbar visibility for CUIScrollPanel. Recalculates layout, then if scrollbar at +0x90 exists, shows it and sets disabled state based on flag at +0xA5.
0x007CC87096CUISmallWidget__ctor_with_parentConstructor for a small UI widget with parent. Calls UISmallWidget__constructor with parent param, sets vtable to 011258FC, initializes flag at +0x46 to 0.
0x007CC8D071CUIWidget__dtor_base_007cc8d0Destructor base for a UI widget class. Sets vtable to PTR_FUN_011258fc and calls cleanup at 0x851c10.
0x007CC92099CUIWidget__scalar_deleting_dtor_007cc920Scalar deleting destructor for UI widget (vtable PTR_FUN_011258fc). Calls base dtor then optionally frees 0x11c bytes.
0x007CC9C0971CUIWidget__render_sprite_framesRenders sprite animation frames for a UI widget. Iterates through frame list, calculates source/dest rectangles with clipping, and calls the render surface's blit function. Handles animation frame advancement and looping.
0x007CCD90119CUIWidget__draw_title_and_dispatchDraws title text with offset (-20) if title flag is set, then dispatches to virtual function 0x6c for rendering if not hidden.
0x007CCE1032CUIWidget__set_flag_and_refreshSets a boolean flag at offset 0x118 and triggers a refresh via virtual function 0x98 if the value changed.
0x007CD560131CHashTable__destroy_all_entriesDestroys all entries in a hash table by walking the linked list, destroying two strings per 0x100-byte entry, then freeing each entry.
0x007CD5F0351CCashShopWnd__ctorConstructor for CCashShopWnd. Initializes vtable (PTR_FUN_01125d38), allocates hash table (0x100 bytes) and map sentinel node (0x18 bytes). Sets default values: tab count=9, columns=3. Initializes all widget pointers to null.
0x007CD750173CCashShopTabWidget__ctorConstructor for CCashShopTabWidget. Initializes vtable (PTR_FUN_011259d8), clears widget fields, records current timeGetTime() timestamp.
0x007CD800181CCashShopItemWidget__ctorConstructor for CCashShopItemWidget. Initializes vtable (PTR_FUN_01125b88), clears widget fields, sets display mode=6.
0x007CD8C097CCashShopItemInfoWidget__ctorConstructor for CCashShopItemInfoWidget. Initializes vtable (PTR_FUN_01125ab0), calls CItemInfoMgr cleanup.
0x007CD930125CCashShopSlotWidget__ctorConstructor for CCashShopSlotWidget. Initializes vtable (PTR_FUN_01125c60), clears info field, calls CItemInfoMgr cleanup. Sets flag at 0x178=0 and 0x17c=0.
0x007CDB2076CHashTable__dtorHash table destructor. Calls CHashTable__destroy_all_entries then frees the 0x100-byte bucket array.
0x007CDE30154CCashShopWnd__dtorCCashShopWnd destructor. Sets vtable, deallocates vectors, clears map nodes, destroys hash table entries, and calls base class destructor.
0x007CDED0107CCashShopTabWidget__dtorCCashShopTabWidget destructor. Sets vtable (PTR_FUN_011259d8), deallocates vector and destroys 0x30-element vector, calls base dtor.
0x007CDF40107CCashShopItemWidget__dtorCCashShopItemWidget destructor. Sets vtable (PTR_FUN_01125b88), calls stub cleanup and vector deallocation, then base dtor.
0x007CDFB0121CCashShopItemInfoWidget__dtorCCashShopItemInfoWidget destructor. Sets vtable (PTR_FUN_01125ab0), destroys two STL strings, calls base dtor.
0x007CE030121CCashShopSlotWidget__dtorCCashShopSlotWidget destructor. Sets vtable (PTR_FUN_01125c60), destroys two STL strings, calls base dtor.
0x007CE210178CCashShopWnd__scalar_deleting_dtorCCashShopWnd scalar deleting destructor. Calls full destructor then optionally frees 0x108 bytes.
0x007CE2D0131CCashShopTabWidget__scalar_deleting_dtorCCashShopTabWidget scalar deleting destructor. Calls full destructor then optionally frees 0x9c bytes.
0x007CE360131CCashShopItemWidget__scalar_deleting_dtorCCashShopItemWidget scalar deleting destructor. Calls full destructor then optionally frees 0xa0 bytes.
0x007CE3F0145CCashShopItemInfoWidget__scalar_deleting_dtorCCashShopItemInfoWidget scalar deleting destructor. Calls full destructor then optionally frees 0x178 bytes.
0x007CE490145CCashShopSlotWidget__scalar_deleting_dtorCCashShopSlotWidget scalar deleting destructor. Calls full destructor then optionally frees 0x180 bytes.
0x007CE53062CUIWidget__update_scroll_and_refreshUpdates scroll position by calling stub_005dea30, then sends notification message (type=7) and triggers refresh via vfunc 0x98.
0x007CE570177CCashShopWnd__on_mouse_eventCash shop window mouse event handler. Checks if job ID is 0x271b (special job), if so delegates to base handler. Otherwise checks mouse state and sends UI notifications for item selection/purchase.
0x007CE630139CCashShopWnd__on_mouse_event_altCash shop window alternative mouse handler. Similar to 007ce570 but for different mouse action (state==6 triggers purchase mode 0xf with notification 0x13).
0x007CE6C020CUIWidget__call_child_vfunc_0x28Calls virtual function 0x28 on the child widget at offset 0x10 if it exists.
0x007CE6E020CUIWidget__call_child_vfunc_0x28_altCalls virtual function 0x28 on the child widget at offset 0x10 if it exists. Duplicate of 007ce6c0.
0x007CE7404112CCashShopWnd__create_ui_widgetsCreates all UI widgets for the cash shop window. Creates tab widgets for 11 categories (skipping indices 8,10), category buttons with sprite resources, search/filter input fields, item info panels, slot grid (rows*columns), scroll bar widget, and navigation buttons.
0x007CF760959CCashShopWnd__create_scrollbar_and_slotsCreates scrollbar (up/down/bar sprites from cashshop_shop_scroll_*.bmp) and item slot widgets for the cash shop. Creates sprite widget for scrollbar, then allocates CCashShopItemInfoWidget slots based on config count.
0x007CFB20505CCashShopWnd__create_tab_buttonsCreates three tab button widgets for the cash shop using UIButtonWidget. Each tab has normal/hover/pressed sprite states and unique button IDs (0xd3, 0x117, 0x118).
0x007CFD20500CCashShopSlotWidget__create_ui_elementsCreates UI elements for a cash shop slot widget: a text button with item name (ID 0x6f3) and an item slot widget for item icon display.
0x007CFF201475CCashShopWnd__render_info_panelRenders the cash shop info panel. Draws background sprite, item name, price info, category labels. Handles Stove shop vs normal mode with XOR-encrypted label strings. Displays current cash/point balance.
0x007D04F0255CCashShopWnd__load_selected_item_spriteLoads sprite for the currently selected item. Constructs resource path from selected item data (at offset 0x94*0x30 in item list), loads and displays sprite.
0x007D05F0188CCashShopWnd__update_item_slotsUpdates all visible item slots in the cash shop. Loads background sprite, then iterates through visible slots, updating each with item data from the item array at offset 0x88. Hides slots that exceed the item count.
0x007D06B0495CCashShopItemWidget__renderRenders a single cash shop item widget. Draws item name, loads item sprite via resource ID, renders item count and price text.
0x007D08A01908CCashShopSlotWidget__renderRenders a cash shop slot widget. Two modes based on flag 0x178: mode 1 shows item name/price/sprite with sale dates (start/end timestamps at 0xfc/0x100); mode 0 shows compact item display with name, sprite and price. Formats dates using localtime.
0x007D104050CCashShopSlotWidget__show_item_tooltipShows item tooltip for the currently selected cash shop slot. Calls tooltip display (type 4) with item data from offset 0x80.
0x007D108046CCashShopSlotWidget__show_item_tooltip_altShows alternative item tooltip (type 6, quantity 1) for cash shop slot if item data exists at offset 0x84.
0x007D10B0164CCashShopWnd__open_url_from_itemOpens a URL from the selected item's string data at offset 0x18 within the item entry. Uses ShellExecuteA with "open" verb.
0x007D1160101CCashShopItemWidget__show_tooltip_on_hoverShows tooltip when mouse hovers within item widget bounds (x: 0x30-0xa0, y: 0x0c-0x17). Displays item name string with offset (-20).
0x007D11D088CCashShopItemWidget__show_tooltip_on_hover_altShows tooltip when mouse y position < 0x18. Displays item name string with offset (-20).
0x007D1240634CCashShopWnd__update_search_textUpdates search/filter text in the cash shop. Gets current text, compares with default placeholder text (ID 0xce6). If empty, resets text color to gray. Updates tab scrollbar visibility.
0x007D14C0113CCashShopTabWidget__auto_scroll_timerAuto-scroll timer for tab widget. After 5 second timeout, auto-scrolls to next item in the list and sends notification (type 6, ID 0xd7).
0x007D154065CCashShopItemWidget__on_right_clickRight-click handler for item widget. If click x is within bounds (4-0x29), opens item context menu (type 0xc, notification 0x18).
0x007D159076CCashShopItemWidget__on_right_click_areaRight-click area handler for item widget. If click is within bounds (x: 5-0x50, y: 0x17-0x7b), opens context menu (type 0xc, notification 0x18).
0x007D15E051CCashShopTabWidget__on_mouse_wheelMouse wheel handler for tab widget. Scrolls up (+1) or down (-1) based on wheel delta direction, sending notification type 7.
0x007D162023CUIWidget__call_child_vfunc_0x8cCalls virtual function 0x8c on child widget at offset 0x10 if it exists.
0x007D1640350CCashShopTabWidget__populate_item_listPopulates the item list in the tab widget. Creates UIMultiStringWidget entries for each item in the data range [0x1f, 0x20), positions them vertically, and highlights the selected item at index 0x25.
0x007D17A0139CCashShopWnd__process_notificationMain notification processor for the cash shop window. Handles category switching (0xd7), purchase (0xe0), URL open (0x11c), page navigation (0x13c/0x13d), search (0x141), cart operations (0x182-0x184), banner setup (0x22), item add to cart (0x26), window open/close (0x78/0x7a). Reads NeoCash registry key for category persistence. Supports both normal and Stove shop modes.
0x007D2C00170CCashShopTabWidget__on_child_notificationChild notification handler for tab widget. On category change (type 6, ID 0xd7), highlights the selected child widget and resets auto-scroll timer via timeGetTime().
0x007D2CB0163CCashShopItemWidget__process_notificationNotification processor for cash shop item list widget (cart). Handles scrolling (type 7/9/10), item add/remove (type 0x1f with quantity), item delete (type 0x68). Manages item quantities with max 100 limit, updates total price via notification 0x9b. Supports Stove shop confirmation dialog with XOR-encrypted strings.
0x007D3430272UIInputAmountWnd__OnMessageMessage handler for input amount window. Handles button clicks (msg 6): confirm (0xD3) parses amount string via atoi, up/down arrows (0x117/0x118) adjust value. Also handles item desc copy (msg 0x17).
0x007D3540628UICharRenameWnd__OnMessageMessage handler for character rename window. Handles button click (msg 6, 0xE0) and item desc (msg 0x17). On msg 0x17, updates char slot display and handles rename confirmation vs regular mode.
0x007D37C0364UICharSelectWnd__update_slot_displayUpdates the visual display of character slots on the current page. Iterates through slot UI elements, hides them initially, then positions and populates each with character data from the linked list. Handles grid layout with different row heights depending on mode (0x33==9). Calls virtual method 0x94 to set slot content and 0x98 to refresh.
0x007D3B7032CShopItemList__clearClears a shop item linked list. Calls destroy helper, resets sentinel node links and size to 0.
0x007D3B9024CShopItemList__erase_to_endErases shop items from begin to end of list, then resets the end pointer to begin. Effectively clears a subrange by destroying the item entries and unlinking nodes.
0x007D3C70173CShopItemList__push_backPushes a new CShopItem to the back of the linked list. Allocates 0x100 byte node, copy-constructs the item data, links into doubly-linked list. Throws length_error if list is at max capacity (0xFFFFFF).
0x007D4190902UICharSelectWnd__constructorUICharSelectWnd constructor. Initializes base class, vtable, slot arrays, page counters. Allocates CCharSlotEntry array (0x15C bytes each) via eh_vector_constructor. Sets up visibility flags, column/row layout, retrieves slot counts from server. Calls timeGetTime for animation timing.
0x007D4520245CCharSlotEntry__constructorCCharSlotEntry constructor. Initializes 5 STL string pairs (offsets 0x8 and 0x80) for character name fields. Zeroes out status/ID/string fields at 0xF8, 0x118, 0x130.
0x007D4840192CCharSlotEntry__scalar_dtorCCharSlotEntry scalar destructor. Sets vtable, destroys report tree, destroys two strings, then destroys map tree and frees sentinel node.
0x007D4900244UICharSelectWnd__destructorUICharSelectWnd destructor. Resets vtable, destroys CCharSlotEntry array via eh_vector_destructor, frees slot data buffer and visibility/flags buffers. Deallocates three internal vectors, destroys report tree, and calls base destructor.
0x007D4A00155CCharSlotEntry__destructorCCharSlotEntry destructor. Destroys 3 STL strings and 2 arrays of 5 STL strings each (at offsets 0x80 and 0x8).
0x007D4AA0163CCharSlotEntry__vector_deleting_dtorVector deleting destructor for CCharSlotEntry. Destroys and frees array or single object.
0x007D4B5038CCharSlotEntry__scalar_dtor_smallScalar deleting destructor for CCharSlotEntry.
0x007D4B80268UICharSelectWnd__scalar_deleting_dtorScalar deleting destructor for UICharSelectWnd. Cleans up character selection UI resources.
0x007D4C90171UICharSelectWnd__update_pincode_buttonUpdates the pincode/2nd password button visibility for the selected character slot. Queries char data for selected slot (DAT_017304da), checks if pincode (field 0x9e) exists, and shows/hides the confirmation button accordingly. Calls refresh (virtual 0x98).
0x007D4D40227UICharSelectWnd__create_sprite_for_slotCreates a character sprite preview for a specific slot. Gets character data and appearance info (job, head, body, etc.), builds a SpriteLayerNode with all visual parameters, then calls render function. Destroys the temporary entry afterward.
0x007D4E30145UICharSelectWnd__update_slot_selectionUpdates the slot selection state. Given a slot index, calculates page position, shows the slot UI element, checks visibility flags and deletion marks. If slot is selectable, enables visual selection highlight (sets field 0x2b=1) and refreshes.
0x007D4ED0297UICharSelectWnd__update_slot_deletion_markUpdates the deletion time marker for a character slot. If char has a pending delete reservation (field 0x9e > 0), opens the delete timer resource and sets countdown icon dimensions (0x10 x 0x10). Otherwise clears the marker. Returns 1 on success, 0 if slot out of range.
0x007D5010190UICharSelectWnd__draw_slot_type_labelsDraws "Premium" or "Billing" service type labels on character slots. Checks slot index against Premium/Billing slot ranges (DAT_01737ff8/01737ffc/01738000) and renders the appropriate label text plus a "Service" subtitle.
0x007D50D091UICharSelectWnd__set_char_nameSets the character name string for display. Copies source string into the field at offset 0xA8 of the object.
0x007D513066UICharSelectWnd__handle_page_button_clickHandles page navigation button clicks. Message 0x1A0 = previous page button, 0x1A1 = next page button. Dispatches to respective button show/hide virtual calls (0xD4).
0x007D5180201UICharSelectWnd__load_slot_from_registryLoads the last selected character slot from Windows Registry. Reads CURSLOT value from HKEY_LOCAL_MACHINE, divides by slots_per_page to get page index and slot offset. Validates page index against max pages. Sets fields 0x11C (current page) and 0x120 (selected slot on page).
0x007D525084UICharSelectWnd__has_pending_actionsChecks if there are pending actions in the action queue (deque). Returns 1 if the last entry in the deque is non-null, 0 otherwise. Used to prevent user input during pending operations.
0x007D52B08317UICharSelectWnd__OnCreateUICharSelectWnd::OnCreate - Main initialization for the character select screen. Too large to decompile (>5000 bytes). Sets up UI elements, slot grid, buttons, character sprites.
0x007D73301035UICharSelectWnd__refresh_all_slotsRefreshes all character slots on the current page. Sets background color, iterates slots_per_page times. For each slot: queries character data from session, draws Premium/Billing labels, creates sprite preview if character exists and slot is visible, updates slot selection state and deletion markers. Also updates pincode button state for selected char.
0x007D77D0207UICharSelectWnd__OnMessageUICharSelectWnd message handler. Handles: 0xB8=enter game (with blocked char check, anticheat sweep), 0xB9=back to login (with hotkey save), 0xCB=slot click, 0xCC=slot select (with move/delete checks), 0xD3=make character, 0x11C/0x11E=error display, 0x13C=page prev, 0x13D=page next, 0x15F/0x160=char info popup, 0x197=rename char, 0x198=move slot, 0x1A0-1A2=page buttons, 0x1B0-1B4=slot operations. Also handles keyboard nav (0x12-0x15 arrow keys).
0x007D909066UICharSelectWnd__handle_page_button_click2Handles page button click messages (duplicate handler). 0x1A0 = show previous page button, 0x1A1 = show next page button. Dispatches to button visibility virtual call (0xD4).
0x007D90E0373UICharSelectWnd__update_button_statesUpdates button visibility states based on selected slot. Checks if selected slot has a character, and whether it has a deletion reservation. Shows/hides the enter button (0xC0), pincode button (0x100), and delete confirm button (0xC4) accordingly. Queries pincode service state for unlock decisions.
0x007D93101179UICharSelectWnd__update_char_info_displayUpdates the character info display panel for the selected slot. Shows character portrait, job name, base/job levels, STR/AGI/VIT/INT/DEX/LUK stats, and map name. Updates slot availability visual indicator (available vs locked). Calls update_button_states at the end.
0x007D97B0118UICharSelectWnd__save_slot_to_registrySaves the currently selected character slot index to Windows Registry. Writes CURSLOT value (page * slots_per_page + offset) to HKEY_LOCAL_MACHINE under the RO client registry path.
0x007D996084UICharSlotWnd__ctorUICharSlotWnd constructor. Calls base dialog window constructor, then sets vtable to UICharSlotWnd vtable. Object size is 0x120 bytes.
0x007D99C0131UICharSlotWnd2__ctorUICharSlotWnd2 constructor. Takes two parameters (slot index and sex). Calls base dialog constructor, sets vtable to UICharSlotWnd2 vtable. Stores params at +0x48 (slot index) and +0x49 (sex). Zeroes +0x4A, +0x4B, +0x4C. Object size is 0x134 bytes.
0x007D9A501498UICharMakeWnd__init_appearanceUICharMakeWnd appearance initialization. Sets vtable. Constructs 5+5 STL string arrays for sprite resource paths (head palette, body palette, weapon, body, shield, IMF). Reads server appearance config (hair colors, cloth colors, head styles, sex). Sets default stat multipliers (100), slot index from DAT_017304da. Builds initial sprite resource paths for job 0 / default sex. Initializes animation timing (timeGetTime) and movement state fields. Object size 0x36C.
0x007DA03071UICharSlotWnd__dtorUICharSlotWnd destructor. Resets vtable, calls base dialog destructor.
0x007DA08071UICharSlotWnd2__dtorUICharSlotWnd2 destructor. Resets vtable, calls base dialog destructor.
0x007DA0D095UICharMakeWnd__dtorUICharMakeWnd destructor. Sets vtable, destroys char slot entry arrays, calls base window destructor.
0x007DA13099UICharSlotWnd__scalar_deleting_dtorScalar deleting destructor for UICharSlotWnd. 0x120 bytes. Calls base UI window destructor.
0x007DA1A099UICharSlotWnd2__scalar_deleting_dtorScalar deleting destructor for UICharSlotWnd2. 0x134 bytes. Calls base UI window destructor.
0x007DA210119UICharMakeWnd__scalar_deleting_dtorUICharMakeWnd scalar deleting destructor. Object size 0x36C bytes. Destroys char slot entries and base window, optionally frees memory.
0x007DA290176UICharMakeWnd__CreateSlotPanelCreates the character slot panel widget (0x120 bytes) within UICharMakeWnd. Allocates UICharSlotWnd, sets size 0x24x0x25, adds as child, sends init message 0x28.
0x007DA3403304UICharMakeWnd__OnCreateUICharMakeWnd OnCreate - initializes character creation UI. Creates: back button (msg 0xB9), confirm button with name validation (msg 0xB8), cancel button (msg 0xB9), name text input field, job class scroll widget (msg 0xE3/0xE2 for arrows), 24 character slot preview widgets (4x6 grid, msg 0x20C), sex toggle buttons (msg 0x20D), 9 hair style buttons (msg 0x1EF), appearance label text. Sets default message ID to 0xB8.
0x007DB030718UICharMakeWnd__OnDrawUICharMakeWnd OnDraw handler - renders the character creation preview. Draws background sprite, server name label, and two sprite layers for character preview (body + accessory). Loads IMF, head, body, and accessory sprite resources. Uses sprite frame data and tile cache for rendering at calculated offsets.
0x007DB30020UICharMakeWnd__thunk_ShowThunk - delegates Show call to internal panel at +0x10, vtable offset 0x68.
0x007DB32020UICharMakeWnd__thunk_HideThunk - delegates Hide call to internal panel at +0x10, vtable offset 0x64.
0x007DB34020UICharMakeWnd__thunk_RefreshThunk - delegates Refresh call to internal panel at +0x10, vtable offset 0x7C.
0x007DB36020UICharMakeWnd__thunk_EnableThunk - delegates Enable call to internal panel at +0x10, vtable offset 0x70.
0x007DB38020UICharMakeWnd__thunk_DisableThunk - delegates Disable call to internal panel at +0x10, vtable offset 0x6C.
0x007DB3A020UICharMakeWnd__thunk_SetFocusThunk - delegates SetFocus call to internal panel at +0x10, vtable offset 0x74.
0x007DB3C020UICharMakeWnd__thunk_SetPositionThunk - delegates SetPosition call to internal panel at +0x10, vtable offset 0x78.
0x007DB400553UICharMakeWnd__OnMessage_slotUICharMakeWnd slot message handler for UICharSlotWnd2 child widgets. Handles message 0xD (selection state toggle - updates button textures for selected/deselected state), and message 0x28 (load sprite preview - builds job/sex-dependent bitmap path and loads textures into slot panel widget at +0x4B). Falls through to base handler for other messages.
0x007DB630828UICharMakeWnd__ProcessMessageUICharMakeWnd ProcessMessage - handles character creation UI interactions. Message 0: copy name from text input to char data. Message 6/0xB8: validate character name (min 4 chars, no banned strings, no gravity/GM markers, ASCII-only check, no control chars, no leading/trailing spaces, max 23 chars), then send create packet 0x2721 with appearance data. 0xB9: cancel and unregister window. 0xCC: job class tab selection (updates slot widgets). 0xD7/0x1EF: hair style picker. 0xE2/0xE3: appearance prev/next arrows. 0x20C: slot grid click (updates weapon/equip display). 0x20D: sex toggle (male/female).
0x007DBFD0762UICharMakeWnd__UpdateSpritePathsUICharMakeWnd UpdateSpritePaths - rebuilds all sprite resource paths for the character creation preview. Updates head palette, body palette, weapon sprite (type0 + type1), body sprite, shield sprite, and IMF resource paths from current job ID (+0x264), sex (+0x2BE), weapon ID (+0x266), shield ID (+0x278), and equip ID (+0x27A). Called when appearance changes (job selection, sex toggle, equipment).
0x007DC2D0104CCharSlotList__destroy_rangeDestroys a range of char slot entries (0x38 bytes each). Destroys two strings per entry.
0x007DC340588CCharSlotList__reserve_and_copyReserves memory and copies char slot entries. STL vector-like reserve+copy for 0x38-byte entries.
0x007DC5A0137CCharSlotList__move_rangeMoves a range of char slot entries from source to dest (0x38 byte stride). Copies entries and destroys remainder.
0x007DC630113CCharSlotEntry__copy_constructCopy constructor for CCharSlotEntry. Copies two std::strings and two additional fields at +0x30 and +0x34.
0x007DC6B0147UICharListWnd__ctorConstructor for UICharListWnd. Calls base class constructor with mode=0, sets vtable, initializes character list fields. Reads slot count from global config.
0x007DC750173UICharListWnd__OnCreateOnCreate handler for UICharListWnd. Initializes the character list UI widget.
0x007DC800200CCharSlotEntry__move_constructMove constructor for CCharSlotEntry (0x38 bytes). Moves two strings and copies two trailing fields.
0x007DC8F0174UICharSlotDetailWnd__destroy_contentDestroys internal content of UICharSlotDetailWnd.
0x007DC9B071UICharListWnd__dtorDestructor for UICharListWnd. Sets vtable, calls base class destructor.
0x007DCA00107UICharSlotDetailWnd__dtorDestructor for UICharSlotDetailWnd. Sets vtable, destroys sub-components, calls base destructor.
0x007DCA7086CCharSlotEntry__destroy_stringsDestroys the two std::strings in a CCharSlotEntry (name and description).
0x007DCAD099UICharListWnd__scalar_deleting_dtorScalar deleting destructor for UICharListWnd. 0xD0 bytes total size.
0x007DCB40131UICharSlotDetailWnd__scalar_deleting_dtorScalar deleting destructor for UICharSlotDetailWnd. Sets vtable to UICharSlotDetailWnd vtable, deallocates vector, destroys content, calls CEffect base dtor, optionally frees 0x9C bytes if param_2 & 1.
0x007DCBD0263UICharListWnd__AddCharSlotAdds a character slot entry to UICharListWnd. Constructs slot entry and appends to internal vector.
0x007DCCE0371UICharListWnd__OnDrawOnDraw handler for UICharListWnd. Renders the character list with slot entries.
0x007DCE60190UICharListWnd__HitTestSlotHit tests mouse position against character slots. Returns slot index if hit, -1 otherwise.
0x007DCF50899UICharListWnd__init_childrenInitializes UICharListWnd child widgets. Calculates remaining days from date at DAT_0138cf38+0xc. Creates a dialog widget (0x144 bytes) with button textures and message text (ID 0xBE5). Sets up 3 form text entries with color 0x313131. Creates a UICharSlotDetailWnd child (0x9C bytes) as the slot detail panel, positioned centered horizontally at y=0x55.
0x007DD2E01966UICharListWnd__OnDraw_contentDraws the content area of UICharListWnd. Loads background sprite, draws server name text centered at top. Draws date ranges (start/end dates from DAT_0138cf38 offsets 8 and 0xC). If countdown days > 0, draws countdown text. Draws status text at bottom. If selection is active (offset 0xB8 == 1), draws selection indicator sprite at the selected slot position. Finally iterates attendance reward items (1..N), drawing each item sprite with count label in a 5-column grid layout.
0x007DDA90280UICharListWnd__draw_slot_backgroundDraws the background sprite for the currently selected slot entry. If the slot vector is non-empty, loads the background image resource by concatenating a path prefix with the selected slot entry's string (at offset 0x94 * 0x38 in the vector). Draws the loaded sprite at position (0,0).
0x007DDBB050UICharListWnd__OnMouseOverMouse over handler for char list. Checks if hovered slot matches current selection, sets blink state to 2 and triggers redraw.
0x007DDBF054UICharListWnd__OnMouseClickMouse click handler for char list. Checks if clicked slot matches current, sends message (6, 0xB8) to parent with slot index.
0x007DDC30315UICharListWnd__on_slot_activateHandles activation of a character list slot. Gets the URL string from the selected slot entry (offset 0x18 of 0x38-byte entry). If URL is non-empty (string length != 0), opens it via ShellExecuteA with "open" verb. Otherwise looks up the window type from the slot entry (offset 0x30): if type is 0x13E, sends a special message (0x143), else creates a game window by type via CGameObject.
0x007DDD70371UICharListWnd__show_item_tooltipShows tooltip for an attendance reward item at the mouse position. Hit tests against grid slots; if valid item index, constructs a CItemDesc, looks up the item config by key (index+1), formats the item name string, and displays it via CToolTipMgr at the adjusted mouse position (accounting for parent offsets).
0x007DDF0067UICharListWnd__UpdateBlinkStateUpdates blink state for selected character slot. Toggles between 0 and 1 based on time (100ms intervals). Uses timeGetTime() for animation timing.
0x007DDF50104UICharListWnd__AutoScrollTimeoutAuto-scrolls the character list after 5000ms timeout. Advances to next slot and sends message (6, 0xD7) to parent.
0x007DDFC0250UICharListWnd__on_item_right_clickHandles right-click on an attendance reward item. Hit tests against grid slots; if valid, creates a detail info window (type 0xC) via CGameObject, constructs a CItemDesc from the item config, and sends the item data (message 0x18) to the newly created window for display.
0x007DE0C0386UIAttendanceWnd__create_list_itemsCreates multi-string widget items for the attendance window list. Iterates through 0x38-byte entries, allocates UIMultiStringWidget (0x124 bytes) for each, sets up button/text properties, marks current selected entry, and adds widgets to the child list vector.
0x007DE250524UIAttendanceWnd__OnMessage_handlerMessage handler for the attendance window. Handles message 6 (button clicks): 0xB8 opens attendance reward dialog, 0xC9 opens URL 0x148. Handles message 0x22 (data update): executes Lua "set_checkAttendance_banner", refreshes list items, resizes window based on item count, repositions child elements. Tracks current page and arrow button visibility.
0x007DE460170UIAttendanceWnd__OnChildNotifyChild notification handler for attendance window. On message 6 with param 0xD7 (list item click): iterates child widgets, sets selected state on clicked item and deselects others. Records selection index and timestamp (timeGetTime). Calls parent OnChildNotify.
0x007DE51022UIAttendanceWnd__show_reward_thunkThunk that forwards to FUN_007dc2d0 with reordered parameters (param_2, param_3, this). Used as a callback in the UIAttendanceWnd context.
0x007E09D0244CSkinManager__ctorConstructor for the skin manager. Sets vtable to PTR_FUN_01127ef8, initializes string field with SSO (small string optimization, buffer 0xF), zeroes out data fields (0x8-0x13). Copies default skin name from global DAT_01334680.
0x007E0AD0219CSkinManager__dtorDestructor for the skin manager. Sets vtable, checks for temporary skin directory (sprintf "%s/_tmpskin_"), deletes it if it exists (via FUN_00af45e0/_access), unregisters from managers, destroys string data.
0x007E0BB035CSkinManager__scalar_deleting_dtorScalar deleting destructor for skin manager. Calls destructor, optionally frees this (0x50 bytes) if param_2 & 1.
0x007E0BE092CSkinManager__cleanup_temp_skinCleans up temporary skin directory. Formats path as "%s/_tmpskin_" using base directory (DAT_0173ad78), checks if it exists via _access, and deletes it via FUN_00af45e0 if found.
0x007E0C40765CSkinManager__extract_skin_archiveExtracts a selected skin archive. Checks if skin is valid (not -1), has data, and hasn't been extracted yet. Builds path from skin name (element from 0x18-byte string vector at offset 0x20), creates directory structure via _mkdir if needed, and spawns "runzip.exe" to extract the skin archive. Marks skin as extracted in the status array at offset 0x38.
0x007E0F40118CSkinManager__get_color_from_spriteGets a color value from a sprite at a given coordinate. Loads a sprite resource (different path based on param_2 flag), samples pixel at (x*4+2, y*4+2), and returns the color in BGR format with channel swapping (R,G,B reordered). Returns 0 if sprite not found.
0x007E102049CStringTable__GetCurrentNameGets the current name string from the string table. Uses index at +0x1C, returns from array at +0x20 (0x18 byte stride). Returns global default if index is -1.
0x007E106049CStringTable__GetCurrentDescGets the current description string from the string table. Uses index at +0x1C, returns from array at +0x2C (0x18 byte stride). Returns global default if index is -1.
0x007E10A058CStringTable__GetDescByIndexGets description string by explicit index from array at +0x2C (0x18 byte stride). Returns global default if index is -1.
0x007E10E058CStringTable__GetNameByIndexGets name string by explicit index from array at +0x20 (0x18 byte stride). Returns global default if index is -1.
0x007E11204111CSkinSelector__scan_skin_directoryScans the skin directory (\\skin\\*) for available skins. Finds directories and .zip files, builds display name lists. For zip files, extracts preview path to tmpskin dir. Compares each skin name against currently selected skin to find the selected index. Populates skin name and zip-flag vectors.
0x007E21308CSkinSelector__has_valid_selectionReturns true if the skin selector has a valid selection (index at +0x1C is non-negative, i.e. not -1/0xFFFFFFFF). Used to gate skin operations that require a selection.
0x007E214040CSkinSelector__set_selected_indexSets the currently selected skin index. If the index changed, triggers a resource reload.
0x007E21A037CLinkedList__ctorConstructs a linked list with a self-referencing sentinel node (0xc bytes). Used for navigator window items.
0x007E22C067CLinkedList__free_sentinel_0xcFrees a linked list sentinel node (0xc bytes) if it was allocated.
0x007E231078CLinkedList__free_sentinel_0xc_altFrees a linked list sentinel node (0xc bytes) if allocated. Similar to 007e22c0.
0x007E2360103CLinkedList__clear_and_free_allClears all nodes from a linked list, then frees the sentinel node. Walks the linked list, freeing each 0xc-byte node.
0x007E2C9097SpriteLayer__search_dependency_treeSearches 4 dependency lists of a sprite layer node for a target, returns 1 if found
0x007E2D0026SpriteLayer__check_parent_idReturns true if this layer node's parent ID matches the given ID
0x007E2D2029SpriteLayer__check_grandparent_idReturns true if this layer node's grandparent ID matches the given ID
0x007E2D4062check_circular_range_overlapTests if two ranges overlap considering circular/wrapping boundaries
0x007E2D8044SpriteLayer__find_child_by_idSearches child list for a node with matching parent ID, returns true if found
0x007E2DB070SpriteLayer__is_ancestor_recursiveRecursively checks if target is an ancestor of this node via children list at offset 0x10
0x007E2E00106SpriteLayer__is_sibling_or_descendantChecks if target is a sibling child or descendant of this node's parent
0x007E2E70101SpriteLayer__is_child_or_descendantChecks if target is a direct child or recursive descendant of this node
0x007E2EE058SpriteLayer__check_total_offset_matchChecks if parent's offset minus param equals a global offset value at DAT_01389638+0x2c
0x007E2F2050SpriteLayer__check_combined_offsetReturns true if parent's offset_0x20 + offset_0x18 equals the computed layer offset
0x007E2F60108SpriteLayer__validate_child_dependencyValidates if a child with given ID exists and passes dependency tree search
0x007E2FD0481SpriteLayer__propagate_offset_to_childrenPropagates position offset changes through sprite layer tree with direction and validation
0x007E31C0109SpriteLayer__apply_offset_recursiveRecursively applies x/y offset to sprite layer node and its children in given direction
0x007E3230338SpriteLayer__apply_offset_with_validationApplies offset to sprite layer node with ancestor validation and direction reversal logic
0x007E339088SpriteLayer__notify_children_positionNotifies all valid children of parent ID change by calling vtable+0x34 with new position
0x007E33F0205SpriteLayer__update_parent_positionUpdates parent sprite position accounting for maximum child offset and notifies children
0x007E34C0310SpriteLayer__rebuild_child_linksRemoves old links and rebuilds child dependency links between sprite layer nodes
0x007E3600100SpriteLayer__clear_all_childrenDestroys all child nodes, frees list memory, and resets parent and count to zero
0x007E3670137SpriteLayer__remove_child_by_idRemoves a child node by ID from the layer's child list and clears parent if it was active
0x007E3700165SpriteLayer__list_push_backPushes a new node to the back of a linked list with max size check (0x15555555)
0x007E37B0166SpriteLayer__list_insert_beforeInserts a new node before the specified position in a linked list
0x007E38601151CCharSlotEntry__ctorConstructor for CCharSlotEntry (sprite layer rendering entry). Sets vtable to CCharSlotEntry__scalar_dtor_small. Initializes 20+ fields including body part types, sprite indices, and priority data. Calls Lua "IsHelmRobe" and "TB_Layer_Priority" scripts. Builds priority map via STL red-black tree with keys for equipment slots (3=weapon, 4=shield, 5=head). Also inserts sprite part index via CEntity__map_insert_or_get_sprite_part.
0x007E3CE0234SpriteLayer__map_find_or_insertFinds or inserts a key into the layer priority map, returns pointer to value at offset+0x14
0x007E3DD0132SpriteLayer__map_decrement_iteratorDecrements a red-black tree iterator to the previous node in order
0x007E3E602058CSpriteRenderer__render_sprite_layersMain sprite layer rendering function. Iterates through sprite layer linked list, resolves sprite resources, calculates frame positions with offsets (including Doram offset from OffsetItemPos), and blits sprites to the render surface. Handles both normal and mirrored rendering modes.
0x007E46801687CSpriteRenderer__build_layer_priority_mapBuilds a priority-ordered map of sprite layers for rendering. Creates two maps with direction-dependent layer ordering (keys 3-6 for body parts). Handles Doram special case and GetLayerPriority Lua script override. Returns sorted linked list for render order.
0x007E4D40316CSpriteRenderer__get_frame_dataGets sprite frame data for a specific layer, resolving the sprite resource and returning frame position/size information.
0x007E4E80296CSpriteRenderer__get_frame_data_altAlternative frame data getter. Similar to 007e4d40 but with different parameter handling for secondary sprite layers.
0x007E4FB0357CSpriteRenderer__check_draw_on_topChecks whether the sprite should be drawn on top via Lua script. Calls "DrawOnTop" or "New_DrawOnTop" (when DAT_0173353c flag is set, uses extended version with job ID remapping). Returns 1 (draw on top) or 0 (normal draw order). Handles Doram special case with job ID conversion.
0x007E5120104CSpriteRenderer__get_layer_sprite_infoGets sprite info (resource pointer and action data) for a specific layer index in the render pipeline.
0x007E5190375CSpriteRenderer__resolve_sprite_positionResolves sprite position by looking up anchor points and computing offset from reference frame. Used for positioning accessory sprites relative to body.
0x007E5310415CSpriteRenderer__calculate_garment_offsetCalculates garment (robe) sprite offset relative to the body sprite. Handles directional offsets and special cases for different garment types.
0x007E54B0390CSpriteRenderer__compute_head_offsetComputes head sprite offset relative to body. Looks up head anchor points from body frame data to properly position the head sprite.
0x007E5640196CSpriteRenderer__get_sprite_resourceGets the loaded sprite resource for a given layer. Constructs resource path and looks it up in the resource manager.
0x007E5710100CSpriteRenderer__lookup_sprite_actionLooks up the action index for a sprite by checking the action array bounds in the loaded sprite resource.
0x007E5780231CSpriteRenderer__validate_action_frameValidates that a given action/frame index is within bounds for the sprite resource. Returns clamped values if out of range.
0x007E5870377CSpriteRenderer__initialize_layer_stateInitializes sprite layer state for rendering. Resets position offsets (0x88/0x8c/0x90 to 0), calls Lua "IsHelmRobe" and "TB_Layer_Priority" scripts, invokes check_draw_on_top to determine draw order. Stores draw-on-top result at offset 0x45. Sets head/body/weapon/shield type fields (offsets 0x1c-0x24) from layer data.
0x007E59F027CSpriteRenderer__get_layer_countReturns the number of sprite layers for the current render configuration.
0x007E5A302874CSpriteRenderer__build_render_listBuilds the complete render list for sprite layers. Processes all visible layers, resolves resources, and creates the ordered draw list. Size: 2874 bytes.
0x007E6A6084CRefineItemSlotView__ctorConstructor for CRefineItemSlotView. Inherits from CDialogWnd (via full_ctor). Sets vtable to CRefineItemSlotView__scalar_dtor.
0x007E6AC0101CRefineMaterialView__ctorConstructor for CRefineMaterialView. Inherits from CDialogWnd (via full_ctor). Sets vtable to CRefineMaterialView__scalar_dtor. Initializes two extra fields at offsets 0x48 and 0x49 to zero.
0x007E6B3084CRefineResultView__ctorConstructor for CRefineResultView. Inherits from CDialogWnd (via full_ctor). Sets vtable to PTR_CRefineResultView__scalar_dtor.
0x007E6B90152CRefineItemListView__free_item_vectorFrees the item vector (element size 0x11/17 bytes). Deallocates memory and zeroes pointers.
0x007E6D6071CRefineItemSlotView__dtorDestructor for CRefineItemSlotView. Sets vtable and destroys base UIWindow.
0x007E6DB071CRefineMaterialView__dtorDestructor for CRefineMaterialView. Sets vtable and destroys base UIWindow.
0x007E6E0071CRefineResultView__dtorDestructor for CRefineResultView. Sets vtable and destroys base UIWindow.
0x007E6F0099CRefineItemSlotView__scalar_dtorScalar deleting destructor for CRefineItemSlotView (size 0x120). Calls dtor and conditionally frees memory.
0x007E6F7099CRefineMaterialView__scalar_dtorScalar deleting destructor for CRefineMaterialView (size 0x128). Calls dtor and conditionally frees memory.
0x007E6FE099CRefineResultView__scalar_dtorScalar deleting destructor for CRefineResultView (size 0x120). Calls dtor and conditionally frees memory.
0x007E991056CRefineItemSlotView__set_enabledSets enabled state of the refine item slot view. When disabled (param=0), clears hover window. Toggles visibility flag and updates internal enabled state.
0x007E995056CRefineMaterialView__set_enabledSets enabled state of the refine material view. When disabled (param=0), clears hover window. Toggles visibility flag and updates internal enabled state.
0x007E999056CRefineResultView__set_enabledSets enabled state of the refine result view. When disabled (param=0), clears hover window. Toggles visibility flag and updates internal enabled state.
0x007E9C0059CDirectDraw__enumerate_devicesEnumerates DirectDraw devices using DirectDrawEnumerateExA with flags=7 (all devices). Stores callback function pointer, returns error 0x81000002 if no devices found, 0x81000003 if no valid device.
0x007E9C40601ddraw_device_enum_callbackDirectDraw device enumeration callback. Copies device capabilities (DDCAPS), display mode info, and enumerates supported display modes. Filters modes by bit depth (32/24/16 bpp) and records matching modes. Stores device GUID and monitor info. Uses qsort to sort display modes.
0x007E9EA0487ddraw_enum_ex_callbackDirectDrawEnumerateEx callback. Compares device GUID with target, gets monitor info via GetMonitorInfoA, creates DirectDraw device via DirectDrawCreateEx, queries IDirect3D7, enumerates display modes via callback ddraw_device_enum_callback. Sorts collected modes with qsort.
0x007EA0906get_ddraw_device_nameReturns pointer to the DirectDraw device name string at global DAT_01450dc8.
0x007EA0A06get_ddraw_valid_device_countReturns the count of valid DirectDraw devices (with supported display modes).
0x007EA0B06get_ddraw_total_device_countReturns the total count of enumerated DirectDraw devices.
0x007EA0C0117ddraw_add_display_modeDirectDraw display mode enumeration callback. Reallocates mode array, copies new mode entry (0x7C bytes), increments mode count.
0x007EA14061ddraw_compare_display_modesqsort comparator for display modes. Sorts by height (offset +0xC) descending, then width (offset +8) descending, then refresh rate (offset +0x54) descending.
0x007EA18060ddraw_free_device_mode_listsFrees display mode lists for all enumerated DirectDraw devices. Iterates through device entries (0x134*4 bytes each) and frees allocated mode arrays.
0x007EA1C0197CVideoConfigWnd__ctorConstructor for CVideoConfigWnd. Sets vtable PTR_FUN_011287c4, initializes fields: child window pointers, string buffer, flags to zero. Size 0xE8 bytes.
0x007EA290128CVideoConfigWnd__dtorDestructor for CVideoConfigWnd. Frees display mode data (+0x38), destroys string, destroys base UIWindow.
0x007EA310152CVideoConfigWnd__scalar_dtorScalar deleting destructor for CVideoConfigWnd (size 0xE8). Calls dtor and conditionally frees memory.
0x007EA3B01301CVideoConfigWnd__create_child_windowsCreates child windows for the video configuration dialog. Creates: listbox (+0xB4), checkbox (+0xBC), 3D render preview (+0xB8, UIRenderWidget with RGB 100,100,100 and ambient 0xE8), scrollbar (+0xC0 with page size 16), and button panel (+0xC4). Populates resolution listbox from enumerated display modes.
0x007EA8D058CVideoConfigWnd__render_backgroundRenders the video config window background. Draws background at full window size, renders texture, and draws a bordered region at (0x22, 0x50, 0xDE, 0x5C).
0x007EA9101150CEmblemEditorWnd__on_commandEmblem editor window command handler. Handles button clicks: 0xc9 = close, 0x159 = submit emblem. Validates image (220x90 pixels), compresses with zlib, sends packet 0xa52 to server. Also handles file selection (param_3==0x27) for loading BMP images from disk.
0x007EAD9044CEmblemEditorWnd__set_child_flag_and_refreshSets a flag byte on a child window object (at offset 0x2b of the child at this[0x31]) and triggers virtual refresh via vtable call 0x98 on both the child and this window.
0x007EB0A0193CEmblemEditorWnd__ctorConstructor for CEmblemEditorWnd. Inherits UIWindowBase. Sets vtable to 01128904. Initializes all member fields to zero: child window pointers (0x2d-0x34), image buffers (0x35-0x38), flags (0x39-0x42), memsets offset 0x42 area.
0x007EB17071CEmblemEditorWnd__dtorDestructor for CEmblemEditorWnd. Restores vtable and calls UIWindowBase__dtor.
0x007EB1C099CEmblemEditorWnd__scalar_deleting_dtorScalar deleting destructor for CEmblemEditorWnd. Calls dtor, then optionally frees memory (0x15c bytes) if param_2 bit 0 is set.
0x007EB2304002CSecurityKeypadWnd__init_uiInitializes the security keypad UI. Creates a 10-digit randomized PIN entry keypad: shuffles digits 0-9 using MT19937 RNG, creates 10 CDialogWnd children with button textures (normal/hover/pressed), positions them in a grid layout, plus a reset button. Each button gets 3 texture states. Size: 4002 bytes.
0x007EC1E01409CSecurityKeypadWnd__renderRenders the security keypad window. Draws background, labels from message string table, PIN digit dots, and a countdown timer. Timer checks timeGetTime() against stored deadline. Shows time in MM:SS format when less than 60 seconds remain.
0x007EC7B0344CSecurityKeypadWnd__shuffle_buttonsReshuffles the keypad button positions. Creates a random permutation of indices 0-9 using MT19937 and reassigns each child window's position via vtable call 0x10 using the shuffled order. Called to randomize button layout after each use.
0x007EC910118CSecurityKeypadWnd__on_commandSecurity keypad command handler. Handles digit button presses (0x125-0x12f = digits 0-9) by appending to password buffer (max 8 chars), 0x12d/0x12e = additional digits 8/9, 0x12f = clear. On 0xb8 (submit), validates length >= 4 and sends packet 0xbdc with the entered PIN.
0x007ECD00369CSecurityKeypadWnd__set_password_and_modeSets the password entry mode and copies the provided password string into the internal buffer at offset 0xfd (max 9 chars). Sets mode byte at offset 0xe4 and resets the input counter at 0x150 to 0.
0x007ECE8051CSecurityKeypadWnd__set_timer_and_refreshStores a timer value and refresh flag. Records current timeGetTime() at offset 0x56, stores param_3 at offset 0x55, sets byte flag at 0x39, then triggers virtual refresh via vtable 0x98.
0x007ECEC0136CEmblemViewWnd__ctorConstructor for CEmblemViewWnd. Inherits UIWindowBase. Sets vtable to 01128b94. Initializes member pointers 0x2d-0x31 to zero. Small class (size ~0xc8).
0x007ECF50322CPasswordInputWnd__ctorConstructor for CPasswordInputWnd. Inherits UIWindowBase. Sets vtable to 01128c6c. Initializes: pointers 0x2d-0x37, flag byte at 0x34, two STL strings at offsets 0x38 and 0x3e, timer field 0x45 = 3000ms, counter 0x30 = 0. Registers two TLS field callbacks (0x9b and 0x27). Object size = 0x118.
0x007ED0A0113CEmblemViewWnd__dtorDestructor for CEmblemViewWnd. Restores vtable to 01128b94, frees dynamically allocated image buffer at offset 0x2f if non-null, calls UIWindowBase__dtor.
0x007ED120143CPasswordInputWnd__dtorDestructor for CPasswordInputWnd. Restores vtable to 01128c6c, frees buffer at offset 0x31, destroys two STL strings, calls UIWindowBase__dtor.
0x007ED1B0137CEmblemViewWnd__scalar_deleting_dtorScalar deleting destructor for CEmblemViewWnd. Calls dtor, optionally frees memory (200 bytes) if param_2 bit 0 is set.
0x007ED240167CPasswordInputWnd__scalar_deleting_dtorScalar deleting destructor for CPasswordInputWnd. Calls dtor, optionally frees memory (0x118 bytes) if param_2 bit 0 is set.
0x007ED2F0270CEmblemViewWnd__receive_image_data_chunkReceives a chunk of compressed emblem image data. Appends data to buffer at (this[0x2f] + this[0x31]) with bounds checking (max 0x400 per chunk). When total received (this[0x31]) matches expected (this[0x30]), decompresses with zlib into 0x9ab0-byte buffer and calls CSprite__LoadImageData.
0x007ED400334CEmblemEditorWnd__receive_image_data_chunkReceives compressed emblem data for the editor window. Similar to CEmblemViewWnd variant but uses different buffer offsets (this[0x31]/this[0x33]). On completion, decompresses via zlib, loads image, refreshes parent window, and sends acknowledgment packet 0xa5a.
0x007ED550123CEmblemViewWnd__decompress_and_load_imageDecompresses and loads emblem image for the view window. Allocates 0x9ab0-byte buffer, calls zlib_uncompress on data at (this[0x2f], this[0x31]), loads result via CSprite__LoadImageData, frees temp buffer, triggers refresh.
0x007ED5D0138CEmblemEditorWnd__decompress_and_load_imageDecompresses and loads emblem image for the editor window. Uses buffer pair (this[0x31], this[0x33]). Allocates 0x9ab0-byte temp buffer, decompresses, loads via CSprite__LoadImageData, frees buffer, refreshes child and parent windows.
0x007ED660163CEmblemViewWnd__create_child_widgetsCreates child widgets for CEmblemViewWnd. Allocates a UIComplexWidget (0x1b8 bytes) as an image display area (220x90 pixels), positions it at (0,0), adds it as a child. Also creates a close button.
0x007ED710568CPasswordInputWnd__create_child_widgetsCreates child widgets for CPasswordInputWnd. Sets window size to 0xbb x 0xbb. Creates: UIComplexWidget (image area, 220x90, at 0x3c,0x9f), UITextWidget (text input field, 200x16, at 0x2d,0x106 with white text), CDialogWnd (submit button with 3 texture states at 0xfd,0x105). Sets focus to text input.
0x007ED960661CPasswordInputWnd__renderRenders the CPasswordInputWnd. Draws background with border, labels from message table (0xb43-0xb46), an input text field in blue, a progress/timer bar, and countdown timer in MM:SS format. Also displays attempt count.
0x007EDC3054CPasswordInputWnd__check_timeout_and_clearChecks if the password input timer has expired. Compares current timeGetTime() against (this[0x45] + this[0x37]). If expired, clears the display text. Calls virtual refresh.
0x007EDC7064CPasswordInputWnd__cleanup_bufferCleans up a dynamically allocated buffer for the password window. Frees memory at offset 0xbc if non-null, zeros out fields at 0xbc, 0xc0, 0xc4, 0xb8.
0x007EDCB064CPasswordInputWnd__cleanup_buffer_bCleans up a second dynamically allocated buffer. Frees memory at offset 0xc4 if non-null, zeros fields at 0xc4, 0xc8, 0xcc, 0xc0.
0x007EDCF066CPasswordInputWnd__on_close_buttonHandles close button click for CPasswordInputWnd. If button ID is 6 and control ID is 0xc9, calls tls_clear_field (0x120) to close the window. Delegates to parent notify handler.
0x007EDD40387CPasswordInputWnd__on_commandCommand handler for CPasswordInputWnd. On button click (param_3==0): auto-triggers submit. On submit (0x159): compares entered text against stored password string, and if different, sends packet 0xa5c with the new password and updates the stored string. On close (0xc9): calls tls_clear_field 0x11c.
0x007EDED0227CPasswordInputWnd__set_status_messageSets a status message on the password input window. Formats a message string from CMessageStringTable using the provided param_2 byte. Records the message timestamp via timeGetTime() at offsets 0x37 and 0x44, and stores display duration at 0x35/0x36. Triggers virtual refresh.
0x007EDFC076CEmblemViewWnd__allocate_receive_bufferAllocates a receive buffer for compressed emblem image data (CEmblemViewWnd). Frees existing buffer at 0xbc if present, allocates param_2 bytes, stores pointer at 0xbc, zeroes the new buffer.
0x007EE01086CEmblemEditorWnd__allocate_receive_bufferAllocates a receive buffer for compressed emblem image data (CEmblemEditorWnd). Frees existing buffer at 0xc4 if present, sets expected size at 0xc8, resets received count at 0xcc, allocates param_2 bytes, stores pointer at 0xc4, zeroes the new buffer.
0x007EEA00442CChannelListWnd__ctorConstructor for CChannelListWnd. Inherits UIWindowBase. Sets vtable to 01128e88. Initializes: channel list with 10 entries (0x18 bytes each, constructed as strings via _eh_vector_constructor_iterator_), status flags, counters, an STL string at offset 0x8d, and a short+int at 0x93-0x94.
0x007EEBC0164CChannelChatWnd__ctorConstructor for CChannelChatWnd. Inherits UIWindowBase. Sets vtable to 01128db0. Initializes two STL strings at offsets 0x2d and 0x33, plus a pointer at 0x2d (initially null).
0x007EEF1065UIEquipCustomizeWnd__destroy_string_memberDestroys a string member during UIEquipCustomizeWnd cleanup. SEH-protected wrapper around STL_string_dtor.
0x007EEF60277UIEquipCustomizeWnd__dtorDestructor for UIEquipCustomizeWnd (equipment customization window, size 0x254). Sets vtable, clears child widget pairs at +0x2D/+0x2E, clears single child list at +0x44/+0x45, destroys 0x20-stride string vector, destroys array of 10 strings at +0x51, then calls base UIWindowBase dtor.
0x007EF080110UIEquipNameWnd__dtorDestructor for UIEquipNameWnd (equipment name display window, size 0xE4). Sets vtable, destroys two string members, calls base UIWindowBase dtor.
0x007EF0F0316UIEquipCustomizeWnd__scalar_dtorScalar deleting destructor for UIEquipCustomizeWnd. Runs UIEquipCustomizeWnd__dtor logic, optionally frees 0x254 bytes if bit 0 of param_2 is set.
0x007EF230134UIEquipNameWnd__scalar_dtorScalar deleting destructor for UIEquipNameWnd. Runs UIEquipNameWnd__dtor logic, optionally frees 0xE4 bytes if bit 0 of param_2 is set.
0x007EF2C022UIEquipCustomizeWnd__notify_parent_updateNotifies the parent window (at +0x18) to update by calling CCharRenderInfo__build_palette_path on it. Only acts when param_1 is non-null.
0x007EF2E0332UIEquipCustomizeWnd__add_customize_entryAdds a customization entry to UIEquipCustomizeWnd. Looks up the entry by param_2 in the item list at +0x100. If not found, gets the job ID and creates a new 0x20-byte entry (name + palette info) and pushes it to the vector. Updates scrollbar state afterward.
0x007EF430581UIEquipCustomizeWnd__add_named_entryAdds a named entry to UIEquipCustomizeWnd. Searches for existing entry by ID (param_2) in the vector at +0xB4. If not found, creates a new dialog button + text label pair, positions them, and appends the pair to the vector. Uses param_3 as the display name string.
0x007EF6801955UIEquipCustomizeWnd__truncate_text_to_fitTruncates a text string to fit within a maximum pixel width (param_2). Converts to wide chars, strips trailing characters (respecting multi-byte boundaries), appends an ellipsis suffix, and returns the result. If text already fits, returns it unchanged.
0x007EFE30867UIEquipCustomizeWnd__validate_headgear_namesValidates headgear name entries in UIEquipCustomizeWnd. Iterates over headgear items at +0x144 (up to +0xD0 count), compares each name against the message string table. Returns 1 if any mismatch found and no exact match exists (invalid name detected). If param_2 is 1, displays error messages to chat.
0x007F01A0724UIEquipCustomizeWnd__validate_garment_codeValidates the garment code string in UIEquipCustomizeWnd. Copies the string from +0x234, checks if it's all zeros (valid empty), if atoi is 0 but string isn't zeros (invalid), or if the numeric code with power-of-10 prefix matches (valid). Returns 1 for valid, 0 for invalid. Shows error message 0xFAB on invalid when param_2 is 1.
0x007F04902636UIEquipCustomizeWnd__OnCreateOnCreate handler for UIEquipCustomizeWnd. Creates the main UI layout: sprite preview widget (+0xC0), checkbox (+0xD4), toggle button (+0xD8), tab widgets for 4 categories (headgear top/mid/low + garment at +0xDC), text input fields for item names (+0x11C array), and a numeric counter display (+0xF0). Loads label strings from message table (0xB47-0xB4B, 0xFA6-0xFAC).
0x007F0EE015UIEquipCustomizeWnd__on_closeClose handler for UIEquipCustomizeWnd. Sends empty string to CUIEquipWindow__create_close_button to dismiss the window.
0x007F0EF0509UIEquipCustomizeWnd__on_drawDraw handler for UIEquipCustomizeWnd. Manages visibility of the toggle button at +0xD8 based on current tab (0/1 vs 2/3) and costume flags (+0x24C/+0x24D). Draws background (3D border, slot rows, bottom border), fills item slot backgrounds, and positions visible entry widgets based on scroll offset (+0xCC) and item count (+0xD0).
0x007F1160142UIEquipCustomizeWnd__on_lbutton_downMouse button down handler for UIEquipCustomizeWnd. Reorders window to front if needed, sets hover state, accumulates parent offsets to compute absolute position, and stores mouse coordinates at +0x7C/+0x80. Refreshes dependent windows.
0x007F11F052UIEquipCustomizeWnd__on_mouse_leaveMouse leave handler for UIEquipCustomizeWnd. If the leaving window matches the tracked hover window, clears the global hover state and rebuilds all child windows.
0x007F1230110UIEquipCustomizeWnd__remove_hidden_childrenRemoves hidden children from UIEquipCustomizeWnd's child list at +0x44. Iterates the list, and for any child with +0xAC flag set, removes it via CEffect__remove_child_from_list and compacts the array with memcpy. Then calls refresh via vtable +0x98.
0x007F12A060UIEquipCustomizeWnd__on_scrollScroll event handler for UIEquipCustomizeWnd. Sends scroll up (+3) or scroll down (-3) command through vtable +0x94 based on param_2 sign. Only active when +0x31 flag (scrollable) is set.
0x007F12E0215UIGridWnd__update_scrollbar_stateUpdates the scrollbar state for a grid/list window. Calculates total items from vector at +0x2D, subtracts visible items count from +0x34. Sets scroll enabled flag at +0x31, updates scroll position at +0x33 (clamped to valid range), and calls FUN_0089c220/0089c210 to update the scrollbar widget. Refreshes both the scrollbar (+0x30) and the main window via vtable +0x98.
0x007F13C081send_packet_0xa6cSends a network packet with header 0xA6C. Builds a packet structure with param_1, param_2, and param_3, then sends it via FUN_00c7ce30. Calls FUN_00c7d7d0 twice for packet preparation.
0x007F1420162UIEquipCustomizeWnd__on_messageMain message handler for UIEquipCustomizeWnd. Handles: msg 0 (text input for grid cells and name fields), msg 6 (button clicks: 0xC9=close, 0xD3=delete entry, 0xD5=toggle checkbox, 0xD7=tab switch, 0x159=submit/confirm), msg 7/9/10 (scroll events), msg 0x22 (data refresh from server), msg 0x62 (item lookup with preview). Manages 4 tabs (headgear top/mid/low + garment), validates names before submit, sends packet 0xBDA for confirmation.
0x007F25C066UIEquipCustomizeWnd__on_close_messageClose message handler for UIEquipCustomizeWnd. On button click (msg 6) with ID 0xC9, closes window type 0x11F. Falls through to base UIWindow handler for all messages.
0x007F2610163UIEquipCustomizeWnd__set_title_textSets the title text of UIEquipCustomizeWnd. Copies input string to internal title buffer at +0x2D, appends equip name suffix, then refreshes display via vtable +0x98.
0x007F26C0485UIEquipCustomizeWnd__sync_data_to_targetSyncs UIEquipCustomizeWnd data to a target object at +0xFC. Copies window dimensions (+0x14-+0x20), display mode flag (+0x10C), and synchronizes the 0x20-byte entry vector (resize + copy string data and numeric fields). Used to persist customization state.
0x007F29703identity_return_paramIdentity function that returns param_1 unchanged. 3-byte function (mov eax, ecx; ret).
0x007F2A1044copy_8byte_pairsCopy 8byte pairs, small utility function
0x007F2A4045relocate_8byte_pairsRelocates pairs of 4-byte values (8 bytes per pair) from [param_1, param_2) to offset param_3. Used for vector element relocation during reallocation.
0x007F2F90136UICardIllustWnd__ctorConstructor for UICardIllustWnd (card illustration window). Sets vtable to PTR_FUN_01129034. Initializes 5 member pointers (0x2d-0x31) to 0.
0x007F3020100UICardIllustWnd__dtorDestructor for UICardIllustWnd. Restores vtable, destroys child widget at offset 0x2e if non-null via scalar dtor, calls base dtor.
0x007F3090124UICardIllustWnd__scalar_dtorScalar deleting destructor for UICardIllustWnd. Destroys child widget, calls base dtor, optionally frees 200 bytes.
0x007F31101139UICardIllustWnd__OnCreateOnCreate handler for UICardIllustWnd. Creates the character preview model (0xC4 bytes), sets up left/right arrow buttons (IDs 0x180/0x181), creates tab control (3 tabs), and a close button (ID 0x16B). Uses string ID 0xB90 and 0xB9F for labels.
0x007F3590770UICardIllustWnd__RenderCharPreviewRenders the character preview in the card illustration window. Builds rotation matrices from X/Y angles, computes camera lookat, projects 3D to 2D screen coordinates, and creates a sprite layer node for rendering.
0x007F38A01069UICardIllustWnd__RebuildPreviewRebuilds the card illustration preview with new dimensions (param_2, param_3). Creates fresh character model, arrow buttons, tab controls, and close button. Similar to OnCreate but called when switching views.
0x007F3CD0216UICardIllustWnd__LoadMountingBackgroundLoads the mounting background BMP (equip_preview_bg_mounting2.bmp) for the card illustration window. Calls sprite initialization and renders character preview.
0x007F3DC0297UICardIllustWnd__SetupCharacterModelSets up the character model for the card illustration preview. Reads equipment data from the local player character (job, hair style, hair color, head, body equipment) and populates the preview model at offset 0x2E. Sets camera offsets (Y=-5.0, Z=136.0).
0x007F3EF0948UICardIllustWnd__OnMessageMessage handler for UICardIllustWnd. Handles: msg 6 with params 0xC9 (close), 0x16B (reload model), 0x180/0x181 (cycle through 8 directions). msg 0x22 (selection). msg 0x17 (equipment change events) - updates head/body/accessory equipment states with combination flags (0x100-0x301).
0x007F43E01101UICardIllustWnd__ResolveEquipSlotsResolves equipment slot conflicts for the card illustration preview. Checks head (slot 0/8), body (slot 8), and garment (slot 9) equipment against item database lookups. Sets flags at offsets 0x34/0x38/0x3C to track which slots are in use (0x100=head, 0x200=body, 0x300=garment, 0x301=garment+head).
0x007F4A7094UICardListTabWnd1__ctorConstructor for UICardListTabWnd1. Inherits from FUN_0084eab0. Sets vtable to PTR_FUN_01129454. Initializes tab index at offset 0x48 to 0.
0x007F4AD094UICardListTabWnd2__ctorConstructor for UICardListTabWnd2. Inherits from FUN_0084eab0. Sets vtable to PTR_FUN_0112929c. Initializes tab index at offset 0x48 to 0.
0x007F4B3091UICardListTabWnd3__ctorConstructor for UICardListTabWnd3. Inherits from FUN_0084eab0. Sets vtable to PTR_FUN_01129378. Initializes enabled flag at offset 0x48 to 1.
0x007F4B90149UICardListDetailWnd__ctorConstructor for UICardListDetailWnd. Inherits from FUN_00850550. Sets vtable to PTR_FUN_01129530. Initializes std::string at offset 0x3A (capacity 0xF), flag at 0x3C, and counters at 0x3D/0x3E.
0x007F4C3065UICardListDetailWnd__DestroyStringDestroys a std::string member in the card list detail window.
0x007F4DE071UICardListTabWnd1__dtorDestructor for UICardListTabWnd1. Restores vtable, calls base dtor FUN_008511b0.
0x007F4E3071UICardListTabWnd2__dtorDestructor for UICardListTabWnd2. Restores vtable, calls base dtor FUN_008511b0.
0x007F4E8071UICardListTabWnd3__dtorDestructor for UICardListTabWnd3. Restores vtable, calls base dtor FUN_008511b0.
0x007F4ED0104UICardListDetailWnd__dtorDestructor for UICardListDetailWnd. Restores vtable, destroys std::string, calls base dtor FUN_00851e10.
0x007F502099UICardListTabWnd1__scalar_dtorScalar deleting destructor for UICardListTabWnd1. Calls base dtor, optionally frees 0x128 bytes.
0x007F509099UICardListTabWnd2__scalar_dtorScalar deleting destructor for UICardListTabWnd2. Calls base dtor, optionally frees 0x124 bytes.
0x007F510099UICardListTabWnd3__scalar_dtorScalar deleting destructor for UICardListTabWnd3. Calls base dtor, optionally frees 0x124 bytes.
0x007F5170128UICardListDetailWnd__scalar_dtorScalar deleting destructor for UICardListDetailWnd. Destroys string, calls base dtor, optionally frees 0xFC bytes.
0x007F8C4056UIWnd__set_visible_and_stateSets visibility and state for a UI window. If param_2 is 0 (hiding), calls FUN_00aa66c0. Toggles hidden flag at +0x2B (XOR 1), refreshes via vtable +0x98, and stores visibility state at +0x28 (field 10).
0x007F8C8056UIWnd__set_visible_and_state_v2Sets visibility and state for a UI window. Identical to UIWnd__set_visible_and_state. If param_2 is 0, calls FUN_00aa66c0; toggles hidden flag, refreshes, stores state.
0x007F8E6021UICardListTabWnd3__SetHighlightAndRefreshSets the highlight flag at offset +0x124 and refreshes tab button textures via SetTabButtonTextures_A. The highlight flag controls text color in DrawCompletionStatus (red when highlighted, normal otherwise).
0x007F8E8021UIWnd__set_flag_120_and_refreshSets a flag at offset +0x120 on the object, then calls FUN_007f8210 to refresh.
0x007F8EA0163UIWnd__set_text_with_timeoutSets text on a UI window with an optional timeout. Copies param_2 string to internal buffer. If param_3 (timeout) is 0, sets the text immediately and stores param_4 flag. If timeout > 0, calculates expiry time using timeGetTime() + param_3 and sets auto-show flag at +0x3E. Refreshes the window and parent via vtable +0x98.
0x007F9070189CWorldMap__ctorConstructor for CWorldMap. Inherits from base class via FUN_00a79a90. Sets vtable to PTR_FUN_01129b84. Initializes string member at offset 0x1f (SSO with capacity 0xf). Zeroes fields at offsets 0x25-0x28.
0x007F9130116CWorldMap__dtorDestructor for CWorldMap. Sets vtable, clears embedded string at offset 0x1f, destroys STL string, then calls base class destructor FUN_00a79e90.
0x007F91B0140CWorldMap__scalar_deleting_dtorScalar deleting destructor for CWorldMap. Calls destructor logic (vtable reset, string cleanup, base dtor), then conditionally frees memory (0xa4 bytes) if param_2 bit 0 is set.
0x007F9240902CWorldMap__LoadMapDataLoads world map data from packet stream. Reads two string resources (map name at offset 0x94, table at offset 0x98) using CPacketStream. Iterates map entries to find first valid one (non -1 index), extracts coordinates from short pairs, calls FUN_00a7b470 with coordinates.
0x007F95D0414CWorldMap__RenderMapMarkersRenders world map markers/icons. Sets color to 0xffff00ff, iterates through map entries from FUN_00747170. For each valid entry (index != -1), resolves coordinates from lookup tables, handles map cell position calculation, and renders via virtual draw call at child object offset 0x9.
0x007F9770127CWorldMap__SendNavigateRequestSends a navigation request packet if map data is loaded (offset 0x8c != 0). Builds a structure with packet type 0x3ea, coordinates from offsets 0x9c/0xa0, mode=5, copies map name string, then calls FUN_00b99030 to send.
0x007F980032UIWnd__forward_to_base_handlerForwards all messages to FUN_00a83660 (base message handler) and always returns 0.
0x007F9820122CWorldMap__SetMapNameSets the map name string and coordinate data on the world map object. Copies string param to offset 0x7c using STL string assign, stores two additional params at offsets 0x9c and 0xa0 (coordinates).
0x007F9A70194CQuestListWnd__ctorConstructor for CQuestListWnd (quest list window). Inherits from UI window via FUN_009ac040. Sets vtable to PTR_FUN_01129c6c. Initializes vector at 0x2c-0x2e, scroll offset 0x30=0x12. Sets UI state to 9 if virtual method matches default.
0x007F9B4095CQuestListWnd__dtorDestructor for CQuestListWnd. Sets vtable to PTR_CQuestListWnd__scalar_deleting_dtor_01129c6c, deallocates internal vector of child widget pointers, then calls UIScrollPanel base destructor.
0x007F9BA0119CQuestListWnd__scalar_deleting_dtorScalar deleting destructor for CQuestListWnd. Sets vtable, deallocates vector via std__vector_deallocate, calls base destructor FUN_009ac2b0. Frees 0xc4 bytes if bit 0 of param is set.
0x007F9C209UIWnd__call_vtable_0x3cThunk that calls vtable method at offset +0x3C on param_1. 9-byte function.
0x007F9C4013UIWnd__set_state_9Sets field at offset +0x94 to 9. Used to set a UI state/mode value.
0x007F9C7060UIWnd__handle_mouse_scrollHandles mouse scroll events for a UI window. If +0xA5 flag is set, sends message 7 with scroll direction: 0xF (15 = scroll down) for negative scroll, -0xF (-15 = scroll up) for positive scroll, using the parent widget at +0x24.
0x007F9CB01089CQuestListWnd__UpdateQuestEntriesUpdates quest list entry labels. Acquires GDI context, iterates quest entries (count at iVar5+0xd2). For each entry, formats quest name with level info (e.g. "%s Lv.%d/Lv.%d"), checks for max level condition (msg 0x7ee). Measures text width, resizes child widgets, renders text via FUN_008681c0. Handles special case where quest index is 31999.
0x007FA10080CQuestListWnd__OnMessageMessage handler for CQuestListWnd. On message 6 with param 0xc9, calls FUN_00a8cf20(0x142) to close/toggle window. On message 0x17, updates quest entries. Falls through to UIScrollPanel__handle_scroll_message.
0x007FA1503615CQuestListWnd__BuildLayoutBuilds the full quest detail layout. Creates multiple UI widgets: item slot icons, editable text labels for quest info, a CWorldMap for map display. Populates quest objectives, level requirements, item rewards with icons/names/quantities. Creates scrollbar and sprite widgets. Very large layout builder (~3600 bytes).
0x007FAF70124CQuestInfoWnd__ctorConstructor for CQuestInfoWnd. Inherits from UI window via FUN_009ac040. Sets vtable to PTR_FUN_01129e04. Initializes fields: offset 0x2c=0, 0x2d=0xe (scroll step), state=9.
0x007FAFF071CQuestInfoWnd__dtorDestructor for CQuestInfoWnd. Sets vtable, calls base class destructor FUN_009ac2b0.
0x007FB04099CQuestInfoWnd__scalar_deleting_dtorScalar deleting destructor for CQuestInfoWnd. Sets vtable, calls base dtor, frees 0xb8 bytes if bit 0 set.
0x007FB0B09UIWnd__call_vtable_0x3c_007fb0b0Thunk that dispatches to virtual method at vtable offset +0x3C. Identical pattern to UIWnd__call_vtable_0x3c. Used by CQuestInfoWnd.
0x007FB10060CQuestInfoWnd__HandleMouseWheelHandles mouse wheel scrolling for quest info window. If scrolling enabled (flag at offset 0xa5), sends scroll message with delta 0xf (down) or -0xf (up) to child widget at offset 0x24.
0x007FB14066CQuestInfoWnd__OnMessageMessage handler for CQuestInfoWnd. On message 6 with param 0xc9, calls FUN_00a8cf20(0x142) to toggle window visibility. Falls through to UIScrollPanel__handle_scroll_message for other messages.
0x007FB190822CQuestInfoWnd__BuildLayoutBuilds quest info window layout. Creates 3 text widgets for different objective categories, populates them from quest data. If quest has map data, creates CWorldMap widget. Iterates objective entries per category and adds them via virtual calls.
0x007FB4D0227CQuestWnd__ctorConstructor for CQuestWnd (main quest window). Inherits from FUN_008a3700. Sets vtable to PTR_FUN_01129ee0. Initializes two SSO strings at offsets 0x31 and 0x37 (capacity 0xf each). Zeroes flags at 0x2d-0x30, 0x3d.
0x007FB5C0110CQuestWnd__dtorDestructor for CQuestWnd. Sets vtable, destroys two STL strings, calls base destructor FUN_008a4e90.
0x007FB630134CQuestWnd__scalar_deleting_dtorScalar deleting destructor for CQuestWnd. Destroys strings, calls base dtor, frees 0xf8 bytes if bit 0 set.
0x007FB6C0409CQuestWnd__CreateChildWindowsCreates child windows for the quest UI. Allocates and initializes CQuestListWnd (0xc4 bytes) at offset 0xb4, CQuestInfoWnd (0xb8 bytes) at offset 0xb8, and a third panel (0x120 bytes) at 0xbc. Positions them, sets up tab-like button labels, and adds them as children.
0x007FB860610CQuestWnd__RenderRenders the quest window. Two modes based on flag at 0xf4: active quest view (shows quest name, description, sprite images) vs completed quest view (shows quest name, additional text). Draws title text, NPC sprites, and a bottom status line (msg 0xd48).
0x007FBAD024CQuestWnd__OnKeyDownKey down handler for quest window. If key code < 0x11, delegates to FUN_008ba1e0.
0x007FBAF0117CQuestWnd__OnMessageMessage handler for CQuestWnd. Message 6 with param 0xc9 toggles visibility (0x142). Message 0x17 dispatches to either quest info or quest list child window depending on active mode flag at 0xf4. Other messages forwarded to FUN_008bdc90.
0x007FBB70652CQuestWnd__SelectQuestSelects and displays a quest by ID. If quest info not found, shows error MessageBox. For active quests (param_3=0): builds quest list layout, formats time string with date/time. For completed quests: builds info layout, copies description string, appends suffix. Updates window title string at offset 0x31.
0x007FBF60104CQuestScrollbarWidget__ctorConstructor for quest scrollbar widget (inherits UISpriteWidget). Sets vtable to PTR_FUN_0112a0cc, initial position fields 0x28=3, 0x29=7.
0x007FBFD0253CQuestHubWnd__ctorConstructor for CQuestHubWnd (quest hub/main panel). Inherits from FUN_008a3700. Sets vtable to PTR_FUN_0112a1a8. Zeroes child pointers 0x2d-0x30, flags 0x4c-0x50. Constructs 4 vectors (size 0xc each) at offset 0x51. Clears 0x6c bytes of data at 0x31.
0x007FC0D071CQuestScrollbarWidget__dtorDestructor for CQuestScrollbarWidget. Sets vtable, calls base sprite widget destructor FUN_00871830.
0x007FC120124CQuestHubWnd__dtorDestructor for CQuestHubWnd. Sets vtable, closes quest window (0x142), destroys 4 vectors, calls base destructor FUN_008a4e90.
0x007FC1A0282CQuestManager__FindOrCreateQuestDataFinds or creates a CQuestData entry in a red-black tree map keyed by quest ID. Searches tree using BST traversal, allocates new node (0x104 bytes) if not found via CQuestData__ctor. Returns pointer to data portion (offset +5 dwords from node).
0x007FC32099CQuestScrollbarWidget__scalar_deleting_dtorScalar deleting destructor for CQuestScrollbarWidget. Sets vtable, calls base dtor, frees 0xb4 bytes if bit 0 set.
0x007FC390148CQuestHubWnd__scalar_deleting_dtorScalar deleting destructor for CQuestHubWnd. Calls dtor (close window, destroy vectors, base dtor), frees 0x174 bytes if bit 0 set.
0x007FC430106CQuestHubWnd__HitTestQuestSlotHit-tests mouse position against quest list slots. Checks if click is within valid bounds (x: 0x26-0x170, y: 0x18-0x1b7). Calculates slot index from Y position (step 0x2e), adds scroll offset. Returns 1 if valid slot found, stores index in param_4.
0x007FC4A0964CQuestHubWnd__CreateChildWidgetsCreates all child widgets for quest hub window. Creates editable text widget (0x2d), a checkbox/button (0x2f), tab panel (0x30) with 3 tabs, scrollbar sprite widget (0x2e). Then creates 9 quest slots in a loop, each with: label button, detail button, and item icon widget. Triggers initial update via message 0x17.
0x007FC870307CQuestHubWnd__RenderScrollbarRenders the quest hub scrollbar if visible (offset 0x20 != 0). Sets color 0xffff00ff. Loads and draws top/bottom scrollbar caps and middle repeat segments from sprite resources at DAT_0112a2xx addresses. Calculates scrollbar track length dynamically.
0x007FC9B0721CQuestHubWnd__RenderQuestListRenders the quest list entries in the hub window. Draws page header, iterates visible quest slots (up to 9), draws selection highlight for active quest vs normal state. For each quest, renders title text (color 0xe47b2e selected, 0x955322 normal) and description text (color 0x38302e). Handles scroll offset at 0x134.
0x007FCC90236CQuestHubWnd__OnMouseDownMouse down handler for quest hub. If y < 0x11, delegates to FUN_008ba1e0. Otherwise hit-tests quest slots, sets selection (0x4e=index, 0x50=pressed flag), triggers redraw. If quest window (0x142) is open, calls CQuestWnd__SelectQuest with selected quest ID and active/completed mode.
0x007FCD8042CQuestHubWnd__OnMouseUpMouse up handler for quest hub. Clears pressed state (0x50=0), triggers redraw, forwards to base FUN_008ba2c0.
0x007FCDB060CQuestHubWnd__HandleMouseWheelMouse wheel handler for quest hub. If scrolling enabled (flag at 0x4f), sends scroll message with delta +/-3 to scrollbar widget at 0x2e.
0x007FCDF01579CQuestUI__render_quest_entriesRenders quest entries in the quest UI. Iterates through quest list entries, calls CPacketSystem processor to get quest data, loads quest icon BMP (renew_questui_ico_nq.bmp), renders sprite layers for each entry. Handles both single-quest mode (mode 1) and multi-quest mode with different processors.
0x007FD420216CQuestHubWnd__UpdateScrollbarUpdates scrollbar state for quest hub. Calculates max scroll from total entries minus visible slots (9). Enables/disables scrollbar visibility. Clamps scroll position within valid range. Calls FUN_0089c220/FUN_0089c210 to configure scrollbar parameters, then triggers FUN_007fcdf0 to refresh display.
0x007FD500745CQuestWnd__populate_tab_listsPopulates quest tab lists by iterating quest tree, sorting into active/inactive/complete categories by tab index
0x007FD7F0174CQuestWnd__on_eventMain event handler for quest window: tab switching, quest selection, scroll, item slot clicks
0x007FDDE91stub_nop_007fdde9Single-byte stub function (size=1)
0x007FE5E0464CQuestSystem__GetInstanceSingleton accessor for CQuestSystem (DAT_01456e6c). On first call, allocates 0x38 bytes, creates 3 red-black tree maps (node size 0x1b0) at offsets 0x20/0x28/0x30, initializes all tracking fields to zero, sets initialized flag. Returns 1 on success, 0 on failure. Destroys on allocation failure.
0x007FE7B028CQuestSystem__DestroyInstanceDestroys the CQuestSystem singleton. If DAT_01456e6c is not null, calls CQuestData__dtor(1) to free it and sets pointer to null.
0x007FE7D0128CQuestSystem__ClearAllDataClears all quest data from the 3 tree maps at offsets 0x20/0x28/0x30. Recursively destroys tree nodes, resets sentinel pointers, zeros size counters and tracking fields at offsets 0x8-0x18.
0x007FE850506CQuestSystem__PurgeDeletedEntriesIterates all 3 quest tree maps and removes entries marked for deletion (flag at offset 0x1a8 == 1). For each marked entry, extracts the node using FUN_007fea50, destroys 3 strings, then frees the 0x1b0-byte node.
0x007FEF2084CAchievementTabWidget__ctorConstructor for CAchievementTabWidget. Inherits from FUN_0084f570. Sets vtable to PTR_FUN_0112a65c.
0x007FEF8094CAchievementScrollWidget__ctorConstructor for achievement scrollbar sprite widget. Inherits from UISpriteWidget. Sets vtable to PTR_FUN_0112a580, initial position field 0x28=5.
0x007FF1A093CAchievementDetailWnd__scalar_deleting_dtorScalar deleting destructor for achievement detail dialog. Calls UIComplexDialog destructor, frees 0x188 bytes if bit 0 set.
0x007FF20093CAchievementScrollWidget__scalar_deleting_dtorScalar deleting destructor for achievement scroll sprite widget. Calls base sprite dtor FUN_00871830, frees 0xb4 bytes if bit 0 set.
0x007FF4A0125parse_account_id_as_int64Parses account ID string as 64-bit integer. Gets string from FUN_00858d20, copies to 260-byte buffer, processes via FUN_00ddb4d0 (likely strips formatting), converts via _atoi64. Returns result as longlong.
0x007FF5F0287validate_numeric_stringValidates that a string contains only digits and spaces. Copies input to STL string, iterates each character checking if it's '0'-'9' or space. Returns 1 if all valid, 0 if any invalid character found.
0x00801CE0324UIRefineWnd__ctorConstructor for UIRefineWnd (item refinement window). Inherits from FUN_008a3700. Sets vtable PTR_UIRefineWnd__OnCreate. Initializes two SSO strings at offsets 0x2e and 0x34, hash table (0x100 bytes) at offset 0x3c, zeroes fields 0x3a-0x43.
0x00801E30145UIRefineWnd__dtorDestructor for UIRefineWnd. Destroys sub-components, strings, and base class.
0x00801ED0169UIRefineWnd__scalar_deleting_dtor_00801ed0Scalar deleting destructor for UIRefineWnd. Sets vtable, destroys hash table at 0x3c (frees all entries + 0x100 byte root), destroys two SSO strings, calls UIWindowBase dtor. Frees 0x110 bytes if bit 0 of param set.
0x00801F80208UIRefineWnd__OnItemSlotClickHandles click on item slot within the refine window. Hit-tests click bounds (x: 0x1e-0xbe, y: 0x135-0x14d). Iterates linked list of items, calculates slot from x position (step 0x22). On hit, copies shop item data. Otherwise clears selection.
0x0080205030UIRefineWnd__HideLeftPanelHides the left panel child window and triggers redraw.
0x0080207050UIRefineWnd__HideRightPanelHides the right panel child window, resets material data, and triggers redraw.
0x008020B0820UIRefineWnd__OnOpenUIRefineWnd OnOpen handler. Switches on refine mode (0/1/2 at DAT_01456e6c+0x10) to set up the appropriate item display. Creates confirm/refine dialog buttons, sets up child windows. For mode 0, also creates a tooltip dialog if item has no pending operations.
0x008023F0747UIRefineWnd__OnDrawUIRefineWnd OnDraw. Renders the refine window background, item name/description text, material slots with item sprites and counts, and the zeny cost display at the bottom.
0x008026E024UIRefineWnd__OnSlotValidateValidates item slot index for refine window. Only allows indices < 0x11.
0x00802700525UIRefineWnd__ShowItemTooltipShows item tooltip for a material slot in UIRefineWnd. Retrieves item data via OnItemSlotClick, calculates tooltip position based on slot index, builds tooltip string with color code and optional count, and displays via CToolTipMgr.
0x00802910206UIRefineWnd__ShowMaterialItemInfoShows the item info popup window for a material slot in UIRefineWnd. Retrieves item data via OnItemSlotClick, then opens a window type 0xC via CGameObject with the item data passed as message parameter 0x18.
0x008029E0444UIRefineWnd__OnMessageUIRefineWnd message handler. Processes button events (0xBD=refine equip via packet 0x9F3, 0xBE=refine material via packet 0x9F1, 0xC9=close/reset, 0xD3=confirm refine with dialog, 0x131=send item name, 0x136=send packet 0xB98). Also handles item list refresh (msg 0x17) and close confirmation (msg 0x6A).
0x00802C8E187CUIEquipWnd__handle_unequip_item_requestCUIEquipWnd: handle unequip item request
0x008030A01722UIRefineWnd__OnCreateUIRefineWnd OnCreate. Copies item name/description strings, strips color delimiters, creates the main text widget with skin colors, creates left/right panel buttons with textures, creates optional tooltip button, and adds all child widgets to the window hierarchy.
0x0080376044UIRefineWnd__SetLeftPanelVisibleSets left panel visibility flag and triggers redraw of both panel and main window.
0x0080379044UIRefineWnd__SetRightPanelVisibleSets right panel visibility flag and triggers redraw of both panel and main window.
0x008037C0180UIRefineWnd__CreateRefineButtonCreates a refine button widget for UIRefineWnd. Allocates a CDialogWnd (0xD0 bytes), sets message text 0xDDC, positions at (0xE0, 0x1D), assigns button ID 0x136, initially hidden, and adds to child list.
0x00803880104CQuestSystem__rbtree_lower_boundRed-black tree lower_bound for CQuestSystem item map. Walks the tree comparing 64-bit keys (lo at offset +0x10, hi at +0x14) to find the first node >= the given key.
0x00804CA0167CQuestSystem__rbtree_erase_nodeErases a node from the CQuestSystem red-black tree. Advances iterator, extracts the node, destroys its 3 internal strings, frees the 0x1B0-byte node block, and returns the new iterator position.
0x00804D50660UIGradeEnchantWnd__ctorUIGradeEnchantWnd constructor. Initializes the base UIItemListWnd, sets vtable, zeroes all slot/item fields, clears 4x24-byte string buffers, resets grade enchant state, and sends packet 0xAC0 to request grade enchant data from server.
0x00804FF068UIGradeEnchantWnd__dtor_string_ASEH-protected std::string destructor wrapper for UIGradeEnchantWnd cleanup.
0x0080504068UIGradeEnchantWnd__dtor_string_BSEH-protected std::string destructor wrapper for UIGradeEnchantWnd cleanup (slot B).
0x0080509068UIGradeEnchantWnd__dtor_string_CSEH-protected std::string destructor wrapper for UIGradeEnchantWnd cleanup (slot C).
0x008050E068UIGradeEnchantWnd__dtor_string_DSEH-protected std::string destructor wrapper for UIGradeEnchantWnd cleanup (slot D).
0x0080513068UIGradeEnchantWnd__dtor_string_ESEH-protected std::string destructor wrapper for UIGradeEnchantWnd cleanup (slot E).
0x0080518068UIGradeEnchantWnd__dtor_string_FSEH-protected std::string destructor wrapper for UIGradeEnchantWnd cleanup (slot F).
0x00805260140UIGradeEnchantWnd__dtorUIGradeEnchantWnd destructor. Resets vtable, clears 4 internal 16-byte vectors via STL_vector_16byte_clear_and_free, then destroys the base UIClass_6060.
0x008052F082CQuestSystem__rbtree_iterator_nextRed-black tree iterator increment (operator++). Navigates to the next in-order node: if right child exists, go to leftmost descendant of right child; otherwise walk up to first right-parent ancestor.
0x00805350196CQuestSystem__compare_grade_enchant_entriesComparator for grade enchant entries. Looks up both entries by type (0/1/2) in the CQuestSystem tree maps, then compares: first by type flag at +0x18 (type 1 > type 0), then by priority at +0x34 (higher = earlier). Returns true if param_1 should sort before param_2.
0x00805420164UIGradeEnchantWnd__scalar_deleting_dtorUIGradeEnchantWnd scalar deleting destructor. Destroys vtable, clears 4 internal vectors via STL_vector_16byte_clear_and_free, destroys base UIClass_6060, and optionally frees the 0x208-byte block if flag bit 0 is set.
0x008054D0152UIGradeEnchantResultWnd__send_refine_packet_for_itemSends a grade enchant refine packet (0xC4) for a single item. Looks up the item by type (0/1/2) in the CQuestSystem tree, checks status flags (bits 1+2 at +0x19), and sends the refine request via virtual call. Clears TLS field 0x109 if DAT_01457adc is set.
0x00805570471UIGradeEnchantResultWnd__send_refine_packets_allSends grade enchant refine packets for all eligible items. In multi-select mode (+0x1D4), iterates the selection vector and sends packet 0xC4 for each valid item. In single mode, iterates all items in the current tree map. Counts sent vs skipped (locked) items, displays error for locked items via message 0xA34.
0x00805750340UIGradeEnchantResultWnd__DrawItemSlotRowDraws a single item slot row in the UIGradeEnchantResultWnd. Renders background sprite based on enchant type, draws item icon, and overlays status badges (locked/equipped/etc) using flag bits from the item status byte at +0x19.
0x008058C05239UIGradeEnchantResultWnd__ShowResultCreates the UIGradeEnchantResultWnd UI. Builds 3 tab-style multi-string widgets (msgs 0xDDC/0xDDA/0xDDB), 2 action buttons (Enchant/Close), 6 item slot rows with checkboxes/name labels/count labels/enchant buttons, a status text widget, a scroll button, and a result tab widget. Configures all positions, text colors, and message handlers.
0x00806D402301UIGradeEnchantResultWnd__PlayAnimationDraws the grade enchant result display. In pre-result state, shows background and description text. In result state, iterates 6 item slots: draws each item row via DrawItemSlotRow, displays countdown timers via DrawCountdownTimer, handles slot removal for cleared items, shows item name/description for valid selections. Also renders page count and navigation label at bottom.
0x0080764024UIGradeEnchantResultWnd__OnSlotValidateValidates item slot index for grade enchant result window. Only allows indices < 0x11.
0x00807690294UIGradeEnchantResultWnd__SendRefinePacketsForItemSends refine packets (0x9F3 for equipment, 0x9F1 for material) for a single item based on status flag bits. Checks trade window state first. Looks up item in CQuestSystem tree, reads status byte at +0x19, sends appropriate packet for bit 2 (equip) and/or bit 1 (material).
0x008077C0285UIReformWnd__SendRefinePacketsForVisibleSends refine packets for all visible/selected items in UIReformWnd. In multi-select mode (+0x1D4=1), iterates the selection vector and sends 0xC4 packets. In single mode, iterates the current tree map and sends for items with pending count > 0 at +0x1AC.
0x008078E0437UIReformWnd__ResetLabelsResets UIReformWnd labels and slot states. Clears page counter (+0x67), resets all 6 radio buttons and slot EC flags, updates status label texts (messages 0xE05 and 0xE08) with button IDs 0x222 and 0x224, triggers redraw.
0x00807AA0214UIReformWnd__OnMessageUIReformWnd OnMessage handler. Massive switch handling: slot text clicks (msg 0), button events (msg 6: 0x222=enchant all, 0x223=send selected, 0x224=cancel all), data refresh (msg 0x17), redraw (msg 0x3C), item clicks (msg 0x62: 0x142=view item, 0x143=select for enchant). Contains the main reform/enchant workflow logic.
0x00807FCE1stub_nop_00807fceSingle-byte stub function (size=1)
0x0080803F29UIGradeEnchantWnd__cleanup_and_returnUIGradeEnchantWnd: cleanup and return
0x0080805C5thunk_UIGradeEnchantWnd__epilog_return_zerothunk_UIGradeEnchantWnd: epilog return zero
0x008081911stub_nop_00808191Single-byte stub function (size=1)
0x008081A11stub_nop_008081a1Single-byte stub function (size=1)
0x008081C31stub_nop_008081c3Single-byte stub function (size=1)
0x0080851E31UIGradeEnchantWnd__epilog_return_zeroUIGradeEnchantWnd: epilog return zero
0x008086461560UIGradeEnchantWnd__show_refine_confirmation_dialogUIGradeEnchantWnd: show refine confirmation dialog
0x00808FD0230UIReformWnd__SetButtonsVisibleSets visibility of multiple buttons in UIReformWnd. Toggles visible/hidden state for buttons at offsets 0x65, 0x66, 0x4F, 99, 0x50, 100, and triggers redraw on each. Used to show/hide the reform action buttons panel.
0x008090C01452UIReformWnd__UpdateSlotDisplayUpdates a single slot display in UIReformWnd. Takes slot index and item data, strips color delimiters from name/description strings, sets item name text with appropriate colors (gray for locked, normal otherwise), updates radio button state and item ID reference.
0x00809670603UIReformWnd__DrawCountdownTimerDraws the countdown timer for a grade enchant slot in UIReformWnd. Calculates remaining time from start/end timestamps, formats as minutes/hours/days using messages 0xB22-0xB24, and renders centered text with appropriate color (gold=locked, green=available).
0x008098D064UIReformWnd__ResetSlotsResets all 6 item slots in UIReformWnd. Increments counter at +0x67, clears slot data and EC flags, triggers redraw.
0x00809910117UIRefineWnd__SetTitleStringSets the title string at offset 0x2d on the refine window. Copies input string (handles SSO), triggers redraw via virtual method 0x98, then destroys temporary string.
0x00809990452UIGradeEnchantResultWnd__RefreshItemListsRefreshes the grade enchant item lists from CQuestSystem tree maps. Resets 3 vectors (at +0x1E4, +0x1F0, +0x1FC for types 0/1/2), iterates each tree map (offsets 0x20, 0x28, 0x30 from DAT_01456e6c), copies entries into vectors, then sorts each vector via STL_sort_16byte_gradeenchant.
0x00809B60110UIGradeEnchantResultWnd__RemoveEntryByIdRemoves an entry from the type-0 item vector (at +0x1E4) by matching the 64-bit item ID (low at element[2], high at element[3] via sign extension). Shifts remaining 16-byte elements down and decrements the end pointer.
0x00809BD036copy_16byte_elements_forwardCopy 16byte elements forward
0x00809C0036relocate_16byte_elementsRelocates 16-byte elements by a fixed offset (param_3 - param_1). Copies each element (4 dwords) to its new position. Used for vector reallocation.
0x0080ACC0254UIRouletteWnd__submit_render_quadSubmits a render quad to the render pipeline for the roulette wheel highlight. Grows circular buffer if needed, allocates 0x28 byte entry, classifies mesh with flag 0x201, then calls animate_spin_step.
0x0080ADC0641UIRouletteWnd__animate_spin_stepAnimates one step of the roulette spin. Copies target vertex positions from buffer, decrements float values per frame step. Handles two phases: acceleration (<7 steps) and deceleration (>=7). When final position reached, triggers completion with prize display.
0x0080B050370UIRouletteWnd__animate_spin_finalAnimates the final roulette spin. Handles deceleration, settling on a winning slot, and triggering the result display.
0x0080B1D0157UIRouletteWnd__select_item_by_indexSelects a roulette item by absolute index. If -1, resets selection. Otherwise searches the red-black tree for the matching index and copies item description data via CItemDesc__copy_from.
0x0080B270542UIRouletteWnd__start_spin_animationStarts the roulette spin animation. Sets up vertex positions, calculates target positions with shrink offset, records start time (timeGetTime), sets 35ms frame interval, enables animation flag and disables UI interaction during spin.
0x0080B490484UIRouletteWnd__set_quad_verticesSets up the 6 quad vertices (24 floats) for the roulette highlight rectangle. Handles 800x600 resolution offset (+3). Sets position, UV coords, normal, and color (0x44ffffff white) for each vertex.
0x0080B680158UIRouletteWnd__set_item_from_treeSets roulette item data from the RB-tree. Stores the target index (param_2) at offset 0x264, flags at 0x278/0x279. Iterates the tree at offset 0x27c to find matching row/column, copies item description via CItemDesc__copy_from.
0x0080B930277UIRouletteWnd__ctorUIRouletteWnd constructor. Initializes base class, vtable (PTR_FUN_0112b7d4), item tree, linked list with 0x100 sentinel. Sets up display flags, page counters, item manager state.
0x0080BA50154UIRouletteWnd__dtorUIRouletteWnd destructor. Sets vtable, destroys linked list at offset 0x72 (frees 0x100-byte sentinel), destroys 2 embedded strings, then calls UIWindowBase__dtor.
0x0080BAF0178UIRouletteWnd__scalar_deleting_dtorUIRouletteWnd scalar deleting destructor. Runs full destructor (vtable, list, strings, base), then frees 0x1E8-byte allocation if bit 0 of param_2 is set.
0x0080BBB0338UIRouletteWnd__hit_test_gridHit tests the roulette grid for mouse position (param_3=x, param_4=y). Determines row (0-7, spaced 0x28 apart from 0x158 down) and column (0-8, spaced 0x24 apart). Stores hit row/col at offsets 0x1D4/0x1D0. On match, searches the item tree for the corresponding item and copies its description.
0x0080BD101284UIRouletteWnd__OnCreateUIRouletteWnd::OnCreate. Creates UI sprite elements: buttons, roulette_Start_spr/act, roulette_GetWinPrize_spr/act, roulette_stageArrow_spr/act. Sets up three text display areas for currency values. Mode 2 (DAT_0173a8e0==2) creates extra animated sprites.
0x0080C220614UIRouletteWnd__draw_itemsDraws the roulette item icons in their grid positions. Iterates slots and renders item sprites with highlight effects for the winning slot.
0x0080C4A0653UIRouletteWnd__OnDrawMain roulette window draw handler. Renders the wheel background, spinning animation, item grid, highlight overlay, and spin button state.
0x0080CB90331UIRouletteWnd__OnMessageUIRouletteWnd message handler. Handles: 0xC9=spin button (checks spinning state, shows error if active), 0x199=claim reward button (sends packet 0xA1F), 0x19A=confirm prize (sends packet 0xA21 if spinning). Case 0x3C=refresh display.
0x0080CCE0350UIRouletteWnd__draw_grid_backgroundDraws the roulette grid background. Manages visibility of animated sprite widgets (start button, prize button, stage arrow) based on game state: spin active, prize claimed, stage level. Handles mode 2 (DAT_0173a8e0==2) extra sprites.
0x0080CE4083UIRouletteWnd__get_spin_stateReturns the current roulette spin state. 0=idle, 1=spinning (phase<7 and prize not claimed), 2=gold coins exceeded limit, 4=silver coins exceeded limit.
0x0080CF10321CRouletteItemMgr__insert_itemInserts a roulette item into the red-black tree map. Key is the item index (param_3[0]). Node is 0x4C bytes containing item data (copies 52 bytes from param_3). Uses Insert_node for tree insertion.
0x0080D2A0423CRouletteItemMgr__ctorCRouletteItemMgr constructor. Sets vtable, initializes display parameters (float values for positioning/scaling), allocation flags, creates 0x18-byte RB-tree sentinel for item storage. Accepts two params stored at offsets 0x1A and 0x1B.
0x00811FC01259CRenderQueue__submit_sprite_entryCreates a sprite render entry in the render queue. Sets up 4-vertex textured quad with position, UV coordinates (from tile cache or texture), perspective correction, rotation support, and color/alpha. Manages render deque allocation with growth. Returns pointer to the new render entry.
0x00812780118CRenderBatchList__ctorConstructor for CRenderBatchList. Sets vtable to CRenderBatchList vftable, initializes empty linked list (sentinel node), zeroes count and child pointer fields.
0x00812800209CRenderBatchList__dtorDestructor for CRenderBatchList. Destroys child object at offset 3 via virtual call if present. Walks and frees all 0xC-byte linked list nodes twice (clears and then destroys), frees sentinel node.
0x008128E0230CRenderBatchList__scalar_deleting_dtorScalar deleting destructor for CRenderBatchList. Sets vtable, destroys child object at offset 3 if present. Walks linked list at offset 1, frees all 0xc-byte nodes. Frees sentinel node. Frees 0x10 bytes if bit 0 set.
0x008129D01270CRenderQueue__DrawTexturedQuadDraws a textured quad to the render queue. Creates a mesh entry with 4 vertices, calculates UV coordinates from texture dimensions. Two modes: param_7=1 uses normalized coords with texture virtual methods, param_7=0 allows custom width/height with clamping. Sets z-depth, w and color (param_4) for all 4 vertices. Pushes to list via std__list_push_back_12byte.
0x00812ED0453CRenderQueue__DrawTexturedQuadSubrectDraws a textured quad with custom UV subrect specified by pixel coordinates (param_4-7). Calculates UV coords from texture dimensions. Sets z/w/color for all 4 vertices. Pushes to render list.
0x008130A0750CRenderQueue__DrawTexturedQuadNormalizedDraws a textured quad with fully normalized UV coordinates from texture's virtual width/height methods. Position at (param_1, param_2) with size (param_5, param_6). Null check on texture. Pushes to render list.
0x00813390286CRenderQueue__DrawColoredQuadDraws a solid colored quad (no texture, texture ptr = 0). Position at (param_1, param_2) with size (param_3, param_4). Color from param_5. All UV coords set to 0. Pushes to render list.
0x008134B0644CRenderQueue__DrawTexturedQuadByNameDraws a textured quad by loading texture from name string via stub_005717a0. Handles optional width/height params (0 = use texture size). Calculates UV with clamping. Pushes to render list.
0x00813740694CRenderQueue__DrawTexturedQuadScaledDraws a textured quad with scaling factor (in_stack_00000030). Loads texture by name, calculates UV coordinates with scale applied (DAT_01114b8c / scale). Supports offset parameters for UV origin. Pushes to render list.
0x00813A00455CRenderQueue__ClearAndDrawBackgroundClears the render batch list (frees all 0xc-byte list nodes, resets to empty) and adds a single background quad covering (0,0)-(param_2, param_3) with solid color param_4. No texture.
0x00813BD079CRenderTarget__dtorDestructor for CRenderTarget. Sets vtable to PTR_FUN_0112bb90, destroys child object at offset 1 via virtual call if present.
0x00813C30100CRenderTarget__scalar_deleting_dtorScalar deleting destructor for CRenderTarget. Destroys child, frees 8 bytes if bit 0 set.
0x00813CA0982CRenderQueue__FlushToTextureFlushes render queue contents to an offscreen texture. Creates render target surface if needed (stub_00571660). Sets up D3D device state (render target, depth stencil, viewport), iterates render list drawing each textured mesh via CRenderPipeline__set_texture_by_stage + stub_00569470. Blits result to output texture. Restores original render state.
0x00814330157UIRuneEntry__copy_ctorCopy constructor for UIRuneEntry (0x24 bytes). Initializes SSO string (capacity 0xf), copies string content, then copies additional fields at offsets 0x18 (dword), 0x1c (byte), 0x20 (dword).
0x008143D0103UIRuneEntry__default_ctorDefault constructor for UIRuneEntry. Initializes SSO string to empty (capacity 0xf), zeroes flag byte at 0x1c and dword at 0x18.
0x00814440147UIRuneSlotWidget__ctorConstructor for UIRuneSlotWidget. Inherits UISpriteWidget, sets vtable to PTR_UIRuneSlotWidget_0112c0b4. Initializes slot dimensions 0x2d, icon type 6.
0x008144E086UIRuneTabWidget__ctorConstructor for UIRuneTabWidget. Inherits from base UI widget via CEffect__ctor. Sets vtable to PTR_UIRuneTabWidget_0112bd4c.
0x008148A0147UIRuneListBox__ctorConstructor for UIRuneListBox. Inherits UISpriteWidget. Sets vtable to PTR_UIRuneListBox. Initializes slot dimensions 0x2d=0x2f, icon type 0x28=6.
0x00814940124UIRuneListBoxDerived__ctorConstructor for UIRuneListBoxDerived. Base sprite widget with vtable PTR_UIRuneListBoxDerived_0112befc. Initializes dimensions 0x44 x 0x28, selected index -1, icon type 6.
0x008149C0130UIRuneContainerWnd__ctorConstructor for UIRuneContainerWnd. Inherits dialog window, sets vtable PTR_UIRuneContainerWnd_0112bb98. Zeroes child pointers 0x48-0x49, constructs 3 string entries (0x18 bytes each) at offset 0x4a via _eh_vector_constructor_iterator_.
0x00814A50163UIRuneTextBox__ctorConstructor for UIRuneTextBox. Inherits base UI via CEffect__ctor. Sets vtable PTR_UIRuneTextBox_0112c5cc. Zeroes fields 0x1f-0x30 (text content, scroll state, etc).
0x00814B00181UIRuneDetailSlotWidget__ctorConstructor for a rune detail slot widget. Extends UISpriteWidget with vtable chain (0112befc -> 0112c190). Initializes slot dimensions (0x44 x 0x28), type 6, clears data fields 0x30-0x32, sets final dimension 0x2d=0xf.
0x00814BC0378UIRuneInputBox__ctorConstructor for rune input box widget. Sets vtable PTR_UIRuneInputBox_0112bc74, initializes tab type to 4, allocates and copies default tab bitmap path string 'runesystem/runesystam_tab_%d.bm*' (0x2F bytes with SSO reallocation). Sets counter field to 0.
0x00814DE0113UIRuneListBox__constructorConstructor for rune list box widget. Sets vtable PTR_UIListBox_0112c344, type 4, display mode 2, selected index -1.
0x00814E60126UIRuneListBoxDerived__constructorConstructor for derived rune list box. Sets base vtable then overrides to PTR_UIListBoxDerived_0112c41c. Same initialization as UIRuneListBox (type 4, mode 2, index -1).
0x00814EE0308UIRuneContainerWnd__constructorConstructor for rune container window. Sets vtable PTR_UIContainer_0112c92c, creates a button widget (0x120 bytes) with 4 sprite states, positions it centered, assigns button ID 0xB8, zeroes 0x40 bytes of rune data fields.
0x00815020121UIRuneTextBox__constructorConstructor for rune text box widget. Calls base text widget constructor (UITabWidget__default_ctor), sets vtable PTR_UITextBox_0112c4f4, initializes SSO string field at 0x3C.
0x008150A0525UIRunePageNavWidget__constructorConstructor for rune page navigation widget. Creates two button widgets (next/prev page) with 4 sprite states each, assigns IDs 0x13D and 0x13C. Queries CRuneSystemMgr for page count; disables both buttons if below max pages (9). Initializes page tracking fields.
0x008152B0227UIRuneInputBox__constructorConstructor for rune input box. Sets vtable PTR_UIInputBox_..._0112c77c, initializes two string fields (0x1F and 0x25) with SSO buffers, clears them to empty, and zeros control fields (0x2B-0x2F).
0x008153A093UIRuneCheckBox__constructorConstructor for rune checkbox widget. Sets vtable PTR_UICheckBox_..._0112c6a4, initializes checked state to 0.
0x0081540086UIRuneButton__constructorConstructor for rune button widget. Sets vtable PTR_UIButton_..._0112c854.
0x008155E084UIRuneSlotWidget__destructorDestructor for rune slot widget. Sets vtable chain (0112c0b4 then 0112befc), calls sprite widget destructor.
0x0081564071UIRuneTabWidget__destructorDestructor for rune tab widget. Sets vtable, calls base widget destructor (FUN_00a79e90).
0x0081569084UIRuneSlotEnhanced__destructorDestructor for an enhanced rune slot widget variant. Sets vtable chain (0112bfd8 then 0112befc), calls sprite widget destructor.
0x008156F071UIRuneBaseSlot__destructorDestructor for a base rune slot widget. Sets vtable 0112befc, calls sprite widget destructor (FUN_00871830).
0x008157B071UIRuneTextBox__destructorDestructor for rune text box widget. Sets vtable 0112c5cc, calls base widget destructor (FUN_00a79e90).
0x00815800108UIRuneSlotWidget__full_destructorFull destructor for rune slot widget. Sets vtable 0112c190, clears 36-byte vector, then sets vtable 0112befc and calls sprite destructor.
0x0081590071UIRuneListBox__destructorDestructor for rune list box. Sets vtable, calls base widget destructor.
0x0081595084UIRuneListBoxDerived__destructorDestructor for derived rune list box. Sets vtable chain, calls base widget destructor.
0x008159B071UIRuneContainerWnd__destructorDestructor for rune container window. Sets vtable, calls base window destructor.
0x00815A0095UIRuneTextBox__full_destructorFull destructor for rune text box. Sets vtable, destroys string field, calls base text widget destructor.
0x00815A6071UIRunePageNavWidget__destructorDestructor for rune page navigation widget. Sets vtable, calls base widget destructor.
0x00815AB0107UIRuneInputBox__destructorDestructor for rune input box. Sets vtable, destroys two string fields, calls base widget destructor.
0x00815B2071UIRuneCheckBox__destructorDestructor for rune checkbox. Sets vtable, calls base widget destructor.
0x00815B7071UIRuneButton__destructorDestructor for rune button. Sets vtable, calls base widget destructor.
0x00815BC0112UIRuneSlotWidget__scalar_del_dtorScalar deleting destructor for rune slot widget.
0x00815C3096UIRuneTabWidget__scalar_del_dtorScalar deleting destructor for rune tab widget.
0x00815D20112UIRuneListBox__scalar_del_dtorScalar deleting destructor for rune list box.
0x00815D9099UIRuneListBoxDerived__scalar_del_dtorScalar deleting destructor for derived rune list box.
0x00815E00129UIRuneContainerWnd__scalar_del_dtorScalar deleting destructor for rune container window.
0x00815E9099UIRuneTextBox__scalar_del_dtorScalar deleting destructor for rune text box.
0x00815F00132UIRunePageNavWidget__scalar_del_dtorScalar deleting destructor for rune page navigation widget.
0x00815F90113UIRuneInputBox__scalar_del_dtorScalar deleting destructor for rune input box.
0x00816010161UIWindow_00816010__scalar_deleting_dtorScalar deleting destructor; sets vtable 0112ca04, size 0xe8, calls base dtor 008a4e90
0x008161A099UIContainer_008161a0__scalar_deleting_dtorScalar deleting destructor; sets vtable 0112c92c, size 0xf8, calls base dtor 008a4e90
0x00816210119UITextBox_00816210__scalar_deleting_dtorScalar deleting destructor; sets vtable 0112c4f4, size 0x108, destroys STL string member
0x00816300131UIInputBox_00816300__scalar_deleting_dtorScalar deleting destructor; sets vtable 0112c77c, size 0xc8, destroys two STL strings
0x0081639099UICheckBox_00816390__scalar_deleting_dtorScalar deleting destructor; sets vtable 0112c6a4, size 0x88, calls base dtor 00a79e90
0x0081FBD091CSignBoardEntry__merge_defaultsMerges default values from param_1 into param_2 based on type field at offset 0x10. For type 1: sets type to 1. For type 2: sets type to 2, merges field 0x14 and 0x1C if zero. For type 3: sets type to 3, merges fields 0x14 and 0x1C if zero. Always merges field 0x18 if zero.
0x0081FC30179CSignBoardMgr__try_acquire_singletonTries to acquire or create the CSignBoardMgr singleton (DAT_01456ecc). If null, allocates 0x10 bytes and initializes with flag=1. If already exists and flag is set, returns 1. If flag is clear, calls destroy (toggle_window_visibility) and clears pointer, returns 0.
0x0081FE3028CSignBoardMgr__destroy_if_existsDestroys the CSignBoardMgr singleton if it exists (DAT_01456ecc != 0). Calls the destructor and clears the global pointer.
0x0081FE5016CSignBoardMgr__initInitializes sign board system by calling load_signboard_table (Lua data) followed by create_signboard_objects (3D object creation).
0x0081FE603436CSignBoardMgr__create_signboard_objectsCreates 3D signboard objects from the loaded sign board table. Iterates entries, matches RSW resource filename, then for each entry: type 1/3 creates UIHomunculus2Wnd with texture, type 2 creates UIHomunculus2SubWnd. Converts cell coordinates to world position, gets terrain height, and pushes to a linked list.
0x00820BD0637CSignBoardMgr__load_signboard_tableLoads SignBoardList table via Lua; iterates rows parsing type, coords, and strings into vector
0x0082104094UIHomunculus2Wnd__constructorConstructor for homunculus2 window. Calls base window constructor, sets vtable PTR_FUN_0112e1d8, initializes field at 0x50 to 0.
0x008210A0117UIHomunculus2Label__constructorConstructor for homunculus2 label widget. Sets vtable PTR_FUN_0112e028, initializes a string field (0x1F-0x24) with SSO buffer.
0x0082112084UIHomunculus2SubWnd__constructorConstructor for homunculus2 sub-window. Sets vtable PTR_FUN_0112dfe8.
0x00821180205UIHomunculus2InputPanel__constructorConstructor for homunculus2 input panel. Sets vtable PTR_FUN_0112e100, initializes three string fields (0x20, 0x26, 0x2C) each with SSO buffers (capacity 0xF).
0x0082125071UIHomunculus2Wnd__destructorDestructor for homunculus2 window. Sets vtable, calls base window destructor.
0x008212A092UIHomunculus2Label__destructorDestructor for homunculus2 label. Sets vtable, destroys string, calls base widget destructor.
0x0082130071UIHomunculus2SubWnd__destructorDestructor for homunculus2 sub-window. Sets vtable, calls base window destructor.
0x00821350125UIHomunculus2InputPanel__destructorDestructor for homunculus2 input panel. Sets vtable, destroys three string fields, calls base widget destructor.
0x008213D099UIHomunculus2Wnd__scalar_del_dtorScalar deleting destructor for homunculus2 window. Optionally frees this (0x148 bytes).
0x00821440116UIHomunculus2Label__scalar_del_dtorScalar deleting destructor for homunculus2 label. Optionally frees this (0x94 bytes).
0x008214C099UIHomunculus2SubWnd__scalar_del_dtorScalar deleting destructor for homunculus2 sub-window.
0x0082204025UIHomunculus2Label__renderRenders the homunculus2 label by calling CEntity__render_sprite_full at position (0,0).
0x0082212030UIHomunculus2Label__rebuild_and_update_textRebuilds the UIHomunculus2Label texture from current name, then updates the word-wrapped text display from the string at offset 0x80.
0x00822440126format_skill_tooltip_type1Formats skill tooltip string variant 1: "%s %s Use Lv.%d, Sp : %d" or with trailing markers depending on param_2 flag.
0x008224C0140format_skill_tooltip_type2Formats skill tooltip string variant 2: with optional "Ap : %d" suffix when param_6 != 0.
0x00822550140format_skill_tooltip_type3Formats skill tooltip string variant 3: with optional "Ap : %d" suffix when param_6 != 0, alternate format string.
0x008225E0123format_skill_tooltip_type4Formats skill tooltip string variant 4: "%s Use Lv.%d, Sp : %d" or with trailing markers depending on param_2 flag.
0x00822660134format_skill_tooltip_type5Formats skill tooltip string variant 5: "%s Use Lv.%d, Sp : %d" with optional "Ap : %d" suffix when param_5 != 0.
0x008226F0134format_skill_tooltip_type6Formats skill tooltip string variant 6: "%s Use Lv.%d, Sp : %d" with optional "Ap : %d" suffix when param_5 != 0, alternate format.
0x0082F560155CNavigationWnd__ctorConstructor for CNavigationWnd. Sets vtable PTR_FUN_0112fe98, initializes fields to 0/default, records timeGetTime, sets waypoint indices to -1. Size 0x124 bytes.
0x0082F60071CNavigationWnd__dtorDestructor for CNavigationWnd. Sets vtable and destroys base UIWindow.
0x0082F65093CNavigationWnd__scalar_dtorScalar deleting destructor for CNavigationWnd (size 0x124). Destroys base and conditionally frees memory.
0x0082F6B099CNavigationWnd__scalar_dtor_baseScalar deleting destructor for CNavigationWnd base class (size 0xE0). Sets vtable, destroys base UIWindow, conditionally frees memory.
0x008320001278CItemLink__validate_and_parse_linkValidates and parses an item link string. Searches for link delimiters in the input string, extracts tokens iteratively, parses item IDs via base62 decode, validates against item database. If item ID is "0000T0" (placeholder), skips. Checks item existence via FUN_00ddd4e0 and validates with FUN_00dfbe40/FUN_00dfa3c0. Shows error 0xE8D if invalid.
0x00832500306CItemLink__contains_link_delimiterChecks if a string contains any item link delimiters. Searches for 4 different delimiter strings (stored at globals DAT_01338ea8, DAT_01338ec0, DAT_01338dd0, DAT_01338de8) using std::_Traits_find. Returns 1 if any delimiter found, 0 otherwise.
0x008326402832UIChat__parse_color_delimited_stringParses string with delimiter tokens, extracts substrings and optional color/numeric values via atoi
0x00833160257base62_decode_stringDecodes a base-62 encoded string to an integer. Uses character set "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" (62 chars). Processes each character positionally with powers of 62 to reconstruct the integer value. Used for item link ID decoding.
0x00833270723base62_encode_intEncodes an integer to a base-62 string. Uses character set "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ". Repeatedly divides by 62 and maps remainders to characters, then reverses the result. Output stored in param_1 as std::string.
0x008335501032CItemLink__strip_link_tagsStrips item link tags from a string, returning plain text. Searches for link start/end delimiters, extracts the display text between them. Also processes embedded link data via FUN_00835600. Modifies the string in-place by removing link markup while preserving visible content.
0x00833960156check_item_link_system_initChecks if the item link system is initialized. Uses a singleton pattern with DAT_01456ef0 as flag pointer. On first call, allocates a 1-byte flag set to 1 and returns 1 (initialized). Returns 0 if initialization fails. Frees flag on failure.
0x00833A0031release_item_link_systemReleases the item link system singleton. Frees the 1-byte flag at DAT_01456ef0 and sets it to NULL. Counterpart to check_item_link_system_init.
0x00833A201841CItemLink__extract_next_tokenExtracts the next token from an item link string. Searches for delimiter pairs (start/end markers), strips prefix content, and returns the token between delimiters. Updates param_3 (offset) to track position. Handles nested delimiters by iterating. Returns 1 on success, 0 when no more tokens found.
0x008341601167split_comma_separated_stringSplits a comma-separated string into a vector of std::string. Scans for ',' (0x2C) characters using memchr, extracts each substring, and appends to the output vector (param_2). Each element is a 24-byte std::string. Handles the trailing segment after the last comma.
0x008345F0903CItemLink__parse_item_id_from_linkParses an item ID from a link token string. Skips the first 6 characters (link prefix), then scans for delimiter characters from a set of 14 chars (DAT_01130138). Accumulates digit characters into a buffer, then calls base62_decode_string to convert the accumulated string to an integer item ID. Returns -1 if no valid ID found.
0x00834980671CItemLink__extract_display_textExtracts display text from an item link string. Finds the link start delimiter, extracts text before it, then finds the end delimiter and extracts text after it (removing the link markup). Returns the resulting display string without link tags.
0x00834C302498CItemLink__format_link_with_paramsFormats an item link with parameter substitution. Splits the parameter string by commas, then for each parameter, finds '%' markers in the format string and substitutes values. Handles %s (string), %d (integer via atoi), and %f (float via atof) format specifiers. Also handles MsgStr() references by looking up message IDs via FUN_00b00f00. Uses lua_util_sprintf for formatting.
0x00835600648CItemLink__build_formatted_stringBuilds a formatted string from item link data. Copies input string, calls parse_link_metadata to extract metadata, formats with lua_util_sprintf, and returns the result as a new std::string. Used as a helper in the link processing pipeline.
0x00835890560CItemLink__parse_link_metadataParses metadata from an item link string. Finds the end-link delimiter, extracts base62-encoded values for two output parameters (2 chars each starting at offset 0 and 2), then extracts the remaining text after the start-link delimiter as display text. Returns 1 if all parts found, 0 if metadata is incomplete.
0x00835B00435CItemLink__split_at_delimiterSplits a string at a link delimiter (DAT_01338e78). Returns a struct with: flag (0=not found, 1=found), the prefix before the delimiter, and the suffix after the delimiter. Used to separate link content from surrounding text.
0x00835CC0204CItemLink__create_link_entryCreates an item link entry structure. Initializes a 49-byte structure containing two std::strings (display text at offset 0 and link data at offset 24) plus a flag byte at offset 48. Used to store parsed link information for rendering.
0x00836780106CTextLine__pair_ctorConstructs a text line pair by copy-constructing two std::strings from param_2 and param_3. Returns param_1. Used as a pair<string,string> constructor for text layout elements.
0x008367F0219CTextLineData__copy_ctorCopy constructor for CTextLineData. Copies the vtable pointer, then copies the inner DWORD vector (allocating and memcpy-ing the buffer), and copies the trailing int field at offset 0x10. Structure is 20 bytes total.
0x008368D0154CTextLineData__default_ctorDefault constructor for CTextLineData. Zeroes out all 56 bytes (14 DWORDs) of the structure. Sets all fields including vtable pointer, vectors, and counters to zero.
0x00836970783CTextLayout__ctorConstructor for CTextLayout. Initializes text layout with vtable, parent window, text content, dimensions (width/height), alignment flags, colors, and scroll settings. Parses the text into lines, handles alignment modes (0=left, 1=right, 2=center), calculates line heights, and positions text elements. Stores total height at offset 0x7C.
0x00836D40169CTextElement__ctor_with_spritesConstructs a CTextElement with custom sprite resources. Calls base constructor, sets vtable, initializes counters, loads two sprite resources from the provided params. Stores current timeGetTime value for animation timing.
0x00836DF0171CTextElement__ctor_default_spritesConstructs a CTextElement with default sprite resources from DAT_011303d8 and DAT_011303ec. Same as ctor_with_sprites but uses hardcoded sprite paths. Records creation time via timeGetTime.
0x00836EA0139CTextElement__ctor_with_stringConstructs a CTextElement with an embedded string. Sets vtable to PTR_FUN_011302fc, initializes an empty std::string at offset 0x7C, and sets a flag byte at offset 0x79 to 1 (enabled).
0x00836F30183CTextElement__ctor_with_fontConstructs a CTextElement with font settings. Sets vtable to PTR_FUN_0113014c, font size to 12 (offset 0x80), default color to 0xFFFFFF white (offsets 0x8C and 0x94), and initializes an empty std::string at offset 0x98.
0x00836FF0161CTextLine__move_ctorMove constructor for CTextLine (48-byte struct). Moves the std::string from source to destination (stealing the internal buffer), then copies the remaining 24 bytes of data (offsets 0x18-0x2F) directly.
0x0083710077CTextLine__dtor_wrapperWrapper destructor for a CTextLine element. Calls STL_string_dtor to destroy the embedded string. Simple forwarding function.
0x00837150105CTextLine__pair_dtor_0Destructor for a text line pair (variant 0). Destroys two embedded std::strings in sequence.
0x008371C0105CTextLine__pair_dtor_1Destructor for a text line pair (variant 1). Destroys two embedded std::strings in sequence. Nearly identical to pair_dtor_0 but with different local_8 state tracking.
0x00837390187CTextLayout__dtorDestructor for CTextLayout. Sets vtable, swaps line data back to global pool (DAT_01456f04/08/0C), destroys child elements, clears line vector, destroys embedded string, and frees the 8-byte vector.
0x0083745065CTextLineData__dtor_wrapperWrapper destructor for CTextLineData. Calls stub_005feb20 to destroy the internal data.
0x008374A071CTextElement__sprite_dtorDestructor for sprite-type CTextElement. Sets vtable to PTR_FUN_01130224 and calls base destructor FUN_00a79e90.
0x008374F092CTextElement__string_dtorDestructor for string-type CTextElement. Sets vtable to PTR_FUN_011302fc, destroys the embedded std::string at offset 0x7C, then calls base destructor FUN_00a79e90.
0x0083755095CTextElement__font_dtorDestructor for font-type CTextElement. Sets vtable to PTR_FUN_0113014c, destroys the embedded std::string at offset 0x98, then calls base destructor FUN_00a79e90.
0x008375B065CTextLine__string_dtor_wrapperWrapper destructor for a CTextLine string. Calls STL_string_dtor to destroy the embedded string.
0x00837600171CTextElement__get_text_contentGets the text content from a CTextElement. If flag at offset 8 is set, returns a copy of the internal buffer range [begin, end) as a new std::string. Otherwise returns an empty string.
0x008376B092bitfield_iterator__advanceAdvances a bitfield iterator by param_2 positions. Handles both forward (positive) and backward (negative) movement. Uses 32-bit word boundaries (offset 0 = word pointer, offset 4 = bit index within word). Advances the word pointer and wraps the bit index at 32.
0x00837710211CTextLayout__scalar_deleting_dtorScalar deleting destructor for CTextLayout. Performs full CTextLayout cleanup (same as CTextLayout__dtor), then frees the 0x80-byte allocation if flag bit 0 is set in param_2.
0x008377F099CTextElement__sprite_scalar_dtorScalar deleting destructor for sprite-type CTextElement (0x98 bytes). Calls base destructor, then frees memory if flag bit 0 is set.
0x00837860116CTextElement__string_scalar_dtorScalar deleting destructor for string-type CTextElement (0x94 bytes). Destroys embedded string, calls base destructor, then frees memory if flag bit 0 is set.
0x008378E0119CTextElement__font_scalar_dtorScalar deleting destructor for font-type CTextElement (0xB0 bytes). Destroys embedded string, calls base destructor, then frees memory if flag bit 0 is set.
0x00837960103parse_hex_color_stringParses a 6-digit hex color string (e.g. "FF0000") to RGB. Uses strtol with base 16. Swaps byte order from RRGGBB to 0x00BBGGRR format. Sets flag byte at output+0 to 1 on success, 0 on failure. Output color stored at output+4.
0x008379D0353string_compare_with_optionsCompares two std::strings with configurable options. If case-insensitive flag is clear, converts both strings to uppercase via toupper before comparison. Supports exact match mode (flag 1) using full length comparison, or prefix match mode using min-length comparison. Returns true if strings match.
0x00837B4056CTextLayout__append_hyperlinkAppends a hyperlink to the text layout. If the line vector is full (offset 0x64 == 0x68), grows it by 600 entries via SetItemEntry. Then appends the hyperlink string content to the current layout.
0x00837B8061CTextLayout__add_element_to_lineAdds a text element to the current line in the layout. If the element vector at offset 0x70 is full, grows it. Appends the element pointer to the last line's element list.
0x00837BC01377CTextLayout__process_emoji_tagProcesses emoji/emoticon tags in text layout. Uses regex to match patterns like [e](\\d{1,3}) or [e](\\d{1,3})\\s(\\s)(\\d{1,3}). Parses emoji ID, looks up emoji sprite resources via CFmt functions, creates a CTextElement with the emoji sprite, and adds it to the layout. Also handles frame index for animated emojis.
0x008381301604CTextLayout__process_text_segmentProcesses a text segment for the text layout. Word-wraps the text, measures its width, and either adds it as inline text or creates a new line if it exceeds the available width. Handles hyperlink URLs by searching/highlighting them. Creates CTextElement instances for text blocks and positions them within the layout grid.
0x00838780542CTextLayout__process_image_tagProcesses image tags [i](\\d{1,7}) in text layout. Uses regex to extract image ID, creates a string-type CTextElement (0x94 bytes) with the image path, sizes it to 25x25 pixels, and adds it to the layout. Handles line overflow by creating new lines as needed.
0x008389A0916CTextLayout__layout_rich_text_blockLays out a rich text block within the text layout. Measures the text width, and if it exceeds the available area, splits it into multiple lines using FormatRichText and SearchAndHighlight. Creates CTextElement instances via BuildPageIndex for each fragment and adds them to the layout's element list.
0x00838D401233CTextLayout__dispatch_layout_elementsMain dispatch loop for laying out text elements. Iterates through parsed elements (48-byte entries) and dispatches by type: 600=plain text (with newline check), 0x1B5/0x1B6/0x1D0/0x205/0x21B=rich text segments, 0x233=color-formatted text, 0x236=emoji tags, 0x241=image tags. Each case creates appropriate layout elements.
0x00839310266string_find_case_insensitiveSearches for a substring within a string with optional case-insensitive mode. If case-insensitive (flag=0), converts both strings to uppercase using toupper before searching. Returns position or -1 if not found.
0x00839D3045get_lua_callback_pairGets a pair of Lua callback function pointers based on param_2. Special case for 0x1B5 returns different callback pair.
0x0083BC80253UIChat__parse_embedded_color_codeParses ^RRGGBB color code from string; converts hex to RGB with byte-swap, stores at +0x20/+0x24
0x0083CFE0174get_next_char_multibyteGets the next multibyte character from a string using CharNextExA with the current code page (DAT_016d3a78). Returns a new std::string containing just that character, or empty if at end.
0x0083DB4093CTextLayout__position_elements_centeredPositions text elements with center alignment. Calculates total width of all elements, then centers them by starting at (containerWidth - totalWidth) / 2. Calls each element's virtual SetPosition (vtable+0x10) with computed x,y coordinates.
0x0083DBA072CTextLayout__position_elements_leftPositions text elements with left alignment. Places elements sequentially from x=0, incrementing x by each element's width (offset 0x14). Calls each element's virtual SetPosition.
0x0083DBF059CTextLayout__position_elements_rightPositions text elements with right alignment. Iterates elements in reverse order, starting from containerWidth and decrementing by each element's width. Calls each element's virtual SetPosition.
0x0083DCF044copy_8byte_elements_rangeCopy 8byte elements range
0x0083DD2045relocate_8byte_elements_rangeRelocates a range of 8-byte elements using offset-based addressing. Copies each pair of DWORDs from source [param_1, param_2) to destination at (source_addr + param_3 - param_1).
0x0083DEF0101safe_strtol_from_stringSafe wrapper around strtol for std::string input. Clears errno, calls strtol with the specified base, validates the result. Throws std::invalid_argument if no digits parsed, std::out_of_range if ERANGE. Optionally returns the number of characters consumed via param_2.
0x0083DF60103rbtree__destroy_subtree_recursiveRecursively destroys all nodes in a red-black tree subtree. Traverses left children, recursively destroys right subtrees, then frees each 0x1C-byte node. Stops when reaching a sentinel node (flag at offset 0xD is non-zero).
0x0083E110155CRBTreeMap__base_ctorBase constructor for CRBTreeMap. Sets vtable to PTR_FUN_01130508, initializes counters to 0, allocates a 0x1C-byte sentinel node (self-referencing with flag 0x0101 at offset 0xC).
0x0083E1B0325CListBox__ctorConstructor for CListBox UI widget. Extends CRBTreeMap with list box properties: default color 0xFFFFFF, column count 6, row count 3, font size 12, alignment settings, and scroll parameters. Sets vtable to PTR_FUN_011305e0.
0x0083E30067rbtree__free_sentinel_nodeFrees the sentinel node of a red-black tree. If the node pointer at offset+4 is non-null, frees the 0x1C-byte allocation.
0x0083E350111rbtree__clear_all_nodesClears all nodes from a red-black tree. Iterates through nodes starting from the first child of the root, recursively destroys subtrees, frees each node, then frees the sentinel node.
0x0083E3D078rbtree__free_sentinel_wrapper_aWrapper to free the sentinel node of a red-black tree. Frees the 0x1C-byte sentinel allocation at offset+4 if non-null. Used in destructor context A.
0x0083E42078rbtree__free_sentinel_wrapper_bWrapper to free the sentinel node of a red-black tree (variant B). Same as wrapper_a but used in different destructor contexts.
0x0083E47065rbtree__clear_nodes_wrapperWrapper that calls rbtree__clear_all_nodes to clear and free all tree nodes.
0x0083E4C0104CRBTreeMap__dtorDestructor for CRBTreeMap. Sets vtable to PTR_FUN_01130508, clears all tree nodes, then calls base destructor FUN_00a79e90.
0x0083E530135CListBox__dtorDestructor for CListBox. Sets vtable to PTR_FUN_011305e0, clears list data, resets to base vtable PTR_FUN_01130508, clears tree nodes, then calls base destructor.
0x0083E620128CRBTreeMap__scalar_deleting_dtorScalar deleting destructor for CRBTreeMap (0x8C bytes). Clears tree nodes and calls base destructor. Frees memory if flag bit 0 set.
0x0083E6A0159CListBox__scalar_deleting_dtorScalar deleting destructor for CListBox (0xCC bytes). Calls full CListBox destructor chain, then frees memory if flag bit 0 set.
0x0083E740295CListBox__insert_or_update_entryInserts or updates an entry in the CListBox red-black tree. Searches tree for matching key (param_2). If not found, allocates a new 0x1C-byte node and inserts it. Updates the node's float position values from offsets 0x1C and 0x20 of the source data.
0x0083E8701137CListBox__add_text_entryAdds a text entry to CListBox. Stores the string in the entry vector (offset 0xC0), creates a CTextLayout for text measurement and line breaking, positions child text elements with alignment and scroll offset, adds them to the child list and rbtree, then updates scroll layout. Handles vertical alignment modes (center=4, bottom=5).
0x0083ECF0228CListBox__clear_all_entriesClears all entries from the CListBox. Iterates all tree nodes calling FUN_00a82e50 to hide each entry, then destroys the tree. Resets scroll position, clears hyperlink strings, and calls FUN_0083f030 to update layout.
0x0083EDE086CListBox__calc_total_content_heightCalculates the total content height of the CListBox. Iterates all tree entries, tracking the maximum of (entry height + y offset). Returns the largest bottom edge value.
0x0083EE40161CListBox__create_scrollbarCreates a scrollbar sprite widget for the CListBox. Allocates a UISpriteWidget (0xB4 bytes), positions it at (param_2-13, 0), registers with parent, hides it initially, then calls FUN_0083f030 to update layout.
0x0083EEF044CListBox__apply_background_colorApplies the CListBox background color. Reads the color from offset 0x8C and notifies the parent. If the color equals 0xFF00FF (magenta = transparent), triggers a parent refresh via vtable+0x98.
0x0083EF5049CListBox__notify_scroll_directionSends scroll direction message for the CListBox. If param_2 < 0, sends message 10 (scroll up); otherwise sends message 9 (scroll down). Uses the parent window's msg handler at vtable+0x94.
0x0083EF90147CListBox__resize_to_fit_contentResizes the CListBox to fit its content. Calculates required height from entry positions plus padding. Clamps to minimum param_2. If height changed, calls virtual SetSize and updates layout. Returns 1 if resized, 0 if no change needed.
0x0083F030270CListBox__update_scroll_layoutUpdates the CListBox scroll layout. Calculates total content height from all entries, shows/hides scrollbar based on overflow, clamps scroll position, updates scrollbar range, and repositions all entries based on current scroll offset. Triggers parent refresh.
0x0083F140114CListBox__on_resizeHandles CListBox resize. Updates scroll offset based on new position, moves the scrollbar, repositions it, and sends a refresh message (0x3C) to the parent.
0x0083F1C064CRBTreeMap__on_messageMessage handler for CRBTreeMap. Handles scroll messages (7=delta, 9=up by 10, 10=down by 10) by adjusting scroll position and updating layout. Messages 0x12/0x13 forward scroll direction to parent. Falls through to base handler FUN_00a83660.
0x0083F280150CListBox__on_messageExtended message handler for CListBox. Adds handling for: msg 0x1D (set text content), msg 0x3C (refresh layout via FUN_0083f5e0), msg 0x62 (hyperlink click dispatch: 0x1B5=URL, 0x1B6=scroll, 0x1D0=click target, 0x205=item info, 0x21B=NPC navigation). Scroll uses 30-pixel steps instead of 10.
0x0083F59041CListBox__set_alignment_modeSets alignment mode for CListBox text. Values 0-2 set horizontal alignment at offset 0xB4 (0=left, 1=right, 2=center). Values 3-5 set vertical alignment at offset 0xB5.
0x0083F5E01562CListBox__rebuild_layoutRebuilds the CListBox layout from stored text entries. Concatenates adjacent text strings with separator, creates a new CTextLayout, positions child elements with alignment offsets (left/right/center vertical modes 3-5), adds them to the child list and rbtree, then updates scroll layout. Called on msg 0x3C (refresh).
0x0083FE10129rbtree__lower_bound_by_stringFinds the lower bound in a red-black tree by string comparison. Traverses the tree comparing node keys (std::string at offset 16) with param_3. Returns iterator struct with node pointer, comparison result, and parent.
0x00840010234rbtree__copy_constructCopy-constructs a red-black tree. Allocates a 0x18-byte sentinel node (self-referencing with flag 0x0101 at offset 0xC), then deep-copies the tree structure from the source via CEnchantRBTree__deep_copy_recursive. Sets up min/max node pointers by traversing leftmost and rightmost paths. Copies the node count from the source.
0x0084010084CNavigationWnd__ctor_aConstructor variant A for CNavigationWnd. Calls FUN_0096e7b0 for base initialization, sets vtable to PTR_FUN_01130870.
0x0084016084CNavigationWnd__ctor_bConstructor variant B for CNavigationWnd. Calls FUN_0096e9d0 for base initialization, sets vtable to PTR_FUN_011306bc.
0x00840220112CLinkedList__clear_all_nodesClears all nodes from a linked list. Traverses the list freeing each 0x50-byte node, calling FUN_00ae7510 for cleanup before deallocation. Nulls out head and tail pointers.
0x00846FB0734CInfoWnd__init_child_widgetsInitializes CInfoWnd child widgets: creates UITextLabel (0xB0 bytes, field 0x2f) with close checkbox texture, UISpriteWidget scrollbar (0xB4 bytes, field 0x30), and two CShopCategoryList button widgets (fields 0x35, 0x36) with texture paths. Calculates visible rows from height and triggers refresh message 0x17.
0x00847290340CInfoWnd__init_child_widgets_simpleSimplified CInfoWnd child widget init: creates UITextLabel (field 0x2f) with close checkbox and UISpriteWidget scrollbar (field 0x30). No category list buttons (unlike full init). Calculates visible rows and sends refresh message 0x17.
0x008473F01708CInfoWnd__build_info_pageRenders the CInfoWnd buy-tab item page. Draws grid background with tiled borders, iterates visible categories from the linked list, renders item sprites with names/prices, shows selection highlight on selected row, draws sub-item slots with quantity labels, and right-aligns total price per category. Uses msgstringtable entry 0xE69 for the header title.
0x00847AA01850CInfoWnd__layout_info_contentRenders the CInfoWnd sell-tab item page. Similar to build_info_page but uses msgstringtable entry 0xBA for header, handles three item rendering modes based on piVar8[0xe] flag and piVar8[3]: (1) weapon/special items drawn as plain sprites, (2) stackable items with count=0 drawn via UIWidget__draw_item_with_count, (3) normal items drawn via UIWindow__draw_item_sprite_with_count. Sub-item prices are per-unit (no multiplication by quantity).
0x0084A85046toggle_window_visibilityToggles window visibility by type ID. If window exists, closes it (via tls_clear_field). If not, creates it via CGameObject__create_window_by_type. Returns true if window was created.
0x0084E8D0151UIHyperlinkTextWidget__ctor_0084e8d0UIHyperlinkTextWidget constructor. Calls UIBaseTextRender base ctor, sets vtable to UIHyperlinkTextWidget, initializes fields 0x2f-0x33 (default color 0x5c5c5c gray).
0x0084E970168UIBaseTextRender__ctorUIBaseTextRender constructor. Sets vtable to UIBaseTextRender, initializes text rendering fields: font size 0xc, color 0xffffff (white), various flags to 0.
0x0084EBD0222UICheckboxWidget__ctor_0084ebd0UICheckboxWidget constructor. Calls CEffect base ctor, sets vtable to UICheckboxWidget, initializes item list (0x1f-0x23), allocates red-black tree sentinel node (0x18 bytes) at offset 0x22.
0x0084ECB0114UITooltipWidget__ctorUITooltipWidget constructor. Calls UIDialogBox base ctor, sets vtable to UITooltipWidget, initializes vector fields at offsets 0x48-0x4a to empty.
0x0084ED30155UIInputBoxWidget__ctorUIInputBoxWidget constructor. Calls UIDialogBox base ctor, sets vtable to UIInputBoxWidget, initializes string buffer (0x48-0x4d) and vector fields (0x4e-0x50) to empty.
0x0084EDD0186UITextDisplayWidget__ctorConstructor for UITextDisplayWidget. Calls base UIWidget ctor, sets vtable to PTR_UITextDisplayWidget__scalar_deleting_dtor_011321ac. Initializes two SSO string fields, a boolean flag at offset 0x2b, and a counter at offset 0xc.
0x0084EE90223UISkillInfoDialog__ctorConstructor for UISkillInfoDialog. Extends UITextWidget (calls UITextWidget__default_ctor), sets vtable to PTR_UISkillInfoDialog__scalar_deleting_dtor_011319cc. Initializes a vector of 0x18-byte elements, pre-allocates 30 entries. Stores list count and selection index.
0x0084F010371UITabWidget__ctor_0084f010Constructor for UITabWidget variant. Calls base UIWidget ctor, sets vtable to PTR_UITabWidget__scalar_deleting_dtor. Initializes 5 SSO string fields, active tab index, selection state, tab count (12), layout flags, and a boolean at offset 0x38.
0x0084F190192UIRichTextWidget__ctor_with_colorsConstructor for UIRichTextWidget with color initialization. Extends UITextDisplayWidget (calls its ctor), sets vtable to PTR_UIRichTextWidget__scalar_deleting_dtor. Reads two RGB color triplets from CColorPicker (palette indices 6 and 18, both row 2) and stores them at offsets 0x2d-0x32.
0x0084F25084UISimpleDialogWidget__ctorConstructor for UISimpleDialogWidget. Extends UITextWidget (calls UITextWidget__default_ctor), sets vtable to PTR_UISimpleDialogWidget__scalar_deleting_dtor_01131614. Minimal derived class with no additional fields.
0x0084F2B0703UIListDialogWidget__copy_ctorCopy constructor for UIListDialogWidget. Extends UISimpleDialogWidget, then sets vtable to PTR_UIListDialogWidget__scalar_deleting_dtor_011318d8. Copies text content via UITextWidget__copy_ctor, allocates a circular linked list sentinel (0x14 bytes), a scrollbar child widget, and copies list configuration fields (item count, selection, scroll state, column widths, header strings) from the source object.
0x0084F570408UIListDialogWidget__default_ctorDefault constructor for UIListDialogWidget. Extends UISimpleDialogWidget (calls UITextWidget__default_ctor), sets vtable to PTR_UIListDialogWidget__scalar_deleting_dtor. Allocates a circular linked list sentinel, initializes all list fields to zero/default: item count, selection, scroll state, column widths, header strings. No scrollbar child created.
0x0084F710153UIScrollableText__ctor_baseBase constructor for UIScrollableText. Extends UITextWidget, sets vtable to PTR_UIScrollableText__scalar_deleting_dtor_01131700. Initializes scroll index to -1, allocates SSO string buffer at offset 0x48, and clears boolean flag at offset 0x4e. This is the base-level ctor; the full ctor at 0084f7b0 also sets a second vtable pointer.
0x0084F7B0166UIScrollableText__ctorConstructor for UIScrollableText widget. Calls parent FUN_0084fae0 (base UI text widget ctor), sets vtable to PTR_UIScrollableText__scalar_deleting_dtor, initializes scroll index to -1, allocates a std::string at offset 0x48 (scroll text buffer), and sets a boolean flag at offset 0x4e.
0x0084FCC0179UIEditableTextWidget__ctorConstructor for UIEditableTextWidget. Extends UITextWidget (calls UITextWidget__ctor), sets own vtable, initializes edit buffer (std::string at offset 0x47), cursor/selection fields, and sets a mode value of 3 at offset 0x2d. Initializes caret position to -1.
0x0084FD80117UICheckboxWidget__ctorConstructor for UICheckboxWidget. Calls base UIWidget ctor, sets vtable, initializes checked state and group ID to 0, then sets checkbox dimensions to 24x24 pixels via FUN_00a7b470.
0x0084FE0084UIEquipSlotWidget__ctorConstructor for UIEquipSlotWidget. Extends UIItemSlotWidget (calls UIItemSlotWidget__constructor), sets own vtable. Simple derived class for equipment slot display in the equipment window.
0x0084FED0171UIHyperlinkTextWidget__ctorConstructor for UIHyperlinkTextWidget. Extends base text widget (FUN_0084e970), sets vtable, initializes hyperlink URL string (std::string at offset 0x28), link color to 0xFFFFFF (white), hover state, and click flags.
0x0084FF8084UIRichTextWidget__ctorConstructor for UIRichTextWidget. Extends a base text display widget (FUN_0084edd0), sets own vtable. Simple derived class for rich text rendering with formatting support.
0x0084FFE0308UITabWidget__default_ctorConstructor for UITabWidget. Calls base UIWidget ctor, sets vtable, initializes 4 std::string members (tab labels), active tab index, click counter, widget type ID to 0xD7, tab count to 12, and layout flags.
0x008501D0112UILabelWidget__ctor_008501d0Constructor for UILabelWidget. Extends UIItemSlotWidget (calls its scalar_del_dtor as base ctor), sets vtable to PTR_UILabelWidget__scalar_deleting_dtor_01132cd0. Stores a parameter value at offset 0x30, initializes boolean at 0x2e and counter at 0x2f to zero.
0x00850240114UILabelWidget__ctor_with_paramsConstructor variant for UILabelWidget with additional parameters. Extends UIItemSlotWidget, sets vtable to PTR_UILabelWidget__scalar_deleting_dtor_01132cd0. Takes a value parameter stored at offset 0x30, a boolean flag at 0x2e, and clears counter at 0x2f.
0x008502C095UIItemInfoWidget__ctorConstructor for UIItemInfoWidget. Extends UIItemSlotWidget (calls UIItemSlotWidget__constructor), sets vtable to PTR_UIItemInfoWidget__scalar_deleting_dtor_01132a44. Stores a parameter at offset 0x45 (info type or display mode).
0x00850320267UIItemSlotWidget__constructorConstructor for an item slot widget. Extends base item widget (FUN_0084edd0), sets vtable PTR_FUN_0113288c, initializes three SSO string fields, item data fields (quantity, refine, etc.), and sets enabled flag to 1.
0x00850430192UISimpleTextWidget__ctorConstructor for UISimpleTextWidget. Calls base UIWidget ctor, sets vtable to PTR_UISimpleTextWidget__scalar_deleting_dtor_01132bf8. Initializes two SSO string fields, a counter at offset 0x2d, and positioning values (0x2b=0, 0x2c=0xFFFFFFEC which is -20).
0x008504F094UIEditableTextWidget__ctor_variantConstructor variant for UIEditableTextWidget. Calls UIEditableTextWidget__constructor (the full ctor at 00850550), then sets vtable to PTR_UIEditableTextWidget__scalar_del_dtor2_01131d68. Initializes a value at offset 0x36. Acts as a thin wrapper around the base editable text ctor.
0x00850550303UIEditableTextWidget__constructorConstructor for editable text widget. Sets vtable PTR_FUN_01131c90, initializes two SSO string fields, font size 0xC, text color 0xFFFF00FF, disabled color 0x969696, clears text content and editing state fields.
0x00850680110UIBaseWidget__ctorConstructor for UIBaseWidget. Calls base UIWidget ctor, sets vtable to PTR_UIBaseWidget__scalar_deleting_dtor_01132f58. Initializes counter at offset 0xc to 0, mode field at 0x1f to 3, and state field at 0x20 to 0.
0x008506F0277UIFormattedTextWidget__ctorConstructor for UIFormattedTextWidget. Extends UITextDisplayWidget (calls its ctor), sets vtable to PTR_UIFormattedTextWidget__scalar_deleting_dtor_011327b0. Initializes 4 SSO string fields at offsets 0x2f, 0x35, 0x3b, 0x41. Also initializes positioning fields at 0x2d-0x2e and a flags field at offset 0x47.
0x00850810128UIHyperlinkTextWidget__ctor_variantConstructor variant for UIHyperlinkTextWidget. Extends UIBaseTextRender (calls UIBaseTextRender__ctor), sets vtable to PTR_UIHyperlinkTextWidget__scalar_del_dtor3_01131ffc. Initializes link state fields at 0x2f-0x31 and sets a gray color value (0x5C5C5C) at offset 0x32.
0x00850890128UITooltipWidget__ctor_00850890Constructor for UITooltipWidget. Extends UITextWidget (calls UITextWidget__default_ctor), sets vtable to PTR_UITooltipWidget__scalar_del_dtor2_01131ab8. Initializes 4 fields at offsets 0x47-0x4a to zero (tooltip position, visibility state, content pointer).
0x00850BE0103UILinkedList__destroy_nodes_12byteDestroys a singly-linked list of 0xC (12) byte nodes. Sets the sentinel's count to 0, then walks the linked list starting from the first node, calling operator_delete(0xC) on each. Finally deletes the sentinel node itself.
0x00850C50121UILinkedList__destroy_nodes_20byteDestroys a singly-linked list of 0x14 (20) byte nodes. Sets the sentinel's count to 0, walks the list calling std__vector_free_aligned + operator_delete(0x14) on each node. Finally deletes the sentinel. For nodes that contain both vector data and a link pointer.
0x00851030139UIHyperlinkTextWidget__dtor_00851030Destructor for UIHyperlinkTextWidget. Sets vtable chain: first UIHyperlinkTextWidget vtable (011320d4), then 01131ffc. Frees a vector, destroys a vector of structs, sets UIBaseTextRender vtable (01131e40), then calls CEffect__dtor for final base cleanup.
0x008510C095UIBaseTextRender__dtorDestructor for UIBaseTextRender. Sets vtable to PTR_UIBaseTextRender__scalar_deleting_dtor_01131e40, destroys a vector of structs via CFmt__vector_of_structs_dtor, then calls CEffect__dtor for base widget cleanup.
0x0085127095UIComplexDialog__destructor_baseBase destructor for complex dialog.
0x008512D0110UIComplexDialog__scalar_del_dtorScalar deleting destructor for complex dialog.
0x00851340107UIBaseDialog__destructor_2Destructor variant 2 for base dialog.
0x008513B0130UIBaseDialog__scalar_del_dtorScalar deleting destructor for base dialog.
0x00851440120UIBaseDialog__scalar_del_dtor_2Scalar deleting destructor variant 2 for base dialog.
0x008514C0155UIComplexDialog__scalar_del_dtor_2Scalar deleting destructor variant 2 for complex dialog.
0x008515E071UISmallWidget__destructorDestructor for small widget. Sets vtable, calls base widget destructor.
0x00851630222UIComplexDialog__destructorDestructor for complex dialog. Sets vtable 011318d8, cleans up child elements (FUN_00853f20), destroys string vector elements, deallocates vectors, destroys formatting objects, then chains to base dialog destructor (FUN_008517e0).
0x0085171095UISmallWidget__scalar_del_dtorScalar deleting destructor for small widget.
0x00851770108UIComplexDialog__destructor_2Destructor variant 2 for complex dialog.
0x008517E0192UIBaseDialog__destructorDestructor for base dialog. Sets vtable 01131528, destroys a string field, frees a linked list of 0xC-byte nodes at offset 0x3F, destroys two more strings, and calls base widget destructor.
0x008518A0110UIBaseDialog__destructor_3Destructor variant 3 for base dialog.
0x0085191071UIBaseDialog__scalar_del_dtor_3Scalar deleting destructor variant 3 for base dialog.
0x0085196071UIComplexDialog__scalar_del_dtor_3Scalar deleting destructor variant 3 for complex dialog.
0x00851A00126UIItemDisplayWidget__scalar_del_dtorScalar deleting destructor for item display widget.
0x00851A80120UIItemDisplayWidget__scalar_del_dtor_2Scalar deleting destructor variant 2 for item display widget.
0x00851B00137UIItemDisplayWidget__destructorDestructor for item display widget. Sets vtable 01132da8, destroys four string fields, calls base widget destructor.
0x00851B90120UILabelWidget__base_dtorDestructor for UILabelWidget. Sets vtable chain, destroys 2 std::string members, then calls base widget destructor FUN_00a79e90.
0x00851C1088UIItemInfoWidget__dtorDestructor for UIItemInfoWidget. Sets vtable, clears field at offset 0x45, then calls parent destructor FUN_00851c70 to clean up text and string resources.
0x00851C70168UIMultiStringWidget__base_dtorDestructor for UIMultiStringWidget. Destroys 3 std::string members at current vtable level, then switches to parent vtable and destroys 2 more std::string members before calling base widget destructor FUN_00a79e90.
0x00851D20107UISimpleTextWidget__dtorDestructor for UISimpleTextWidget. Sets vtable, destroys 2 std::string members, then calls base widget destructor FUN_00a79e90.
0x00851D90123UIEditableTextWidget__dtorDestructor for UIEditableTextWidget. Sets vtable chain (derived then base), destroys 2 std::string members (edit buffer and display text), then calls base widget destructor FUN_00a79e90.
0x00851E10110UIBasicTextWidget__dtorDestructor for UIBasicTextWidget. Sets vtable, destroys 2 std::string members, then calls base widget destructor FUN_00a79e90.
0x00851E80183UIFormattedTextWidget__dtorDestructor for UIFormattedTextWidget. Destroys 4 std::string members at current level, switches to parent vtable and destroys 2 more std::strings, then calls base widget destructor FUN_00a79e90.
0x00851F40126UIHyperlinkTextWidget__dtorDestructor for UIHyperlinkTextWidget. Sets vtable, frees vector data, then calls parent destructor chain (CFmt__func cleanup) and base widget destructor FUN_00a79e90.
0x00852040163UIHyperlinkTextWidget__scalar_deleting_dtorScalar deleting destructor for UIHyperlinkTextWidget. Sets vtable chain, frees vector, calls CFmt cleanup and base widget dtor. Frees 0xD0 bytes if param_2 & 1.
0x008520F0119UIBaseTextRender__scalar_deleting_dtorScalar deleting destructor for base text render widget. Sets vtable, calls CFmt cleanup and base widget dtor. Frees 0xA0 bytes if param_2 & 1.
0x00852250134UICheckboxWidget__scalar_deleting_dtorScalar deleting destructor for UICheckboxWidget. Destroys a std::map, calls base dialog box constructor chain for cleanup, then base widget dtor. Frees 0x90 bytes if param_2 & 1.
0x008522E0119UITooltipWidget__scalar_deleting_dtorScalar deleting destructor for UITooltipWidget. Sets vtable, calls dialog box scalar del dtor, then dialog box destructor. Frees 300 bytes if param_2 & 1.
0x00852360134UIInputBoxWidget__scalar_deleting_dtorScalar deleting destructor for UIInputBoxWidget. Sets vtable, calls dialog box cleanup and string destructor, then UIDialogBoxBase destructor. Frees 0x144 bytes if param_2 & 1.
0x008523F0131UITextDisplayWidget__scalar_deleting_dtorScalar deleting destructor for UITextDisplayWidget. Sets vtable, destroys 2 std::string members, then calls base widget destructor. Frees 0xB4 bytes if param_2 & 1.
0x00852480154UISkillInfoDialog__scalar_deleting_dtorScalar deleting destructor for UISkillInfoDialog. Calls virtual destructor on child widget at offset 0x51 if present, destroys string and CFmt, then calls UIBaseDialog destructor. Frees 0x14C bytes if param_2 & 1.
0x008525B0179UITabWidget__scalar_deleting_dtorScalar deleting destructor for UITabWidget. Destroys 5 std::string members (4 tab labels + 1 other), then calls base widget dtor. Frees 0x10C bytes if param_2 & 1.
0x00852670144UIRichTextWidget__scalar_deleting_dtorScalar deleting destructor for UIRichTextWidget. Sets vtable chain, destroys 2 std::string members, calls base widget dtor. Frees 0xCC bytes if param_2 & 1.
0x0085270099UISimpleDialogWidget__scalar_deleting_dtorScalar deleting destructor for UISimpleDialogWidget. Sets vtable, calls UIBaseDialog destructor. Frees 0x11C bytes if param_2 & 1.
0x00852770246UIListDialogWidget__scalar_deleting_dtorScalar deleting destructor for UIListDialogWidget. Cleans up list items (iterates vector of 0x18-byte string entries destroying each), frees vectors, calls CFmt cleanup twice, then dialog box and base dialog destructors. Frees 0x188 bytes if param_2 & 1.
0x00852870119UIScrollableText__scalar_deleting_dtorScalar deleting destructor; sets vtable 01131700, size 0x13c, destroys string and calls base dtor
0x008528F0132UIScrollableText__scalar_del_dtor2Scalar deleting destructor for UIScrollableText. Sets vtable chain, destroys scroll text string, then calls UIBaseDialog destructor. Frees 0x13C bytes if param_2 & 1.
0x0085298038UIEquipSlotWidget__scalar_deleting_dtorScalar deleting destructor for UIEquipSlotWidget. Simply calls UIBaseDialog destructor. Frees 0x11C bytes if param_2 & 1.
0x008529B0134UIEditableTextWidget__scalar_deleting_dtorScalar deleting destructor for UIEditableTextWidget. Sets vtable, calls CFmt cleanup and string dtor, then UIBaseDialog destructor. Frees 0x144 bytes if param_2 & 1.
0x00852A4099UICheckboxWidget__scalar_del_dtor2Scalar deleting destructor variant for UICheckboxWidget (alternate vtable). Sets vtable, calls base widget dtor. Frees 0x8C bytes if param_2 & 1.
0x00852AB099UIEquipSlotWidget__scalar_del_dtor2Scalar deleting destructor variant for UIEquipSlotWidget. Sets vtable, calls UIMultiStringWidget base dtor. Frees 0x114 bytes if param_2 & 1.
0x00852B90150UIHyperlinkTextWidget__scalar_del_dtor2Scalar deleting destructor for UIHyperlinkTextWidget (alternate vtable path). Destroys URL string, switches to base text render vtable, calls CFmt cleanup and base widget dtor. Frees 0xC0 bytes if param_2 & 1.
0x00852C30144UIRichTextWidget__scalar_del_dtor2Scalar deleting destructor variant for UIRichTextWidget. Sets vtable chain, destroys 2 strings, calls base widget dtor. Frees 0xB4 bytes if param_2 & 1.
0x00852CC0161UITabWidget__scalar_del_dtor2Scalar deleting destructor for UITabWidget (alternate vtable). Destroys 4 std::string members, then calls base widget dtor. Frees 0xF0 bytes if param_2 & 1.
0x00852DE0144UILabelWidget__scalar_deleting_dtorScalar deleting destructor for UILabelWidget. Sets vtable chain, destroys 2 strings, calls base widget dtor. Frees 0xC4 bytes if param_2 & 1.
0x00852E70116UIItemInfoWidget__scalar_deleting_dtorScalar deleting destructor for UIItemInfoWidget. Sets vtable, clears field at offset 0x45, calls UIMultiStringWidget base dtor. Frees 0x118 bytes if param_2 & 1.
0x00852EF038UIMultiStringWidget__scalar_deleting_dtorScalar deleting destructor for UIMultiStringWidget. Calls UIMultiStringWidget base dtor. Frees 0x114 bytes if param_2 & 1.
0x00852F20131UISimpleTextWidget__scalar_deleting_dtorScalar deleting destructor for UISimpleTextWidget. Sets vtable, destroys 2 strings, calls base widget dtor. Frees 0xB8 bytes if param_2 & 1.
0x00852FB0147UIEditableTextWidget__scalar_del_dtor2Scalar deleting destructor variant for UIEditableTextWidget. Sets vtable chain, destroys 2 strings, calls base widget dtor. Frees 0xDC bytes if param_2 & 1.
0x00853050134UIBasicTextWidget__scalar_deleting_dtorScalar deleting destructor for UIBasicTextWidget. Sets vtable, destroys 2 strings, calls base widget dtor. Frees 0xD8 bytes if param_2 & 1.
0x008530E093UIBaseWidget__scalar_deleting_dtorScalar deleting destructor for a base UI widget. Calls base widget dtor FUN_00a79e90. Frees 0x84 bytes if param_2 & 1.
0x00853140207UIFormattedTextWidget__scalar_deleting_dtorScalar deleting destructor for UIFormattedTextWidget. Destroys 4 strings at own level, switches to parent vtable and destroys 2 more. Calls base widget dtor. Frees 0x120 bytes if param_2 & 1.
0x00853210150UIHyperlinkTextWidget__scalar_del_dtor3Scalar deleting destructor variant 3 for UIHyperlinkTextWidget. Frees vector, calls CFmt cleanup and base widget dtor. Frees 0xCC bytes if param_2 & 1.
0x008532B0113UITooltipWidget__scalar_del_dtor2Scalar deleting destructor variant for UITooltipWidget. Calls CFmt cleanup and UIBaseDialog destructor. Frees 300 bytes if param_2 & 1.
0x008533B0315UIListWidget__add_item_stringAdds a string item to a UIListWidget. Copies param_2 (char*) into a local std::string, then pushes it into the vector at offset 0x88 (item list). Each entry is 0x18 bytes (std::string). After adding, calls FUN_00853530 to recalculate layout.
0x008534F062UIListWidget__add_item_with_dataAdds an item to a UIListWidget with both a string label and associated data value. Calls UIListWidget__add_item_string for the text, then pushes the data value (param_3) into the secondary vector at offset 0xC0.
0x00853530555UIListWidget__recalc_layoutRecalculates the layout of a UIListWidget based on its items. Iterates through all string items in the vector at offset 0x21, measures each text width (via FUN_00a80580) and height (via FUN_00a80170) using the font specified at offset 0x9a. Supports multiple font sizes (0x14-0x1c). Tracks max width and total height, then resizes the widget via virtual calls.
0x00853760171UIListWidget__navigate_selectionNavigates the selected item in a UIListWidget by offset param_2. Wraps around from end to start and vice versa. Retrieves the string of the newly selected item and calls virtual functions to update display (0xD4=set text, 0x5C=refresh, 0x98=invalidate).
0x00853EA0113UIListWidget__set_item_textSets the text of a list item at given index. If param_3 is -1, targets the last item. Updates the string at the specified index in the items vector and calls virtual invalidate (0x98).
0x00853F20405UIListDialogWidget__clear_all_itemsClears all items from a UIListDialogWidget. Removes duplicate entries from the string vector at offset 0x168 (compact + destroy), destroys remaining strings, clears a bool vector at 0x174-0x180, frees two auxiliary buffers at 0x160 and 0x164.
0x00854130257decode_base62_stringDecodes a base-62 encoded string to an integer. Uses charset "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" (62 chars). Processes each character positionally with powers of 0x3E (62). Used for decoding item link IDs in chat messages.
0x008551B04632UITextBox__render_text_contentMain text rendering: word-wraps lines, positions cursor, draws text with colors, handles scrolling and IME
0x008563D01442UIEditableTextWidget__renderRenders an editable text widget. Handles both focused (local player) and unfocused states. For focused: builds display string with cursor positions, renders text with optional shadow color, draws selection highlight via FUN_00857040, and blinks the cursor using timeGetTime at 500ms intervals. For unfocused: renders static text or password mask. Supports both single-color and gradient text rendering (FUN_00a84360 vs FUN_00a869c0).
0x008569801314UIEditableTextWidget__render_altAlternative render method for UIEditableTextWidget. Nearly identical to UIEditableTextWidget__render but without the password/empty-text special case checks. Same cursor blink, selection highlight, and text rendering logic.
0x00856FB0140UITextBox__draw_selection_highlightDraws text selection highlight rectangle with computed color from style palette
0x008570D0527UIFormWidget__render_labelsRenders label entries in a form-style widget. Iterates the vector of 0x34-byte label entries at offset 0x120. For each entry with text (offset 0x10 != 0): calculates position (auto-centers if x=-1000 or y=-1000), applies shadow/style based on form style (0=light shadow, 1=warm shadow, 2=bright, 3=disabled), then renders text with FUN_00a84360.
0x00858B8091UIEditableTextWidget__get_hint_textGets the hint/placeholder text from an editable text widget. Copy-constructs the std::string at offset 0xF8 into the output parameter. Returns param_2 unchanged.
0x00858BE0107UISkillWidget__get_skill_levelGets the current skill level for a skill widget. Loads two skill tree paths from std::strings at offsets 0xCC and 0xE4, resolves them via FUN_00aee770, finds the skill tree node via UISkillWnd__get_skill_tree_node, then reads the skill level (short) at offset +2 in the skill data array.
0x00858C50106UISkillWidget__get_skill_idGets the skill ID for a skill widget. Same lookup pattern as get_skill_level but reads the skill ID (short) at offset +0 instead of +2 in the skill data array.
0x00858CC081UIFormWidget__get_entry_index_at_yGets the index of the form entry at a given Y position (param_3). Iterates the vector of 0x1C-byte entries at offset 0x7C, accumulating heights. Returns the index when the cumulative height exceeds param_3, or -1 if not found.
0x00858D2046UIEditableTextWidget__get_display_textGets the current display text from an editable text widget. If the widget belongs to the local player, first calls virtual function 0xE0 (refresh text). Returns pointer to the std::string at offset 0x36 (handles SSO).
0x00858D5035UIEditableTextWidget__get_text_lengthGets the length of the text in an editable text widget. For the local player, returns the global text length from DAT_016d3b0c+0x44; otherwise returns the cached length from offset 0xE8.
0x00858D8091UIEditableTextWidget__get_alt_textGets the alternate/secondary text from an editable text widget. Copy-constructs the std::string at offset 0x104 into the output parameter. Returns param_2 unchanged.
0x00858DE0286UIFormWidget__get_entry_infoGets detailed info about a form entry by index. Copies the string from the 0x34-byte entry at the specified index in the vector at 0x120. Also copies: font size (0x24), color (0x2C), shadow flag (0x28), bold flag (0x30), x position (0x1C), y position (0x20) into output params.
0x00858F30281UIFormWidget__flush_pending_entriesFlushes pending form entries. Initializes output string, iterates the vector of 0x18-byte entries at offset 0x124, appends each entry's string data to the output, then destroys all entries and resets the vector size.
0x0085920029UIEditableTextWidget__should_show_cursorDetermines if the cursor should be shown. Returns 0 (don't show) if the input field has focus (FUN_00ab1120) and a global flag (DAT_014576a4) is not set. Returns 1 otherwise.
0x0085CF90435UISkillWidget__draw_skill_sprite_tileDraws a skill sprite tile for a skill tree widget. Loads sprite atlas and model resources, gets a skill tree node via UISkillWnd, finds the correct sprite frame via CTileCache (find or acquire), and renders it through the DirectX draw call at vtable offset 0x28. Handles sprite offset, clipping, and frame indexing.
0x0085D6C0961UISkillWidget__draw_skill_sprite_compositionDraws a composed skill sprite with multiple layers. Loads sprite atlas (0xE4) and model (0xCC) resources, optionally loads an RSM model (0xFC) for 3D sprites. Gets skill tree nodes via UISkillWnd and iterates sprite layers (0x24-byte entries). For each layer, finds/acquires tile from CTileCache, computes position relative to center with clipping, and renders through DirectX at vtable offset 0x28. Handles animation frame cycling via 0xBC/0xC0/0xC4.
0x0085DAF0421UITextRenderer__draw_text_with_shadowRenders text with optional shadow; calls draw function multiple times with different offsets for shadow/outline effect
0x0085DCA0459UITextRenderer__draw_text_with_shadow_and_offsetDraws text with shadow/outline effects and an x-offset from member 0xD8. Similar to draw_text_with_shadow but adds horizontal offset to all draw positions. If shadow flag (0x88) is set, draws white shadow at (offset+2, 2). If outline flag (0x8C) is set, draws 4-directional outline. Final text drawn at (offset+1, 1) using RGB from 0x7C/0x80/0x84.
0x0085DE70325UITextRenderer__draw_text_with_outlineDraws text with outline effect at (0,0). If shadow flag (0x88) is set, draws white shadow at (1,1). If outline flag (0x8C) is set, draws 3-directional outline at (-1,0), (1,0), (0,1). Final text at (0,0) using RGB from 0x7C/0x80/0x84. Uses font/bold settings from 0xA0/0xA1.
0x0085EA90131UITabWidget__handle_clickHandles click events on a tab widget. Iterates the vector of 0x1C-byte tab entries at offset 0x1F, accumulating widths to find which tab was clicked at Y position param_3. If a different tab is selected, updates the active tab index at 0xC and notifies the parent via virtual callback (0x94) with event type 0x16.
0x0085EE7090UISlider__on_scroll_position_changeUISlider scroll position change handler. Calculates new position based on mouse Y divided by per-item height. Clamps to valid range [0, max_items-1]. If changed, updates state and notifies parent with message 0x16.
0x00860080846CItemLink__parse_item_dataParses item link data from a vector of integers. Looks up item info by ID, checks for "unknown item" string pattern, extracts item type, slot count, card IDs, refine level, and random options. Populates the output structure (param_2) with parsed item fields. Returns 1 on success, 0 if empty or unknown item.
0x008603D0944CItemLink__parse_base62_delimited_fieldsParses base62-encoded fields from a delimited string. Iterates characters starting at *param_3, accumulating digit characters into a string buffer. When a delimiter (*param_5 or *param_6) is encountered, decodes the accumulated buffer via decode_base62_string and appends the result to the output vector at param_1. Used for parsing item link encoded data.
0x008607901221parse_item_link_fieldsParses item link field values from a delimited string. Iterates characters from param_2 starting at *param_3, accumulating base-62 encoded segments separated by a delimiter character (*param_4). Decodes each segment via decode_base62_string and stores results into the output array at param_1. Returns the count of fields parsed.
0x00860C603656CItemLink__build_display_textBuilds a formatted display string for an item link. Resolves item name, card slot names, and enchant info. Constructs the full colored/formatted link text for display in chat messages.
0x00861B502396UIScrollableTextWidget__handle_scroll_eventHandles scroll-related events for a scrollable text widget. Manages scroll position updates, content navigation, and viewport calculation.
0x008624B02803UIEditableTextWidget__handle_input_eventHandles text input events for an editable text widget. Processes keyboard input, cursor movement, text selection, copy/paste, and character insertion.
0x00862FB0718UIEditableTextWidget__update_cursor_scrollUpdates cursor position and horizontal scroll offset for an editable text widget. Refreshes text content, clamps cursor positions within max text length, measures text width to determine if horizontal scrolling is needed. Uses CharNextExA for multi-byte character handling (Korean text). Adjusts the scroll offset (field 0x2C) to keep the cursor visible within the widget bounds.
0x0086328069UIComboBoxWidget__on_resizeHandles resize events for a combo box widget. Calls base resize handler FUN_00a82eb0, resizes the child dropdown widget at offset 0x4C to (width-10, 0), updates its height, and calls virtual function 0xE8.
0x00863300110UIFormWidget__handle_eventHandles events for a form widget. Event 0xD: sets active index and invalidates. Event 0xE: iterates entries, resolves texture paths via FUN_00af62d0/FUN_00b01200/FUN_00aee770, accumulates heights, resizes widget. Event 0x4B: clears all string entries. Event 0x4E: adds a new entry with texture name and height.
0x008633D31stub_nop_008633d3Single-byte stub function (size=1)
0x008633E11stub_nop_008633e1Single-byte stub function (size=1)
0x0086344D1stub_nop_0086344dSingle-byte stub function (size=1)
0x008634AC1stub_nop_008634acSingle-byte stub function (size=1)
0x00863640344UIComboBoxWidget__handle_key_eventHandles keyboard events for a combo box widget. Key 0x12 (Up): navigates to previous item in the dropdown list. Key 0x13 (Down): navigates to next item. Other keys: delegates to FUN_008641c0. Updates the displayed text via virtual function 0xD4 and refreshes via 0x5C.
0x008637A0930UIComboBoxWidget__handle_input_eventHandles input events for a combo box widget. Processes text input, handles Enter key to submit/send chat, manages input history, and delegates to parent handlers.
0x00863C701226UIComboBoxWidget__handle_widget_eventHandles widget-level events for a combo box. Processes focus changes, text updates, and delegates to parent event handlers.
0x00864CE054UICheckboxWidget__on_click_notify_parentClick handler for checkbox widget. On left click (param_3 == 0), notifies parent via virtual callback 0x94 with event type 6 and checkbox value from 0x2C. Other clicks delegate to FUN_008641c0.
0x00864D2059UIListWidget__handle_key_eventKeyboard handler for list widget. Key 0x12 (Up): navigate selection by -1. Key 0x13 (Down): navigate by +1. Other keys: delegate to FUN_008641c0.
0x00865220314UIComboBoxWidget__handle_key_navigateKeyboard navigation for combo box using history entries at offset 0x47. Key 0x12 (Up): decrements history index (0x4A), clamps to 0. Key 0x13 (Down): increments, wraps to empty string at end. Updates display text via virtual 0xD4 and refreshes via 0x5C. Other keys delegate to FUN_008641c0.
0x0086559097UIImageWidget__set_texture_pathSets the texture path for an image widget. Copies the path string to offset 0x11C, resolves the texture via CResourceMgr, and sets widget width/height from the texture dimensions (0x114/0x118).
0x00865600163UIMapView__set_map_texturesSets the map view texture paths. Stores two texture path strings at offsets 0x80 and 0x98, resolves both textures via CResourceMgr, and sets the widget dimensions from the primary texture size (0x114=width, 0x118=height).
0x008656E094UICheckboxWidget__set_texture_pathSets the texture path for a checkbox widget. Copies path to string at 0x7C, resolves texture, gets dimensions from texture info (0x114/0x118), sets widget size.
0x0086574094UICheckboxWidget__set_texture_path_altSets an alternate texture path for a checkbox widget. Same pattern as UICheckboxWidget__set_texture_path - copies path, resolves texture, updates size. Likely for checked/unchecked state texture.
0x008658D087UIRadioButton__set_selectedSets the selected state of a radio button. If not disabled (field 0x1F == 0): sets active index to param_2, invalidates self and parent window (via FUN_00a7d6d0), notifies parent with event type 6 including widget ID (0xB) and selected index (0xC).
0x0086593059UIRadioButton__set_selected_no_notifySets the selected state of a radio button without notifying parent. Same as UIRadioButton__set_selected but omits the parent callback. Invalidates self and parent window.
0x00865C40113UILabelWidget__set_label_textSets the label text on a label widget. Assigns the C-string if non-null and non-empty, resizes the widget if the label has content (min width 24px), height = field 0x30 + 25, then invalidates.
0x00865CC021UIListWidget__set_font_and_recalcSets the font at offset 0x80 and recalculates the list widget's layout by calling UIListWidget__recalc_layout.
0x00867960136UIScrollableText__set_scroll_textSets the scrollable text content. Assigns param_2 to the text string at offset 0x48, calls virtual layout (0xE4). If this is the local player's widget, clears and re-inserts text into the input manager. Then calls virtual 0xD8 and invalidates parent widget.
0x00867A00145UIComboBoxWidget__push_history_entryPushes the current text into the combo box history list. If history has more than 4 entries, removes the oldest. Copies the string from offset 0xD8 into the history vector (0x134-0x138). Resets history navigation index to 0.
0x00867FC0270UIEditableTextWidget__set_text_and_configure_buttonSets editable text at offset 0x36, calls virtual layout (0xE4), syncs with input manager if local player. Then searches text for URL-like patterns (two global pattern strings) and calls UIButtonWidget__configure_from_params if found. Invalidates parent widget.
0x008680D0136UIEditableTextWidget__set_input_textSets the input text of an editable text widget. Assigns text to string at offset 0x36, calls virtual layout (0xE4). If this is the local player's widget, clears and re-inserts text into the input manager. Then calls virtual 0xD8 and invalidates parent widget.
0x0086816029UIFormWidget__add_entry_and_invalidateAdds a form entry via FUN_008680d0 and then invalidates the widget for redraw.
0x0086823071UIFormWidget__add_entry_or_set_countAdds a form entry via FUN_008680d0. If param_2 is an empty string, sets the entry count (0x128) to the current number of entries in the vector (0x11C-0x120, 0x18 bytes each).
0x00868280128UIListWidget__clear_and_add_itemClears all existing list items and adds a single new item with data. Destroys all string entries in the vector at 0x84, resets secondary vector at 0xBC/0xC0, then calls UIListWidget__add_item_string with param_2 and pushes param_3 as associated data.
0x00868300333UIEditableTextWidget__truncate_text_to_fit_widthTruncates the editable text field (0xD8) to fit within the maximum display width. Compares text length (0xE8) against the item display area (0x88 - 0xF0). Uses CharNextExA/CharPrevExA for multibyte-safe character navigation. Updates the input manager with the truncated text and pads with spaces if needed.
0x00868450281UIEditableTextWidget__pad_text_to_fill_widthPads the editable text field (0xD8) to fill the display width when the item count (0x88) exceeds text length (0xE8). Truncates text to fit using multibyte-safe CharNextExA/CharPrevExA, then appends space characters until text length meets the item display width.
0x008685E0353UIFormWidget__add_text_entryAdds a text entry to a form widget. Takes text ID, font params, position, and flags. Auto-centers horizontally (x=-1000) and vertically (y=-1000) by measuring text. Checks for duplicate entries by ID. Stores as a 0x1C-byte struct in the vector at 0x138.
0x0086A670162UIFormWidget__update_entry_textUpdates the text of a form entry at a specified index. Validates index against the vector bounds (0x48-0x49 range with 0x34-byte entries). If valid and not the same pointer, copies the string data. Then invalidates and cleans up temporary string.
0x0086B02015UIContainer__is_emptyReturns true if the container's child count at offset 0x24 is zero (container is empty).
0x0086BF0047int64_min_compareReturns the smaller of two 64-bit integer values via signed comparison
0x0086BF30141map_node_init_with_string_moveInitializes map tree node by copying key fields and move-constructing embedded string
0x0086BFC0147map_node_init_with_string_move_0086bfc0Initializes map tree node variant, copies fields and move-constructs embedded string at offset 1
0x0086C190176UIColorButton__ctorConstructs UI color button widget, sets RGB color constants (0x8E,0x2A,0x4B,0x8F)
0x0086C310124UIPanel__ctor_0086c310Constructs UI panel with vtable 0x01134200, zeroes fields at offsets 0x29 and 0x33
0x0086C390124UIPanel__ctor_0086c390Constructs UI panel with vtable 0x01134128, zeroes fields at offsets 0x29 and 0x33
0x0086C410175UITextInput__ctorConstructs UI text input widget with embedded string buffer (SSO), initial cursor pos -1
0x0086C590388UIMultiStringWidget__ctorConstructs UI widget with 6 embedded SSO strings and vector fields, sprite ID 0xD7
0x0086C720135UITokenizerWidget__ctorConstructs UITokenizerWidget with base CEffect ctor, embedded sprite via CSprite__constructor_inline, and SSO string buffer at offset 0x68
0x0086C8D0619UIListBase__ctorConstructs list base widget with 2 sentinel nodes, reserves 0xF0 capacity in 6 vectors
0x0086CB4094UIListWidget__ctor_0086cb40Constructs list widget calling base 0x0086d940, sets ID field to 0x2739
0x0086CBA0124UIScrollableWidget__ctorConstructs scrollable widget calling base 0x0086cc20, zeroes 4 scroll state fields
0x0086CC20192UIRenderWidget__ctorConstructs render widget with RGB color (0xFF each), zeroes transform fields, spacing=0x28
0x0086CCE094UITreeWidget__ctorConstructs tree widget inheriting from 0x0086cd40, zeroes extra field
0x0086CD40340UITreeBase__ctorConstructs tree base with RB-tree sentinel node, RGB color 0xFF, line height 0x10, ID 0x2739
0x0086CF40151UILabelWidget__ctorConstructs label widget with SSO string buffer, initial index -1, zeroes extra fields
0x0086CFE0121UIRenderWidgetEx__ctorConstructs extended render widget inheriting UIRenderWidget, adds string buffer at offset 0x2A
0x0086D060321UIChatWindow__ctorConstructs chat window with 2 arrays of 5 strings each, 3 SSO strings, timestamp via timeGetTime
0x0086D1B0154UIToggleWidget__ctorConstructs toggle widget, calls base 0x0084f250, sets toggle state=1 and zeroes fields
0x0086D250121UISimpleDialogWidgetDerived__ctorConstructs a derived UISimpleDialogWidget. Calls UISimpleDialogWidget__ctor base, sets vtable 0x0113741C, zeroes 3 state fields and a bool flag
0x0086D2D0163UIThemeColors__ctorConstructs theme color widget with 8 hardcoded color values for UI theme palette
0x0086D380126UIContainer__ctor_0086d380Constructs UI container widget, zeroes 4 layout/position fields
0x0086D400205UISelectWidget__ctorConstructs select widget with 2 SSO strings, ID 0x2739, selection index -1
0x0086D4D095UIFmtDialog__ctor_0086d4d0Constructs UIFmtDialog widget. Calls UIWidget__ctor_0086eeb0 base, then CItemDesc__ctor_alt sub-init, sets vtable to UIFmtDialog (0x01136D9C)
0x0086D59091UIRenderWidgetSimple__ctorConstructs simple render widget inheriting UIRenderWidget, zeroes bool at offset 0x2A
0x0086D5F0119UIFmtDialogEx__ctorConstructs extended UIFmtDialog (0x200-size variant). Calls UIWidget__ctor_0086eeb0 base + CItemDesc__ctor_alt, sets enabled=1 and state=0, vtable 0x01137268
0x0086D670258UIListDetailWidget__ctorConstructs list detail widget with 0x1D0 byte sentinel node and 2 SSO string buffers
0x0086D78084UIListDetailWidgetA__ctorConstructs list detail variant A inheriting UIListDetailWidget, overrides vtable
0x0086D7E0114UIListDetailWidgetB__ctorConstructs list detail variant B inheriting UIListDetailWidget, adds 3 extra fields
0x0086D86084UIListDetailWidgetC__ctorConstructs list detail variant C inheriting UIListDetailWidget, overrides vtable only
0x0086D8C0113UIGridWidget__ctorConstructs grid widget from base 0x0086d940, sets column count=0xC and zeroes flags
0x0086D940331UIScrollListBase__ctorConstructs scroll list base with vectors, RGB 0xFF, line height 16, scroll mode 3
0x0086DA90317UITreeBase__ctor_variantConstructs tree base variant with RB-tree sentinel (0x30 bytes), RGB 0xFF, line height 16
0x0086DBD0317UITreeBase__ctor_scrollmode3Constructs tree base with scroll mode 3, RB-tree sentinel, RGB 0xFF, line height 16
0x0086DD10138UIScrollListHighlight__ctorConstructs highlighted scroll list from base, highlight color 0xD2D2D2, selection index -1
0x0086DDA0104UITreeHighlight__ctorConstructs highlighted tree widget, line height 15, highlight color 0x92C0FA
0x0086DE10127UIListEx__ctorConstructs extended list widget inheriting UIListBase, sets RGB to 0xFF
0x0086DE90204UIColoredLabel__ctorConstructs colored label from UIThemeColors, custom palette, line spacing 0x19, enabled flag
0x0086DF60121UISearchDialog__ctorConstructs UISearchDialog widget from base 0x0086eeb0, adds SSO string buffer at offset 0x3E for search text, vtable 0x0113787C
0x0086DFE0212UICanvasWidget__ctorConstructs canvas widget with RGB 0xFF, zeroes 12 transform/state fields
0x0086E0C084UIScrollList__ctor_0086e0c0Constructs scroll list inheriting UIScrollListBase, overrides vtable only
0x0086E120134UIThemedWidget__ctorConstructs themed widget from UIThemeColors, zeroes 5 state/layout fields
0x0086E1B093UISimpleWidget__ctorConstructor for UISimpleWidget. Calls CEffect__ctor base, sets UISimpleWidget80 vtable, zeroes single state field at offset 0x1f.
0x0086E210252UIMultiColumnWidget__ctorConstructs multi-column themed widget, zeroes 9 column state fields at 10-dword intervals
0x0086E310130UINamedWidget__ctorConstructs named widget with string copy for name parameter and extra state field
0x0086E41094UIBaseWidgetA__ctorConstructor for UIBaseWidgetA. Inherits UISpriteWidget, overrides vtable, sets spacing field to 10.
0x0086E47094UIBaseWidgetA2__ctorConstructor for UIBaseWidgetA2. Inherits UISpriteWidget, overrides vtable, sets spacing field to 9.
0x0086E4D0114UIBaseWidgetA_B8__ctorConstructor for UIBaseWidgetA_B8. Inherits UISpriteWidget, sets column count=6, spacing=0, row height=12.
0x0086E550223UISpriteWidget__ctorConstructs sprite widget with default spacing 13, enabled flag, zeroes 9 state fields
0x0086E630164UISpriteWidgetEx__ctorConstructs extended sprite widget, zeroes 8 additional layout/state fields
0x0086E6E0104UISmallSpriteWidget__ctorConstructs small sprite widget with spacing=7 in both dimensions
0x0086E750128UIScrollListEx__ctorConstructs extended scroll list from UIScrollListBase, adds 4 zeroed state fields
0x0086E840142UISliderWidget__ctorConstructs slider widget with parameter value, index -1, range 0x50000
0x0086E8D0149UISliderWidgetEx__ctorConstructs extended slider widget with param value, index -1, range 0x50000, extra bool flag
0x0086E97097UITwoStringWidget__ctorConstructor for UITwoStringWidget. Calls CEffect__ctor base then CItemDesc__ctor_alt for sub-object initialization. Sets UITwoStringWidget178 vtable.
0x0086E9E0110UITwoStringWidgetDerived__ctorConstructor for UITwoStringWidgetDerived. Same as UITwoStringWidget__ctor but overrides vtable a second time to UITwoStringWidgetDerived vtable at 0x011377A4.
0x0086EA50342UIFormWidget__ctorConstructs form widget with 4 SSO string buffers and state fields, enabled by default
0x0086ECF0305UITabWidget__ctorConstructs tab widget with 18 zeroed state fields, tab height=12, selection index -1
0x0086EE30113UIVectorIntWidget__ctorConstructor for UIVectorIntWidget. Calls CEffect__ctor base, sets UIVectorIntWidget vtable, zeroes 3 state fields at offsets 0x1f-0x21.
0x0086EEB0179UIFmtStringDialog__ctorConstructor for UIFmtStringDialog. Inherits UITextDisplayWidget, sets vtable, initializes SSO string buffer, text color 0xFFFFFF (white), and 3 extra state fields.
0x0086EF70300UIColoredScrollList__ctorConstructs colored scroll list, line height 18, computes font color via RGB lookup, adds 6 extra fields
0x0086F0A0223UIColoredScrollListBase__ctorConstructs colored scroll list base, line height 18, computes font color via RGB lookup
0x0086F180190UIIconWidget__ctorConstructs icon widget with icon size 5x20, zeroes 10 state fields
0x0086F240104UISprite12x9__ctorConstructs sprite widget variant with cell size 12x9
0x0086F600104cleanup_and_free_0x14_nodeRuns cleanup on 0x14 byte node via FUN_0089f2d0 then frees it
0x0086F69076rbtree_clear_and_free_sentinelClears all RB-tree nodes then frees 0x30 byte sentinel
0x0086F6F0126destroy_string_and_free_0x30_nodeDestroys embedded string then frees 0x30 byte node at offset 4
0x0086F770123destroy_string_and_free_0x30_node_0086f770Destroys embedded string then frees 0x30 byte node at offset 4
0x0086FA9087rbtree_clear_and_free_sentinel_0086fa90Clears all RB-tree nodes then frees 0x30 byte sentinel
0x0086FF4084UIColorButton__dtorDestructor for UI color button: resets 2 vtables then calls base cleanup
0x00870040172UIPanel__dtor_00870040Destructor for UI panel: releases 2 child widgets at offsets 0x33 and 0x29 then base cleanup
0x008700F0172UIPanel__dtor_008700f0Destructor for UI panel variant: releases 2 child widgets then base cleanup
0x008701A0136UITextInput__dtorDestructor for UI text input: destroys 3 embedded strings then base cleanup
0x008702D0182UIMultiStringWidget__dtorDestructor: destroys 5 embedded strings, one 0x1C vector, then base cleanup
0x00870390130UITokenizerWidget__dtorDestructor for UITokenizerWidget: calls sub-object dtor via vtable, destroys embedded CTokenizer string, resets CTokenizer vtable, then base cleanup.
0x008704D0216UIListBase__dtorDestructor for list base: destroys 3 format objects, 2 vectors, linked list, then base cleanup
0x008705B0108UIListWidget__dtorDestructor for list widget: destroys format object then base cleanup
0x0087062084UIScrollableWidget__dtorDestructor for scrollable widget: resets 2 vtables then base cleanup
0x0087068071UIRenderWidget__dtorDestructor for render widget: resets vtable then base cleanup
0x008706D0152UITreeWidget__dtorDestructor for tree widget: resets 3 vtables, clears RB-tree, frees sentinel, base cleanup
0x00870770139UITreeBase__dtor_00870770Destructor for tree base: resets 2 vtables, clears RB-tree, frees sentinel, base cleanup
0x008708B092UILabelWidget__dtorDestructor for label widget: destroys embedded string, base cleanup
0x00870910108UIRenderWidgetEx__dtorDestructor for extended render widget: destroys string, resets parent vtable, base cleanup
0x0087098095UIChatWindow__dtorDestructor for chat window: calls string array cleanup, then base cleanup
0x008709E071UIBaseDialog__dtorDestructor for UIBaseDialog: resets vtable to UIBaseDialog (0x0113403C), then calls UIBaseDialog__destructor for cleanup.
0x00870A3071UISmallWidget12C__dtorDestructor for UISmallWidget12C: resets vtable to 0x0113741C, then calls UISmallWidget__destructor for cleanup.
0x00870A8071UIThemeColors__dtorDestructor for theme colors widget: resets vtable, base cleanup
0x00870AD071UIContainer__dtorDestructor for container widget: resets vtable, base cleanup
0x00870B20110UISelectWidget__dtorDestructor for select widget: destroys 2 embedded strings, base cleanup
0x00870B90167UIFmtDialog__dtorDestructor for UIFmtDialog: destroys 2 embedded strings, sets UIFmtStringDialog vtable, destroys CFmt vector and another string, then calls UIBaseDialog__destructor_2.
0x00870CE084UIRenderWidgetSimple__dtorDestructor for simple render widget: resets 2 vtables, base cleanup
0x00870D40167UIFmtDialog200__dtorDestructor for UIFmtDialog200: destroys 2 embedded strings, sets UIFmtStringDialog vtable, destroys CFmt vector and another string, then calls UIBaseDialog__destructor_2.
0x00870DF0187UIListDialog__dtorDestructor for UIListDialog. Sets vtable, destroys two string members and additional data via FUN_0087a2f0, walks and frees linked list of 0x1D0-byte dialog item nodes, then calls UIBaseDialog destructor.
0x00870EB071UIListDialogDerived__dtorDestructor for a class derived from UIListDialog. Sets its own vtable pointer, then delegates to UIListDialog__dtor for cleanup.
0x00870F00104UIListDialogDerived2__dtorDestructor for second UIListDialog-derived class. Sets vtable, destroys additional data via FUN_0087a2f0, calls CFmt destructor, then UIListDialog__dtor.
0x00870F7089UIListDialogDerived3__dtorDestructor for third UIListDialog-derived class. Sets vtable, destroys extra data via FUN_0087a2f0, then calls UIListDialog__dtor.
0x00870FD0108UIFormattedWidget__dtorDestructor for UIFormattedWidget. Sets two vtable pointers (dual inheritance), calls CFmt destructor, then base class destructor at FUN_00a79e90.
0x0087104095UIFormattedWidgetBase__dtorDestructor for UIFormattedWidgetBase. Sets vtable, calls CFmt destructor (0058c230), then base destructor at FUN_00a79e90.
0x008710A0126UIMapWidget__dtorDestructor for UIMapWidget. Sets vtable, recursively destroys map tree nodes at this+0x88, frees map sentinel node, then calls base UI destructor FUN_00a79e90.
0x00871120126UIPacketWidget__dtorDestructor for UIPacketWidget. Sets vtable, destroys tree nodes at this+0x88 via CPacketBuffer__construct_006720c0 (recursive node cleanup), frees sentinel, calls base destructor.
0x008711A0135UIJsonWidget__dtorDestructor for UIJsonWidget. Sets vtable, resets vector end=begin at this+0xDC/0xD8, destroys JSON data via json__internal_0051dab0, sets base vtable, calls CFmt dtor and base UI dtor.
0x00871230139UIPacketWidgetDerived__dtorDestructor for UIPacketWidgetDerived. Sets two vtable pointers (derived then base), destroys tree nodes at this+0x88 via CPacketBuffer cleanup, frees sentinel, calls base destructor.
0x008712C084UIListDerived__dtorDestructor for UIListDerived. Sets two vtable pointers, then delegates to UIListBase__dtor for full cleanup.
0x0087132097UITripleInheritWidget__dtorDestructor for a widget with triple inheritance (3 vtable pointer sets). Cascades through three vtable assignments before calling base destructor CEffect__dtor.
0x00871390141UISearchDialog__dtorDestructor for UISearchDialog. Sets vtable, destroys a string member, sets base vtable, calls CFmt dtor, destroys another string, then calls UIBaseDialog__destructor_2.
0x0087142095UIFmtWidget__dtorDestructor for UIFmtWidget. Sets vtable, calls CFmt__vector_of_structs_dtor destructor, then calls base UI destructor CEffect__dtor.
0x00871480108UIFmtWidgetDerived__dtorDestructor for UIFmtWidgetDerived. Sets two vtables (derived then base), calls CFmt__vector_of_structs_dtor, then base UI destructor CEffect__dtor.
0x008714F084UIDualInheritWidget__dtorDestructor for UIDualInheritWidget. Sets two vtable pointers, then calls base UI destructor CEffect__dtor. No additional member cleanup needed.
0x0087155071UISimpleWidget__dtorDestructor for a simple UI widget. Sets vtable pointer, then calls base UI destructor CEffect__dtor. No member cleanup needed.
0x008715A0449UIMultiChildWidget__dtorDestructor for a UI widget with 8 child widget pointers (at offsets 0x31-0x77, each 0xA apart in DWORD indices). For each non-null child, calls virtual destructor at vtable+0x10 if child is separately allocated, then nulls the pointer. Calls base UI dtor last.
0x0087177092UIStringWidget__dtorDestructor for UIStringWidget. Sets vtable, destroys one string member, then calls base UI destructor.
0x008717D084UIDualInheritWidget2__dtorDestructor for second dual-inheritance UI widget. Sets two vtable pointers, then calls base UI destructor CEffect__dtor. No member cleanup.
0x0087183071UIBaseWidgetA__dtorSimple destructor for UIBaseWidgetA. Sets vtable, calls base UI destructor CEffect__dtor.
0x0087188084UIBaseWidgetADerived__dtorDestructor for class derived from UIBaseWidgetA. Sets two vtable pointers (derived then base), calls base UI destructor.
0x008718E0126UIDualFmtWidget__dtorDestructor for UI widget with dual CFmt formatters. Sets vtable, calls CFmt destructor twice (for two formatter members), then calls base UI destructor.
0x00871A00121UITwoStringWidget__dtorDestructor for UI widget with two string members. Sets vtable, destroys both strings via STL_string_dtor, then calls base UI destructor CEffect__dtor.
0x00871A80134UITwoStringWidgetDerived__dtorDestructor for UITwoStringWidgetDerived. Sets two vtable pointers, destroys two string members, then calls base UI destructor.
0x00871B10140UIFourStringWidget__dtorDestructor for a UI widget with 4 string members. Sets vtable, destroys all 4 strings sequentially, then calls base UI destructor.
0x00871BF095UIStringDialog__dtorDestructor for UIStringDialog. Sets vtable, destroys one string member, then calls UIBaseDialog__destructor_2.
0x00871C50164UIComplexDataWidget__dtorDestructor for a complex UI widget. Destroys: vector of 4-byte elements, CFmt formatter, JSON data, another vector, second CFmt, then calls base UI destructor. 5-phase cleanup with SEH.
0x00871D0092UIVectorIntWidget__dtorDestructor for UIVectorIntWidget. Sets vtable, destroys an integer vector member, then calls base UI destructor.
0x00871D60110UIFmtStringDialog__dtorDestructor for UIFmtStringDialog. Sets vtable, destroys CFmt formatter, destroys string member, then calls UIBaseDialog__destructor_2.
0x00871DD0172UIMultiLayerWidget__dtorDestructor for UIMultiLayerWidget with 3 inheritance levels. Sets 3 different vtables during cleanup, destroys 12-byte element vector, calls cleanup functions, CFmt destructor, then base UI destructor.
0x00871E80126UILayerFmtWidget__dtorDestructor for UILayerFmtWidget. Sets vtable, calls CUIChatLog__destroy_single_entry_b for layer cleanup, sets base vtable to UIFormattedWidgetBase, calls CFmt__vector_of_structs_dtor, then base UI destructor CEffect__dtor.
0x00871F00112UIResourceWidget__dtorDestructor for UIResourceWidget. Sets vtable, calls cleanup on resource at this+0x84 (via CUIChatWindow__process_hyperlink_data). If resource pointer is non-null, calls UILinkedListWidget__scalar_deleting_dtor to release it. Then calls base UI destructor CEffect__dtor.
0x00871F7084UIBaseWidgetADerived2__dtorDestructor for second class derived from UIBaseWidgetA. Sets two vtable pointers, calls base UI destructor.
0x00871FD0155UIStringArrayData__dtorDestructor for UIStringArrayData. Destroys 3 individual string members, then uses _eh_vector_destructor_iterator_ to destroy two arrays of 5 strings each (at offsets +8 and +0x80, each string 0x18 bytes).
0x00872520196UITwoChildWidget__scalar_deleting_dtorScalar deleting destructor for widget with 2 child widget pointers (0xD0 bytes). Destroys children via virtual dtors if separately allocated, calls base dtor, optionally frees self.
0x008725F038UIPanel__scalar_deleting_dtorScalar deleting destructor for UIPanel (0xD0 bytes). Calls UIPanel__dtor_008700f0, optionally frees memory.
0x00872620160UIThreeStringWidget__scalar_deleting_dtorScalar deleting destructor for widget with 3 string members (0x198 bytes). Destroys all 3 strings, calls base dtor, optionally frees.
0x008727A038UIMultiStringWidget2__scalar_deleting_dtorScalar deleting destructor for UIMultiStringWidget (0x124 bytes). Calls UIMultiStringWidget__dtor, optionally frees.
0x008727D0154UITokenizerWidget__scalar_deleting_dtorScalar deleting destructor for tokenizer-based widget (0x1B8 bytes). Calls virtual dtor on tokenizer at this+0x7C, destroys string, resets tokenizer vtable to CTokenizer, calls base dtor, optionally frees.
0x0087287099UIListWidget__scalar_deleting_dtorScalar deleting destructor for UIListWidget (0x130 bytes). Sets vtable, calls UIListBase__dtor, optionally frees.
0x0087295038UIListWidgetSmall__scalar_deleting_dtorScalar deleting destructor for small UIListWidget (0x124 bytes). Calls UIListBase__dtor, optionally frees.
0x0087298093UIHyperlinkText__scalar_deleting_dtorScalar deleting destructor for hyperlink text widget (0xCC bytes). Calls UIHyperlinkTextWidget__dtor, optionally frees.
0x008729E0132UIFmtWidgetDerived__scalar_deleting_dtorScalar deleting destructor for CFmt-derived widget (0xD8 bytes, dual inheritance). Sets vtables, calls CFmt dtor, base dtor, optionally frees.
0x00872B50176UIMapWidget3__scalar_deleting_dtorScalar deleting destructor for map-based widget (0xC8 bytes, triple inheritance). Sets 3 vtables, destroys map tree nodes at this+0x88, frees sentinel, calls base dtor, optionally frees.
0x00872C00163UIMapWidget2__scalar_deleting_dtorScalar deleting destructor for map-based widget (0xC4 bytes, dual inheritance). Sets 2 vtables, destroys map tree, frees sentinel, calls base dtor, optionally frees.
0x00872CB0188UIReportWidget__scalar_deleting_dtorScalar deleting destructor for report widget (0xCC bytes). Destroys report storage tree, sets packet buffer vtable, destroys packet tree, frees sentinel, calls base dtor, optionally frees.
0x00872D70116UIStringWidgetA0__scalar_deleting_dtorScalar deleting destructor for string widget (0xA0 bytes). Sets vtable, destroys string member, calls base dtor, optionally frees.
0x00872DF0132UIStringWidgetC0__scalar_deleting_dtorScalar deleting destructor for string widget (0xC0 bytes). Sets vtable, destroys string, sets base vtable, calls base dtor, optionally frees.
0x00872E80119UIStringArrayDialog__scalar_deleting_dtorScalar deleting destructor for dialog with string array data (0x28C bytes). Sets vtable, calls UIStringArrayData__dtor then UIDialogBoxBase__destructor, optionally frees.
0x00872F0099UIBaseDialog__scalar_deleting_dtorScalar deleting destructor for UIBaseDialog (0x11C bytes). Sets vtable, calls UIBaseDialog__destructor, optionally frees.
0x00872F70106UISmallWidget130__scalar_deleting_dtorScalar deleting destructor for small widget (0x130 bytes). Sets vtable, calls UISmallWidget__destructor, optionally frees.
0x00872FE099UISmallWidget12C__scalar_deleting_dtorScalar deleting destructor for small widget variant (300 bytes). Sets same vtable as UISmallWidget130, calls UISmallWidget__destructor, optionally frees.
0x00873130134UITwoStringWidgetCC__scalar_deleting_dtorScalar deleting destructor for two-string widget (0xCC bytes). Sets vtable, destroys 2 strings, calls base dtor, optionally frees.
0x008731C0191UIFmtDialog__scalar_deleting_dtorScalar deleting destructor for formatted dialog (0x1F8 bytes). Destroys 2 strings, sets base dialog vtable, calls CFmt dtor, destroys another string, calls UIBaseDialog__destructor_2, optionally frees.
0x00873280176UIMapWidget4__scalar_deleting_dtorScalar deleting destructor for map-based widget (0xC8 bytes, triple inheritance). Sets 3 vtables, destroys map tree, frees sentinel, calls base dtor, optionally frees.
0x008733A0191UIFmtDialog200__scalar_deleting_dtorScalar deleting destructor for formatted dialog (0x200 bytes). Destroys 2 strings, sets base dialog vtable, calls CFmt dtor, destroys string, calls UIBaseDialog__destructor_2, optionally frees.
0x0087346038UIListDialog__scalar_deleting_dtorScalar deleting destructor for UIListDialog (0x15C bytes). Calls UIListDialog__dtor, optionally frees.
0x0087349099UIListDialogDerived__scalar_deleting_dtorScalar deleting destructor for UIListDialogDerived (0x15C bytes). Sets vtable, calls UIListDialog__dtor, optionally frees.
0x00873500128UIListDialogDerived2__scalar_deleting_dtorScalar deleting destructor for UIListDialogDerived2 (0x168 bytes). Sets vtable, destroys extra data, calls CFmt dtor, calls UIListDialog__dtor, optionally frees.
0x00873580113UIListDialogDerived3__scalar_deleting_dtorScalar deleting destructor for UIListDialogDerived3 (0x160 bytes). Sets vtable, destroys extra data, calls UIListDialog__dtor, optionally frees.
0x00873600132UIFormattedWidget__scalar_deleting_dtorScalar deleting destructor for UIFormattedWidget (0xE0 bytes, dual inheritance). Sets vtables, calls CFmt dtor, base dtor, optionally frees.
0x00873690119UIFormattedWidgetBase__scalar_deleting_dtorScalar deleting destructor for UIFormattedWidgetBase (0xD4 bytes). Sets vtable, calls CFmt dtor, base dtor, optionally frees.
0x00873710150UIMapWidgetC0__scalar_deleting_dtorScalar deleting destructor for map-based widget (0xC0 bytes). Destroys map tree nodes, frees sentinel, calls base dtor, optionally frees.
0x008737B0150UIPacketWidget__scalar_deleting_dtorScalar deleting destructor for UIPacketWidget (0xC0 bytes). Destroys packet tree nodes, frees sentinel, calls base dtor, optionally frees.
0x00873850159UIJsonWidget__scalar_deleting_dtorScalar deleting destructor for UIJsonWidget (0xE8 bytes). Resets vector, destroys JSON data, sets base vtable, calls CFmt dtor, base dtor, optionally frees.
0x008738F0163UIPacketWidgetDerived__scalar_deleting_dtorScalar deleting destructor for UIPacketWidgetDerived (0xC4 bytes, dual inheritance). Sets 2 vtables, destroys packet tree, frees sentinel, calls base dtor, optionally frees.
0x008739A0112UIListDerived__scalar_deleting_dtorScalar deleting destructor for UIListDerived (0x130 bytes, dual inheritance). Sets 2 vtables, calls UIListBase__dtor, optionally frees.
0x00873A10125UITripleInheritWidget__scalar_deleting_dtorScalar deleting destructor for triple-inheritance widget (0xB4 bytes). Sets 3 vtables, calls base dtor, optionally frees.
0x00873A90165UISearchDialog__scalar_deleting_dtorScalar deleting destructor for UISearchDialog (0x118 bytes). Destroys string, sets base vtable, calls CFmt dtor, destroys string, calls UIBaseDialog__destructor_2, optionally frees.
0x00873B40119UIFmtWidget__scalar_deleting_dtorScalar deleting destructor for UIFmtWidget (0xB0 bytes). Sets vtable, calls CFmt dtor, base dtor, optionally frees.
0x00873BC0132UIFmtWidgetDerived2__scalar_deleting_dtorScalar deleting destructor for CFmt-derived widget (0xD4 bytes, dual inheritance). Sets 2 vtables, calls CFmt dtor, base dtor, optionally frees.
0x00873C50112UIDualInheritWidgetB0__scalar_deleting_dtorScalar deleting destructor for dual-inheritance widget (0xB0 bytes). Sets 2 vtables, calls base dtor, optionally frees.
0x00873CC099UISimpleWidget80__scalar_deleting_dtorScalar deleting destructor for simple widget (0x80 bytes). Sets vtable, calls base dtor, optionally frees.
0x00873D3038UIMultiChildWidget__scalar_deleting_dtorScalar deleting destructor for UIMultiChildWidget (0x1E0 bytes). Calls UIMultiChildWidget__dtor, optionally frees.
0x00873D60116UIStringWidget98__scalar_deleting_dtorScalar deleting destructor for string widget (0x98 bytes). Sets vtable, destroys string, calls base dtor, optionally frees.
0x00873DE0112UIDualInheritWidgetA4__scalar_deleting_dtorScalar deleting destructor for dual-inheritance widget (0xA4 bytes). Sets 2 vtables, calls base dtor, optionally frees.
0x00873E50106UIBaseWidgetA__scalar_deleting_dtorScalar deleting destructor for UIBaseWidgetA (0xB4 bytes). Sets vtable, calls base dtor, optionally frees.
0x00873EC0106UIBaseWidgetA2__scalar_deleting_dtorScalar deleting destructor for UIBaseWidgetA variant (0xB4 bytes). Sets vtable, calls base dtor, optionally frees.
0x00873F30106UIBaseWidgetA_B8__scalar_deleting_dtorScalar deleting destructor for UIBaseWidgetA variant (0xB8 bytes). Sets vtable, calls base dtor, optionally frees.
0x00873FA099UIBaseWidgetA3__scalar_deleting_dtorScalar deleting destructor for UIBaseWidgetA variant (0xB4 bytes). Same vtable as A2 variant, calls base dtor, optionally frees.
0x00874010112UIBaseWidgetADerived__scalar_deleting_dtorScalar deleting destructor for UIBaseWidgetADerived (0xD4 bytes, dual inheritance). Sets 2 vtables, calls base dtor, optionally frees.
0x00874080106UIBaseWidgetA4__scalar_deleting_dtorScalar deleting destructor for UIBaseWidgetA variant (0xB4 bytes). Sets vtable, calls base dtor, optionally frees.
0x008740F0150UIDualFmtWidget__scalar_deleting_dtorScalar deleting destructor for UIDualFmtWidget (0xE4 bytes). Calls 2 CFmt destructors, sets base vtable, calls base dtor, optionally frees.
0x00874270145UITwoStringWidget178__scalar_deleting_dtorScalar deleting destructor for two-string widget (0x178 bytes). Destroys 2 strings, calls base dtor, optionally frees.
0x00874310158UITwoStringWidgetDerived__scalar_deleting_dtorScalar deleting destructor for derived two-string widget (0x178 bytes, dual inheritance). Sets 2 vtables, destroys 2 strings, calls base dtor, optionally frees.
0x008743B0164UIFourStringWidget__scalar_deleting_dtorScalar deleting destructor for 4-string widget (0xF4 bytes). Destroys 4 strings, calls base dtor, optionally frees.
0x008744D0119UIStringDialog__scalar_deleting_dtorScalar deleting destructor for UIStringDialog (0xF8 bytes). Destroys string, calls UIBaseDialog__destructor_2, optionally frees.
0x00874550188UIComplexDataWidget__scalar_deleting_dtorScalar deleting destructor for UIComplexDataWidget (0xFC bytes). Destroys vector, CFmt, JSON data, vector, CFmt in sequence, calls base dtor, optionally frees.
0x00874610116UIVectorIntWidget__scalar_deleting_dtorScalar deleting destructor for UIVectorIntWidget (0x90 bytes). Destroys int vector, calls base dtor, optionally frees.
0x00874690134UIFmtStringDialog__scalar_deleting_dtorScalar deleting destructor for UIFmtStringDialog (0xF8 bytes). Calls CFmt dtor, destroys string, calls UIBaseDialog__destructor_2, optionally frees.
0x00874720196UIMultiLayerWidget__scalar_deleting_dtorScalar deleting destructor for UIMultiLayerWidget (0x104 bytes, 3 inheritance levels). Destroys 12-byte element vector, calls chat log cleanup functions, CFmt dtor, base dtor, optionally frees.
0x008747F0150UILayerFmtWidget__scalar_deleting_dtorScalar deleting destructor for UILayerFmtWidget (0xEC bytes). Calls chat log cleanup, CFmt dtor, base dtor, optionally frees.
0x00874890136UIResourceWidget__scalar_deleting_dtorScalar deleting destructor for UIResourceWidget (0xB4 bytes). Cleans up hyperlink data at this+0x84, releases resource if non-null, calls base dtor, optionally frees.
0x00874920112UIBaseWidgetADerived2__scalar_deleting_dtorScalar deleting destructor for UIBaseWidgetADerived2 (0xB4 bytes, dual inheritance). Sets 2 vtables, calls base dtor, optionally frees.
0x00874990164UILinkedListWidget__scalar_deleting_dtorScalar deleting destructor for UILinkedListWidget (0x194 bytes). Calls CFmt dtor, walks and frees linked list of 0xC-byte nodes at this+0x180, frees sentinel, optionally frees self.
0x00874DF029ui_conditional_refresh_aConditional UI refresh. Checks field at 0x1A0 via get_field_0x1a0_00a916f0; if non-zero, calls CEffect__add_child_to_list_end to trigger refresh.
0x00874E1023ui_conditional_refresh_bConditional UI refresh using global DAT_01457ad8. If non-zero, calls CEffect__add_child_to_list_end to trigger refresh.
0x00874E3023ui_conditional_refresh_cConditional UI refresh using global DAT_01457998. If non-zero, calls CEffect__add_child_to_list_end to trigger refresh.
0x008760D01568ui_build_chat_message_textBuilds a complete chat message text string. Chains multiple string operations: gets sender name, applies formatting, processes item links if enabled, strips link tags, applies final formatting, and invokes chat display callback.
0x008767001613ui_build_chat_message_text_v2Builds chat message text variant 2. Similar to ui_build_chat_message_text but uses different formatting functions (strip_item_link_markers instead of strip_default_color_markers, strip_url_link_markers extra step, parse_text_with_default_color_codes instead of parse_text_with_color_codes). Same item link processing and tag stripping.
0x008770201568ui_build_chat_message_text_v3Builds chat message text variant 3. Nearly identical to ui_build_chat_message_text - uses same helper functions (strip_chat_markers, strip_default_color_markers, CItemLink__strip_link_tags). Builds formatted string with sender name, item links, and tag stripping.
0x008791E0283ui_replace_escape_sequences_in_stringReplaces escape sequences in a string. Copies input, then iteratively finds and replaces two different 2-char escape sequences (at DAT_010dbde8 and DAT_010db5fc) with their 1-char replacements (at DAT_010d97dc and DAT_01121c28). Returns modified string.
0x00879830474UITooltipBox__check_and_show_tooltipChecks if a tooltip should be shown and displays it. Verifies game state allows tooltips (checks map type 0x1EA/0x1EE or override flag). If tooltip count < 3, builds tooltip text from item data via CEffect__draw_multiline_text_with_links, appends separator, appends character name, compares string length against max display size. Returns true if tooltip fits.
0x00879A10418UITooltipBox__check_and_show_tooltip_v2Variant 2 of tooltip check and display. Similar to v1 but reads character data from DAT_01457ad8 instead of game state function. Builds tooltip text, checks size limit, returns fit result.
0x00879BC0450UITooltipBox__check_and_show_tooltip_v3Variant 3 of tooltip check and display. Reads from DAT_01457998, calls CUIEquipWindow__render_slot_text to get equipment slot text, stores result at this+0x15C. Uses equipment-specific data source for tooltip content.
0x00879D90229UIListDialog__reset_and_reinitResets and reinitializes UIListDialog. Hides all item widgets recursively from linked list at this+0x84+0x180. Clears 4 tracking fields. Allocates new 0x194-byte widget with linked list, resets head pointers, copies config data, calls virtual reset method.
0x0087A29069UIScrollList__clear_and_remove_childrenCalls parent clear, removes all child widgets from vector, triggers redraw via vtable
0x0087A2F0148UIListDialog__clear_all_dialog_itemsClears all items from UIListDialog's linked list. Iterates through doubly-linked list at this+0x120, calls virtual cleanup (vtable+0xF0) on each item's data, unlinks nodes, frees 0x1D0-byte nodes. Then clears and re-initializes the free list. Resets item count to 0.
0x0087A5A0345UITooltipBox__build_tooltip_textBuilds the tooltip display text string. Calls FUN_00a837d0 to get item description, appends separator character, appends character name from this+0x128. Returns the concatenated tooltip string.
0x0087A700257base62_decode_string_to_intDecodes a base-62 encoded string to an integer. Uses charset '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/'. Each character position has weight 62^(len-1-pos). Copies input string, looks up each char in charset, multiplies by positional value, sums result.
0x0087A810723base62_encode_int_to_stringEncodes an integer to a base-62 string. Repeatedly divides by 62 (0x3E), maps remainders to charset characters, builds string in reverse order (LSB first into vector, then reverses when copying to output SSO string). Used for item link encoding.
0x0087ABB02302UIListDialog__parse_and_rebuild_itemsParses stored text and rebuilds UIListDialog items. Copies stored string from this+0x128, splits on separator chars to extract item entries. For each entry, searches for delimiter, extracts key/value pairs, builds tooltip text via FUN_00a837d0, matches against linked list items, copies matching 0x1D0-byte nodes to new list. Swaps old list with new one at end.
0x0087B7D051UICheckboxWidget__initInitializes a checkbox widget. Sets checked state from param_2 at this+0x84. Uses fixed size 36x32 (0x24x0x20). Calls base init and virtual size/position methods.
0x0087BBA0199UIItemIcon__load_and_display_itemLoads and displays an item icon. Copies item description from param_2 via CItemDesc__copy_from. Builds resource path from item name string at this+0xAC, calls FUN_00ddd280 for path generation. Loads texture via FUN_00af1620/FUN_00b01200/FUN_00aee770; falls back to default texture at DAT_0112ce70. Sets widget size from loaded texture dimensions.
0x0087BC70205CItemUI__load_item_sprite_by_classLoads item sprite by class/level. Gets class+level from CItemDesc, builds resource path, loads sprite via resource manager. Falls back to default sprite if not found.
0x0087BD40675CItemUI__load_sprite_from_item_descLoads item sprite from CItemDesc. Copies item desc, gets sprite resource ID, constructs resource path string, loads sprite. Falls back to default sprite path on failure.
0x0087BFF0681CItemUI__load_sprite_by_class_and_levelSimilar to load_sprite_from_item_desc but uses class+level. Gets class/level, stores level byte at +0xdc, builds sprite path, loads via resource manager with fallback.
0x008852501737UIAdventurerAgency__create_dropdown_widgetsCreates dropdown UI widgets for the Adventurer Agency window. Builds a CDialogWnd with btn_dropdown textures (out/over/press states), creates a UITreeBase list widget (UIMapWidget3), and a UIEditableTextWidget for text input. Layout depends on param_1+0xa8 mode and param_1+0xac type flags.
0x008859201469UIBasicInterface__create_dropdown_simpleCreates a simple dropdown for the basic_interface skin. Builds CDialogWnd with 3 button states, a UITreeBase list widget, and UIEditableTextWidget with "NO_SELECT" default text. Uses basic_interface texture path prefix.
0x008862001584UIBasicInterface__create_combo_buttonCreates a combo button widget using basic_interface skin. Supports normal and pink variants (combo_btn_a/b/c vs combo_btn_pink_b/c) based on param_1+0xa8 flag. Creates CDialogWnd, UITreeBase (UIMapWidget4), and UIEditableTextWidget with "NO_SELECT" default.
0x00886C30850UIBasicInterface__create_textbox_buttonCreates a textbox button widget using basic_interface_txtbox_btn skin. Builds CDialogWnd with a/b/c.bmp textures for 3 button states, creates UIEditableTextWidget with "No Select" default text.
0x00886F90277UIBaseDialog__create_text_labelsCreates 2 text label widgets (UITextWidget) in a loop. Each label is 20x18 pixels, colored light gray (0xe8,0xe8,0xe8), with text alignment set (0x88=2, 0x8c=0). Labels are spaced 38 pixels apart horizontally. Uses UIBaseDialog vtable.
0x008870B0454UIRenewalParty__create_job_iconCreates a job icon sprite for the renewal party UI. Formats path as "renewalparty/icon_jobs_%d.bmp" with job ID=0, creates UIItemSlotWidget, sets texture, sizes to widget dimensions, and positions at (0x76, 0xe).
0x008872B0306UIBaseWidgetA2__create_sprite_and_dialogCreates a sprite widget (UISpriteWidget) and a text dialog widget for UIBaseWidgetA2. Sets sprite type to 9, configures animation, and positions it. Also creates a CDialogWnd at offset 0x98 sized 100x19 with position offset (-100,-100).
0x00888C90520UISkillSlot__render_icon_with_countRenders a skill icon slot. If skill ID (offset 0x7c) is valid, loads skill icon via CSkillEntry, draws it, and optionally shows item count text with shadow effect (white text on black outline). Falls back to empty slot texture if no valid skill.
0x00889D60237UIPanel__render_bordered_backgroundRenders a panel with bordered background. If flag 0x88 is false, draws outer border rect (full size) with border color (0x98/0x9c/0xa0) and inner fill rect (inset by 1) with fill color (0x8c/0x90/0x94). If flag is true, just fills with the inner color.
0x0088AB70271UITabWidget__render_with_textRenders a tab widget with text. If tab has content (0x8c != 0), loads and draws background texture from path at offset 0x7c. Gets selected tab text via UITabCtrl__get_selected_tab_text and draws it at position (2,3) in black, size 12.
0x0088AEC0418UIGridWidget__render_indexed_cellRenders a grid cell with indexed BMP texture. Draws gray background (0x99a8ac), loads base texture from offset 0x98, then if index (0x7c) >= 0, formats "%d.bmp" path, appends to base path, and draws the indexed texture at a grid position calculated from row/column multipliers (0x84/0x88) with orientation flags (0x90/0x94).
0x0088EBC01329UIItemSlot__render_with_detailsRenders an item slot with border, item icon, buy/sell indicators, card slot info, and enchant data. Draws border via UIEditBox__DrawBorder. Shows item sprite based on mode (0x128). If not equipped (0x120==0), shows empty slot texture with description text. Shows refine/enchant info with centered text and color coding (red for failed). Card slot indicator texture varies by enchant state.
0x0088F1C0656UIItemSlot__render_item_spriteRenders an item sprite by getting sprite resource ID from CItemDesc, constructing full texture path via string concatenation with prefix, and drawing it. Falls back to default texture DAT_011385a0 if item texture not found.
0x0088F8D0735UITooltip__render_content_rowsRenders tooltip content rows. Iterates through row groups (3 ints each: children array ptr, end ptr, unused). For rows above fold line (offset 0x98), hides children. For visible rows, copies children vector, checks for newline breaks, positions each child widget with x/y offsets. Handles indentation for wrapped text. Calls vtable 0xe0 at end for final rendering.
0x008905A071UIGrid__on_mouse_move_update_cellGrid mouse move handler. Calculates cell index from y / cellHeight + scrollOffset, stores at +0x24. Returns -1 if out of bounds.
0x008905F071UIGrid__on_mouse_move_update_cell_v2Same as UIGrid__on_mouse_move_update_cell - duplicate implementation for grid cell hover tracking.
0x00890B70173UIGrid__on_right_click_select_cellRight-click on grid cell: calculates cell from y/cellHeight, stores at +0x90, sends event 0x27 to target window (from +0xc0) or parent. Plays sound 0x1a.
0x00890DC098UIGrid__on_double_click_cellDouble-click on grid cell. Calculates tab index from coordinates, stores at +0x7c. If cell is not disabled (checked via +0x94 array), sends event 0x30 to target window. Plays sound 0x7a.
0x00890E3091UIGrid__on_mouse_move_notify_parentGrid mouse move: calculates cell index from y/cellHeight, stores at +0x90, notifies parent with event 0x27.
0x008915E0558UISkillSlot__render_skill_tooltipRenders a skill tooltip. Gets skill info via CSkillEntry, retrieves SP/AP costs, skill name, and formats tooltip using either format_skill_tooltip_type5 (active) or type6 (passive) based on FUN_00e1dfd0 flag. Draws tooltip text via FUN_00ad6510.
0x008920A083UIGrid__on_mouse_move_conditional_redrawGrid mouse move with conditional redraw. Calculates cell index from point, stores at +0x24. Only triggers redraw if cell changed.
0x0089210083UIGrid__on_mouse_move_conditional_redraw_v2Duplicate of UIGrid__on_mouse_move_conditional_redraw. Identical cell hover logic with conditional redraw.
0x008921609thunk_to_virtual_method_offset_0x70_00892160Calls virtual function pointer at offset 0x70 from param_1
0x0089217083UIGrid__on_mouse_move_conditional_redraw_v3Duplicate of UIGrid__on_mouse_move_conditional_redraw. Third identical copy of grid hover logic.
0x00892990116UIGrid__show_right_click_menuShows right-click context menu for grid. If selection +0x7c is valid, sends event 0x3d to window 0x2e, positions menu at cursor offset (+24,0).
0x00893720944CSVParser__tokenize_delimited_stringTokenizes a delimited string. Iterates through characters in buffer (param_2) from index *param_3 to *param_4. Collects chars >= '0' into token string. When delimiter (param_5 or param_6) or char < '0' found, converts token via FUN_0087a700 and appends to output vector (param_1). Handles string buffer reallocation.
0x00893AE01221CSVParser__parse_multi_value_fieldParses a multi-value field from a delimited string. Scans characters from param_2 buffer starting at *param_3 index. Builds tokens delimited by param_4 char. Converts each token via FUN_0087a700 and stores into output array at param_1[param_6*4]. Returns count of values parsed. Handles string growth and buffer management.
0x00893FB0223CUIListBox__set_item_text_at_indexSets text for a listbox item at the given index (param_2). Validates index is within bounds of items array (fields 0x29/0x2a, stride 0x18). Copies string data, calls FUN_008681c0 to process text, then invalidates the control and its parent via vtable+0x98.
0x008940903370CSVParser__merge_and_process_entriesLarge CSV parsing function that merges and processes entries in a string vector (param_1). Iterates through entries, calls process_item_data_entry for each. Handles XML-like tag parsing with '<' and '>' delimiters. Extracts tag content, processes nested entries, and reassigns string entries. Uses CSVParser__move_assign_string_entry for string management.
0x00894DC03317CSVParser__process_string_delimitersProcesses string entries in a vector, handling multiple delimiter types. Searches for DAT_0133a300 and DAT_0133a2e8 delimiters within each entry. Extracts substrings between delimiters, reassigns entries, and processes next-entry lookups. Complex string manipulation with STL string operations and reallocation.
0x00895AC0354CUIListBox__update_vertical_scrollbar_rowsUpdates vertical scrollbar parameters for a listbox with row-based items. Calculates visible rows from height/row_height (fields 0x18/0xb8). Computes max scroll from item count ((0x8c-0x88)/0x18). Configures scrollbar at field 0xac with total items, visible count, and scroll position. Clamps scroll position to valid range.
0x00895C30326CUIListBox__update_horizontal_scrollbar_aUpdates horizontal scrollbar for a listbox variant. Calculates visible columns from width/column_width (fields 0x18/0xb4). Sets scrollbar at field 0xa8 with total columns (field 0x8c), visible count, and clamped scroll position (field 0x94). Also invalidates parent if FUN_00a7d6d0 returns non-null.
0x00895D80326CUIListBox__update_horizontal_scrollbar_bIdentical to update_horizontal_scrollbar_a. Updates horizontal scrollbar for a listbox variant. Likely from a different UI class that shares the same scrollbar update logic.
0x00895ED0230CUIListBox__update_vertical_scrollbar_compactCompact version of vertical scrollbar update for a listbox. Calculates visible rows from height/row_height, computes max scroll from item list ((0x8c-0x88)/0x18). Sets scrollbar total, visible, and range at field 0xac without clamping scroll position. Simpler than the full version.
0x00895FC0157CUIListBox__update_horizontal_scrollbar_compact_aCompact horizontal scrollbar update. Calculates visible columns from width/column_width. Sets scrollbar at field 0xa8 with total (field 0x8c), visible count, and scroll position. Simplified without parent invalidation.
0x00896060157CUIListBox__update_horizontal_scrollbar_compact_bIdentical to update_horizontal_scrollbar_compact_a. Compact horizontal scrollbar update for a different UI class variant.
0x00896100227CUIListBox__update_vertical_scrollbar_12byte_itemsUpdates vertical scrollbar for a listbox with 12-byte (0xc) items. Calculates visible rows from height/row_height. Item count from (0xfc-0xf8)/0xc. Sets scrollbar at field 0xac. Similar to other scrollbar updates but for smaller item structures.
0x008962C02279CUITextInput__build_display_textBuilds the display text for a text input control. Clears display string (field 0x50). Iterates through linked list of text segments (field 0x48/0x49). For each segment, measures text width, looks up item/entity IDs, handles color tags via delimiter processing. Applies text width limits and calls formatting callback (vtable+0xf4). Manages cursor position and text wrapping.
0x00896BC0750CUITextInput__update_cursor_and_scrollUpdates cursor position and text scroll offset for a text input control. Saves old cursor pos (field 0x20). Calls text measurement functions (FUN_00ace3c0/FUN_00ace420) and vtable+0xe4. Clamps cursor/selection to max length (field 0x3a). Recalculates scroll offset (field 0x2c) using CharNextExA for proper multibyte character handling. Adjusts scroll to keep cursor visible within control width.
0x00896EB033send_text_to_active_windowSends text (param_1) to the active window if one exists. Gets active window via get_field_0x1a0_00a916f0, then calls FUN_00a82e50 with the text and flag=1.
0x00896EE0126send_text_to_matching_windowSends text to a window that contains matching item (param_1). First checks global trading window (DAT_01457848) child list, then active window list. Walks linked list of child controls checking if param_1 matches item ID (field+8). Calls FUN_00a82e50 to send text when match found.
0x00896F6027send_text_to_dialog_windowSends text to the dialog window (DAT_01457ad8) if it exists. Calls FUN_00a82e50 with the text and flag=1.
0x00896F8027send_text_to_chat_windowSends text to the chat window (DAT_01457998) if it exists. Calls FUN_00a82e50 with the text and flag=1.
0x00896FA0329CUIListBox__calculate_max_column_widthCalculates maximum column width for a listbox control. If field 0x8c flag is set, iterates through all items in the list (stride 0x18), measures text width using FUN_00a80230 (horizontal) or FUN_00a80580 (vertical) based on orientation (field 0x80). Sets all column widths in array (field 0xcc) to the max found. Calls FUN_00897a50 to finalize.
0x00897120261CUITextInput__set_text_and_resizeSets text on a text input and resizes it. Compares current text (field 0x7c) against DAT_010d4ee8 (empty string). If not empty, copies text to display field (0xdc). Measures text width using FUN_00a829d0 or FUN_00a80580, adds padding for scrollbar if field 0xb7 is set. Calls FUN_00a82eb0 to apply new size.
0x00897230318CUITextInput__update_text_display_widthUpdates text display width measurement for a text input. Compares text (field 0x7c) twice against DAT_010d4ee8, copies to display field (0xd4). Measures full text width via FUN_00a80580 and calls FUN_00a82eb0 twice - once for full width, once for the truncated/wrapped position. Uses font parameters from fields 0xcc/0xc8/0xc4.
0x008973E0183CUIListBox__resize_and_scroll_to_bottomResizes a listbox and scrolls to bottom. Calls FUN_008976e0 for base resize. If vertical scrollbar exists (field 0xa4), calculates max scroll position from item count and visible rows, positions scrollbar (field 0xac) to bottom, repositions it at x=param_2-0xd. Invalidates scrollbar.
0x008974A0102CUIListBox__resize_and_scroll_to_topResizes a listbox and scrolls to top. Calls FUN_008976e0 for base resize, sets scroll position to 0 (field 0x98), syncs scrollbar position. If vertical scrollbar exists, repositions it. Invalidates scrollbar.
0x00897580175CUIListBox__resize_with_dual_scrollbars_aResizes a listbox with dual scrollbars (vertical at 0x2a, horizontal at 0x2b). Sets scrollbar sizes to (0xc, param_3) and (param_2-0xd, 0xc). Resets scroll position (field 0x25) to 0. Syncs scrollbar position. Updates via vtable+0xe0.
0x00897630175CUIListBox__resize_with_dual_scrollbars_bIdentical to resize_with_dual_scrollbars_a. Resizes listbox with dual scrollbars, resets scroll position to 0. Variant for a different UI class.
0x008976E0110CUIListBox__resize_with_scrollbars_resetResizes listbox with scrollbars at fields 0x2b and 0x2c. Sets vertical scrollbar to (0xc, param_3) at x=param_2-0xd. Sets horizontal scrollbar to (param_2-0xd, 0xc) at y=param_3-0xd. Calls vtable+0xe0 and resets scroll offset (field 0x26) to 0.
0x008978A0192CUITextInput__auto_resize_to_textAuto-resizes a text input control to fit its text content. Compares text (field 0x7c) against empty string. If not empty, copies text to display field (0xdc), measures text width via FUN_00a80580 with font params (fields 0xd8/0xd4/0xd0). Adds padding (4 if multiline flag 0xb7 set, else 2). Resizes via FUN_00a82eb0.
0x00897960167CUITextInput__auto_resize_to_text_simpleSimpler version of auto-resize for text input. Compares text (field 0x7c) against empty string, copies to display field (0xd4). Measures text width via FUN_00a80580 with font params (0xcc/0xc8/0xc4). Resizes to (width+2, height+2) via FUN_00a82eb0.
0x00897A50222CUIListBox__auto_resize_to_contentAuto-resizes a listbox to fit its content. Sums up column widths from array at field 0x33 for all items (count from (0x2e-0x2d)/0x18). If orientation is horizontal (field 0x20 is 0 or 2), sets size to (total_width+1, field_0x21+1). Otherwise sets to (field_0x21+1, total_width+1). Invalidates via vtable+0x98.
0x00897B30173CUIListBox__select_item_at_indexSelects an item at the given index (param_2) in a listbox. Clears flag at offset 0x85. Validates index within item array bounds (fields 0x29/0x2a, stride 0x18). Calls FUN_008681c0 with item text. Sets selected index (field 0x28), sends event 0x27 to parent, invalidates control and parent.
0x00897C109thunk_to_UIGridView__handle_scroll_command_00897c10Wrapper function that calls FUN_00898b00 and returns
0x0089805060CUISimpleList__handle_eventEvent handler for a simple list control. Similar to grid list but uses field 0x23 for item count directly. Handles events: 0=confirm, 0x12=up, 0x13=down, 0x1f=call vtable+0xd8 with two params, 0x28=set selection, 0x53=set linked ID. Default delegates to FUN_00898eb0.
0x0089828062CUITreeList__handle_eventEvent handler for a tree-list control. On confirm (event 0), gets selected item via FUN_008a13d0 and FUN_00872120, sends item data to linked control. Handles scroll up/down (0x12/0x13), item update (0x1f) via FUN_00875860, selection set (0x28), linked ID (0x53). Default delegates to UIScrollList__handle_scroll_event.
0x008984E0230CUITabControl__handle_eventEvent handler for a tab control. On event 6 with param 0x111, calculates tab height from two child controls (fields 0x26/0x27) and resizes. On event 0x27, checks permission via FUN_00a970e0 before forwarding selection event to parent. Plays sound 0x1a if enabled. Default delegates to FUN_00a83660.
0x008985D0124CUICheckBox__handle_toggle_eventHandles checkbox toggle event (event 0xd). Checks field 0x120 mode and DAT_0173a5ac flag. If param_4 (checked), sets flag 0x280=1 and displays checked text (DAT_0112723c or DAT_011272e4 for mode 1). If unchecked, sets flag=0 and displays unchecked text. Calls FUN_008657a0 for text display.
0x00898650210CUITextInput__handle_backspace_deleteHandles backspace (0x8) and delete (0x2e) key events for a comma-separated text input. On backspace, checks if preceding char is comma; if so, adjusts cursor to skip it. On delete, checks if following char is comma. Updates cursor position and delegates to FUN_00863bf0 for standard key handling.
0x00898940448CUIDropdownList__handle_eventEvent handler for a dropdown list control. Event 6/0x111: toggles dropdown open/close state (field 0x89). When opening, shows child (field 0x20) and resizes to include its height. When closing, hides child and shrinks. Event 0x27: selection changed - gets item text, closes dropdown, forwards selection to parent.
0x00898B00813UIGridView__handle_scroll_commandHandles scroll commands for a grid view widget. Commands: 7=vertical scroll, 8=horizontal scroll, 9=page up, 10=page down, 0xb=scroll left, 0xc=scroll right, 0x12=select prev, 0x13=select next, 0x28=set selection, 0x62=forward to child. Clamps scroll/selection to valid range, updates scrollbar position, triggers re-render.
0x00898EB0704UIGridView__handle_scroll_command_v2Variant of handle_scroll_command for grid view v2. Same command handling (7-0x62) but with different field offsets and additional tooltip re-render via FUN_00a7d6d0. Also triggers parent re-render when linked widget (0x2c) is present.
0x008991B0704UIScrollList__handle_scroll_eventHandles scroll events: vertical/horizontal scroll, page up/down, cursor movement, direct index set
0x008994B0501CUIComboBox__handle_eventEvent handler for a combobox control. Event 6/0x111: toggles dropdown, plays sound 0x1a if enabled. When opening, populates a dropdown window (FUN_00a978d0(0x1a)) with all items from list, resizes and positions it. Event 0x27: selects item, forwards to parent, invalidates. Uses CUIWindow__set_child_window_0xb8_alt.
0x008996B0202CUITimerControl__handle_update_eventHandles timer update event (event 6 with param 0xb8). Iterates through 2 child controls (fields 0x7c+). For each matching child, reads text value, clamps to max 60, formats with FUN_00af62d0 using format DAT_010dbe28, and calls child's vtable+0xd4 to update display.
0x00899780657CUIShopButton__handle_eventEvent handler for a shop button. Event 0xd: sets pressed state (field 0x124). Event 0x1af: updates button textures based on slot state (param_4) and buy/sell mode (field 0x138). Generates button image paths with '_normal.bmp', '_over.bmp', '_press.bmp' suffixes using format strings. Calls FUN_008657a0 to set textures.
0x00899A30423CUITabList__handle_confirm_eventHandles confirm event (event 0) for a tab list control. When confirmed on the add button (field 0x36), reads input text, measures width, checks if adding a new tab would exceed parent width limit. If within limits, adds new tab via CFmt__buf_00696770 and sends event 0x74 to parent. If too wide, shows error dialog (FUN_00b00f00). Closes and clears focus after.
0x00899BF0129CUIChatLogList__handle_eventEvent handler for a chat log list control. Events 7/9/10: scroll handling with bounds clamping (uses field 0x2e as item height). Events 0x12/0x13: up/down navigation. Event 0x1d: reloads chat log - clears message vectors (fields 0x3b-0x3f), calls FUN_0089f610 to rebuild. Default delegates to FUN_00898b00.
0x00899E9089CUIChatWindow__handle_eventLarge event handler for the chat window. Handles scroll events (7-0xc) with child widget visibility updates. Events 0x12/0x13: up/down in chat. Event 0x1d: processes chat input - handles item links, URLs, whisper targets, and various formatting. Event 0x62: handles hyperlink actions (0x1b5=open URL, 0x1b6=item link, 0x1d0=party invite, 0x205/0x21b=other actions).
0x0089ADD087CUITreeView__handle_eventEvent handler for a tree view control. Events 7/9/10: scroll with child widget visibility (UIListBox__hide_all_item_widgets_recursive). Events 0x12/0x13: up/down navigation. Events 0x61-0x6e: complex tree operations including node selection (0x62/0x63/0x64), expand/collapse (0x6b), drag start (0x6c), drag end (0x6d), and node operations (0x6e) with text editing and repositioning.
0x0089B640259CUIButton__load_bitmap_stateLoads a bitmap for a button state. Calls FUN_00af1620 for resource init, FUN_00b01200 to create resource from path, FUN_00aee770 to get texture. If texture found, updates button min size from texture dimensions (0x114/0x118), calls vtable+4 to resize. Copies bitmap path to appropriate state string field based on param_3 (0-3: normal, hover, press, disabled). Returns 1 on success, 0 if texture not found.
0x0089BE60196CUIItemSlot__set_item_by_idSets item in a slot by item ID. Creates item descriptor via FUN_00ddd4e0, copies it with CItemDesc__copy_from. Sets display flag (field 0x3f) from param_3. If field 0x29 is 0, gets item class/level info. Invalidates the control.
0x0089BF30169CUIItemSlot__set_item_by_indexSets item in a slot by index. Creates item descriptor via FUN_00ddd5a0 (different from set_item_by_id), copies it. Sets display flag (field 0x3f) from param_3. Invalidates. Similar to set_item_by_id but uses different item lookup function.
0x0089C080304CUIListBox__rebuild_all_itemsRebuilds all items in a listbox. Calls vtable+0xdc to prepare, clears items, then iterates through data entries (field 0x40/0x41, stride 0x18). For each entry, checks for delimiter (DAT_0133a2e8). If no delimiter found, calls FUN_008750d0 for plain text. If delimiter found, calls vtable+0xe4 for formatted text. Uses column widths from field 0x43. Calls vtable+0xe0 to finalize.
0x0089C1B094CUIListBox__set_item_enabled_flagSets or clears an enabled flag for a specific item in a listbox bitfield array. param_2 is the item index, param_3 is the flag value. Uses bitfield at field 0xec with 32 items per uint. Validates index is within item count ((0xb8-0xb4)/0x18).
0x0089C22066CUIScrollBar__set_range_and_positionSets scrollbar range (field 0x20=max, 0x27=visible, 0x26=total) and invalidates. If max position is less than current thumb position (field 0x21), clamps thumb to max.
0x0089C27039CUIListBox__set_scroll_positionSets the scroll position of a listbox. If vertical scrollbar exists (field 0x29), updates scrollbar thumb position (field 0x2b+0x84). Calls vtable+0xe0 to update display.
0x0089C4401204CUITreeView__init_from_configInitializes a tree view widget from config data. Parses column definitions, row heights, expand/collapse icons, and scroll settings from configuration.
0x0089C900357CUIChatLogList__find_entry_at_pixel_offsetFinds the chat log entry and pixel X offset at a given total pixel position. Iterates entries in reverse (from end minus param_4), measuring text width with color codes stripped. Returns entry index in param_2[0] and pixel X offset in param_2[1]. Used for click-to-position in chat log.
0x0089CA70111CUITextInput__set_text_and_auto_resizeSets text on a text input (field 0x7c) from string param_2, then auto-resizes the control to fit the text. Copies string if not same instance, then calls CUITextInput__auto_resize_to_text.
0x0089CAE0327CUITextInput__truncate_text_to_max_lengthTruncates text input content to fit within max length (field 0x88). Uses CharNextExA/CharPrevExA for multibyte character boundary handling. Trims from the start of the string, then pads with spaces if needed to reach min length (field 0x88). Calls CInputMgr to update the input field.
0x0089CC30377CUITextInput__add_text_layout_entryAdds or updates a text layout entry in the vector at fields 0x100-0x108 (stride 0x1c = 28 bytes). Each entry contains: ID, x, y, font_size, font_style, flag, and an extra param. If x or y is -1000, auto-calculates position from text dimensions. Searches for existing entry by ID before appending.
0x0089CF10185CUITabControl__set_tab_labelsReplaces all tab label strings. Clears the existing labels vector (fields 0x15c-0x164, stride 0x18) by destroying strings, then copies all entries from the source vector param_2.
0x0089CFE03139CUIChatWindow__build_item_link_dialogBuilds and displays an item link dialog for the chat window. Creates a UIFmtStringDialog (0x200 bytes), populates it with item tooltip text, then encodes item properties (ID, slots, enchants, refinement, option data) as a base62-encoded link string. Handles card slots (up to 4), enchant options (type+grade+id triplets). Pushes the dialog to the chat window's child list.
0x0089DC301215CUIListBox__init_with_columns_from_configInitializes a list box with columns from config. Parses column widths, headers, alignment, and row settings from configuration data.
0x0089E48030CUIChatWindow__get_hyperlink_countReturns count of hyperlinks in the chat window. Calculates (field_0xf0 - field_0xec) / 0x18, representing items in the hyperlink vector.
0x0089E4A0193CUIChatWindow__draw_hyperlink_text_shadowDraws hyperlink text with shadow effect. Acquires GDI context, configures font style, then draws the same text twice at offset positions (shadow then foreground) with different colors. Uses CTextVertex for rendering with color code support.
0x0089E570384CUIChatWindow__process_hyperlink_dataRecursively destroys hyperlink data for a tree node and its children. For each child in the linked list (field 0x180), recursively processes sub-children, then destroys widgets at offsets 0x178, 0x174, 0x17c. After all children are processed, frees the linked list nodes and resets count (field 0x184) to 0.
0x0089E6F0322CUITreeView__remove_node_by_idRemoves a tree view node by its ID (param_3) from the parent node's child list (param_2, defaults to root at offset 0x84). Iterates the linked list at offset 0x180 of the parent, finds the node matching param_3. If param_4 is 0, also destroys hyperlink data and hides sub-widgets (offsets 0x5d, 0x5e). Unlinks from linked list, decrements child count (offset 0x184), deletes the node. If parent becomes empty, hides parent's sub-widgets too. Returns 1 on success, 0 if not found.
0x0089E84026CUITreeNode__remove_child_by_idForwards a remove-by-id call to the parent's tree view. Calls CUITreeView__remove_node_by_id with the parent's list (field 0x5c), root node (field 0), and target node ID (param_2).
0x0089E86085CUITreeView__find_child_nodeFinds a child node in a tree view by ID and type. If param_2 is 0, uses field 0x84 as parent. Iterates through child node linked list (field 0x180) checking if node ID matches param_3 and field 0x5b matches param_4. Returns matching node or null.
0x0089E8C0379CUITreeView__insert_nodeInserts a node into the tree view. If the node's parent (field 0x5c) is null, inserts at the root level (field 0x84). Otherwise inserts under the parent. First checks for duplicate nodes by ID+type. Creates expand/collapse icons and text widget for the node. If param_3 is 0, appends at end; otherwise inserts at front of list.
0x0089F6103681CUIChatLog__rebuild_message_listRebuilds the chat log message list. Re-processes all stored messages, applies filters, word-wraps text, and updates the display buffer.
0x008A04801405CUIChatLog__layout_wrapped_messagesPerforms word-wrap layout on chat messages. Measures text widths, splits lines at word boundaries, and computes vertical positions for wrapped lines.
0x008A0B102121CUISkillTreePreview__renderRenders the skill tree preview window. Handles two states (field 0x120): state 0 shows "no skills" message (msg 0xbc8), state 1 shows loading/preview message (msg 0xbca) with word-wrapped description (msg 0xbcd). Loads head/body palette sprites, weapon sprites, and IMF resources. Draws skill tree nodes with prerequisite connections. Uses timeGetTime for animation cycling.
0x008A15A0149CUITreeView__get_root_node_display_textGets the display text from the root tree node. Reads the STL string at field 0xc0 of the root node (field 0x84) and copies it to the output param_2 string.
0x008A1640523CUIListBox__collect_items_into_line_groupCollects UI items from a range [param_2, param_3) into a new vector, then pushes that vector as a line group into the parent's vector-of-vectors at field 0xf8. Used for word-wrapping layout: each line group represents one visual row of items.
0x008A18802567CUIRichText__parse_markup_tagsParses HTML-like rich text markup tags from a string. Handles tags: image (sets field 0xac), color (parses hex RGB into fields 0x9c-0xa4), link (sets field 0x84 with URL), font (sets field 0xc4), bold, size (sets field 0xa8). Strips color codes and quotes from tag values. Remaining text after tags goes to field 0xdc.
0x008A2480359CUIListBox__layout_word_wrapped_itemsLays out items in a listbox with word wrapping. Iterates through items (fields 0x3b-0x3c), accumulates widths. When cumulative width + 15 exceeds control width, or a newline char is found, starts a new line. Uses std__list_sort_recursive to sort items within each line. Calls vtable+0xe0 to finalize layout.
0x008A29801652CUIHotkeyWindow__init_shortcut_slotsInitializes the hotkey/shortcut window with 10 label+edit pairs. Creates UISimpleDialogWidget labels (0x11c bytes) with column headers from global string array at DAT_01733630, and UIEditableTextWidget edit fields (0xd8 bytes) labeled "Alt + N". Sets up a view button with 3 texture states (btn_view, btn_view_a, btn_view_b). Loads hotkey config from lua_get_hotkey_config and populates the edit fields. Calls CUIWindowMgr__set_focus_window on first column.
0x008A304024CUIWindow__draw_header_if_smallDraws window header area if param_2 < 17. Calls UIWindow__draw_header_area only for small windows.
0x008A3060168CUIWindow__handle_header_commandHandles header-area commands for a CUIWindow. Dispatches on param_3: 0x22 = update position from param_4 pointer via validate+set_default fallback; 6 = button commands (0xC9 -> type 0x56, 0x11B -> type 0x57 or create window if DAT_01457a04 is 0); other values delegate to UIWindow__handle_button_click.
0x008A3110194CUIWindow__dispatch_command_to_tab_childDispatches a command to a specific tab/child window. If param_3 is -1, resolves the tab index (0-9) by comparing get_field_0x1a0 against child window pointers at offsets 0xDC through 0x100. Then calls vtable+0xD4 on the resolved child with param_2.
0x008A31E0359CUIWindow__save_hotkey_texts_to_configIterates 10 hotkey edit text widgets, reads their display text via UIEditableTextWidget__get_display_text, and saves non-empty values to the global hotkey string array at DAT_01733630 (0x18 bytes per entry). Calls HotkeyConfig__save_all_to_registry at the end.
0x008A34B084CUIScrollWindowN__ctorConstructor for a scroll window subclass (vtable 011391c0). Calls CUIScrollWindow__ctor_base and sets its own vtable pointer.
0x008A3510137CUIWindowA__ctor_with_stringConstructor for a small UI window subclass (vtable 01139bf4). Calls UIWindowBase__ctor, initializes an SSO string at offset 0x2e and a field at 0x2d.
0x008A35A0251CUIItemListWindow__ctorConstructor for CUIItemListWindow (vtable 01139298). Calls UIWindowBase__ctor, initializes two SSO strings at offsets 0x2d and 0x33, allocates a 0x2c-byte RB-tree sentinel node at offset 0x43, and zeroes vector pointers at 0x45-0x48.
0x008A36A086UIWindowC__ctorConstructor for UIWindowC subclass. Calls FUN_008a3700 for base init, then sets vtable pointer to PTR_UIWindowC__scalar_deleting_dtor_011390e8.
0x008A3700236UIWindowBase__ctorBase constructor for UIWindowBase (vtable 01138a28). Calls CEffect__ctor, sets vtable, initializes default window size 600x600, allocates a 0x34-byte linked list header node (self-referencing), zeroes scroll/state fields, sets default layout values (0x2b=7, 0x2c=8), scale factor 1.0f, and calls UIWindow__render_overlay to initialize the child list.
0x008A37F0106UIWindowWithTexture__ctorConstructor for UIWindowWithTexture subclass (vtable 011395f8). Calls UIWindowBase__ctor, sets vtable, zeroes texture-related fields at offsets 0x34 and 0x35.
0x008A3860126UIWindowD__ctorConstructor for UIWindowD subclass (vtable 01138e60). Calls UIWindowBase__ctor, sets vtable, zeroes fields at offsets 0x2d-0x30.
0x008A38E0220UIFmtWindow__ctorConstructor for UIFmtWindow subclass (vtable 01138d88). Calls UIWindowBase__ctor, sets vtable pointer and secondary vtable at offset 0x3b. Zeroes many state fields (0x2d-0x3a). Sets param_1[0x33]=1 as default.
0x008A39C01428UICharSlotWindow__ctorConstructor for UICharSlotWindow (vtable 01139010). Calls UIWindowBase__ctor, initializes 5+5 SSO string arrays for head/body palette paths, 3 more SSO strings for weapon/shield/imf paths, allocates character slot data via game object query (job 0x2720). Builds sprite resource paths for head palette, body palette, weapon sprite, shield sprite, and IMF. Sets render alpha to 0x80 and color to 0xFF.
0x008A3F6086UIWindowE__ctorConstructor for UIWindowE subclass. Calls FUN_008a3700 for base init, then sets vtable pointer to PTR_UIWindowE__scalar_deleting_dtor_011396d0.
0x008A3FC0226UIWindowWithStrings__ctorConstructor for UIWindowWithStrings subclass (vtable 01138b00). Calls UIWindowBase__ctor, initializes 3 SSO strings at offsets 0x34, 0x3a, 0x40. Zeroes field at 0x2f and byte at offset 0x47*4+3.
0x008A40B0178UIWindowF__ctorConstructor for UIWindowF subclass (vtable 01138bd8). Calls UIWindowBase__ctor, initializes 2 SSO strings at offsets 0x34 and 0x3a. Zeroes field at 0x2f.
0x008A4170172UIWindowG__ctorConstructor for UIWindowG subclass (vtable 01139370). Calls UIWindowBase__ctor, initializes SSO string at offset 0x36, zeroes fields at 0x2d-0x35 including boolean and pointer fields.
0x008A4220219UIWindowH__ctorConstructor for UIWindowH subclass (vtable 01138f38). Calls UIWindowBase__ctor, allocates 0x13 (19) UIEditableTextWidget children into array at offsets 0x2d+, stores notice_patch_txt filename at offset 0x44, sets field counts and zeros state fields. Calls CUIWindowMgr__set_focus_window on self.
0x008A4300215UIWindowWithTextureAndString__ctorConstructor for UIWindowWithTextureAndString subclass (vtable 01139520). Calls UIWindowBase__ctor, initializes SSO string at offset 0x33, zeroes texture/state fields at 0x32, 0x39, 0x3a, 0x2d-0x31.
0x008A444093UIWindowI__ctorConstructor for UIWindowI subclass (vtable 01139884). Calls UIWindowBase__ctor, sets vtable, zeroes byte at offset 0x2f*4.
0x008A44A084UIWindowJ__ctorConstructor for UIWindowJ subclass (vtable 0113995c). Calls UIScrollListBase__ctor, sets vtable.
0x008A4500146UIWindowWithFields__ctorConstructor for UIWindowWithFields subclass (vtable 01139b1c). Calls UIWindowBase__ctor, stores param_2 at offset 0x2d, zeroes 10 pointer fields at 0x3d+ and 10 boolean flags at 0x11c+. Field 0x3c also zeroed.
0x008A45A0146UIWindowK__ctorConstructor for UIWindowK subclass (vtable 01139a44). Calls UIWindowBase__ctor, zeroes 6 fields at offsets 0x2d-0x32.
0x008A4640147UIWindowL__ctorConstructor for UIWindowL subclass (vtable 01138cb0). Calls UIWindowBase__ctor, initializes SSO string at offset 0x2f, zeroes fields at 0x2d and 0x2e.
0x008A46E086UIWindowM__ctorConstructor for UIWindowM subclass (vtable 01139448). Calls UIWindowBase__ctor, sets vtable. Minimal subclass with no additional fields.
0x008A479087UIWindowBase__cleanup_membersCleanup helper for UIWindowBase. Calls STL_vector_int__clear_and_free then STL_linked_list__destroy_all_nodes to release base window data members. Used from dtors.
0x008A4B6087UIWindowBase__dtor_cleanupUIWindowBase destructor cleanup helper. Calls STL_vector_int__clear_and_free then STL_linked_list__destroy_all_nodes to clean up the base window's vector and linked list members.
0x008A4BD071CUIScrollWindowN__dtorDestructor for CUIScrollWindowN. Sets vtable to PTR_UIWindowN__scalar_deleting_dtor_011391c0, then calls UIWindow__dtor_8caae0 for base cleanup.
0x008A4C20152UIWindowA__dtorDestructor for UIWindowA (vtable 01139bf4). Destroys embedded STL string, then delegates to UIWindowBase base dtor chain: STL_vector_int__clear_and_free, STL_linked_list__destroy_all_nodes, and CEffect__dtor.
0x008A4CC071UIWindowB__dtorDestructor for a UI window subclass (vtable PTR_FUN_01138950). Delegates to UIWidget__dtor_0086ffa0 for cleanup.
0x008A4D10230UIItemListWindow__dtorDestructor for CUIItemListWindow (vtable 01139298). Clears the item entry vector, destroys the red-black tree with CUIControl__destroy_tree_nodes_recursive and frees sentinel, destroys 2 SSO strings, then calls UIWindowBase base dtor chain.
0x008A4E00134UIWindowC__dtorDestructor for a UI window subclass (vtable PTR_FUN_011390e8). Simple destructor that sets vtable then calls base class destructor chain.
0x008A4E90121UIWindowBase__dtorDestructor for UIWindowBase (vtable 01138a28). Calls STL_vector_int__clear_and_free, STL_linked_list__destroy_all_nodes, then CEffect__dtor for final cleanup.
0x008A4F10162UIWindowWithTexture__dtorDestructor for a UI window with texture resource (vtable PTR_FUN_011395f8). Frees texture handle at offset 0x34 via FUN_00aa2c90 if non-null, then calls base destructor chain.
0x008A4FC0134UIWindowD__dtorDestructor for a UI window subclass (vtable PTR_FUN_01138e60). Simple destructor that sets vtable then calls base class destructor chain.
0x008A5050152UIFmtWindow__dtorDestructor for a UI window with CFmt formatting support (vtable PTR_FUN_01138d88). Calls CFmt__func_0058c230 to clean up formatter, then base destructor chain.
0x008A50F0152UICharSlotWindow__dtorDestructor for a UI character slot window (vtable PTR_FUN_01139010). Calls CCharSlotEntry__destructor to clean up character slot data, then base destructor chain.
0x008A5190134UIWindowE__dtorDestructor for a UI window subclass (vtable PTR_FUN_011396d0). Simple destructor that calls base class destructor chain.
0x008A5220182UIWindowWithStrings__dtorDestructor for a UI window with multiple string members (vtable PTR_FUN_01138b00). Destroys 3 STL strings then calls base destructor chain.
0x008A52E0167UIWindowF__dtorDestructor for a UI window subclass (vtable PTR_FUN_01138bd8). Destroys 2 STL strings then calls base destructor chain.
0x008A5390152UIWindowG__dtorDestructor for a UI window subclass (vtable PTR_FUN_01139370). Destroys 1 STL string then calls base destructor chain.
0x008A5430134UIWindowH__dtorDestructor for a UI window subclass (vtable PTR_FUN_01138f38). Simple destructor that calls base class destructor chain.
0x008A54C0177UIWindowWithTextureAndString__dtorDestructor for a UI window with texture and string (vtable PTR_FUN_01139520). Frees texture at offset 0x31 via FUN_00aa2c90 if non-null, destroys STL string, then calls base destructor chain.
0x008A55D0134UIWindowI__dtorDestructor for a UI window subclass (vtable PTR_FUN_01139884). Simple destructor that calls base class destructor chain.
0x008A566071UIWindowJ__dtorDestructor for a UI window subclass (vtable PTR_FUN_0113995c). Delegates to FUN_00871040 for cleanup.
0x008A56B0161UIWindowWithFields__dtorDestructor for a UI window with fields (vtable PTR_FUN_01139b1c). Zeros fields at offsets 0x3c and 0x2d, then calls base class destructor chain.
0x008A5760134UIWindowK__dtorDestructor for a UI window subclass (vtable PTR_FUN_01139a44). Simple destructor that calls base class destructor chain.
0x008A57F0152UIWindowL__dtorDestructor for a UI window subclass (vtable PTR_FUN_01138cb0). Destroys 1 STL string then calls base destructor chain.
0x008A5890134UIWindowM__dtorDestructor for a UI window subclass (vtable PTR_FUN_01139448). Simple destructor that calls base class destructor chain.
0x008A5920184UIMapEntry__move_ctorMove constructor for a UI map entry containing 2 integer fields and 2 STL string members. Copies integer fields directly, then move-constructs strings by stealing buffers and resetting source strings to empty state (size=0, capacity=0xf).
0x008A59E0331UIStringMap__find_or_insertFinds or inserts an entry in a string-keyed map/tree. Calls FUN_008a3400 to find the insertion point, compares keys using std::_Traits_compare. If key not found, allocates a new 0x2c-byte node, moves the key string into it, initializes fields, and inserts via Insert_node. Returns pointer to the value portion (offset 0x28) of the found/inserted node.
0x008A5B30294UIStringMap__find_or_insert_copyFinds or inserts an entry in a string-keyed map/tree (copy version). Similar to UIStringMap__find_or_insert but copy-constructs the key string instead of moving it. Allocates a 0x2c-byte node, copies key via STL_string_copy_construct, initializes node fields, and inserts via Insert_node. Returns pointer to value at offset 0x28.
0x008A5CC0236UIWindowMgr__get_tls_guid_tableReturns pointer to a thread-local GUID/identifier table at TLS offset 0x25d8. On first access (flag at offset 0x262c), copies 0x50 bytes of initialization data from 5 static GUID structs at 0x0113a980-0x0113aa7c into the TLS block, sets initialized flag, and registers cleanup via FUN_00e6343b (atexit).
0x008A5DB099UIWindowN__scalar_deleting_dtorScalar deleting destructor for a UI window subclass (vtable PTR_FUN_011391c0). Calls UIWindow__dtor_8caae0 for cleanup, then frees 0xc0 bytes if param_2 bit 0 is set.
0x008A5E20176UIWindowA__scalar_deleting_dtorScalar deleting destructor for UIWindowA (vtable PTR_FUN_01139bf4). Destroys STL string, calls base destructor chain, then frees 0xd0 bytes if param_2 bit 0 is set.
0x008A5ED099UIWindowB__scalar_deleting_dtorScalar deleting destructor for UIWindowB (vtable PTR_FUN_01138950). Delegates to UIWidget__dtor_0086ffa0, then frees 0x88 bytes if param_2 bit 0 is set.
0x008A5F40254UIItemListWindow__scalar_deleting_dtorScalar deleting destructor for UIItemListWindow (vtable PTR_FUN_01139298). Clears item entry vector, destroys strings, calls base destructor chain, then frees 0x124 bytes if param_2 bit 0 is set.
0x008A6040158UIWindowC__scalar_deleting_dtorScalar deleting destructor for UIWindowC (vtable PTR_FUN_011390e8). Frees 0xc0 bytes if param_2 bit 0 is set.
0x008A60E0145UIWindowBase__scalar_deleting_dtorScalar deleting destructor for UIWindowBase (vtable PTR_FUN_01138a28). Frees 0xb4 bytes if param_2 bit 0 is set.
0x008A6180186UIWindowWithTexture__scalar_deleting_dtorScalar deleting destructor for UIWindowWithTexture (vtable PTR_FUN_011395f8). Frees texture handle at offset 0x34, then frees 0xd8 bytes if param_2 bit 0 is set.
0x008A6240158UIWindowD__scalar_deleting_dtorScalar deleting destructor for UIWindowD (vtable PTR_FUN_01138e60). Frees 0xc4 bytes if param_2 bit 0 is set.
0x008A62E0176UIFmtWindow__scalar_deleting_dtorScalar deleting destructor for UIFmtWindow (vtable PTR_FUN_01138d88). Cleans up CFmt, frees 0xf0 bytes if param_2 bit 0 is set.
0x008A6390176UICharSlotWindow__scalar_deleting_dtorScalar deleting destructor for UICharSlotWindow (vtable PTR_FUN_01139010). Destroys char slot entry, frees 0x2dc bytes if param_2 bit 0 is set.
0x008A6440158UIWindowE__scalar_deleting_dtorScalar deleting destructor for UIWindowE (vtable PTR_FUN_011396d0). Frees 0xc8 bytes if param_2 bit 0 is set.
0x008A64E038UIWindowWithStrings__scalar_deleting_dtorScalar deleting destructor for UIWindowWithStrings. Calls UIWindowWithStrings__dtor, frees 0x120 bytes if param_2 bit 0 is set.
0x008A6510191UIWindowF__scalar_deleting_dtorScalar deleting destructor for UIWindowF (vtable PTR_FUN_01138bd8). Destroys 2 STL strings, frees 0x100 bytes if param_2 bit 0 is set.
0x008A65D0176UIWindowG__scalar_deleting_dtorScalar deleting destructor for UIWindowG (vtable PTR_FUN_01139370). Destroys 1 STL string, frees 0xf0 bytes if param_2 bit 0 is set.
0x008A6680158UIWindowH__scalar_deleting_dtorScalar deleting destructor for UIWindowH (vtable PTR_FUN_01138f38). Frees 0x174 bytes if param_2 bit 0 is set.
0x008A6720201UIWindowWithTextureAndString__scalar_deleting_dtorScalar deleting destructor for UIWindowWithTextureAndString (vtable PTR_FUN_01139520). Frees texture at offset 0x31, destroys string, frees 0xec bytes if param_2 bit 0 is set.
0x008A6860158UIWindowI__scalar_deleting_dtorScalar deleting destructor for UIWindowI (vtable PTR_FUN_01139884). Frees 0xe4 bytes if param_2 bit 0 is set.
0x008A690099UIWindowJ__scalar_deleting_dtorScalar deleting destructor for UIWindowJ (vtable PTR_FUN_0113995c). Delegates to UIFormattedWidgetBase__dtor, frees 0xd4 bytes if param_2 bit 0 is set.
0x008A6970185UIWindowWithFields__scalar_deleting_dtorScalar deleting destructor for UIWindowWithFields (vtable PTR_FUN_01139b1c). Zeros fields at offsets 0x3c and 0x2d, frees 0x13c bytes if param_2 bit 0 is set.
0x008A6A30158UIWindowK__scalar_deleting_dtorScalar deleting destructor for UIWindowK (vtable PTR_FUN_01139a44). Frees 0xd0 bytes if param_2 bit 0 is set.
0x008A6AD0176UIWindowL__scalar_deleting_dtorScalar deleting destructor for UIWindowL (vtable PTR_FUN_01138cb0). Destroys 1 STL string, frees 0xdc bytes if param_2 bit 0 is set.
0x008A6B80158UIWindowM__scalar_deleting_dtorScalar deleting destructor for UIWindowM (vtable PTR_FUN_01139448). Frees 0xc8 bytes if param_2 bit 0 is set.
0x008AD190557UIBankWindow__init_controlsInitializes bank window UI controls. Creates deposit (0x1ce), withdraw (0x1cf), up (0x117), down (0x118) buttons and amount preset buttons (100K=0x188, 1M=0x187, 10M=0x186, max=0x185) using FUN_008cf390 with sprite names like bank_btn_deposit/withdraw/upper/buttom. Creates a UITextWidget at offset 0xb4 sized 99x17, positioned at (0x4e,0x5a), with white text and editable input for amount entry.
0x008AD3C0929UISearchWindow__init_controlsInitializes search window UI controls. Creates: text label (0xb0 bytes) at offset 0xf4, editable text widget (0x14c bytes) at offset 0xf8 with ID 0x1ee and font 0x46, two list widgets at offsets 0xfc/0x100 with proportional widths, a scrollbar at 0x104, and an editable text widget at 0x108 for search input. Sets default font size and button ID 0xb8.
0x008ADC803096UIPetWindow__init_controlsInitializes pet window controls. Creates: a text label at offset 0xb4 with pet name from DAT_01737bb4, multiple buttons using sprite names (btn_skill, btn_feed, btn_rewrite), two panel containers at offsets 0xbc/0xc0 with functor callbacks, a container widget at offset 0xc4, a base widget at offset 0xc8, and a map view widget at offset 0xd4 with map names from DAT_010e1a50/010e1a70. Sets pet info display ID to 0xc9.
0x008AE8A02276UIAchievementWindow__init_controlsInitializes achievement window controls. Uses XOR-encrypted TLS strings for sprite names. Creates: text widget at offset 0xb4, editable text label at offset 0xbc, multiple static text labels for headers, a large button widget (0x144 bytes) with 3 XOR-encrypted sprite state names, and configures text styles (font size 0xc, color 0x313131). Sets button ID to 0x17e.
0x008B17604287UINoticeWindow__init_controlsInitializes the notice/announcement window. Creates 3 navigation buttons (back/next/close with IDs 0xb8/0xf6/0xda) using cancel-style sprites. Then reads notice content from the file at this+0x110, comparing it against notice_check.txt to detect changes. Parses lines (splitting on newline, stripping CR) and sections (delimited by '^'). Stores up to 20 lines of text in widgets at offsets 0xb4-0x16c, creates a scrollbar at 0x170, and copies notice content to notice_check.txt. If content is unchanged and fully read (0xff marker), unregisters the window.
0x008B31F04306UIReplayWindow__init_controlsInitializes the replay control window. Uses 'replay_interface_' sprite prefix. Creates 4 transport control buttons (stop=0x191, end, speedadd, speedmin) in a loop with 3-state sprites (normal/a_bmp/b_bmp). Also creates start (0x191) and pause (0x192) buttons as UIDialogBoxSubclass. Retrieves hotkey configs via lua_get_hotkey_config for keys 0x27/0x28/0x29. Creates a progress bar widget at offset 0xd0 and 4 editable text widgets at offsets 0xd4+ for time display. Calls UIWindow__process_touch_input for touch support.
0x008B42D06002UIReplayRecordWindow__init_controlsInitializes the replay recording window (6002 bytes). Uses 'replay_interface_' sprite prefix. Creates 8 UIDialogBoxSubclass action buttons (start/stop/save/setup/close + IDs 0x1a8/0x1a9) with message strings 0x7b9-0x7bf. Creates 4 additional buttons with recrun sprites, 5 status indicator widgets (replay_recrun_1 through replay_recrun_5), 2 editable text fields for time display, 10 tab widgets for category selection (Basicinfo/Equip/Item/Skill/Guild/Party/Chat/Shortcut/Status/Quest), 2 more tabs for user-defined/repeat-check, a text input widget for user-defined filename, and configures keyboard input handling.
0x008B5A502760UIServerSelectWindow__init_controlsInitializes the server selection window. Creates a UIScrollListBase widget at offset 0xb4 with configurable size from params, sets RGB colors to 0xf0. Creates 4 buttons: cancel (0xb8), exit (login_interface_btn_exit), and select-server (replay_interface_btn_selectserve) with button ID 0xdd stored at offset 0xb8 when matched. Also creates 5 editable text widgets at offsets 0xbc+ for server info display, positioned vertically from y=0x23 in 0xf-pixel increments.
0x008B65202847UIReplaySelectWindow__init_controlsInitializes the replay file selection window. Creates a UIScrollListEx widget at offset 0xb4 with configurable size from params, sets RGB colors to 0xf0. Creates up to 4 buttons: cancel (0xb8), exit (login_interface_btn_exit), replay (replay_interface_btn_replay) with button ID 0xdd stored at offset 0xb8. Checks DAT_01737f4a flag and game mode field4==0x1e to adjust button layout. Conditionally skips button creation if button ID is 400 (0x190) and flag is clear.
0x008B70402584UIActionWindow__init_controlsInitializes an action window with a text display and two buttons. Creates a UITextWidget at offset 0xc4 (240x16, font 0x4e, light gray text at 0x16,0x32). Creates 2 cancel-style buttons in a loop with IDs 0xb8/0xb9, using btn_cancel sprites with 3 states. Sets default action ID to 0xb8.
0x008B7AD0533UIBankWindow__draw_balance_infoDraws bank balance information in the bank window. Renders a background sprite from DAT_0113a4c0, then displays two text lines: bank balance (using FUN_00af60e0 to format DAT_01738258/0173825c as currency string) and wallet amount (using FUN_00af6140 to format DAT_01733d28). Formats with "%s" pattern. If this+0xc8 is set, also renders a string from offset 0xb8 with center-aligned positioning.
0x008B7CF0165UISearchWindow__draw_separator_lineDraws a separator line in a search window. Calls FUN_008d2ce0/008d03e0 for background, gets a color via CColorPicker__GetPixelRGB, draws a vertical colored line using FUN_00a7bd60, and calls FUN_008d0920 to finalize drawing.
0x008B7DB01790UIPetStatusWindow__draw_backgroundDraws the pet status window background with stat labels and values. Renders background sprite from DAT_0113a138, draws a 3D bordered header, and title via message 0x3a8. Displays stat labels (messages 0x197/0x198/0x3fb/0x249/0x24a) with corresponding values from pet globals DAT_01737bd4-01737bf8. Stat values include hunger (2000-based scale /10), loyalty, and various pet attributes. Also renders intimacy text (0x29b-0x2a4 range based on thresholds). For advanced pets, shows additional combat stats, HP ratio, and a descriptive multi-line text block (messages 0xccf/0xcd4).
0x008B8620718UISkillTreeWindow__draw_skill_spritesDraws skill tree sprites for a skill window. Renders background from DAT_01139f70, title via message 0x940, and iterates through 2 skill sprite layers. For each layer: loads base texture from offset 0x260, skill sprite from offsets 0x170/0x188 (per-layer stride 0x18), and overlay texture from offsets 0x1e8/0x1fc. Checks skill tree prerequisite data via CSkillTreeData__get_prereq_data and skill tree node positions via UISkillWnd__get_skill_tree_node. Uses tile caching (CTileCache__find_cached_tile/acquire_tile) for sprite sheet rendering via vtable+0x28 draw call.
0x008B88F01390UIHomunculusStatusWindow__draw_backgroundDraws the homunculus status window background with stat labels and values. Renders background sprite, then selects title message based on homunculus type (0x49d for IDs 0x1781-0x178a, 0x49e for 0x1795-0x179e, 0x49f/0x557 otherwise). Displays stat labels (messages 0x197/0x198/0x4a0-0x4a3) with values from globals DAT_01737c84-01737ca0. Stats include ATK, DEF, hunger (2000-based /10). Shows class name from DAT_01737c64, level from DAT_01737cb0. When homunculus is valid (ID != -1), renders HP/SP ratios, creation time via localtime/strftime with message 0x4ec, and kill/death/assist counts.
0x008B99A01264UIPetInfoDialog__draw_backgroundDraws the pet info dialog background. Renders colored fill, title bar with message 0x248, and bottom sprites from DAT_0113a084/0113a0a4 (corner decorations). Displays stat labels (messages 0x197/0x198/0x249/0x24a) with pet intimacy level text (0x29b-0x29f range: shy/awkward/neutral/cordial/loyal/unknown). Shows loyalty number, class name from offset 0xcc, and level from DAT_01733678. For valid pets (ID in 1000-3999 or 20021-32011 range), renders pet illustration via lua_get_pet_illust_name_v3, '< Command >' label centered in a filled rect, feeding type text (message 0x255-0x258), and optional auto-feed label (0xa11) if this+0xe4 is set.
0x008BB79E1stub_nop_008bb79eSingle-byte stub function (size=1)
0x008BB905112UIInputWnd__apply_computed_value_to_edit_fieldUIInputWnd: apply computed value to edit field
0x008C3E4016vtable_set_0113a578Sets vtable pointer to 0x0113A578 on the object. Part of UIWindow multi-inheritance vtable initialization chain.
0x008C60D0243random_shuffle_bufferFisher-Yates shuffle on a byte buffer using a linear congruential RNG. Iterates from index 1 to end, generating random indices and swapping bytes. param_3 points to RNG state struct.
0x008C6B10292random_shuffle_buffer_with_rng_stateFisher-Yates shuffle on a byte buffer using an external RNG state at param_3. Similar to random_shuffle_buffer but reads/writes RNG state fields at offsets 0x4, 0x8, 0xC, 0x10 directly.
0x008C6E2086CUIWindow__ctor_basicBasic CUIWindow constructor. Calls base class init FUN_008a3700 and sets vtable to PTR_FUN_0113e0cc.
0x008C6E80132CUIScrollableWindow__ctorCUIScrollableWindow constructor. Calls base init, sets vtable through 3 stages (0113c194 -> 0113c344 -> 0113c92c), initializes scroll flags at offsets 0x2d and 0x2f to 0.
0x008C6F10132CUIScrollableWindow__ctor_variantVariant CUIScrollableWindow constructor. Same as CUIScrollableWindow__ctor but final vtable is PTR_FUN_0113c854 instead of 0113c92c.
0x008C6FA0194CUIAnimatedWindow__ctorCUIAnimatedWindow constructor. Sets vtable to 0113dd6c. Initializes animation state: vectors at 0x51-0x53, timing fields, scale=1 at 0x4a, index=-1 at 0x4b, and visibility flag at 0x4d.
0x008C7070164CUIWindowWithStrings__ctorCUIWindowWithStrings constructor. Sets vtable to 0113bad4. Initializes two std::string members at offsets 0x2d and 0x33 to empty SSO state (length=0, capacity=0xF).
0x008C7120338CUINamedWindow__ctor_two_stringsCUINamedWindow constructor with two resource strings. Sets vtable to 0113cbb4/0113cc8c. Initializes string member at 0x2d, 12 dword fields to 0 at 0x3e-0x49, then loads two string resources via FUN_00b00f00(0x7d/0x7e).
0x008C7280305CUINamedWindow__ctor_one_stringCUINamedWindow constructor with one resource string. Like CUINamedWindow__ctor_two_strings but only loads one string resource (0x7d) and keeps first vtable (0113cbb4).
0x008C73C096CUIBaseWindow__ctor_with_flagCUIBaseWindow constructor with a single flag field. Sets vtable to 0113c194, initializes flag at offset 0x2d to 0.
0x008C7420154CUIWindowWithSlots__ctorCUIWindowWithSlots constructor. Sets vtable to 0113be34. Initializes a vector of 0x18-byte slot entries at offsets 0x2f-0x31. Ensures minimum 6 slots via reallocation.
0x008C74C0170CUITrackedWindow__ctorCUITrackedWindow constructor. Sets vtable to 0113bd5c. Initializes tracking state: 4 vectors at 0x2e-0x31 and 0x34-0x35 to 0, index at 0x2d to -1, counter at 0x33 to 0.
0x008C757094CUIComplexWindow__ctorCUIComplexWindow constructor. Calls CUIItemWindow__ctor (008c7cb0) as base, sets vtable to 0113b774, initializes flag at offset 0x94 to 0.
0x008C75D084CUIComplexWindow__ctor_variantCUIComplexWindow constructor variant. Calls CUIItemWindow__ctor (008c7cb0) as base, sets vtable to 0113b924.
0x008C7630106CUIWindowWithCounter__ctorCUIWindowWithCounter constructor. Sets vtable to 0113d85c. Initializes two counter fields at offsets 0x2d and 0x2e to 0.
0x008C76A0106CUIWindowWithCounter__ctor_v2CUIWindowWithCounter constructor v2. Sets vtable to 0113d784. Initializes two counter fields at offsets 0x2d and 0x2e to 0.
0x008C7710132CUIMultiScrollWindow__ctorCUIMultiScrollWindow constructor. Chains base vtable through 0113c194 -> 0113c344 -> final 0113c4f4. Initializes scroll state flags at offsets 0x2d and 0x2f.
0x008C77A096CUIBaseWindow__ctor_v2CUIBaseWindow constructor v2. Sets vtable to 0113c26c. Initializes flag at offset 0x2d to 0.
0x008C780086CUIMinimalWindow__ctorCUIMinimalWindow constructor. Sets vtable to 0113b18c with no additional member initialization beyond the base class.
0x008C7860570CUITimedWindow__ctorCUITimedWindow constructor. Sets vtable to 0113ae2c. Calls timeGetTime() for initial timestamp. Initializes extensive timing/animation state including vectors, slot arrays (from global DAT_0173a700/a6fc/a704), and numerous control fields.
0x008C7AA0119CUIScrollWindow__ctor_baseCUIScrollWindow base constructor. Chains vtable through 0113c194 -> 0113c344. Initializes flags at offsets 0x2d and 0x2f to 0.
0x008C7B20302CUIListWindow__ctorCUIListWindow constructor. Sets vtable to 0113aacc. Allocates two 0x100-byte circular linked lists for list data at offsets 0x38 and 0x3a. Initializes string at offset 0x3c (SSO), row height to 0x1e, and resets list filter string at offset 0x49.
0x008C7C5086CUISimpleWindow__ctorCUISimpleWindow constructor. Sets vtable to 0113dbbc with no additional state beyond the base class.
0x008C7CB0385CUIItemWindow__ctorCUIItemWindow constructor. Sets vtable to 0113b69c. Initializes item display state: two std::strings at 0x71/0x77, tree/RB-tree node at 0x90, item descriptor reset, equipment slot fields set to 0xFFFF, and various counters/flags zeroed.
0x008C7E4084CUIItemWindow__ctor_variantCUIItemWindow constructor variant. Calls CUIItemWindow__ctor as base, then sets vtable to 0113b84c.
0x008C7EA094CUIFilteredListWindow__ctorCUIFilteredListWindow constructor. Calls CUILinkedListWindow__ctor as base, sets vtable to 0113d274, initializes filter flag at offset 0x3c to 0.
0x008C7F00185CUILinkedListWindow__ctorCUILinkedListWindow constructor. Sets vtable to 0113cfec. Allocates a 0x100-byte circular linked list sentinel node at offset 0x33. Initializes string at 0x35 (SSO) and counter at 0x3b to 0.
0x008C8120132CUIScrollPanelWindow__ctorCUIScrollPanelWindow constructor. Chains vtable through 0113c194 -> 0113c344 -> final 0113de44. Initializes scroll state flags.
0x008C81B0132CUIScrollContentWindow__ctorCUIScrollContentWindow constructor. Chains vtable through 0113c194 -> 0113c344 -> final 0113ca04. Initializes scroll state flags.
0x008C8240132CUIScrollViewWindow__ctorCUIScrollViewWindow constructor. Chains vtable through 0113c194 -> 0113c344 -> final 0113c41c. Initializes scroll state flags.
0x008C82D096CUITabWindow__ctorCUITabWindow constructor. Sets vtable to 0113ac7c. Initializes tab count/state at offset 0x2e to 0.
0x008C833084CUILinkedListWindow__ctor_subclassCUILinkedListWindow subclass constructor. Calls CUILinkedListWindow__ctor as base, sets vtable to 0113d19c.
0x008C8390201CUIVectorWindow__ctorCUIVectorWindow constructor. Sets vtable to 0x0113d6ac. Initializes widget ID 0x2739, index -1, type 0xE, and zeroes 9 state fields at offsets 0x30-0x37.
0x008C8460172CUITreeWindow__ctorCUITreeWindow constructor. Sets vtable to 0x0113d34c. Allocates 0x18-byte sentinel node for a red-black tree at offset +0x2d, initializes linked list pointers and sets flag 0x101.
0x008C8510132CUIScrollExtWindow__ctorCUIScrollExtWindow constructor. Chains 3 vtables: CUIBaseWindow (0x0113c194) -> CUIScrollWindow (0x0113c344) -> CUIScrollExtWindow (0x0113c6a4). Initializes scroll fields at +0x2d and +0x2f.
0x008C85A0164CUIWindowWithStrings__ctor_008c85a0CUIWindowWithStrings constructor variant. Sets vtable to 0x0113bbac. Initializes 2 std::string fields (SSO buffers) at offsets +0x2d and +0x33 with capacity 0xF.
0x008C865096CUIDialogWindow__ctorCUIDialogWindow constructor. Sets vtable to 0x0113c0bc. Initializes dialog type/mode field at +0x2e to 0x1c.
0x008C86B0190CUIMultiStringWindow__ctorCUIMultiStringWindow constructor. Sets vtable to 0x0113b33c. Initializes 2 std::string fields with SSO capacity 0xF, then calls CItemDesc__ctor_alt to initialize item description data. Sets byte flag at +0x7a to 0.
0x008C877086CUIPlainWindow__ctorCUIPlainWindow constructor. Sets vtable to 0x0113d424. Minimal constructor with no additional field initialization beyond base UIWindowBase.
0x008C87D086CUIPlainWindow__ctor_v2CUIPlainWindow constructor variant (v2). Sets vtable to 0x0113d4fc. Minimal constructor with no additional field initialization beyond base UIWindowBase.
0x008C883086CUIFlagWindow__ctorCUIFlagWindow constructor. Sets vtable to 0x0113b414. Minimal constructor with no additional field initialization beyond base UIWindowBase.
0x008C8890109CUIOwnerWindow__ctorCUIOwnerWindow constructor. Chains vtables: CUIFlagWindow (0x0113b414) -> CUIOwnerWindow (0x0113b4ec). Initializes owner pointer field at +0x2f to 0.
0x008C8900119CUIDoubleVtableWindow__ctorCUIDoubleVtableWindow constructor. Chains vtables: CUISubclassedWindow (0x0113cd64) -> CUIDoubleVtableWindow (0x0113ce3c). Zeroes state fields at +0x35 and +0x37.
0x008C8980106CUISubclassedWindow__ctorCUISubclassedWindow constructor. Sets vtable to 0x0113cd64. Zeroes state fields at +0x35 and +0x37.
0x008C89F084CUICustomWindow__ctorCUICustomWindow constructor. Calls parent UIWindow_vt62e8__ctor, then sets vtable to 0x0113b0b4.
0x008C8A5084CUILinkedListWindow__ctor_v2CUILinkedListWindow constructor variant (v2). Calls parent CUILinkedListWindow__ctor, then sets vtable to 0x0113d0c4.
0x008C8AB0156CUIStateWindow__ctorCUIStateWindow constructor. Sets vtable to 0x0113d934. Initializes range/state fields: enabled=1, current=0, mode=0, min=-1, max=10000, value=-1.
0x008C8B5096CUIFrameWindow__ctorCUIFrameWindow constructor. Sets vtable to 0x0113dc94. Zeroes state field at +0x2d.
0x008C8BB086CUIStaticWindow__ctorCUIStaticWindow constructor. Sets vtable to 0x0113bfe4. Minimal constructor with no additional field initialization beyond base UIWindowBase.
0x008C8C1086CUIBasicWindow__ctorCUIBasicWindow constructor. Sets vtable to 0x0113bf0c. Minimal constructor with no additional field initialization beyond base UIWindowBase.
0x008C8C70193CUILinkedNodeWindow__ctorCUILinkedNodeWindow constructor. Sets vtable to 0x0113bc84. Allocates two 0xC-byte circular linked list sentinel nodes at offsets +0x2e and +0x30. Zeroes counter fields at +0x2d and +0x34.
0x008C8D40440CUIExtendedWindow__ctorCUIExtendedWindow constructor. Chains vtables: CUIBaseExtWindow (0x0113df1c) -> CUIExtendedWindow (0x0113dff4). Initializes layout dimensions (0x28/0x50/0x77), conditional renewal mode branch adjusts layout to 0x50. Zeroes ~20 state fields for extended UI properties.
0x008C8F00126CUIVectorViewWindow__ctorCUIVectorViewWindow constructor. Sets vtable to 0x0113da0c. Zeroes 4 state fields at offsets +0x2d through +0x30.
0x008C8F80219CUIThreeStringWindow__ctorCUIThreeStringWindow constructor. Sets vtable to 0x0113b9fc. Initializes 3 std::string fields (SSO buffers) at offsets +0x2f, +0x35, and +0x3b, each with capacity 0xF. Also initializes counter field at +0x42.
0x008C9060123CUILabelWindow__ctorCUILabelWindow constructor. Sets vtable to 0x0113b264. Initializes 1 std::string field (SSO buffer) at offset +0x2f with capacity 0xF.
0x008C90E0127CUILinkedListVectorWindow__ctorCUILinkedListVectorWindow constructor. Calls parent CUILinkedListWindow__ctor, then sets vtable to 0x0113dae4. Zeroes 4 state fields at offsets +0x3c through +0x3f.
0x008C9160132CUIScrollExtWindow__ctor_v2CUIScrollExtWindow constructor variant (v2). Chains 3 vtables: CUIBaseWindow (0x0113c194) -> CUIScrollWindow (0x0113c344) -> CUIScrollExtWindow v2 (0x0113c5cc). Initializes scroll fields at +0x2d and +0x2f.
0x008C91F0133CUIDataWindow__ctorCUIDataWindow constructor. Sets vtable to 0x0113b5c4. Initializes layout dimension fields: +0x35=0x11, +0x36=0xb, +0x37=0x10. Zeroes fields at +0xc and +0x34.
0x008C9280325CUIBaseExtWindow__ctorCUIBaseExtWindow constructor. Sets vtable to 0x0113df1c. Initializes layout dimensions (0x28/0x50/0x77) with conditional renewal mode branch that adjusts layout. Similar to CUIExtendedWindow but stops at the base ext vtable.
0x008C93D086CUIContainerWindow__ctorCUIContainerWindow constructor. Sets vtable to 0x0113cadc. Minimal constructor with no additional field initialization beyond base UIWindowBase.
0x008C9430291CUIMultiVectorWindow__ctorCUIMultiVectorWindow constructor. Sets vtable to 0x0113e1a4. Zeroes ~20 state fields at offsets +0x2d through +0x40 for multi-vector UI data storage.
0x008C956086CUIDisplayWindow__ctorCUIDisplayWindow constructor. Sets vtable to 0x0113ad54. Minimal constructor with no additional field initialization beyond base UIWindowBase.
0x008C95C096CUIInfoWindow__ctorCUIInfoWindow constructor. Sets vtable to 0x0113aba4. Zeroes state field at +0x2e.
0x008C9620453CUIItemListWindow__ctor_008c9620CUIItemListWindow constructor variant. Sets vtable to 0x0113cf14. Initializes 3 std::string fields (SSO buffers) at offsets +0x2d, +0x33, and +0x41. Also zeroes several state fields and performs string assignment with SSO buffer management.
0x008C97F0132CUIScrollPanelWindow__ctor_v2CUIScrollPanelWindow constructor variant (v2). Chains 3 vtables: CUIBaseWindow (0x0113c194) -> CUIScrollWindow (0x0113c344) -> CUIScrollPanelWindow v2 (0x0113c77c). Initializes scroll fields at +0x2d and +0x2f.
0x008C9880262CUIHashMapWindow__ctorCUIHashMapWindow constructor. Calls parent UIItemListWnd__ctor, then sets vtable to 0x0113af04. Allocates 0x100-byte circular linked list buffer at +0x3e. Zeroes ~15 state fields and initializes layout dimensions (0x6a/0x38/0x20).
0x008C999086CUIDialog__ctor_v2CUIDialog constructor variant (v2). Sets vtable to 0x0113d5d4. Minimal constructor with no additional field initialization beyond base UIWindowBase.
0x008CB4D0113CUIOwnerWindow__dtorCUIOwnerWindow destructor. Sets vtable to CUIOwnerWindow (b4ec), destroys child window via vfunc if +0x2f is non-null, then resets vtable to CUIFlagWindow (b414) and calls UIWindowBase__dtor.
0x008CB55084CUIDoubleVtableWindow__dtorCUIDoubleVtableWindow destructor. Unwinds 2 vtables (CUIDoubleVtableWindow ce3c -> CUISubclassedWindow cd64), then calls UIWindowBase__dtor.
0x008CB5B071CUISubclassedWindow__dtorCUISubclassedWindow destructor. Sets vtable to CUISubclassedWindow (cd64), then calls UIWindowBase__dtor.
0x008CB60071CUICustomWindow__dtorCUICustomWindow destructor. Sets vtable to CUICustomWindow (b0b4), then calls UIWindow_vt62e8__dtor for cleanup.
0x008CB650143CUILinkedListWindow__dtorCUILinkedListWindow destructor. Unwinds vtables (CUILinkedListWindow v2 d0c4 -> CUILinkedListWindow cfec). Destroys string member and hash table linked list at +0x33 (0x100-byte sentinel), then calls UIWindowBase__dtor.
0x008CB6E071CUIStateWindow__dtorCUIStateWindow destructor. Sets vtable to CUIStateWindow (d934), then calls UIWindowBase__dtor.
0x008CB73071CUIFrameWindow__dtorCUIFrameWindow destructor. Sets vtable to CUIFrameWindow (dc94), then calls UIWindowBase__dtor.
0x008CB78071CUIStaticWindow__dtorCUIStaticWindow destructor. Sets vtable to CUIStaticWindow (bfe4), then calls UIWindowBase__dtor.
0x008CB7D071CUIBasicWindow__dtorCUIBasicWindow destructor. Sets vtable to CUIBasicWindow (bf0c), then calls UIWindowBase__dtor.
0x008CB820230CUILinkedNodeWindow__dtorCUILinkedNodeWindow destructor. Sets vtable to CUILinkedNodeWindow (bc84). Clears global flag at mode1+0x24c, destroys two linked lists at +0x30 and +0x2e (0xC-byte nodes), then calls UIWindowBase__dtor.
0x008CB91095CUIVectorViewWindow__dtorCUIVectorViewWindow destructor. Sets vtable to CUIVectorViewWindow (da0c), destroys json vector object, then calls UIWindowBase__dtor.
0x008CB970125CUIThreeStringWindow__dtorCUIThreeStringWindow destructor. Sets vtable to CUIThreeStringWindow (b9fc), destroys 3 std::string members, then calls UIWindowBase__dtor.
0x008CB9F095CUILabelWindow__dtorCUILabelWindow destructor. Sets vtable to CUILabelWindow (b264), destroys 1 std::string member, then calls UIWindowBase__dtor.
0x008CBA50170CUILinkedListVectorWindow__dtorCUILinkedListVectorWindow destructor. Unwinds vtables (CUILinkedListVectorWindow dae4 -> CUILinkedListWindow cfec). Resets vector end pointer, destroys json vector, string, and hash table linked list at +0x33, then calls UIWindowBase__dtor.
0x008CBB0097CUIScrollExtWindow__dtorCUIScrollExtWindow destructor. Unwinds 3 vtables (CUIScrollExtWindow c5cc -> CUIScrollWindow c344 -> CUIBaseWindow c194), then calls UIWindowBase__dtor.
0x008CBB7071CUIDataWindow__dtorCUIDataWindow destructor. Sets vtable to CUIDataWindow (b5c4), then calls UIWindowBase__dtor.
0x008CBBC071CUIBaseExtWindow__dtorCUIBaseExtWindow destructor. Sets vtable to CUIBaseExtWindow (df1c), then calls UIWindowBase__dtor.
0x008CBC1071CUIContainerWindow__dtorCUIContainerWindow destructor. Sets vtable to CUIContainerWindow (cadc), then calls UIWindowBase__dtor.
0x008CBC60110CUIMultiVectorWindow__dtorCUIMultiVectorWindow destructor. Sets vtable to CUIMultiVectorWindow (e1a4), frees 0xC-element and 0x30-element vectors, then calls UIWindowBase__dtor.
0x008CBCD071CUIDisplayWindow__dtorCUIDisplayWindow destructor. Sets vtable to CUIDisplayWindow (ad54), then calls UIWindowBase__dtor.
0x008CBD2071CUIInfoWindow__dtorCUIInfoWindow destructor. Sets vtable to CUIInfoWindow (aba4), then calls UIWindowBase__dtor.
0x008CBD70140CUIItemListWindow__dtorCUIItemListWindow destructor. Sets vtable to CUIItemListWindow (cf14). Destroys 1 string, clears item entry vector via std__vector_ItemEntry__clear_and_free, destroys 2 more strings, then calls UIWindowBase__dtor.
0x008CBE0097CUIScrollPanelWindow__dtorCUIScrollPanelWindow destructor. Unwinds 3 vtables (CUIScrollPanelWindow c77c -> CUIScrollWindow c344 -> CUIBaseWindow c194), then calls UIWindowBase__dtor.
0x008CBE70115CUIHashMapWindow__dtorCUIHashMapWindow destructor. Sets vtable to CUIHashMapWindow (af04), destroys hash table linked list at +0x3e (0x100-byte sentinel), then calls UIItemListWnd__dtor for parent cleanup.
0x008CBEF071CUIDialog__dtorCUIDialog destructor. Sets vtable to 0113d5d4, then calls UIWindowBase__dtor to clean up base class.
0x008CC0E036CException__scalar_deleting_dtorScalar deleting destructor for CException (0x14 bytes). Sets vtable to 0113fbf8 and conditionally frees memory.
0x008CC11099CUIWindow__scalar_deleting_dtor_basicScalar deleting destructor for basic CUIWindow (0xb8 bytes). Sets vtable to 0113e0cc, calls UIWindowBase__dtor, conditionally frees.
0x008CC180125CUIScrollableWindow__scalar_deleting_dtorScalar deleting destructor for CUIScrollableWindow (0xc0 bytes). Chains vtable reset 0113c92c -> 0113c344 -> 0113c194, calls UIWindowBase__dtor, conditionally frees.
0x008CC200125CUIScrollableWindow__scalar_deleting_dtor_v2Scalar deleting destructor for CUIScrollableWindow variant (0xc0 bytes, vtable 0113c854). Same pattern as CUIScrollableWindow__scalar_deleting_dtor.
0x008CC280119CUIAnimatedWindow__scalar_deleting_dtorScalar deleting destructor for CUIAnimatedWindow (0x160 bytes). Sets vtable to 0113dd6c, calls CFmt cleanup, then UIWindowBase__dtor, conditionally frees.
0x008CC300134CUIWindowWithStrings__scalar_deleting_dtorScalar deleting destructor for CUIWindowWithStrings (0xe8 bytes). Sets vtable to 0113bad4, destroys two std::string members, calls UIWindowBase__dtor, conditionally frees.
0x008CC39099CUINamedWindow__scalar_deleting_dtorScalar deleting destructor for CUINamedWindow (0x128 bytes). Sets vtable to 0113cc8c, calls UIWindow__dtor_8ca5f0, conditionally frees.
0x008CC40038CUINamedWindow__scalar_deleting_dtor_v2Scalar deleting destructor for CUINamedWindow v2 (0x128 bytes). Calls UIWindow__dtor_8ca5f0, conditionally frees. No vtable reset needed.
0x008CC43099CUIBaseWindow__scalar_deleting_dtorScalar deleting destructor for CUIBaseWindow (0xbc bytes). Sets vtable to 0113c194, calls UIWindowBase__dtor, conditionally frees.
0x008CC4A0119CUIWindowWithSlots__scalar_deleting_dtorScalar deleting destructor for CUIWindowWithSlots (0xc8 bytes). Sets vtable to 0113be34, calls CFmt cleanup for slot vector, then UIWindowBase__dtor, conditionally frees.
0x008CC520128CUITrackedWindow__scalar_deleting_dtorScalar deleting destructor for CUITrackedWindow (0xd8 bytes). Sets vtable to 0113bd5c, clears tracking data, calls UIWindowBase__dtor, conditionally frees.
0x008CC5A0123CUIComplexWindow__scalar_deleting_dtorScalar deleting destructor for CUIComplexWindow (600 bytes). Sets vtable to 0113b774, calls FUN_00a8cf20 cleanup, then UIWindow__dtor_8cac40, conditionally frees.
0x008CC62099CUIComplexWindow__scalar_deleting_dtor_v2Scalar deleting destructor for CUIComplexWindow v2 (0x250 bytes). Sets vtable to 0113b924, calls UIWindow__dtor_8cac40, conditionally frees.
0x008CC69099CUIWindowWithCounter__scalar_deleting_dtorScalar deleting destructor for CUIWindowWithCounter (0xbc bytes). Sets vtable to 0113d85c, calls UIWindowBase__dtor, conditionally frees.
0x008CC70099CUIWindowWithCounter__scalar_deleting_dtor_v2Scalar deleting destructor for CUIWindowWithCounter v2 (0xbc bytes). Sets vtable to 0113d784, calls UIWindowBase__dtor, conditionally frees.
0x008CC770125CUIMultiScrollWindow__scalar_deleting_dtorScalar deleting destructor for CUIMultiScrollWindow (0xc0 bytes). Chains vtable reset 0113c4f4 -> 0113c344 -> 0113c194, calls UIWindowBase__dtor, conditionally frees.
0x008CC7F099CUIBaseWindow__scalar_deleting_dtor_v2Scalar deleting destructor for CUIBaseWindow v2 (0xb8 bytes). Sets vtable to 0113c26c, calls UIWindowBase__dtor, conditionally frees.
0x008CC86099CUIMinimalWindow__scalar_deleting_dtorScalar deleting destructor for CUIMinimalWindow (0xb8 bytes). Sets vtable to 0113b18c, calls UIWindowBase__dtor, conditionally frees.
0x008CC8D0226CUITimedWindow__scalar_deleting_dtorScalar deleting destructor for CUITimedWindow (0x17c bytes). Sets vtable to 0113ae2c. Destroys slot vector strings at offsets 0x58-0x5c, calls CFmt cleanup twice, then UIWindowBase__dtor, conditionally frees.
0x008CC9C0112CUIScrollWindow__scalar_deleting_dtorScalar deleting destructor for CUIScrollWindow (0xc0 bytes). Chains vtable 0113c344 -> 0113c194, calls UIWindowBase__dtor, conditionally frees.
0x008CCA30199CUIListWindow__scalar_deleting_dtorScalar deleting destructor for CUIListWindow (0x13c bytes). Sets vtable to 0113aacc, destroys two strings, destroys two hash table linked lists (0x100-byte sentinels), calls UIWindowBase__dtor, conditionally frees.
0x008CCB0099CUISimpleWindow__scalar_deleting_dtorScalar deleting destructor for CUISimpleWindow (0xc8 bytes). Sets vtable to 0113dbbc, calls UIWindowBase__dtor, conditionally frees.
0x008CCB7038CUIItemWindow__scalar_deleting_dtor_baseScalar deleting destructor for CUIItemWindow base (0x250 bytes). Calls UIWindow__dtor_8cac40, conditionally frees. No vtable reset.
0x008CCBA099CUIItemWindow__scalar_deleting_dtor_variantScalar deleting destructor for CUIItemWindow variant (0x250 bytes). Sets vtable to 0113b84c, calls UIWindow__dtor_8cac40, conditionally frees.
0x008CCC10167CUIFilteredListWindow__scalar_deleting_dtorScalar deleting destructor for CUIFilteredListWindow (0xf8 bytes). Chains vtable 0113d274 -> 0113cfec, destroys string, hash table, calls UIWindowBase__dtor, conditionally frees.
0x008CCCC0154CUILinkedListWindow__scalar_deleting_dtorScalar deleting destructor for CUILinkedListWindow (0xf0 bytes). Sets vtable to 0113cfec, destroys string, hash table (0x100-byte sentinel), calls UIWindowBase__dtor, conditionally frees.
0x008CCDE0125CUIScrollPanelWindow__scalar_deleting_dtorScalar deleting destructor for CUIScrollPanelWindow (0xc8 bytes). Chains vtable 0113de44 -> 0113c344 -> 0113c194, calls UIWindowBase__dtor, conditionally frees.
0x008CCE60125CUIScrollContentWindow__scalar_deleting_dtorScalar deleting destructor for CUIScrollContentWindow (0xc0 bytes). Chains vtable 0113ca04 -> 0113c344 -> 0113c194, calls UIWindowBase__dtor, conditionally frees.
0x008CCEE0125CUIScrollViewWindow__scalar_deleting_dtorScalar deleting destructor for CUIScrollViewWindow (0xc0 bytes). Chains vtable 0113c41c -> 0113c344 -> 0113c194, calls UIWindowBase__dtor, conditionally frees.
0x008CCF6099CUITabWindow__scalar_deleting_dtorScalar deleting destructor for CUITabWindow (0xbc bytes). Sets vtable to 0113ac7c, calls UIWindowBase__dtor, conditionally frees.
0x008CCFD0167CUILinkedListWindow__scalar_deleting_dtor_subScalar deleting destructor for CUILinkedListWindow subclass (0xf4 bytes). Chains vtable 0113d19c -> 0113cfec, destroys string/hash table, calls UIWindowBase__dtor, conditionally frees.
0x008CD080134CUIVectorWindow__scalar_deleting_dtorScalar deleting destructor for CUIVectorWindow (0xe0 bytes). Sets vtable to 0113d6ac, frees vector, calls CFmt cleanup, UIWindowBase__dtor, conditionally frees.
0x008CD110143CUITreeWindow__scalar_deleting_dtorScalar deleting destructor for CUITreeWindow (0xc8 bytes). Sets vtable to 0113d34c, frees 4-byte vector, destroys tree nodes, UIWindowBase__dtor, conditionally frees.
0x008CD1A0125CUIScrollExtWindow__scalar_deleting_dtorScalar deleting destructor for CUIScrollExtWindow (0xc4 bytes). Chains vtable 0113c6a4 -> 0113c344 -> 0113c194, calls UIWindowBase__dtor, conditionally frees.
0x008CD220134CUIWindowWithStrings__scalar_deleting_dtor_v2Scalar deleting destructor for CUIWindowWithStrings v2 (0xe8 bytes). Sets vtable to 0113bbac, destroys two strings, calls UIWindowBase__dtor, conditionally frees.
0x008CD2B099CUIDialogWindow__scalar_deleting_dtorScalar deleting destructor for CUIDialogWindow (0xbc bytes). Sets vtable to 0113c0bc, calls UIWindowBase__dtor, conditionally frees.
0x008CD320175CUIMultiStringWindow__scalar_deleting_dtorScalar deleting destructor for CUIMultiStringWindow (0x1f0 bytes). Sets vtable to 0113b33c, destroys 4 strings sequentially, calls UIWindowBase__dtor, conditionally frees.
0x008CD3D099CUIPlainWindow__scalar_deleting_dtorScalar deleting destructor for CUIPlainWindow (0xb4 bytes). Sets vtable to 0113d424, calls UIWindowBase__dtor, conditionally frees.
0x008CD44099CUIPlainWindow__scalar_deleting_dtor_v2Scalar deleting destructor for CUIPlainWindow v2 (0xb4 bytes). Sets vtable to 0113d4fc, calls UIWindowBase__dtor, conditionally frees.
0x008CD4B099CUIFlagWindow__scalar_deleting_dtorScalar deleting destructor for CUIFlagWindow (0xbc bytes). Sets vtable to 0113b414, calls UIWindowBase__dtor, conditionally frees.
0x008CD520137CUIOwnerWindow__scalar_deleting_dtorScalar deleting destructor for CUIOwnerWindow (0xc0 bytes). Sets vtable to 0113b4ec, destroys owned child window via virtual call if non-null, chains to parent dtor at 0113b414, conditionally frees.
0x008CD5B0112CUIDoubleVtableWindow__scalar_deleting_dtorScalar deleting destructor for CUIDoubleVtableWindow (0xe4 bytes). Chains vtable reset 0113ce3c -> 0113cd64, calls UIWindowBase__dtor, conditionally frees.
0x008CD62099CUISubclassedWindow__scalar_deleting_dtorScalar deleting destructor for CUISubclassedWindow (0xe0 bytes). Sets vtable to 0113cd64, calls UIWindowBase__dtor, conditionally frees.
0x008CD69099CUICustomWindow__scalar_deleting_dtorScalar deleting destructor for CUICustomWindow (0xc0 bytes). Sets vtable to 0113b0b4, calls FUN_0096f740 for custom cleanup, conditionally frees.
0x008CD700167CUILinkedListWindow__scalar_deleting_dtor_v2Scalar deleting destructor for CUILinkedListWindow v2 (0xf0 bytes). Chains vtable 0113d0c4 -> 0113cfec, destroys string/hash table, calls UIWindowBase__dtor, conditionally frees.
0x008CD7B099CUIStateWindow__scalar_deleting_dtorScalar deleting destructor (0xd4 bytes, vtable 0113d934). Calls UIWindowBase__dtor, conditionally frees.
0x008CD82099CUIFrameWindow__scalar_deleting_dtorScalar deleting destructor (0xbc bytes, vtable 0113dc94). Calls UIWindowBase__dtor, conditionally frees.
0x008CD89099CUIStaticWindow__scalar_deleting_dtorScalar deleting destructor (0xb4 bytes, vtable 0113bfe4). Calls UIWindowBase__dtor, conditionally frees.
0x008CD90099CUIBasicWindow__scalar_deleting_dtorScalar deleting destructor (0xb8 bytes, vtable 0113bf0c). Calls UIWindowBase__dtor, conditionally frees.
0x008CD970254CUILinkedNodeWindow__scalar_deleting_dtorScalar deleting destructor (0xd8 bytes, vtable 0113bc84). Calls FUN_00ad6450 to clear parent reference, destroys two linked lists of 0xc-byte nodes at offsets 0x30 and 0x2e, UIWindowBase__dtor, conditionally frees.
0x008CDA70112CUIExtendedWindow__scalar_deleting_dtorScalar deleting destructor (0x168 bytes). Chains vtable 0113dff4 -> 0113df1c, calls UIWindowBase__dtor, conditionally frees.
0x008CDAE0119CUIVectorViewWindow__scalar_deleting_dtorScalar deleting destructor (0xc4 bytes, vtable 0113da0c). Calls json__internal_0051dab0 to clear vector, UIWindowBase__dtor, conditionally frees.
0x008CDB60149CUIThreeStringWindow__scalar_deleting_dtorScalar deleting destructor (0x110 bytes, vtable 0113b9fc). Destroys 3 std::string members, calls UIWindowBase__dtor, conditionally frees.
0x008CDC00119CUILabelWindow__scalar_deleting_dtorScalar deleting destructor (0xd4 bytes, vtable 0113b264). Destroys one string, calls UIWindowBase__dtor, conditionally frees.
0x008CDC80194CUILinkedListVectorWindow__scalar_deleting_dtorScalar deleting destructor (0x100 bytes, vtable 0113dae4). Chains to 0113cfec, destroys vector data, string, hash table, calls UIWindowBase__dtor, conditionally frees.
0x008CDD50125CUIScrollExtWindow__scalar_deleting_dtor_v2Scalar deleting destructor (0xc4 bytes, vtable 0113c5cc). Chains vtable -> 0113c344 -> 0113c194, calls UIWindowBase__dtor, conditionally frees.
0x008CDDD099CUIDataWindow__scalar_deleting_dtorScalar deleting destructor (0x100 bytes, vtable 0113b5c4). Calls UIWindowBase__dtor, conditionally frees.
0x008CDE4099CUIBaseExtWindow__scalar_deleting_dtorScalar deleting destructor (0x10c bytes, vtable 0113df1c). Calls UIWindowBase__dtor, conditionally frees.
0x008CDEB099CUIContainerWindow__scalar_deleting_dtorScalar deleting destructor (0xc0 bytes, vtable 0113cadc). Calls UIWindowBase__dtor, conditionally frees.
0x008CDF20134CUIMultiVectorWindow__scalar_deleting_dtorScalar deleting destructor (0x104 bytes, vtable 0113e1a4). Frees two vectors (0xc-byte and 0x30-byte elements), calls UIWindowBase__dtor, conditionally frees.
0x008CDFB099CUIDisplayWindow__scalar_deleting_dtorScalar deleting destructor (0xb8 bytes, vtable 0113ad54). Calls UIWindowBase__dtor, conditionally frees.
0x008CE02099CUIInfoWindow__scalar_deleting_dtorScalar deleting destructor (0xbc bytes, vtable 0113aba4). Calls UIWindowBase__dtor, conditionally frees.
0x008CE090164CUIItemListWindow__scalar_deleting_dtorScalar deleting destructor (0x11c bytes, vtable 0113cf14). Destroys 3 strings, clears item entry vector, calls UIWindowBase__dtor, conditionally frees.
0x008CE140125CUIScrollPanelWindow__scalar_deleting_dtor_v2Scalar deleting destructor v2 (0xc8 bytes, vtable 0113c77c). Chains vtable -> 0113c344 -> 0113c194, calls UIWindowBase__dtor, conditionally frees.
0x008CE1C0139CUIHashMapWindow__scalar_deleting_dtorScalar deleting destructor (0x188 bytes, vtable 0113af04). Destroys hash table at offset 0x3e, calls FUN_0096f6c0 for parent cleanup, conditionally frees.
0x008CE25099CUIDialog__scalar_deleting_dtor_v2Scalar deleting destructor for CUIDialog (0xb4 bytes). Sets vtable to 0113d5d4, calls UIWindowBase__dtor, conditionally frees.
0x008D03E0325CUIWindow__draw_border_or_textureDraws a window border or texture background. If param_4 (name) is empty, draws colored rectangles with gradient using CColorPicker__GetPixelRGB. Otherwise loads a texture by name and draws it as the background.
0x008D0530323CUIWindow__draw_border_or_texture_exExtended version of draw_border_or_texture with additional x-offset (param_2) and height (param_4) parameters. Same logic: texture name takes priority, falls back to colored gradient border.
0x008D0680667CUIWindow__render_skill_sprite_frameRenders a skill sprite animation frame. Loads .spr and .act resources via build_robe_sprite_path_type0/type1, looks up the skill tree node and detail entry, reads frame data from the sprite sheet. Renders normally or with scaling/effects based on param_6 flag using CEffect__render_sprite_quad.
0x008D0920702CUIWindow__draw_tiled_bottom_borderDraws a tiled bottom border using 3 texture pieces: left corner, right corner, and middle fill. Loads textures by param_2 ID (formatted string) or default names. Tiles vertically for param_4 rows from bottom of window. Returns tile height.
0x008D0BE0416CUIWindow__draw_tiled_bottom_border_v2Same as draw_tiled_bottom_border but uses CUIWindow__load_texture_by_id_or_name for texture lookup. Draws left/right corners + tiled middle section for param_5 rows, starting from bottom, at x-offset param_3 with width param_4.
0x008D0D8037CUIWindow__get_screen_positionGets the window's screen position by calling CEffect__accumulate_parent_offsets with local x=0, y=0 to convert to absolute screen coordinates.
0x008D0DB0103CUIWindow__draw_default_backgroundDraws the default window background. Gets screen position, renders a semi-transparent black fill (0x66000000) for the body and a colored title bar (0x449eb6e4, 17px tall) at the top.
0x008D2CA050CUIWindow__draw_skinned_backgroundDraws the skinned window background. Uses skin texture path from DAT_01139cf4 normally, or DAT_0113eeb4 if window type is 0xEA. Delegates to UIWindow__draw_skinned_background_ex with flag=1.
0x008D36C085CUIWindow__validate_and_resizeValidates window position and resizes if needed. If validate fails, calls FUN_009a6cc0 for repositioning, reads target height from parent at offset 0x10, updates height field at 0x33, and resizes via virtual method unless type is 0x11.
0x008D3A5038snap_minimap_to_right_edgeSnaps the minimap window (ID 0x52) to the right edge of the screen. Gets window by ID, calculates right-aligned x position from viewport width minus window width.
0x008D3A8038snap_chatbox_to_right_edgeSnaps the chatbox window (ID 0xC) to the right edge of the screen. Gets window by ID, calculates right-aligned x position from viewport width minus window width.
0x008D7570230CUIWindow__load_texture_by_id_or_nameLoads a texture by formatted ID or fallback name. If param_1 > 0, formats param_2 with ID to build a resource path string; otherwise uses param_3 as a direct path. Loads via CResourceMgr and CMessageStringTable. Returns texture handle or 0 if both paths are null/empty.
0x008D766073CUIWindow__calc_remaining_heightCalculates remaining height in a window by subtracting the heights of all child windows in the linked list at offset 0xb8 (excluding param_2). Each child contributes its 0xb4 height + 4px padding.
0x008D8D90334CItemListWnd__get_item_desc_from_posGets an item description from screen coordinates. Converts x/y into a slot index using grid layout math (two columns of slots plus a center area), then delegates to build_item_desc_by_mode to construct the actual item description. Returns empty desc if coordinates are out of the valid area (this+0xF4 offsets).
0x008D8EE01329CItemListWnd__parse_and_split_item_textParses item text string and splits it based on delimiters. When param_2==0, inserts directly into a vector. Otherwise, copies and deduplicates index arrays, searches for substrings, and splits text at pipe '\|' delimiters. Uses std::string find operations and calls FUN_0090c4f0 to process split segments.
0x008D94201452CItemListWnd__parse_multibyte_text_linesParses multi-byte text (likely CP949/Korean) and splits into lines at newline characters. Handles multi-byte character sequences (high-bit bytes consumed in pairs). Each line's width is measured via FUN_00a80580 and compared against a threshold. Lines exceeding the threshold are further processed via stub_005f76a0. Returns 1 if text was split, 0 if it fits in one piece.
0x008D99D0109CItemListWnd__get_page_index_from_yCalculates page/tab index from Y coordinate relative to control dimensions. Divides param_3 by half of this+0xBC to get raw index, then clamps to valid range [0, count-1] where count is derived from (this+0xC4 - this+0xC0) / 0x18. Returns -1 if coords are out of bounds.
0x008D9A40137CItemListWnd__count_non_empty_tabsCounts the number of non-empty tab entries up to a given index. Iterates through tab array at this+0xC0, comparing each tab's string (at offset 0x0 within 0x18-sized elements) against PTR_DAT_0133a934. Returns count of tabs whose name differs from the empty/default string.
0x008D9AD030CItemListWnd__get_item_countReturns the number of items in the list. Computed as (this+0x8C - this+0x88) / 0x18, where the range represents the item array.
0x008D9D00303CItemListWnd__find_item_by_flag_maskSearches through up to 8 item entries (via FUN_00ddc6f0) for one matching the given bitmask param_2. Checks that the entry is valid (field at +0x108 != 0), type field == 1, and flag field matches the mask. Returns found item via CShopItem copy construct. Returns empty/error if param_2 is -1 or no match found.
0x008D9E3070CItemListWnd__calc_equip_icon_offsetCalculates icon display position offsets for equipment slots based on slot index (param_1) and equip type (param_2). Uses a 5-column grid layout with rows of height 0x52 and columns of width 0x46. Applies type-specific pixel offsets for proper icon alignment in the equipment window.
0x008D9F20167is_game_idle_stateChecks if the game is in a fully idle state. Returns false if DAT_01738254 >= 1. Otherwise checks 8 bit flags on global DAT_0173354c (bits 4, 5, 7, 19, 21, 23, 24, 25). Returns true (1) only when all flags are clear. Not specific to CItemListWnd -- operates on global game state.
0x008D9FE0572CItemListWnd__init_detail_tabsInitializes detail panel tabs for the item list window. Calls FUN_008f5af0 and FUN_008d3430 for setup, copies text from global DAT_01450cd0, queries tab data via FUN_009b4220 with limit 0x1E. Sets up 2+ tab controls at this+0xC0 with names and positions. Adjusts widget sizes based on tab count (1 vs 2+ tabs) and marks this+0xFC as initialized.
0x008DA220181CItemListWnd__update_tab_positionsUpdates the positions of tab controls based on current tab state. Uses fixed x-positions [3, 0x104, 0x1FE] and calculates y-position from this+0x33 * 0x78. Adjusts y-offset based on tab visibility flags (this+0x33, this+0x34, this+0x36). Iterates 3 tab controls at this+0x2D calling their SetPosition virtual method, then calls a virtual refresh at this+0x98.
0x008DA2E031CItemListWnd__clear_tooltip_timerClears/resets the tooltip display timer. If the tooltip widget at this+0x124 is non-null, calls its virtual method at offset 0x94 with parameters (0, 0x3C, 0, 0, 0, 0) to reset the timer state.
0x008DA30083CItemListWnd__is_tab_emptyChecks if a specific tab at index param_2 has an empty/default name. Accesses the tab array at this+0xC0 indexed by param_2 (each entry 0x18 bytes). Compares the tab's string against PTR_DAT_0133a934 using std::char_traits::equal. Returns true if the tab name matches the default (empty) string.
0x008DA380134CItemListWnd__compare_item_propertiesCompares two item entries by multiple properties. First compares the name string at this+0xE4 with param_2+0x2C using std::char_traits::equal. Then checks 5 additional numeric fields match: +0x60 vs +0x118, +0x1C vs +0xD4, +0x20 vs +0xD8, +0x24 vs +0xDC, +0x28 vs +0xE0. Returns true only if all fields match.
0x008DA460552CItemListWnd__show_item_tooltipShows a tooltip for the selected item. Creates UIListDetailWidgetC if not yet allocated (0x160 bytes). Builds item tooltip string via CItemDB, sets detail widget content with the tooltip text, updates the display name via FUN_00858d20, and triggers a refresh via FUN_00855150. Calls FUN_0089cfe0 with callback 0x12b8a4.
0x008DACF0591CItemListWnd__show_item_detail_panelShows the item detail panel for a given item. Creates UIListDetailWidgetC if needed (0x160 bytes). Only displays if widget state < 3 and item fits within display bounds (checking offsets at +0xF0, +0x88). Builds item name with color code 0xD630A9 via FUN_00874a40, sets widget title, constructs display text via CPacketStream, then refreshes via FUN_00855150.
0x008DAF4063CItemListWnd__scroll_with_mount_offsetScrolls the item list and additionally adjusts for mount/riding offset. Calls FUN_008ad150 with the base scroll parameters, then if DAT_014578a4 is set, looks up entity type 0x52 via FUN_00aa5f70 and applies an additional scroll offset based on the entity's size difference (+0x1C - +0x14).
0x008DAF9063CItemListWnd__scroll_with_cart_offsetScrolls the item list and additionally adjusts for cart/falcon offset. Calls FUN_008ad150 with base scroll parameters, then if DAT_014578a0 is set, looks up entity type 0xC via FUN_00aa5f70 and applies an additional scroll offset from the entity's size difference.
0x008DAFE076CItemListWnd__clamp_and_move_windowClamps a window position to stay within screen bounds and moves it. Uses DAT_01389638 screen dimensions (+0x2C for height, +0x28 for width) minus the window's own dimensions (this+0x18, this+0x14) to ensure the window doesn't go off-screen. Then calls FUN_00a81d40 to apply the final position.
0x008DB040354CItemListWnd__update_smooth_scroll_animationUpdates smooth scrolling animation for list items. Iterates through animation entries (0x30 bytes each) in the array at this+0xDC. For each entry with mismatched current/target positions, interpolates position using time-based lerp (timeGetTime delta / duration). Snaps to target when elapsed time exceeds animation duration.
0x008DB1B019CItemListWnd__set_anchor_position_aSets the anchor position fields at this+0x38 and this+0x3C to the given coordinates.
0x008DB1D019CItemListWnd__set_anchor_position_bSets the anchor position fields at this+0x38 and this+0x3C to the given coordinates. Identical implementation to set_anchor_position_a but at a different vtable slot.
0x008DB1F01360CItemListWnd__create_text_and_button_widgetsCreates and initializes a UITextWidget (0x11C bytes) for display and a button widget (0x120 bytes) with 3 sprite states (normal/hover/pressed). Positions the text widget, sets max length to 100, configures text color (0xE8E8E8), sets font from global DAT_01737CF4, and adds both as child widgets. Sets this+0x8C to 0xB8.
0x008DB7501447CItemListWnd__create_scroll_list_and_slotsCreates a UIColoredScrollListBase (0xEC bytes) for scrollable content and 4 UIItemSlotWidget instances (0x114 bytes each). Configures scroll list dimensions, creates slot widgets with sprite images from resource IDs 0x510-0x513, positions each slot in a grid layout, and adds all as child widgets at this+0x150. Sets this+0x8C to 0xB8.
0x008DBD0073CItemListWnd__reset_title_textResets the title/header text of the item list window. Clears the flag at this+0xE4, loads string resource 0x20F via FUN_00b00f00, sets it as the display text, and clears the display via FUN_008cf0c0 with empty parameters.
0x008DBD505424CItemListWnd__process_large_layout_updateLarge layout update function for the item list window (5424 bytes). Handles complex widget repositioning and content refresh operations.
0x008DD2901793UIShopSell__create_buttons_and_scroll_listCreates the shop sell UI with 3 button widgets (sell, sell_a/b, cancel, cancel_a/b) with 3 sprite states each, a UIColoredScrollListBase (0xEC bytes) at this+0xB8 with CColorPicker(2,2) background color, and a timer callback with string resource 0x5C. Sets this+0x8C to 0xE0. Positions buttons using layout arrays for sell/cancel actions.
0x008DD9A01848CItemListWnd__create_edit_and_scroll_widgetsCreates an editable text widget (UIEditableTextWidget, 0xD8 bytes) and a scroll list (UIScrollListBase, 0xD4 bytes) with 2 button widgets (0x120 bytes each with 3 sprite states). Configures scroll list colors (0xF0,0xF0,0xF0), sets min dimensions, positions buttons with cancel sprites, and adds all as child widgets. Uses string resources and sets this+0x8C to 0xB8.
0x008DE0E0628CItemListWnd__create_scroll_list_and_two_buttonsCreates a UIScrollListBase (0xD4 bytes) at this+0xC4 and two button widgets (0x120 bytes each) at this+0xD0 and this+0xD4. Configures scroll list with gray colors (0xF0), sets min size constraints, creates buttons with 3 sprite states each, positions them within the window, and adds all as child widgets. Sets this+0x8C to 0xB8.
0x008DE36032CItemListWnd__init_mount_typeInitializes the window with mount entity type. Calls FUN_008e1890 for base initialization, then sets this+0x1F8 to 0x52 (mount/riding entity type ID).
0x008DE380120CItemListWnd__init_costume_typeInitializes the window with costume entity type. Calls FUN_008e1890 for base initialization, hides a widget at this+0x208, sets this+0x1F8 to 0xFA (costume type ID). Retrieves skin color from CSkinManager using field type 7 and applies it with full opacity (OR 0xFF000000) to the widget at this+0x1B0, then triggers a visual refresh.
0x008DE400142CItemListWnd__create_dropdown_widgetCreates a UIDropdown widget (0xCC bytes) and stores it at this+0xB4. Initializes the dropdown with position (0,0) and given dimensions (param_2, param_3), with flag=1. Adds as child widget.
0x008DE490142CItemListWnd__create_list_widgetCreates a UIListWidget (0xD8 bytes) via UIListWidget__ctor_0086cb40 and stores it at this+0xB4. Initializes with position (0,0) and given dimensions, flag=1. Adds as child widget.
0x008DE520428CItemListWnd__create_button_and_colored_scrollCreates a button widget (0x120 bytes) with 3 sprite states, positions it at (0xEA, 0x60), and creates a UIColoredScrollListBase (0xEC bytes) at this+0xB4. Picks background color via CColorPicker__GetPixelRGB(2,2), sets the scroll list's color, and configures a timer callback with string resource 2. Sets this+0x8C to 0xB8.
0x008DE6D01399CItemListWnd__create_text_widget_and_close_buttonCreates a UITextWidget (0x11C bytes) at this+0xB4 with max length 0x31 and text color (0xE8,0xE8,0xE8). Registers click callback 0x271D. Creates a button widget (0x120 bytes) with 3 sprite states for the close button. Positions relative to parent dimensions and sets this+0x8C to 0xB8. Also calls FUN_00aa9b40 to register the text widget.
0x008DEC505715CItemListWnd__process_extended_layoutExtended layout processing function for the item list window (5715 bytes). Handles complex multi-widget layout calculations and content arrangement.
0x008E30B0629CLoadingScreen__init_background_imageInitializes the loading screen background image. Creates a UIColorButton widget at this+0xB8 with picked color. Selects loading image based on DAT_017387e4: airplane mode uses airplane JPG, random mode picks randomly from the loading image list, sequential mode cycles through. Falls back to loading00.jpg. Loads the image via FUN_00af1620/FUN_00b01200/FUN_00aee770.
0x008E33402366CLoadingScreen__render_loading_progressRenders the loading screen progress display (2366 bytes). Handles loading bar, progress text, and map loading animations.
0x008E7CB01754CItemListWnd__render_item_grid_displayRenders an item grid display (1754 bytes). Draws items in a grid layout with icons, quantities, and selection highlights.
0x008E8390227CItemListWnd__create_color_preview_widgetCreates a color preview widget (0xCC bytes) via FUN_0083e1b0 at this+0xB4. Sets background color to 0xFF2F2F2 , configures max width at +0x90, positions at (10,10). Initializes this+0xCC and this+0xD4 to 0 and sets this+0x8C to 600 (timer interval).
0x008E8480317CItemListWnd__populate_quantity_dropdownPopulates a quantity selection dropdown. Clears the content, builds a list of quantities from 1-9 based on threshold values from layout arrays (0x113FE60, 0x113FEC0). Compares against DAT_01733C88 to determine max quantity. If quantity exceeds 100, adds special entry 0xD. Calls FUN_008ce2c0 to add each item, then resizes the widget based on item count (rows of 5, height 0x62 per row).
0x008E85C0661CItemListWnd__create_dual_scroll_with_expandCreates a dual-panel scrollable item list with expand button. Loads title from resource 0x20E, sets this+0x104 to -1. Creates main UIColoredScrollListBase at this+0xB8, a child widget at this+0xB4, a secondary scroll list at this+0x108 (same color), and an expand button at this+0x10C with resource ID 0x157 and tooltip 0x109E. Both scroll lists use CColorPicker(2,2) for background color.
0x008E88601369CItemListWnd__render_crafting_material_displayRenders the crafting material display (1369 bytes). Shows required materials, current counts, and craft button.
0x008E8DC01431CItemListWnd__render_enchant_displayRenders the enchant/refine display (1431 bytes). Shows enchant options, success rates, and item slots.
0x008E93702333CItemListWnd__render_card_insert_displayRenders the card insertion display (2333 bytes). Shows card slots, insertable cards, and the target equipment.
0x008E9C902797CItemListWnd__render_vending_displayRenders the vending shop display (2797 bytes). Shows items for sale with prices and quantities.
0x008EA7801701CItemListWnd__render_trade_displayRenders the trade window display (1701 bytes). Shows items being traded between players with quantities and zeny amounts.
0x008EAE30472CItemListWnd__create_cancel_button_and_scrollCreates a cancel button widget (0x120 bytes) at this+0xB8 with 3 sprite states, centered horizontally, with button ID 0xB9. Creates a UIColoredScrollListBase at this+0xB4 with CColorPicker(2,2) background color. Configures timer callback with string resource 0x79.
0x008EB010618CItemListWnd__create_label_input_and_listCreates a text label (UITextLabelWidget) at this+0xE4, an editable text input (0x14C bytes) at this+0xE8 with max length 0x46 and purple text color (0xFF,0,0xFF), a list item widget (UIListItem, 0x130 bytes) at this+0xEC with button ID 0xB8 and purple highlight colors, and a child widget at this+0xF0. Sets this+0x8C to 0xB8.
0x008EB2805268CItemListWnd__create_full_inventory_layoutLarge function (5268 bytes) that creates the full inventory window layout with multiple widgets, scroll lists, buttons, and item slots.
0x008EC8401497CItemListWnd__render_progress_with_timerRenders a progress display with timer animation (1497 bytes). Handles countdown timer display and progress bar rendering.
0x008ECE60228CItemListWnd__render_progress_barRenders a progress bar with formatted text showing current/max values. Formats string as "%s : %d / %d" using this+0xBC text, this+0x128, and this+0x124. Draws the text centered horizontally, then calls FUN_00a7bd60 to render the progress bar fill using color from this+0x138/0x13C/0x140. Updates the scroll list background color to match.
0x008ECF50294CItemListWnd__render_titled_image_displayRenders a titled display with an image. Calls FUN_008d2ce0 for base rendering, loads and displays image from this+0xB4 string path if this+0xC4 is non-zero. Copies title string from this+0xCC and flag from this+0xE4, then calls FUN_008d13e0 with font parameters (10,3) to render the combined text content.
0x008ED080169CItemListWnd__render_titled_text_with_shadowRenders text with a shadow effect. Loads two background images (from DAT_0113e940 and DAT_0113f708), then renders the text from this+0xB4 string twice: once with white color (0xFFFFFF) at position (9,4) for shadow, and once with black color (0) at position (8,3) for the main text.
0x008ED13049load_and_display_default_bg_aLoads the default background image from DAT_01139db4 via FUN_00af1620/FUN_00b01200/FUN_00aee770 and displays it at position (0,0) with flag 0.
0x008ED1B049load_and_display_default_bg_bLoads the default background image from DAT_01139db4 via FUN_00af1620/FUN_00b01200/FUN_00aee770 and displays it at position (0,0) with flag 0. Identical to load_and_display_default_bg_a.
0x008ED2401299CItemListWnd__render_character_preview_panelRenders a character preview panel with equipment display (1299 bytes). Loads background image, draws title header, shows character sprite via CCharSlotEntry with equipment info (hair/body colors, job, headgear). Displays equipped items with icons when in view mode 0, with card slot sprites. Manages visibility of scroll buttons based on equipment view state.
0x008ED7602752CItemListWnd__render_guild_info_panelRenders the guild information panel (2752 bytes). Displays guild member list, positions, and related information.
0x008EE2B01326CItemListWnd__render_item_detail_with_card_slotsRenders an item detail panel with card/enchant slots (1326 bytes). Shows skinned background, item description text, and iterates through enchant/card slot entries. For each slot, displays the card icon or an empty slot indicator (colored based on whether refinement level is met). Also positions the item detail tooltip panel via virtual call at the end.
0x008EE7F0467CItemListWnd__render_status_info_displayRenders a status information display panel (467 bytes). Shows status text with formatted values.

Part 3 of Game Core: functions 3,428 to 4,923, 0x008EE9D0 to 0x00A55240