Back to legacygamers.net
WARPGATE

Game Core

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

Functions 3,428 to 4,923 of 8,042Code 2.5 MBAddresses 0x008EE9D0 to 0x00A55240Group Game Logic
1,496 functions
AddressSizeNameDescription
0x008EE9D0762CItemListWnd__render_stat_comparison_displayRenders a stat comparison display with up/down arrows (762 bytes). Shows two stat values (message IDs 0x10D, 0x10E) with triangle indicators showing whether each stat increased (green), decreased (red), or stayed equal (gray). Draws colored triangles pointing up/down/flat based on comparison between current and previous values at offsets +0xB4/+0xB8 and +0xBC/+0xC0.
0x008EECE029CItemListWnd__set_title_and_refreshSets a 4-character title string from DAT_0113f8c4 and calls FUN_008ee7f0 to refresh the display.
0x008EED00914CItemListWnd__render_npc_shop_displayRenders the NPC shop item display (914 bytes). Shows item icons, names, and prices for buying/selling.
0x008EF0A0242CItemListWnd__render_coordinate_displayRenders coordinate display showing current position. Sets magenta text color (0xFFFF00FF), gets current coordinates via FUN_00ad6450/FUN_00cd5510, formats them as "%d, %d", and renders the text twice (with shadow effect at positions 0x13/0x80 in white and 0x14/0x80 in black).
0x008EF1A01002CItemListWnd__render_npc_sprite_animationRenders an NPC sprite animation in the window (1002 bytes). Loads NPC sprite (.spr) and action (.act) files from the string at this+0xB4, builds the file paths as "npc\\%s.spr" and "npc\\%s.act". Uses skill tree node/detail entry APIs to get animation frame data, then renders each sprite layer at calculated positions with tile caching for performance.
0x008EF59049load_and_display_default_bg_cLoads the default background image from DAT_01139db4 and displays at position (0,0). Same pattern as load_and_display_default_bg_a/b.
0x008EF5D0535CItemListWnd__render_quest_info_displayRenders the quest information display (535 bytes). Shows quest objectives, progress, and rewards.
0x008EF850327CItemListWnd__render_and_manage_popup_overlayRenders the window background and manages popup overlay lifecycle (327 bytes). Draws bordered background, then if this+0xBC popup exists: gets text from the item's title field, sets it on the tab control, rebuilds display text. If the popup's visibility flag (+0x47) is 0, destroys it via virtual destructor and clears the reference.
0x008EFA00236CItemListWnd__render_shop_buy_labelsRenders shop/buy window labels. Selects title string resource based on this+0xDC (0x32 uses resource 0x806, otherwise 0x123). Renders header via FUN_008d2ce0 and FUN_008d03e0. Shows item count at row 2. For type 0x46 or 0x32, shows additional label (0x124 or 0x809). Renders price label (0x2E2) and confirm label (0x125) at calculated y-positions based on this+0xDC offset.
0x008EFB40423CItemListWnd__render_slot_machine_animationRenders the slot machine animation using SlotMachine.act and SlotMachine.spr resources. Calculates current animation frame from this+0xBC / this+0xB4. Gets sprite data from skill tree nodes and renders each frame's sprite at centered positions. Advances the animation counter and cycles through animation nodes.
0x008EFCF0618CItemListWnd__render_account_info_displayRenders the account information display. Shows title (resource 0x2CA), loads corner images. Iterates through account entries (0x54 bytes each) from DAT_01732D8C, matching server name against DAT_01737B74. For matching entries, displays AID/character name, server name, and connection time/date info in formatted text rows.
0x008EFF6049load_and_display_default_bg_dLoads default background image from DAT_01139db4 and displays it. Same pattern as other load_and_display_default_bg functions.
0x008EFFA049load_and_display_default_bg_eLoads default background image from DAT_01139db4 and displays it. Same pattern as other load_and_display_default_bg functions.
0x008EFFF0856CItemListWnd__render_pin_code_entry_uiRenders the PIN code entry UI. Shows title (resource 0x76B), draws progress bars and text labels for up to 3 password entry fields. Handles display states based on DAT_01737D10 flag and this+0x108, showing input fields with colored backgrounds (0xE6E6E6 or active state). Draws dot characters for each entered PIN digit at positions this+0xD0/0xD9/0xE2 with y-offsets from this+0xFC/0x100/0x104.
0x008F0350171CItemListWnd__render_otp_entry_headerRenders the OTP entry window header. Shows title from resource 0x293, loads and displays corner decoration images positioned at bottom-left and bottom-right of the window.
0x008F0400169CItemListWnd__render_bordered_panel_bgRenders a bordered panel background. Sets magenta clear color, picks background color via CColorPicker(2,2), fills the right portion of the panel. Draws a gray (0xC3C3C3) outer border and white (0xFFFFFF) inner border around the widget.
0x008F04F0607CItemListWnd__render_skill_list_pageRenders a paginated skill list. Shows title from resource 0x2B9, initializes skill entry, iterates through skills from this+0xF0 array. For visible skills (based on page offset this+0xB8 * this+0xC0), highlights selected row (this+0xBC) using CColorPicker, loads skill icons via FUN_00af1620 and displays them with names in a grid layout (0x20 pixel row height).
0x008F07503284CItemListWnd__render_character_stats_panelRenders a character stats panel with base stats and bonuses (3284 bytes). Shows title (resource 0x69), then if height differs from +0xD4 and not minimized: displays stat rows (6 stats) with base values and bonus values (green for positive, red for negative). Shows additional stats like ATK/DEF/HIT/FLEE ratios, crit rate, ASPD. Also handles an RB tree lookup for secondary stat display when in detailed mode (+0xFC).
0x008F14304131CItemListWnd__render_pin_code_numpadRenders the PIN code numpad entry UI (4131 bytes). Creates cancel/change buttons at the top, then builds 11 number buttons (0-9 plus reset 'R') with randomized positions for security. Buttons use basic_interface textures with btn_num0-btn_num9/btn_numR images. Also renders PIN entry fields (current/new/confirm) with dot masking and active field highlighting. Uses DAT_01737d10 flag to toggle between entry modes.
0x008F2460590CItemListWnd__render_bordered_scroll_areaRenders a bordered scrollable area with tiled border sprites. Loads title from resource 0xAE. Tiles left and right border images vertically (8px per tile). Fills the interior with CColorPicker(2,2) color in two areas. Draws static sprites for content rows (0x20px per row), then fills the remaining area with the picked color.
0x008F26B0967CItemListWnd__render_npc_portrait_displayRenders an NPC portrait/illustration display (967 bytes). Sets magenta clear color, draws header with resource 0xCA6 title. Loads NPC illustration image at position (0, 0x11). If the NPC data source (DAT_01450cd0) has type 1 at +0x28, shows a tip box icon overlay. Otherwise renders the NPC portrait using one of three modes: type 1 = sprite+act animation, type 2 = static image from DAT_0113f60c, type 0 = either DAT_01450cd0 texture or act/spr animation. Also renders animated sprite effects and bottom decorations.
0x008F2A9049load_and_display_default_bg_fLoads default background image from DAT_01139db4 and displays it. Same pattern as other load_and_display_default_bg functions.
0x008F2AD0227CItemListWnd__render_trade_partner_headerRenders the trade partner header. Formats "With %s" or "With %s (%s)" text depending on whether this+0x114 has a guild name set (from this+0x104 string). Draws gray borders (0xC0C0C0) around the window and a separator line, then renders the partner name text in white.
0x008F2BC0534CItemListWnd__render_auction_price_displayRenders the auction/vending price display. Loads background image from DAT_0113EC74. Formats and displays date/time (this+0x164/0x160), current price (resource 0x741, this+0x178), bid increment (resource 0x742, this+0x16C), and total (this+0x170) using formatted currency strings via FUN_00af6140. Shows Zeny symbol (DAT_010D4F5C) and labels (resource 0x51A).
0x008F2DF0973CItemListWnd__render_animated_sprites_layerRenders animated sprite layers. Iterates through sprite entries (0x30 bytes each) from this+0xDC array, builds image paths via FUN_00a95590 and json lookup, then renders visible sprites at their animated positions. Also renders particle effects from a secondary array (0xC bytes each) at this+0xE8 using DAT_0113f6A4 sprite.
0x008F31C0257CItemListWnd__on_mouse_click_itemHandles mouse click on an item in the list. If param_3 < 0x11, sets up timer callback 0xCA. If this+0x2D is 0, calls FUN_008d8580 to get item info, and if valid with positive count, calls FUN_00dd7e10 and dispatches event 0x14 with the item data and whether this+0x3C == 1.
0x008F32D047CItemListWnd__on_click_delegate_and_timerDelegates a click event to virtual method at vtable offset 0x64, then sets up a timer callback at vtable offset 0x94 with parameters (0, 6, 0xB8, 0, 0, 0).
0x008F330035CItemListWnd__on_click_set_close_timerClick handler that sets up a close timer (0xCA) via vtable offset 0x94 if param_3 < 0x11 (left mouse button click).
0x008F3330183CItemListWnd__copy_code_to_clipboardCopies a code string to the Windows clipboard. If param_3 < 0x11 and this+0x114 (string length) is non-zero, allocates global memory, copies the string from this+0x104, opens the clipboard via OpenClipboard, sets CF_TEXT (1) data, and shows a notification "C Code copied to clipboard" in cyan color (0x64FFFF).
0x008F33F0569CItemListWnd__on_click_with_item_lookupClick handler with item lookup and validation (569 bytes). Gets item data, validates it, and processes the click action.
0x008F363024CItemListWnd__on_click_close_window_aClick handler that closes the window via FUN_008ba1e0 if param_2 < 0x11 (left button).
0x008F3660498CItemListWnd__on_click_equip_actionClick handler for equipment actions (498 bytes). Handles equip/unequip operations on item slots.
0x008F38E0205CItemListWnd__on_click_select_list_rowClick handler for selecting a row in a scrollable list (205 bytes). If right-click (param_3 >= 0x11) and not in DAT_016f7144 locked state: calculates the clicked row index from mouse y-position relative to list start (0x22), accounting for row height (0x20 pixels) and the visible row count. Updates the selected row at this+0x2F and triggers a refresh if selection changed.
0x008F39C024CItemListWnd__on_click_close_window_bClick handler that closes the window via FUN_008ba1e0 if param_2 < 0x11. Same pattern as on_click_close_window_a.
0x008F3A4024CItemListWnd__on_click_close_window_cClick handler that closes the window via FUN_008ba1e0 if param_2 < 0x11. Same pattern as on_click_close_window_a/b.
0x008F3A6027CItemListWnd__on_click_close_if_below_thresholdClick handler that closes the window via FUN_008ba1e0 only if param_3 < this+0xD4 threshold value.
0x008F3A80238CItemListWnd__on_click_navigate_to_itemClick handler that navigates to an item's location. Closes the window if param_3 < 0x11. Gets item info via FUN_008d88f0, then if valid, gets current position via FUN_00ad6450. Toggles a direction flag at this+0x15C or stores item ID at this+0x174, then calls FUN_00cfe140 to navigate.
0x008F3BB0111CItemListWnd__on_drag_select_slotDrag handler that selects equipment slots in a grid. If this+0xF0 == 3 (grid mode), checks if the mouse position falls within one of the slot rectangles (0x44px wide, starting at x=6, y range 0x3A-0x96). Calculates the slot index from position and page offset (this+0x154), and updates selection at this+0x158 if changed.
0x008F3C60356CItemListWnd__on_mouse_move_equip_gridMouse move handler for equipment grid selection (356 bytes). Handles hover highlighting in the equipment slot grid.
0x008F3DD01317CItemListWnd__on_hover_show_item_tooltipHover/tooltip handler that shows item tooltips at slot positions (1317 bytes). Gets slot info from mouse position, calculates tooltip anchor coordinates, then shows a tooltip with item name and count (resource 0xA28 for count >= 2, 0x9F7 for stacked items, or 0xB7 for simple items). Also tracks equipped item highlighting by checking game mode field 0x308 and updating highlight slot indices at this+0x2E/0x2F/0x30.
0x008F4300539CItemListWnd__on_click_equip_slot_tooltipClick handler that shows tooltips for equipment slots (539 bytes). Gets the selected slot from click position, stores x-coordinate at this+0x114. Calculates tooltip anchor position based on whether click is in left (x < 0x117) or right column. Builds item tooltip string and shows it with count info (resource 0xA28 when item has quantity) or plain tooltip. Uses CItemDesc color code for tooltip text color.
0x008F4520340CItemListWnd__on_click_card_slot_tooltipClick handler for card/enchant slot tooltips (340 bytes). Hit-tests click position against card slot rectangles. If a card slot is hit and this+0x20C detail mode is active: creates a temporary item descriptor, gets the card ID from the slot array at this+0xD4, builds a tooltip string with item name and count (resource 0xA28), and shows it at the slot position. Colors tooltip based on card rarity when slot index exceeds refinement level.
0x008F468050CItemListWnd__on_hover_update_page_indexHover handler that updates the highlighted page/tab index. Calls get_page_index_from_y to determine which tab the mouse is over, stores it at this+0x2E, and triggers a repaint via virtual method 0x98 if the index changed.
0x008F46C0945CItemListWnd__on_mouse_move_handlerMouse move handler (945 bytes). Processes mouse movement for hover effects, tooltip display, and drag operations.
0x008F4A8035CItemListWnd__on_key_press_delegateKey press delegate that first calls UIWindow__update_position_with_snap for base key handling, then forwards the key event to the virtual method at vtable offset 0x70 with the same parameters.
0x008F4AB09thunk_to_virtual_method_offset_0x70_008f4ab0Calls virtual method at offset 0x70 from vtable pointer
0x008F4AC0628CItemListWnd__advance_auto_scroll_textAuto-scrolling text display handler (628 bytes). If auto-scroll is enabled (this+0x134) and timer is set (this+0x130), advances to next text entry every 4 seconds. When end of text array (this+0x144) is reached, stops and unregisters text widget. Otherwise: dispatches chat clear (type 3), extracts colored text segments from current entry, displays via chat (type 1), creates/reuses a hyperlink text widget (0xCC bytes) for centered display, and updates the text index and timer.
0x008F4D50559CItemListWnd__on_input_change_validate_numericMonitors the text edit widget for changes (compares text length to cached value at this+0x120). If text changed, validates it as a numeric string. Invalid input shows error message 0x25A and restores previous text. Values exceeding 1,000,000,000 are clamped with message 0x9A3. Updates number display colors and scroll position after validation.
0x008F4FC039CItemListWnd__check_idle_timeoutChecks if 5 seconds have elapsed since this+0xE4 timestamp. If so, calls FUN_00a8cf20(0x3A) to trigger an idle timeout event.
0x008F4FF0114CItemListWnd__update_scroll_and_check_completionUpdates scroll position and checks for completion. Triggers repaint via vtable 0x98. If the scroll position (this+0x31) matches the total items divided by stride (this+0x2F / this+0x2D) and the count (this+0x32) >= stride, starts a 2-second timer. When the timer expires, calls FUN_00a8cf20(0x5B) to signal completion.
0x008F50E0795CItemListWnd__on_update_render_effectsPer-frame update handler (795 bytes). Handles: (1) text wrapping and display when this+0x3F flag is set - wraps text from the global item list into lines via text_word_wrap_to_lines, sends each line as event 0x1D. (2) Tip box image refresh via CTipBox__has_images. (3) Animation frame cycling every 300ms - cycles through 0xC-byte entries toggling active flag. (4) Equip slot animated effects via CUIEquipWindow__draw_animated_slot_effects.
0x008F5400181CItemListWnd__on_right_click_show_item_infoRight-click handler that shows item information. Gets slot index from position via get_slot_index_from_pos. If valid, looks up the item widget via FUN_00a978d0(0xC) and dispatches event 0x18 with the item data.
0x008F54C0185CItemListWnd__on_right_click_show_item_info_altAlternative right-click handler for showing item info. Gets item data via FUN_008d86d0, then if valid, looks up the parent widget via FUN_00a978d0(0xC) and dispatches event 0x18 with the item data. Null-checks the parent widget pointer.
0x008F5580518CItemListWnd__on_click_show_card_slot_infoClick handler that shows card slot information (518 bytes). Hit-tests card slots via CUIEquipWindow__hit_test_card_slot. If a slot is hit, creates an item info window (type 0x52), sends card flag (event 0x4C) and item data (event 0x18) with refinement level comparison. Also checks for a secondary equipped item (DAT_014578A0) and opens a second info window (type 0xFA) for comparison display if the secondary has a valid card.
0x008F5790303CItemListWnd__on_click_show_card_slot_info_simpleSimplified click handler for card slot info (303 bytes). Hit-tests card slots via CUIEquipWindow__hit_test_card_slot. If a slot is hit, creates item info window (type 0x52), sends card flag (event 0x4C) and item data (event 0x18) with refinement level. No secondary item comparison (simpler variant of on_click_show_card_slot_info).
0x008F58C0194CItemListWnd__on_double_click_show_item_infoDouble-click handler that shows item info window. Gets item desc from grid position via CUIEquipWindow__get_item_desc_from_grid_pos. If valid and this+0x15C >= 0, creates item info window (type 0xC) and sends event 0x18 with item data to display the item details popup.
0x008F59C069CItemListWnd__on_mouse_wheel_page_scrollMouse wheel handler for page scrolling. Only active if DAT_0173A700 > 4 and this+0x3C == 3 (page mode). Scrolls up (1) or down (-1) via vtable 0x94 with event type 8 based on wheel direction (param_2).
0x008F5A1051CItemListWnd__on_mouse_wheel_scrollMouse wheel handler that scrolls the list. Scrolls up (1) or down (-1) via vtable 0x94 with event type 7 using this+0x31 as target, based on wheel direction.
0x008F5A5066CItemListWnd__on_mouse_wheel_multi_scrollMouse wheel handler with multi-step scrolling. If this+0x32 is non-zero, calculates scroll amount as min(this+0x31 - 1, 3), negates for down direction. Dispatches via vtable 0x94 event type 7.
0x008F5AA067CItemListWnd__on_mouse_wheel_tab_switchMouse wheel handler for switching tabs. Only active if get_field_0x1724 > 3. Scrolls to next tab (event 10) on wheel up or previous tab (event 9) on wheel down.
0x008F5AF01373CItemListWnd__update_page_counter_displayUpdates the page counter display showing current page and total item count (1373 bytes). Formats "X" (page number) and "/Y" (total items / 0x18 stride) as strings, measures text widths to center-align the page number widget (this+0xC8) and separator widget (this+0xCC) at fixed Y=0x140. Uses format_int_to_string and CEffect__measure_text_width for layout calculations.
0x008F6050290CItemListWnd__cycle_animation_frameCycles through animation frames every 300ms. Iterates over an array of 0xC-byte entries (this+0xE8 to this+0xEC). Finds the first entry with flag byte[8]==0, sets it to 1, and returns. If all entries are active, resets all flags to 0 and starts over. Used for slot highlight animation cycling.
0x008F6180489CBookWnd__read_registry_bookmark_valueReads a DWORD value from the Windows registry under the BookMark key path. Builds the registry path by concatenating a base path, "\\BookMark\\", a server-specific string, and a decrypted suffix. Opens HKEY_LOCAL_MACHINE, queries the named value (param_1), and returns the result (default 1 if key not found). Used to persist bookmark/page positions for the book window.
0x008F6370298CItemListWnd__calculate_shop_item_propertiesIterates over 8 shop item slots via CShop__get_item_by_index_or_special. For each valid item with fc==1, looks up item info by ID (from string). Accumulates bitwise OR of item flags (offset 0x2C) and adds stat values from a 2-element array (offset 0x34) into this+0xB4 and this+0xBC. Stops early if flag overlap detected.
0x008F64B0175CItemListWnd__update_scrollbar_rangeUpdates the scrollbar range and position based on item count. Calculates total rows from this+0xD0 / this+0xC0 (rounding up). If items fit in visible area (this+0xC4 rows), disables scrollbar and resets scroll position. Otherwise, enables scrollbar, clamps scroll position to valid range, and updates the scrollbar control. Triggers repaint.
0x008F6560219CItemListWnd__populate_dropdown_tab_itemsPopulates a dropdown/tab control with items (219 bytes). Clears the dropdown widget (this+0x120) via vtable 0xDC, adds default item from message 0xA7E, then iterates over the global item array (DAT_01738798 to DAT_0173879C) adding each item's title string via lua_get_title_string and the dropdown's vtable 0xD8 method.
0x008F66B067CItemListWnd__resize_and_refresh_scroll_list_aResizes the main widget and refreshes the scroll list. Calls FUN_00a82eb0 for base resize, then updates the scroll list at this+0xB4 by setting its size (vtable 4), calling its layout method (vtable 0xE0), and triggering repaint (vtable 0x98).
0x008F670067CItemListWnd__resize_and_refresh_scroll_list_bResizes the main widget and refreshes the scroll list. Identical implementation to resize_and_refresh_scroll_list_a.
0x008F6750181CItemListWnd__resize_and_update_childrenResizes the window and updates all child widget positions (181 bytes). Propagates size changes to child controls.
0x008F681046CItemListWnd__resize_to_fit_itemsResizes the window to fit the given number of items (param_2). Calculates height as ((param_2 - 1) / 5 + 1) * 0x62 rows. Calls virtual method at vtable offset 4 with current width (this+0x5 * 4) and calculated height.
0x008F6840369CItemListWnd__resize_with_scroll_updateResize handler that updates scroll area dimensions (369 bytes).
0x008F69C0102CItemListWnd__on_event_send_selectionHandles selection events. Searches the array at this+0xB8 for a value matching (param_2 - 9000). If found, sends command 0x9A with the value and stored data (this+0xB4) via the game mode interface, then clears via tls_clear_field.
0x008F6A30135CItemListWnd__on_event_copy_text_and_closeEvent handler (135 bytes). If event is not type 6, delegates to UIWindow__handle_button_click. On button 0xB8: gets text from edit widget, copies it to string buffer, shows chat message 0x3AE in green (0x64FFFF), focuses window, and closes via tls_clear 0x74.
0x008F6AC0568CItemListWnd__on_event_confirm_with_textEvent handler for confirmation dialog with text display (568 bytes). Button 0xB8/0xB9 sends command 0xAD with stored value and accept/reject flag, then closes (0x6E). Event 0x5B stores param, sets display text from name + message 0xB95 via text widget. Event 0x7B parses packet 0x542E/0x542F protocol. Delegates to UIWindow__handle_button_click for other events.
0x008F6D00839CItemListWnd__on_event_confirm_with_book_textEvent handler for confirmation dialog with embedded book text (839 bytes). Button 0xB8 creates sub-dialog (type 0x6E) with event 0x5B/0xB8, sends to parent. Button 0xB9 sends command 0xAD with reject. Event 0x5B stores param, builds display text from name + message 0x31A. Event 0x7B parses packet 0x53FC/0x53FD/0x53FE - extracts embedded text and dispatches as event 0x5B. Delegates to UIWindow__handle_button_click for other events.
0x008F7050116CBookWnd__on_event_handlerMain event handler for the book window (large, complex). Button 0xC9 closes window (0x6A). Buttons 0x162/0x163 navigate pages (prev/next) with bounds checking. Button 0x164 saves current page to registry via CBookWnd__read_registry_bookmark_value (builds BookMark registry path, writes with RegSetValueEx). Events 0x14/0x15 forward as page nav buttons. Event 0x5C loads book page: clears text widget, populates lines with color-coded text, handles charset prefix encoding. Event 0x5D toggles auto-scroll mode with 4s timer. Event 0x5E opens a new book by item ID: reads book text file, parses color headers, splits into pages of 0x13 lines.
0x008F79C0324CItemListWnd__on_event_enchant_window_handlerEvent handler for the enchant/enchantment window (324 bytes). Button 0xC9 closes window (0x2F). Event 0x3E: stores flag at this+0x39, looks up item by ID, checks if it's a valid enchant ID. If the item string changed, updates stored item string and title text (message 0xF238 + item name), triggers repaint and focus. Delegates other events to UIWindow__handle_button_click.
0x008F7B10445CItemListWnd__on_event_search_dual_panel_handlerEvent handler for a dual-panel search window (445 bytes). Button 0xB8 (OK): validates search text (min length, ASCII check for locale 1, incomplete check), builds search request with two strings and dispatches command 0x2C. Buttons 0xB9/0xC9 close window (0x1E). Buttons 0xE4/0xE5 open dropdown lists (type 0x1A) for two separate categories with different string arrays. Event 0x22: handles tab selection, updates text widgets and radio-button tabs (0xD4-0xDC). Delegates to CItemListWnd__dtor for other events.
0x008F80B01346CItemListWnd__on_event_search_window_handlerEvent handler for a search-type item list window (1346 bytes). Handles: button 0xB8 (OK) - validates search text, checks for incomplete searches, ASCII-only checks for locale 1, minimum 4-char requirement, then dispatches search command 0x2B. Button 0xB9/0xC9 (cancel) - closes window. Button 0xD7 - tab selection with radio-button style toggling. Buttons 0xE4/0xE5 - opens dropdown list (type 0x1A) populated from two string arrays. Event 0x27 - selects from dropdown and sets display text.
0x008F8640541CItemListWnd__on_event_add_item_to_listEvent handler that adds items to the list display (541 bytes). On event 0x1B with non-null text: checks if text is the "empty" message (0x29A), otherwise parses nItemID tag to get item name. Adds text line to the display widget (this+0x31), increments item count (this+0x2D), and auto-resizes the window and child widgets if needed. Falls through to CItemListWnd__ctor for other events.
0x008F8860474CItemListWnd__on_event_deal_window_handlerEvent handler for the deal/trade confirmation window (474 bytes). On button 6: logs button press. Button 0xB9 sends trade accept command (0x28) and closes window (0x19). Buttons 0xDF/0xE0 send trade modify commands (0x25/0x26) with item ID (this+0x2D). Clears deal/inventory lists after action. Event 0x1C stores item reference. Event 0x7B parses packet 0x5172/0x5173 for trade protocol, sets field 0x24C and clears related windows (0x16/0x17/0x18).
0x008F8A40138CItemListWnd__on_event_choice_dialog_handlerEvent handler for a choice dialog window (138 bytes actual, handles many events). Button 0xB8 selects item at scroll index and sends command 0x4A with item string. Button 0xB9 sends "cancel" string. Events 0x12/0x13 forward to child list widget. Event 0x1B adds text lines - checks for "Random" or "cancel" strings for special display messages (0xD4, 0xDA), otherwise resolves item names. Event 0x3B stores selection index. Event 0x7B parses packet 0x55BE/0x55BF/0x55C1 protocol.
0x008F8ED01220CItemListWnd__on_event_npc_shop_handlerEvent handler for the NPC shop window (1220 bytes). If DAT_01457AD8 is set, shows "busy" message and returns. Button 0xB8 (OK) with debounce: validates selection, sends buy command 0x17 with item index and quantity. Button 0xB9 sends cancel command 0x28. Events 0x12/0x13 forward scrolling. Event 0x1B: adds item text lines, parses nItemID tags, auto-resizes window. Event 0x1C stores quantity. Event 0x22 validates/sets window position. Event 0x7B parses packet 0x558C/0x558D/0x558F. Event 0xA6 sends buy command with -1 (buy all).
0x008F9460178CItemListWnd__on_event_position_windowEvent handler for window positioning (178 bytes). On event 0x22: stores position data at this+0x94, validates saved position via UIWindow__validate_position_280_variableH. If no saved position, centers window horizontally and scales Y position based on screen resolution. Otherwise restores saved position. Delegates other events to CItemListWnd__handle_complex_input_event.
0x008F952080CItemListWnd__on_event_align_to_parentEvent handler that aligns this window relative to a parent window (80 bytes). On event 0x22: finds item info window (type 0x52) and positions this window at its right edge (parent right - parent width, parent top). Delegates other events to CItemListWnd__handle_complex_input_event.
0x008F957055CItemListWnd__dispatch_event_to_child_widgetDispatches events to the appropriate child widget. If this+0xB8 widget exists and event type is 0x27, forwards to that widget's vtable 0x94 handler. Otherwise forwards to the this+0xB4 widget's vtable 0x94 handler.
0x008F95B055CItemListWnd__dispatch_event_to_child_widget_altDispatches events to child widget (variant B). Same logic as dispatch_event_to_child_widget: if this+0xB8 exists and event type is 0x27, forwards there; otherwise forwards to this+0xB4 widget.
0x008F95F0474CItemListWnd__on_event_confirm_dialog_handlerEvent handler for a confirmation dialog (474 bytes). Button 0xB8 (OK) sends command 0xA7 with stored value and result=1. Button 0xB9 (cancel) sends command 0xA7 with result=0. Both close the window via tls_clear 0x68. Event 0x5A: stores value at this+0xB4, builds display string from name + message 0x2E1, sends to text widget. Delegates other events to UIWindow__handle_button_click.
0x008F97D065CItemListWnd__on_event_simple_confirm_handlerSimple event handler for single-button confirmation (65 bytes). On button 0xB8: sends command 0x8D via game mode interface. Delegates other events to UIWindow__handle_button_click.
0x008F982083CItemListWnd__on_event_text_input_submitEvent handler for text input submission (83 bytes). Stores button ID in DAT_01457AF4. On button 0xB8: gets text from the edit widget and sends command 0x271C with the text string via the game mode interface. Delegates other events to UIWindow__handle_button_click.
0x008F988085CItemListWnd__msg_handler_mainMain message handler for CItemListWnd. Handles: msg 6 (buttons: 0xC9 close, 0xCA expand/collapse, 0xD5 sell mode, 0xD7 tab selection, 0xF8 use item with link/flag checks, 0xF9 open crafting, 0x10F damage resource Lua call, 0x1E0/0x23F job sprite send, 0x246 window creation, 0x1FC navigation window toggle). msg 8: scroll with clamping. msg 0x16: display mode switch with child visibility management. msg 0x22: position init with validation. msg 0x30: class type determination. msg 0x3C: resize/layout update. msg 0x6A: card count check for equip/inventory.
0x008F9E1B897CItemUseWnd__show_item_use_confirmation_windowCItemUseWnd: show item use confirmation window
0x008FA1F967caseD_c9Cased c9, small utility function
0x008FA8C0160CItemListWnd__msg_handler_shop_displayMessage handler for a shop display item list window. On msg 6: handles 0xB8 (buy with TLS clear 0x20), 0xB9 (sell with TLS clear 0x20). On msg 0x22: initializes position from data. On msg 0x32: builds display text with item name and formatted price using C_Code format. On msg 0x7B: binary packet parser for tags 0x5492-0x5494 (text field assignment).
0x008FAF50144CItemListWnd__msg_handler_shop_cartMessage handler for a shop cart/vending item list window. On msg 6: handles buy (0xB8 with amount validation/atoi64), sell (0xB9), toggle (0xD5), text input (0xE2), and confirm (0xE6 with formatted message). On msg 0x17: rebuilds cart and vending item lists from 10 slots. On msg 0x26: sends item selection. On msg 0x32: sets item text and metadata. On msg 0x33/0x34: hides text widget and updates tabs. On msg 0x7B: binary packet parser for tags 0x5078-0x5081.
0x008FB850272CItemListWnd__process_button_eventProcesses a button event by routing to the appropriate handler (272 bytes).
0x008FB9607046CItemListWnd__handle_complex_input_eventLarge input event handler (7046 bytes) for the item list window. Processes mouse clicks, drags, keyboard input, and various UI interactions.
0x008FD5F080CItemListWnd__msg_handler_window_offsetMessage handler that adjusts window offset. On msg 0x22: finds window type 0xC and adjusts its offset using width delta and current position. On other messages: delegates to CItemListWnd__handle_complex_input_event.
0x008FD640132CItemListWnd__set_scroll_positionSets the scroll position and updates the display (132 bytes).
0x008FDA10866CItemListWnd__process_keyboard_inputProcesses keyboard input for the item list window (866 bytes). Handles navigation keys, enter, escape, etc.
0x008FDE10711CItemListWnd__handle_window_messageHandles window messages for the item list window (711 bytes). Routes messages to appropriate handlers.
0x008FE0E0547CItemListWnd__handle_command_messageHandles command messages for the item list window (547 bytes). Processes menu and accelerator commands.
0x008FE3101123CItemListWnd__handle_notify_messageHandles notification messages for the item list window (1123 bytes). Processes child control notifications.
0x008FE780792CItemListWnd__process_update_eventProcesses update events for the item list window (792 bytes). Handles data refresh and display updates.
0x008FEAA093CItemListWnd__msg_handler_loading_progressHandles loading progress display. On msg 0x11: formats "Loading %d %s" string and updates a progress indicator control. Returns 0 for all messages.
0x008FEB00118CItemListWnd__msg_handler_item_reform_selectMessage handler for an item reform/selection window. On msg 6: handles buy (0xB8 with item reform or generic sell based on mode), cancel (0xB9). On msg 7/9/10: scrolling with page up/down. On msg 0x1F: adds item entry to shop list. On msg 0x22: sets display mode. On msg 0x3C: updates scrollbar range. On msg 0x4B: clears shop item list. On msg 0x7B: binary packet parser for tags 0x5654-0x5657.
0x008FEF8067CItemListWnd__msg_handler_dropdown_listMessage handler for a dropdown/popup list control. On msg 0x1E: auto-sizes window based on text measurement of all entries. On msg 0x1F: adds a slot entry with associated string data. On msg 0x48: resets data source pointer. On msg 0x4B: clears all entries and resets tail pointer. On msg 0x53: sets selection index and value. Falls through to parent handler for other messages.
0x008FF130948CItemListWnd__process_custom_eventProcesses custom events for the item list window (948 bytes). Handles application-specific messages.
0x008FF640459CItemListWnd__update_item_dataUpdates item data from server response (459 bytes). Refreshes the displayed items.
0x008FF810136CItemListWnd__set_selected_itemSets the currently selected item in the list (136 bytes).
0x008FF8A0111CItemListWnd__msg_handler_confirm_actionMessage handler for confirming an action. On msg 6 with 0xB8: sends the stored value at offset 0xB8 via vtable dispatch. On msg 6 with 0xB9: sends value 2 (cancel). On msg 0x50: stores the action parameter at offset 0xB8. Falls through to default handler for other messages.
0x008FF910650CItemListWnd__add_items_to_listAdds items to the item list (650 bytes). Populates the list with item entries.
0x008FFBA058CItemListWnd__msg_handler_open_detail_windowMessage handler that opens a detail window (type 0x25) on button 0xC0 click and focuses it. Delegates to parent handler for non-msg-6 messages.
0x008FFBE093CItemListWnd__msg_handler_open_inventory_windowMessage handler that opens an inventory window (type 0xB) on button 0xC0 click. If the window's mode is 0x11, sends msg 0xCA to it. Focuses the opened window. Delegates to parent for non-msg-6 messages.
0x008FFC4065CItemListWnd__msg_handler_open_catalog_windowMessage handler that opens a catalog window (type 0x2718) on button 0xC0 click and focuses it. Delegates to parent handler for non-msg-6 messages.
0x008FFC90223CItemListWnd__msg_handler_submit_quantityMessage handler for submitting a quantity/amount input. Checks global trade lock flag first (shows error 0xAAA if set). On msg 6 with 0xB8: reads text input as integer via atoi, sends vtable(99, stored_item_id, quantity). On msg 0x1C: stores item ID at offset 0xB8. Falls through to default handler for other messages.
0x008FFD701368CItemListWnd__apply_filterApplies a filter to the item list (1368 bytes). Filters items based on type, name, or other criteria.
0x009002D0439CItemListWnd__msg_handler_submit_searchMessage handler for submitting a search/text query. On msg 6 with 0xB8: reads text input, validates it is non-empty (shows error 0x818 if empty), clears child display, and sends search text via vtable(0x3B, text). On msg 6 with 0xB9: closes window (TLS clear 0xD0). Falls through to default handler for other messages.
0x00900490370CItemListWnd__update_display_stateUpdates the display state of the item list window (402 bytes).
0x0090082D1stub_nop_0090082dSingle-byte stub function (size=1)
0x00900B10112CItemListWnd__set_display_modeSets the display mode for the item list window (112 bytes).
0x00900D5062CItemListWnd__set_display_parametersSets display parameters for the item list window. On msg 0x50 with param 0: sets field 0xC0 to the given value. On msg 0x50 with param != 0: sets field 0xC4, and also sets fields 0xB4 and 0xC8 to 7 (likely a display mode constant).
0x00900D901503CItemListWnd__handle_item_actionHandles item actions like use, equip, drop (1503 bytes). Main action dispatch for item operations.
0x00901520198UIItemListWindow__msg_handlerComplex UI window message handler for an item list window with buttons. Handles: msg 6 (click with tick count throttling at 300ms for 0xDA, sends position via vtable), msg 0x12/0x13 (forwarded to parent), msg 0x19 (set button to btn_next), msg 0x1A (update position), msg 0x20 (set button to close with 600 timer), msg 0x22 (map entry creation), msg 0x3F (set button to btn_close), msg 0x4B (close parent), msg 0x50 (set state), msg 0x55 (create child window with BMP sprites for normal/a/b states), msg 0x56 (remove child by ID from linked list), msg 0x7B (binary packet parser for tags 0x57E4-0x57E8).
0x00901D40150UISecureLoginWindow__msg_handlerMessage handler for the secure PIN login window (security keypad). Manages a multi-stage PIN entry flow with states 0-3. State 0: enter first PIN, state 1: intermediate (resets fields), state 2: enter password, state 3: confirm password with comparison. Handles numeric key input via messages 0x124-0x130 (digits 0-9 via FUN_0090c350), backspace 0x12F, confirm 0xB8/0xDA, and cancel 0xB9. Builds packet 0x8BA/0x8BC/0x8C3 upon successful completion. Uses error message 0x75F for invalid length and 0x3F8 for password mismatch.
0x00903230150UISecureLoginWindow__msg_handler_variantVariant of the secure PIN login window message handler. Nearly identical to the handler at 00901d40 but with different packet IDs (0x8B8/0x8BE/0x8C3). Uses the same multi-stage PIN entry flow (states 0-3) with numeric key input handling (0x124-0x130), validation, and password confirmation. State 1 additionally validates PIN length. Builds different network packets for PIN change vs new PIN scenarios.
0x00904810328UISelectItemWindow__msg_handlerWindow message handler for an item selection list. On msg 6: if param is 0xC9 closes window (0x5f), otherwise looks up param-9000 in a vector to find item index and sends vtable(0x9A, index, storeId). On msg 0x22: initializes display by clearing item list, loading byte array of item data into vector, populating item display entries via FUN_008ce2c0, and resizing window based on item count (5 items per row at 0x62 height each).
0x009049602219UISkillInfoWindow__msg_handlerMessage handler for the skill information/tooltip window. On msg 6: handles 0xC9 (close) and 0x157 (skill reset). On msg 0x3D: displays skill details - gets skill name, SP/AP cost, checks IsPassiveSkill, formats skill description using GetSkillDescript/GetSkillIdName, parses description lines with CFmt, displays them in child text areas with scroll support. Caps window height to screen height minus 50px. Uses CSkillEntry for temporary skill data storage.
0x00905210259UISkillSelectWindow__msg_handlerWindow message handler for a skill selection UI. On msg 6 with 0xB8: if a valid skill is selected (offset 0xB8 != -1), looks up skill group via FUN_00858d50/FUN_00858d20 and sends vtable(0x62, skillSlot, groupId) then closes window (0x37). On msg 0x44: sets the selected skill ID, looks up skill name via CSkillManager__GetSkillNameById, updates the display text, and refreshes the window.
0x00905320107UIShopBuyWindow__msg_handlerMessage handler for a shop buy window. On msg 6: handles 0xB8 (buy selected item - checks index bounds, sends vtable 0xA3 or 0x100 depending on shop type flag at 0x3F), 0xB9 (cancel/close). On msg 7/9/10: scrolling support with page up/down. On msg 0x1B: sets shop type flag. On msg 0x1F: adds item ID to vector, creates CShopItemList entry, triggers item display refresh. On msg 0x3C: rebuilds item list display.
0x00905590665UIChannelSelectWindow__msg_handlerMessage handler for a channel/chat selection window. On msg 6 with 0xB8: sends vtable(0xBE, channelChar) and closes window (0x77). On msg 6 with 0xB9: just closes. On msg 0x5B: sets channel character at offset 0x30, displays appropriate label text (message 0x4EF for newline/0x0A, message 0x404 otherwise). On msg 0x7B: binary packet parser for tags 0x54C4-0x54C6, copies channel data and triggers 0x5B update.
0x00905830895UIStatusWindow__msg_handlerMessage handler for the character status window. On msg 6: handles 0xC9 (close), 0xCA (expand/collapse toggle), 0xCD-0xD2 (stat point allocation for STR/AGI/VIT/INT/DEX/LUK with level checks), 0x226 (toggle extended view with button sprite changes), 0x227-0x22C (trait stat allocation with validation). On msg 0x22: initializes window from data, validates position, triggers stat display update. On msg 0x23: refreshes stat buttons visibility based on available stat points and trait points.
0x00905F403371UIBankWindow__msg_handlerMessage handler for the bank/zeny deposit window. Implements a multi-state numeric input flow (states 0-3) for entering amounts. State 0: enter amount directly and send packet 0xBC. States 1-3: multi-step PIN with password entry and confirmation. Handles numeric keypad input (0x125-0x12E for digits, 0x12F for backspace, 0x130 for confirm). Validates input length (4-8 digits), confirms passwords match, and builds large zeny values using 100M multiplier for overflow handling. Max 8 digits per field. Cancel (0xB9) closes window 0x73.
0x00906DE0286UITipOfDayWindow__msg_handlerMessage handler for the Tip of the Day window. On msg 6: 0xC9 (close, window ID 0x26), 0xD5 (toggle "show tips at startup" checkbox, saves to registry SHOWTIPSATSTARTUP), 0xDA (next tip, wraps around to 0), 0xF6 (previous tip, wraps to end). On msg 0x1D: displays formatted tip content with title text and iterates through text array to display tip lines.
0x00907050779UITipBoxWindow__msg_handlerMessage handler for the expanded tip box window (loading screen tips). On msg 6: 0xB8 (advance to next page, inserts into BST-based page set, updates CTipBox selection), 0xC9 (close, window ID 0x13B), 0xD5 (save tips toggle to registry), 0xDA (next page with last-page check), 0xF6 (previous page), 0x16D (update content from skill data string), 0x205 (show reward detail based on type 0x1EA-0x1EC), 0x21F (navigate). Uses CTipBox class for page management. Manages prev/next button enable states based on page position.
0x0090761052UISimpleOkCancelWindow__msg_handlerSimple window message handler that closes (destroys) the window on either OK (0xB8) or Cancel (0xB9) button press. Falls through to default handler for non-msg-6 messages.
0x00907650104UIConfirmationPopup__msg_handlerMessage handler for a confirmation popup window. On msg 6 with 0xB9 (cancel): sends vtable message 0x2725 (generic cancel notification). On msg 0x58: repositions a child window (offset 0xB8) to center horizontally and anchor to bottom of the popup, with 5px bottom margin.
0x009076C0134UIChatWindow__msg_handlerMessage handler for the chat input window. On msg 3/4: scroll up/down via child window. On msg 6 with 0xB8: processes chat send - validates language filter, processes slash commands via FUN_00e07fb0/FUN_00de1010, sends regular chat via vtable 0xB, handles whisper mode. On msg 6 with 0xC9: close. On msg 0xE (resize): constrains size to 280x120 min / 512x384 max, rounds to 32px grid, repositions child elements. On msg 0x22: initialize from data. On msg 0x25: processes incoming chat text with hyperlink detection and color coding. On msg 0x30: handles link clicks. On msg 0x31: builds right-click context menu with chat commands. On msg 0x9A: processes auto-complete.
0x009080E8257UISkillTreeWnd__show_delete_skill_confirmationUISkillTreeWnd: show delete skill confirmation
0x00908260140UICashShopWindow__msg_handlerMessage handler for the Cash Shop (NeoCash) window. Handles: msg 6 with 0xC9 (close + send packet 0x84A), 0xE0 (purchase validation - checks balance, quantity, builds purchase packet 0x848), 0x13C/0x13D (page prev/next), 0x16D (search by name), 0x182 (init shop items), 0x183-0x184 (first/last page), 0x185-0x18E (category tabs 0-10 with registry save to CASH_CATEGORY). Msg 7/9/10: scrolling. Msg 0x22: initialize from position data. Msg 0x26: handles buy/sell transactions with inventory updates, validates purchase limits. Msg 0x3C: populates item list by category. Msg 0x78: reads saved category from registry. Msg 0x79: calculates page count. Msg 0x7A: updates balance display.
0x00909830105UICharSelectAction__msg_handlerMessage handler for a character select action button. On msg 6 with 0xC0: if flag DAT_01737f4a is set, sends vtable message 0x14B (rename character), otherwise sends 0x143 (enter game). Falls through to FUN_00a83660 for non-msg-6 messages.
0x009098A0245determine_character_class_typeDetermines the character class type for display purposes. If param_1==0 and DAT_01738254>0, sends vtable(0x50, 6). Otherwise checks DAT_0173354c against 8 different class type validation functions (FUN_00df96e0 through FUN_00df9800) to classify the job into categories: 5 (first check), 4, 3, 1 (four middle checks share result 1), 0 (default/not found). Sends result via vtable(0x50, classType).
0x009099A020CUIWindow__set_child_window_0xb8Sets the child window pointer at offset 0xB8 if the provided pointer is non-null.
0x009099C020CUIWindow__set_child_window_0xb8_altSets the child window pointer at offset 0xB8 if the provided pointer is non-null. Identical to CUIWindow__set_child_window_0xb8 - likely a different class's version of the same virtual method.
0x009099E0667CCharSelectWnd__init_character_statsInitializes character stats for the character select screen. If offset 0xB4 is 0, reads live data from global sources (FUN_00dddfe0 for level, FUN_00e13b00, DAT_01733510 for class, DAT_01733524/28 for position, plus sprite ID from current actor). Otherwise reads cached data from DAT_01737fb0-DAT_01737fd4. Then loads equipment sprites for head, body, and accessory slots (via FUN_008d84a0 with indices 8, 9, 0, 2), storing sprite IDs at offsets 0x104-0x118.
0x00909C9052CUIWindow__update_child_text_displayClears text on child window at offset 0xB4 (via vtable 0xDC) then sets new text via vtable message 0x1D with color 0x26.
0x00909CF037get_tip_entry_countReturns the number of tip entries by computing (end - begin) / 12 from the tip vector. If the initialization flag (offset 0) is zero, calls FUN_00ae7760 to load tips first.
0x00909DF056CUIWindow__save_position_to_data_0xccSaves window position and size to the data structure at offset 0xCC. Stores width (0x14), height (0x18) at data+8/+C and x (0x1C), y (0x20) at data+0/+4. Only operates if the data pointer at 0xCC is non-null.
0x00909E3056CUIWindow__save_position_to_data_0x250Saves window position and size to the data structure at offset 0x250. Stores x/y (0x1C/0x20) at data+0/+4 and width/height (0x14/0x18) at data+8/+C. Only operates if the data pointer at 0x250 is non-null.
0x00909E7071CUIWindow__save_position_to_data_0xc8Saves window position, size, and an extra field (offset 0xC4) to data structure at offset 0xC8. Stores width/height at data+8/+C, x/y at data+0/+4, and extra value at data+0x10. Only operates if the data pointer at 0xC8 is non-null.
0x00909EC056CUIWindow__save_position_to_data_0xbcSaves window position and size to the data structure at offset 0xBC. Stores x/y at data+0/+4 and width/height at data+8/+C. Only operates if the data pointer at 0xBC is non-null.
0x00909F0056CUIWindow__save_position_to_data_0x200Saves window position (x/y at data+0/+4) and size (w/h at data+8/+C) to data structure at offset 0x200.
0x00909F4056CUIWindow__save_position_to_data_0xf0_v1Saves window position and size to data structure at offset 0xF0. Stores w/h at data+8/+C and x/y at data+0/+4.
0x00909F8056CUIWindow__save_position_to_data_0xecSaves window position and size to data structure at offset 0xEC. Stores w/h at data+8/+C and x/y at data+0/+4.
0x00909FC056CUIWindow__save_position_to_data_0xf0_v2Saves window position (x/y at data+0/+4) and size (w/h at data+8/+C) to data structure at offset 0xF0.
0x0090A00056CUIWindow__save_position_to_data_0xd4Saves window position (x/y at data+0/+4) and size (w/h at data+8/+C) to data structure at offset 0xD4.
0x0090A04056CUIWindow__save_position_to_data_0xd0_v1Saves window position and size to data structure at offset 0xD0. Stores w/h at data+8/+C and x/y at data+0/+4.
0x0090A08092CUIWindow__save_position_to_data_0xd0_extendedSaves window position, size, and extra fields to data structure at offset 0xD0. Stores w/h at data+8/+C, x/y at data+0/+4, plus offset 0xCC value at data+0x10 and a boolean (offset 0xFC == 1) at data+0x18.
0x0090A0E0149CUIWindow__save_position_and_close_0x100Saves window position/size to data structure at offset 0x100 (w/h at data+8/+C, x/y at data+0/+4), then copies the string at offset 0xB4 and calls FUN_00a8ce50 to close/destroy the window.
0x0090A18056CUIWindow__save_position_to_data_0x100Saves window position and size to data structure at offset 0x100. Stores w/h at data+8/+C and x/y at data+0/+4.
0x0090A1C0115CSecureKeypad__set_input_paramsSets input parameters for the secure keypad window. Stores 4 values at offsets 0xF4, 0xF8, 0xEC, 0xF0. Conditionally clears 3 separate input buffers (at 0xD0, 0xD9, 0xE2) based on the boolean flags param_6, param_7, param_8 respectively. Each buffer is 9 bytes (8 chars + null terminator).
0x0090A240156CSecureKeypad__toggle_button_visibilityToggles visibility of two buttons on the secure keypad window. param_2=0 controls button at offset 0xD0, param_2=1 controls button at offset 0xD4. param_3=1 hides the button, otherwise shows it. Calls vtable 0x98 twice on each to refresh display.
0x0090AED036scale_y_to_screen_heightScales a Y coordinate to the current screen height. Returns (screenHeight * param_1) / 480, where 480 is the reference resolution height.
0x0090AF00375save_bookmark_to_registrySaves a bookmark value to the Windows registry. Builds the registry key path by concatenating the base registry path, "_BookMark\\", the character name (from DAT_01737b74), and the account name (from FUN_00e08c70). Creates/opens the key under HKEY_LOCAL_MACHINE and writes the 4-byte integer value with the key name provided in param_1.
0x0090B080750save_whisper_log_to_fileSaves the current whisper chat log to a text file. Creates directory "{saveDir}/Whisper/" if needed, copies the chat partner name from offset 0xB4, sanitizes it by replacing invalid filename characters (\\/:*?\"<>\|) with underscores, then saves to "{saveDir}/Whisper/{name}.txt". If file already exists, appends a 3-digit counter suffix. Shows confirmation message "is Saved." via FUN_00aa9100.
0x0090B37099save_tips_at_startup_to_registry_v1Saves the SHOWTIPSATSTARTUP setting to the Windows registry. Reads the value from this->offset_0xBC and writes it as a 4-byte DWORD under HKLM with the base registry path.
0x0090B3E099save_tips_at_startup_to_registry_v2Saves the SHOWTIPSATSTARTUP setting to the Windows registry. Reads the value from this->offset_0x100 and writes it as a 4-byte DWORD under HKLM with the base registry path.
0x0090BF40165check_mbcs_string_byte_lengthChecks if an MBCS (multi-byte character set) string's byte length is under a specified limit. Sets code page to 949 (Korean), iterates through each byte position using _mbsbtype to count single-byte chars as 1 and double-byte chars as 2. Returns true if total byte count is less than the limit parameter.
0x0090C020460CUIWindowManager__create_sprite_buttonCreates a sprite-based button window. Allocates 0x120-byte window (via FUN_0084eab0 ctor), loads BMP sprites for 3 states (normal/hover/pressed) via FUN_008657a0, sets size and position via FUN_00a7b470, applies tooltip text via FUN_00869730, and inserts into the parent's BST-based child window tree. Associates a data pointer (param_2 + 0xFA offset) with the button via vtable 0xB4.
0x0090C35038CSecureKeypad__find_digit_positionFinds the position of a digit value in the keypad's randomized digit array at offset 0x110. Iterates through 10 positions (0-9) comparing each byte against param_2. Returns the index where the digit is found, or -1 if not found.
0x0090C38081CSecureKeypad__hide_all_buttonsHides all buttons on the secure keypad window. Iterates through 11 buttons starting at offset 0x124 and 5 buttons starting at offset 0x150, marking each as hidden (byte 0x2B = 1) and calling vtable 0x98 to refresh.
0x0090C5A0792CSecureKeypad__randomize_button_positionsRandomizes the positions of the 10 digit buttons on the secure keypad using a Mersenne Twister PRNG. Generates a Fisher-Yates shuffle of indices 0-9, then repositions each button (stored at offsets 0x124+) using pre-defined coordinate tables loaded from static data. Calls vtable 0x98 to refresh the window after repositioning.
0x0090C8C0162build_network_packet_from_vectorBuilds a network packet by combining a 2-byte header (param_2), a 4-byte size field (vector data length), and the vector's raw data content. Allocates a byte vector to hold the packet, writes the header and size, then memcpys the vector data. Returns the output vector pointer.
0x0090C97051CSecureKeypad__set_modeSets the keypad mode at offset 0x11C. If mode is 0, loads and displays a string (message 0xA06) via FUN_008681c0.
0x0090C9C05193CSecureKeypad__ctorConstructor for the secure keypad window class. Large function (5193 bytes) that initializes the keypad UI with digit buttons, labels, and layout. Skipped full decompilation due to size.
0x0090DE10141CSecureKeypad__show_all_buttonsShows all buttons on the secure keypad. Sets 11 buttons at offset 0x124 and 5 buttons at offset 0x150 to visible (byte 0x2B = 0). If mode (DAT_01737d18) is 4 or 5, hides the buttons at offsets 0x154 and 0x158.
0x0090DEA0149CTextSegment__default_ctorDefault constructor for a text segment structure (0x3C bytes). Copies the first dword from param_3, then initializes two empty std::string members (at offsets +0xC and +0x24) with default capacity 0xF.
0x0090F8B025memset_dwords_to_zeroZeros param_2 dwords (param_2*4 bytes) starting at param_1 using memset.
0x0090FCC0123tooltip_entry__copy_fromCopies a tooltip entry struct from source to destination. Copy-constructs the embedded string, then copies remaining fields (offsets 0x18-0x38) as raw data.
0x0090FD40132tooltip_entry__move_constructMove-constructs a single tooltip entry (28 bytes = 7 ints). Copies 4 ints + moves SSO string (resets source to empty) + copies trailing int.
0x009102E0148tooltip_node__copy_constructCopy-constructs a tooltip tree node. Copies first field, copy-constructs embedded string (offset 4-24), then copies remaining fields (offsets 0x1c-0x44) as raw data including ints, doubles, and flag byte.
0x00910480356CKafraServiceInfo__copy_constructCopy-constructs a CKafraServiceInfo object. Copies map tree (0x24-byte nodes), then copies 8 scalar fields followed by 192 bytes of data and 4 trailing fields. Contains Kafra service configuration data.
0x009106B0468CKafraMoveMapService__ctorConstructor for CKafraMoveMapService. Initializes strings, registers two Lua callbacks: "ReadKafraMoveMapServiceInfo" and "ReadKafraMiniMapPosInfo" via FUN_00afc9a0.
0x00910890199UICollectionSlotMachine__ctorConstructor for UICollectionSlotMachine window. Calls UIWindowBase__ctor, initializes fields, loads collection_slotmachine .act and .spr sprite resources.
0x00910960114kafra_map_entry__copy_constructCopy-constructs a kafra map entry. Copies two int fields, then copy-constructs two embedded SSO strings at offsets 0x8 and 0x20.
0x009109E0132kafra_map_entry__default_ctorDefault-constructs a kafra map entry. Zeroes two int fields and initializes two inline SSO strings (capacity 0xf each) at offsets 0x8 and 0x20 to empty.
0x00910A70169tooltip_entry__move_construct_fullMove-constructs a full tooltip entry (60 bytes = 15 ints). Moves SSO string at offset 0 (resets source), then copies remaining fields including ints, doubles, and flags at offsets 0x18-0x38.
0x00910B20178kafra_service_strings__copy_constructCopy-constructs a Kafra service strings object containing 6 SSO strings (at offsets 0, 0x18, 0x30, 0x48, 0x60, 0x78) and a flag byte at 0x90.
0x00910C401345UIKafraWindow__ctorConstructor for UIKafraWindow. Initializes UIWindowBase, sets vtable, populates message ID vector with 24+ message IDs (0x4fd-0x509, 0x533, 0x60d, 0x652-0x657, 0x93d, 0xba4, 0xfbc-0xfbf) for Kafra storage/service UI messages. Sets window title from message 0x509.
0x0091119086UIWindow_9153e0__ctorConstructor for UI window class (vtable 0x09153e0). Inherits from UIWindowBase. Simple constructor with no additional field initialization.
0x009111F084UIHyperlinkTextWidget_915450__ctorConstructor for a UI hyperlink text widget (vtable 0x0915450). Inherits from UIHyperlinkTextWidget. Simple constructor that sets vtable pointer after base initialization.
0x00911250167UIWindow_9154c0__ctorConstructor for UI window class (vtable 0x09154c0). Inherits from UIWindowBase. Checks a game mode condition at offset 0x250 and calls FUN_00cd58b0/FUN_00e1df20 to determine an initial display mode stored at offset 0x34 (values 0, 1, or 2).
0x00911300268UIWindow_915530__ctorConstructor for UI window class (vtable 0x0915530). Inherits from UIWindowBase. Initializes layout/dimension fields (offsets 0x2d-0x36) with default values including colors (0x12, 0x11) and spacing (0x14, 3). Uses eh_vector_constructor_iterator to init 4 std::map sentinels at offset 0x37. Sets flags at 0x3f-0x45.
0x00911410116UIWindow_915610__ctorConstructor for UI window class (vtable 0x0915610). Inherits from UIWindowBase. Initializes three fields to zero at offsets 0x2d, 0x34, and 0x3a.
0x0091149096UIWindow_915680__ctorConstructor for UI window class (vtable 0x0915680). Inherits from UIWindowBase. Initializes a single field to zero at offset 0x2e.
0x009114F0178UIWindow_9156f0__ctorConstructor for UI window class (vtable 0x09156f0). Inherits from UIWindowBase. Initializes two inline string fields (SSO-style, capacity 0xf) at offsets 0x2d and 0x33, plus a selected index field at 0x39 initialized to -1.
0x009115B0106UIWindow_915780__ctorConstructor for UI window class (vtable 0x0915780). Inherits from UIWindowBase. Initializes two fields to zero at offsets 0x2d and 0x2e.
0x00911620209UIWindow_9157f0__ctorConstructor for UI window class (vtable 0x09157f0). Inherits from UIWindowBase. Initializes two inline string fields (SSO-style, capacity 0xf) at offsets 0x2f and 0x35, three counter/state fields at 0x4b-0x4d, and clears global DAT_016fc550.
0x00911700313UIWindow_915890__ctorConstructor for UI window class (vtable 0x0915890). Inherits from UIWindowBase. Initializes layout fields and sets global DAT_01457a74=1. Has a switch on DAT_016d3b10 (game service type) to adjust a layout dimension at offset 0x48: values 1/7/0xb -> 0x6e, 10 -> 0x47, 0x12 -> 0x5a (likely different UI widths for different RO services like kRO/jRO/etc).
0x0091186086UIWindow_915910__ctorConstructor for UI window class (vtable 0x0915910). Inherits from UIWindowBase. Simple constructor with no additional field initialization.
0x009118C0141UIWindow_915980__ctorConstructor for UI window class (vtable 0x0915980). Inherits from UIWindowBase. Initializes selected index at offset 0x2d to -1, zeroes string/buffer fields at offsets 0x2f and 0xbd-0xc3, and clears state fields at 0x31-0x32.
0x0091195086UIWindow_9159f0__ctorConstructor for UI window class (vtable 0x09159f0). Inherits from UIWindowBase. Simple constructor with no additional field initialization.
0x009119B0798UIKafraMoveMapWnd__ctorConstructor for Kafra Move Map window (vtable 0x0915a60). Inherits from UIWindowBase. Initializes a linked list node at offset 0x2d, inline string fields, and sub-UI objects. Reads "ReadKafraMoveMapServiceInfo" and "ReadKafraMiniMapPosInfo" configuration data via FUN_00afc9a0. Contains two UIClass_0913c90 sub-objects and a clear_all_entries call. Sets color values (0xaaffffff) and various layout/state fields.
0x00911CD0522UIWindow_915a90__ctorConstructor for UI window class (vtable 0x0915a90). Inherits from UIWindowBase. Initializes many fields (0x2d-0x45) to zero, allocates a linked list node at offset 0x44, uses eh_vector_constructor_iterator to init 9 CFmt-related entries at offset 0x46. Sets boundary/clipping values with 0xfffb offsets. Large object with list management capabilities.
0x00911EE0303UIWindow_915b50__ctorConstructor for UI window class (vtable 0x0915b50). Inherits from UIWindowBase. Initializes fields 0x2d-0x34 to zero, uses eh_vector_constructor_iterator to init 9 std::map entries at offset 0x41, allocates a linked list node at offset 0x53, and initializes selection/state fields with -1 default at offset 0x57.
0x00912010201UIWindow_915c00__ctorConstructor for UI window class (vtable 0x0915c00). Inherits from UIWindowBase. Initializes timer fields with GetTickCount() relative to global DAT_017381e4. Sets a 1000ms interval at offset 0x33 and an enabled flag at offset 0x31. Likely a timer-based or animation UI window.
0x009120E0265UICharSelectWnd__ctorConstructor for UICharSelectWnd (character selection window, vtable UICharSelectWnd). Inherits from UIWindowBase. Uses eh_vector_constructor_iterator to init 0x12 (18) CCharSlotEntry objects of size 0x15c each at offset 0x2d. Sets visible slot count to 6 (or 9 if DAT_017334cc > 12). Initializes slot enable flags and records timeGetTime() for animation timing.
0x009121F0183UIWindow_915d10__ctorConstructor for UI window class (vtable 0x0915d10). Inherits from UIWindowBase. Initializes display state fields: enabled=1, selected=-1, page=0, items_per_page=0x19, plus an inline SSO string at offset 0x3c with capacity 0xf.
0x009122B0136UIWindow_915d90__ctorConstructor for UI window class (vtable 0x0915d90). Inherits from UIWindowBase. Initializes two state fields to zero at 0x2f-0x30, two selection indices to -1 at 0x55-0x56, and an enabled flag to 1 at 0x57.
0x00912340246UIWindow_915e00__ctorConstructor for UI window class (vtable 0x0915e00). Inherits from UIWindowBase. Initializes an inline SSO string at offset 0x45 (capacity 0xf), clears fields at 0x2d-0x2f. Sets layout dimensions at 0x3a-0x3c (0x10, 0x47, 0xf). Has same service-type switch on DAT_016d3b10 as UIWindow_915890 to adjust width at offset 0x3b.
0x00912460116UIWindow_915e80__ctorConstructor for UI window class (vtable 0x0915e80). Inherits from UIWindowBase. Sets type=2 at offset 0x2d, width=0x20 at 0x2e, height=0x20 at 0x2f. Likely a 32x32 icon/thumbnail UI element.
0x009124E086UIWindow_915ef0__ctorConstructor for UI window class (vtable 0x0915ef0). Inherits from UIWindowBase. Simple constructor with no additional field initialization.
0x00912900130cleanup_string_and_free_0x5cCleanup helper that first destroys an embedded std::string (via STL_string_dtor after helper_005c2a80), then frees a 0x5c-byte heap allocation at this+4. Two-phase destruction for objects containing strings.
0x009129E0107cleanup_object_and_free_0x340Cleanup helper that first calls FUN_00ca5120 to destroy an embedded object, then frees a 0x340-byte heap allocation at this+4. Two-phase destruction.
0x00912E80140cleanup_two_strings_and_free_0x4cCleanup helper that destroys two embedded std::strings (via STL_string_dtor twice), then frees a 0x4c-byte heap allocation at this+4. For objects containing two string members.
0x00912F10123cleanup_string_and_free_0x58Cleanup helper that destroys one embedded std::string (via STL_string_dtor), then frees a 0x58-byte heap allocation at this+4.
0x009134F075eh_vector_dtor_cleanup_free_4cEH vector destructor iterator: destroys 4 elements of size 8 using seh_unwind_cleanup_list_and_free_4c.
0x00914350104CChatWnd__dtorCChatWnd destructor. Sets vtable to PTR_FUN_01140b70, calls CChatWnd__save_chat_window_layout to persist layout, clears a pointer vector of chat entries, then UIWindowBase__dtor.
0x009147C0123UICharSelectWnd__dtor_bCharacter select window destructor. Sets vtable to PTR_FUN_01140224. Destroys a CFmt, then uses eh_vector_destructor_iterator to destroy 18 CCharSlotEntry objects (0x15C bytes each), then UIWindowBase__dtor.
0x009149F0119struct_copy_with_string_at_0x38Copy assignment for a 0x38-byte struct. Copies fields at offsets 0x04-0x34 directly, then calls FUN_0090e110 to copy a string/container at offset 0x38 if source and dest differ.
0x00914A7084struct_copy_with_two_stringsCopy assignment for a struct with two STL strings. Copies first two dwords directly, then assigns two embedded STL strings (at offsets 8 and 0x20) using STL_lib_func_004fa8f0.
0x00914AD095struct_copy_with_string_and_bytesCopy assignment for a struct. Assigns an STL string at offset 0 if not self-assignment, copies 25 raw bytes starting at offset 0x18, then copies 4 dwords at offsets 0x34-0x40.
0x00915C70147UICharSelectWnd__scalar_deleting_dtor_bScalar deleting destructor for character select window. Sets vtable to PTR_FUN_01140224, destroys CFmt and 18 CCharSlotEntry objects, calls UIWindowBase__dtor, optionally frees 0x1A00 bytes.
0x00915F60263CRenderQueue__submit_textured_quadSubmits a textured quad to the render queue. Allocates a mesh entry, fills 4 vertices with positions (params 1-8), fixed alpha (0.8f), full white color (1.0f), UV coordinates (0,0 / 1,0 / 0,1 / 1,1), and color param_10. Sets primitive type to triangle strip (2 triangles, 4 verts) and classifies with flag 0x201.
0x009160A0200ui_element__apply_position_offset_from_mapLooks up a string key (at param+0x20) in a global map via std__map_string__find_or_insert_30. If found, reads two float offsets and adds them to the element's bounding box at offsets 0x38-0x44 (left, top, right, bottom).
0x00916170174UIEditField__on_confirm_inputHandles confirm/enter on an editable text field. Checks global flags DAT_014576a4/a6. If text is empty, clears state. Otherwise gets display text from UIEditableTextWidget, updates UI state, and calls FUN_00aa9e60. Also calls FUN_0087a2f0 if a child element at offset 0xBC has non-zero data at 0x144.
0x009162201046UIListWnd__process_input_eventProcesses input events for a list/grid UI window. Handles mouse clicks, keyboard navigation (ESC, arrows, page up/down). Checks for special key states (Ctrl/Shift/Alt modifiers with keycodes 0x10-0x12). Calls GetKeyDes for key description lookups. Updates selected item, positions highlight cursor, and triggers redraw. Returns 1 if event consumed, 0 otherwise.
0x0091664088UIAnimatedList__advance_frameAdvances animation frame in an animated list. If not paused (offset 0xC8 == 0) and enough time has elapsed (delta > threshold at 0xB4), increments current frame (0xC0). Wraps around to 0 when reaching total frame count from UISkillWnd__get_tree_node_count. Updates last tick timestamp at 0xCC.
0x009166A0179UITabWnd__update_tab_positionsUpdates tab positions in a tabbed window. If param_2 is set and tab count > 0, iterates through tab child widgets. The selected tab (index 0x45) is positioned at (5, offset+2), others are moved offscreen. Then calls virtual method 0x94 on a parent window (0x84 bytes), updates child widget at 0x4E, and redraws.
0x00916760178UIListWnd__store_key_mappingStores a key mapping entry into the map for a list window. Inserts into std::map<int, 0x4C-struct> with two int params and two STL string params. Copies strings into the map value, then cleans up temporaries.
0x00916820161UIListWnd__check_modifier_keysChecks modifier key states for a list window input handler. If mode==1 and key state returns 0x1F, checks for Ctrl(0x11)/Shift(0x10)/Alt(0x12) modifiers. Space(0x20) and NumLock(0x90) keys return 2 or 4 depending on modifier. Scroll Lock(0x14) returns 3. Falls back to FUN_00a96eb0 for other keys. Returns modified param_2 or 3 for ignored keys.
0x009168D083UIAnimatedList__check_double_clickChecks for double-click timeout on an animated list item. If current selection (0xC0) matches previous (0xC4), starts tracking click time. If more than 2000ms elapse without a matching second click, calls tls_clear_field_4f1d4 to reset the interaction state.
0x009169301123UIListWnd__resolve_key_conflictResolves key binding conflicts in a list window. Iterates through 4 key binding categories, searches for matching key codes (DAT_01457690/94). If a conflict is found with a different entry, calls FUN_00a901e0 and if result is 0xBB, swaps key bindings by storing both old and new via UIListWnd__store_key_mapping. Returns 1 if conflict kept, 0 if resolved/swapped.
0x00916DA035check_dimension_overflow_2036Checks if either dimension parameter equals 0x7F4 (2036). If so, calls CItemCollection__send_favorite_tab_update (at 0x00e2f3b0), likely an error or bounds-check handler for oversized dimensions.
0x00917070138ui_calculate_text_width_absCalculates absolute text width for a UI string. Calls FUN_00a80580 to measure the string, subtracts two offset parameters, multiplies by a float scaling factor (DAT_010dc090), and returns the absolute value of the result.
0x009171001121UISkillBarWnd__handle_skill_drag_dropHandles drag-and-drop operations for skill bar entries. Two main paths: (1) If param_4 is a skill entry (flag at offset 0x80 set), handles placing skills into hotbar slots based on grid position, looking up skill data via FUN_00e088a0 and managing the global skill list (DAT_01737a78). (2) If not a skill entry, processes direct slot assignments using FUN_0091c500 and FUN_00e25f20. Manages linked list traversal for removing duplicate entries. Calls virtual methods 0x94 and 0x98 for updates and redraws.
0x009176401441UISkillBarWnd__handle_extended_drag_dropExtended drag-and-drop handler for the skill bar with navigation map support. Uses CUINavMap__tree_lower_bound to look up a group index. Similar to UISkillBarWnd__handle_skill_drag_drop but supports multiple skill bar rows (via DAT_017326f4 row offset). Handles skill placement, removal, and swapping between slots using timeGetTime for timing checks. Creates animation entries via FUN_00ca4f30 and STL_list_push_back_0x340.
0x00918800307UISkillTreeNode__render_detail_spritesRenders detail sprites for a skill tree node. Gets the current node via UISkillWnd__get_skill_tree_node, iterates through detail entries, looks up sprite frames using stub_0056fbb0/stub_0056f410, and draws each via virtual method 0x28 on the UI renderer. Positions sprites using node coordinates scaled and offset by the widget's center point.
0x009196E01130UIWorldMap__render_main_viewMain rendering function for the world map view. Sets up viewport clipping via CWorldView__clamp_tab_and_set_texture. Renders zone overlay rects with per-zone colors/textures. Calls UIClass__render_waypoints for waypoint rendering. Draws selection highlight if DAT_01389998 is set. Renders node face icons, connection lines, tooltip/info panel. Manages two animation sequences (at offsets 0x53 and 0x67) using frame timing with sqrt-based distance calculation for route arrow progression. Calls UIWorldMap__render_map_route_arrows and UIClass__render_route_visualization.
0x0091B1701163UIWorldMap__render_node_face_iconsRenders path/route lines on the navigation map. Gets the current map name via get_field4_if_mode1. For each entry in the linked list matching DAT_013899bc, compares the entry name against the current map. Loads one of two face textures: "worldview\\interface\\wv_face1.bmp" if names match, or "worldview\\interface\\wv_face.bmp" if different. Renders the texture as a centered rect near the entry with 0xEEFFFFFF alpha, sized proportional to DAT_013899c0 scale.
0x0091B930144UIGridWnd__hit_test_cellPerforms hit testing on a grid window to determine which cell was clicked. Validates click is within bounds (x: 0x1B to width-0x1A, y: 0x5F-0x16D). Calculates row (from y: 0x87 row height) and column (from x: 0x51 col width). Sends message type 8 with cell index via DAT_013495bc virtual method 0x18.
0x0091BA20233UIListWnd__hit_test_filtered_itemHit tests a filtered list to find which visible item was clicked. Validates click bounds. Iterates items, comparing each name against FUN_00b00f00(0x60D) to filter visible entries. Counts visible items starting from offset 0xC4, mapping the click Y-position (0x14-pixel rows) to a visible item index. Returns the raw index or -1 if nothing hit.
0x0091BB10175UIGridWnd__hit_test_tree_itemHit tests a tree-based grid to find which item was clicked. Validates click is within bounds (x: 0x14 to width-0x14, y: 0x78 to height-0x1E). Iterates through tree nodes from DAT_017381cc, counting visible entries from page offset (0x1A4 * 0x1AC). Maps click Y-position (0x28-pixel rows) to an item index. Returns raw index or -1.
0x0091BBC0442UIShopWnd__on_click_itemHandles click on a shop window item. Resets selection (0xE0 = -1). If shop list is empty, constructs an empty CShopItem. Otherwise validates click bounds (x: 5-width-10, y: 100 to rows*item_height) and calculates item index from Y position. If valid, copies item description from the shop data array (0x158-byte entries from DAT_0173820c). Returns param_2.
0x0091BD80149UIKeyBindWnd__hit_test_key_slotHit tests key binding slots in a two-column layout. Validates click is within horizontal margins (offset 0xC8) and vertical bounds (offsets 0xBC-0xC0 with padding 0xCC). Calculates slot index from Y position divided by item height (0xD0). If click is in right half, adds the column offset (0xB8). Validates against total count from FUN_00e0a4c0. Returns slot index or -1.
0x0091BE2089CUINavMap__lookup_group_valueLooks up a group value from the navigation map tree. Calls CUINavMap__tree_lower_bound to find the entry. If found and key matches, returns the value at offset 0x18. Otherwise returns 0. Uses sentinel node at offset 0x7FAC.
0x0091C4D036skill_slot_index_to_pixel_xConverts a skill bar slot index to pixel X position. Starts at X=5, increments by 0x1D (29) per slot. Returns -1 if slot index would exceed X=0x3F (63). Max 2 slots (indices 0-1).
0x0091C50063UISkillBar__hit_test_slot_single_rowHit tests a single-row skill bar. Validates Y < 0x18 (24 pixels). Validates X is within slot bounds (0x1D pixel slots starting at offset 4). Returns slot index 0-based, or -1 if click is outside any slot.
0x0091C540177UISkillBar__hit_test_slot_multi_rowHit tests a multi-row skill bar. Resets row index (offset 0x158). Calculates total height from row count (0x15C) times 0x21 pixels. If DAT_0173a765 is set, adds one extra row. Validates bounds, determines row from Y (0x21 pixel rows) and column from X (0x1D pixel columns, starting at offset 0xF). Stores row in DAT_017326f4 and offset 0x158. Returns column index or -1.
0x0091C720654UIKeyBindWnd__get_hotkey_entry_infoGets hotkey entry information for a key binding list. Takes category (param_2), index (param_3), and resolve flag (param_4). If param_4 is set, resolves the actual key via compute_hotkey_index_with_special_ids. Searches the red-black tree map at offset 0xDC+category*8 for matching entries. If found, copies display strings via struct_copy_with_two_strings. Falls back to lua_get_hotkey_config and UIMapEntry__move_ctor for generating default entries. Returns struct with key code (offset 0), flags (offsets 1-2), and two display strings.
0x0091CA101258UIKeyBindWnd__build_hotkey_tree_mapsBuilds hotkey tree maps for the key binding window. Iterates through 4 hotkey categories, calling CUserHotKey__remap_hotkey_category for each. For each hotkey in each category, calls Lua functions "GetUserHotKeyInfo" and "GetOriginalHotKeyInfo" to get display strings. Inserts entries into per-category red-black tree maps (at offsets 0x37+category*2) keyed by hotkey index. Each tree node stores the key index and two display strings. Calls virtual method 0x98 after completing all 4 categories.
0x0091CF0058reset_navigation_search_stateResets the navigation search state. Clears the search string to empty, zeros out DAT_01737fa0/a4/a8 (search results/indices) and DAT_01737f80 (search mode flag).
0x0091CFB03069UINavigator__load_map_specific_navigation_dataLoads map-specific navigation data based on the current map name. Checks if the map name matches special maps via UIClass__is_special_map_name. For mode 0 maps (izlude, ra_fild12, yuno): pushes 4 texture entries each. For mode 1 maps (einbroch, lighthalzen, hugel): pushes 4-7 texture entries depending on the specific map. Each branch constructs strings and calls CEffectParticle__push_back_texture_entry, then calls UIClass__rebuild_navigation_entries. If already initialized (flag 0x35), returns immediately. Returns 1 if data was loaded, 0 if map is not special or already loaded.
0x0091DBB01219UINavigator__populate_zone_entries_from_mapPopulates navigation zone entries from a string map. Looks up entries via std__map_string__find_or_insert_34, copies the element array, then iterates each entry calling CWorldView__find_child_zone_by_name_in_groups. For each found zone, copies the zone name string, initializes entry bounds via UIClass__init_entry_from_string_and_bounds, and appends a 0x3C-byte element to the vector at offset 0x8. Cleans up temporary string/array allocations.
0x0091E810327get_quality_rating_stringReturns a quality rating string based on a numeric quality value. Initializes output with a 4-byte prefix (0xBDC0F8BE). Quality >= 100: msg 0x991; 50-99: msg 0x992; 20-49: msg 0x993; 5-19: msg 0x994; 1-4: msg 0x995. Uses FUN_00b00f00 for message lookup. Returns empty for quality 0.
0x00930550144UIShopWnd__render_tab_buttonsRenders shop window tab buttons. Selects between active/inactive textures for two tab buttons based on global flags DAT_01457a75 and DAT_01457a76. Draws at x=0 and x=offset 0xb8.
0x009305F024UISkillBarWnd__on_mouse_move_header_checkMouse move handler for skill bar window. If y < 17, delegates to UIWindow::draw_header_area for header interaction.
0x00930610269UIShopWnd__handle_click_item_slotHandles click on shop window item slot. Hit-tests column position to determine clicked slot index. If slot has valid map ID, navigates to map via CMapInfoMgr. Otherwise iterates warp entries. Sends selection notification (0x29) to parent.
0x0093072081UIGridWnd__on_mouse_move_update_hoverMouse move handler for grid window. If y > 0x77, performs hit test on tree items, updates hover index at offset 0x1A8, and triggers repaint/notification on change.
0x00930780376UIShopWnd__handle_buy_itemHandles buying an item from the shop. Hit-tests click position, looks up item from shop array. If shop has purchase limit (DAT_0173821e), shows confirmation dialog (msg 0x6f9). Constructs buy packet (0x83c) with item IDs and sends via network.
0x00930900171UISkillBar__on_slot_click_navigateHandles click on a skill bar slot. Performs multi-row hit test, checks if the slot contains a valid map entry, and either navigates to the map category or iterates warp entries. Sends notification msg 0x29.
0x009309B0131UISkillBar__on_mouse_move_show_tooltipMouse move handler for skill bar. When DAT_01732d84 is set and cursor is within window bounds, shows tooltip at adjusted position using the child widget at offset 0x12C.
0x00930A4060UISkillBar__trigger_expand_notifyTriggers skill bar expand notification. Sets expand flag at offset 0xBC to 1 on first call, then sends msg 0x11A via the UI manager with the value at offset 0xB8.
0x00930A80243UIListWnd__on_click_toggle_checkboxClick handler for list window with checkboxes. Performs filtered item hit test, toggles check state at offset 0xEC+index, syncs to map at offset 0x108, and tracks whether all items are checked at offset 0x10C.
0x00930B80334UIKeyBindWnd__on_click_show_dropdownClick handler for key binding window. Performs key slot hit test, shows/hides a dropdown popup at the slot position with parsed items from string resource 0x5CE. Sends msg 0x29 notification.
0x00930D40367UISkillBar__on_click_tab_and_filterClick handler for skill bar tabs and filter buttons. Handles tab toggle (DAT_01732d84), layout updates across all skill bar instances via DAT_014576ac, and extended controls toggle (DAT_014576a4).
0x00930EB0456UISkillBar__handle_grid_cell_clickHandles click on a skill bar grid cell. Calculates cell index from mouse position in a 0x1d-wide column grid. Looks up the cell's skill/item data: for items (flag==0), finds item in linked list and opens item display. For skills (flag!=0), gets skill entry and opens skill display via CGameMode. Delegates header clicks to UIWindow__prepare_render_context.
0x0093109070UIGridWnd__on_mouse_move_update_hover_y78Mouse move handler for grid window (variant with y threshold 0x78). Updates hover index at offset 0x1A8 via tree item hit test and triggers repaint on change.
0x009310E0510UISkillBar__handle_slot_click_use_skill_or_itemHandles click on a skill bar slot to use a skill or view an item. Hit-tests multi-row slot position. For skills: checks level requirement via CSkillEffect, then opens skill display via CGameMode. For items: finds item in linked list and opens item display. Also handles extended skill slots beyond the normal limit (using DAT_0173a765 flag).
0x0093133088UISkillBar__toggle_expand_flagsToggles skill bar expand flags. If param_2 is within range of offset 0xB8, toggles DAT_01457a75; otherwise toggles DAT_01457a76. Sends msg 0x10F and triggers repaint.
0x009313F0756UIAutoComplete__show_suggestionsShows autocomplete suggestions popup. Clears old suggestions, gets input text from helper, builds suggestion list from matching entries. If empty, applies to input directly. Otherwise creates popup window sized to fit suggestions, positions near cursor.
0x009317A050UIListWnd__on_mouse_move_update_hoverMouse move handler for a list window. Performs filtered item hit test, updates hover index at offset 0xB8, and triggers repaint on change.
0x009317E0311UIKeyBindWnd__on_mouse_move_show_tooltipMouse move handler for key binding window. Performs key slot hit test, looks up key entry info, and shows a tooltip string at the computed position using FUN_00ad6510.
0x00931920860UIShopWnd__show_item_tooltipShows tooltip for shop item or skill on hover. Hit-tests slot position. For items (flag 0xbc==0): builds item tooltip with price via CItemDB. For skills (flag!=0): formats skill tooltip with SP/AP costs using type5/type6 format. Draws tooltip at slot position.
0x00931C80964UIShopWnd__show_hover_tooltipShows hover tooltip in shop window. Hit-tests mouse position across 3 regions (items, buy area, sell area). For shop items: shows item name with line break truncation. For other items: builds full item tooltip via CItemDB. Calculates tooltip position aligned to grid. Shows colored text based on item rarity.
0x009320502192UISkillBar__show_slot_tooltipShows tooltip for skill bar slot on hover. Hit-tests multi-row slot position. For items: builds item tooltip with price (msg 0xb7). For skills: formats skill tooltip with level, SP/AP costs using type2/type3 format. For invalid slots: shows slot name text. Also handles homunculus skill level capping.
0x00932BA0219CPathAnimator__update_segment_progressUpdates path animation segment progress. Calculates distance between current and next waypoints in 0x3c-sized segments, computes sqrt of distance, and advances progress by delta_time * speed_factor. Sets progress ratio at offset 0x1c. Wraps to next segment when distance reached.
0x00932E90151CAnimController__advance_frame_by_tickAdvances animation frame based on elapsed ticks from GetTickCount. Uses a frame duration table (4 entries with 0xb elements each) to determine when to advance to next frame index. Wraps frame index back to 0 when reaching end of sequence. Accumulates total elapsed time at offset 0x34.
0x00932F80623UISkillBar__handle_right_click_slotHandles right-click on skill bar slot at given x,y position. Maps screen coords to calendar-style grid (0x1d-wide cells). If slot is empty, builds item tooltip and shows info window (type 0xc). If slot is occupied, opens skill use window (type 0x2e) and positions tooltip relative to screen bounds.
0x009331F0218UISkillBar__on_right_click_show_item_infoHandles right-click on skill bar to show item info popup. Looks up clicked item via UIShopWnd__on_click_item. If item ID is in valid ranges (0xA0-0x149 or 6-0x31), creates a type 0xC window (item info popup) and sends msg 0x18 with item data.
0x009332D0726UISkillBar__handle_double_click_skill_slotHandles double-click on skill bar slot. Hit-tests multi-row skill bar, checks skill level requirement via CSkillEffect, and either uses the skill directly (type 0x2e window) or shows tooltip info (type 0xc window). Positions popup relative to screen bounds. Supports extended skill slots beyond the normal limit.
0x009335E066UISkillBar__handle_scroll_pageHandles scroll/page navigation on skill bar. If skill bar has items (field 0x30 != 0), calculates page size clamped to max 3, negates for positive scroll direction, and sends scroll command (type 7) via vtable call with scroll amount.
0x0093363066UISkillBar__handle_scroll_page_secondarySecondary scroll handler for skill bar, same logic as handle_scroll_page but uses different field offsets (0x6e for item check, 0x6c for page size, 0x42 for target). Handles scrolling on a secondary skill bar panel.
0x00933680183UIListView__update_scrollbar_from_itemsUpdates scrollbar range based on list view item count. Calculates total items from vector (field 0xC8-0xCC, 4 bytes per item), determines if scrollbar is needed, clamps scroll position within valid range, and calls CUIScrollBar__set_range_and_position. Triggers parent refresh via vtable 0x98.
0x00933740173UIGridView__update_scrollbar_from_item_countUpdates scrollbar for grid view based on global item count DAT_017381d0 divided by items per row (field 0x1AC). Calculates visible rows (field 0x1B0), determines scroll range, clamps scroll position, and updates scrollbar via CUIScrollBar__set_range_and_position. Triggers parent refresh.
0x009337F0248UISkillBar__layout_tab_buttonsLayouts tab buttons for the skill bar window. When drag mode (DAT_01732d84) is off and no items, hides all 4 child controls offscreen (-100,-100). Otherwise positions them horizontally from right edge with -2 spacing between each. Controls at offsets 0x104, 0x100, 0x128, 0x12C.
0x009338F0130UISkillBar__layout_filter_buttonsLayouts 3 filter buttons for skill bar. When drag mode is off, hides all 3 controls offscreen. Otherwise positions them from right edge with -2 spacing. Controls at offsets 0xE4, 0xDC, 0xE0.
0x00933980256UISkillBar__layout_extended_controlsLayouts extended skill bar controls based on global flag DAT_014576a4. When off, hides 6 controls offscreen. When on, positions them at specific coordinates relative to window height minus field 0x49 offset. Controls include items at offsets 0x30, 0x2F, 0x2E, 0x38-0x3A.
0x00933A80163UISkillBar__layout_mode_dependent_controlsLayouts controls based on UI display mode (DAT_01737f80). Modes 0-2: hides secondary control, sets width to 600, optionally shows extra control in mode 1 at (41,115). Mode 3: centers primary control and sets narrow width 0xB8. Triggers parent refresh via vtable 0x98.
0x00933B3081UISkillBar__update_page_button_visibilityUpdates page navigation button visibility. Enables/disables prev button (offset 0x46) based on current page > 1, and next button (offset 0x47) based on current page < max pages. Triggers parent refresh via vtable 0x98.
0x00933B90277UISkillBar__layout_rows_by_modeLayouts skill bar rows based on display mode (field 0x34). Mode 0: shows all 7 rows spaced 0x17 apart, resizes window to full height. Mode 1: shows 2 rows. Mode 2: shows 3 rows. Hides unused rows offscreen (-100,-100). Rows stored at offsets 0x2D-0x33.
0x00933CB071UIKafraService__register_lua_callbacksRegisters Lua callback functions for Kafra service. Binds 'AddItmeTokafraServiceMapList' to FUN_009419b0 and 'AddItmeToExceptionMiniMapPosList' to FUN_00941870. Both registered with json__internal callbacks at type 0xFFFFD8EE.
0x00933E401305CChatWnd__save_chat_window_layoutSaves chat window layout to 'SaveData\\ChatWndInfo_U.lua'. Writes drag state, then iterates active chat sub-windows writing position (XPos, YPos), dimensions (Width, Height), tab name/state, and 25 filter options per window. Handles both docked (no position) and undocked (with position) windows. Uses CFileStream for file I/O.
0x00934360991CUserHotKey__save_hotkeys_to_fileSaves user hotkeys to file. Iterates 4 hotkey categories, clearing each via 'ChangeUserHotKey' Lua call. Builds filename from 'SaveData\\UserKeys' path, concatenates with user-specific suffix. If file has content, calls 'SaveUserHotKeys2' Lua function and formats hotkey data using FUN_00b00f00(0xdf4). Also calls FUN_00aab0b0 for category 1.
0x00934780121UINavigationWnd__handle_msg_commandHandles message commands for navigation window. Command 6/0xC1: updates navigation target, copies 25 filter bytes, updates page display. Command 6/0xC9: opens help window (0x84). Command 6/0xD5: sets all 25 filters to same value and refreshes. Commands 7/9/10: handles page scrolling with prev/next/page navigation. Updates scroll position and refreshes display.
0x00934A101409UIChatInputWnd__handle_msg_commandHandles chat input window commands. Command 0: triggers vtable 0x94. Command 0x22: sets display mode. Command 6/0xB8: processes chat input text - validates length (min 4 chars), checks for item links, forbidden words ('gravity', '[gm'), MBCS byte length (max 23 bytes). On success, copies input to whisper target fields. Shows error messages via FUN_00a901e0. Command 6/0xB9: calls FUN_00aa2c90.
0x00934FA0400UIMenuWnd__handle_button_commandsHandles menu button click commands. Button 0x173: disconnects and closes windows (0x9B, 0xA4, 0x10D). Button 0xFB: closes menu and sends command 0x58. Button 0x161: sends command 0xFA. Button 0x172: toggles window 0x9C. Button 0x174: shows character select confirmation dialog. Button 0x1C9/0x1CA: toggles windows 0xEC and 0x271E respectively. Falls through to UIWindow__handle_button_click for unknown commands.
0x00935610570UIMemorialWnd__handle_msg_commandHandles memorial dungeon (instance) window messages. Command 0x22: sets instance data and refreshes position/display. Command 6/0xB8: builds party member availability packet (0x808), iterates party members checking if they have active instances, sends network packet. Shows error if no members available. Command 6/0xC9: closes window 0xAA.
0x00935850130UIBasicMenuWnd__handle_msg_commandHandles basic menu window messages. Command 0: sends vtable 0x94 with field 0x23. Command 6/0xB8: closes window 0x89. Command 6/0xB9: sends packet 0x2CF with current mode. Command 6/0xC9: calls vtable 0x38(0), resets DAT_01737f74 in mode 2. Command 6/0xD3: sends command 0x132 if conditions met. Command 0x3C: relayouts controls.
0x009359D039UIRankingWnd__handle_close_commandSimple message handler that only handles command 6/0xC9 by closing window 0xE5. Returns 0 for all other commands.
0x00935A00130UIWorldMapWnd__handle_msg_commandHandles world map window messages. Very large command handler supporting map navigation (0x150/0x1B9), search (0x141), bookmarks (0xBF/0xE1/0xEE), close (0xC9), toggle view (0xCA), checkbox states (0xD5), minimap toggle (0x11C), tab switch (0x22/0x27), resize (0xE/7). Loads navigation data from files, manages bookmark lists, handles coordinate-based map selection.
0x00936360264CChatWnd__handle_msg_commandMain chat window message handler. Extremely complex function handling: text input (0xB8) with forbidden word filtering, item/chat link parsing, whisper name extraction; tab management (0x16/0xCA/0x75/0x76) with add/remove/reorder; chat display (0x25/0x73) with per-tab filtering and link rendering; font size (0xF); scroll (2/3/4); resize (0x22/0x74); context menu (0xE1/0xEE). Over 5000 bytes.
0x0093881050UISimpleWnd__handle_close_onlySimple window handler that only processes close command (6/0xC9) by calling FUN_00a8cf20(0xAD). Falls through to UIWindow__handle_button_click for all other commands.
0x009388501204UIShortcutWnd__handle_msg_commandHandles shortcut window messages. Command 0x17: refreshes 2 shortcut slots, looking up items/skills by ID. For items, validates via FUN_00ddd4e0. For skills, searches skill lists (DAT_01737a78), tries multiple skill lookup functions (FUN_00e096f0/FUN_00e09a10/FUN_00e095b0). Command 0x22: sets data source. Command 0x29: activates shortcut - items send use command (0x1B), skills send cast command (0x71).
0x00938E3093UIBasicInfoWnd__handle_button_commandsHandles basic info window button commands. Button 0xDC: sends command 0x19 (sit/stand). Button 0xFB: closes window 0x81 and sends command 0x58. Button 0xFC: sends quit command (0x19 with flag 1), closes windows 0x81 and 0x10D. Button 0x161: sends command 0xFA. Button 0xB9: closes window 0x81.
0x00938FF0126UINavigationMapWnd__handle_msg_commandHandles navigation map window messages. Command 0: if search box has text, triggers search. Command 6/0xC0: toggles display mode flag at field 0x35. Command 6/0xC8: opens sub-window and updates button visibility. Command 6/0xC9: closes window. Command 6/0x141: gets search text and calls FUN_00b995d0 for search, updates display. Command 0x27: if from map list, selects map; if from item list, triggers navigation. Command 0x3C: clears and rebuilds entries.
0x009393E0132UIWarpWnd__handle_msg_commandHandles warp window messages. Command 6/0xC9: closes window 0xA9. Command 6/0xCA: toggles window collapse. Command 6/0x157: opens history window 0xAD. Commands 6/0x16D and 6/0x17C: validates warp target level input (numeric, within range), builds warp packet 0x804 with region/map/job data, sends level+map+job info string. Command 6/0x17D: selects warp from grid. Commands 7/9/10: scroll page. Command 0x22: sets data source. Command 0x27: selects region/category/map from sub-lists. Command 0x62/0x17A: toggles window 0xA8.
0x00939EE0702UIWarpListWnd__handle_msg_commandHandles warp list window messages. Command 6/0xB8: iterates 8 category trees collecting selected party member IDs (up to 6), validates level input, builds warp party packet 0x802 and sends. Command 6/0xCA: toggles collapse. Command 0x22: sets data source. Command 0x27: handles list selection for region/sub-region/category with item population.
0x0093A640420UIInstanceWnd__handle_msg_commandHandles instance/memorial dungeon list window messages. Command 6/0xC9: sends packet 0x806 and closes window 0xAA. Command 6/0xCA: toggles collapse, repositions two child controls. Command 6/0x11C: opens window 0xAA and updates map button sprites. Command 0x22: sets data source and refreshes display.
0x0093A7F0503UIGuildExpelWnd__handle_msg_commandHandles guild expel confirmation window. Command 6/0xB8: shows confirmation dialog (0x4BB), then iterates guild members collecting those with active status (up to 9), builds expel packet 0x28C with guild ID, member count, and member data array. Shows error if no valid members found. Command 6/0xD5: increments/decrements selection counter, caps at 9 with error message.
0x0093A9F0719UIMailSendWnd__handle_msg_commandHandles mail send window messages. Command 6/0xC9: sends cancel packet 0x83B and closes. Command 6/0xD5: toggles checkbox at offset 0xED. Command 6/0xD7: selects recipient tab (iterates child windows). Command 6/0x16D: validates input, searches items by name, validates amounts and file names, builds mail send packet 0x835 with attachments and sends. Command 0x3C: handles server responses (success/fail status codes 0-4, 0x183). Commands 0x62/0x13C/0x13D: page navigation through search results.
0x0093B450140UISkillBarExtended__handle_msg_commandHandles extended skill bar messages. Command 6/0xC9: closes with FUN_00aaa310(0x24,0). Command 6/0xD8: cycles through display pages (1-4). Command 6/0xD9: goes to previous page. Command 6/0x225: toggles skill group visibility. Commands 6/0x24C/0x24D: switches between item/skill mode tabs. Command 0xE: resizes window based on page count and mode. Command 0x17: refreshes all 36 skill slots using multiple skill lookup databases. Command 0x22: sets data source and initializes display. Command 0x29: activates skill/item use. Command 0x8F: handles skill rotation with timing-based cleanup.
0x0093C2101754UIChatSubWnd__handle_msg_commandHandles chat sub-window messages. Command 0: processes text input, measures text width, auto-sizes input box, updates display. Command 3/4: scroll page up/down. Command 6/0xC1: opens notification popup. Command 6/0xCA: removes chat tab from undocked windows. Command 6/0x15B: calls FUN_00a8b0a0. Command 6/0x165: sends merge command. Command 0xE/7: handles resize with 32px grid snapping, min size 280x74. Command 0x22: sets data source. Command 0x25: adds chat text with link detection and whisper name highlighting. Command 0x74: handles child resize.
0x0093CA5083UIScrollableWnd__handle_scroll_and_pageHandles scroll and page commands for a scrollable window. Command 6/0xC5: repositions window based on scroll position minus header offset (field 0x2F). Command 6/0xCA: jumps to page (field 0x2E * position + 1). Falls through to UIWindow__handle_button_click for others.
0x0093CAD0144validate_and_copy_map_name_pairValidates two map name strings by looking up each via FUN_00b01200 and FUN_00aee770. If both are valid (non-zero results), copies both strings into the internal string buffer using STL_lib_func_004fa8f0. Used to validate map name pairs for warp/navigation features.
0x0093CB601328UIWorldMapWnd__load_navigation_file_by_indexLoads a navigation data file by index from the bookmark vector (field 0x4B). Opens file from path built with FUN_00af62d0, reads CSV-like data line by line using fgets/strtok, parsing tokens into string vectors. Calls FUN_00b93110 to process each parsed line, then calls FUN_0093d620 to populate the navigation list. Returns 1 on success, 0 on failure.
0x0093D090384CChatWnd__set_visible_and_refresh_tabsSets chat window visibility and refreshes all tabs. If hiding (param_2=0), calls FUN_00a8cd70. If showing, refreshes display and calls FUN_00aab0d0. Iterates all child chat sub-windows (field 0x3D-0x3E) calling vtable 0x38 with the visibility flag. Also ensures undocked windows (DAT_014576A8 tree) have matching entries created if missing.
0x0093D2C0856CChatWnd__layout_chat_font_sizeLayouts chat window based on font size (param_2, clamped 0-15). When font size is 0: collapses to minimum height (field 0x49), hides all chat sub-windows offscreen, positions 3 action buttons. When font size > 0: calculates height from font size * 14 + header, shows/sizes active tab's sub-window, hides others. Updates scroll buttons, tab buttons, and extended controls layout.
0x0093D6201165UIWorldMapWnd__populate_navigation_listPopulates navigation list in the world map window. Clears existing entries, then iterates navigation results from FUN_00ba12a0. For each result, formats display text based on type: type 2 (NPC with map name), type 3 (monster with density rating using 5 color tiers: >=100, >50, >20, >5, >1), type 1 (simple map name), type 0 (coordinates). Adds formatted entries to the list via vtable 0x94 command 0x1F.
0x0093DAB0207UIWorldMapWnd__layout_search_controlsLayouts search-related controls in world map window. Hides all 4 controls initially (-1000,-1000). In non-search mode: shows either list (field 0x3E) or detail view (field 0x3D) based on DAT_016fc564, and positions a button at bottom. Triggers parent refresh via vtable 0x98.
0x0093DB80410UIWorldMapWnd__update_status_textUpdates status text in world map window based on current mode. In non-search mode (DAT_016fc55c=0): shows generic navigation text. In search mode with type 2: formats search result with map name from FUN_00b98e40 or error message. Otherwise shows default search text. Updates display string and refreshes.
0x0093DD20430UIWorldMapWnd__refresh_waypoint_listRefreshes the waypoint list display in the world map when in navigation mode (DAT_016fc560==2). Iterates all waypoints from FUN_00ba12c0, gets each waypoint's map name via FUN_00b8e810, formats with separator, and sends to display via process_func_00616dd0. Also adds current location as the final entry.
0x0093DED0164UIWorldMapWnd__update_current_location_displayUpdates the current location display in the world map window. Refreshes display via vtable 0x98, then gets location string from FUN_00b96a10. If location string is empty, calls helper_00616c20 to clear. Otherwise formats with separator and sends to helper_00616cc0 to update the location indicator.
0x0093DF80457UIWorldMapWnd__refresh_route_displayRefreshes the route display in the world map. Iterates navigation route segments from FUN_00b96340, formats each with separator and sends to process_func_006172e0 for rendering. Only processes entries where the name string is non-empty. Refreshes display after all routes are added.
0x0093E1502563UINavigationWnd__populate_route_listPopulates the navigation route list UI. Clears the list box, then based on route type (0-3), formats route info strings (map names, coordinates, costs) using lua_util_sprintf and adds them to the list. Handles routes with waypoints by iterating through route segments.
0x0093EB60916UIWorldMapWnd__layout_all_controlsLayouts all controls in the world map window based on mode (DAT_016fc55c). In full mode: sizes window from config, positions map lists (0x3D/0x3E), scrollbar (0x4A), search controls, 6 buttons at specific positions, checkboxes, and sets title text (0x89C). In compact/search mode: sets fixed 134x61 size, hides most controls offscreen (-1000), positions only search bar and title (0x89B).
0x0093F1F04611UITooltipWnd__show_item_tooltip_at_posShows an item tooltip popup at a mouse position. Creates UIBaseDialogWidget if not yet allocated, clears existing string data, performs grid hit test to find the hovered item, then populates tooltip strings with item name, level, description, element, color stats, and positions the tooltip near the cursor within screen bounds.
0x00940400260UIWorldMap__update_and_render_navigation_pathUpdates and renders navigation path on the world map. First checks if navigation state is active via UIClass__update_navigation_state, then updates path animation segment progress (same logic as CPathAnimator__update_segment_progress). Finally calls UIClass__render_route_visualization to draw the path overlay.
0x009405101220UIWorldMap__render_map_route_arrowsRenders route arrows on the world map. Updates tooltip from map entry, then iterates route segments (0x3C bytes each) from field 0xE4. For each segment, copies coordinates, loads arrow textures ('mapArrow_head.bmp' and 'mapArrow_body.bmp'), and calls render_line_with_trail_effect with semi-transparent color (0xAAFFFFFF). Special-handles 'izlude.rsw' map positioning. After all segments, renders NPC/Kafra animation at current position.
0x00940D8087CChatWnd__toggle_drag_modeToggles chat window drag/undock mode. Sets global DAT_01457a74 flag. When disabling drag: saves current font size (field 0xC) to field 0x46. When enabling drag: restores font size from field 0x46, resets active tab to 0, ensures minimum font size of 1. Relayouts chat using CChatWnd__layout_chat_font_size and refreshes.
0x00940E20142UIWorldMapWnd__sync_position_to_config_clampedSyncs world map window position to config at offset 0x124, with screen boundary clamping. Saves x,y position to config+8/+0xC. Clamps width based on current window mode (0xE4 or 0x110) and height to max 0x152. Negative values clamped to 0.
0x009411901736UIChatWnd__save_chat_logs_to_fileSaves chat logs to files. Creates Chat/ directory under save path, iterates chat channels at offset 0xF4, generates unique filenames (Chat_name.txt or Chat_name_NNN.txt), writes content via CUITreeView, then iterates whisper targets and saves their logs too. Shows 'is Saved.' notification in green.
0x00941EF01stub_nop_00941ef0Single-byte stub function (size=1)
0x00941F001stub_nop_00941f00Single-byte stub function (size=1)
0x00941F101stub_nop_00941f10Single-byte stub function (size=1)
0x009431D0109CWarpSelect__play_party_alarmPlays party_alarm.wav sound and displays msg ID 0x6d9 in yellow if party member count > 0
0x009435F0163CWarpSelect__check_map_filterChecks if map passes warp select filter by comparing map/region/category IDs at offsets 0x1C4-0x1C8
0x009438301800CWarpSelect__load_initial_dataLoads 10 localized strings for warp select categories, then builds map list entries per category
0x00943F401062CWarpSelect__query_region_and_map_dataQueries LUA for region info and map info per region; populates region/map vectors for warp select UI
0x009443701115CWarpSelect__create_map_buttonsCreates UI buttons for all maps in each region category; inserts into map<ushort,UIElement*> tree
0x009447D0837CWarpSelect__load_category_labelsLoads 8 localized strings for warp category labels, then finalizes label setup
0x00944B20367CWarpSelect__rebuild_map_filter_treeClears global map filter tree (DAT_01456f74) and rebuilds from short array (up to 6 filter IDs)
0x00944C903100CWarpSelect__update_map_button_spritesUpdates warp select button sprites with online/offline graphics using basic_interface path prefix
0x009458B01079CWarpSelect__query_region_map_data_v2Queries LUA queryRegionInfo/queryMapInfo starting from region 2; builds map data and calls vtable+0x94
0x00945CF0367CWarpSelect__set_selected_regionSets selected region by ID; loads map entries for region, updates labels, triggers redraw via vtable+0x98
0x00945E60334CWarpSelect__set_selected_region_altSets selected region (alt path); loads map entries and updates labels using offset 0xCC as map count
0x00945FB0411CWarpSelect__set_selected_categorySwitches warp select category tab; copies map name strings and triggers redraw via vtable+0x98
0x00946150304CWarpSelect__show_region_categoryHides all 8 region category map groups then shows the selected one; triggers redraw via vtable+0x98
0x00946800196CUIWindowA__construct_00946800Constructor for UI window (vtable 01143214); initializes member buffers and string at offset 0x41
0x009468D0156CUIWindowB__construct_009468d0Constructor for UI window (vtable 011432ec); sets timeout to 4000 and initializes vector pointers
0x0094697096CUIWindowC__construct_00946970Constructor for UI window (vtable 011433c4); minimal init with single member at offset 0x2D
0x009469D0369CItemSelect__constructConstructor for item select window (vtable 011428c4); calculates page counts from 3 item category arrays
0x00946B50174CUIWindowD__construct_00946b50Constructor for UI window (vtable 01142b50); initializes page counter, string at offset 0x31
0x00946C00247CUIWindowE__construct_00946c00Constructor for UI window (vtable 01142714); inits 2 strings and allocates rbtree sentinel node
0x00946D0096CUIWindowF__construct_00946d00Constructor for UI window (vtable 01143064); minimal init with single member at offset 0x2D
0x00946D60117CUIWindowG__construct_with_sizeConstructor for UI window (vtable 01142f88); takes width/height params and sets position
0x00946DE086CUIWindowH__construct_00946de0Constructor for UI window (vtable 0114299c); minimal base class init only
0x00946E4086CUIWindowI__construct_00946e40Constructor for UI window (vtable 01142c28); minimal base class init only
0x00946EA0116CUIWindowJ__construct_00946ea0Constructor for scrollable UI window (vtable 011427ec); inits scroll vector at offset 0x21
0x00946F20134CUIWindowK__construct_00946f20Constructor for UI window (vtable 0114313c); initializes string at offset 0x2D with flag=1
0x00946FB0268CUIWindowL__construct_with_timerConstructor for timed UI window (vtable 01142a78); inits arrays of 4+7+7 elements, stores timeGetTime
0x009470C086CUIWindowM__construct_009470c0Constructor for UI window (vtable 01142dd8); minimal base class init only
0x00947120178CUITextInput__constructConstructor for text input UI (vtable 01142eb0); inits string buffer, font size 0xC, scroll state
0x009471E0166CUIWindowN__construct_with_gridConstructor for grid UI window (vtable 01142d00); inits vector, font=0xC, columns=5, selection=-1
0x00947290132CStringValuePair__constructConstructs string+value pair; copies C string to std::string member and stores int value at offset 0x18
0x0094732099CStringValuePair__default_constructDefault constructor for string+value pair; initializes empty string and value=0
0x009475D095CUIWindowA__destructorDestructor for UI window (vtable 01143214); destroys string member then calls base destructor
0x00947630115CUIWindowB__destructorDestructor for UI window (vtable 011432ec); releases texture at offset 0x33 then calls base destructor
0x009476B071CUIWindowC__destructorDestructor for UI window (vtable 011433c4); calls base destructor
0x00947700218CItemSelect__destructorDestructor for item select window; clears 3 item category vectors and resets page counts
0x009477E095CUIWindowD__destructorDestructor for UI window (vtable 01142b50); destroys string member then calls base destructor
0x00947840134CUIWindowE__destructorDestructor for UI window (vtable 01142714); destroys rbtree, 2 strings, then calls base destructor
0x009478D071CUIWindowF__destructorDestructor for UI window (vtable 01143064); calls base destructor only
0x0094792071CUIWindowG__destructorDestructor for UI window (vtable 01142f88); calls parent class destructor
0x0094797071CUIWindowH__destructorDestructor for UI window (vtable 0114299c); calls base destructor only
0x009479C071CUIWindowI__destructorDestructor for UI window (vtable 01142c28); calls base destructor only
0x00947A1095CUIWindowJ__destructorDestructor for scrollable UI window (vtable 011427ec); frees scroll data then calls base destructor
0x00947A7095CUIWindowK__destructorDestructor for UI window (vtable 0114313c); destroys string member then calls base destructor
0x00947AD0248CUIWindowL__destructorDestructor for timed UI window; clears 4 map entry vectors, destroys 7+7 strings and 4 vectors
0x00947BD071CUIWindowM__destructorDestructor for UI window (vtable 01142dd8); calls base destructor only
0x00947C2092CUITextInput__destructorDestructor for text input UI (vtable 01142eb0); destroys string then calls base destructor
0x00947C80104CUIWindowN__destructorDestructor for grid UI window (vtable 01142d00); frees 0x20-byte vector buffer then calls base dtor
0x00947CF099CStringValuePair__destructorDestructor for string+value pair; clears string, resets value to 0, destroys string storage
0x00947D60119CUIWindowA__scalar_destructorScalar deleting destructor for UI window (vtable 01143214); optionally frees 0x11C bytes
0x00947DE0139CUIWindowB__scalar_destructorScalar deleting destructor for UI window (vtable 011432ec); optionally frees 0xD8 bytes
0x00947E7099CUIWindowC__scalar_destructorScalar deleting destructor for UI window (vtable 011433c4); optionally frees 0xB8 bytes
0x00947EE0242CItemSelect__scalar_destructorScalar deleting destructor for item select window; optionally frees 400 bytes
0x00947FE0119CUIWindowD__scalar_destructorScalar deleting destructor for UI window (vtable 01142b50); optionally frees 0xDC bytes
0x00948060158CUIWindowE__scalar_destructorScalar deleting destructor for UI window (vtable 01142714); optionally frees 0xF8 bytes
0x0094810099CUIWindowF__scalar_destructorScalar deleting destructor for UI window (vtable 01143064); optionally frees 0xB8 bytes
0x0094817099CUIWindowG__scalar_destructorScalar deleting destructor for UI window (vtable 01142f88); optionally frees 0xB4 bytes
0x009481E099CUIWindowH__scalar_destructorScalar deleting destructor for UI window (vtable 0114299c); optionally frees 0xB4 bytes
0x0094825099CUIWindowI__scalar_destructorScalar deleting destructor for UI window (vtable 01142c28); optionally frees 0xB4 bytes
0x009482C0119CUIWindowJ__scalar_destructorScalar deleting destructor for scrollable UI window (vtable 011427ec); optionally frees 0x94 bytes
0x00948340119CUIWindowK__scalar_destructorScalar deleting destructor for UI window (vtable 0114313c); optionally frees 0xD4 bytes
0x009483C0272CUIWindowL__scalar_destructorScalar deleting destructor for timed UI window (vtable 01142a78); optionally frees 600 bytes
0x009484D099CUIWindowM__scalar_destructorScalar deleting destructor for UI window (vtable 01142dd8); optionally frees 0xB8 bytes
0x00948540116CUITextInput__scalar_destructorScalar deleting destructor for text input UI (vtable 01142eb0); optionally frees 0xAC bytes
0x009485C0128CUIWindowN__scalar_destructorScalar deleting destructor for grid UI window (vtable 01142d00); optionally frees 0xE8 bytes
0x00948640337CUIWindowN__add_grid_itemAdds item to grid window; copies 24-byte name + value pair, recalculates max width and total height
0x009487B01367CUIDialogWindow__setupSets up dialog window with title, scroll list, buttons (ok/cancel/close); handles 3 button layout modes
0x00948D109CUIWindow__set_position_wrapperWrapper that forwards to CUIWindow::SetPosition
0x00948D20702CItemSelect__render_item_tooltipRenders item tooltip with selected item data from 4 category vectors; builds tooltip display with item info
0x00948FE02649UIMailWnd__populate_mail_list_pagePopulates mail list page display. Handles 3 mail types (inbox/outbox/deleted at offsets 0x154). For each mail entry (0x74 bytes each), displays up to 10 items per page with name, ID, sender/receiver strings. Sets text colors (0xFF=read, 0=unread) and word-wraps text widgets.
0x00949A40102CItemSelect__get_item_index_from_yCalculates item index from Y coordinate based on row height and scroll offset; returns -1 if out of range
0x00949AB0191CItemSelect__find_item_at_positionFinds item index at screen Y position by iterating through item tree; accounts for item types and spacing
0x00949B7044CItemSelect__get_scroll_infoCopies 7 scroll info fields (0xC0-0xD8) to output struct for scroll bar state
0x00949BA01837UIDressWnd__register_lua_palette_functionsRegisters Lua-callable palette/style list functions: get_DressHeadPaletteList, get_Headstylelist, get_DressBodyPaletteList, get_dresslist. Then calls CWarpSelect to find selected indices.
0x0094A2D0296CWarpSelect__find_selected_indices_in_listsFinds selected indices in 4 warp selection list controls. Iterates each vector (0x1C-byte elements at offsets 0xD0, 0xDC, 0xE8, 0xF4), searching for entries matching global selection values (DAT_01733528, DAT_01733510, DAT_01733524, DAT_01733540). Stores found indices at fields 0xC0, 0xC4, 0xC8, 0xCC.
0x0094A42040CItemSelect__on_moveHandles window move event; calls parent move handler and stores position at offset 0xC0/0xC4
0x0094A4503886UIItemSearchWnd__create_child_widgetsCreates child widgets for item search window. Creates 15 text labels at various positions with different widths (for name, stats columns), an editable text input at (0x5A, 0x2F), and 3 button widgets (search/add/delete) each with 4 texture states. Also creates a colored scroll list for search results.
0x0094B410233UIFactory__create_dialog_with_buttonsCreates a dialog window with 3 button textures. Allocates 0x120 bytes, calls CDialogWnd__full_ctor, sets up 3 button textures from sprite data, configures size via FUN_00a7b470, positions at (0,0), sets window ID to 0x1FE, and registers with window manager.
0x0094B500184UIFactory__create_simple_dialogCreates a simple dialog window. Allocates 0xD0 bytes, calls CDialogWnd__base_ctor, sets title text from message ID 0x10E6 with width 0x96, positions at (15,22), sets window ID to 0xB8, and registers with window manager.
0x0094B5C03183UIMailComposeWnd__create_child_widgetsCreates child widgets for mail compose window. Creates 10 rows of 4 editable text fields each (for to/subject/body layout), 3 button widgets (stick on/off, close) with textures loaded from basic_interface, and a tab widget for message tabs. Initializes edit box properties and loads string resources.
0x0094C2D0310UIFactory__create_tooltip_dialog_at_posCreates a tooltip-style dialog at given screen position. Creates base dialog (0xD0 bytes) with text from message 0xBE5, width 0x3C. Also creates a child window (0xB4 bytes) with CUIWindowG vtable, positions both relative to the given coordinates with offsets. Sets window IDs 0xC9 and registers with manager.
0x0094C410195UIFactory__create_dialog_button_type_aCreates a dialog button type A. Allocates 0x120 bytes, calls CDialogWnd__full_ctor, sets 3 button textures (all from same sprite at 0x01143610), configures size, sets window ID to 0xC0, and registers with window manager.
0x0094C4E0195UIFactory__create_dialog_button_type_bCreates a dialog button type B. Same structure as type A but uses different button sprite (0x011436AC). Allocates 0x120 bytes, calls CDialogWnd__full_ctor, sets window ID to 0xC0, and registers with window manager.
0x0094C5B01135UIDressWnd__create_child_widgetsCreates child widgets for dress preview window. Creates scroll list with highlight, hotkey slot list, render widget for 3D model preview (100x100 at color 0xE8), loads string resources for labels, creates select and close dialog buttons with textures.
0x0094CA201243UIGenericScrollListWnd__create_close_button_and_listCreates a scroll list base widget and close button for a generic scroll list window. Adjusts list size from parent dimensions (minus 0x18 width, 0x32 height, min 20x30), sets light gray text color (0xF0), then creates close button with 3 texture states from basic_interface path.
0x0094D290572UIMailWnd__draw_main_layoutDraws the main mail window layout. Renders slot background, border, and tiled bottom. Loads checked/unchecked mark textures. Highlights selected tab in the tab widget (0xC89623 color). Draws column headers from string resources (0x9EA-0x9F4). Calls populate_mail_list_page to fill items, then draws read/unread indicators.
0x0094D4D0865UIItemPreviewWnd__draw_previewDraws item preview window. Clears to magenta background, loads item texture by item ID at offset 0xC0, renders it at top-left. Shows a timer (minutes:seconds from offset 0xBC) or 'expired' text if over 300s. Draws item name centered at top and count at bottom-right in white.
0x0094D84048CUIWindow__draw_title_textDraws the window title text. Reads SSO string from offset 0xD4 (with buffer capacity check at 0xE8), renders it as a slot background row with border via CUIEquipWindow__draw_slot_background_row and CUIWindow__draw_border_or_texture.
0x0094D9104572UIBuyingStoreWnd__draw_item_listDraws buying store item list. Iterates items in a std::set, builds item name strings (with card/option info), renders names with word-wrap and truncation (30 char limit). For each item's card slots, formats quantity text showing current/max amounts with color coding (green if max reached). Limits display to 5 total rows.
0x0094EAF0363UIAnimatedTextureWnd__draw_framesDraws animated texture frames. If enabled flag at offset 0xD0 is set, clears and draws background, then loops through frame count at offset 0xCC drawing each texture frame by name from the string buffer at offset 0xB4.
0x0094EC60126UIDressRoom__render_headerRenders the Dress Room UI header. Draws "Dress_Room" title via CUIEquipWindow__draw_slot_background_row, draws a border/texture, loads and renders a texture asset (s_01143570), and renders item tooltip info at calculated positions.
0x0094ED40287UIListWidget__render_itemsRenders list widget items with selection highlight. Sets text color to magenta (0xffff00ff). Iterates over items in array at offset 0xb4, calculates item height based on widget height and spacing. Draws selected item background in dark gray (0x282828) with border (0xc8c8c8). Renders each item with appropriate color (0x646464 for disabled, 0xffffff for enabled).
0x0094EF10107send_goldpc_cafe_packetSends GoldPC Cafe packet (ID 0x0a16) to the server. Only sends if DAT_01732638 != 0x14 (service type check). Formats the string "GOLDPCCAFE" into a 0x18-byte buffer and sends via FUN_00c7ce30 with size 0x1a.
0x0094F050133UIListWidget__handle_click_selectHandles click-to-select on a list widget. Takes a Y position and determines which item index was clicked based on item height calculation. Updates the selected index at offset 0x39. If selection changed and is valid (!= -1), calls the selection changed callback via vtable offset 0x98.
0x0094F1D0227UIBuffList__handle_click_on_buffHandles click on a buff/status effect icon list. Iterates through a std::set of active buffs from DAT_0138cf40, categorizing them by type (0xea field: 0=small, 1=medium with extra offset, 2+=large). Calculates which buff was clicked based on Y position and category layout. If selection changed, triggers repaint. If valid selection, sends action event via vtable 0x94 with type 0x31.
0x0094F32090UITabWidget__get_item_id_at_indexGets an item ID from a tab widget at a given tab index (param_2) and selected index. Reads from parallel arrays at offsets 0xd0+tab*0xc (data pointer) and 0xc0+tab*4 (selected index). Each item is 0x1c bytes, ID is at offset 0x18. Returns 0 if out of bounds.
0x0094F3B084UITabWidget__find_item_index_by_idFinds the index of an item with a given ID (param_3) in a tab widget's data array for tab param_2. Iterates through 0x1c-byte entries, comparing the ID at offset 0x18 of each entry. Returns the 0-based index, or 0 if not found.
0x0094F4103559UIAdminToolWnd__handle_commandHandles admin tool window commands. Large command dispatcher for GM tool UI. Handles: command 0x40 (search/filter with multiple editable text fields, date parsing, and CItemListWnd integration), command 0x141 (text input with packet 0xb53 for character lookup), command 0xd3 (character selection with packet 0xb4a), command 0x231 (complex date-range search with 14 editable fields for year/month/day/hour/minute, builds time range and sends packet). Uses UIEditableTextWidget__get_display_text extensively to read form inputs.
0x00950200502UIBalloonPopupWnd__handle_eventHandles events for balloon popup window. On event 6/0x1fe: stores popup ID, creates UIBaseDialogWidget if needed (0xcc bytes), looks up popup data via CSpecialPopupMgr__find_entry_by_key, populates list with text items, positions the dialog, and records timeGetTime() for auto-dismiss timing. Falls through to UIWindow__handle_button_click for unhandled events.
0x00950450573UIPagedListWnd__handle_eventHandles events for a paged list window. On button 0xb8: plays sound 0xfd. On button 0xda: adds a page if within limits (checks against 3 different max values based on mode at 0x55). On button 0xf6: removes a page (min 1), adjusting scroll offset by -20 or -10 depending on layout mode. Event 0x16: switches tab/mode, resetting page state. Event 0x3c: clears all 40 text widget pairs.
0x00950690166UIBattleCountdownWnd__handle_eventHandles events for a battle countdown window. On event 0x22: stores data, shows/hides window, initializes countdown timer (3600 - param_6 seconds), records timeGetTime(), and checks game setting 0xdb for auto-hide. Triggers repaint on all events. Falls through to FUN_00a83660 for unhandled events.
0x00950740242UIMapButtonWnd__handle_eventHandles events for a map button window. On event 6: looks up button ID in a std::map; if found calls the mapped handler, otherwise forwards to parent via vtable 0x94 with event 0x1e8. If flag at 0xec is set, stores button ID to global DAT_01457af4. On event 0x39: clears parent display and sends event 0x1d.
0x00950840530UITextInputPopupWnd__handle_eventHandles events for a text input popup window. On event 6/0xc9: plays close sound. On event 0x22: creates a CUITextInput widget (vtable CUITextInput, 0xac bytes), configures it as a child, copies prompt text, calls FUN_00951bf0 to set up the input, adds to scroll panel, and hides associated buttons. Falls through to FUN_00a83660 for other events.
0x00950BC01169UIBuffActionWnd__handle_eventHandles events for buff action window (right-click menu on buffs). Event 0x22: stores buff ID and calls ret_one functions. Event 0x30: iterates through buff set from DAT_0138cf40 to find clicked buff, sends packet 0x2b6 (for type 0x30 buffs) or calls CPacketSystem helper (for type 0x31). Event 0x31: rebuilds context menu items from strings 0x656 and 0x15f using CItemEntry__ConstructFromString, creates popup window positioned within screen bounds.
0x00951060107UIHotkeySlotWnd__handle_eventHandles events for hotkey slot window. Button 0xc9: plays close sound 0x103. Button 0xe2: decrements slot page (wraps 0->7). Button 0xe3: increments slot page (wraps 7->0). Button 0x150: assigns selected skill to hotkey slot. Event 0x27: selects hotkey slot and calls FUN_009514f0 to update display.
0x00951210129UIRandomOptionWnd__handle_eventHandles events for random option window (item enchant/refine). Event 6: handles button clicks and plays close sound 0x134. Events 0x12/0x13: forwards confirmation/cancel to parent. Event 0x22: checks if text is "Random" (0x646e6152 + 0x6d6f) to show random option message 0xd4, or "cancel" (0x636e6163 + 0x6c65) for cancel message 0xda, otherwise processes via FUN_00ddb7e0/FUN_00dde770.
0x00951470123CUIWindow__set_title_stringSets window title string at offset 0xB4; assigns value at 0xCC and marks dirty flag at 0xD0
0x009514F0214UIHotkeySlotWnd__populate_slot_listPopulates the hotkey slot list widget for a given slot page (param_2). Clears the dropdown at offset 0x2e, then iterates through the items array at offset 0x34+page*3 (vector of 0x1c-byte entries with SSO strings). Adds each item's string to the dropdown via vtable 0xd8. Sets the selected index from offset 0x30+page and triggers repaint.
0x009516601stub_nop_00951660Single-byte stub function (size=1)
0x00951A2085UIListWidget__set_item_enabled_by_idSets the enabled/disabled state of an item in a list widget by its ID. Iterates through the 0x20-byte items at offset 0xb4, matching param_2 (ID) against offset 0x18 of each item. Sets the enabled flag at offset 0x1c from param_3.
0x00951A80353UITextInputWnd__create_text_inputCreates a CUITextInput widget (0xac bytes, vtable CUITextInput) for a text input window. Initializes the widget via FUN_00a79a90, sets various text input properties (max length 0xc at offset 0x28), adds as child, copies prompt text, calls CUITextInput__parse_and_layout_text, updates scroll panel, hides associated buttons, and triggers repaint.
0x00951BF0365CUITextInput__parse_and_layout_textParses and lays out text content for a CUITextInput widget. Copies text to internal string if different, creates a linked list for text lines via FUN_00a7e120, traverses the list freeing nodes, then calls virtual functions to reflow (vtable+4) and repaint (vtable+0x98). Cleans up temporary linked list and string afterwards.
0x009535B0139tree_node_0x44__copy_dataCopies data fields from one 0x44-byte tree node to another. Copies 3 scalar fields at offsets 0-2, then an SSO string via STL_string_copy_construct at offset 3, then 4 more scalar fields at offsets 9-0xc.
0x00953640194list_node_0x80__copy_dataCopies data from one 0x80-byte list node to another. Copies 2 scalars, then 3 SSO strings via STL_string_copy_construct (at offsets 2, 0xd, 0x14), plus scalar fields between them. Total data includes fields at 0-1, 8-0xc, 0x13, 0x1a-0x1d.
0x00953710148list_node_0x80__init_three_stringsInitializes a 0x80-byte list node's three SSO strings to empty. Sets string lengths to 0, capacities to 0xf, and first bytes to null at offsets 8, 0x34, and 0x50.
0x009537B095UIWindow_vt3924__ctorConstructor for UI window class (vtable 0x01143924). Inherits from UIWindowBase. Initializes a 2-byte field to 0 at offset 0x2d.
0x00953810110UIWindow_vt460c__ctorConstructor for UI window class (vtable 0x0114460c). Inherits from UIWindowBase. Sets vtable to 0x0114445c first then overwrites to 0x0114460c (likely multiple inheritance). Stores param_2 at offset 0x30.
0x00953880119UIWindow_vt4384__ctorConstructor for UI window class (vtable 0x01144384). Inherits from UIWindowBase via intermediate vtable 0x011442ac. Initializes two fields to zero at offsets 0x2d and 0x2e.
0x0095390084UIWindow_vt4018__ctorConstructor for UI window class (vtable 0x01144018). Inherits via UIWindow_vt3bcc__ctor. Simple constructor with no additional fields.
0x0095396086UIWindow_vt445c__ctorConstructor for UI window class (vtable 0x0114445c). Inherits from UIWindowBase. Simple constructor with no additional fields.
0x009539C0194UIWindow_vt3ca8__ctorConstructor for UI window class (vtable 0x01143ca8). Inherits via UIWindow_vt3bcc__ctor. Allocates a 0x20-byte linked list node at offset 0x36, initializes state fields 0x38-0x3c to zero, and sets 0x3d from global DAT_016d44a8.
0x00953A90106UIWindow_vt42ac__ctorConstructor for UI window class (vtable 0x011442ac). Inherits from UIWindowBase. Initializes two fields to zero at offsets 0x2d and 0x2e.
0x00953B00522UIWindow_vt3d84__ctorConstructor for UI window class (vtable 0x01143d84). Inherits via UIWindow_vt3bcc__ctor. Complex constructor with multiple data structures: a linked list at 0x5e (0x80-byte nodes), a tree at 0x60 (0x20-byte nodes), and a tree at 0x63 (0x18-byte nodes). Sets pagination defaults (10 items/page, starting page 1, 6 columns). Initializes tree traversal in the 0x18-byte tree.
0x00953D1084UIWindow_vt40f4__ctorConstructor for UI window class (vtable 0x011440f4). Inherits via UIWindow_vt3bcc__ctor. Simple constructor with no additional fields.
0x00953D70269CUITabWindow__constructConstructor for tab window (vtable 01143e60); initializes rbtree sentinels and 77 array slots to zero
0x00953E80223UIWindow_vt3f3c__ctorConstructor for UI window class (vtable 0x01143f3c). Inherits via UIWindow_vt3bcc__ctor. Allocates a linked list at offset 0x52 (0x4c-byte nodes). Initializes selection index at 0x4d to -1, enabled flag at 0x4f to 1, and various state fields to zero.
0x00953F6086UIWindow_vt4534__ctorConstructor for UI window class (vtable 0x01144534). Inherits from UIWindowBase. Simple constructor with no additional fields.
0x00953FC084UIWindow_vt41d0__ctorConstructor for UI window class (vtable 0x011441d0). Inherits via UIWindow_vt3bcc__ctor. Simple constructor with no additional fields.
0x00954020156UIWindow_vt3bcc__ctorBase constructor for UI window class (vtable 0x01143bcc). Inherits from UIWindowBase. Initializes 7 fields to zero at offsets 0x2d-0x33. Used as intermediate base by several other UI window constructors.
0x009540C084UIFormattedWidget_vt3ae4__ctorConstructor for UIFormattedWidget (vtable 0x01143ae4). Inherits from UIScrollListBase. Simple constructor.
0x0095412084UIFormattedWidget_vt39fc__ctorConstructor for UIFormattedWidget (vtable 0x011439fc). Inherits from UIScrollListBase. Simple constructor.
0x00954590126cleanup_string_and_free_0x44Cleanup helper that destroys one embedded std::string, then frees a 0x44-byte heap allocation at this+4.
0x00954C8071UIWindow_vt3924__dtorDestructor for UI window class with vtable PTR_FUN_01143924. Sets vtable then calls UIWindowBase__dtor.
0x00954CD084UIWindow_vt460c__dtorDestructor for UI window with dual vtable setup (0114460c -> 0114445c). Calls UIWindowBase__dtor.
0x00954D3084UIWindow_vt4384__dtorDestructor for UI window with dual vtable setup (01144384 -> 011442ac). Calls UIWindowBase__dtor.
0x00954D9084UIWindow_vt4018__dtorDestructor for UI window with dual vtable setup (01144018 -> 01143bcc). Calls UIWindowBase__dtor.
0x00954DF071UIWindow_vt445c__dtorDestructor for UI window with vtable PTR_FUN_0114445c. Calls UIWindowBase__dtor.
0x00954E40166UIWindowF__dtor_with_buffer_freeDestructor for UI window with vtable PTR_FUN_01143ca8. Frees buffer at offset 0x3b*4, clears vector of item entries, then calls helper_005c2a80 and UIWindowBase__dtor.
0x00954EF071UIWindow_vt42ac__dtorDestructor for UI window with vtable PTR_FUN_011442ac. Calls UIWindowBase__dtor.
0x00954F40169UIWindow_vt3d84__dtor_with_cleanupDestructor for UI window with vtable PTR_FUN_01143d84. Calls three cleanup helpers (FUN_00954510, FUN_00954490, FUN_009547a0), clears item entry vector, then calls UIWindowBase__dtor.
0x00954FF084UIWindow_vt40f4__dtorDestructor for UI window with dual vtable (011440f4 -> 01143bcc). Calls UIWindowBase__dtor.
0x00955050154UIWindow_vt3e60__dtor_with_tree_cleanupDestructor for UI window with vtable PTR_FUN_01143e60. Cleans up tree member at offset 0x8a, frees 0x44-byte sentinel, destroys linked list, then calls UIWindowBase__dtor.
0x009550F0123UIWindow_vt3f3c__dtor_with_list_cleanupDestructor for UI window with vtable PTR_FUN_01143f3c. Clears item entry vector, destroys linked list (0x4c virtual), then calls UIWindowBase__dtor.
0x0095517071UIWindow_vt4534__dtorDestructor for UI window with vtable PTR_FUN_01144534. Calls UIWindowBase__dtor.
0x009551C084UIWindow_vt41d0__dtorDestructor for UI window with dual vtable (011441d0 -> 01143bcc). Calls UIWindowBase__dtor.
0x0095522071UIWindow_vt3bcc__dtorDestructor for UI window with vtable PTR_FUN_01143bcc. Calls UIWindowBase__dtor.
0x0095527071UIFormattedWidget_vt3ae4__dtorDestructor for formatted widget with vtable PTR_FUN_01143ae4. Calls UIFormattedWidgetBase__dtor.
0x009552C071UIFormattedWidget_vt39fc__dtorDestructor for formatted widget with vtable PTR_FUN_011439fc. Calls UIFormattedWidgetBase__dtor.
0x009553A0172UIWindowData__copy_assign_largeCopy-assignment operator for a UI window data struct (0x78 bytes / 0x1e dwords). Copies scalar fields and deep-copies three embedded STL strings (at offsets +8, +34, +50 in dwords).
0x0095545080UIWindowData__copy_assign_smallCopy-assignment operator for a smaller UI window data struct (0x30 bytes / 0xC dwords). Copies scalar fields and deep-copies one embedded STL string at offset +8.
0x0095582099UIWindow_vt3924__scalar_deleting_dtorScalar deleting destructor for UI window with vtable PTR_FUN_01143924. Calls dtor then optionally frees 0xB8 bytes if param_2 & 1.
0x00955890112UIWindow_vt460c__scalar_deleting_dtorScalar deleting destructor for UI window with dual vtable (0114460c/0114445c). Frees 0xC4 bytes if param_2 & 1.
0x00955900112UIWindow_vt4384__scalar_deleting_dtorScalar deleting destructor for UI window with dual vtable (01144384/011442ac). Frees 0xC8 bytes if param_2 & 1.
0x00955970112UIWindow_vt4018__scalar_deleting_dtorScalar deleting destructor for UI window with dual vtable (01144018/01143bcc). Frees 0x140 bytes if param_2 & 1.
0x009559E099UIWindow_vt445c__scalar_deleting_dtorScalar deleting destructor for UI window with vtable PTR_FUN_0114445c. Frees 0xBC bytes if param_2 & 1.
0x00955A50190UIWindow_vt3ca8__scalar_deleting_dtorScalar deleting destructor for UI window with vtable PTR_FUN_01143ca8. Frees buffer, clears item vector, calls helper_005c2a80. Frees 0x108 bytes if param_2 & 1.
0x00955B1099UIWindow_vt42ac__scalar_deleting_dtorScalar deleting destructor for UI window with vtable PTR_FUN_011442ac. Frees 0xBC bytes if param_2 & 1.
0x00955B80193UIWindow_vt3d84__scalar_deleting_dtorScalar deleting destructor for UI window with vtable PTR_FUN_01143d84. Runs 3 cleanup helpers, clears item vector. Frees 0x19C bytes if param_2 & 1.
0x00955C50112UIWindow_vt40f4__scalar_deleting_dtorScalar deleting destructor for UI window with dual vtable (011440f4/01143bcc). Frees 0xDC bytes if param_2 & 1.
0x00955CC0178UIWindow_vt3e60__scalar_deleting_dtorScalar deleting destructor for UI window with vtable PTR_FUN_01143e60. Cleans tree+list, calls UIWindowBase__dtor. Frees 0x234 bytes if param_2 & 1.
0x00955D80147UIWindow_vt3f3c__scalar_deleting_dtorScalar deleting destructor for UI window with vtable PTR_FUN_01143f3c. Clears item vector, destroys linked list. Frees 0x15C bytes if param_2 & 1.
0x00955E2099UIWindow_vt4534__scalar_deleting_dtorScalar deleting destructor for UI window with vtable PTR_FUN_01144534. Frees 0xBC bytes if param_2 & 1.
0x00955E90112UIWindow_vt41d0__scalar_deleting_dtorScalar deleting destructor for UI window with dual vtable (011441d0/01143bcc). Frees 0x118 bytes if param_2 & 1.
0x00955F0099UIWindow_vt3bcc__scalar_deleting_dtorScalar deleting destructor for UI window with vtable PTR_FUN_01143bcc. Frees 0xD0 bytes if param_2 & 1.
0x00955F7099UIFormattedWidget_vt3ae4__scalar_deleting_dtorScalar deleting destructor for formatted widget with vtable PTR_FUN_01143ae4. Calls UIFormattedWidgetBase__dtor. Frees 0xD4 bytes if param_2 & 1.
0x00955FE099UIFormattedWidget_vt39fc__scalar_deleting_dtorScalar deleting destructor for formatted widget with vtable PTR_FUN_011439fc. Calls UIFormattedWidgetBase__dtor. Frees 0xD8 bytes if param_2 & 1.
0x00956050209compare_strings_as_wide_charsCompares two ANSI strings by converting them to wide chars (WCHAR) first. Returns 0 if equal, negative/positive for ordering. Uses MultiByteToWideChar with code page 0.
0x009561301771UIAuctionWnd__create_scroll_list_and_buttonsCreates scroll list with colored entries and cancel buttons for auction window. Allocates UIColoredScrollListBase, sets up 3 button textures (normal/hover/pressed) from resource strings, creates CDialogWnd buttons in a loop.
0x0095682044UIAuctionWnd__free_buffer_at_0xecFrees the dynamically allocated buffer at member offset 0xEC if non-null, and zeroes both the pointer and size fields.
0x00956850246UIAuctionWnd__init_color_and_formatInitializes color picker and formatting for auction window. Gets pixel RGB, handles string copy/format operations, checks for text display.
0x009569502435UIAuctionWnd__draw_item_rowDraws a single item row in the auction list. Handles item icons with skill tree lookup, text labels for name/price/weight/date, background highlighting for selected items. Uses localtime for date formatting.
0x009572E0206UIAuctionWnd__draw_tab_backgroundsDraws tab background rectangles for the auction window. Iterates through tabs, highlighting the selected one with a different color (color index 2 vs 0xE). Tabs are 0x42 pixels apart.
0x009573B0581UIAuctionWnd__get_list_entry_with_3_stringsGets an entry from a linked list at index param_2. Returns a struct with 1 int + 3 STL strings (copy-constructed). Uses global list at DAT_016d44ec. Sets param_3=0 on success, 1 on out-of-range.
0x00957600352UIAuctionWnd__get_list_entry_with_1_stringGets an entry from a linked list at index param_2. Returns a struct with 1 int, 1 STL string, and 4 int fields. Uses global list at DAT_016d44f4. Sets param_3=0 on success, 1 on out-of-range.
0x00957760146UIAuctionWnd__hit_test_list_item_aHit-tests a mouse click against the auction list area. Converts screen coords to a list item index using page offset and column count. Returns -1 if outside list bounds. Uses global list at DAT_016d44ec.
0x0095780075UIAuctionWnd__hit_test_item_gridHit-tests a click in the item grid area of the auction window. Converts screen position to item index using row height from member 0x174. Returns -1 if out of bounds or past total item count at 0x17C.
0x00957850148UIAuctionWnd__hit_test_list_item_bHit-tests click against a second list area. Uses members at offset 0x20C-0x220 for page/column info. Row height from DAT_0133b0dc. Returns item index or -1.
0x009578F0122UIAuctionWnd__hit_test_skill_listHit-tests click against skill list area. Uses 0x20-pixel row height. Members at 0x138-0x148 for list and paging info. Returns item index or -1.
0x00957970146UIAuctionWnd__hit_test_list_item_cHit-tests click against a third list area. Uses DAT_0133b0fc row height. Members at 0x104-0x110 for paging. Uses global list DAT_016d44f4. Returns item index or -1.
0x00957A1058UIAuctionWnd__get_entry_data_by_indexGets entry data by list index from linked list at member 0x178. Iterates to the nth entry and calls UIWindowData__copy_assign_large to copy data out. Returns 1 on success, 0 if index out of range.
0x00957A5064UIAuctionWnd__get_half_row_from_coordsConverts screen coordinates to a half-row index. Checks bounds, divides Y by row height (member 0xB8) and clamps result to 0 or 1. Returns -1 if outside window area.
0x00957A90286UIAuctionWnd__get_item_entry_by_indexGets item entry by index from linked list at member 0x220. Returns pointer to entry data. Initializes a static empty entry on first use via _atexit. Returns static empty entry if index is out of range.
0x00957BB0236UIAuctionWnd__get_skill_entry_by_indexGets skill entry by index from linked list at member 0x148. Copies skill data fields (id, level, type, etc.) and vector. Returns param_2 as output buffer. Uses CSkillEntry__ctor_default for empty result.
0x00957CA0140UIAuctionWnd__copy_skill_entry_at_offsetCopies a skill entry from list at member 0x148 using page offset 0x138 plus param_3. Uses CSkillEntry__copy_ctor for found entries, CSkillEntry__ctor_default for out-of-range.
0x00957DA055UIAuctionWnd__deselect_scroll_listDeselects the scroll list widget at member 0x41 (offset 0x104). If the widget exists and has items (field 10 != 0), calls virtual method 0x38 to deselect and resets selected index to -1.
0x00960660744UIListWnd__sort_by_columnSorts a list window's data by the specified column index. Tracks sort direction (ascending=1 / descending=2) per column via std::map at offset 0x62. Toggles direction on repeated clicks. Column 0: sorts by string field at offset 4. Column 1: sorts by int field at offset 0x38. Column 2: sorts by wide string at offset 0x30. Column 3: sorts by int at offset 0x54. Column 4: sorts by float at offset 0x70. Column 5: sorts by int at offset 0x74. Triggers repaint after sorting.
0x00960F90533CGuildWindow__load_emblemLoads guild emblem BMP from file "../emblem/{guild_id}"; validates 24x24 dimensions and stores texture
0x009612E0596UIChatInputWnd__handle_send_messageHandles send message button (0xb8) in chat input window. Gets text from editable widget, validates it's non-empty (error 0x820 if empty). Checks for forbidden substrings (from DAT_0133b1c0 and DAT_0133b1d8) via _mbsstr and shows error 0xafc if found. If mode at 0xc0 is 0, sends as normal chat (command 0x70); otherwise sends as whisper/PM (command 0x6a) and plays sound 0xd7. Button 0xb9 closes the window with appropriate sound.
0x009633BA1stub_nop_009633baSingle-byte stub function (size=1)
0x009633CA1stub_nop_009633caSingle-byte stub function (size=1)
0x009634091stub_nop_00963409Single-byte stub function (size=1)
0x009638C21stub_nop_009638c2Single-byte stub function (size=1)
0x009657C01stub_nop_009657c0Single-byte stub function (size=1)
0x009657D01stub_nop_009657d0Single-byte stub function (size=1)
0x00965FB0145GuildListEntry__ctor_defaultDefault constructor for guild list entry struct. Initializes first field from param_3, then zeros out remaining fields including 2 string-like members and 5 int fields.
0x00966050145GuildListEntry__ctor_default_bDefault constructor for guild list entry struct variant B. Same layout as ctor_default - initializes from param_3 and zeros remaining fields.
0x009663D0254UIGuildAllianceWnd__ctorConstructor for UIGuildAllianceWnd. Calls UIWindowBase__ctor, sets vtable to PTR_FUN_01144a44, allocates 0x4C-byte sentinel node for RB-tree at member 0x2D, initializes all members to 0. Sets field 0x35 to 0x125A.
0x009664D026GuildAllianceEntry__ctor_3argsConstructs a GuildAllianceEntry with 3 arguments: sets first 3 dwords directly.
0x009664F0259GuildAllianceEntry__copy_ctorCopy constructor for GuildAllianceEntry. Copies first dword, deep-copies STL string, and copies remaining byte/int fields from the source struct (0x38 bytes total).
0x0096663020GuildAllianceEntry__init_zero_12bytesInitializes a 12-byte struct to zero: clears 3 fields (byte at +0, int at +4, int at +8).
0x0096665067GuildAllianceList__free_sentinel_nodeFrees the sentinel node (0x4C bytes) at member +4 if non-null.
0x009666A076GuildAllianceList__destroy_treeDestroys a guild alliance RB-tree by calling the recursive node destroyer and freeing the 0x4C-byte sentinel.
0x00966700123GuildAllianceList__dtor_with_stringDestroys a guild alliance list entry with its STL string member, then frees the 0x4C-byte node.
0x0096678078GuildAllianceList__free_sentinel_onlyFrees just the sentinel node (0x4C bytes) at member +4 without destroying child nodes.
0x009667D087GuildAllianceList__destroy_tree_bDestroys a guild alliance RB-tree (variant B). Same as destroy_tree but different call context.
0x0096683080GuildAllianceEntry__dtor_stringDestructs the STL string embedded in a GuildAllianceEntry at offset +4.
0x00966920171UIGuildAllianceWnd__dtorDestructor for UIGuildAllianceWnd. Sets vtable to PTR_FUN_01144a44, destroys internal data structures (json, helper, vector, RB-tree), then calls UIWindowBase__dtor.
0x009669D065GuildAllianceEntry__dtor_string_bDestructs the STL string in a GuildAllianceEntry (variant B context).
0x00966A20135GuildAllianceEntry__copy_assignCopy-assignment operator for GuildAllianceEntry. Deep-copies STL string and copies all byte/int fields from source to destination.
0x00966BA0195UIGuildAllianceWnd__scalar_deleting_dtorScalar deleting destructor for UIGuildAllianceWnd. Sets vtable, destroys internal vectors, RB-tree, and calls UIWindowBase__dtor. Frees the 0xE4-byte object if flag is set.
0x00966C7019130UIGuildAllianceWnd__main_event_handlerMain event handler for UIGuildAllianceWnd. Very large function (19130 bytes) handling all alliance window events. Skipped detailed decompilation due to size.
0x0096B7302568UIGuildAllianceWnd__draw_contentDraws the guild alliance window content. Size: 2568 bytes.
0x0096C140278UIGuildAllianceWnd__update_selected_entryUpdates the currently selected entry in the guild alliance window. Iterates the list at +0x32 looking for entries with state==2. When found, updates the selection ID at +0x35, copies associated IDs from the data table at +0x2F into the output vector at +0x36/+0x37, and triggers redraw via vtable+0x98. Resets to 0x125A (no selection) if entry disappears.
0x0096C260116UIGuildAllianceWnd__handle_buttonHandles button clicks in the guild alliance window.
0x0096C5A0391UIGuildAllianceWnd__draw_tiled_backgroundDraws a tiled background for the guild alliance window. Loads top/middle/bottom sprite resources and tiles the middle section based on content height. Handles both compact ('$') and expanded layouts.
0x0096C730294UIGuildAllianceWnd__draw_aligned_labelDraws a text label with alignment. Supports 3 alignment modes: centered (0x06), left-aligned with offset (0x00), and right-aligned (0x02). Measures text width and calculates x position accordingly.
0x0096C8D0154UIGuildEmblemListWnd__ctorConstructor for UIGuildEmblemListWnd. Calls UIWindowBase__ctor, sets vtable, initializes string member at +0x2F (with capacity 0xF), clears vector at +0x2D/+0x2E, sets field 0x10 to 0x20.
0x0096C970154UIGuildEmblemListWnd__ctor_bConstructor variant B for UIGuildEmblemListWnd. Same pattern as ctor but uses different vtable pointer.
0x0096CA1095UIGuildEmblemListWnd__dtorDestructor for UIGuildEmblemListWnd. Sets vtable, destroys STL string member, then calls UIWindowBase__dtor.
0x0096CA7095UIGuildEmblemListWnd__dtor_bDestructor variant B for UIGuildEmblemListWnd. Sets vtable, destroys STL string, calls UIWindowBase__dtor.
0x0096CAD0119UIGuildEmblemListWnd__scalar_deleting_dtorScalar deleting destructor for UIGuildEmblemListWnd. Calls dtor logic then frees the 0xD4-byte object if flag is set.
0x0096CB50119UIGuildEmblemListWnd__scalar_deleting_dtor_bScalar deleting destructor variant B for UIGuildEmblemListWnd. Calls dtor then frees the 0xD8-byte object if flag is set.
0x0096CBF072UIGuildEmblemListWnd__load_and_remove_resourceLoads a resource by the emblem path string at +0xBC, then removes it from the resource manager. Used to unload emblem textures.
0x0096CC4072UIGuildEmblemListWnd__load_and_remove_resource_bLoads a resource by the emblem path string at +0xBC, then removes it from the resource manager (variant B).
0x0096CC90103UIGuildEmblemListWnd__draw_emblem_spriteDraws the guild emblem sprite. Sets color to 0xFFFF00FF, loads emblem resource by path at +0xBC, optionally creates background, then draws the sprite.
0x0096CD00103UIGuildEmblemListWnd__draw_emblem_sprite_bDraws the guild emblem sprite (variant B). Same pattern as draw_emblem_sprite.
0x0096CD8022UIGuildEmblemListWnd__update_position_if_activeUpdates the window position with snap if the widget at +0xB8 is non-null.
0x0096CDA022UIGuildEmblemListWnd__update_position_if_active_bUpdates the window position with snap if the widget at +0xB8 is non-null (variant B).
0x0096CDC0590UIGuildAllianceWnd__draw_alliance_listDraws the alliance guild list (friendly guilds). Renders guild names and emblems for each alliance entry.
0x0096D010685UIGuildAllianceWnd__draw_enemy_listDraws the enemy guild list. Renders guild names and emblems for each enemy guild entry.
0x0096D300112UIGuildInfoEntryListWnd__ctorConstructor for UIGuildInfoEntryListWnd. Calls UIWindowBase__ctor, sets vtable, initializes array of 9 string entries (0x18 bytes each) at offset +0x2D using eh_vector_constructor_iterator.
0x0096D370123UIGuildAllianceWnd_vt511c__ctorConstructor for UIGuildAllianceWnd sub-window (vtable 0x0114511c). Initializes UIWindowBase, sets vtable pointer, zeros out string buffer at offset 0x2d with SSO capacity 0xf.
0x0096D3F086UIGuildAllianceWnd_vt5044__ctorConstructor for UIGuildAllianceWnd sub-window (vtable 0x01145044). Initializes UIWindowBase and sets vtable pointer.
0x0096D450105UIGuildAllianceWnd_vt51f4__dtorDestructor for UIGuildAllianceWnd sub-window (vtable 0x011451f4). Destroys 9 strings at offset 0x2d (stride 0x18) via eh_vector_destructor_iterator, then calls UIWindowBase__dtor.
0x0096D4C095UIGuildAllianceWnd_vt511c__dtorDestructor for UIGuildAllianceWnd sub-window (vtable 0x0114511c). Destroys one string, then calls UIWindowBase__dtor.
0x0096D52071UIWindow_vt5044__dtorDestructor for UI window class (vtable 0x01145044). Sets vtable then calls UIWindowBase__dtor.
0x0096D570129UIWindow_vt51f4__scalar_deleting_dtorScalar deleting destructor for UI window (vtable 0x011451f4, size 0x19c). Destroys 9 strings at offset 0x2d via eh_vector_destructor_iterator with stride 0x18, then calls UIWindowBase__dtor. Frees memory if flag bit 0 is set.
0x0096D600119UIWindow_vt511c__scalar_deleting_dtorScalar deleting destructor for UI window (vtable 0x0114511c, size 0xcc). Destroys one string, then calls UIWindowBase__dtor. Frees memory if flag bit 0 is set.
0x0096D68099UIWindow_vt5044__scalar_deleting_dtorScalar deleting destructor for UI window (vtable 0x01145044, size 0xb4). Calls UIWindowBase__dtor. Frees memory if flag bit 0 is set.
0x0096D72072UIChannelListWnd__renderRenders the channel list window. Has 5 display modes (0-4) based on DAT_016d3b07. Modes 0,3,4: render numbered item list with prev/next arrows, mode 3/4 highlight selected item in different color. Mode 2: renders numbered list with selection highlight and page counter. Mode 1: no rendering. Items are SSO strings at offset 0xb4 with 0x18-byte stride. Uses CColorPicker__GetPixelRGB for highlight colors in mode 2.
0x0096DB60476UIChannelListWnd__render_mode4_detailsRenders mode 4 details for channel list window. Only active when DAT_016d3b07 == 4. Draws colored border and background using CColorPicker__GetPixelRGB, then renders 4 two-character text labels at positions (2,2), (0x10,2), (0x1e,2), (0x2c,2) from data via DAT_016d3b0c virtual function.
0x0096DD40391UIChannelListWnd__handle_populateHandles populate event (0x41) for channel list window. Copies up to 9 SSO strings from param_4 into the widget's string array at offset 0x2d. Copies 4 int values from param_5 into offsets 0x63-0x66. Calculates required widget width based on rendered text widths and resizes via vtable+4. Mode 2 uses per-item height of 0x14.
0x0096DED0195UIChannelListWnd__handle_resize_textHandles resize-for-text event (0x42) for channel list window. Measures the text width of param_4 string, calculates required window width rounded to 0x1c boundary with minimum 0x22, resizes if different from current width, and triggers repaint.
0x0096E75086UIWindow_vt62e8__ctorConstructor for UI window class (vtable 0x011462e8). Inherits from UIWindowBase. Simple constructor.
0x0096EF10166UIWindow_vt5dd8__ctorConstructor for UI window class (vtable 0x01145dd8). Inherits from UIWindowBase. Initializes 8 fields to zero at offsets 0x2d-0x34.
0x0096F200411UISkillListWnd__ctorConstructor for UISkillListWnd (vtable 0x011463c0). Inherits from UIWindowBase. Complex constructor with an inline SSO string at offset 0x2d, a 0x100-byte linked list at 0x52, another SSO string at 0x5c, and numerous state fields. Stores param_2 at 0x4c. Sets grid layout (4 columns at 0x50, enabled at 0x4f). Initializes selection indices to -1 (0xffff) at multiple offsets.
0x0096F3A0108UITimedPopupWnd__ctorConstructor for UITimedPopupWnd (vtable 0x01145f88). Inherits from UIWindowBase. Records timeGetTime() at offset 0x2d and sets auto-dismiss timeout to 2000ms at offset 0x2e.
0x0096F410215UIItemGridWnd__ctorConstructor for UIItemGridWnd (vtable 0x01145718). Inherits from UIWindowBase. Allocates a 0x4c-byte linked list at offset 0x4b. Sets selection index to -1 at 0x46, enabled=1 at 0x48. Initializes various state fields to zero.
0x0096F74071UIWindow_vt62e8__dtorDestructor for UI window class (vtable 0x011462e8). Sets vtable then calls UIWindowBase__dtor.
0x009700C0239item_sort_compare_by_type_and_nameComparator function for sorting items. First compares by item type (from FUN_009967f0). If types are equal, compares by tooltip name string using std::char_traits::compare. Returns true if first item should come before second.
0x00970E601581UIShopWnd__populate_item_listPopulates the shop window item list. Loads item database text, creates CShopItem copies, formats item names with price/quantity, sets text colors (0xE8 for available, 0xB6 for buy mode). Handles both buy/sell modes at offset 0x130. Shows item counts and zeny formatting.
0x009714901322UIShopWnd__on_price_input_changeHandles price input field changes in the shop window. Validates input (numeric check, range 0-1B), shows error messages for invalid amounts. Formats price with zeny breakdown (gold/silver/copper from string resources 0x9AB-0x9AE). Returns 1 on success, 0 on error.
0x009719C0867UIVendingWnd__draw_item_price_listDraws the vending window item price list. Iterates items at offset 0x14C, formats each with name, quantity, price (with zeny formatting for values >= 100M). Calculates and shows commission (1% EA fee) for each item. Shows current zeny balance at bottom.
0x00971D30964UIVendingWnd__draw_detailed_item_listDraws detailed vending item list with full item descriptions. Iterates through linked list items, formats each with card prefix, card slots, refinement, equip type, weapon subtype, location, and option text. Shows price with commission calculation. Displays current zeny balance.
0x009738A0245UIShopGridWnd__hit_test_item_gridHit tests an item grid for shop windows. Given mouse x,y coordinates, calculates grid cell index (0x20 pixel rows, x offset 0x28). Skips items that are identified or hidden (filtering). Returns item index or -1.
0x009739A0122UIShopGridWnd__hit_test_item_grid_bHit tests item grid variant B. Uses linked list at offset 0x12C, grid dimensions from offsets 0x11C/0x120/0x124. Returns item index in linked list or -1.
0x00973A20134UIShopWnd__get_item_at_indexGets shop item at the given index from the linked list at offset 0xE8. Iterates through list, copies CShopItem at the matching index. Returns empty item if not found.
0x00974290142UIVendingWnd__get_item_at_indexGets vending item at the given index from the linked list at offset 0x12C. Copies struct with string at offset 0x38. Returns default if not found.
0x00974320229CUIWindow__on_click_item_gridHandles click on item grid; maps x/y to grid row based on page size and calls item detail function
0x00974410140UIVendingWnd__get_item_at_page_offsetGets vending item at page-adjusted index (param_3 + offset 0x11C) from linked list at offset 0x12C. Copies via CSkillEntry::copy_ctor. Returns default if not found.
0x009744A093UIShopWnd__find_item_by_name_in_listSearches shop item list for an item matching the given name string. Iterates linked list at offset 0xE8, compares string at node offset 0x34. Returns 1 if found, 0 if not.
0x0097450093UIShopWnd__find_item_by_name_in_list_bIdentical to UIShopWnd::find_item_by_name_in_list - searches linked list at offset 0xE8 for matching name. Variant B for a different window class.
0x0097457026check_coordinates_within_valid_rangeChecks if coordinates at offsets 0x18A and 0x18C are within valid range (both < 0x8000). Returns 1 if valid, 0 if invalid.
0x00974590146UIShopWnd__send_search_or_buy_packetSends search or buy packet for shop window. If offset 0x130 is 1 (sell mode), gets display text and quantity, sends packet 0x12A. Otherwise sends packet 0x128 with search text.
0x00974630487thread_local_sprintf_00974630Thread-local sprintf. Maintains a red-black tree keyed by thread handle, each node has an 0x800-byte buffer. Creates node on first use per thread, registers atexit cleanup. Calls vsprintf into thread-local buffer and returns pointer to it.
0x00974820218UIShopWnd__create_submit_buttonCreates a submit/confirm button for the shop window. Allocates CDialogWnd, sets text from string resource 0xE35, positions at bottom-right, sets button label from 0xE36, assigns msg ID 0x230.
0x00977E105267CUISearchWindow__init_child_widgetsInitializes the search window UI: creates editable text widget, text label, scrollbar, sprite widget, close/search buttons (with texture paths), 8 radio button filter tabs with map names from message string table, render widget, and title labels. Sets up button textures (btn_close, bt_search), configures radio button selection based on DAT_017387eb flags.
0x0097D220209create_shop_dialog_button_0097d220Creates a standalone dialog button (CDialogWnd) with all 3 texture states set to the same image. Positions at (0xe5, 4) with action code 0xc9. Used as a shop UI helper button.
0x009835502598CUISkillWindow__draw_skill_listDraws skill window list with skill icons, names, levels, and SP/AP costs. Renders header/border sprites, skill grid with selection highlight. Shows skill level (Lv/Nv), current vs max level, SP cost, AP cost. Handles two skill tree modes (0=homunculus?, 1=mercenary?). Includes special rendering for level-selectable skills. Displays window title based on mode.
0x009845A0339CUIWindow__on_shop_item_clickShop item click handler. Draws header area if y < 17. Performs hit test on shop item grid, updates selected index at offset 0xF8. If selection changed, calls virtual refresh. If not in replay mode, looks up shop item, finds NPC shop item by name, and renders item description tooltip.
0x00988590294CUISkillWindow__show_skill_tooltipShows skill name tooltip on hover in the skill window. Checks for tooltip flash timer (resets after 1000ms). Gets skill at grid position, retrieves skill name. If name text width exceeds available space and mouse is past x=0x70, displays tooltip at adjusted position. Used for truncated skill names in list view.
0x0098A7A0344CUISkillWindow__update_skill_button_positionsUpdates skill button widget positions in the skill window. Iterates through skill slots, checks if skill is available and within range. Positions up/down arrow buttons based on skill availability and level-use check. Hides buttons (moves offscreen to -200) for unavailable skills.
0x0098A920484CUISkillWindow__handle_messageMessage handler for the skill window. Handles: scroll up/down (cases 3/4), scroll position changes (7/9/10), resize (case 0xe with min 232x102, snapped to 32px grid), and refresh (case 0x17). Delegates unknown messages to UIWindow base handler.
0x0098C5A01464CUIHomSkillWindow__handle_messageMessage handler for homunculus/mercenary skill window. Handles: button clicks (0xb8=use skill with confirm, 0xb9=cancel), resize (0xe, min 232x120), refresh (0x17 - reloads skill list), window layout (0x22), item info (0x26 - handles card/equip actions), and packet processing (0x7b - sub-packets 0x5140/5141/5142).
0x0098DBF0546CUIInventoryWindow__handle_messageMessage handler for inventory window variant. Handles: resize (0xe), refresh/populate (0x17 - loads items by category tabs with type filtering), window layout (0x22), item actions (0x26 - equip/use), search mode toggle (0x16c/0x16d), item string update (0x37), and search reset (0xf6). Supports 8 item type categories.
0x0098E0D0443CUIInventoryWindow__handle_message_altAlternative inventory window message handler. Same structure as handle_message but with different item type filtering per tab. Uses different global functions (FUN_009968b0/FUN_00995d50) for search mode. Supports same messages: resize, refresh, layout, item actions, search toggle. Item category filtering differs by tab index.
0x00990810103CUIConfirmDialog__handle_messageSimple confirm dialog message handler. On button 0xb8 (OK): sends command 0x53 with stored item ID and count to server. On button 0xb9 (Cancel) or OK: closes window 0xe6 and calls cleanup. Delegates other messages to base UIWindow handler.
0x00990880138CUIVendingWindow__handle_messageMessage handler for the vending (player shop) window. Handles: buy/cancel buttons (0xb8/0xb9 - validates weight capacity for purchases, handles both vending modes), resize (0xe), refresh (0x17 - loads vending item list with Zeny totals), item selection (0x1c), layout (0x22), item purchase confirmation (0x26 - checks Zeny limits, 30k item cap), and packets (0x7b - 0x529e/526c/526d/529f).
0x00991370145CUICartWindow__handle_messageMessage handler for cart inventory window. Handles: resize (0xe - supports two max width modes based on 0x43 flag), refresh (0x17 - loads cart items), item selection (0x1c), layout (0x22 - position validation varies by mode), title update (0x24), item actions (0x26 - sell/equip), Zeny display (0x77), and packet processing (0x7b - 0x52d0/5302/5305).
0x00991880137CUIStorageWindow__handle_messageMessage handler for storage window. Handles: close button (0xc9 - closes window 0x28), resize (0xe - min 232x120), refresh (0x17 - loads storage items), layout (0x22), item actions (0x26 - move to inventory with commands 0x4c/0x4e), and status text update (0x37 - displays item count/weight in format 'Num X/Y Weight X/Y').
0x00991C40138CUIGuildStorageWindow__handle_messageMessage handler for guild storage window. Handles: resize (0xe), refresh (0x17 - loads guild storage items), layout (0x22), item actions (0x26 - handles types 10=move, 0x13=craft, 0x15=sell with different target windows), and packet processing (0x7b - sub-packet 0x5398/5399). Delegates unknown messages to skill window base handler.
0x00992130122CUITradeWindow__handle_messageMessage handler for the trade window. Complex handler supporting: button clicks (OK/cancel/lock trade), resize, refresh (loads trade items for both parties), item add/remove, Zeny amount input with validation (caps at 1B, validates numeric), trade confirmation flow, lock status updates, and packet processing. Handles both initiator and partner sides of the trade.
0x00993A2084CUISubDialog__handle_message_forward_to_parentSimple sub-dialog message handler that forwards button clicks to parent. On button 0xc9, forwards the event to the parent window at offset 0x10 via its message handler (0x94). Delegates other messages to UIWindow base handler.
0x00993A80143CUISkillUseWindow__handle_messageMessage handler for skill use/shortcut bar window. Handles: use skill button (0xb8), close (0xc9), skill slot clicks (0xef-0xf5 for decrease, 0xfd-0x103 for increase, 0x104-0x10a for set level), scroll (7/9/10), resize (0xe), refresh (0x17 - loads skill list with level auto-set), layout (0x22), skill target selection (0x30), hotbar setup (0x31 - builds skill queue with confirmation dialog), and skill confirmation (0x3a). Supports two skill tree modes (homun/merc).
0x0099480029CUIItemWindow__set_selected_slotsSets two selected slot indices on the item window. Stores param_2 at offset 0x18a and param_3 at offset 0x18c (both 16-bit values).
0x0099482026clamp_and_set_valueClamps param_2 to be at most param_1 and stores it in *param_3. Only writes if param_2 is non-zero. Used for limiting values to a maximum.
0x00994840147CUIItemWindow__set_lock_stateSets lock state on item window. When locked (param_2==1): sets flag 0x189, hides both this window and target window (DAT_01457978 or DAT_01457a90), shows warning message 0xb72. When unlocked: clears flag, shows both windows, resets selected slots to 0xffff.
0x009948E0687CUIItemWindow__set_display_modeSets display mode for the item window. Mode 0: checks if this is the focused widget and notifies parent, then closes. Non-zero mode: shows item count in text widget, focuses it, retrieves and displays item description with word-wrap. Builds tooltip from item database info.
0x00994CC077CUIItemWindow__on_item_drag_startHandles item drag start in item window. Sets flag 0x188, determines target window based on mode (0x130): mode 1 uses DAT_01457a90, others call drag handler and use DAT_01457978. Notifies target window to refresh (message 0x17).
0x00994D90176CUIInventoryWindow__check_item_matches_tabChecks if an item matches the current inventory tab filter. Parses item ID from string, looks up item type. Stores type at param_2[0x1e]. Returns 1 if item matches current tab (offset 0x154): tab 0=types 0/1/2, tab 1=type 0x12, tab 2=types 4/0xb-0xe, tab 3=types 5/8/9/0xf, tab 4=special, tab 5=types 0xa/0x10/0x11/0x13, tab 6=type 6, tab 7=types 3/7.
0x00994EF0272CUIInventoryWindow__check_item_matches_tab_altSame as check_item_matches_tab but uses offset 0x180 for the tab index instead of 0x154. Used by the alternative inventory window variant. Same tab-to-type mapping.
0x0099533056CUIWindow__save_position_to_configSaves the window's current position and size to its config struct. If config pointer at offset 0xf4 is non-null, writes width (0x14) and height (0x18) to config offsets 8/0xc, and x (0x1c) and y (0x20) to config offsets 0/4.
0x0099537056CUIWindow__save_position_to_config_00995370Saves the window's current position and size to its config struct. Identical to CUIWindow__save_position_to_config but for a different class vtable.
0x009953B056CUIWindow__save_position_to_config_009953b0Saves window position (w,h,x,y) to config struct at offset 0xF4. Same pattern as CUIWindow__save_position_to_config but for a different window class vtable.
0x009953F056CUIWindow__save_position_to_config_009953f0Saves window position (w,h,x,y) to config struct at offset 0xFC. Same save_position pattern but using config pointer at different class offset.
0x0099543056CUIWindow__save_position_to_config_00995430Saves window position (w,h,x,y) to config struct at offset 0xFC. Duplicate of 009953f0 for different vtable.
0x0099547056CUIWindow__save_position_to_config_00995470Saves window position (w,h,x,y) to config struct at offset 0x154.
0x009954B056CUIWindow__save_position_to_config_009954b0Saves window position (w,h,x,y) to config struct at offset 0x150.
0x009954F056CUIWindow__save_position_to_config_009954f0Saves window position (w,h,x,y) to config struct at offset 0x164.
0x00995530131CUIWindow__save_extended_configSaves extended window configuration including position/size and 5 additional fields. Saves width/height/x/y to config offsets 8/0xc/0/4, plus fields from offsets 0x110/0x10c/0x100/0x104/0x108 to config offsets 0x10/0x14/0x18/0x1c/0x20. Uses config pointer at offset 0xf0.
0x009955C056CUIWindow__save_rect_to_ptrSaves window rect (x,y,w,h from offsets 0x1C,0x20,0x14,0x18) to external RECT pointer at 0xF8
0x0099560056CUIWindow__save_rect_to_config_00995600Saves window rect (x,y,w,h) to config struct at offset 0xFC. Note: field order is x,y,w,h (rect format) unlike save_position variants which use w,h,x,y.
0x0099564056CUIWindow__save_rect_to_config_00995640Saves window rect (x,y,w,h) to config struct at offset 0xF8.
0x0099568056CUIWindow__save_rect_to_config_00995680Saves window rect (x,y,w,h) to config struct at offset 0xF0.
0x009956C056CUIWindow__save_rect_to_config_009956c0Saves window rect (x,y,w,h) to config struct at offset 0xF0. Duplicate for different vtable.
0x0099570056CUIWindow__save_rect_to_config_00995700Saves window rect (x,y,w,h) to config struct at offset 0x150.
0x0099574056CUIWindow__save_rect_to_config_00995740Saves window rect (x,y,w,h) to config struct at offset 0x134.
0x0099578051CUIWindow__save_config_and_refresh_childSaves window config and refreshes a child window. Gets child at offset 0x47, reads game option 0x108 state, stores it in child's offset 0xc field, then redraws both child and self.
0x00996090932CShopWindow__filter_and_remove_items_by_string_aIterates linked list of shop items at offset 0xe8. For each item, copy-constructs name and performs byte-level substring search. If search string NOT found, unlinks the item from the list and decrements count at 0xec. Variant A - calls CShopWindow__build_item_tooltips_b first.
0x00996440932CShopWindow__filter_and_remove_items_by_string_bIterates linked list of shop items at offset 0xe8. For each item, copy-constructs name and performs byte-level substring search. If search string NOT found, unlinks the item from the list and decrements count at 0xec. Variant B - calls CShopWindow__build_item_tooltips_c first.
0x009967F078get_item_sort_categoryMaps item type IDs to sort category numbers. Types 0/1/2->0 (equipment), 3/7->6 (ammo/shadow), 4/0xb-0xe->2 (weapon), 5/8/9/0xf->3 (armor), 6->5 (card), 10/0x10/0x11/0x13->4 (etc), 0x12->1 (consumable). Default->10 (unknown).
0x0099693016CUIInventoryWindow__set_search_modeSets the search mode flag at offset 0x158. Controls whether the inventory window is in search/filter mode.
0x0099694016CUIInventoryWindow__set_current_tabSets the current tab index at offset 0x154. Controls which item category tab is active in the inventory window.
0x00996950408CShopWindow__build_item_tooltips_aIterates shop item linked list at offset 0xe8. For each item, copy-constructs it, formats tooltip body via CItemDesc__format_tooltip_body, and gets base item ID. Returns 1 if items exist, 0 if list is empty. Variant A - used by inventory window.
0x00996AF0408CShopWindow__build_item_tooltips_bIterates shop item linked list at offset 0xe8. For each item, copy-constructs it, formats tooltip body via CItemDesc__format_tooltip_body, and gets base item ID. Returns 1 if items exist, 0 if list is empty. Variant B - used by storage window.
0x00996C90408CShopWindow__build_item_tooltips_cIterates shop item linked list. For each item, copy-constructs it, formats tooltip body via CItemDesc__format_tooltip_body, and gets base item ID. Returns 1 if items exist, 0 if list is empty. Variant C.
0x00996E30592CShopWindow__calculate_total_and_send_purchaseSets purchase parameters (param_2/param_3 to fields 0x33/0x34). Iterates all items to calculate total price (quantity * unit_price). Formats currency string via message ID 0x918, calls CPacketManager to send purchase packet, then updates UI text widget.
0x0099735071CUIShopSubPanel__dtorDestructor for a shop sub-panel class. Sets vtable pointer and delegates to UIPanel base destructor.
0x009973F099CUIShopSubPanel__scalar_deleting_dtorScalar deleting destructor for shop sub-panel. Sets vtable, calls base dtor, optionally frees memory (0xd0 bytes) if param_2 bit 0 is set.
0x009974F01827CShopWindow__draw_detail_panelDraws the detailed shop panel: item name with color coding, weight/price labels with string IDs 0xbfc/0xbfd/0xe2c, weight/price percentages, zeny amounts, and cart weight. Handles currency display differences for locale 0xc (Peso). Right-aligns price text and shows warning color (red=0xff) when price ratio exceeds threshold.
0x00997C201171CShopWindow__draw_summary_panelDraws the shop summary panel with background fill and 3D border. Formats and displays item name/count, weight current/max with low warning color, discount percentage, and zeny. Handles special item IDs (0xfce-0x10dc) with different font sizes. Shows weight warning in red when ratio below threshold.
0x009981A0530CShopWindow__on_tab_switchHandles tab switching between buy tab (field 0x2d) and sell tab (field 0x2e). Repositions child widgets (buttons at 0x3a-0x3f) based on active tab. Updates text widget size and word wrap. Also repositions related window type 0x133. Sell tab shows additional controls for overcharge pricing.
0x009983C01104CShopWindow__init_child_controlsInitializes shop window child controls: creates button widget, action button with Alt-V/Ctrl-V hotkey, editable text widget at 0xc0, three UIPanel sub-panels at 0xe8/0xec/0xfc with different vtable types, two UIContainer scrollable lists at 0xf0/0xf4 for buy/sell item lists, and sets their sizes/positions.
0x009988102759CShopWindow__draw_main_panelMain shop window draw handler. Dispatches to draw_summary_panel or draw_detail_panel based on which tab is active (0xb4 vs 0xb8). For the basic info panel, draws character level, job level, HP/SP with low-health warning colors, experience rate, zeny, and weight. Handles locale-specific display (0xc=Peso/Classe, else Lv/Weight). Special job IDs (0xfce-0x10dc) use smaller font.
0x009995A0365CUIBasicInfoWindow__handle_messageMessage handler for the basic info/status bar window. Handles button clicks that toggle various game windows: 0xc0=party, 0xc1=guild info, 0xc2=inventory, 0xc3=equipment, 0xc4=options, 0xc7=friends, 0xca=minimize/resize, 0xd6=navigation, 0xdb=quest, 0xde=close all windows, 0xf7=storage, 0x169=achievement, 0x175=rodex, 0x242=equip tab2. Also handles layout (0x22) and redraw (0x3c).
0x00999BC071CUIWindow__save_position_and_state_to_configSaves window position, size, and an additional boolean state to config. Writes width/height/x/y to config struct at offset 0xc4, plus a byte from offset 0xbc to config offset 0x10.
0x00999C1016CUIWindowType1__set_vtableSets the vtable pointer for UI window type 1 (PTR_FUN_011471f4).
0x00999C2016CUIWindowType2__set_vtableSets the vtable pointer for UI window type 2 (PTR_FUN_01147210).
0x00999C3016CUIWindow__set_vtable_0114722cSets vtable pointer to 0114722c; used during construction or type initialization
0x00999C4016CUIWindowType3__set_vtableSets the vtable pointer for UI window type 3 (PTR_FUN_01147248).
0x00999C5016CUIWindowType4__set_vtableSets the vtable pointer for UI window type 4 (PTR_FUN_01147264).
0x00999C6016CUIWindowType5__set_vtableSets the vtable pointer for UI window type 5 (PTR_FUN_01147280).
0x00999F5016CUIWindow__set_vtable_00999f50Sets vtable pointer to CUIWindow vtable at 0114722c.
0x00999FF0104UIScrollList__ctor_00999ff0Constructor for UIScrollList. Calls UIScrollListBase__ctor, sets vtable to 0114729c, initializes members at offsets 0x35 and 0x36 to zero.
0x0099A06096UIWindowChild__ctor_0099a060Constructor for a UIWindowChild subclass. Calls UIWindowBase__ctor, sets vtable to 01147384, initializes member at offset 0x2d to zero.
0x0099A0C071UIWindowChild__dtor_0099a0c0Destructor for UIWindowChild subclass. Sets vtable to 01147384, then calls UIWindowBase__dtor.
0x0099A11099UIScrollList__scalar_deleting_dtor_0099a110Scalar deleting destructor for UIScrollList (size 0xE0). Sets vtable to 0114729c, calls UIFormattedWidgetBase__dtor, conditionally frees memory.
0x0099A18099UIWindowChild__scalar_deleting_dtor_0099a180Scalar deleting destructor for UIWindowChild (size 0xB8). Sets vtable to 01147384, calls UIWindowBase__dtor, conditionally frees memory.
0x0099B0C086UIInfoWindow__ctor_0099b0c0Constructor for UIInfoWindow. Calls UIWindowBase__ctor and sets vtable to 01147558.
0x0099B120307UIItemInfoWindow__ctor_0099b120Constructor for UIItemInfoWindow. Calls UIWindowBase__ctor, sets vtable to 01147480, allocates 3 RB-tree map sentinel nodes (0x18 bytes each) and one 0x1C node, initializes 3 vector pairs via eh_vector_constructor, zeros out state flags.
0x0099B26071UIInfoWindow__dtor_0099b260Destructor for UIInfoWindow. Sets vtable to 01147558, calls UIWindowBase__dtor.
0x0099B2B0207UIItemInfoWindow__dtor_0099b2b0Destructor for UIItemInfoWindow. Zeros state, destructs 3 vector pairs, clears 3 maps/tree structures, calls UIWindowBase__dtor.
0x0099B3E099UIInfoWindow__scalar_deleting_dtor_0099b3e0Scalar deleting destructor for UIInfoWindow (size 0xB8). Sets vtable to 01147558, calls UIWindowBase__dtor, conditionally frees memory.
0x0099B450231UIItemInfoWindow__scalar_deleting_dtor_0099b450Scalar deleting destructor for UIItemInfoWindow (size 0x16C). Destructs vector pairs, clears maps/trees, calls UIWindowBase__dtor, conditionally frees memory.
0x0099B5401278CMinimapMemoWindow__populate_memo_buttons_0099b540Populates minimap memo buttons. Gets map name, tokenizes by delimiter. For each token: if type 8, stores coord pair; otherwise creates a CDialogWnd button with texture, positions it, adds to memo point tree map with index key.
0x0099BA801538CMinimapMemoWindow__load_memo_file_0099ba80Loads minimap memo entries from text file (Memo_[mapname].txt). Clears 20 memo buttons, reads up to 40 lines with strtok, parses x/y coords and label text. Returns number of memo entries loaded.
0x0099C090362CMinimapMemoWindow__create_ui_controls_0099c090Creates UI controls for minimap memo window. Adds close button (msg 0xAB5), OK button (msg 0xAC2), creates editable text widget for memo input, sets text color to light gray (0xE8E8E8).
0x0099C200811CMinimapMemoWindow__init_map_view_0099c200Initializes minimap memo window map view. Calculates scale from map dimensions, creates 3 radio buttons (zoom levels), close/ready buttons, 20 memo point buttons, loads memo file, creates equip slot widget for minimap display.
0x0099C560700CMinimapMemoWindow__render_0099c560Renders minimap memo window. Draws map background with border, loads map texture, renders memo point markers from 3 coordinate vectors (regular points, boss points, warp points).
0x0099C820114CMinimapMemoWindow__handle_click_0099c820Handles click on minimap memo window. If click is in the top header area (y <= 0x11), delegates to UIWindow__prepare_render_context for drag handling. Otherwise, if click is within the map area and memo placement is enabled (flag at 0x118), records click coordinates (adjusted by -6 pixels) and opens the memo input dialog (window type 0x112).
0x0099C8D0394CMinimapMemoWindow__save_memo_file_0099c8d0Saves minimap memo entries to text file (Memo_[mapname].txt). Iterates 20 memo buttons, writes entries with valid coordinates as 'x y label' lines. Returns number of entries saved.
0x0099CA60444CMinimapMemoWindow__handle_memo_input_event_0099ca60Handles memo input dialog events. On Enter with text, triggers OK button event. On OK (0xB8), appends memo entry to file and reloads. On close (0xC9), hides dialog. Otherwise delegates to UIWindow__handle_button_click.
0x0099CC201462CMinimapMemoWindow__handle_event_0099cc20Main event handler for minimap memo window. Handles: 0x1E1/0x1E2 (show/hide panels), 0x1E3 (move marker), 0x1E4 (resize marker list), 0x1E5 (add new marker with dialog), 0x1E6 (clear all markers), 0x22 (tab selection), button events for close/zoom/delete/warp. Complex memo point management with RB-tree maps.
0x0099D920135CMinimapMemoWindow__toggle_boss_markers_visibility_0099d920Toggles visibility of boss markers on minimap. Iterates RB-tree at offset 0x4C, shows/hides each marker based on boss toggle button state at offset 0x48.
0x0099D9B0135CMinimapMemoWindow__toggle_warp_markers_visibility_0099d9b0Toggles visibility of warp markers on minimap. Iterates RB-tree at offset 0x4E, shows/hides each marker based on warp toggle button state at offset 0x47.
0x0099DA40194CMinimapMemoWindow__recalculate_map_scale_0099da40Recalculates minimap scale and offsets from current map dimensions. Gets map width/height, computes scale factor, adjusts X/Y offsets to center the map.
0x0099DB10372CMinimapMemoWindow__update_minimap_texture_0099db10Updates minimap widget texture. Gets map texture path, sets title/subtitle text, loads texture file, performs RTTI dynamic cast to determine texture dimensions, sizes the minimap widget accordingly.
0x0099DD1044CMinimapMemoWindow__world_to_screen_x_0099dd10Converts world X coordinate to screen X position using map scale (offset 0xB8) and X offset (offset 0xBC).
0x0099DD4048CMinimapMemoWindow__world_to_screen_y_0099dd40Converts world Y coordinate to screen Y position using map scale (offset 0xB8) and Y offset (offset 0xC0). Y axis is inverted.
0x0099DDD01stub_nop_0099ddd0Single-byte stub function (size=1)
0x0099DDE042fill_array_with_pairFill array with pair
0x0099E060123MapMarkerEntry__copy_construct_0099e060Copy constructor for MapMarkerEntry (0x3C bytes). Sets vtable to 01147748, copy-constructs two std::string members (offsets 4 and 0x1C), copies two int members (offsets 0x34 and 0x38).
0x0099E0E0129CMapMarkerListWnd__ctor_0099e0e0Constructor for CMapMarkerListWnd. Calls UIItemListWnd__ctor, sets vtable to 01147750, initializes vector (offsets 0x3C-0x3E) to empty, stores param as member at 0x3F.
0x0099E260209CMapMarkerListWnd__dtor_0099e260Destructor for CMapMarkerListWnd. Clears linked list at 0x3A (frees 0x100-byte nodes with string dtors), clears vector of 0x3C entries, calls UIItemListWnd__dtor.
0x0099E34093MapMarkerEntry__dtor_0099e340Destructor for MapMarkerEntry. Sets vtable to 01147748, destructs two std::string members.
0x0099E3A0234CMapMarkerListWnd__scalar_deleting_dtor_0099e3a0Scalar deleting destructor for CMapMarkerListWnd (size 0x100). Full cleanup of list/vector, calls UIItemListWnd__dtor, conditionally frees memory.
0x0099E490114MapMarkerEntry__scalar_deleting_dtor_0099e490Scalar deleting destructor for MapMarkerEntry (size 0x3C). Destructs two strings, conditionally frees memory.
0x0099E510642CMapMarkerListWnd__create_child_widgets_0099e510Creates child widgets for CMapMarkerListWnd. Creates editable text widget, text label with checkbox texture (magenta color), sprite scrollbar, close button (CDialogWnd). Calculates visible rows from height.
0x0099E7A01368CMapMarkerListWnd__render_item_list_0099e7a0Renders the item list for CMapMarkerListWnd. Draws background with decorative borders, iterates visible items drawing: item sprite with count badge, item name, price in Zeny, timestamp (MM/DD HH:MM:SS format).
0x0099ED00584CMapMarkerListWnd__show_item_tooltip_0099ed00Shows item tooltip on hover in CMapMarkerListWnd. Gets item at grid position, builds tooltip string with item description. Uses different format for purchasable items (msg 0x9F7) vs regular items (msg 0xB7).
0x0099EF50309CMapMarkerListWnd__update_marker_names_0099ef50Updates marker names in CMapMarkerListWnd. Iterates vector of 0x3C entries, for entries matching msg 0x245, updates the name string from a utility function. Triggers redraw if any name changed.
0x0099F090193CMapMarkerListWnd__handle_item_click_0099f090Handles item click in CMapMarkerListWnd. Gets clicked item from grid position, opens item detail window (command 0xC) and sends event 0x18 with item data.
0x0099F1601039CMapMarkerListWnd__handle_event_0099f160Event handler for CMapMarkerListWnd. Handles: close (0xC9, sends 0x101 or 0x102), resize (0xE with param 3, adjusts rows/scrollbar), add item (0x17, creates linked list node + vector entry with name/tooltip/price). Delegates other events to base handler.
0x009A3B50372CUIWindow__render_toggle_statusRenders toggle on/off status text at fixed positions using msg IDs 0x1AC-0x1AF in white
0x009A54601stub_nop_009a5460Single-byte stub function (size=1)
0x009A56201stub_nop_009a5620Single-byte stub function (size=1)
0x009A56701stub_nop_009a5670Single-byte stub function (size=1)
0x009A58A01stub_nop_009a58a0Single-byte stub function (size=1)
0x009A5D601stub_nop_009a5d60Single-byte stub function (size=1)
0x009A61E01stub_nop_009a61e0Single-byte stub function (size=1)
0x009A65401stub_nop_009a6540Single-byte stub function (size=1)
0x009A66101stub_nop_009a6610Single-byte stub function (size=1)
0x009A66601stub_nop_009a6660Single-byte stub function (size=1)
0x009A6AC01stub_nop_009a6ac0Single-byte stub function (size=1)
0x009A6D401stub_nop_009a6d40Single-byte stub function (size=1)
0x009A6E903598UIWindowManager__init_default_window_positionsInitializes the default position/size table for all UI window types. Massive function that writes hardcoded x/y/w/h values (and additional config fields) for every window ID into the UIWindowManager struct. Called once on startup; uses a global flag to ensure single initialization. Also handles job-class-dependent status window height.
0x009A7CA0140UIWindowManager__clamp_window_position_to_screenValidates and clamps a window's position/size to fit within screen bounds. Adjusts width based on a flag (0xe4 or 0x110), clamps height to max 0x152, ensures x/y are non-negative and window doesn't extend past screen edges.
0x009A80F0231CShopItemList__add_item_from_desc_009a80f0Adds an item to shop item list from item description. Clears item info tree, gets equip slot type and class/level from item desc, converts string to int via atoi, then pushes to CShopItemList.
0x009A81E015CShopItemList__push_back_wrapper_009a81e0Simple wrapper that calls CShopItemList__push_back.
0x009A81F0191UIShopWnd__on_mouse_event_009a81f0Handles mouse events for shop window. Checks window type 0x271b, dispatches based on param_4 type (3=item types with switch for equip slots 4/5/8/9/0xb-0xf). Triggers UI notifications via vtable calls.
0x009A83C01118UIShopWnd__init_child_widgets_009a83c0Initializes child widgets for shop window: editable text widget, text label, scrollbar, sprite widget, OK button with normal/hover/pressed textures (btn_ok_bmp, btn_ok_a_bmp, btn_ok_b_bmp). Sets up row count and triggers refresh notification 0x17.
0x009A88202231UIShopWnd__draw_item_list_009a8820Draws the shop item list. Renders background borders (left/right), item rows with sprites, names, prices (with discount display like "d > s Zeny"), item count badges. Handles highlight on selected item. Shows total price at bottom if in buy mode (0x10c==1). Uses color picker for selection highlight and background fill.
0x009A90E01480UIShopGridWnd__draw_item_grid_009a90e0Draws a grid-based shop item list. Renders items in a multi-column grid layout (using field 0xe0 as column count). Each cell is 32x32. Draws left/right borders, background fill, item sprites with count, tooltips, price text. Highlights selected item (field 0xf8). Similar to draw_item_list but uses grid arrangement instead of single column.
0x009A96C071UIShopWnd__on_mouse_move_009a96c0Handles mouse move in shop window. If y < 0x11, draws header area. Hit-tests item grid for hover, updates field 0x3e with hovered item index. Triggers repaint (vtable+0x98) if hover changed.
0x009A9710685UIShopWnd__show_item_tooltip_009a9710Shows tooltip for a shop item at the given grid position. Gets item at grid pos, builds tooltip string with item name and price (formatted as "s Zeny" or "d > s Zeny" for discounted). Displays tooltip via FUN_00ad6510.
0x009A99C0237UIShopWnd__on_double_click_009a99c0Handles double-click on shop item list. Hit-tests grid, gets item at index. If valid item found, sends message 0x18 with the item data to window 0xc (buy quantity dialog).
0x009A9AB0144UIShopBuyWnd__process_message_009a9ab0Message handler for shop buy window. Handles: msg 6 (button press - 0xb8 buy confirm/cancel, 0xb9 close), msg 0xe (resize with min 0xe8x0x78, snapped to 32px grid), msg 0x17 (refresh item list and calculate total), msg 0x22 (item selected), msg 0x24 (clear total text), msg 0x26 (execute purchase - validates weight/zeny/count limits, sends buy packets), msg 0x7b (packet response with 0x50dc/0x50dd).
0x009AA4F0138UIShopSellWnd__process_message_009aa4f0Message handler for shop sell window. Handles: msg 6 (button 0xd5 - tab switch), msg 0xe (resize with min 0xe8x0x78, 32px grid snap), msg 0x17 (refresh sell item list), msg 0x22 (item selected for sell), msg 0x24 (toggle sell/nosell state with text 0xb9/0xba), msg 0x26 (execute sell - sends sell packets, refreshes related windows).
0x009AA99094UIShopBuyWnd__process_message_alt_009aa990Alternative message handler for shop buy window. Handles: msg 6 (0xb8 close shop), msg 0xe (resize with min 0xe8x0x78, 32px grid snap), msg 0x17 (calculate total from item list, display "Total: s Zeny"), msg 0x22 (clear total text), msg 0x24 (reset and resize).
0x009AAF30174UIPetInfoWnd__ctor_009aaf30Constructor for UIPetInfoWnd. Calls UIWindowBase__ctor, sets vtable to PTR_FUN_01147fec. Initializes fields: 0x2d-0x2f=0 (child widget ptrs), 0x32-0x34=0 (item vectors), 0x30-0x31=-1 (pet IDs).
0x009AB070110UIPetInfoWnd__dtor_009ab070Destructor for UIPetInfoWnd. Sets vtable to PTR_FUN_01147fec, clears pair vector and int vector, then calls UIWindowBase__dtor.
0x009AB0E0134UIPetInfoWnd__scalar_deleting_dtor_009ab0e0Scalar deleting destructor for UIPetInfoWnd. Sets vtable, clears vectors, calls UIWindowBase__dtor. Conditionally frees object memory (size 0xd4).
0x009AB170420UIPetInfoWnd__init_buttons_009ab170Initializes buttons for pet info window. Creates close button and two dialog buttons (0xb8 and 0xb9) with normal/hover/pressed textures. Positions them relative to window bounds.
0x009AB3201074UIPetInfoWnd__draw_009ab320Draws pet info window content. Loads pet illustration sprites (from field 0xc0 and 0xc4 IDs), falling back to "userinterface/illust/pet_noimage" if not found. Draws pet images, stats overlay, item name labels formatted as "%d", and text at bottom. Uses RTDynamicCast for sprite type checking.
0x009AB7601212UIPetInfoWnd__process_message_009ab760Message handler for pet info window. Handles: msg 6 (button 0xb8=confirm hatching with item/count validation, 0xb9/0xc9=close), msg 0x62 (add item to hatch list, sends to buy dialog), msg 0x8e (set pet pair IDs and items, build hatch list). Validates item counts against inventory, builds network packet 0x9fb for hatching.
0x009ABC20860UIPetInfoWnd__create_child_widgets_009abc20Creates child text widgets for pet info window. Loads pet names by ID (fields 0xc0, 0xc4), creates text label widgets with grey color (0x9b9b9b). Iterates through item list at field 0xc8, creating labels for each item name. Uses UIWidget__ctor and UIEditBox__set_text_and_layout for each widget.
0x009ABF9058aligned_free_ushort_buffer_009abf90Frees an aligned unsigned short buffer. param_1=data ptr, param_2=element count. Computes byte size (count*2), handles aligned block deallocation for large blocks (>0xfff bytes).
0x009AC040291UIScrollPanel__ctor_009ac040Constructor for UIScrollPanel. Calls base UIWidget ctor, sets vtable to PTR_UIScrollPanel__destructor_01148184. Initializes scroll state fields (0x1f-0x2b), creates sentinel node for red-black tree at field 0x2a. Sets default scroll bar size to 0xd. Calls create_scrollbars via vtable.
0x009AC2B0198UIScrollPanel__dtor_009ac2b0Destructor for UIScrollPanel. Sets vtable, removes and destroys horizontal scrollbar (field 0x23) and vertical scrollbar (field 0x24) if present. Clears offset list, destroys map tree, calls base UIWidget dtor.
0x009AC4F0222UIScrollPanel__scalar_deleting_dtorScalar deleting destructor for UIScrollPanel. Sets vtable, releases horizontal/vertical scrollbars, destroys offset map tree, calls base UIWidget dtor. Conditionally frees 0xB0-byte object memory if param_2 & 1.
0x009AC5D0464UIScrollPanel__update_child_offsetsUpdates scroll offsets for all child widgets, excluding scrollbars; inserts new entries into offset tree
0x009AC7B079UIScrollPanel__set_child_positionSets position of a child widget via vtable call and updates internal offset tracking
0x009AC80035UIScrollPanel__on_child_resizeHandles child resize event: calls base resize handler and propagates via vtable+0x3C
0x009AC83095UIScrollPanel__release_scrollbarsReleases and nullifies both horizontal (offset 0x8C) and vertical (offset 0x90) scrollbar objects
0x009AC890361UIScrollPanel__render_childrenRenders all child widgets with scroll offset adjustment; handles scrollbars and dirty flag refresh
0x009ACA00322UIScrollPanel__render_children_no_clipRenders children without clip-region mode flag check; applies scroll offsets and dirty refresh
0x009ACB501056UIScrollPanel__render_children_clippedRenders children with clipping enabled; builds render command list and submits to renderer
0x009ACF80317UIScrollPanel__render_child_clippedRenders a single child widget with clip rectangle calculation based on scroll position
0x009AD0C060UIScrollPanel__submit_render_quadSubmits render quad for this panel; handles clip-mode by adding scroll offset to position
0x009AD100668UIRenderer__push_textured_quadPushes a textured quad (4 vertices with UV coords and color) onto the render deque for batched drawing
0x009AD3A0248UIScrollPanel__create_scrollbarsCreates horizontal (0x8C) and vertical (0x90) scrollbar child widgets with size relative to panel
0x009AD4A060UIScrollPanel__scroll_vertical_byScrolls vertical scrollbar by delta; positive scrolls down (msg 7,+3), negative scrolls up (msg 7,-3)
0x009AD4E0683UIScrollPanel__recalculate_scrollbar_layoutRecalculates scrollbar visibility and ranges based on child widget content extents vs panel size
0x009AD79042UIScrollPanel__reset_scroll_and_clearResets both scroll positions to 0, clears offset tree and invalidates layout
0x009AD7C0226UIScrollPanel__remove_offset_entries_by_idRemoves offset tree entries matching a widget ID; clears entire tree if no match found
0x009AD8B0138UIScrollPanel__on_resizeHandles panel resize: repositions horizontal and vertical scrollbars to match new dimensions
0x009AD940308UIScrollPanel__handle_scroll_messageHandles scroll messages (7-12): updates scroll position clamped to content range, refreshes scrollbar
0x009ADA9051UIScrollPanel__set_horizontal_scrollbar_visibleSets horizontal scrollbar visibility if changed; optionally triggers panel refresh
0x009ADAD051UIScrollPanel__set_vertical_scrollbar_visibleSets vertical scrollbar visibility if changed; optionally triggers panel refresh
0x009AE4C0103UILinkedList__clear_and_freeClears linked list: frees all 0x10-byte data nodes and the sentinel node itself
0x009B26D0315UIItemGridWnd__on_mouse_move_009b26d0Mouse move handler for item grid window. If y < header height, draws header. Checks dirty flag (0xaa) and refreshes layout. Hit-tests grid slot, updates hover index (field 0x94), triggers repaint if changed. If hovering valid slot with item, shows cursor tooltip with item info via FUN_00cfe2a0.
0x009B2810218UIItemGridWnd__on_left_click_009b2810Left-click handler for item grid window. If y < header, draws footer and calls vtable+0x2c. Otherwise hit-tests grid area, gets item info at slot, calls FUN_009b3eb0 to validate click. On success sets drag flags (0x271=0x101) and refreshes layout.
0x009B28F0232UIItemGridWnd__on_right_click_009b28f0Right-click handler for item grid window. Hit-tests grid, gets item info at slot, shows skill name tooltip positioned with offset. Triggers repaint if hover changed and updates layout if dirty.
0x009B29E0631UIItemGridWnd__on_double_click_009b29e0Double-click handler for item grid window. If clicking empty slot, clears selection and all tab indicators. Toggles expand flag on repeated clicks. Opens skill detail window (0x2e) positioned near click, with skill info (ID, level). Validates against screen bounds for positioning.
0x009B2C60111UIItemGridWnd__on_scroll_009b2c60Scroll handler for item grid window. If a child window (0x2e) is visible, forwards scroll to it. Otherwise scrolls the grid by 1-3 rows (clamped to 3 max) in the direction indicated by param_2 sign. Sends scroll message via vtable+0x94 with msg 7.
0x009B2CD0875UIItemGridWnd__rebuild_skill_list_009b2cd0Rebuilds the skill list entries for item grid window. Clears pending list (0x298), resets all tab indicators to -1. Iterates skill entries matching current tab/page, categorizes skills by ID range (1-54=type0, 142-157=type0, 500-544=type0, 2000-2532=type2, 411-444=type1+). Updates tab indicators and inserts skill entries with current level info into the pending list.
0x009B3040375UIItemGridWnd__update_scroll_state_009b3040Updates scroll bar state for item grid window. Calculates column count and visible rows based on window size. For classic mode uses 6 rows x 7 cols; for new mode calculates dynamically. Updates scrollbar range/position, clamps scroll offset to valid range. Marks dirty flag for repaint.
0x009B3EB0589UIItemGridWnd__try_add_skill_point_009b3eb0Tries to add a skill point to the specified skill ID. Validates remaining skill points (field 0x26c). In classic mode: iterates skill list (0x298), finds skill by ID, checks max level vs current level, validates prerequisites (skill_level >= required). In new mode: finds skill in current tab list, increments level if below max. Shows error message if prereq skill needs higher level. Returns 1 on success, 0 on failure.
0x009B4220358text_word_wrap_to_lines_009b4220Word-wraps text into lines. Iterates through string using character width callback, breaking at spaces or when line exceeds param_3 pixel width. Pushes each line as a string into the output vector (param_2). Also handles newline characters and color code offsets for RO text rendering.
0x009B45D0342text_char_wrap_to_lines_009b45d0Character-level text wrapping to lines. Similar to word wrap but breaks at exact character positions when exceeding param_3 pixel width. Handles newlines. Pushes each wrapped line into the output vector<string>. Uses character advance callback for proper multi-byte character handling.
0x009B47301983text_word_wrap_with_items_009b4730Advanced word-wrap that handles RO special markup: color codes (^XXXXXX), item references (nItemID=XXXX which get resolved to item names), bracket groups ([...]), and carriage returns. Outputs wrapped lines to vector<string>. Also handles color code insertion for wrapped lines when DAT_016d3b08 is set.
0x009B4F70322CCollisionRect__compute_overlap_009b4f70Computes overlap/snap offset between two collision rectangles. Checks horizontal and vertical edge overlap with 10-unit tolerance. Outputs X offset (param_3) and Y offset (param_4) needed to separate the rectangles. Uses multiple edge pair comparisons for both orientations.
0x009B50C062ranges_overlap_009b50c0Checks if two 1D ranges [param_1,param_2] and [param_3,param_4] overlap. Returns 1 if overlapping, 0 if disjoint.
0x009B510062is_color_code_009b5100Checks if string at param_1 starts with a RO color code (^XXXXXX format). Verifies caret followed by 6 hex digit characters using lookup table at DAT_01311f60. Returns 1 if valid color code, 0 otherwise.
0x009B5140184parse_nItemID_tag_009b5140Parses an nItemID=XXXX tag from text. Checks for "nItemID=" prefix, extracts numeric digits, converts to integer via atoi. Sets *param_3 = total tag length consumed, *param_4 = parsed item ID. Returns 1 on success, 0 if not found or no digits.
0x009B520067CCollisionRect__swap_halves_009b5200Swaps the two halves of a collision rect structure. Exchanges the first 12 bytes with bytes 12-23, and swaps corresponding fields in the second half. Used for flipping/mirroring collision bounds.
0x009B525062CCollisionRect__init_from_bounds_009b5250Initializes collision rect from x, y, width, height bounds. Sets all 12 fields: computes x2=x+width, y2=y+height, stores duplicated values across the rect's horizontal and vertical edge arrays.
0x009B52E0129CSkillTooltipWnd__ctor_009b52e0Constructor for skill tooltip window. Calls UIWidget ctor, sets vtable to PTR_FUN_01148564. Calls CItemInfoMgr__clear_tree_and_free_alt, initializes fields 0x7c-0x7e to 0 (line vectors).
0x009B5370136CSkillTooltipWnd__dtor_009b5370Destructor for skill tooltip window. Sets vtable, clears formatted text data, destroys two strings and calls UIFmtStringDialog__dtor base class destructor.
0x009B5400160CSkillTooltipWnd__scalar_deleting_dtor_009b5400Scalar deleting destructor for CSkillTooltipWnd. Clears formatted text, destroys strings, calls base dtor. Conditionally frees memory (size 0x200).
0x009B56E0114CTextLineObj__scalar_deleting_dtor_009b56e0Scalar deleting destructor for CTextLineObj (vtable PTR_FUN_01148640). Destroys two strings, conditionally frees memory (size 0x38).
0x009B6020406sort_median_of_nine_pivotSelects pivot using median-of-3 or median-of-9 strategy for 0x24-byte element arrays
0x009B61C0437sort_insertion_36byte_009b61c0Insertion sort for array of 36-byte (0x24) elements. Sorts by field at offset 8 (int comparison). Uses string copy for the string field at offset 0xc. Used as final pass in introsort for small partitions.
0x009B6380528sort_heapify_36byte_009b6380Heap sort (heapify) for array of 36-byte elements. Builds max-heap bottom-up, sifting each element down. Compares by field at offset 8. Used as fallback when introsort recursion limit is reached.
0x009B65901862sort_partition_36byte_009b6590Quicksort partition for 36-byte elements. Uses median-of-three pivot selection, partitions elements around pivot comparing field at offset 8. Handles equal elements by gathering them around the pivot. Returns partition boundaries via param_1.
0x009B6CE0325sort_sift_down_36byte_009b6ce0Sift-down operation for heap sort on 36-byte elements. Moves element at param_2 down the heap by comparing field at offset 8 with children. Places param_4 element at final position. Standard binary heap sift-down.
0x009B6E30482sort_introsort_36byte_009b6e30Introsort (hybrid quicksort) for 36-byte elements. Falls back to insertion sort for small ranges (<0x4a4 bytes = ~53 elements), heapsort when recursion depth exceeded. Uses partition_36byte for quicksort phase. Recursion depth decreases by 3/4 each level.
0x009B7020113CTextLineObj__copy_construct_009b7020Copy constructor for CTextLineObj (0x38 byte element). Sets vtable to CTextLineObj dtor, copies int field, copy-constructs two strings from source at offsets 8 and 0x20.
0x009B70A0125CRichTextLine__copy_construct_009b70a0Copy constructor for CRichTextLine (0x40 byte element). Sets vtable, copies 3 int fields (offsets 4, 8, 0xc), copy-constructs two strings from offsets 0x10 and 0x28.
0x009B712096CSortEntry__copy_construct_009b7120Copy constructor for CSortEntry (0x24 byte element). Sets vtable (PTR_FUN_01148738), copies 2 int fields (offsets 4, 8), copy-constructs one string from offset 0xc.
0x009B7180222CSortEntry__swap_009b7180Swaps two CSortEntry (0x24 byte) elements. Saves first entry's fields (offsets 4, 8, string at 0xc), copies second into first, restores saved values into second. Standard swap with string move semantics.
0x009B7260184CTextLineObj__move_construct_009b7260Move constructor for a text line pair object (two strings + metadata). Moves both SSO strings from source, zeroing source's string state (length=0, capacity=0xf). Copies 4 header dwords and 4 mid-section dwords.
0x009B7320187UIScrollListWnd__ctor_009b7320Constructor for UIScrollListWnd. Calls UIScrollListBase__ctor, sets vtable to PTR_FUN_01148650. Initializes vector fields (0x35-0x37=0), row height=0x12, reads color from CColorPicker (row 0x12, col 2), sets scroll flag off.
0x009B773093CTextLineObj__dtor_009b7730Destructor for CTextLineObj. Sets vtable, destroys two strings.
0x009B779093CRichTextLine__dtor_009b7790Destructor for CRichTextLine (vtable PTR_FUN_01148648). Destroys two strings.
0x009B77F074CSortEntry__dtor_009b77f0Destructor for CSortEntry (vtable PTR_FUN_01148738). Destroys one string.
0x009B784095UIScrollListWnd__dtor_009b7840Destructor for UIScrollListWnd. Sets vtable to PTR_FUN_01148650, frees int vector, calls UIFormattedWidgetBase__dtor.
0x009B78A0114CRichTextLine__scalar_deleting_dtor_009b78a0Scalar deleting destructor for CRichTextLine. Sets vtable, destroys two strings, conditionally frees 0x40 bytes.
0x009B792099CSortEntry__scalar_deleting_dtor_009b7920Scalar deleting destructor for CSortEntry. Sets vtable, destroys one string, conditionally frees 0x24 bytes.
0x009B7990119UIScrollListWnd__scalar_deleting_dtor_009b7990Scalar deleting destructor for UIScrollListWnd. Sets vtable, frees int vector, calls base dtor. Conditionally frees 0xe0 bytes.
0x009B7A201943UIScrollListWnd__add_rich_text_entry_009b7a20Adds a rich text entry to the scroll list window. Creates CSkillTooltipWnd widget, sets layout and text. Handles different message types: 0x1b6 (comma-delimited list split into lines), 0x1d0 (item link with ID parsed from first field, stored in widget fields 0x3e/0x55/0x56), 0x1f5 (encoded data block parsed via parse_encoded_data_block). Calculates line count, positions widget, adds to child list.
0x009B81C069UIScrollListWnd__clear_all_items_009b81c0Clears all items from scroll list window. Calls UIListBox__clear_items_and_reset, then iterates children in vector at 0x35, removing each via FUN_00a82e50. Resets vector end to begin, triggers repaint.
0x009B8210257base62_decode_string_009b8210Decodes a base-62 encoded string to integer. Uses charset "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" (62 chars). Computes positional value with base 0x3e (62) powers. Returns decoded integer value.
0x009B8320345process_encoded_string_009b8320Processes an encoded string. Creates std::string from C-string, runs through decode_and_format_rich_text (decodes tags and builds rich text lines), copies result, then passes to UIScrollListWnd__add_formatted_text for final display.
0x009B8480140text_find_line_break_offset_009b8480Finds the offset of the next line break point within a text string, accounting for pixel width (param_3). Handles RO color codes (^XXXXXX = 7 chars, short codes = 3 chars) by skipping them in width calculation. Returns character offset from start, or -1 if null input. Uses character advance callback for multi-byte support.
0x009B85101416parse_encoded_data_block_009b8510Parses an encoded data block from a string into an integer array. Copies source string, ensures param_2 vector has 0x104 int entries. Decodes first 5 chars as base-62 into fields [0] and [1]. Iterates remaining chars, using a 14-char lookup table to switch between field indices (types 7=embedded block, 9=sub-array). Regular chars are accumulated as base-62 digits.
0x009B8AA01741decode_and_format_rich_text_009b8aa0Decodes encoded text and builds rich text lines. Calls FUN_009ba1d0 to find tag positions, sorts entries by position. For each entry: extracts substring, looks up color/format from DAT_01457084 table, builds CRichTextLine with formatted text and color info. Returns formatted string if no tags found, or vector of CRichTextLine entries.
0x009B9170872build_text_tag_definitions_009b9170Builds a vector of 3 text tag definition entries (CTextLineObj, 0x38 bytes each). Tags: type 0x1b6 (uses DAT_0133dddc/0133ddc4 open/close strings), type 0x1d0 (uses DAT_0133de3c/0133de24), type 0x1f5 (uses DAT_0133de6c/0133de54). Each entry stores tag type ID and open/close delimiter strings.
0x009B94E01704parse_text_tag_at_position_009b94e0Attempts to parse a text tag at a given position in the string. Searches for open/close delimiters from the tag table. For types 0x1b6 and 0x1d0: extracts content between delimiters into two result strings. For type 0x1f5: parses encoded data block, gets item description, builds result string. Returns move-constructed result with parsed flag and extracted strings.
0x009B9B90208get_item_description_by_id_009b9b90Gets an item's description string by its ID. Calls CItemDesc__get_offset_ptr and CItemInfoMgr__clear_tree_and_free to load item data, then extracts the description text into the output string.
0x009B9C6070remap_value_in_range_table_009b9c60Looks up param_1 in a table of 64-byte entries (vector at param_2). Each entry has min/max bounds at offsets 8/0xc. If param_1 falls within a range, returns the replacement value at offset 8. Otherwise returns param_1 unchanged.
0x009B9CB0448UIScrollListWnd__draw_text_lines_009b9cb0Draws text lines for the scroll list window. Sets background color (field 0xb4 determines pink vs custom RGB). Calculates visible line range from scroll offset (field 0x98) and line spacing (field 0xb8). For each visible line: extracts string data, renders text with either FUN_00a84e30 (normal) or FUN_00a85720 (with shadow/outline), using field 0xbc as the draw mode flag.
0x009B9EA0814UIScrollListWnd__set_text_content_009b9ea0Sets text content for the scroll list window. If param_3==0x8a, uses word-wrap. Otherwise if param_5==0, processes encoded string through decode_and_format_rich_text pipeline (FUN_009b8aa0 + FUN_009bb8e0). Sets field 0x2f flag based on mode, triggers repaint.
0x009BA1D01380find_all_text_tags_009ba1d0Finds all text tag positions in a string. Iterates the tag definition table (DAT_01457084, 0x38 bytes per entry), searches for open/close delimiter pairs using std::_Traits_find. For each match, creates a CSortEntry with tag index, position offset, and extracted content. Returns sorted vector of all found tags. Handles overlapping tags by advancing past each match.
0x009BA740662strip_color_codes_from_text_009ba740Strips RO color codes from text, producing plain text. Walks through input string, skipping 7-char color codes (^XXXXXX) and 3-char short codes. Copies regular characters into output string with dynamic growth. Initializes output capacity to param_3.
0x009BA9E0751decode_encoded_item_data_009ba9e0Decodes encoded item data from an integer array into an item info structure (param_2). Gets item description, checks for "unknown item" string. Extracts: item type from field[1], item ID from field[2], flags, slot count, card/enchant data. Parses custom flags and stack counts from the encoded array. Returns 1 on success, 0 if empty or unknown.
0x009BACD0944parse_encoded_sub_array_009bacd0Parses a sub-array section from encoded data. Iterates characters from param_3 position, accumulates base-62 digits, decodes and pushes values into param_1 vector on encountering delimiter characters (param_5, param_6). Handles SSO string growth during accumulation.
0x009BB0901221parse_encoded_nested_block_009bb090Parses a nested encoded block. Similar to parse_encoded_sub_array but handles nested delimiters. Accumulates base-62 digits, decodes on delimiter, stores values into param_1 array at field indices starting at param_6. Returns count of parsed values.
0x009BB56065UIScrollListWnd__process_message_009bb560Message handler for UIScrollListWnd. Handles: msg 7-0xc (scroll commands - repositions child widgets based on scroll offset), msg 0x12/0x13 (scroll up/down if scrollable), msg 0x1d (set text content), msg 0x62 (child widget click handler). Default delegates to UIGridView__handle_scroll_command.
0x009BB7A0318UIScrollListWnd__hit_test_line_009bb7a0Hit-tests which line is at a given Y pixel position in the scroll list. Iterates through text lines starting from bottom offset, accumulating line heights. When param_3 < accumulated height, returns line index and computes pixel offset within the line. Strips color codes from the line text to measure character widths.
0x009BB8E0685UIScrollListWnd__add_formatted_text_009bb8e0Adds formatted/rich text content to the scroll list. Wraps plain text lines using text_find_line_break_offset (handling color codes), then for each CRichTextLine entry in the rich text vector, adds it as a widget via UIScrollListWnd__add_rich_text_entry. Sends layout update message after completion.
0x009BBB901291CSkillTooltipWnd__init_from_data_009bbb90Initializes a skill tooltip window from encoded data. Handles three types: 0x1b6 (comma-delimited list split into lines), 0x1d0 (item link - parses ID, sets fields 0xf8/0x154/0x158, assigns tooltip text), 0x1f5 (encoded data block - parses and decodes item data). Similar to add_rich_text_entry but operates on the widget directly.
0x009BC0A0922UIScrollListWnd__on_child_click_009bc0a0Handles click on a child widget in the scroll list. For type 0x1b6: extracts comma-delimited fields, parses integers from fields. If field count >= 4, extracts coordinates and handles special case -0xde. Calls FUN_00b99030 or FUN_00b995d0 for navigation. For type 0x1d0/0x1f5: sends message via vtable to window 0xfe.
0x009BC440197UIScrollListWnd__update_child_visibility_009bc440Updates visibility and position of child widgets in the scroll list based on current scroll offset. Iterates children at field 0xd4 vector, shows/hides each based on whether its line index (field 0x34) falls within visible range. Repositions visible children using scroll offset and line spacing.
0x009BC51037destroy_elements_56byte_009bc510Destroy elements 56byte 009bc510
0x009BC54037destroy_elements_64byte_009bc540Destroy elements 64byte 009bc540
0x009BC57037destroy_elements_36byteDestroy elements 36byte
0x009BC5A0172batch_copy_construct_CTextLineObj_009bc5a0Batch copy-constructs CTextLineObj (0x38 byte) elements from [param_1, param_2) range into param_3 destination. Returns pointer past last constructed element.
0x009BC650186batch_copy_construct_CRichTextLine_009bc650Batch copy-constructs CRichTextLine (0x40 byte) elements from [param_1, param_2) range into param_3 destination. Returns pointer past last constructed element.
0x009BC710164batch_copy_construct_CSortEntry_009bc710Batch copy-constructs CSortEntry (0x24 byte) elements from [param_1, param_2) range into param_3 destination. Returns pointer past last constructed element.
0x009BC7C0170batch_copy_construct_CTextLineObj_void_009bc7c0Same as batch_copy_construct_CTextLineObj but returns void. Batch copy-constructs CTextLineObj (0x38 byte) elements from source range to destination.
0x009BC870184batch_copy_construct_CRichTextLine_void_009bc870Same as batch_copy_construct_CRichTextLine but returns void. Batch copy-constructs CRichTextLine (0x40 byte) elements from source range to destination.
0x009BC930162batch_copy_construct_CSortEntry_void_009bc930Same as batch_copy_construct_CSortEntry but returns void. Batch copy-constructs CSortEntry (0x24 byte) elements from source range to destination.
0x009BCA6067aligned_free_56byte_buffer_009bca60Frees aligned buffer for 56-byte (0x38) elements. Computes total size, handles aligned deallocation for large blocks.
0x009BCAB058aligned_free_64byte_buffer_009bcab0Frees aligned buffer for 64-byte (0x40) elements. Computes total size, handles aligned deallocation for large blocks.
0x009BCB3022CSortMedianHelper__copy_construct_009bcb30Copy-constructs a sort median helper (8 bytes). Sets vtable to PTR_FUN_01148740, copies int field at offset 4.
0x009BCB5022CSortMedianHelper__copy_construct_alt_009bcb50Duplicate of CSortMedianHelper__copy_construct. Sets vtable and copies int field.
0x009BCBA068CSortMedianHelper__scalar_deleting_dtor_009bcba0Scalar deleting destructor for sort median helper (8 bytes). Conditionally frees memory.
0x009BD4E014is_non_null_009bd4e0Returns true if *param_1 is non-zero (non-null pointer check).
0x009BDF40373UIListDialog__ctorConstructor for UIListDialog. Inherits from UIDialog (vtable chain). Initializes two linked list nodes at 0x3c (0x18 bytes) and 0x40 (0x2c bytes), STL strings at 0x22 and 0x42, list state fields.
0x009BE0C0214UIStringDialog__ctorConstructor for UIStringDialog. Sets vtable to UIStringDialog, initializes two STL strings at offsets 0x21 and 0x28, max input length field at 0x9e=100, and other dialog state fields.
0x009BE1A0344UITripleStringDialog__ctorConstructor for UITripleStringDialog. Initializes three STL strings at offsets 0x20, 0x26, 0x2c. Sets font size=0xc, default colors=0xffffff, and various dialog state fields to zero.
0x009BE300370UIFmtDialog__ctorConstructor for UIFmtDialog (formatted dialog). Sets vtable, initializes font size=0xc, line spacing=6, colors=0xffffff, padding=3 on all sides, creates linked list node at 0x36 (0x1c bytes) for format entries.
0x009BE480282UIInterfaceDialog__ctorConstructor for UIInterfaceDialog. Sets vtable, initializes boolean flags (fields 0x24-0x29 mostly =1), STL string at 0x2b, and field 0x3b=0. Supports interface-level dialog interactions.
0x009BF140116destroy_map_string_node_and_sentinel_009bf140Destroys a map node containing a string and frees the 0x2c-byte sentinel. Destroys the string if the node exists, then frees the sentinel node.
0x009BFAB068string_dtor_wrapper_009bfab0Simple wrapper that destroys a string. Sets up SEH frame and calls STL_string_dtor.
0x009BFE8071UIBase__dtor_009bfe80Simple UI base destructor: sets vtable to PTR_FUN_0114875c then calls base destructor FUN_00a79e90.
0x009BFED0202UIListDialog__dtor_009bfed0UI list dialog destructor: sets vtable PTR_FUN_01148acc, destroys string, cleans up two linked list structures at offsets 0x40 and 0x3c (clearing nodes and freeing memory), then chains to parent dtor 009bfdb0.
0x009BFFA0142UIStringDialog__dtor_009bffa0UI string dialog destructor: sets vtable PTR_FUN_01148914, destroys 2 STL strings, frees pointer at offset 0x20 via FUN_00af0be0, then chains to base dtor FUN_00a79e90.
0x009C0030138UITripleStringDialog__dtor_009c0030UI dialog destructor: sets vtable PTR_FUN_01148838, destroys 3 STL strings, then chains to base dtor FUN_00a79e90.
0x009C00C0132UIFmtDialog__dtor_009c00c0UI dialog destructor with format data: sets vtable PTR_FUN_01148d68, calls FUN_009ac1e0 cleanup, CFmt__func_0058c230, then chains to base dtor FUN_00a79e90.
0x009C0150195UIMultiResourceDialog__dtor_009c0150UI dialog destructor: sets vtable PTR_FUN_01148ba8, destroys 3 STL strings, frees 3 pointer members (offsets 0x21-0x23) via FUN_00af0be0, chains to base dtor FUN_00a79e90.
0x009C0220175UIInterfaceDialog__dtor_009c0220UI dialog destructor: sets vtable PTR_FUN_01148c84, releases COM interface at offset 0x3b, destroys STL string, frees pointer at offset 0x23, chains to base dtor FUN_00a79e90.
0x009C08C099UIBase__scalar_deleting_dtor_009c08c0Scalar deleting destructor for UIBase: sets vtable PTR_FUN_0114875c, calls base dtor FUN_00a79e90, then frees 0x80-byte object if bit 0 of flags is set.
0x009C093038UIListDialog__scalar_deleting_dtor_009c0930Scalar deleting destructor: calls UIListDialog__dtor_009bfed0, then frees 0x120-byte object if bit 0 of flags param is set.
0x009C0960166UIStringDialog__scalar_deleting_dtor_009c0960Scalar deleting destructor for UIStringDialog: sets vtable PTR_FUN_01148914, destroys 2 strings, frees member at offset 0x20, calls base dtor, then frees 0xb8-byte object if bit 0 of flags is set.
0x009C0A10162UITripleStringDialog__scalar_deleting_dtor_009c0a10Scalar deleting destructor for UITripleStringDialog: sets vtable PTR_FUN_01148838, destroys 3 strings, calls base dtor, then frees 0xfc-byte object if bit 0 is set.
0x009C0AC0156UIFmtDialog__scalar_deleting_dtor_009c0ac0Scalar deleting destructor for UIFmtDialog: sets vtable PTR_FUN_01148d68, cleanup via FUN_009ac1e0 and CFmt, calls base dtor, frees 0xe0-byte object if bit 0 is set.
0x009C0B60219UIMultiResourceDialog__scalar_deleting_dtor_009c0b60Scalar deleting destructor for UIMultiResourceDialog: sets vtable PTR_FUN_01148ba8, destroys 3 strings, frees 3 pointer members, calls base dtor, frees 0xe8-byte object if bit 0 is set.
0x009C0C4038UIInterfaceDialog__scalar_deleting_dtor_009c0c40Scalar deleting destructor: calls UIInterfaceDialog__dtor_009c0220, then frees 0xf0-byte object if bit 0 of flags is set.
0x009C0C70353UIFactory__create_list_dialog_009c0c70UI factory: allocates 0x120-byte object, constructs via FUN_009d9150, sets up position/dimensions from param_1, creates two sub-components via UIComponent__create_from_stream, then finalizes via FUN_00a7a080.
0x009C0DE0353UIFactory__create_dropdown_dialog_009c0de0UI factory: allocates 0x100-byte UIDropDownList, sets up position/dimensions, creates two sub-components, finalizes via FUN_00a7a080.
0x009C0F50353UIFactory__create_list_control_dialogUI factory: allocates 0x118-byte UIListControl via UIListControl__ctor_009d9420, sets up position/dimensions from param_1, creates two sub-components via UIComponent__create_from_stream, then finalizes via FUN_00a7a080.
0x009C10C0353UIFactory__create_control_dialogUI factory: allocates 0xf0-byte UIControl via UIControl__ctor_009d9600, sets up position/dimensions from param_1, creates two sub-components via UIComponent__create_from_stream, then finalizes via FUN_00a7a080.
0x009C1230115UIFactory__alloc_and_construct_text_windowAllocates 0xfc-byte UITextWindow object via operator_new, constructs via UITextWindow__ctor_009d8e30. Returns pointer to new object or NULL on allocation failure.
0x009C2D909838UIComplexDialog__init_child_widgetsComplex UI dialog initialization. Creates and configures child widgets including UIStringDialog, UIMultiResourceDialog, UITripleStringDialog, UIFmtDialog, UIProgressBar, UIScrollbar, UIEditBox, UIListItem, CTextPanel. Decrypts XOR-encrypted resource strings from TLS. ~9.8K bytes.
0x009C8D008482UITextPanelDialog__init_child_widgetsInitializes a text panel dialog. Creates CTextPanel, UITripleStringDialog, UIStringDialog, UIFmtDialog children. Extensively configures text properties (font, bold, shadow, outline, color, truncate, line spacing, alignment, border). ~8.5K bytes.
0x009CAE305956CUICustomShopWindow__init_child_widgetsInitializes a custom shop window UI. Creates UIDialogD, UIListDialog, UIListBox with scrollbar, buttons with encrypted text labels. Sets up button textures, scrollbar thumbs, background textures. Configures list box items and adds child widgets to the parent effect.
0x009CC5806075UIFmtDialog__init_text_panelsInitializes UIFmtDialog text panels. 6K bytes. Sets up CTextPanel objects with fonts, colors, alignment, borders, scrollbars, margins, and line spacing. No callers (registered as callback/vtable).
0x009CFAF07474UIEquipWnd__create_equipment_slotsCreates equipment slot UI elements with encrypted resource paths for each slot; sets text labels
0x009D627020callback_wrapper_009d6270Callback wrapper: dereferences param_1[0] and passes to UIControl__update_text_and_notify_parent_009dc140.
0x009D63F020callback_wrapper_009d63f0Simple 20-byte callback wrapper: dereferences param_1 and passes to UIControl__forward_value_to_parent.
0x009D653020callback_wrapper_009d6530Simple 20-byte callback wrapper: dereferences param_1 and passes to UIListBox__layout_items_from_scroll.
0x009D655020callback_wrapper_009d6550Simple 20-byte callback wrapper: dereferences param_1 and forwards.
0x009D657020callback_wrapper_009d6570Simple 20-byte callback wrapper: dereferences param_1 and forwards.
0x009D659020callback_wrapper_009d6590Simple 20-byte callback wrapper: dereferences param_1 and forwards.
0x009D65B023callback_with_param_009d65b0Callback wrapper with extra param: dereferences param_1, passes it and param_2 to FUN_009dc210.
0x009D65D023callback_with_param_009d65d023-byte callback wrapper with extra parameter.
0x009D65F023callback_with_param_009d65f023-byte callback wrapper with extra parameter.
0x009D699023callback_with_param_009d699023-byte callback wrapper with extra parameter: forwards to null_stub (no-op handler).
0x009D69B023callback_with_param_009d69b023-byte callback wrapper with extra parameter.
0x009D69D023callback_with_param_009d69d023-byte callback wrapper with extra parameter.
0x009D69F023callback_with_param_009d69f023-byte callback wrapper with extra parameter.
0x009D6A1023callback_with_param_009d6a1023-byte callback wrapper with extra parameter.
0x009D8A70153find_first_not_of_charset_009d8a70Finds the first character in buffer[param_3..param_2] that is NOT in the character set defined by param_4 (length param_5). Builds a 256-byte lookup table. Returns index or -1 if not found. Similar to std::string::find_first_not_of.
0x009D8CD0161packet_node__copy_ctor_009d8cd0Copy constructor for a packet node struct (0x38 bytes). Copies scalar fields, then copy-constructs one STL string and one CPacketQueue member. Final field at offset 0xd*4 is also copied.
0x009D8D80168packet_node__copy_ctor_009d8d80Copy constructor for a larger packet node struct (0x54 bytes). Copies scalar fields, then copy-constructs two STL strings and one CPacketQueue member. Final field at offset 0x14*4 is also copied.
0x009D8E30282UITextWindow__ctor_009d8e30Constructor for a UITextWindow class (inherits UIWindowBase). Sets vtable to 0114bc04. Initializes text colors (white=0xffffff, grey=0xcecece), alignment, and display properties. Has fields for text rendering state.
0x009D9420175UIListControl__ctor_009d9420Constructor for a UIListControl. Calls larger base ctor at 009efc30, sets vtable to 0114b4dc. Initializes list state fields, SSO string buffer (capacity 0xf), and a trailing zero field.
0x009D9FF0100node__dtor_fmt_and_string_009d9ff0Destructor for a node containing CFmt + one STL string. Calls CFmt cleanup then destroys the string.
0x009DA06086node__dtor_fmt_and_string_009da060Destructor for a node containing CFmt + one STL string. Calls CFmt cleanup then destroys the string. Similar to 009d9ff0 with different unwind index.
0x009DA0C0112node__dtor_fmt_and_two_strings_009da0c0Destructor for a node containing CFmt + two STL strings. Calls CFmt cleanup then destroys both strings.
0x009DA13071UITextWindow__dtor_009da130Destructor for UITextWindow. Sets vtable back to 0114bc04, then calls CUIWindow__dtor_save_position to clean up the base window.
0x009DA5A095UIListControl__dtor_009da5a0Destructor for UIListControl (vtable 0114b4dc). Destroys embedded string, then calls UIControlBase__dtor_009da310 for full cleanup.
0x009DA76099UITextWindow__scalar_deleting_dtor_009da760Scalar deleting destructor for UITextWindow (0xfc bytes). Sets vtable to 0114bc04, calls base dtor, optionally frees memory.
0x009DA84038CUIWindow__scalar_deleting_dtor_009da840Scalar deleting destructor for a CUIWindow (0xd8 bytes). Calls CUIWindow__dtor_save_position, optionally frees memory.
0x009DAC20119UIListControl__scalar_deleting_dtor_009dac20Scalar deleting destructor for UIListControl (0x118 bytes, vtable 0114b4dc). Destroys string, calls UIControlBase dtor, optionally frees memory.
0x009DC3201017UIItemInfo__populate_from_item_data_009dc320Populates a UI item info panel from item data. Gets item class/level, looks up item description, sets item name and icon text labels. Processes enchant/card slot info via FUN_009dfad0 and FUN_009def40. Clears and repopulates description text panel. Copies action string from param_3.
0x009DC72074UIItemInfo__refresh_description_009dc720Refreshes item description panel. Calls FUN_009dfcb0 to reload item data, clears the text panel, then re-appends all description lines from the item's text array (offset 0x18 to 0x1c in steps of 0x18).
0x009DC770356UIItemInfo__handle_item_type_display_009dc770Handles displaying item info based on item type (param_2+0x14*4). Type 1: normal item with enchant check. Type 3: similar but no enchant. Type 4: uses different display function. All types set description text, action string, and text panel content.
0x009DC9501214UIItemShop__build_item_list_009dc950Builds the item shop display list. Gets shop title via FUN_00b00f00(0xfd5). Iterates items from global DAT_0138cf2c, creates button controls for each item with text labels, item IDs, and sub-item trees. Handles enchantment filtering via std::set and packet processing. Creates nested sub-item buttons for items with children.
0x009DCE10478UIItemShop__display_header_info_009dce10Displays shop header info: formats and shows shop name from global, base/job level requirements using charconv format, and a class name string. Sets four text labels with formatted values.
0x009DCFF0449UIItemShop__populate_search_results_009dcff0Populates a UIListBox with search results from global item tree DAT_0138cf2c. Iterates the tree's in-order traversal, copies two strings per item into list nodes (0x38 bytes). Updates scrollbar after all items are added. Sets shop name text label.
0x009DD1D062UIItemShop__hide_all_scrollbars_009dd1d0Hides all three scrollbars by calling UIScrollbar__disable_and_hide three times with param 1.
0x009DD2101132UIItemShop__process_packet_and_populate_009dd210Processes a packet via CPacketQueue and populates a list box with the results. Iterates received items, copies name string and description vector into 0x2c-byte list nodes. Updates scrollbar after population. Cleans up packet queue nodes when done.
0x009DD68043UIItemShop__hide_two_scrollbars_009dd680Hides two scrollbars by calling UIScrollbar__disable_and_hide twice with param 1.
0x009DD6C096UIItemShop__toggle_panels_009dd6c0Toggles between two panels. Hides first panel's scrollbar and sets flag to 0, then calls its virtual update. Shows second panel's scrollbar and sets flag to 1, calls its virtual update.
0x009DD750267UIItemShop__search_by_category_009dd750Searches items by category. Gets item class/level, then builds a search filter bitmask based on item type (type 4: equipment slots 0-9 mapped to bits, type 5: level threshold). Opens window 0xc with the filter via virtual call +0x94.
0x009DDA501017UIItemShop__query_and_populate_list_009dda50Queries items via CPacketQueue and populates a list box with single-string results. Clears existing list, processes packet with complex handler, iterates results creating 0x40-byte nodes via packet_node copy. Updates scrollbar, hides action buttons when done.
0x009DDE601453UIItemShop__query_and_populate_list_extended_009dde60Extended version of query+populate that handles two-string list items (0x5c-byte nodes). Also inserts unavailable enchantment IDs into a global set (DAT_0138cf40+0x24) for tracking. Calls CPacketSystem__processor on type 1 results. Cleans up packet queue when done.
0x009DE680333UIItemShop__find_and_enable_item_009de680Searches for an item by ID (param_2) in the parent's child list (0xc8-0xcc range). Copies the list to a local vector, then iterates looking for matching item ID at offset +0x110. When found, enables the child's control via virtual +0x38(1).
0x009DE7D01049UIItemInfo__format_item_description_alt_009de7d0Formats and displays item description with regex parsing. Looks up item in tree, splits description text using regex patterns. Displays header as bold, body as normal text. Handles enchant data parsing with find_first_not_of_charset. Falls back to FUN_009e10c0 if entry not found.
0x009DEBF0842UIItemShop__highlight_item_by_id_009debf0Searches for and highlights an item by ID (param_2) in the item shop tree. Iterates parent tab control's children, for type-1 items checks sub-items in child lists. Also searches grandchild vectors via RTDynamicCast. Enables matching controls via virtual +0x38(1).
0x009DFAD0471UIItemInfo__display_enchant_status_009dfad0Displays enchantment/upgrade status in the item info panel. Takes 3 boolean flags. For each flag, sets text color (red 0xc86464 if true=equipped, blue 0x6464c8 if false) and appends a localized string (IDs 0xfc2-0xfc7) to the text panel.
0x009E03501042UIItemInfo__format_item_description_009e0350Formats and displays item description with regex parsing (same pattern as 009de7d0 but uses 'Q' regex pattern instead). Looks up item, splits description into header/body using regex. Header shown in bold, body normal. Handles enchant data via find_first_not_of_charset.
0x009E1250381CMapContainer__ctorConstructor for a map container class. Sets vtable, initializes 3 red-black tree containers (at offsets 0x66, 0x69, 0x6C) with sentinel nodes, then inserts keys 0, 1, 2 into a map.
0x009E16E072conditional_release_resource_009e16e0Conditionally releases a CResource. If pointer at object+4 is non-null, calls CResource__release_ref to decrement refcount and potentially free the resource.
0x009E1730267CMapContainer__dtorCMapContainer destructor. Sets vtable, destroys 3 tree containers (string->sprite maps at offsets 0x66, 0x69, 0x6C) with optional string cleanup, then calls base class destructor.
0x009E1840219CMapContainer__base_dtorBase destructor for CMapContainer. Sets vtable to UIDialog, destroys string at offset, destroys tree container, destroys 3 more strings, then calls UIDialog::dtor.
0x009E1920101smart_ptr_move_assignMove-assigns a smart pointer. Swaps source into dest, releases old dest if non-null. SEH protected.
0x009E1C80291CMapContainer__scalar_deleting_dtorCMapContainer scalar deleting destructor. Destroys 3 tree containers, calls base dtor. If bit 0 of param set, frees the 0x1C0-byte object.
0x009E1DB038CMapContainer__base_scalar_deleting_dtorBase class scalar deleting destructor. Calls base_dtor, then optionally frees the 400-byte object if bit 0 of param is set.
0x009E1DE060CMapContainer__set_mode_and_updateSets mode value at offset 0x65, notifies with code 6, then calls virtual methods at vtable+4 (resize), vtable+0x3C, and vtable+0x40 to update the UI.
0x009E1F90282CMapContainer__render_background_tilesRenders background tiles for CMapContainer. Sets blend color to purple, looks up sprite handles from 3 maps (keys 0,1,2 for left/middle/right), draws left sprite at (0,0), tiles middle sprites, draws right sprite at right edge, then calls virtual render method.
0x009E3300130UICheckbox__dtorUICheckbox destructor. Sets vtable, if checked state (offset 0x15) is active, unregisters from UI manager and clears. Resets vtable to UIBase, calls UIBase dtor.
0x009E3390154UICheckbox__scalar_deleting_dtorUICheckbox scalar deleting destructor. Same cleanup as dtor, then optionally frees the 0x84-byte object if bit 0 of param is set.
0x009E343039UICheckbox__unregister_and_refreshUnregisters checkbox from UI manager if registered (offset 0x15 non-zero). Clears registration, resets state, calls virtual refresh.
0x009E3A60798CListBoxDialog__ctor_009e3a60Constructor for CListBoxDialog. Initializes base UI widget, sets vtable to PTR_FUN_0114c148, creates a child text/scroll component (0x200 bytes with vtable PTR_FUN_0114c054), copies display properties (colors, dimensions, flags) from the source param_2 object.
0x009E3D80461CListBoxItem__ctor_009e3d80Constructor for CListBoxItem (vtable PTR_FUN_0114c054). Initializes as a UI dialog child, sets up embedded STL string, default color (0x808080), flags, timestamps via _Xtime_get_ticks. Copies display properties from source param_2.
0x009E4080141CListBoxDialog__dtor_009e4080Destructor for CListBoxDialog. Sets vtable to PTR_FUN_0114c148, releases child component at offset 0x31 (calls virtual destructor), resets vtable to base PTR_FUN_0114875c, then destroys base class.
0x009E4110110CListBoxItem__dtor_009e4110Destructor for CListBoxItem (vtable PTR_FUN_0114c054). Clears the items vector via clear_and_free, destroys the embedded STL string, then destroys the UIComplexDialog base class.
0x009E418065CListBoxItem__destroy_string_wrapper_009e4180Wrapper that destroys a single STL string with SEH frame setup. Simple cleanup helper.
0x009E41D0165CListBoxDialog__scalar_deleting_dtor_009e41d0Scalar deleting destructor for CListBoxDialog. Destroys child component at offset 0x31, destroys base class, then optionally frees memory (200 bytes) if param_2 bit 0 is set.
0x009E4280134CListBoxItem__scalar_deleting_dtor_009e4280Scalar deleting destructor for CListBoxItem. Sets vtable to PTR_FUN_0114c054, clears the items vector, destroys embedded string, destroys UIComplexDialog base, then optionally frees 0x200 bytes.
0x009E4330152CListBoxItem__update_text_display_009e4330Compares the current text (offset 0x65 string) with the cached text (offset 0x36 string). If different, updates the display: calls virtual method at vtable+0xD4 with the new text, sets color and shadow based on whether cached text is empty or not.
0x009E43D031CListBoxDialog__reset_child_selection_009e43d0Resets the child list box item's selection state. Clears the selected flag (offset 0x190) and selection index (offset 0x18C), then calls the virtual invalidate/repaint method (vtable+0x98) on the child.
0x009E4410463CListBoxDialog__create_child_item_009e4410Creates a new CListBoxItem child widget (0x200 bytes, vtable PTR_FUN_0114c054) and assigns it to offset 0x9C. Initializes all fields including embedded string, colors, timestamp, flags. If param_4 is set, enables flag at offset 0x185. Calls layout/resize methods.
0x009E45E015CListBoxItem__set_scroll_position_wrapper_009e45e0Simple wrapper that calls UITextWidget__set_scroll_position. Forwards scroll position to the underlying text widget.
0x009E45F0108CListBoxItem__draw_cursor_blink_009e45f0Draws the blinking text cursor. Calculates elapsed time since last cursor reset using _Xtime_get_ticks, divides into 500ms intervals. On even intervals (cursor visible), checks if cursor should be shown and draws it using the font at DAT_01133854 with the item's color (offset 0xA8).
0x009E4660766CListBoxItem__render_text_lines_009e4660Renders visible text lines in the list box item. Handles dirty flag reset, text alignment (left=default, right=2, center=6), selection highlighting, scrollbar interaction, word wrapping with link detection, shadow text rendering, and cursor positioning for the active/focused item.
0x009E4970182CListBoxItem__pixel_to_char_index_forward_009e4970Converts a pixel X offset to a character byte index within an STL string, scanning forward from the start. Uses CharNextExA for multi-byte character support and FUN_00a80580 for text width measurement. Returns the closest character boundary to the given pixel position.
0x009E4A30229CListBoxItem__pixel_to_char_index_reverse_009e4a30Converts a pixel X offset to a character byte index within an STL string, scanning backward from the end. Uses CharPrevExA for multi-byte character support. Returns byte offset from string start of the character closest to the given pixel distance from the end.
0x009E4B2011CListBoxItem__get_text_length_wrapper_009e4b20Simple wrapper that calls UIEditableTextWidget__get_text_length and returns the result.
0x009E4B6017CListBoxItem__on_focus_lost_009e4b60Focus lost handler for CListBoxItem. Calls UIEditBox__OnFocusLost then sets dirty flag at offset 0x1C8 to trigger redraw.
0x009E4B8074CListBoxItem__draw_border_009e4b80Draws the border of a CListBoxItem. If border thickness (offset 0x88) is positive, draws an inner border with the border color (offset 0x84) and fills the interior with the background color (offset 0x80). Otherwise just fills with the background color.
0x009E4BF0131CListBoxItem__handle_key_input_009e4bf0Handles keyboard input for the editable list box item. Processes: Backspace(8), Home(0x24), End(0x23), Left(0x25), Right(0x27), Delete(0x2E), Insert(0x2D), and Ctrl+A(0x41) for select-all. Checks for newline (0x0D0A) boundaries when moving left/right/deleting. Resets cursor blink timer on edit operations.
0x009E4F90192CListBoxItem__update_scrollbar_range_009e4f90Recalculates scrollbar range for the list box item. Computes visible line count from widget height and line spacing (offset 0x138), calculates max scroll offset, ensures cursor line is visible, updates scrollbar range/position via CUIScrollBar, and shows/hides scrollbar based on content overflow.
0x009E50502564CListBoxItem__reflow_text_content_009e5050Reflows the text content of a CListBoxItem by splitting the full text into wrapped lines. Handles item link detection, selection state preservation, word wrapping with width measurement, and cursor position recalculation. Clears existing line vector and rebuilds from the source text. Updates selection markers if IME composition is active.
0x009E5A8088CListBoxDialog__resize_child_item_009e5a80Resizes the child CListBoxItem to fit within the dialog. Calls layout method, then sets the child's position and size based on the dialog's inner margins (offsets 0x8C, 0x90, 0x94, 0x98).
0x009E5AE057CListBoxDialog__on_mouse_event_009e5ae0Mouse event handler for CListBoxDialog. If param_3==0 (mouse down) and a callback exists at offset 0xC4, calls the callback's virtual method at vtable+8. Then forwards the event to FUN_00a83660 for default processing.
0x009E5B20447CListBoxItem__on_event_handler_009e5b20Main event handler for CListBoxItem. Handles: mouse events (type 0 with Shift+click for newline insert), scroll events (types 7/9/10), keyboard (WM_KEYDOWN=0x100), character input (WM_CHAR=0x102 with numeric/decimal filtering modes 1/2), cursor up/down (types 0x12/0x13) with multi-byte character navigation and text alignment awareness, and IME events (0x10F).
0x009E609030CListBoxDialog__set_text_alignment_009e6090Sets text alignment mode on the child CListBoxItem. Sets offset 0x6C on child (offset 0x9C), then calls virtual invalidate (vtable+0x98).
0x009E60B024CListBoxItem__set_text_alignment_009e60b0Sets text alignment mode on this CListBoxItem (offset 0x6C), then calls virtual invalidate (vtable+0x98).
0x009E60D024CListBoxDialog__set_background_color_009e60d0Sets the background color (offset 0x20) on this dialog, then calls virtual invalidate (vtable+0x98).
0x009E60F0226CListBoxDialog__set_child_text_and_color_009e60f0Sets the text and color on the child CListBoxItem (offset 0x9C). Compares new text with current cached/display text, updates display if changed. Updates the text color (offset 0x6B) and sets dirty flag for reflow.
0x009E61E0222CListBoxItem__set_text_and_color_009e61e0Sets text and color on this CListBoxItem. Compares new text with current cached/display text, calls virtual method at vtable+0xD4 if text changed, updates color via UITextWidget__set_color_and_shadow. Assigns new text string and color (offset 0x6B), marks dirty for reflow.
0x009E62C058CListBoxDialog__set_scrollbar_visible_009e62c0Sets scrollbar visibility on the child CListBoxItem. Uses RTDynamicCast to get the concrete type, sets flag at offset 0x35, then calls virtual invalidate (vtable+0x98).
0x009E630017CListBoxDialog__set_focus_to_childSets focus to the child CListBoxItem widget (offset 0x9C) by calling CUIWindowMgr__set_focus_window on it.
0x009E632035CListBoxDialog__set_child_text_color_009e6320Sets text color on the child CListBoxItem (offset 0x9C). Updates both the color field (offset 0x188) and the current display color (offset 0xA8), then marks dirty (offset 0x1C8).
0x009E635029CListBoxItem__set_text_color_009e6350Sets text color on this CListBoxItem. Updates color at offset 0x188 and 0xA8, marks dirty at offset 0x1C8.
0x009E637037CListBoxDialog__set_child_shadow_color_009e6370Sets shadow color on the child CListBoxItem (offset 0x9C). Sets shadow color at field 99, enables shadow flag at field 100, then invalidates.
0x009E63A031CListBoxItem__set_shadow_color_009e63a0Sets shadow color on this CListBoxItem. Sets shadow color at field 99, enables shadow flag at field 100, then calls virtual invalidate.
0x009E63C024CListBoxDialog__set_border_color_009e63c0Sets border color (offset 0x21) on the dialog, then calls virtual invalidate (vtable+0x98).
0x009E63E024CListBoxDialog__set_border_thickness_009e63e0Sets border thickness (offset 0x22) on the dialog, then calls virtual invalidate (vtable+0x98).
0x009E640048CListBoxDialog__set_input_filter_mode_009e6400Sets the input filter mode (offset 0x1F8) on the child CListBoxItem. Uses RTDynamicCast to get the concrete type. Mode 0=all chars, 1=numbers only, 2=numbers+decimal.
0x009E643052CListBoxDialog__set_child_border_thickness_009e6430Sets border thickness on the child CListBoxItem (offset 0x88 on child at offset 0x9C). Then refreshes the text display by calling virtual method at vtable+0xD4 with current display text.
0x009E647054CListBoxDialog__set_margins_009e6470Sets the four margin values (left, top, right, bottom at offsets 0x23-0x26) on this dialog. Then calls virtual method at vtable+4 (resize/layout) with the current position.
0x009E64B023CListBoxDialog__set_child_border_color_009e64b0Sets border color (offset 0x84) on the child CListBoxItem (at offset 0x9C on the dialog).
0x009E64D034CListBoxDialog__refresh_child_text_display_009e64d0Refreshes the text display of the child CListBoxItem by calling virtual method at vtable+0xD4 on the child (offset 0x9C). Likely triggers text reflow.
0x009E6500247CListBoxItem__set_text_content_009e6500Sets text content on this CListBoxItem. Copies param_2 string into field at offset 0xD8. If this item has focus, updates the global text buffer and selection. Searches for specific delimiters in the text to configure button widget. Marks dirty for redraw.
0x009E69D0662CUIWindow__dtor_save_position_009e69d0Destructor for a CUIWindow subclass that saves window position/size to a global std::map (DAT_01457098) keyed by window ID (offset 0xB). Saves both position (offsets 7,8) and size (offsets 5,6) into two separate maps (offsets 0xC and 0x14 of the global). Creates the global map if it doesn't exist. Then calls UIWindowBase__dtor.
0x009E6C70125CUIWindow__apply_skin_theme_009e6c70Applies the current skin/theme to this window. If a skin ID (offset 0xD4) is set, recalculates colors from sprites for both fill (offset 0xB8) and border (offset 0xBC). Then propagates the skin change to all child widgets by calling their virtual method at vtable+0xD0.
0x009E6CF0101CUIWindow__draw_background_and_border_009e6cf0Draws the window background and border. If skin-based coloring is enabled (offset 0xB6), draws an inner filled rect with fill color and an outer rect with border color using 1px inset. If bottom border height (offset 0xD0) is set, draws a tiled bottom border.
0x009E6D60109CUIWindow__set_skin_colors_009e6d60Sets skin color parameters for the window. Stores fill sprite (offset 0xC0), border sprite (offset 0xC8), tint colors (offset 0xC4, 0xCC), enables skin flag (offset 0xB6), and calculates actual colors from sprites via CSkinManager__get_color_from_sprite.
0x009E71F0144format_short_as_fixed_notation_009e71f0Formats a short value (param_4) as a fixed-notation number string. Casts *param_4 to int and calls charconv__format_fixed_notation with flags 0x10000000 for the formatting.
0x009E728029init_format_params_from_short_009e7280Initializes a format parameter struct from a short value. Sets param_1[0]=0x10000000 (format flags) and param_1[1]=*param_2 (the short value cast to int).
0x009E72A049CUIButton__set_display_mode_a_009e72a0Sets the display mode (offset 0x80) on a UI button. If mode is 1, sets size to 75x100; otherwise 24x24. Calls FUN_00a7b470 to apply the new size.
0x009E72E054CUIButton__set_display_mode_b_009e72e0Sets the display mode (offset 0x80) on a UI button. If mode is 1, sets size to 75x100; otherwise 38x25. Calls FUN_00a7b470 to apply the new size.
0x009E73207CUIItemSlot__this_adjust_0x90Thiscall adjuster thunk that adds 0x90 to the this pointer, used for multiple inheritance vtable dispatch to CUIItemSlot base class.
0x009E73E0499CUIItemSlot__render_009e73e0Renders a UI item slot. Draws the item sprite (offset 0x1A0) with optional tiling/stretching based on size mode (0x88==100 for exact fit). Draws an optional overlay sprite (offset 0x1A8) if enabled (offset 0x1A4). If quantity (offset 0xA0) is positive and display mode is 0, renders the quantity number as white text in the corner.
0x009E75E037CUIItemSlot__on_click_009e75e0Click handler for item slot. If a callback is registered at offset 0x1D4, calls its virtual method at vtable+8 passing this slot as param. Otherwise falls through to UIControl__forward_mouse_up_009ef680 for default handling.
0x009E7610312CUIItemSlot__draw_tooltip_009e7610Draws an item tooltip when the mouse hovers over this slot. If tooltip is enabled (offset 0x84) and a sprite exists (offset 0x198), converts screen coords, truncates the name if max char limit (offset 0x128) is set, and calls FUN_00ad6510 to render the tooltip text.
0x009E775090CUIItemSlot__on_double_click_009e7750Double-click handler for item slot. If enabled (offset 0x85), parses the item name string (offset 0xBC) as an integer. If positive, looks up the item via FUN_00a978d0 and calls its virtual method at vtable+0x94 with parameters for a use-item action.
0x009E77B0191CUIItemSlot__clear_item_info_009e77b0Clears all item information from this slot. Resets item description fields, clears the display string, releases sprite resources at offsets 0x68 and 0x6A (calling FUN_00af0be0 for cleanup), and invalidates for redraw.
0x009E7870338CUIItemSlot__set_item_by_id_009e7870Sets the item displayed in this slot by item ID. If ID is 0, clears the slot. Otherwise looks up item data via FUN_00ddd7b0; if found, calls FUN_009e79d0 directly. If not found, builds item info from CItemDesc and CItemDB, then calls FUN_009e79d0 with the constructed data.
0x009E79D0779CUIItemSlot__populate_from_item_data_009e79d0Populates the item slot display from item data struct (param_2). Parses item ID from string at offset 0x2C, copies description from CItemDB__build_item_tooltip_string, loads the item's sprite resource, and optionally loads a card/enchant overlay sprite. Calls invalidate after setup.
0x009E7CE0114CUIItemSlot__set_item_scale_009e7ce0Sets the item display scale (offset 0x22 as short). Calculates new width/height from the scale factor divided by a base constant. Uses different aspect ratios depending on display mode (offset 0x20): mode 1 uses a taller aspect ratio, other modes use a square ratio.
0x009E7D60328CUITabControl__ctor_009e7d60Constructor for CUITabControl (vtable PTR_FUN_0114c274). Initializes the base window via FUN_009ec430, creates two internal linked lists (0x18-byte nodes for tabs, 0x2C-byte nodes for tab content), initializes an embedded STL string, and inserts 3 default entries via FUN_009e1990.
0x009E7EB0202CUITabControl__dtor_009e7eb0Destructor for CUITabControl. Sets vtable to PTR_FUN_0114c274, destroys the embedded STL string, frees the 0x2C-byte linked list (tab content), releases a texture resource (offset 0x66), frees the 0x18-byte linked list (tabs), then destroys the base class.
0x009E7F80226CUITabControl__scalar_deleting_dtor_009e7f80Scalar deleting destructor for CUITabControl. Destroys all internal data, then optionally frees the 0x1C0-byte object if param_2 bit 0 is set.
0x009E807076CUITabControl__get_tab_content_by_index_009e8070Looks up tab content by index from the internal map (at offset 400). Uses FUN_009e1200 to search by key, returns the value at offset 0x14 of the found node, or 0 if not found.
0x009E80C0131CUITabControl__render_009e80c0Renders the tab control. Clears background, looks up the sprite for the current tab state. If tab has a custom sprite (offset 0x84) uses it from offset 0x198, otherwise looks up from the internal map by index (offset 0x80). Draws the sprite and calls FUN_009eca30 for tab label rendering.
0x009E8150503CUITabControl__load_textures_from_map_009e8150Loads texture resources for the tab control from a string map. Loads 3 tab state textures (indices 0, 1, 2) from the internal string map via std__map_int_string__subscript and UIControl__load_texture_resource, replacing any previously loaded textures. Also loads a fourth texture from offset 0x1A4 into offset 0x198.
0x009E8350216CUITabControl__set_texture_paths_009e8350Sets texture file paths for the 3 tab states (normal, hover, pressed) plus a base string. Copies strings into the internal map at indices 0, 1, 2, and copies param_5 into the embedded string at offset 0x69. Then calls virtual methods to reload textures (vtable+0xD4) and invalidate (vtable+0x98).
0x009E8430409CUICheckBox__ctor_009e8430Constructor for CUICheckBox (vtable PTR_FUN_0114c358). Chains through UIBase, UIDialog, UIListDialog vtables during initialization. Creates two internal linked lists (0x18-byte and 0x2C-byte nodes), initializes embedded strings, sets initial state flags to 0.
0x009E85D033CUICheckBox__release_child_component_009e85d0Releases the child component at offset 9 (field index). If non-null, calls its virtual destructor at vtable+0x10, passing a flag indicating whether it's a separate allocation. Sets the child pointer to 0.
0x009E860033release_child_at_offset9_009e8600Releases child component at field index 9. Calls virtual destructor if non-null, then nullifies the pointer. Duplicate pattern of CUICheckBox__release_child_component.
0x009E863092release_child_at_offset9_seh_009e8630Releases child component at field index 9 with SEH exception handling frame. Same pattern as release_child_at_offset9 but within a try block.
0x009E869092release_child_at_offset9_seh_009e8690Releases child component at field index 9 with SEH exception handling frame. Same pattern as release_child_at_offset9 but within a try block (variant).
0x009E86F0128CUICheckBox__dtor_009e86f0Destructor for CUICheckBox (vtable PTR_FUN_0114c358). Releases child component at offset 0x53 (with embedded check at offset 0x4A), then calls UIListDialog__dtor for base class cleanup.
0x009E8770188CUIRadioButton__dtor_009e8770Destructor for CUIRadioButton (vtable PTR_FUN_0114c434). Releases child at offset 0x5D (embedded at 0x54), then sets vtable to PTR_FUN_0114c358 and releases child at offset 0x53 (embedded at 0x4A), then calls UIListDialog__dtor.
0x009E8830152CUICheckBox__scalar_deleting_dtor_009e8830Scalar deleting destructor for CUICheckBox. Destroys via dtor, then optionally frees 0x150 bytes if param_2 bit 0 set.
0x009E88D0212CUIRadioButton__scalar_deleting_dtor_009e88d0Scalar deleting destructor for CUIRadioButton. Destroys both child components, calls UIListDialog__dtor, then optionally frees 0x178 bytes.
0x009E89C01758CUIRadioButton__initialize_checkbox_009e89c0Initializes the internal checkbox widget for this radio button. Allocates a 0x178-byte CUICheckBox subclass (vtable PTR_FUN_0114c434), sets it as child at offset 0x80, sizes it to 12x12, sets up click callback, loads 4 XOR-encrypted texture paths (checked/unchecked/hover states) from TLS, decrypts them, and applies as button labels. Sets checked state and adds as child widget.
0x009E90A0123CUIRadioButton__on_selected_009e90a0Selection handler for a radio button. Iterates all sibling controls in the parent container, uses RTDynamicCast to find other CUIRadioButton instances, and sets their checked state (offset 0x48 on child) based on whether they match this radio button. Then calls the registered callback at offset 0xAC if present.
0x009E912062CUIRadioButton__set_checked_state_009e9120Sets the checked state (offset 0x48) on the internal checkbox child (offset 0x80). If param_3 is true and a listener is registered at child offset 0x53, notifies the listener. Invalidates the checkbox for redraw.
0x009E916015CUICheckBox__set_text_labels_wrapper_009e9160Simple wrapper that calls UIButton__set_text_labels_009efb00 to set the checkbox text labels.
0x009E917022CUIRadioButton__init_callback_vtable_009e9170Initializes a callback struct with vtable PTR_FUN_0114c510 and stores the radio button pointer from offset 4 of the source.
0x009E919068CUIRadioButton__callback_scalar_deleting_dtorScalar deleting destructor for the radio button's 8-byte click callback object. Frees the allocation if param_2 is non-zero (indicating it was heap-allocated rather than embedded).
0x009E91E0123CUIRadioButton__on_click_callback_009e91e0Click callback invoked from the internal checkbox. Retrieves the parent radio button from offset 4, then performs the same radio group selection logic: iterates siblings via RTDynamicCast, sets checked state on all radio buttons in the group, and calls the registered callback.
0x009E927022CUIRadioButton__init_callback_vtable_b_009e9270Initializes a callback struct with vtable PTR_FUN_0114c510 and stores reference from offset 4. Duplicate of init_callback_vtable variant.
0x009E9290341swap_polymorphic_child_at_offset9_009e9290Swaps the polymorphic child component at field index 9 between param_1 and param_2. Handles three cases: both external (simple pointer swap), both embedded (clone via vtable+4, destroy originals), or mixed. Uses virtual clone (vtable+4) and destroy (vtable+0x10) for embedded objects.
0x009E9430119CUIDragControl__begin_drag_009e9430Begins a drag operation on a UI control. Converts screen coordinates to client coordinates via FUN_00a7d870, stores as drag start position (offsets 0x9C, 0xA0). Records parent window position (offsets 0xA4, 0xA8) and resets drag delta (offsets 0xAC, 0xB0) to zero.
0x009E94B0143CUIDragControl__begin_drag_focused_009e94b0Begins a drag operation, but only if this control is the currently focused/captured control (checked via get_field_0x19c). First clears tooltip and calls parent virtual method at vtable+0x90, then sets up drag start coordinates same as begin_drag.
0x009E9540367CUIDragControl__on_drag_move_009e9540Handles drag movement. Only processes if this is the captured control. Converts mouse position, calculates grid-snapped delta from the drag start point, clamps to min/max bounds (offsets 0x84-0x90), and calls the drag callback (offset 0xF4) with the change delta if position changed.
0x009E97D0106UIBase__scalar_deleting_dtor_0x94_009e97d0Scalar deleting destructor for a 0x94-byte UIBase-derived object. Sets vtable to UIBase, calls base destructor, then optionally frees 0x94 bytes.
0x009EAB80322CUIProgressBar__render_009eab80Renders a progress bar. Draws background sprite (offset 0x80) or clears to transparent. If a fill sprite (offset 0x84) exists, draws it clipped to the current progress percentage (offset 0xBC out of 100). Supports two fill modes: 0=horizontal fill from left, 1=vertical fill from bottom.
0x009EACD0236CUIProgressBar__load_textures_009eacd0Loads two texture resources for the progress bar: background texture (from offset 0x88 string, stored at 0x80) and fill/progress texture (from offset 0xA0 string, stored at 0x84). Releases previous textures.
0x009EADC095CUIProgressBar__set_texture_paths_009eadc0Sets the background and fill texture path strings (offsets 0x22 and 0x28), then calls virtual reload textures (vtable+0xD4) and invalidate (vtable+0x98).
0x009EAE20151CUIToggleButton__on_click_009eae20Click handler for a toggle button. If not disabled (offset 0x21) and not already checked (offset 0x48), performs radio-button-like selection: iterates siblings via RTDynamicCast, sets checked state on matching toggle buttons, then calls the registered callback at offset 0x5D.
0x009EB0F0173format_three_ints_as_fixed_notation_009eb0f0Formats three int values from param_4, param_5, param_6 as a fixed-notation string with format flags 0x10000000/4/8. Calls charconv__format_fixed_notation with 3 arguments.
0x009EB1A094init_three_format_params_009eb1a0Initializes a format parameter array of 3 entries from param_2/3/4 values. Each entry has a format flag (0x10000000 series) and offset, plus the value from the corresponding param.
0x009EB65030scalar_deleting_dtor_4bytesTrivial scalar deleting destructor for 4-byte object. If bit 0 of param is set, frees the 4-byte allocation.
0x009EB670247UIInfoManager__scalar_deleting_dtorUIInfoManager scalar deleting destructor. Saves UI layout to file (UIInfo.lua), deletes critical section, destroys 3 map containers (0x1C-node and 0x40-node maps), optionally frees 0x34-byte object.
0x009EB770366UIInfoManager__create_dialog_from_templateCreates a UI dialog from a registered template by ID. Looks up template via lower_bound, calls factory function to create dialog, invokes virtual init (vtable+0xB4) and invalidate (vtable+0xD4). Checks bounds against screen, positions, and applies skin theme.
0x009EBF401169UIInfoManager__save_to_fileSaves UIInfo data to savedata/UIInfo.temp file. Serializes TblPos (x,y per control) and TblSize (w,h per control) from map containers. Writes as formatted text via CFileStream. Renames temp to UIInfo.lua on success. Uses critical section for thread safety.
0x009EC930243UILabel__auto_resize_to_textAuto-resizes UILabel based on text content. If multiline mode (0x4F==1), measures text height and resizes vertically, computing Y offset based on alignment (0=top, 6=center, 8=bottom). Otherwise measures width, resizes horizontally with alignment (0=left, 6=center, 2=right).
0x009ECA30660UILabel__render_textRenders UILabel text. Handles single-line and multiline modes. Supports shadow text (state 1 draws at +1,+1 offset), optional outline text. Colors determined by state: normal uses configured color, state 1 uses pressed color. Delegates to multiline renderer if mode flag is set.
0x009ECCD0614UILabel__render_text_multilineRenders UILabel text in multiline mode. Similar to render_text but uses multiline text drawing functions (FUN_00a84590/FUN_00a86320). Handles shadow, outline, state-based colors, and disabled state.
0x009ED010712UILabel__update_text_layoutUpdates UILabel text layout. Handles multiline word-wrap and single-line truncation. Copies processed text into display buffer, compares with original to detect changes, measures text dimensions, computes X/Y offsets based on alignment (left/center/right, top/center/bottom). Calls virtual refresh.
0x009ED2E030UILabel__set_text_offsetSets text rendering offset (x,y) at offsets 0x140/0x144 and triggers layout update.
0x009ED30021UILabel__set_multiline_modeSets multiline mode flag at offset 0x13C and triggers layout update.
0x009ED32021UILabel__set_auto_resizeSets auto-resize flag at offset 0x138 and triggers layout update.
0x009ED34021UILabel__set_boldSets bold/weight flag at offset 0x150 and triggers layout update.
0x009ED3E021UILabel__set_font_sizeSets font size at offset 0x14C and triggers layout update.
0x009ED40035UILabel__set_font_by_nameSets font by name. Looks up font index from CTextVertex, stores at offset 0x148, triggers layout update.
0x009ED43025UILabel__set_outlineSets text outline enabled flag (offset 0x168) and outline color (offset 0x16C).
0x009ED45025UILabel__set_shadowSets text shadow enabled flag (offset 0x160) and shadow color (offset 0x164).
0x009ED47049UILabel__set_text_and_relayoutSets label text from a std::string source (with SSO handling) and triggers full text layout update.
0x009ED7D043UILabel__set_color_from_packed_rgbUnpacks RGB from a 32-bit packed color (0x00BBGGRR format), extracts R/G/B channels, and calls UITextWidget::set_color_and_shadow with white shadow.
0x009ED91084UIImageControl__dtorUIImageControl destructor. Sets vtable chain then delegates to UIImageControlBase::dtor for full cleanup.
0x009ED970258UIImageControlBase__dtorUIImageControlBase destructor. Sets vtable, releases child control at offset 0x47 (calls its virtual release method), destroys 4 strings, releases 3 smart pointers (offsets 0x21-0x23), resets vtable to UIBase, calls CEffect::dtor.
0x009EDA8071UIImageControlBase__dtor_variantUIImageControlBase destructor variant. Sets different vtable then delegates to UIImageControlBase::dtor.
0x009EDAD0112UIImageControl__scalar_deleting_dtorUIImageControl scalar deleting destructor. Sets vtable chain, calls base dtor, optionally frees 0x120-byte object.
0x009EDB4038UIImageControlBase__scalar_deleting_dtorUIImageControlBase scalar deleting destructor. Calls base dtor, optionally frees 0x120-byte object.
0x009EDB7099UIImageControlBase__scalar_deleting_dtor_variantUIImageControlBase scalar deleting destructor variant. Sets vtable, calls base dtor, optionally frees 0x120-byte object.
0x009EE08D287CUIProgressBar__draw_tiled_progress_spritesCUIProgressBar: draw tiled progress sprites
0x009EE9209thunk_to_virtual_method_offset_0x64_009ee920Calls virtual function at offset 0x64 (100 bytes) from object ptr
0x009EEB002589UIFrame__draw_skinned_border_009eeb00Draws a skinned UI frame border. Loads texture name (or uses hardcoded default), then tiles border pieces (left/right/up/down edges plus corners: lu.bmp, ld.bmp, ru.bmp, rd.bmp) in a loop with 14px spacing. Finally fills center area with skin color at specified alpha. Uses CSkinManager__get_color_from_sprite for fill color.
0x009F6D40444UIComboBox__ctor_009f6d40UIComboBox constructor. Calls base UIControl ctor, sets vtable PTR_FUN_0114dffc, initializes selection/items fields, creates map (0x2c byte nodes) at field 0x24, linked list (0x10 byte nodes) at field 0x35. Initializes selected index to -1 (field 0x37).
0x009F6F00447UIComboBox__ctor_large_009f6f00UIComboBox constructor variant with larger node allocation (0x100 bytes vs 0x10). Sets vtable PTR_FUN_0114e184. Otherwise same structure as 009f6d40.
0x009F70C0291UIListView__ctorUIListView constructor. Calls base UIControl ctor, sets vtable PTR_UIListView_0114d630. Creates RB-tree map (0x18 byte nodes) at field 0x22, linked list (0xc byte nodes) at field 0x24. Initializes counter/state fields 0x26-0x2c, default selection index -1.
0x009F72F0133UISlider__ctor_009f72f0UISlider constructor. Simple ctor: calls base UIControl, sets vtable PTR_FUN_0114dcdc, initializes 3 fields (0x20-0x22) to 0.
0x009F7380151UICheckBox__ctor_009f7380UICheckBox constructor. Calls base ctor, sets vtable PTR_UIWindow__scalar_deleting_dtor_0114ce5c. Initializes state (field 0x20=0), and two other fields (0x2b, 0x35) to 0.
0x009F74E0393UIComboBox__dtor_009f74e0UIComboBox destructor. Destroys selection/item callbacks (fields 0x4d, 0x43), frees linked list nodes at field 0x35, destroys map internal storage, frees string at field 0x26, releases 4 texture references (fields 0x20-0x23), calls base dtor.
0x009F7670348UIComboBox__dtor_large_009f7670UIComboBox destructor for large variant. Same cleanup as 009f74e0 but also destroys hash table (CHashTable__dtor) and uses different node destructor (FUN_009f7dd0).
0x009F7EB0181UIListView__dtorUIListView destructor. Sets vtable, destroys forward_list of 0xC-byte nodes at offset 0x24, destroys map, resets vtable to UIBase, calls CEffect::dtor.
0x009F7F70231UIComboBox__dtorUIComboBox destructor. Sets vtable, releases callback at offset 0x75, releases 2 smart pointers (0x6A, 0x68), destroys 3 strings, resets vtable to UIBase, calls CEffect::dtor.
0x009F806084UIPanel__dtorUIPanel destructor. Sets vtable chain, resets to UIBase, calls CEffect::dtor.
0x009F80C084UIFrame__dtorUIFrame destructor. Sets vtable chain, resets to UIBase, calls CEffect::dtor.
0x009F812097UIFrameEx__dtorUIFrameEx destructor. Sets 3-level vtable chain, resets to UIBase, calls CEffect::dtor.
0x009F819071UIListViewEx__dtorUIListViewEx destructor. Sets vtable, delegates to UIListView::dtor.
0x009F823071UIGridView__dtorUIGridView destructor. Sets vtable, delegates to UIListView::dtor.
0x009F828097UIWindowEx__dtorUIWindowEx destructor. Sets 3-level vtable chain (WindowEx->Window->UIBase), calls CEffect::dtor.
0x009F82F097UIWindowExVariantA__dtorUIWindowExVariantA destructor. Sets 3-level vtable chain, calls CEffect::dtor.
0x009F836097UIWindowExVariantB__dtorUIWindowExVariantB destructor. Sets 3-level vtable chain, calls CEffect::dtor.
0x009F83D097UIWindowExVariantC__dtorUIWindowExVariantC destructor. Sets 3-level vtable chain, calls CEffect::dtor.
0x009F84A0185UIWindowWithCallbacks__dtorUIWindow destructor with callback cleanup. Sets vtable, releases 2 std::any callbacks at offsets 0x35 and 0x2B, resets to UIBase, calls CEffect::dtor.
0x009F860097UIFrameWindow__dtorUIFrameWindow destructor. Sets 3-level vtable chain (FrameWindow->Frame->UIBase), calls CEffect::dtor.
0x009F867071UIListViewWindow__dtor_009f8670UIListViewWindow destructor. Sets vtable, delegates to UIListView::dtor.
0x009F86C084UIListViewWindowEx__dtorUIListViewWindowEx destructor. Sets 2-level vtable chain, delegates to UIListView::dtor.
0x009F872084UIListViewWindowExB__dtorUIListViewWindowExB destructor. Sets 2-level vtable chain, delegates to UIListView::dtor.
0x009F89F038UIComboBoxSmall__scalar_deleting_dtorUIComboBoxSmall scalar deleting destructor. Calls dtor, optionally frees 0x138-byte object.
0x009F8A2038UIComboBoxLarge__scalar_deleting_dtorUIComboBoxLarge scalar deleting destructor. Calls large dtor variant, optionally frees 0x138-byte object.
0x009F8AC038UIListView__scalar_deleting_dtor_009f8ac0UIListView scalar deleting destructor. Calls dtor, optionally frees 0xB8-byte object.
0x009F8AF038UIComboBox__scalar_deleting_dtorUIComboBox scalar deleting destructor. Calls dtor, optionally frees 0x1D8-byte object.
0x009F8B20112UIPanel__scalar_deleting_dtor_009f8b20UIPanel scalar deleting destructor. Sets vtable chain, calls CEffect::dtor, optionally frees 0x94-byte object.
0x009F8B90112UIFrame__scalar_deleting_dtorUIFrame scalar deleting destructor. Sets vtable chain, calls CEffect::dtor, optionally frees 0x8C-byte object.
0x009F8C00125UIFrameEx__scalar_deleting_dtorUIFrameEx scalar deleting destructor. Sets 3-level vtable chain, calls CEffect::dtor, optionally frees 0x8C-byte object.
0x009F8C8099UIListViewEx__scalar_deleting_dtorUIListViewEx scalar deleting destructor. Sets vtable, calls UIListView::dtor, optionally frees 0xB8-byte object.
0x009F8D6099UIGridView__scalar_deleting_dtorUIGridView scalar deleting destructor. Sets vtable, calls UIListView::dtor, optionally frees 0xB8-byte object.
0x009F8DD0125UIWindowEx__scalar_deleting_dtorUIWindowEx scalar deleting destructor. Sets 3-level vtable chain, calls CEffect::dtor, optionally frees 0x8C-byte object.
0x009F8E50125UIWindowExVariantA__scalar_deleting_dtorUIWindowExVariantA scalar deleting destructor. Sets 3-level vtable chain, calls CEffect::dtor, optionally frees 0x8C-byte object.
0x009F8ED0125UIWindowExVariantB__scalar_deleting_dtorUIWindowExVariantB scalar deleting destructor. Sets 3-level vtable chain (VariantB->Window->UIBase), calls CEffect::dtor, optionally frees 0x8C-byte object.
0x009F8F50125UIWindowExVariantC__scalar_deleting_dtorUIWindowExVariantC scalar deleting destructor. Sets 3-level vtable chain (VariantC->Window->UIBase), calls CEffect::dtor, optionally frees 0x8C-byte object.
0x009F9040209UIWindowWithCallbacks__scalar_deleting_dtorUIWindowWithCallbacks scalar deleting destructor. Sets vtable, releases 2 std::any callbacks at offsets 0x35 and 0x2B, resets to UIBase, calls CEffect::dtor, optionally frees memory.
0x009F9200125UIFrameWindow__scalar_deleting_dtorUIFrameWindow scalar deleting destructor. Sets 3-level vtable chain (FrameWindow->Frame->UIBase), calls CEffect::dtor, optionally frees 0x8C-byte object.
0x009F928099UIListViewWindow__scalar_deleting_dtor_009f9280UIListViewWindow scalar deleting destructor. Sets vtable, calls UIListView::dtor, optionally frees 0xB8-byte object.
0x009F92F0112UIListViewWindowEx__scalar_deleting_dtorUIListViewWindowEx scalar deleting destructor. Sets 2-level vtable chain (WindowEx->ListViewWindow), calls UIListView::dtor, optionally frees 0xB8-byte object.
0x009F9360112UIListViewWindowExB__scalar_deleting_dtorUIListViewWindowExB scalar deleting destructor. Sets 2-level vtable chain (WindowExB->ListViewWindow), calls UIListView::dtor, optionally frees object memory.
0x009F989085UIList__clear_all_items_009f9890Clears all items from a UIList. Iterates the item pointer array from offset 0xc8 to 0xcc, calling CEffect__remove_child_from_list(item, 1) to destroy each item, then resets the end pointer to start and sets selected index (0xdc) to -1.
0x009F98F085UIList__clear_all_items_009f98f0Clears all items from a UIList. Iterates the item pointer array from offset 0xc8 to 0xcc, calling CEffect__remove_child_from_list(item, 1) to destroy each item, then resets the end pointer to start and sets selected index (0xdc) to -1.
0x009F99B0218UIPanel__factory_create_009f99b0Factory function that allocates a 0x94-byte UIPanel. Calls CEffect base ctor, sets UIBase vtable then UIPanel vtable, initializes flag at 0x1f to 1, zeroes 5 fields (0x20-0x24), sets size to 70x50, sets minimum height to 200 via vtable, finalizes with CEffect__add_child_to_list_end.
0x009F9A9069UIList__get_selected_item_009f9a90Gets the currently selected item from a UIList. Reads selected index from offset 0xdc, validates it against count at 0xd8, traverses the linked list from head (offset 0xd4) by index steps, returns pointer to item data (node+8). Sets result valid flag accordingly.
0x009F9AE069UIList__get_selected_item_009f9ae0Gets the currently selected item from a UIList. Reads selected index from offset 0xdc, validates it against count at 0xd8, traverses the linked list from head (offset 0xd4) by index steps, returns pointer to item data (node+8). Sets result valid flag accordingly.
0x00A01F1065UIList__set_selected_highlight_00a01f10Iterates all items in a UIList (offset 0xc8 to 0xcc), calling vtable method 0xdc on each with a boolean indicating whether the item matches param_2 (the selected item). Used to highlight the selected item and unhighlight others.
0x00A01F6065UIList__set_selected_highlight_00a01f60Iterates all items in a UIList (offset 0xc8 to 0xcc), calling vtable method 0xdc on each with a boolean indicating whether the item matches param_2 (the selected item). Used to highlight the selected item and unhighlight others.
0x00A01FB0259UIList__rebuild_item_views_00a01fb0Rebuilds item views for a UIList. Clears existing child items, calculates needed row count from height/row_height, allocates new view slots, creates child windows via UIWindow__create_child_window for each, then calls UIScrollbar layout functions.
0x00A020C0259UIList__rebuild_item_views_00a020c0Rebuilds item views for a UIList variant. Same logic as 00a01fb0 but uses UIWindow__create_child_window_009f9570 for child creation and a different vector reallocator for array growth.
0x00A026C0115UIList__update_data_and_rebuild_00a026c0Updates list data via FUN_00a82eb0, rebuilds views via FUN_00a01fb0, syncs child window content, recalculates layout with scroll offset (0xd8 * row_height + 0xc0), calls FUN_009f2530 to set scroll position, sets dirty flag at 0xe1.
0x00A02740115UIList__update_data_and_rebuild_00a02740Updates list data via FUN_00a82eb0, rebuilds views via FUN_00a020c0, syncs child window content, recalculates layout with scroll offset, calls FUN_009f2530 to set scroll position, sets dirty flag at 0xe1.
0x00A027C0498UIList__update_visible_items_00a027c0Updates visible items in a scrollable UIList based on scroll position (param_2). Handles item recycling by shifting view indices. For each visible row, binds data from the linked list (offset 0xd4) to the child view, sets selection highlight via vtable 0xd8, positions the view, and shows it. Hides off-screen items. Uses callback at 0x134 to configure each item.
0x00A029C0498UIListView__update_visible_itemsUpdates visible items in a UIListView based on scroll position. Calculates first visible item index from scroll offset / item height. Rotates item pool if needed. For each visible slot, assigns data from linked list, calls selection callback (vtable+0xD8), positions item, and shows. Hides items beyond visible range.
0x00A02BC0218UIList__on_item_clicked_00a02bc0Handles item click in a UIList. If not disabled (0xc4), unhighlights all items except clicked one via vtable 0xd8, highlights the clicked item. Uses __RTDynamicCast to get item index from offset 0x94, updates selected index at 0xdc, and invokes click callback at 0x10c with the selected data from the linked list.
0x00A02CA0218UIList__on_item_clicked_00a02ca0Handles item click in a UIList variant. Same logic as 00a02bc0 - unhighlights others, highlights clicked, dynamic casts to get index, updates selection, invokes callback. Uses different RTTI type (PTR_PTR_01364f74).
0x00A036C023delegate_to_child_fn_00a036c0Delegate: calls EnchantUI__update_enchant_buttons with *param_1 (dereferenced pointer) and param_2.
0x00A036E023delegate_to_child_fn_00a036e0Delegate: calls a child function with *param_1 and param_2.
0x00A0371065UIList__highlight_item_in_parent_00a03710Dereferences param_2 to get target item, then iterates all items in the parent list (this+4) calling vtable 0xdc on each with a match boolean. Used to highlight a specific item across the parent's list.
0x00A0376065UIList__highlight_item_in_parent_00a03760Dereferences param_2 to get target item, iterates parent list items calling vtable 0xdc on each with match boolean.
0x00A037B020delegate_update_visible_items_00a037b0Delegate: calls UIList__update_visible_items_00a027c0 on *param_1 (dereferenced pointer).
0x00A037D020delegate_update_visible_items_00a037d0Delegate: calls UIList__update_visible_items on *param_1.
0x00A037F020delegate_get_child_and_check_flags_00a037f0Delegate: calls UIWindow__get_child_and_check_flags on *param_1 (dereferenced pointer).
0x00A0381020delegate_get_child_and_check_flags_00a03810Delegate: calls UIWindow__get_child_and_check_flags on *param_1 (dereferenced pointer).
0x00A0383020delegate_get_child_and_check_flags_00a03830Delegate: calls UIWindow__get_child_and_check_flags on *param_1 (dereferenced pointer).
0x00A0385020delegate_get_child_and_check_flags_00a03850Delegate: calls UIWindow__get_child_and_check_flags on *param_1 (dereferenced pointer).
0x00A0387020delegate_get_child_and_check_flags_00a03870Delegate: calls UIWindow__get_child_and_check_flags on *param_1 (dereferenced pointer).
0x00A03890216UIListView__on_item_click_handler_aHandles item click in UIListView. Deselects all other items, selects clicked item (vtable+0xD8). If selection changed, uses RTDynamicCast to get item interface, updates selected index, and invokes selection change callback.
0x00A03970216UIListView__on_item_click_handler_bHandles item click in UIListView variant b. Same logic as handler_a but casts to a different type via RTDynamicCast.
0x00A03A5026UIListView__delegate_item_selectionDelegates item selection to the parent list view. Calls virtual method at vtable+0xD8 with item pointer and param.
0x00A03A7023delegate_to_child_fn_00a03a70Delegate: calls EnchantUI__populate_item_slot with *param_1 (dereferenced pointer) and param_2.
0x00A04000341callback_object__swap_00a04000Swaps callback objects between two holders (at field offset 9). Handles both heap-allocated and inline-stored callback objects. Uses vtable clone method to copy inline objects during swap, releases old objects properly.
0x00A04160341callback_object__swap_00a04160Swaps callback objects between two holders (at field offset 9). Same pattern as 00a04000.
0x00A04470300uint64_to_decimal_string_00a04470Converts a 64-bit unsigned integer (param_2:param_3) to a decimal string. Writes digits in reverse into the buffer ending at param_1. Uses division by 10^9 for the high part and repeated /10 for digit extraction. Returns pointer to start of string.
0x00A045A0157uint64_to_std_string_00a045a0Converts a 64-bit unsigned integer to an std::string. Calls uint64_to_decimal_string_00a04470 to format into a stack buffer, then initializes param_1 as an empty std::string and assigns the decimal characters.
0x00A0464099pair_string_dtor_00a04640Destructor for a pair of std::string objects. Calls STL_string_dtor twice to destroy both strings.
0x00A046B099pair_string_dtor_00a046b0Destructor for a pair of std::string objects. Calls STL_string_dtor twice to destroy both strings.
0x00A04B30274UIList__add_item_pair_00a04b30Adds an item (0x10-byte node with 8-byte payload from param_2) to the end of the UIList linked list (offset 0xd4). Increments count (0xd8). If param_3 is set, recalculates layout, updates scrollbar, and sets dirty flag. Returns new item index. Throws std::_Xlength_error if count exceeds 0xfffffff.
0x00A04C50274UIList__add_shop_item_00a04c50Adds a CShopItem (0x100-byte node via copy construct) to the UIList linked list. Increments count, optionally recalculates layout/scrollbar. Returns new item index. Max count 0xffffff.
0x00A051E0160UIList__clear_all_data_and_reset_00a051e0Clears all data from UIList linked list (0xd4). Frees all 0x10-byte nodes, resets head/tail pointers, sets count to 0, selected index to -1, recalculates scrollbar, sets dirty flag.
0x00A0DCA068scalar_deleting_dtor_8bytes_aTrivial scalar deleting destructor for 8-byte object. If param is non-zero, frees the allocation.
0x00A0DCF068scalar_deleting_dtor_8bytes_bTrivial scalar deleting destructor for 8-byte object (variant b).
0x00A0E4D0341delegate_swap_inner_objects_00a0e4d0Swaps the inner object (field[9]) between two delegate holders. Handles three cases: both external (simple pointer swap), one/both internal (clone via vtable+4, then release old via vtable+0x10). Used for move/swap semantics on delegate containers.
0x00A0E630341delegate_swap_inner_objects_00a0e630Swaps the inner object (field[9]) between two delegate holders. Identical logic to 00a0e4d0 - handles external pointer swap and internal clone+release cases. Variant B for a different delegate type.
0x00A0E790341delegate_swap_inner_objects_00a0e790Swaps the inner object (field[9]) between two delegate holders. Identical logic to 00a0e4d0/00a0e630 - handles external pointer swap and internal clone+release cases. Variant C for a third delegate type.
0x00A15F3068scalar_deleting_dtor_8bytes_cTrivial scalar deleting destructor for 8-byte object (variant c).
0x00A15F8068scalar_deleting_dtor_8bytes_dTrivial scalar deleting destructor for 8-byte object (variant d).
0x00A15FD068scalar_deleting_dtor_8bytes_eTrivial scalar deleting destructor for 8-byte object (variant e).
0x00A1602068scalar_deleting_dtor_8bytes_fTrivial scalar deleting destructor for 8-byte object (variant f).
0x00A16540341delegate_swap_inner_objects_00a16540Swaps the inner object (field[9]) between two delegate holders. Same pattern as 00a0e4d0/00a0e630/00a0e790. For UITreeCtrl delegate type.
0x00A166A0341delegate_swap_inner_objects_00a166a0Swaps the inner object (field[9]) between two delegate holders. Variant B for UITreeCtrl delegate type.
0x00A1691021thunk_to_fmt__parse_and_validate_format_specThunk that forwards 3 params to fmt__parse_and_validate_format_spec. Used as a callback in charconv format descriptor arrays.
0x00A169C093snprintf_wrapper_00a169c0Wrapper for formatted string output. Calls STL_lib_func_00507d00 to get buffer (0x18 capacity), then __stdio_common_vsnprintf_s to format text. Returns char count or -1 on error.
0x00A16C50440UITreeItem__ctor_00a16c50Constructor for UITreeItem (size 0x14C). Calls UIWindowBase__ctor, sets vtable PTR_FUN_0114b07c then PTR_FUN_0114fd8c. Initializes colors (text=0xFFFFFF, disabled=0xCECECE), many zero fields, and two STL strings (at offsets 0x11C and 0x134).
0x00A16E10124UITreeItemButton__ctor_00a16e10Constructor for UITreeItemButton (size 0xF8), derived from UIButton. Calls UIButton__ctor, sets vtable to PTR_FUN_0114fca4, zeroes 4 fields at offsets 0xE8-0xF4.
0x00A16E9070tree_node__free_raw_data_00a16e90Frees the raw data buffer (0x108 bytes) at offset 0x4 if non-null. Simple cleanup without destroying contained strings.
0x00A16EE0140tree_node__destroy_strings_and_free_00a16ee0If field at offset 0x4 is non-null, destroys the two STL strings within the 0x108-byte tree node data, then frees the 0x108-byte buffer.
0x00A16FE0110CShopWindow__dtorCShopWindow destructor. Sets vtable, destroys 2 strings, then calls CUIWindow::dtor_save_position.
0x00A1705071CShopTabControl__dtorCShopTabControl destructor. Sets vtable, delegates to UIControlBase::dtor.
0x00A170A0134CShopWindow__scalar_deleting_dtorCShopWindow scalar deleting destructor. Sets vtable, destroys 2 strings, calls base dtor, optionally frees 0x14C-byte object.
0x00A1713099CShopTabControl__scalar_deleting_dtorCShopTabControl scalar deleting destructor. Sets vtable, calls UIControlBase dtor, optionally frees 0xF8-byte object.
0x00A171A0318CShopWindow__add_item_to_listAdds an item to the shop list. Allocates 0x108-byte node, copy-constructs from shop item data, copies price/flag, appends to linked list. If param_3 is true, updates scrollbar max/visible range and triggers dirty flag.
0x00A172E058CShopWindow__on_buy_button_clickBuy button click handler. Sends packet 0x35 to server (buy request), hides the buy confirmation dialog.
0x00A17320242CShopWindow__on_sell_button_clickSell button click handler. If item has description, formats and sends sell packet 0x44 with item name. Sends packet 0x36 to server, hides sell confirmation dialog.
0x00A17420268CShopWindow__on_quantity_confirmQuantity confirmation handler. Validates input is numeric, clamps to [0, max_stock]. Sends packet 0x33 with (base_index + quantity), then packet 0x34. Hides quantity dialog. Shows error dialog box if input is non-numeric.
0x00A17540123CShopWindow__clear_item_listClears all items from the shop list. Destroys all linked list nodes, resets head/tail to sentinel, zeroes count and selection. Updates scrollbar (max, visible, value) and sets dirty flag.
0x00A175C0171CShopWindow__on_item_double_clickHandles double-click on shop item. If shop is locked, sends packet 0x12. If item type is 1 with flag 1, sends packet 0x26 (direct buy). Otherwise opens inventory window (type 0xF) and triggers item details (0xD, 5).
0x00A19D30138CItemOptionWnd__ctor_00a19d30Constructor for CItemOptionWnd. Calls parent ctor FUN_009bdf40, sets vtable to 0x0114C434, initializes flags at +0x120 and +0x14C, and an object pointer at +0x174.
0x00A1AE8071UIInterfaceDialogEx__dtorUIInterfaceDialogEx destructor. Sets vtable, delegates to UIInterfaceDialog::dtor.
0x00A1B7B099UIInterfaceDialog__scalar_deleting_dtor_00a1b7b0Scalar deleting destructor for UIInterfaceDialog variant (vtable 0x0114FE88). Calls UIInterfaceDialog dtor then conditionally frees 0xF0-byte object.
0x00A1BF50115UITextArea__create_00a1bf50Factory function that allocates a 0x100-byte UITextArea object and calls its constructor.
0x00A345E063OptionSlot__advance_next_00a345e0Advances to the next option in the slot. If the scrollbar at +0xB0 is not at max, calls vtable+0x8C on it. Otherwise calls vtable+0x8C on the parent at +0x10.
0x00A3462063OptionSlot__advance_next_00a34620Advances to the next option in the slot variant. Same pattern as 00a345e0.
0x00A3466063OptionSlot__advance_next_00a34660Advances to the next option in the slot variant. Same pattern as 00a345e0.
0x00A346A063OptionSlot__advance_next_00a346a0Advances to the next option in the slot variant. Same pattern as 00a345e0.
0x00A346E063OptionSlot__advance_next_00a346e0Advances to the next option in the slot variant. Same pattern as 00a345e0.
0x00A36C3083CDialogBox__on_ok_buttonOK button handler for dialog box. Hides modal window, invokes OK callback (offset 0xEC) with stored value (0x80), then invokes general callback (0xC4).
0x00A36C9083CDialogBox__on_cancel_buttonCancel button handler for dialog box. Same structure as OK handler: hides modal, invokes cancel callback (0xEC) with stored value, then general callback (0xC4).
0x00A36CF0218UIListView__on_item_click_handler_cUIListView item click handler variant c. Same selection logic as handler_a/b but uses different RTDynamicCast target type.
0x00A3773022OptionSlot__copy_ctor_00a37730Copy constructor for an OptionSlot callback object. Sets vtable to 0x01150878 and copies the parent pointer from source (+0x4).
0x00A3775022OptionSlot__copy_ctor_00a37750Copy constructor for an OptionSlot callback variant. Sets vtable and copies parent pointer.
0x00A3777022OptionSlot__copy_ctor_00a37770Copy constructor for an OptionSlot callback variant.
0x00A3779022OptionSlot__copy_ctor_00a37790Copy constructor for an OptionSlot callback variant.
0x00A377B022OptionSlot__copy_ctor_00a377b0Copy constructor for an OptionSlot callback variant.
0x00A377D022OptionSlot__copy_ctor_00a377d0Copy constructor for an OptionSlot callback variant.
0x00A377F022OptionSlot__copy_ctor_00a377f0Copy constructor for an OptionSlot callback variant.
0x00A3781022OptionSlot__copy_ctor_00a37810Copy constructor for an OptionSlot callback variant.
0x00A3783022OptionSlot__copy_ctor_00a37830Copy constructor for an OptionSlot callback variant.
0x00A3785022OptionSlot__copy_ctor_00a37850Copy constructor for an OptionSlot callback variant.
0x00A3787022OptionSlot__copy_ctor_00a37870Copy constructor for an OptionSlot callback variant. Sets vtable and copies parent pointer.
0x00A3789022OptionSlot__copy_ctor_00a37890Copy constructor for an OptionSlot callback variant. Sets vtable and copies parent pointer.
0x00A378B022OptionSlot__copy_ctor_00a378b0Copy constructor for an OptionSlot callback variant. Sets vtable and copies parent pointer.
0x00A378D022OptionSlot__copy_ctor_00a378d0Copy constructor for an OptionSlot callback variant. Sets vtable and copies parent pointer.
0x00A378F022OptionSlot__copy_ctor_00a378f0Copy constructor for an OptionSlot callback variant. Sets vtable and copies parent pointer.
0x00A3791022OptionSlot__copy_ctor_00a37910Copy constructor for an OptionSlot callback variant. Sets vtable and copies parent pointer.
0x00A3793022OptionSlot__copy_ctor_00a37930Copy constructor for an OptionSlot callback variant. Sets vtable and copies parent pointer.
0x00A3795022OptionSlot__copy_ctor_00a37950Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A3797022OptionSlot__copy_ctor_00a37970Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A3799022OptionSlot__copy_ctor_00a37990Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A379B022OptionSlot__copy_ctor_00a379b0Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A379D022OptionSlot__copy_ctor_00a379d0Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A379F022OptionSlot__copy_ctor_00a379f0Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37A1022OptionSlot__copy_ctor_00a37a10Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37A3022OptionSlot__copy_ctor_00a37a30Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37A5022OptionSlot__copy_ctor_00a37a50Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37A7022OptionSlot__copy_ctor_00a37a70Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37A9022OptionSlot__copy_ctor_00a37a90Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37AB022OptionSlot__copy_ctor_00a37ab0Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37AD022OptionSlot__copy_ctor_00a37ad0Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37AF022OptionSlot__copy_ctor_00a37af0Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37B1022OptionSlot__copy_ctor_00a37b10Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37B3022OptionSlot__copy_ctor_00a37b30Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37B5022OptionSlot__copy_ctor_00a37b50Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37B7022OptionSlot__copy_ctor_00a37b70Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37B9022OptionSlot__copy_ctor_00a37b90Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot.
0x00A37BB022OptionSlot__copy_ctor_00a37bb0Signal slot copy constructor for options UI. Sets vtable pointer and copies context/owner pointer from source slot. Part of boost::signals2-style delegate framework used by game settings UI.
0x00A37BD022OptionSlot__copy_ctor_00a37bd0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37BF022OptionSlot__copy_ctor_00a37bf0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37C1022OptionSlot__copy_ctor_00a37c10Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37C3022OptionSlot__copy_ctor_00a37c30Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37C5022OptionSlot__copy_ctor_00a37c50Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37C7022OptionSlot__copy_ctor_00a37c70Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37C9022OptionSlot__copy_ctor_00a37c90Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37CB022OptionSlot__copy_ctor_00a37cb0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37CD022OptionSlot__copy_ctor_00a37cd0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37CF022OptionSlot__copy_ctor_00a37cf0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37D1022OptionSlot__copy_ctor_00a37d10Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37D3022OptionSlot__copy_ctor_00a37d30Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37D5022OptionSlot__copy_ctor_00a37d50Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37D7022OptionSlot__copy_ctor_00a37d70Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37D9022OptionSlot__copy_ctor_00a37d90Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37DB022OptionSlot__copy_ctor_00a37db0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37DD022OptionSlot__copy_ctor_00a37dd0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37DF022OptionSlot__copy_ctor_00a37df0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37E1022OptionSlot__copy_ctor_00a37e10Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37E3022OptionSlot__copy_ctor_00a37e30Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37E5022OptionSlot__copy_ctor_00a37e50Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37E7022OptionSlot__copy_ctor_00a37e70Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37E9022OptionSlot__copy_ctor_00a37e90Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37EB022OptionSlot__copy_ctor_00a37eb0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37ED022OptionSlot__copy_ctor_00a37ed0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37EF022OptionSlot__copy_ctor_00a37ef0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37F1022OptionSlot__copy_ctor_00a37f10Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37F3022OptionSlot__copy_ctor_00a37f30Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37F5022OptionSlot__copy_ctor_00a37f50Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37F7022OptionSlot__copy_ctor_00a37f70Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37F9022OptionSlot__copy_ctor_00a37f90Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37FB022OptionSlot__copy_ctor_00a37fb0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37FD022OptionSlot__copy_ctor_00a37fd0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A37FF068OptionSlot__scalar_deleting_dtor_00a37ff0Scalar deleting destructor for signal slot object. SEH frame, conditionally frees 8 bytes via operator_delete if param_2 flag is set.
0x00A3804068OptionSlot__scalar_deleting_dtor_00a38040Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3809068OptionSlot__scalar_deleting_dtor_00a38090Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A380E068OptionSlot__scalar_deleting_dtor_00a380e0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3813068OptionSlot__scalar_deleting_dtor_00a38130Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3818068OptionSlot__scalar_deleting_dtor_00a38180Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A381D068OptionSlot__scalar_deleting_dtor_00a381d0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3822068OptionSlot__scalar_deleting_dtor_00a38220Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3827068OptionSlot__scalar_deleting_dtor_00a38270Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A382C068OptionSlot__scalar_deleting_dtor_00a382c0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3831068OptionSlot__scalar_deleting_dtor_00a38310Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3836068OptionSlot__scalar_deleting_dtor_00a38360Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A383B068OptionSlot__scalar_deleting_dtor_00a383b0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3840068OptionSlot__scalar_deleting_dtor_00a38400Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3845068OptionSlot__scalar_deleting_dtor_00a38450Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A384A068OptionSlot__scalar_deleting_dtor_00a384a0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A384F068OptionSlot__scalar_deleting_dtor_00a384f0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3854068OptionSlot__scalar_deleting_dtor_00a38540Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3859068OptionSlot__scalar_deleting_dtor_00a38590Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A385E068OptionSlot__scalar_deleting_dtor_00a385e0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3863068OptionSlot__scalar_deleting_dtor_00a38630Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3868068OptionSlot__scalar_deleting_dtor_00a38680Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A386D068OptionSlot__scalar_deleting_dtor_00a386d0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3872068OptionSlot__scalar_deleting_dtor_00a38720Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3877068OptionSlot__scalar_deleting_dtor_00a38770Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A387C068OptionSlot__scalar_deleting_dtor_00a387c0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3881068OptionSlot__scalar_deleting_dtor_00a38810Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3886068OptionSlot__scalar_deleting_dtor_00a38860Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A388B068OptionSlot__scalar_deleting_dtor_00a388b0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3890068OptionSlot__scalar_deleting_dtor_00a38900Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3895068OptionSlot__scalar_deleting_dtor_00a38950Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A389A068OptionSlot__scalar_deleting_dtor_00a389a0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A389F068OptionSlot__scalar_deleting_dtor_00a389f0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38A4068OptionSlot__scalar_deleting_dtor_00a38a40Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38A9068OptionSlot__scalar_deleting_dtor_00a38a90Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38AE068OptionSlot__scalar_deleting_dtor_00a38ae0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38B3068OptionSlot__scalar_deleting_dtor_00a38b30Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38B8068OptionSlot__scalar_deleting_dtor_00a38b80Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38BD068OptionSlot__scalar_deleting_dtor_00a38bd0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38C2068OptionSlot__scalar_deleting_dtor_00a38c20Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38C7068OptionSlot__scalar_deleting_dtor_00a38c70Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38CC068OptionSlot__scalar_deleting_dtor_00a38cc0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38D1068OptionSlot__scalar_deleting_dtor_00a38d10Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38D6068OptionSlot__scalar_deleting_dtor_00a38d60Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38DB068OptionSlot__scalar_deleting_dtor_00a38db0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38E0068OptionSlot__scalar_deleting_dtor_00a38e00Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38E5068OptionSlot__scalar_deleting_dtor_00a38e50Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38EA068OptionSlot__scalar_deleting_dtor_00a38ea0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38EF068OptionSlot__scalar_deleting_dtor_00a38ef0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38F4068OptionSlot__scalar_deleting_dtor_00a38f40Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38F9068OptionSlot__scalar_deleting_dtor_00a38f90Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A38FE068OptionSlot__scalar_deleting_dtor_00a38fe0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3903068OptionSlot__scalar_deleting_dtor_00a39030Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3908068OptionSlot__scalar_deleting_dtor_00a39080Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A390D068OptionSlot__scalar_deleting_dtor_00a390d0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3912068OptionSlot__scalar_deleting_dtor_00a39120Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3917068OptionSlot__scalar_deleting_dtor_00a39170Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A391C068OptionSlot__scalar_deleting_dtor_00a391c0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3921068OptionSlot__scalar_deleting_dtor_00a39210Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3926068OptionSlot__scalar_deleting_dtor_00a39260Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A392B068OptionSlot__scalar_deleting_dtor_00a392b0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3930068OptionSlot__scalar_deleting_dtor_00a39300Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3935068OptionSlot__scalar_deleting_dtor_00a39350Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A393A068OptionSlot__scalar_deleting_dtor_00a393a0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A393F068OptionSlot__scalar_deleting_dtor_00a393f0Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3944068OptionSlot__scalar_deleting_dtor_00a39440Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A3949068scalar_deleting_dtor_8bytes_gTrivial scalar deleting destructor for 8-byte object (variant g).
0x00A394E068scalar_deleting_dtor_8bytes_hTrivial scalar deleting destructor for 8-byte object (variant h).
0x00A3953068scalar_deleting_dtor_8bytes_iTrivial scalar deleting destructor for 8-byte object (variant i).
0x00A3958068OptionSlot__scalar_deleting_dtor_00a39580Scalar deleting destructor for signal slot. SEH + conditional operator_delete(8 bytes).
0x00A395D020OptionSlot__invoke_apply_setting_00a395d0Signal slot invocation wrapper. Forwards *param_1 to apply_setting function. Part of options UI delegate system.
0x00A395F020OptionSlot__invoke_apply_setting_00a395f0Signal slot invocation wrapper. Forwards *param_1 to apply_setting function with RTDynamicCast.
0x00A3961020OptionSlot__invoke_apply_setting_00a39610Signal slot invocation wrapper. Forwards *param_1 to apply_setting function.
0x00A3963020OptionSlot__invoke_set_priority_00a39630Signal slot invocation wrapper. Forwards *param_1 to set process priority via SetPriorityClass.
0x00A3965020OptionSlot__invoke_on_priority_radio_changedSignal slot invocation wrapper. Forwards *param_1 to SettingsUI__on_priority_radio_changed.
0x00A3967020OptionSlot__invoke_apply_setting_00a39670Signal slot invocation wrapper. Forwards *param_1 to apply_setting function.
0x00A396B021OptionSlot__invoke_toggle_option_00a396b0Signal slot void invocation. Calls toggle_option which reads GameSettings state and toggles enabled flag.
0x00A396D023OptionSlot__invoke_on_small_list_item_selectedSignal slot invocation. Forwards *param_1 and param_2 to SettingsUI__on_small_list_item_selected handler.
0x00A396F020OptionSlot__invoke_update_display_00a396f0Signal slot invocation wrapper. Forwards *param_1 to update_display function that refreshes UI rendering.
0x00A3971023OptionSlot__invoke_render_item_textSignal slot invocation. Forwards *param_1 and param_2 to UIListBox__render_item_text_at_offset0xc.
0x00A3974020OptionSlot__invoke_set_priority_00a39740Signal slot invocation wrapper. Forwards *param_1 to set process priority via SetPriorityClass.
0x00A3976065OptionSlot__invoke_set_selected_all_00a39760Signal slot invocation. Iterates all items in collection (offset 0xC8-0xCC), calls virtual method +0xDC (set_selected) on each based on match with param_2.
0x00A397B065OptionSlot__invoke_set_selected_all_00a397b0Signal slot invocation. Iterates collection items calling virtual set_selected based on match.
0x00A3980065OptionSlot__invoke_set_selected_all_00a39800Signal slot invocation. Iterates collection items calling virtual set_selected based on match.
0x00A3985065OptionSlot__invoke_set_selected_all_00a39850Signal slot invocation. Iterates collection items calling virtual set_selected based on match.
0x00A398A065OptionSlot__invoke_set_selected_all_00a398a0Signal slot invocation. Iterates collection items calling virtual set_selected based on match.
0x00A398F081OptionSlot__invoke_show_window_clamped_00a398f0Signal slot invocation. Checks modal lock via CGameObject__hide_modal_window, computes clamped index range (0 to count-1), and calls CUIWindowMgr__add_or_show_window to display a window.
0x00A3995081OptionSlot__invoke_show_window_clamped_00a39950Signal slot invocation. Checks modal lock via CGameObject__hide_modal_window, computes clamped index range (0 to count-1), and calls CUIWindowMgr__add_or_show_window to display a window.
0x00A399B081OptionSlot__invoke_show_window_clamped_00a399b0Signal slot invocation. Checks modal lock via CGameObject__hide_modal_window, computes clamped index range (0 to count-1), and calls CUIWindowMgr__add_or_show_window to display a window.
0x00A39A1081OptionSlot__invoke_show_window_clamped_00a39a10Signal slot invocation. Checks modal lock via CGameObject__hide_modal_window, computes clamped index range (0 to count-1), and calls CUIWindowMgr__add_or_show_window to display a window.
0x00A39A7020OptionSlot__invoke_layout_visible_itemsSignal slot invocation wrapper. Forwards *param_1 to CListCtrl__layout_visible_items.
0x00A39A9020OptionSlot__invoke_layout_visible_items_00a39a90Signal slot invocation wrapper. Forwards *param_1 to CListCtrl__layout_visible_items.
0x00A39AB020OptionSlot__invoke_layout_visible_items_00a39ab0Signal slot invocation wrapper. Forwards *param_1 to CListCtrl__layout_visible_items.
0x00A39AD020OptionSlot__invoke_layout_visible_items_00a39ad0Signal slot invocation wrapper. Forwards *param_1 to CListCtrl__layout_visible_items.
0x00A39AF020OptionSlot__invoke_layout_visible_items_00a39af0Signal slot invocation wrapper. Forwards *param_1 to CListCtrl__layout_visible_items.
0x00A39B1023OptionSlot__invoke_on_value_changed_00a39b10Signal slot invocation. Forwards *param_1 and param_2 to on_value_changed handler (null_stub target).
0x00A39B3021OptionSlot__invoke_toggle_option_00a39b30Signal slot void invocation. Calls toggle_option function.
0x00A39B5081OptionSlot__invoke_show_window_clampedSignal slot invocation. Checks modal lock via CGameObject__hide_modal_window, computes clamped index range (0 to count-1), and calls CUIWindowMgr__add_or_show_window to display a window.
0x00A39BB081OptionSlot__invoke_show_window_clamped_00a39bb0Signal slot invocation. Checks modal lock, computes clamped index range (0 to count-1), and calls CUIWindowMgr__add_or_show_window to display a window.
0x00A39C1081OptionSlot__invoke_show_window_clamped_00a39c10Signal slot invocation. Checks modal lock, computes clamped index range (0 to count-1), and calls CUIWindowMgr__add_or_show_window to display a window.
0x00A39C7081OptionSlot__invoke_show_window_clamped_00a39c70Signal slot invocation. Checks modal lock, computes clamped index range (0 to count-1), and calls CUIWindowMgr__add_or_show_window to display a window.
0x00A39CE020OptionSlot__invoke_apply_setting_00a39ce0Signal slot invocation wrapper. Forwards *param_1 to apply_setting via thunk.
0x00A39D2021OptionSlot__invoke_toggle_option_00a39d20Signal slot void invocation. Calls toggle_option function.
0x00A39D50216OptionSlot__invoke_tab_select_00a39d50Signal slot invocation. Exclusive tab selection: deselects all items except param_2, uses RTDynamicCast to validate item type, then updates linked list selection index and notifies observer.
0x00A39E30216OptionSlot__invoke_tab_select_00a39e30Signal slot invocation. Exclusive tab selection with RTDynamicCast, linked list update, and observer notification.
0x00A39F10216OptionSlot__invoke_tab_select_00a39f10Signal slot invocation. Exclusive tab selection with RTDynamicCast, linked list update, and observer notification.
0x00A39FF0216OptionSlot__invoke_tab_select_00a39ff0Signal slot invocation. Exclusive tab selection with RTDynamicCast, linked list update, and observer notification.
0x00A3A0D0216OptionSlot__invoke_tab_select_00a3a0d0Signal slot invocation. Exclusive tab selection with RTDynamicCast, linked list update, and observer notification.
0x00A3A1B085OptionSlot__invoke_dual_dispatch_00a3a1b0Signal slot invocation. Dispatches to two signal handlers: first via offset 0xEC (secondary handler), then 0xC4 (primary handler). Both use virtual call at +8.
0x00A3A21085OptionSlot__invoke_dual_dispatch_00a3a210Signal slot dual dispatch. Calls both secondary (0xEC) and primary (0xC4) handlers.
0x00A3A27085OptionSlot__invoke_dual_dispatch_00a3a270Signal slot dual dispatch. Calls both secondary (0xEC) and primary (0xC4) handlers.
0x00A3A2D085OptionSlot__invoke_dual_dispatch_00a3a2d0Signal slot dual dispatch. Calls both secondary (0xEC) and primary (0xC4) handlers.
0x00A3A33023OptionSlot__invoke_create_option_00a3a330Signal slot invocation. Forwards *param_1 and param_2 to create_option which reads GameSettings and creates option UI elements.
0x00A3A37020OptionSlot__invoke_apply_setting_00a3a370Signal slot invocation wrapper. Forwards *param_1 to apply_setting function.
0x00A3A39020OptionSlot__invoke_apply_setting_00a3a390Signal slot invocation wrapper. Forwards *param_1 to apply_setting with RTDynamicCast.
0x00A3A3B020OptionSlot__invoke_apply_setting_00a3a3b0Signal slot invocation wrapper. Forwards *param_1 to apply_setting function.
0x00A3A3D020OptionSlot__invoke_set_priority_00a3a3d0Signal slot invocation wrapper. Forwards *param_1 to set process priority via SetPriorityClass.
0x00A3A3F020OptionSlot__invoke_priority_radio_changeSignal slot invocation wrapper. Forwards *param_1 to SettingsUI::on_priority_radio_changed for priority radio button state changes.
0x00A3A41020OptionSlot__invoke_apply_setting_00a3a410Signal slot invocation wrapper. Forwards *param_1 to apply_setting function.
0x00A3A48020OptionSlot__invoke_apply_setting_00a3a480Signal slot invocation wrapper. Forwards *param_1 to apply_setting via thunk.
0x00A3A4C023OptionSlot__invoke_set_value_00a3a4c0Signal slot invocation. Forwards *param_1 and param_2 to set_value function.
0x00A3A4E023OptionSlot__invoke_set_value_00a3a4e0Signal slot invocation. Forwards *param_1 and param_2 to set_value function.
0x00A3A50023OptionSlot__invoke_set_skin_index_00a3a500Signal slot invocation. Forwards *param_1 and param_2 to set skin index via CSkinSelector.
0x00A3A52023OptionSlot__invoke_render_item_text_00a3a520Signal slot invocation. Forwards *param_1 and param_2 to UIListBox__render_item_text_at_offset8 for rendering list item text.
0x00A3A54023OptionSlot__invoke_render_item_text_00a3a540Signal slot invocation. Forwards *param_1 and param_2 to UIListBox__render_item_text_at_offset4 for rendering list item text.
0x00A3A56023OptionSlot__invoke_render_item_stringSignal slot invocation. Forwards *param_1 and param_2 to UIListBox__render_item_string_only for rendering list item strings.
0x00A3AA0022OptionSlot__copy_ctor_00a3aa00Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AA2022OptionSlot__copy_ctor_00a3aa20Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AA4022OptionSlot__copy_ctor_00a3aa40Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AA6022OptionSlot__copy_ctor_00a3aa60Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AA8022OptionSlot__copy_ctor_00a3aa80Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AAA022OptionSlot__copy_ctor_00a3aaa0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AAC022OptionSlot__copy_ctor_00a3aac0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AAE022OptionSlot__copy_ctor_00a3aae0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AB0022OptionSlot__copy_ctor_00a3ab00Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AB2022OptionSlot__copy_ctor_00a3ab20Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AB4022OptionSlot__copy_ctor_00a3ab40Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AB6022OptionSlot__copy_ctor_00a3ab60Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AB8022OptionSlot__copy_ctor_00a3ab80Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3ABA022OptionSlot__copy_ctor_00a3aba0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3ABC022OptionSlot__copy_ctor_00a3abc0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3ABE022OptionSlot__copy_ctor_00a3abe0Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AC0022OptionSlot__copy_ctor_00a3ac00Signal slot copy constructor for options UI. Sets vtable and copies context pointer.
0x00A3AC2022OptionSlot__copy_ctor_00a3ac20OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AC4022OptionSlot__copy_ctor_00a3ac40OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AC6022OptionSlot__copy_ctor_00a3ac60OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AC8022OptionSlot__copy_ctor_00a3ac80OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3ACA022OptionSlot__copy_ctor_00a3aca0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3ACC022OptionSlot__copy_ctor_00a3acc0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3ACE022OptionSlot__copy_ctor_00a3ace0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AD0022OptionSlot__copy_ctor_00a3ad00OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AD2022OptionSlot__copy_ctor_00a3ad20OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AD4022OptionSlot__copy_ctor_00a3ad40OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AD6022OptionSlot__copy_ctor_00a3ad60OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AD8022OptionSlot__copy_ctor_00a3ad80OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3ADA022OptionSlot__copy_ctor_00a3ada0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3ADC022OptionSlot__copy_ctor_00a3adc0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3ADE022OptionSlot__copy_ctor_00a3ade0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AE0022OptionSlot__copy_ctor_00a3ae00OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AE2022OptionSlot__copy_ctor_00a3ae20OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AE4022OptionSlot__copy_ctor_00a3ae40OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AE6022OptionSlot__copy_ctor_00a3ae60OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AE8022OptionSlot__copy_ctor_00a3ae80OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AEA022OptionSlot__copy_ctor_00a3aea0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AEC022OptionSlot__copy_ctor_00a3aec0Vtable copy constructor: sets vtable ptr to PTR_FUN_01150840 and copies member at offset+4 from source. Used by std::function or similar polymorphic wrapper.
0x00A3AEE022OptionSlot__copy_ctor_00a3aee0Vtable copy constructor: sets vtable ptr to PTR_FUN_01150b6c and copies member at offset+4 from source.
0x00A3AF0022OptionSlot__copy_ctor_00a3af00Vtable copy constructor: sets vtable ptr to PTR_FUN_01150e7c and copies member at offset+4 from source.
0x00A3AF2022OptionSlot__copy_ctor_00a3af20Vtable copy constructor: sets vtable ptr to PTR_FUN_01150eb4 and copies member at offset+4 from source.
0x00A3AF4022OptionSlot__copy_ctor_00a3af40Vtable copy constructor: sets vtable ptr to PTR_FUN_01150e44 and copies member at offset+4 from source.
0x00A3AF6022OptionSlot__copy_ctor_00a3af60OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AF8022OptionSlot__copy_ctor_00a3af80OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AFA022OptionSlot__copy_ctor_00a3afa0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AFC022OptionSlot__copy_ctor_00a3afc0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3AFE022OptionSlot__copy_ctor_00a3afe0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B00022OptionSlot__copy_ctor_00a3b000OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B02022OptionSlot__copy_ctor_00a3b020OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B04022OptionSlot__copy_ctor_00a3b040OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B06022OptionSlot__copy_ctor_00a3b060OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B08022OptionSlot__copy_ctor_00a3b080OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B0A022OptionSlot__copy_ctor_00a3b0a0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B0C022OptionSlot__copy_ctor_00a3b0c0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B0E022OptionSlot__copy_ctor_00a3b0e0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B10022OptionSlot__copy_ctor_00a3b100OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B12022OptionSlot__copy_ctor_00a3b120OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B14022OptionSlot__copy_ctor_00a3b140OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B16022OptionSlot__copy_ctor_00a3b160OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B18022OptionSlot__copy_ctor_00a3b180OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B1A022OptionSlot__copy_ctor_00a3b1a0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B1C022OptionSlot__copy_ctor_00a3b1c0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B1E022OptionSlot__copy_ctor_00a3b1e0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B20022OptionSlot__copy_ctor_00a3b200OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B22022OptionSlot__copy_ctor_00a3b220OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B24022OptionSlot__copy_ctor_00a3b240OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B26022OptionSlot__copy_ctor_00a3b260OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B28022OptionSlot__copy_ctor_00a3b280OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3B2A022OptionSlot__copy_ctor_00a3b2a0OptionSlot vtable copy constructor: sets vtable pointer and copies member at offset+4 from source object.
0x00A3C4A0296UITextArea__ctor_00a3c4a0Constructor for a UITextArea widget derived from UIWindowBase. Sets vtable to PTR_FUN_01152f64. Initializes default text color to 0xFFFFFF (white), background color to 0xCECECE (light gray), alignment=3, line spacing=1, and zeroes out scroll/selection members at offsets 0x36-0x3f.
0x00A3C5D0176UIContainer__ctor_00a3c5d0Constructor for a UI container widget derived from UIBase. Calls UIBase ctor, sets vtable to PTR_FUN_01152e80, sets visible flag=1, zeroes 6 data members at offsets 0x20-0x25.
0x00A3C680166UIPanel__ctor_00a3c680Constructor for a UI panel widget derived from UIBase. Sets vtable to PTR_FUN_011524b4, sets visible flag=1, zeroes 5 data members at offsets 0x20-0x24.
0x00A3C730166UIScrollPanel__ctor_00a3c730Constructor for a UI scroll panel widget derived from UIBase. Sets vtable to PTR_FUN_01152cb8, sets visible flag=1, zeroes 5 data members at offsets 0x20-0x24.
0x00A3C910156UISprite__ctor_00a3c910Constructor for UISprite derived from UIBase. Sets vtable to PTR_FUN_01152928. Initializes members: offset 0x20=0, 0x21=0, 0x22=-1, 0x23=-1 (sentinel values for sprite ID and frame).
0x00A3C9B0166UIImage__ctor_00a3c9b0Constructor for UIImage derived from UIBase. Sets vtable to PTR_FUN_01152760. Zeroes 5 members at offsets 0x20-0x24 (image handle, UV coords, etc).
0x00A3CB20166UICheckBox__ctor_00a3cb20Constructor for UICheckBox derived from UIBase. Sets vtable to PTR_FUN_01152598. Zeroes 5 members at offsets 0x20-0x24 (checked state, sprites, etc).
0x00A3CBD0136UILabel__ctor_00a3cbd0Constructor for UILabel derived from UIBase. Sets vtable to PTR_FUN_011522ec. Zeroes 2 members at offsets 0x20-0x21 (text ptr, color).
0x00A3CC60206UISlider__ctor_00a3cc60Constructor for UISlider derived from UIBase. Sets vtable to PTR_FUN_011523d0. Zeroes 9 members at offsets 0x20-0x28 (min, max, current value, orientation, etc).
0x00A3CDC0136UIRadioButton__ctor_00a3cdc0Constructor for UIRadioButton derived from UIBase. Sets vtable to PTR_FUN_01152bd4. Zeroes 2 members at offsets 0x20-0x21 (selected state, group ID).
0x00A3CF00113UIFrame__ctor_00a3cf00Constructor for UIFrame derived from UIBase. Sets vtable to PTR_FUN_011521fc. Zeroes 1 member at offset 0x20.
0x00A3CF80134UITimedButton__ctor_00a3cf80Constructor for UITimedButton derived from UIButton. Calls UIButton__ctor_009efc30. Sets vtable to PTR_FUN_01152114. Initializes 5 members: offsets 0x3a-0x3d=0, 0x3e=300 (default delay in ms).
0x00A3D0A0152UIListData__ctor_00a3d0a0Constructor for a UI list data structure. Zeroes header fields, initializes two embedded STL strings (at offsets +2 and +0x14, with SSO buffer size 0xF), and zeroes a 0x30-byte data block via memset.
0x00A3D14080wrapper__string_dtor_00a3d140SEH wrapper that destroys a single STL string object. Sets up exception handling frame then calls STL_string_dtor.
0x00A3D2D0130destroy_and_free_node_0x70_00a3d2d0Destroys a 0x70-byte node: if pointer at offset+4 is non-null, destroys two embedded STL strings then frees the 0x70-byte allocation.
0x00A3D360116destroy_and_free_node_0x2c_00a3d360Destroys a 0x2c-byte node: if pointer at offset+4 is non-null, destroys one embedded STL string then frees the 0x2c-byte allocation.
0x00A3D3E0116destroy_and_free_node_0x24_00a3d3e0Destroys a 0x24-byte node: if pointer at offset+4 is non-null, destroys one embedded STL string then frees the 0x24-byte allocation.
0x00A3D6C095UITextArea__dtor_00a3d6c0Destructor for UITextArea (vtable PTR_FUN_01152f64). Deallocates vector data via std__vector__dealloc, then calls CUIWindow dtor to save position.
0x00A3D72084UIContainer__dtor_00a3d720Destructor for UIContainer (vtable PTR_FUN_01152e80). Resets vtable to UIBase, calls UIBase dtor (FUN_00a79e90).
0x00A3D78078UIBase__dtor_intermediate_00a3d780Intermediate destructor for UIBase hierarchy. Resets vtable to UIBase, calls UIBase dtor.
0x00A3D7D084UIPanel__dtor_00a3d7d0Destructor for UIPanel (vtable PTR_FUN_011524b4). Resets vtable to UIBase, calls UIBase dtor.
0x00A3D83084UIScrollPanel__dtor_00a3d830Destructor for UIScrollPanel (vtable PTR_FUN_01152cb8). Resets vtable to UIBase, calls UIBase dtor.
0x00A3D97084UISprite__dtor_00a3d970Destructor for UISprite (vtable PTR_FUN_01152928). Resets vtable to UIBase, calls UIBase dtor.
0x00A3D9D084UIImage__dtor_00a3d9d0Destructor for UIImage (vtable PTR_FUN_01152760). Resets vtable to UIBase, calls UIBase dtor.
0x00A3DA9084UICheckBox__dtor_00a3da90Destructor for UICheckBox (vtable PTR_FUN_01152598). Resets vtable to UIBase, calls UIBase dtor.
0x00A3DAF084UILabel__dtor_00a3daf0Destructor for UILabel (vtable PTR_FUN_011522ec). Resets vtable to UIBase, calls UIBase dtor.
0x00A3DB5084UISlider__dtor_00a3db50Destructor for UISlider (vtable PTR_FUN_011523d0). Resets vtable to UIBase, calls UIBase dtor.
0x00A3DC1084UIRadioButton__dtor_00a3dc10Destructor for UIRadioButton (vtable PTR_FUN_01152bd4). Resets vtable to UIBase, calls UIBase dtor.
0x00A3DCD084UIFrame__dtor_00a3dcd0Destructor for UIFrame (vtable PTR_FUN_011521fc). Resets vtable to UIBase, calls UIBase dtor.
0x00A3DD3071UITimedButton__dtor_00a3dd30Destructor for UITimedButton (vtable PTR_FUN_01152114). Calls UIControlBase dtor.
0x00A3DD8078UIBase__dtor_base_00a3dd80Base destructor that resets vtable to UIBase and calls UIBase dtor (FUN_00a79e90). Used for the most basic UIBase-derived class teardown.
0x00A3DF20119UITextArea__scalar_deleting_dtor_00a3df20Scalar deleting destructor for UITextArea. Deallocates vector data, calls CUIWindow dtor, then conditionally frees the 0x100-byte allocation.
0x00A3DFA0112UISlider__scalar_deleting_dtorUISlider scalar deleting destructor. Sets vtable chain, calls CEffect::dtor, optionally frees 0x98-byte object.
0x00A3E010106UILabel__scalar_deleting_dtorUILabel scalar deleting destructor. Sets vtable to UIBase, calls CEffect::dtor, optionally frees 0x80-byte object.
0x00A3E080112UICheckBox__scalar_deleting_dtorUICheckBox scalar deleting destructor. Sets vtable chain, calls CEffect::dtor, optionally frees 0x94-byte object.
0x00A3E260112UISprite__scalar_deleting_dtor_00a3e260Scalar deleting destructor for UISprite. Calls UIBase dtor, then conditionally frees 0x90-byte allocation.
0x00A3E2D0112UIImage__scalar_deleting_dtor_00a3e2d0Scalar deleting destructor for UIImage. Calls UIBase dtor, then conditionally frees 0x94-byte allocation.
0x00A3E3B0112UICheckBox__scalar_deleting_dtor_00a3e3b0Scalar deleting destructor for UICheckBox. Calls UIBase dtor, then conditionally frees 0x94-byte allocation.
0x00A3E420112UILabel__scalar_deleting_dtor_00a3e420Scalar deleting destructor for UILabel. Calls UIBase dtor, then conditionally frees 0x88-byte allocation.
0x00A3E490112UISlider__scalar_deleting_dtor_00a3e490Scalar deleting destructor for UISlider. Calls UIBase dtor, then conditionally frees 0xA4-byte allocation.
0x00A3E570112UIRadioButton__scalar_deleting_dtor_00a3e570Scalar deleting destructor for UIRadioButton. Calls UIBase dtor, then conditionally frees 0x88-byte allocation.
0x00A3E650112UIFrame__scalar_deleting_dtor_00a3e650Scalar deleting destructor for UIFrame. Calls UIBase dtor, then conditionally frees 0x84-byte allocation.
0x00A3E6C099UITimedButton__scalar_deleting_dtor_00a3e6c0Scalar deleting destructor for UITimedButton. Calls UIControlBase dtor, then conditionally frees 0x100-byte allocation.
0x00A3E730106UIBase__scalar_deleting_dtor_00a3e730Scalar deleting destructor for a basic UIBase-derived class. Calls UIBase dtor, then conditionally frees 0x80-byte allocation.
0x00A3F62032set_process_priority_classSets the process priority class. Stores the value in global DAT_0173a5c4, then calls SetPriorityClass on the current process handle.
0x00A47D1034copy_range_to_bufferCopies a range of memory [param_1, param_2) to destination param_3 using memcpy. Returns pointer to end of written data (param_3 + bytes copied). Used as a helper for vector/buffer operations.
0x00A4E4D01772UIItemList__populate_from_item_db_00a4e4d0Populates the item list from the item database. Stores item ID at +0x10C. Clears existing list data. Creates CItemDB singleton if needed. Looks up item by ID, iterates item tree nodes. For each item entry: copies strings, computes price using pow() with enchant level, creates list node with sort key. Calls refresh_scroll_range after population.
0x00A4EBD01747string_highlight_and_replace_00a4ebd0Searches for param_2 within param_1 string and highlights/replaces matches. Converts strings to wchar, does substring search. For each match found, calls FUN_00a4f2b0 to apply highlight formatting for prefix, match, and suffix segments. Converts result back to multibyte. Returns number of matches found.
0x00A4FD60115UITextBoxB__create_00a4fd60Factory function that allocates 0xF4 bytes for UITextBoxB, constructs via UITextBoxB__ctor. Returns pointer or 0 on failure.
0x00A54D00133UITextBoxA__ctor_00a54d00Constructor for UITextBoxA. Calls base class ctor FUN_00a79a90, sets vtable to PTR_FUN_01153e60, then initializes fields 0x20-0x22 to zero. Object size 0x8c.
0x00A54D90262UITextBoxB__ctor_00a54d90Constructor for UITextBoxB (window-based text box). Calls UIWindowBase__ctor, sets vtable to PTR_FUN_011541dc. Initializes text color to 0xffffff, highlight color to 0xcecece, line spacing=3, flags, and child UI fields 0x36-0x3c to zero. Object size 0xf4.
0x00A54EA0124UITextBoxC__ctor_00a54ea0Constructor for UITextBoxC. Calls base ctor FUN_009efc30, sets vtable to PTR_FUN_01153f3c, initializes fields 0x3a-0x3d to zero. Object size 0xf8.
0x00A54F20193UITextBoxD__ctor_00a54f20Constructor for UITextBoxD. Calls base ctor FUN_00a79a90, sets vtable to PTR_FUN_01154024, initializes fields 0x20-0x28 to zero. Object size 0xa4.
0x00A54FF0163UITextBoxE__ctor_00a54ff0Constructor for UITextBoxE. Calls base ctor FUN_00a79a90, sets vtable to PTR_FUN_01154100, initializes fields 0x20-0x25 to zero. Object size 0x98.
0x00A5514084UITextBoxA__dtor_00a55140Destructor for UITextBoxA. Sets vtable chain PTR_FUN_01153e60 then PTR_FUN_0114875c, calls base dtor FUN_00a79e90.
0x00A551A071UITextBoxB__dtor_00a551a0Destructor for UITextBoxB. Sets vtable to PTR_FUN_011541dc, calls base window dtor FUN_009e69d0.
0x00A551F071UITextBoxC__dtor_00a551f0Destructor for UITextBoxC. Sets vtable to PTR_FUN_01153f3c, calls base dtor FUN_009da310.
0x00A5524084UITextBoxD__dtor_00a55240Destructor for UITextBoxD. Sets vtable chain PTR_FUN_01154024 then PTR_FUN_0114875c, calls base dtor FUN_00a79e90.

Part 4 of Game Core: functions 4,924 to 6,480, 0x00A552A0 to 0x00C8BDF0