Back to legacygamers.net
WARPGATE

UI Windows

Game-specific UI windows: quest, skill, inventory, guild, settings, enchant, report, ranking, navigator, tooltip, web browser, movie player

Functions 1,055Code 472 KBAddresses 0x005C27A0 to 0x00E48C00Group UI
1,055 functions
AddressSizeNameDescription
0x005C27A028CNavigatorWnd__is_data_nullReturns true if the dereferenced pointer value is zero (null data check)
0x005C2A80121CNavigatorWnd__destroy_string_linked_listDestroys a linked list of 0x20-byte nodes, each containing a string. Iterates and frees each node, then frees the sentinel
0x005C2B005CNavigatorWnd__vector_clear_and_free_aClears and frees a vector's backing array. Handles aligned allocation cleanup. Zeros out base/size/capacity pointers
0x005C2B105CNavigatorWnd__vector_clear_and_free_bClears and frees a vector's backing array. Identical pattern to vector_clear_and_free_a, used for a different member vector
0x005C2B20129CNavigatorWnd__vector_clear_and_free_cClears and frees a vector's backing array with SEH protection. Same pattern as the other vector_clear_and_free functions
0x005C2BB087CNavigatorWnd__destroy_two_stringsDestroys two STL strings in sequence with SEH protection
0x005C2C10122CNavigatorWnd__reset_selection_stateResets selection state: sets fields to -1/0, clears the embedded string, destroys string buffer via STL_string_dtor
0x005C3270195CNavigatorWnd__hit_test_grid_cellHit-tests x,y coordinates against an 8-cell grid (2 rows x 4 columns). Returns 1-8 for the cell index, or -1 if outside all cells. Row thresholds: 0x19-0x37 and 0x3F-0x5B. Column thresholds: 0x0B, 0x2F, 0x53, 0x77 (each 0x1F wide)
0x005C334022CNavigatorWnd__clear_list_and_reset_countClears the list box items and resets the item count (copies field 0xD4 to 0xD8)
0x005C3360110CNavigatorWnd__clear_string_vector_entriesClears a vector of 0x18-byte string entries: first zeros out each string's length and null-terminates, then destructs all strings and resets the vector end pointer
0x005C33E0196CNavigatorWnd__draw_minimap_previewDraws a minimap preview at the given position. Uses global minimap data (DAT_016fc590) to get dimensions, calls CEffect__fill_rect for background, then draws scaled minimap texture via virtual sprite render function
0x005C4370163CNavigatorWnd__draw_player_position_markerDraws the player position marker on the minimap. Gets player cell position, converts to screen coords via CNavigator__map_to_screen_with_resource_lookup, loads arrow sprite, draws at offset (-9, -17) from screen position. Returns 1 if drawn, 0 if position unavailable
0x005C442096CNavigatorWnd__init_triple_field_zero_aInitializes a 3-DWORD structure to all zeros with SEH frame setup
0x005C448096CNavigatorWnd__init_triple_field_zero_bInitializes a 3-DWORD structure to all zeros with SEH frame setup (second instance, for a different member)
0x005C4520133CNavigatorWnd__get_name_stringCopies the null-terminated string at object offset 0x68 into the output STL string parameter. Initializes SSO buffer, then assigns via STL_string_assign_buffer
0x005C45D014CNavigatorWnd__has_child_at_offset_0x30Returns true if the sub-object at this->0xD4 has a non-zero value at offset 0x30 (checks if a child control has data/content)
0x005C45E043CNavigatorWnd__grid_index_to_pixel_xConverts a 1-8 grid cell index to a pixel X offset. Indices 1-4 map to columns 0-3, indices 5-8 wrap to columns 0-3 offset by -4. Formula: (adjusted_index * 0x24) - 0x1A. Returns 0 for out-of-range
0x005C461024CNavigatorWnd__grid_index_to_row_heightReturns the row height for a grid cell: 0x18 (24px) for indices < 5 (top row), 0x3C (60px) for indices >= 5 (bottom row)
0x005C4690404CNavigatorWnd__layout_expanded_controlsPositions all child controls for the expanded navigator layout. Arranges buttons, labels, list boxes, scrollbars at fixed pixel coordinates. Some controls moved offscreen (-1000,-1000) when hidden
0x005C4830684CNavigatorWnd__update_layoutMain layout update for CNavigatorWnd. In compact mode (DAT_016fc55c==1): resizes to 0x86x0x3D, hides most controls. In expanded mode: resizes to 0x110x0x152, delegates to layout_expanded_controls or layout_compact_controls based on DAT_016fc564. Updates all labels (map name, destination, tooltip, waypoint, arrival)
0x005C4AE0392CNavigatorWnd__layout_compact_controlsPositions all child controls for the compact navigator layout with additional widgets visible. Similar to layout_expanded but with extra controls (0x3A-0x40) positioned at specific coordinates instead of offscreen
0x005C4C80229CNavigatorWnd__create_scrollbar_childrenCreates two scrollbar child controls: a vertical sprite scrollbar (0xB4 bytes) and a horizontal sprite scrollbar (0xB4 bytes), each initialized with UIScrollbar__init_with_orientation and added as children
0x005C4D70296CNavigatorWnd__create_scroll_list_panelCreates the scroll list panel: adds a close button (msg 0xBE5), creates a CNavigatorScrollList (0xE0 bytes) with white background (0xFF,0xFF,0xFF), sets width to 0x150, positions at (2,0x14), and adds as child. Then calls process_func_005c8f70 to populate
0x005C4EA03730CNavigatorWnd__create_child_controlsCreates all child controls for CNavigatorWnd: dialog buttons (close, action, navigation), scroll lists (white and blue-tinted), checkboxes, radio buttons, text input, render widget/dropdown, labels. Initializes ~20 child widgets stored at offsets 0xB4-0x100. Sets textures, sizes, colors, and localized text from CMessageStringTable. Calls update_layout at the end
0x005C5D40259CNavigatorWnd__create_item_slot_widgetCreates an item slot widget child: adds close button (msg 0xBE5), creates a 0xB8-byte UIItemSlotWidget, sets its texture, sizes it to its texture dimensions, positions based on DAT_016fc64c grid index, makes it visible, adds as child
0x005C5E50539CNavigatorWnd__populate_list_from_treePopulates the navigator list from a tree data source. Iterates through DAT_0138d284 entries, for each: gets tree value, looks up item info (class/level), gets field text, creates a CDialogWnd button (0xD0 bytes) with formatted text (msg 0xD01), positions in rows (0x1A spacing), stores item ID at offset 0xB0, appends to item vector at offset 0xD4
0x005C60703CNavigatorWnd__noop_aEmpty virtual method stub (no-op). Likely a placeholder for an unimplemented event handler
0x005C60803CNavigatorWnd__noop_bEmpty virtual method stub (no-op). Likely a placeholder for an unimplemented event handler
0x005C6090500CNavigatorWnd__render_list_itemsRenders the scroll list items. Draws a vertical separator line, iterates visible items (from scroll offset to visible count), highlights selected item row, draws status icons (values 1-3, 100, 200, 300 map to different sprite resources), and renders item text with shadow
0x005C62F02419CNavigatorWnd__on_drawMain draw handler for CNavigatorWnd. In compact mode: draws 0x86x0x3D bordered box with title and optional destination info. In map view (mode 2/type 1): draws minimap with player marker, path waypoints, destination arrow, and optional navigation timer overlay with word-wrapped text. In map view (type 2): draws minimap with map/destination labels and crosshair cursor. In list view (default): draws bordered panels, minimap preview (with sprite or animated preview), and labeled waypoint entries with shadow text
0x005C6C7073CNavigatorWnd__draw_header_backgroundDraws the navigator window header: loads background sprite from resource, draws title bar text (msg 0xC83), and renders background sprite at origin
0x005C6CC0570CNavigatorWnd__draw_minimap_overlayDraws the navigator minimap overlay including sprites, message text labels at positions, and word-wrapped text content from field at offset 0xB8 when field 0xC8 is nonzero.
0x005C6F4065CNavigatorWnd__on_listbox_clickHandles click on the navigator list box. Performs hit test to find the clicked row, stores the row index at offset 0x94, then sends a notification to the parent via vtable call 0x94 with event type 6, and triggers a redraw via vtable 0x98.
0x005C6F90428CNavigatorWnd__on_minimap_clickHandles click on the navigator minimap. Draws the footer bar, then if in navigation mode 2 (DAT_016fc564==2), converts screen coordinates to map coordinates using scale factor and checks bounds. If valid, gets the map name and calls handler_005c9e00 to navigate. Otherwise, sets a fade state (0xAA) with timeGetTime().
0x005C7140250CNavigatorWnd__on_minimap_grid_clickHandles click on the navigator minimap grid (4x2 cell layout). Maps x,y screen position to a cell index (1-8) based on grid boundaries. Sends notification with cell index to parent window (vtable 0x94), then calculates scroll offset and calls vtable 0x10 to reposition. Also draws footer bar.
0x005C73303CNavigatorWnd__on_draw_noopEmpty draw callback stub for CNavigatorWnd. Does nothing (3-byte ret).
0x005C734021CNavigatorWnd__dispatch_vtable_4Dispatches to vtable+4 on the object. Indirect jump (its jump table could not be recovered). Acts as a forwarding method.
0x005C736060CNavigatorWnd__scroll_minimapScrolls the navigator minimap view. If field 0xA4 is nonzero and param_2 < 0, scrolls up (event type 7, delta 6); otherwise scrolls down (event type 7, delta -6). Uses vtable 0x94 on the scrollbar child at offset 0xAC.
0x005C73B0247CNavigatorWnd__get_map_name_by_typeReturns a map name string based on the type parameter: 0,1 = CMapEntry__get_name_ptr (current map), 2,3 = param_3 vtable 0x14 getter (NPC/destination name). Initializes an STL string output and assigns the result.
0x005C74B0754CNavigatorWnd__get_tooltip_text_with_distanceBuilds a tooltip string for a navigator entry. For type 0,1: gets description from CMapNode. For type 2,3: gets map name + coordinates via sprintf "(x, y)". Appends a distance label based on the NPC distance value (msg 0x991=very close, 0x992=close, 0x993=moderate, 0x994=far, 0x995=very far).
0x005C77B0588CNavigatorWnd__get_tooltip_text_simpleBuilds a simple tooltip string for a navigator entry. Gets the name from param_2 vtable 0x14 and appends a distance label based on the distance tier (msg IDs 0x991-0x995 for very close through very far). Similar to the _with_distance variant but without map/type switching.
0x005C7A00163CNavigatorWnd__update_scrollbarUpdates the navigator list scrollbar range and position. Calculates visible rows from height/row_height, computes max scroll from total items minus visible. Sets scrollbar visibility flag at offset 0xA4 and calls CUIScrollBar__set_range_and_position, then triggers redraw on the scrollbar child.
0x005C7AD0100CNavigatorWnd__on_resizeHandles resize of the navigator window. Calls CEffect__resize_surface, then repositions two child controls (at offsets 0xAC and 0xB0) to fit the new dimensions with 13px margins, and triggers a layout recalc via vtable 0xE0.
0x005C7B50285CNavigatorWnd__handle_scroll_eventHandles scroll events (type 7=scroll, 9=page up, 10=page down) for the navigator list. Computes new scroll position clamped to [0, max], updates the scrollbar position via CUIControl__set_field_0x84, triggers redraw on children, and returns the scroll delta. Non-scroll events are delegated to UIGridView__handle_scroll_command.
0x005C7C7074CNavigatorWnd__on_close_button_clickHandles close button click (event 6, param 0xC9) for the navigator window. Clears TLS field 0x13A (toggle flag) and calls process_func_005c8f70 to rebuild the NPC list. Also handles event 0x3C (general refresh). Triggers redraw via vtable 0x98.
0x005C7CC087CNavigatorWnd__on_commandMain command handler for the CNavigatorWnd. Processes a wide range of commands including: text input (0), button clicks (6) with sub-commands (navigate 0x150/0x1B9, search 0x141, close 0xC9, toggle pin 0xCA, reset 0xC8, route 0x1AE, etc.), resize (0x22), combo box change (0x27), and double-click (0x28). Manages navigation state, creates child windows, handles file-based NPC lookup, and coordinates with CNavigator and UIWorldMapWnd.
0x005C8D7039CNavigatorWnd__on_close_button_checkSimple event check: if event type is 6 and param is 0xC9, clears TLS field 0x132 (navigator sub-window toggle). Returns 0.
0x005C8F6013CNavigatorWnd__set_field_0x2cSimple setter. Stores param_2 at offset 0x2C of the object.
0x005C8F70516CNavigatorWnd__populate_npc_listPopulates the navigator NPC list. Clears the listbox (vtable 0xDC), iterates through CNavigator waypoints, formatting each as "MapName (x, y)" with alternating row colors (100/200). Also adds the current location entry with color 300. Updates listbox via vtable 0xD8 and 0x98.
0x005C91801187CNavigatorWnd__load_route_fileLoads a route file from the NPC file list at the given index. Opens the file with fopen("r"), reads lines, tokenizes with strtok (comma/newline separator), parses coordinate links, builds flat route groups, and sends NPC list to server via packet 0x38F if NPCs found. Updates the search results display and sends event 0xBE to self.
0x005C963013CNavigatorWnd__set_field_0x28Simple setter. Stores param_2 at offset 0x28 of the object.
0x005C9640985CNavigatorWnd__populate_search_detail_listPopulates the navigator detail list for a selected search result group. For each NPC in the group: if coordinates are (-1000,-1000), shows simple tooltip text; otherwise shows tooltip with distance info and appends coordinate string "(x, y)". Adds items to the detail listbox (field 0x3C) with type codes and triggers redraw.
0x005C9A20721CNavigatorWnd__populate_search_result_listPopulates the navigator search result list (field 0x3B). Iterates through route groups (DAT_016fc5c0..DAT_016fc5c4), formats each as "%d MapName" (count + name), adds to listbox with type codes. At the end, sets a summary label with the total group count using message text 0xC8A.
0x005C9D00253CNavigatorWnd__change_view_iconChanges the navigator view icon for a given icon index (1-8). Formats three texture paths using the icon index (normal, hover, pressed states), applies them to the button widget via UIButtonWidget__set_texture_resolved, and triggers CNavigator__load_icon_sprites to load the new icon sprites.
0x005C9E00475CNavigatorWnd__navigate_to_coordinatesInitiates navigation to specific map coordinates. Encodes x,y coordinates using base62_encode_int, builds a navigation string by appending map name + encoded coords to a global string (DAT_01315068), then triggers chat input confirmation via UIEditField__on_confirm_input. Finally sends event 0x99 with the navigation string to the active entity.
0x005C9FE0108CNavigatorWnd__select_npc_and_updateSelects an NPC by index from the navigator detail list. Stores the index in DAT_016fc5d0, advances the route node (retries once on failure), updates the detail listbox selection position at field 0x3C offset 0x94, and updates the world map display if visible.
0x005CA060142CNavigatorWnd__clamp_position_to_screenClamps the navigator window position to stay within the screen bounds. Syncs x/y/w/h from the window to the tooltip control at offset 0x110. Adjusts the height offset by 0x110 or 0xE4 depending on a flag. Clamps x to [0, screen_width-offset] and y to [0, screen_height-0x152].
0x005CA100188CNavigatorWnd__draw_npc_labelsDraws NPC labels on the navigator minimap. Iterates through the NPC label array (DAT_016fc5b0, element size 0x2C). For each matching NPC (by param_1), draws the text twice: once offset by (1,1) with shadow color, and once at the base position with the label color. Uses font size 0xC.
0x005CA1C045CNavigatorWnd__check_scroll_thresholdChecks if enough time/distance has passed to justify a scroll update. If the delta (param_3 - *param_2) divided by (field_0x11C / param_4) meets the threshold param_4, updates *param_2 to param_3. Returns 0.
0x005CA360574CPartySearchEntry__vector_insert_reallocInserts a new CPartySearchEntry (0x4C bytes each) into a vector with reallocation. Calculates new capacity (1.5x growth), allocates new buffer, copy-constructs the new element via helper_005ca5b0, then relocates existing elements around the insertion point. Frees the old buffer and updates the vector's begin/end/capacity pointers.
0x005CA5B0168CPartySearchEntry__copy_ctorCopy constructor for CPartySearchEntry. Sets vtable to CEffectTextureBase scalar deleting dtor, copies flags and field data (offsets 4-0x10), then deep-copies two STL strings at offsets 0x14 and 0x34 and two fields at 0x2C and 0x30.
0x005CA660167CPartySearchEntry__default_ctorDefault constructor for CPartySearchEntry. Sets vtable, initializes fields to defaults (flag=0, field_8=0, maxLV=999, field_10=0), and initializes two STL strings at offsets 0x14 and 0x34 as empty with SSO capacity 0xF.
0x005CA710118CPartySearchMgr__ctorConstructor for CPartySearchMgr. Sets vtable (PTR_util_005ca8d0_010e2304), initializes field_5 to 0, field_8..field_18 to 0, and sets field_4 (active flag) to 1.
0x005CA7C0173CPartySearchMgr__clear_entriesClears all party search entries. Iterates the vector calling each entry's destructor via vtable (0x4C byte stride, 0x13 dwords), frees the vector buffer, and zeros begin/end/capacity.
0x005CA88074CPartySearchMgr__dtorDestructor for CPartySearchMgr. Resets vtable pointer, then calls CPartySearchMgr__clear_entries to destroy all entries and free the vector.
0x005CA8D099CPartySearchMgr__scalar_deleting_dtorScalar deleting destructor for CPartySearchMgr. Resets vtable, clears entries, and if bit 0 of param_2 is set, frees the object (0x1C bytes) via operator_delete.
0x005CA940213CPartySearchMgr__get_or_create_instanceGets or creates the singleton CPartySearchMgr instance (DAT_01389848). If null, allocates 0x1C bytes and constructs via CPartySearchMgr__ctor. If active flag (field_4) is set, returns 1; otherwise destroys the instance and returns 0.
0x005CAA2027CPartySearchMgr__destroy_instanceDestroys the CPartySearchMgr singleton. If DAT_01389848 is nonzero, calls the scalar deleting dtor via vtable and sets the global pointer to null.
0x005CAA404CPartySearchMgr__get_entries_ptrReturns pointer to the entries vector (this + 0xC). Simple inline accessor.
0x005CAA50395CPartySearchMgr__build_party_urlBuilds a party search API URL string based on the operation type. Gets the base URL from lua_get_table_string_value_for_c, then appends an endpoint suffix based on param_2: 0,2="party_add", 1="party_list", 3="party_search", 4="party_del", 5="party_get", 6="party_change", 7="party_info". Returns the URL string.
0x005CAC001966CPartySearchMgr__parse_party_list_jsonParses a JSON array of party search entries. Clears the existing entries vector, then iterates through JSON objects extracting fields: CharName (string), X/Y coordinates (doubles->int), role flags (Assist, Healer, Dealer, Tanker as bools), level range (MinLV, MaxLV), a numeric field, and a string field. Constructs CPartySearchEntry for each and inserts into the vector.
0x005CB3B0366CPartySearchMgr__send_add_requestSends a party search "add" request to the server. Builds the party URL, copies the character name, encrypts data via xor_decrypt_packet_data, then calls CEffectTexture__register_effect_type_a to submit the HTTP request. Increments the pending request counter at offset 0x18.
0x005CB520485CPartySearchMgr__on_response_receivedHandles a party search server response. Decrements the pending request counter. If response data exists, initializes a JSON value, parses the response string, checks the operation type field. If type is not 2 or 3, finds the PartySearchWnd (type 0x144) and sends a refresh event (0x19F). Cleans up JSON and string resources.
0x005CB710256CPartySearchMgr__send_search_requestSends a party search query request to the server. Builds the URL via CPartySearchMgr__build_party_url, copies the character name, and submits via CEffectTexture__register_effect_type_f (GET request). Increments the pending request counter.
0x005CB8101733CPartySearchMgr__on_detail_response_receivedHandles a detailed party search response with full entry data. Decrements pending counter. Parses the JSON response, checks operation type (2=search results, 3=list results). For other types, parses full party entry fields (CharName, X, Y, Assist, Healer, Dealer, Tanker, MinLV, MaxLV, numeric field, string field), constructs a CPartySearchEntry, creates PartySearchWnd (type 0x144), and initializes it with the entry data. Sets field_5 active flag.
0x005CBEE0276CPartySearchMgr__send_update_requestSends a party search update/change request. Default-constructs a CPartySearchEntry, builds the URL, copies the character name, and submits via CEffectTexture__register_effect_type_h (POST/PUT request). Increments the pending request counter.
0x005CC000644CPartyRecruit__handle_create_responseHandles party recruit creation response. Parses JSON response, checks result code (2=error, 3=error), on success creates/finds window 0x144 (party recruit), reads totalPage, sends refresh command 0x3c.
0x005CC290258CPartyRecruit__register_entry_step_gParty recruit registration step: calls handler_005caa50, then registers effect type g. Increments counter at this+0x18.
0x005CC3A02135CPartyRecruit__handle_update_entryHandles party recruit entry update. Parses JSON with fields: CharName, Assist, Healer, Dealer, Tanker, MinLV (default 0), MaxLV (default 999). Updates matching entry in recruit list by slot ID. Finds window 0x144, sends refresh. Also updates CharSelectWnd (0x159) slot data. Validates level range, shows error messages 0xd58/0x4f/0xd73.
0x005CCC00274CPartyRecruit__register_entry_step_kParty recruit registration step: calls helper_005ca5b0, assigns string, then handler_005caa50, then registers effect type k. Increments counter at this+0x18.
0x005CCD20593CPartyRecruit__handle_delete_responseHandles party recruit deletion response. Parses JSON, on error (code 2/3) shows message 0xd59. On success shows message 0xd5a, sets flag at this+5, creates/refreshes window 0x144 with command 0x19f.
0x005CCF80279CPartyRecruit__register_entry_step_hParty recruit registration step: calls helper_005ca5b0, assigns string, then handler_005caa50, then registers effect type h. Increments counter at this+0x18.
0x005CD0A0668CPartyRecruit__handle_cancel_responseHandles party recruit cancel/leave response. On empty response and matching ID, shows message 0xdb3. On JSON error code 2/3, also shows 0xdb3. On success shows message 0xd83, clears flag at this+5, disables recruit window child and refreshes (0x19f).
0x005CD340255CPartyRecruit__register_entry_step_lParty recruit registration step: stores param2 at this+8, assigns string from global, calls handler_005caa50, then registers effect type l. Increments counter at this+0x18.
0x005CD440259CPartyRecruit__register_entry_conditionalConditional party recruit registration: only proceeds if flag at this+5 is set. Stores global ID at this+8, assigns string, calls handler_005caa50, then registers effect type l. Increments counter at this+0x18.
0x005CD55037CPartyRecruit__destroy_entries_rangeCPartyRecruit: destroy entries range
0x005CD580122CPartyRecruit__copy_entries_rangeCopies party recruit entries from [param1, param2) to destination param3. Each entry is 0x4c bytes. Uses helper_005ca5b0 to copy-construct each entry. Returns end of destination.
0x005CD600120CPartyRecruit__destruct_entries_rangeDestructs party recruit entries in range [param1, param2). Each entry is 0x4c bytes. Calls helper_005ca5b0 on each (likely destructor call).
0x005CD69056CPartyRecruit__deallocate_entriesDeallocates party recruit entry array. param1 = buffer, param2 = entry count. Each entry is 0x4c bytes. Handles aligned allocation with 0x23 overhead for large blocks.
0x005D3F507484CReportManager__build_report_dataBuilds encrypted report with character info and boolean flags
0x005D5D70744CReportManager__initInitializes CReportManager with vtable at 010e2658
0x005D6060210CReportManager__destructorDestroys CReportManager, cleans up string fields
0x005D6140234CReportManager__scalar_deleting_destructorScalar deleting destructor, frees 200 bytes
0x005D6230622CReportManager__update_report_stateUpdates report state with timeGetTime timestamp
0x005D64B0180CReportManager__init_sub_containersInitializes 3 sub-containers at offsets 0x0, 0x94, 0xAC
0x005D65702535CReportManager__build_report_data_v2Builds report with 4 encrypted string keys
0x005D6F60103CReportManager__delete_tree_nodes_recursiveRecursively frees RB tree nodes (24 bytes)
0x005D6FD075CReportManager__map_lower_boundlower_bound on RB tree using integer key
0x005D7020160CReportManager__copy_report_recordCopies 48-byte report record
0x005D70C0198CReportStorage__initInitializes report storage with vtable 010e26e4
0x005D719065CReportStorage__lock_mutex_005d7190Wrapper to acquire mutex lock
0x005D71E065CReportStorage__lock_mutex_005d71e0Wrapper to acquire mutex lock (second)
0x005D723065CReportStorage__cleanup_string_005d7230Cleans up std::string member
0x005D728067CReportStorage__free_list_sentinel_80Frees 80-byte sentinel if non-null
0x005D72D067CReportStorage__free_tree_sentinel_24Frees 24-byte sentinel if non-null
0x005D7320104CReportStorage__destroy_list_and_sentinelDestroys list and frees sentinel
0x005D7390111CReportStorage__destroy_tree_and_sentinelDestroys RB tree and sentinel
0x005D741078CReportStorage__free_tree_node_005d7410Frees 24-byte tree node
0x005D746078CReportStorage__free_tree_node_005d7460Frees 24-byte tree node (second)
0x005D74B0121CReportStorage__destroy_linked_listFrees all 80-byte nodes in list
0x005D753065CReportStorage__destroy_tree_wrapperWrapper for tree cleanup
0x005D758068CReportStorage__lock_mutex_005d7580Wrapper to acquire mutex (third)
0x005D75D0114CReportStorage__destructorDestroys CReportStorage
0x005D7650135CReportStorage__scalar_deleting_destructorScalar deleting destructor, frees 32 bytes
0x005D76E0173CReportStorage__add_to_pending_listAdds entry to pending list
0x005D7790167CReportStorage__add_to_completed_listAdds entry to completed list
0x005D7840333CReportStorage__aggregate_completed_to_treeAggregates completed items into RB tree
0x005D799028CReportStorage__clear_all_listsClears both lists and tree
0x005D79B0299CReportStorage__get_instanceSingleton accessor at DAT_0138988c
0x005D7AE0116CReportStorage__remove_from_pending_listRemoves item from pending list
0x005D7B60138CReportStorage__remove_from_completed_listRemoves item from completed list
0x005D7BF027CReportStorage__destroy_instanceCReportStorage: destroy instance
0x005D7C10256CReportStorage__transfer_pending_to_completedTransfers pending to completed
0x005D7D10289CReportStorage__transfer_completed_to_pendingTransfers completed to pending
0x005D7E40204CReportStorage__find_in_completed_by_nameSearches completed by name
0x005D7F1040CReportStorage__get_pending_count_by_idGets count by ID from pending
0x005D7F404CReportStorage__get_pending_list_ptrReturns pending list ptr
0x005D7F50252CReportStorage__find_pending_entry_by_idFinds pending entry by ID
0x005D8050252CReportStorage__find_completed_entry_by_idFinds completed entry by ID
0x005D81504CReportStorage__get_completed_list_ptrReturns completed list ptr
0x005D81604CReportStorage__get_completed_countReturns completed entry count
0x005D817040CReportStorage__get_completed_count_by_idGets count by ID from completed
0x005D81A0170CReportStorage__sum_completed_counts_by_nameSums counts matching name
0x005D825041CReportStorage__get_pending_price_by_idGets price by ID from pending
0x005D82804CReportStorage__get_tree_ptrReturns tree ptr at this+0x18
0x005D829057CReportStorage__calc_total_completed_valueSums price*count total
0x005D82D012CReportStorage__append_entry_wrapperCReportStorage: append entry wrapper
0x005D84F0115CReportStorage__clear_rb_treeCReportStorage: clear rb tree
0x005D8570125CReportStorage__clear_linked_listCReportStorage: clear linked list
0x005D8600106CReportStorage__unlink_and_free_nodeUnlinks and frees node
0x005D8670170CReportStorage__append_list_entryAppends new entry to list
0x005DB340104CSearchResult__destroy_rangeDestroys 0x1C-byte result range
0x005DC0B0170CSearchResult__copy_range_to_bufferCopies 0x1C result range
0x005DC160107CSearchResult__copy_construct_singleCopies single result
0x005DC1D0129CSearchResult__move_constructMove constructs result
0x005DC82068CSearchResult__destroy_vectors_wrapperDestroys vectors wrapper
0x005DC870105CSearchResult__cleanup_node_dataCSearchResult: cleanup node data
0x005DC8E068CSearchResult__destroy_vectors_wrapper_005dc8e0Destroys vectors (second)
0x005DC93068CSearchResult__destroy_string_wrapperDestroys string wrapper
0x005DCA2065CSearchResult__cleanup_string_dataCleans up string data
0x005DCA7065CSearchResult__free_vector_buffer_wrapperCSearchResult: free vector buffer wrapper
0x005DCAC086CSearchResult__destroy_single_elementDestroys a single 0x1C-byte CSearchResult element by calling the sub-vector destructors (8-byte vector dtor + 12-byte vector dtor via stub_005ddc50 and stub_005ddbc0).
0x005DCB2091CSearchResult__compare_8byte_vectors_equalCompares two 8-byte pair vectors for element-wise equality. Returns true (1) if both vectors have the same length and identical elements, false (0) otherwise.
0x005DCB80112CSearchResult__compare_int_vectors_less_thanLexicographic less-than comparison of two int vectors (this vs param). Pads shorter vector with zeros. Returns true if this vector is less than param vector. Used as comparator for CSearchManager tree ordering.
0x005DCBF0110CSearchResult__compare_int_vectors_less_than_standaloneStandalone (non-thiscall) lexicographic less-than comparison of two int vectors. Same logic as CSearchResult__compare_int_vectors_less_than but with cdecl calling convention. Pads shorter vector with zeros.
0x005DD99022CSearchResult__destroy_range_wrapperThin wrapper that forwards to CSearchResult__destroy_range with reordered parameters.
0x005DDCF0174CSearchResult__vector_destroy_and_freeDestroys and frees a vector of 28-byte CSearchResult elements. First calls CSearchResult__destroy_range on all elements (destroying sub-vectors), then frees the backing allocation.
0x005DDE40180CSearchResult__uninitialized_copyUninitialized copy of 28-byte CSearchResult elements. Copies sub-vectors (8-byte and 12-byte) via copy-construct, plus a 4-byte trailing field, from source range to destination buffer.
0x005DE9C0105CSearchResult__destroy_range_loopDestroys a range of 28-byte CSearchResult elements by iterating [param_1, param_2) in 0x1c-byte steps, clearing the 12-byte and 8-byte sub-vectors in each element.
0x005E00A0137CSearchResult__relocate_rangeRelocates 28-byte CSearchResult elements from [param_1, param_2) to a new buffer at param_3 by move-constructing each element, then destroys the leftover range at the destination tail.
0x005E0130105CSearchResult__copy_construct_elementCopy-constructs a single 28-byte CSearchResult element. Copies the 1-byte flag, then copy-constructs the 8-byte sub-vector (materials) and 12-byte sub-vector (products).
0x005E01A0348CSearchResult__vector_copy_constructCopy-constructs a vector of 28-byte CSearchResult elements. Allocates buffer, then iterates source range copy-constructing each element's sub-vectors (8-byte materials, 12-byte products, 4-byte trailing field).
0x005E0300162CSearchResult__move_construct_elementMove-constructs a single 28-byte CSearchResult element. Copies the 1-byte flag, then moves the 8-byte and 12-byte sub-vectors by transferring pointers and zeroing the source.
0x005E0560240CSearchResultWnd__ctorConstructor for CSearchResultWnd. Calls UIWindowBase__ctor, sets vtable to PTR_010e2a04, initializes result display fields (0x2d=0x1b, 0x2e=0x10) and zeroes remaining member slots.
0x005E087087CSearchResult__destroy_elementDestroys a single 28-byte CSearchResult element by clearing its 12-byte sub-vector and 8-byte sub-vector.
0x005FC010332CItemReformWnd__ctorCItemReformWnd constructor. Extends UIWindowBase. Initializes many fields (item slots, strings, vectors). Sets vtable to PTR_stub_005fc4c0_010e8570. Creates two item info trees via CItemInfoMgr__clear_tree_and_free_alt, initializes string buffers at offsets 0xBB-0xC2.
0x005FC160166CItemReformResultListWnd__ctorCItemReformResultListWnd constructor. Extends UIWindowBase. Initializes item display fields: type=0x20, selected index=-1, and several counters to 0. Sets vtable to PTR_stub_005fc740_010e820c.
0x005FC23090CItemReformWnd__destroy_vector_elementsIterates through a vector of 0xC-byte elements (from *param_1 to param_1[1]) and calls stub_005feb20 on each to destroy them.
0x005FC290129CItemReformWnd__free_vector_bufferFrees the underlying buffer of a vector (4-byte element aligned). Handles aligned allocation cleanup for buffers > 0xFFF bytes. Resets pointer, size, and capacity to 0.
0x005FC3305CItemReformWnd__destroy_vector_elements_and_freeDestroys all 0xC-byte vector elements via stub_005feb20, then frees the vector buffer. Full vector cleanup.
0x005FC340288CItemReformWnd__dtorCItemReformWnd destructor. Sets vtable, unregisters child window (offset 0x35), sends packet 0xB90 via CNetworkSession, destroys 4 STL strings, clears shop item vector, frees vector buffer, and calls UIWindowBase__dtor.
0x005FC46095CItemReformResultListWnd__dtorCItemReformResultListWnd destructor. Sets vtable to PTR_stub_005fc740_010e820c, clears the shop item vector, then calls UIWindowBase__dtor.
0x005FC4C0312CItemReformWnd__scalar_deleting_dtorCItemReformWnd scalar deleting destructor. Same as dtor at 005fc340 but conditionally frees this (0x310 bytes) based on param_2 bit 0.
0x005FC740119CItemReformResultListWnd__scalar_deleting_dtorCItemReformResultListWnd scalar deleting destructor. Sets vtable, clears shop item vector, calls UIWindowBase__dtor, conditionally frees this (0xD8 bytes).
0x005FC7C01240CItemReformResultListWnd__render_itemsRenders item reform result list items. Calls virtual resize, creates text layout, copies vector-of-vectors for item entries, iterates each entry's child effects: calls virtual render on each effect, adds to child list via CEffect__add_child_to_list_end, tracks maximum height. Updates window height if content overflows. Cleans up temp vectors and text layout.
0x005FCCA073CItemReformWnd__calculate_page_indexCalculates the page index for the item reform list display. Computes based on offset 0xC4 (current page) + param_2 / item_height (offset 0xB4), clamped to max index = (list_count / 0xF8) - 1, and never less than 0.
0x005FCCF022CItemReformWnd__get_input_text_as_intReads the STL string at offset 0x2C of this, converts it to an integer via atoi. Used to get user-entered numeric input (e.g., quantity) from a text field.
0x005FCD201157CItemReformWnd__create_ui_layoutCreates the full UI layout for the item reform window. Creates: close button, two CDialogWnd labels (using message IDs 0xDA and 0xF07 for title and description), a CItemReformResultListWnd (offset 0xB8), two CItemReformMaterialSlot icons (offsets 0xBC and 0xC0), a grid of material slots from CUserHotKeyMgr data (stored in vector at offset 0xC8), and a UIBaseDialog description field (offset 0xD0) with scrollbar.
0x005FD1B0178CItemReformWnd__create_scrollbarCreates and configures a scrollbar widget (UISpriteWidget) for the item reform list. Stores at offset 0xC8, sets vertical orientation, initializes scroll step size based on param_3 / item_height (offset 0xB4), adds as child, then calls stub_005fdde0 to refresh.
0x0060A640250CRecentActionTracker__ctorConstructor for CRecentActionTracker. Initializes vtable, creates an std::set (red-black tree with 0x30-byte sentinel node), and two circular queues (8-byte linked list nodes). Sets an active flag to true. Object size is 0x38 bytes.
0x0060A74067CRecentActionTracker__delete_tree_sentinelDeletes the tree sentinel node (0x30 bytes) if it exists at offset +4 of the passed structure.
0x0060A79076CRecentActionTracker__destroy_tree_and_sentinelDestroys all tree nodes by recursively walking from root, then deletes the sentinel node (0x30 bytes). Used for cleanup of CRecentActionTracker's std::set member.
0x0060A7F0123CRecentActionTracker__cleanup_tree_nodeCleans up a tree node: destroys the string member at offset +4, then deletes the node memory (0x30 bytes) if it exists.
0x0060A87078CRecentActionTracker__delete_tree_sentinel_bDeletes the tree sentinel node (0x30 bytes) at offset +4. Similar to CRecentActionTracker__delete_tree_sentinel but with different exception handler registration.
0x0060A8C077CRecentActionTracker__destroy_queue_aDestroys a circular queue: calls CircularQueue__destroy_all_buckets to free bucket data, then frees the queue header (8 bytes) and nulls the pointer.
0x0060A92087CRecentActionTracker__destroy_tree_and_sentinel_bDestroys the tree and its sentinel node. Walks all nodes recursively from root, then deletes the 0x30-byte sentinel. Variant with different SEH state tracking.
0x0060A98080CRecentActionTracker__destroy_string_memberDestroys an std::string member at offset +4 of the passed structure. SEH-protected cleanup helper.
0x0060A9D0181CRecentActionTracker__dtor_internalInternal destructor for CRecentActionTracker. Sets vtable, destroys both circular queues (at offsets +0x24 and +0x10), then destroys the tree and its sentinel at offset +8. Does not free the object itself.
0x0060AA9065CRecentActionTracker__destroy_string_member_bDestroys an std::string member. SEH-protected cleanup. Variant of CRecentActionTracker__destroy_string_member.
0x0060AAE0202CRecentActionTracker__scalar_deleting_dtorScalar deleting destructor for CRecentActionTracker. Calls the internal destructor to clean up trees and queues, then optionally frees the 0x38-byte object if bit 0 of the flags parameter is set.
0x0060ABB0541CRecentActionTracker__record_actionRecords an action by ID into CRecentActionTracker. Copies a string name, looks up the ID in the tree via _Find_lower_bound. If not found, allocates a new 0x30-byte tree node and inserts it with Insert_node. Stores the string value and timestamp (timeGetTime). Also checks the pending action queue for duplicate IDs.
0x0060ADD092CRecentActionTracker__expire_old_entriesExpires old entries from the pending action deque. Pops entries from the front while their timestamp + 10000ms (10 seconds) is less than current time. Resets the deque when empty.
0x0060AE30351CRecentActionTracker__get_or_create_singletonSingleton accessor for CRecentActionTracker. If global DAT_01389928 is null, allocates and constructs a new instance. Checks the active flag; if inactive, destroys the instance and returns 0. Returns 1 if the singleton is active and ready.
0x0060AF9027CRecentActionTracker__destroy_singletonDestroys the CRecentActionTracker singleton. Calls the virtual destructor on global DAT_01389928 and sets it to null.
0x0060AFB091CRecentActionTracker__get_cooldown_messageWrapper that calls CRecentActionTracker__lookup_or_insert_and_get_message to get the cooldown/rate-limit message string for a given action ID. Returns the string result.
0x0060B010470CRecentActionTracker__lookup_or_insert_and_get_messageLooks up an action ID in the tree. If found and not at end, returns the associated string value. If not found, checks the circular queue for the ID. If not in queue either, grows the queue and inserts the ID. Returns message string 0x245 from CMessageStringTable (likely a cooldown/rate-limit notification message).
0x0060B1F0232CRecentActionTracker__pop_and_find_duplicatePops entries from the front queue, checking each entry: looks it up in the tree and checks for a duplicate in the pending deque. If found or if the entry is expired (10 min timeout via is_entry_expired), processes it. Returns the matched action ID or 0 if queue is exhausted.
0x0060B2E056CRecentActionTracker__clear_allClears all data in CRecentActionTracker: destroys all tree nodes and resets the sentinel, then destroys both circular queue bucket tables.
0x0060B320242CRecentActionTracker__enqueue_if_absentEnqueues an action ID into the circular queue if it is not already present. Searches the queue linearly for duplicates. If absent, grows the queue if needed and appends the ID.
0x0060B42072CRecentActionTracker__tree_containsChecks if a uint key exists in the std::set (red-black tree) via _Find_lower_bound. Returns true if the key is found, false otherwise.
0x0060B470465CRecentActionTracker__process_pending_actionsMain processing loop for pending actions. First expires old entries from the pending deque (10s timeout). Then pops entries from the front queue, looks each up in tree and pending deque for duplicates. If an action is confirmed (found in tree, not in pending deque or expired), sends packet 0x369 (6 bytes: header + action ID) via CNetworkSession__send_data_timed and adds it to the pending deque with current timestamp.
0x0060B65025CRecentActionTracker__is_entry_expiredChecks if an entry has expired by comparing timeGetTime() against the entry's timestamp + 600000ms (10 minutes). Returns true if expired.
0x0060BCF067CRecentActionTracker__tree_findFinds a key in the std::set via _Find_lower_bound. If found and key matches, writes the node pointer to param_2. If not found, writes the tree head (end iterator) instead.
0x0060C5D0186CStringMapManager__ctorConstructor for CStringMapManager. Initializes vtable (PTR_helper_0060d7f0_010e9528), creates two red-black trees (0x58-byte sentinel for the first, 0x40-byte for the second), sets a boolean flag, and calls CLuaInstance__ctor to initialize a Lua scripting instance.
0x0060C6A067CStringMapManager__delete_tree_sentinel_aDeletes the second tree's sentinel node (0x40 bytes) at offset +4 of the sub-structure if it exists.
0x0060C6F067CStringMapManager__delete_tree_sentinel_bDeletes the first tree's sentinel node (0x58 bytes) at offset +4 of the sub-structure if it exists.
0x0060EF80193CReputeWnd__ctorCReputeWnd constructor. Calls UIWindowBase__ctor, sets vtable to CReputeWnd vtable, initializes members: tab index (0x2D/0x2E)=0, columns (0x31)=8, flags (0x32/0x33)=1, boolean (0x34)=false, and zeroes slots 0x36-0x3A.
0x0060F05095CReputeWnd__dtorCReputeWnd destructor. Sets vtable, calls helper_00610cd0 to clean up repute-specific data, then calls UIWindowBase__dtor.
0x0060F0B063CReputeWnd__move_assign_dataMove-assigns repute window data from param_2 to this. Cleans up old data via helper_00610cd0, copies 3 dwords (likely a vector triple), then zeroes the source. Returns this.
0x0060F0F0119CReputeWnd__scalar_deleting_dtorCReputeWnd scalar deleting destructor. Sets vtable, cleans up repute data, calls UIWindowBase__dtor, conditionally frees 0xF0-byte object if bit 0 of param_2 is set.
0x0060F1801896CReputeWnd__init_ui_widgetsInitializes the reputation window UI: creates button widget, close button, render widget for background, text widget for title, dialog widgets for prev/next page buttons and search, populates group names from CReputeDB into the list, loads initial entries.
0x0060F8F03060CReputeWnd__draw_contentDraws the reputation window content: header row with message text, tiled borders, grid of reputation entries with name/star icons/progress bars/point text. Handles two display modes: negative values (red stars) and positive values (green stars). Shows GROUP label with total points when group mode active. Draws page counter at bottom.
0x006104F0141CReputeWnd__on_eventHandles UI events for the reputation window. Event 6: button clicks (prev page 0x13c, next page 0x13d, search 0x141, close 0xc9). Event 0x16: tab selection by name. Event 0x27: child notification to refresh entries. Event 0x88: text input for search/filter. Falls through to UIWindow__handle_button_click for unhandled events.
0x006109D0519CReputeWnd__filter_entries_by_nameFilters reputation entries by name. If the search string matches the "all" keyword (msg 0xef5), shows all visible entries via CReputeDB__get_all_visible_entries and clears group mode. Otherwise, searches by name via CReputeDB__find_visible_entries_by_name, enables group mode flag, and sums up total points (64-bit accumulation at offsets 0x30/0x34).
0x00610BE0148CReputeWnd__update_page_navigationUpdates page navigation state. Calculates total page count from entry count and items-per-page (offset 0xc4). Clamps the requested page number between 1 and max pages. Stores current page at offset 0xc8. Enables/disables prev button (offset 0xbc) and next button (offset 0xc0) based on current page position.
0x00610C8076CReputeWnd__clear_current_page_selectionsClears the selection flag (offset 0x38) on all reputation entries visible on the current page. Iterates through items-per-page entries starting at (currentPage-1)*itemsPerPage index in the entries vector.
0x00610D60111CStringMapManager__ensure_initializedEnsures the global CStringMapManager singleton (DAT_0138993c) is initialized. Allocates 0x20 bytes and calls CStringMapManager__ctor if the singleton pointer is null.
0x00611B90268CTextMask__ctorConstructor for CTextMask. Creates a 0x136 x 0xf bitmap font texture via CRenderPipeline, sets background color to magenta (0xFFFF00FF). Draws "XXXXXXX XXXXXXX XXXXXXX XXXXXXX " text pattern in black with 5x5 offset grid for shadow effect, then white at center (1,1). Used as a text masking/censoring overlay texture.
0x00611CA031CTextMask__dtorDestructor for CTextMask. Sets vtable, releases the bitmap font resource at offset 8 via virtual destructor, nulls the pointer.
0x00611CC056CTextMask__scalar_deleting_dtorScalar deleting destructor for CTextMask. Releases the bitmap resource, then conditionally frees the 0xC-byte object itself if bit 0 of the flags parameter is set.
0x00611D00378CTextMask__get_or_create_instanceGets or creates the global CTextMask singleton stored at DAT_0138994c. If null, allocates 0xC bytes, constructs the text mask bitmap texture. Returns 1 if valid, otherwise destroys the failed instance and returns 0.
0x00611EA034CTextMask__draw_text_atDraws text onto the CTextMask bitmap at the specified position. Calls the render method on the internal bitmap resource with fixed dimensions 0x136 x 0xf and alpha -1.
0x006175D025CItemList__reset_end_to_beginResets the item list end pointer back to begin, effectively clearing the list via helper_00614130. Operates on entries with 0x54-byte stride stored at this+0xC/0x10.
0x006175F0306CItemList__find_entry_by_nameSearches the item list entries (0x54-byte stride at this+0xC..this+0x10) for an entry whose name string at +0x20 matches the given C string parameter. Returns pointer to the matching entry, or 0 if not found.
0x00617730304CItemList__get_entry_icon_by_indexReturns icon data pointer (entry+0x38) for the given index. Selects icon variant based on item quantity tiers: 1-4 (base), 5-19 (+1), 20-49 (+2), 50-99 (+3), 100-9999 (+4), 10000+ (+5). Optionally filters by type matching this+0x6C.
0x0061786024CItemList__get_entry_countReturns the number of entries in the item list: (this+0x10 - this+0xC) / 0x54.
0x00617880184CItemList__scale_rect_to_screenScales a rectangle (4 ints) from a source coordinate space to the screen resolution. Uses global screen dimensions from DAT_01389638+0x28/0x2C. param_2 is vertical offset, param_3/param_4 are source dimensions.
0x0061794010CItemList__get_current_item_ptrReturns pointer to the current item data from the item array. Indexes this+0x74 pointer array using this+0x6C as current index.
0x00617950527CItemList__check_item_name_changedChecks if an item's display name differs from its message table name. Gets message text via CMessageStringTable__get_message_text(0xBB) and compares with CItem__set_display_name_from_cstr result. Returns 1 if different (name was customized), 0 if same.
0x00617B6022CItemList__erase_range_helperThin wrapper around helper_00614130 to erase a range of entries from the item list container.
0x00617B80147CItemList__destroy_entries_and_trimIterates entries from param_2 to param_3 (0x54-byte stride), calling handler_00614d80 to destroy each entry, then trims the container via helper_00614130.
0x00617C20145CItemList__copy_entries_and_trimIterates entries from param_2 to param_3 (0x54-byte stride), calling handler_00614e70 to copy-construct each entry into param_4, then trims the source container.
0x00617D2056CItemList__deallocate_entriesDeallocates a buffer of item list entries (0x54 bytes each). Handles aligned allocation cleanup for large buffers (>0xFFF bytes).
0x0063725016CRankingBoard__set_mouse_stateSets mouse state fields on the ranking board UI element. Stores param_2 into both +0x24 and +0x8 fields.
0x00637260196CRankingBoard__handle_mouse_messageHandles Windows mouse messages for CRankingBoard: WM_MOUSEMOVE (0x200) updates cursor pos, WM_LBUTTONDOWN/UP (0x201/0x202) sets capture, WM_RBUTTONDOWN/UP (0x204/0x205) sets right-click flag, WM_MOUSEWHEEL (0x20a) stores wheel delta.
0x00637350276CRankingBoard__vector_insert_growSTL vector insert with grow. Allocates new buffer via aligned_vector_alloc, copies existing elements, inserts new element at position, replaces old buffer via _Change_array.
0x00637490103CRankingBoard__tree_destroy_nodesRecursively destroys red-black tree nodes. Walks right subtree recursively, then iteratively deletes left-linked nodes. Each node is 0x20 bytes.
0x0063750075CRankingBoard__tree_lower_boundSTL map/set lower_bound. Traverses red-black tree comparing key at node+0x10 against search key, returns iterator to first element not less than key.
0x00637550199CRankingBoard__ctorCRankingBoard constructor. Calls CUIEventBase__init, sets vtable, initializes ranking data fields (+0x88-0x98), zeroes 0x58 bytes of ranking entries at +0x30, reserves vector to 16 elements.
0x0063762067CRankingBoard__tree_delete_nodeDeletes a single red-black tree node (0x20 bytes) at field+4 if non-null.
0x00637670111CRankingBoard__tree_clearClears all nodes from a red-black tree. Iterates from the head node's right child, recursively destroying subtrees, then deletes the head node itself.
0x006376F078CRankingBoard__tree_node_dtor_aDeletes a tree node at field+4 if non-null. Used as part of tree cleanup for variant A.
0x0063774078CRankingBoard__tree_node_dtor_bDeletes a tree node at field+4 if non-null. Used as part of tree cleanup for variant B.
0x0063779065CRankingBoard__tree_dtor_wrapperWrapper that calls tree_clear to destroy the ranking category map's red-black tree.
0x006377E0103CRankingBoard__dtorCRankingBoard destructor. Sets vtable to CRankingBoard, resets vector end to start (clearing entries), frees vector memory, then resets vtable to CUIEventBase.
0x00637850127CRankingBoard__scalar_deleting_dtorCRankingBoard scalar deleting destructor. Calls destructor (resets vtable, clears vector, frees memory), then optionally deletes the 0xA0-byte object if flag bit 0 is set.
0x006378D0901CRankingBoard__init_ranking_categoriesInitializes ranking categories (Blacksmith, Alchemist, Taekwon, Killer) with color codes into a red-black tree map. Called once lazily from display_rankings.
0x00637C601009CRankingBoard__check_and_display_rankingsValidates ranking data timing (10000 tick intervals), checks entries against stored list with string matching, dispatches chat error message 0xD99 on mismatch, calls process_validation on success
0x0063806056CRankingBoard__push_back_entry_idAppends a ranking entry ID to the vector at this+0x94. If vector is full, calls grow/realloc
0x006380A0102CRankingBoard__set_ranking_dataCopies 0x58 bytes of ranking data from source buffer into this+0x30. Zeroes buffer and sets errno if source is null
0x006381101464CRankingBoard__display_rankingsDisplays ranking board in chat: initializes ranking categories on first call, formats each of 10 entries as "rank: name - points", shows MY_POINT at the end. Uses CUIWindowMgr to dispatch formatted chat messages
0x00638940197CRankingBoard__vector_reserveReserves capacity for the ranking entry vector. Allocates new aligned buffer, copies existing data, frees old buffer, updates vector pointers (begin, end, capacity).
0x00638A3092CRankingBoard__aligned_vector_allocAllocates aligned memory for a vector of uint-sized elements. For allocations >= 0x1000 bytes, adds 0x23 padding and aligns to 32-byte boundary, storing original pointer at offset -4 for deallocation.
0x00738E1096UIInventoryWnd__constructorConstructor for UIInventoryWnd. Calls base window constructor (type 0), sets vtable to UIInventoryWnd vtable, initializes field 0x2D to 0.
0x00738E7071UIInventoryWnd__destructor_0x738e70Destructor for UIInventoryWnd. Sets vtable, calls base class destructor for cleanup.
0x00738EC099UIInventoryWnd__scalar_deleting_destructorScalar deleting destructor for UIInventoryWnd. Sets vtable, calls base class cleanup, conditionally frees 200-byte allocation if bit 0 of param is set.
0x00738F30642UIInventoryWnd__InitControlsInitializes 3 tab controls for inventory window using message IDs 0x169, 0x167, 0x16a. Creates tab button objects (0x10C bytes each) stored at offsets 0xC0, 0xBC, 0xB8. Registers hotkey "Alt_I" at offset 0xC4.
0x00739220205UIInventoryWnd__OnMessageMessage handler for inventory window. Handles msg 6 (command 0xC9 opens shop, 0xD5 sets global vars for tabs), msg 0x22 (selection/item pick). Falls through to base class handler for other messages.
0x007392F056UIInventoryWnd__SyncBoundsToParentCopies position (x, y) and size (width, height) from this object (offsets 0x14-0x20) to the linked object at offset 0xB4.
0x0073933094UIItemListWnd__constructorConstructor for UIItemListWnd. Calls base class constructor FUN_0084eab0, sets vtable to PTR_FUN_0111a230, initializes member 0x48 to 0.
0x0073939071UIItemListWnd__destructorDestructor for UIItemListWnd. Sets vtable to PTR_FUN_0111a230, calls base class destructor FUN_008511b0.
0x007393E099UIItemListWnd__scalar_deleting_destructorScalar deleting destructor for UIItemListWnd. Sets vtable, calls base destructor, conditionally frees 0x124 bytes if param_2 bit 0 is set.
0x00739450393UIItemListWnd__OnSelectItemHandles item selection in the item list. Gets the display string based on tab state (offsets 0xBC/0xD4/0xEC/0x104 depending on mode 0xAC and tab index 0x30). Looks up item resource and loads/displays it. Notifies parent via vtable+0x98.
0x007395E048UIItemListWnd__OnMouseDownMouse down handler. Gets object type 0x22 via FUN_00aa5f70, calls vtable+0x64 method with absolute position (adds widget origin offsets 0x1C, 0x20 to relative coords).
0x0073961048UIItemListWnd__OnMouseUpMouse up handler. Gets object type 0x22, calls vtable+0x7C with absolute position (widget origin + relative coords).
0x0073964051UIItemListWnd__OnMouseMoveMouse move handler. Gets object type 0x22, calls vtable+0x84 with absolute position (widget origin + relative coords).
0x007398E0128CItemList__ClearLinkedListClears a linked list of item nodes. Walks the list, destroying 2 STL strings per node, then frees each 0x58-byte node. Resets the count at param_2[1] to 0.
0x00739AB0164CItemNode__CopyConstructorCopy constructor for CItemNode (0x50+ bytes). Copies numeric fields, then copy-constructs 2 STL strings (at offsets +0xC and +0x24), and copies trailing fields including shorts at offsets 0x48 and 0x4A, plus DWORD at 0x4C.
0x00739B60138CItemNode__DefaultConstructorDefault constructor for CItemNode. Zeroes numeric fields and initializes 2 embedded STL strings at offsets +0xC and +0x24 to empty (capacity=0xF, size=0). Sets member 0x4C to 0.
0x00739C80324CItemList__constructorConstructor for CItemList. Calls base constructor FUN_008a3700, sets vtable PTR_FUN_0111a30c. Allocates a 0x58-byte sentinel node for the doubly-linked list (self-referencing head). Initializes STL vector members, sort params (mode=0, column=1, direction=5), and various state flags.
0x00739DD067CItemList__FreeSentinelNodeFrees the sentinel node (0x58 bytes) of the linked list at offset +4, if it exists.
0x00739E20130CItemList__DestroyAndFreeSentinelDestroys 2 STL strings in the sentinel node at offset +4, then frees the 0x58-byte sentinel node.
0x00739F1073CItemList__ClearAndFreeSentinelClears all nodes in the linked list via CItemList__ClearLinkedList, then frees the sentinel node (0x58 bytes).
0x0073A080142CItemList__destructorDestructor for CItemList. Sets vtable PTR_FUN_0111a30c, calls FUN_00738400 cleanup, destroys vector elements, clears linked list, frees sentinel node, then calls base destructor FUN_008a4e90.
0x0073A110166CItemList__scalar_deleting_destructorScalar deleting destructor for CItemList (0x290 bytes). Calls full destructor chain then conditionally frees memory.
0x0073A1C0367CItemList__OnRightClickRight-click handler for item list. Checks if click is within bounds; if outside, determines item index from click position using grid dimensions (DAT_014a68b8/DAT_014a68bc). Creates a context menu/tooltip window (0x138 bytes, FUN_007426f0) positioned at the click location.
0x0073A330177CItemList__CreateItemTooltipCreates and displays an item tooltip window. Allocates 0x138-byte window (FUN_007426f0), positions it, registers it with the window manager, sets item index at offset 0x104, and sends message 0x17 with item data.
0x0073A3F0335CItemList__GetItemAtPositionGets item data at a screen position. Calculates row index from Y coordinate using row height (offset 0x124), adds scroll offset (0x114). Walks linked list at offset 0xFC to find the item at that index, copies it via CItemNode__CopyConstructor. Returns default-constructed node if not found. Updates selected index at offset 0x120.
0x0073A540231CItemList__GetItemByIndexGets item node at a given list index. Walks the linked list at offset 0xFC, counting until reaching param_3. Returns a copy via CItemNode__CopyConstructor, or a default-constructed empty CItemNode if not found.
0x0073A6305009CItemList__InitControlsInitializes all child controls for CItemList. Creates: scrollbar widget (0xB4 bytes), 40 item icon widgets (0xB0 bytes each, stored at offset 0x128), 40 item list sub-windows (0x124 bytes each, stored at offset 0x1C8), close button with Alt_Z hotkey, text label widget, 2 tab buttons for sort modes, column header buttons with textures. Sets up texture paths for button states (normal/hover/pressed). Configures initial sort mode and display text from message string table entries (0x62-0x67, 0x163, etc.).
0x0073B9D04950CItemList__OnPaintPaint/render handler for CItemList (4950 bytes). Draws background, borders, header/footer sprites. For each visible item in the linked list: draws party member status icons, item names (with level text), equipment location text, selection highlight, online/offline indicators, and party crown for leader. Handles two display modes: party member list mode (0x28C==1) with equipment details, and friend list mode with online/offline status and name search highlighting. Uses grid layout based on column count (0x118) and row height (0x124).
0x0073CD60797CItemList__OnLeftClickLeft-click handler for item list. Gets item at click position, updates selection, notifies parent via vtable+0x98. If item found and conditions met (not in trade mode, etc.), creates item detail/tooltip window and searches for matching item in display list for highlighting.
0x0073D08085CItemList__OnMouseDownMouse down handler for CItemList. Calls base handler, then triggers highlight flash on the selected actor entity (sets alpha to 0xFF at offset +0x38 and records timestamp at +0x3C). In party mode (0x28C != 0), uses DAT_0145798c actor; otherwise uses DAT_014579bc. Closes any active popup menu.
0x0073D0E0774CItemList__OnMouseMoveMouse move handler for CItemList. When hovering (offset 0x28C != 0), shows item tooltip with name and level info. Gets item at position, formats tooltip string with item name or "name (description)" format. Calculates tooltip position from grid layout (columns * row height + offsets). Uses lua_util_sprintf for formatting.
0x0073D3F0112CItemList__OnMouseUpMouse up handler for CItemList. Calls base handler. In party/friend mode (0x28C != 0), repositions the selected actor widget by calling vtable+0x10 with coordinates calculated from parent offset + list width + 2.
0x0073D460193CItemList__OnDoubleClickDouble-click handler for CItemList. Skipped if DAT_017381a8 flag is set (trade mode). Gets item at click position, updates selection if changed (vtable+0x98), then sends message 0x31 via vtable+0x94 if an item is selected (index != -1).
0x0073D53066CItemList__OnMouseWheelMouse wheel handler for CItemList. Only active if scrollbar is enabled (offset 0x44 != 0). Scrolls by up to 3 lines (clamped from offset 0x47-1). Sends scroll message (msg 7) via vtable+0x94 with positive or negative delta depending on wheel direction.
0x0073D580182CItemList__UpdateScrollbarUpdates the scrollbar state for the item list. Calculates total pages from item count (0x100) / items per row (0x118), determines if scrollbar is needed (0x110), clamps scroll position (0x114) to valid range, updates scrollbar widget via FUN_0089c220/FUN_0089c210, then refreshes display via FUN_0073d800.
0x0073D640436CItemList__LayoutColumnHeadersLayouts the column header buttons for the item list. Positions up to 11 column headers (offset 0xC8 array) with 0x1A pixel spacing. In special mode (0x28C==1), hides filtered columns and repositions sort/filter buttons (0xE4-0xF0). Handles trade mode (DAT_017381a8) visibility for weight button (0xE0/0xDC).
0x0073D800371CItemList__UpdateItemPositionsUpdates the position of item display widgets based on scroll state. Walks the linked list of items, positioning visible ones in a grid (row height from 0x124, columns from 0x118). Items before scroll offset are hidden (-100,-100). Uses RTDynamicCast to check item type. Sets color to gray (0x444444) for unavailable items.
0x0073D980181UIInventoryWnd__OnMessage_MainMain message handler for the inventory window. Handles tab switching (msg 0xD7), resize (msg 0xE), item refresh (msg 0x17), context menu (msg 0x30/0x31), scroll (msg 7/9/10), selection tracking (msg 0x22), and numerous item operations (use, drop, equip, sell, store, guild storage). Builds context menu entries via CItemEntry__ConstructFromString. Manages equipment/use item tabs and party item list.
0x0073FD9086CItemList__SyncBoundsAndStateCopies position (x,y), size (w,h), plus mode flags (0x28C, 0x268) from this object to the linked object at offset 0xB4.
0x007461C0246UISkillWnd__ctorConstructor for UISkillWnd. Calls CTokenizer__ctor base constructor, sets UISkillWnd vtable, initializes all skill list vectors and state fields to zero. Sets two float fields (0x134, 0x138) to 1.0f (scale factors).
0x007467D0245UISkillWnd__dtorDestructor for UISkillWnd. Sets UISkillWnd vtable, destroys 0x18-byte skill elements (vector at +0x110), destroys string elements (vector at +0x11C), clears sort index vector (+0x128), destroys format data and remaining vectors, then sets CTokenizer base vtable.
0x00746CF0329UISkillWnd__resize_listsResizes the UISkillWnd's internal lists to match the given count. Calls a virtual method first, then resizes the 0xC-element vector (destroying excess entries or growing), and resizes the float vector. Uses different growth functions depending on capacity.
0x00746ED0175UISkillWnd__set_max_entriesSets the maximum entry count for UISkillWnd (capped at 1000). Resizes the 0x24-element detail vector, zeroing new entries with memset. Resets scroll position and selection state.
0x00746F80208UISkillWnd__get_skill_entryReturns pointer to skill entry at index param_2 from the 0xC-element vector at offset +0x110. If out of bounds, returns a static default entry (DAT_0138d700) initialized via lazy singleton pattern.
0x0074705057UISkillWnd__get_detail_entryReturns pointer to detail entry at index param_2 from the 0x24-element vector at offset +0x20. If out of bounds, returns a static default entry (DAT_0132a1a8).
0x0074709044UISkillWnd__get_float_valueReturns the float value at index param_2 from the float vector at offset +0x12C. If out of bounds, returns a default float constant (DAT_010dc390).
0x007470C023UISkillWnd__get_skill_typeReturns the skill type field (offset +4) from the skill entry at index param_2 in the 0x18-element vector at +0x110.
0x007470E072UISkillWnd__get_skill_name_strReturns pointer to the skill name string from the 0x18-element vector at offset +0x120. Handles SSO - returns direct pointer or heap pointer based on capacity field. Returns empty string DAT_010d4ee8 if out of bounds.
0x0074713049UISkillWnd__get_first_prerequisiteReturns the first prerequisite skill ID from the prerequisite vector (offset +0xC in skill entry). Returns -1 if the prerequisite vector is empty.
0x00747170254UISkillWnd__get_skill_tree_nodeReturns a skill tree node (0x44 bytes) at the given index from the skill entry's tree node vector. Falls back to the first element if out of bounds but vector is non-empty, or returns a static default CSkillTreeNode if the vector is empty (lazy-initialized singleton).
0x0074737047UISkillWnd__get_tree_node_countReturns the number of tree nodes for a skill entry. Gets the 0x44-element vector size. Returns minimum 1 (even if empty).
0x007473A023UISkillWnd__get_skill_levelReturns the skill level field (offset +8) from the skill entry at index param_2 in the 0x18-element vector at +0x110.
0x007473C031UISkillWnd__get_sorted_skill_nameReturns the sorted skill name string pointer. Uses the sort index vector at +0x128 to look up into the name string vector at +0x11C.
0x007473E022UISkillWnd__get_skill_idReturns the skill ID (offset +0) from the skill entry at index param_2 in the 0x18-element vector at +0x110.
0x0074740068UISkillWnd__has_prerequisiteChecks if a skill (param_2) has a specific prerequisite (param_3). Searches the prerequisite int vector (at offset +0xC in the 0x18-byte skill entry) linearly. Returns 1 if found, 0 otherwise.
0x0074745072UISkillWnd__is_skill_validReturns 1 if the skill at index param_2 is valid (index in bounds, non-negative, and skill ID != -1), 0 otherwise.
0x007474A0158UISkillWnd__adjust_act_positionAdjusts an ACT sprite position based on frame dimensions and mirror flags. If param_2 is null, logs "Error While Load Act". Computes position by subtracting half the frame dimensions (doubled if mirrored) and dividing by scale factors at offsets +0x14 and +0x18.
0x007ACF501324CTipBox__load_and_layoutLoads and lays out content for the tip box UI element. Calculates grid position from index (3 columns), searches for sprite pattern in the content string. Loads sprite or text resource depending on search result, calculates position/size with scaling and offset clamping. Sets rendering state (type 0 for text, 1 for sprite).
0x007AD4801038CTipBox__load_script_dataLoads and parses tip box script data from an encrypted Lua script file. Registers script functions: AddTip, AddImgcoord, AddPageEx, AddPage, AddIsTag. Uses XOR-encrypted script file paths (two encrypted paths tried in sequence). Shows error via MessageBox if script execution fails. Returns 1 on success, 0 on failure.
0x007AD89034CTipBox__is_on_last_pageChecks if the tip box is currently showing the last page. Compares current page index (offset 0xB4) with total pages - 1 (calculated from string vector size at 0x5C-0x60, element size 0x18).
0x007AD8C010CTipBox__has_imagesReturns true if the tip box has image coordinates (vector at offset 0x70 is not empty, i.e., begin != end at 0x70/0x74).
0x007AD8D010CTipBox__has_tipsReturns true if the tip box has tip entries (vector at offset 0x18 is not empty, i.e., begin != end at 0x18/0x1C).
0x007AE050311CTipBox__select_entrySelects a tip box entry by key. Resets page index to 0, looks up entry in tree map, copies all data (name strings, boolean flag, page strings, dimensions, image coordinates vector) to the display fields. Finally calls load_and_layout to prepare the visual layout.
0x007B1F40104UIActSprWidget__ctorConstructor for UIActSprWidget. Calls UISpriteWidget base class ctor, sets vtable to PTR_FUN_01122030, initializes width and height to 11.
0x007B2050118UIActSprWidget2__ConstructorConstructor for UIActSprWidget2. Calls UIColoredScrollListBase base ctor, sets vtable to PTR_FUN_0112210c, initializes several flag/state fields to 0.
0x007B20D0246UIActSprWidget2__ConstructorFullFull constructor for UIActSprWidget2. Calls base ctor, sets vtable to PTR_FUN_011221f4, initializes index fields to -1, allocates a 0x34-byte linked list sentinel for act data, sets default dimensions (13x3) and type (12).
0x007B21D0211UIActSprWidget3__ConstructorConstructor for UIActSprWidget3. Calls base ctor, sets vtable to PTR_FUN_011223a4, initializes an SSO string and zeroes multiple state fields.
0x007B22B0353UIActSprWidget5__ConstructorConstructor for UIActSprWidget5 (large variant). Calls base ctor, sets vtable to PTR_FUN_01122554, initializes 27 fields to 0 and index field to -1.
0x007B2420195UIActSprWidget4__ConstructorConstructor for UIActSprWidget4. Calls extended base ctor, sets vtable to PTR_FUN_011227dc, allocates a 0x94-byte linked list sentinel, initializes state fields with one set to -1.
0x007B2C4071UIActSprWidget__DestructorDestructor for UIActSprWidget. Sets vtable to PTR_FUN_01122030, then calls base class destructor.
0x007B2D0071UIActSprWidget2__DestructorDestructor for UIActSprWidget2. Sets vtable to PTR_FUN_0112210c, then calls base class destructor.
0x007B2D50126UIActSprWidget2__DestructorFullFull destructor for UIActSprWidget2. Sets vtable to PTR_FUN_011221f4, cleans up and frees the 0x34-byte act data at offset +0x2c, then calls base class destructor.
0x007B2DD092UIActSprWidget3__DestructorFullFull destructor for UIActSprWidget3 variant. Sets vtable to PTR_FUN_011223a4, destroys a string member, then calls base class destructor.
0x007B2E3071UIActSprWidget5__dtorDestructor for UIActSprWidget5. Sets vtable to PTR_01122554, then calls CEffect__dtor base class destructor. No additional member cleanup needed (all fields are plain values).
0x007B2E80129UIActSprWidget4__DestructorDestructor for UIActSprWidget4. Sets vtable to PTR_FUN_011227dc, cleans up and frees a 0x94-byte packet parser struct at offset +0x34, then calls base class destructor.
0x007B334099UIActSprWidget__scalar_deleting_dtorScalar deleting destructor for UIActSprWidget. Sets vtable to PTR_01122030, calls UIBaseWidgetA__dtor base destructor, then optionally frees the 0xb4-byte object.
0x007B344099UIActSprWidget2__scalar_deleting_dtorScalar deleting destructor for UIActSprWidget2. Sets vtable to PTR_0112210c, calls UILayerFmtWidget__dtor base destructor, then optionally frees the 0xfc-byte object.
0x007B34B0150UIActSprWidget2Full__scalar_deleting_dtorScalar deleting destructor for UIActSprWidget2 (full variant). Sets vtable to PTR_011221f4, destroys 0x34-byte act tree at offset +0x2c, calls CEffect__dtor base destructor, then optionally frees the 0xcc-byte object.
0x007B3550116UIActSprWidget3__scalar_deleting_dtorScalar deleting destructor for UIActSprWidget3. Sets vtable to PTR_011223a4, destroys one SSO string member, calls CEffect__dtor base destructor, then optionally frees the 0xb8-byte object.
0x007B35D099UIActSprWidget5__scalar_deleting_dtorScalar deleting destructor for UIActSprWidget5. Sets vtable to PTR_01122554, calls CEffect__dtor base destructor, then optionally frees the 0xe8-byte object.
0x007B3640153UIActSprWidget4__scalar_deleting_dtorScalar deleting destructor for UIActSprWidget4. Sets vtable to PTR_011227dc, destroys 0x94-byte red-black tree at offset +0x34, calls UIWindowBase__dtor base destructor, then optionally frees the 0xd8-byte object.
0x007B44703071UIAchievementWnd__build_ui_controlsBuilds the achievement category tree view. Creates a CUITreeView with scrollbar and sprite widget, then populates it with achievement categories from message table IDs 0xa60-0xa76 (organized into groups 0-6 with sub-items). Each entry gets text from CMessageStringTable.
0x007B507078UIAchievementWnd__add_tree_entry_if_has_itemsConditionally adds a tree entry to the achievement window's tree view. Checks if the category (param_3, param_4) has any items via CAchievementMgr__count_items_in_tabs. If items exist (or param_5 forces it), sets the reward text using the message string for param_2.
0x007B50C0543UIAchievementWnd__create_row_widgetsCreates colored sprite widgets for achievement list rows. First widget (index 0) gets a wider layout, subsequent widgets alternate positions in a 2-column grid. Also creates 2 text edit boxes at the bottom for displaying category names.
0x007B52E0522UIAchievementWnd__create_header_widgetsCreates header widgets for the achievement window: a colored label showing the title (msg 0xc21), a score display widget, and 2 radio/tab button controls for switching between achievement view modes.
0x007B54F01643UIAchievementWnd__create_button_and_listsCreates the button and list widgets for the achievement window. Creates: receive reward button (with out/over/press/disable textures from 'achievement_re_btn_receive'), main scroll list, 10 colored achievement category widgets, and 3 progress edit boxes. All added as children.
0x007B5B601165UIAchievementWnd__create_main_layoutCreates the main layout structure for the achievement window. Builds: close button, title label, category tree view (via build_ui_controls), detail scroll list (5 rows), tab control panel, and act list widget. Calls SetSelectedReward to initialize the reward display.
0x007B5FF01525UIAchievementWnd__render_detail_entriesRenders detail entries in the achievement detail panel. For each visible entry, draws: background sprite (complete/incomplete), item icon from resource path, completion checkmark if applicable, achievement name text, count text (right-aligned), description text, completion stamp sprite, and reward button sprite. Also formats and draws date text for completed achievements.
0x007B67B01527UIAchievementWnd__render_contentRenders the main content area of the achievement window. Draws: background sprite, title text (msg 0xa77), overall progress counter (d/d format), 6 category progress counters in a 2-column layout (msgs 0xa72-0xa76), section label (msg 0xa5b), and iterates through reward entries drawing their icons, names, buff IDs, descriptions, dates, and reward button sprites.
0x007B70101036UIAchievementWnd__render_detail_infoRenders the detail info panel header. Two modes: if title matches default (msg 0xa77), shows minimal view with progress and global stats. Otherwise shows full detail with background, close button, category name, progress (d/d), sub-progress (d/d), and global stat counters. Toggles visibility of 2 sub-widgets and score widget accordingly.
0x007B7420553UIAchievementWnd__render_reward_panelRenders the reward panel for the selected achievement. Draws background, completion stamp if applicable, reward name text, and reward condition sprites (type 0 or 1 layout). For rewards with title/buff/item sub-rewards, positions up to 3 progress edit boxes dynamically centered in the panel.
0x007B7CA0238UIAchievementWnd__on_select_achievementHandles achievement selection in the achievement window. Finds the achievement's category/subcategory position, calls SetSelectedReward, then scrolls the scroll list to show the selected item and notifies parent via callback 0x87.
0x007B817050UIAchievementWnd__on_tab_commandHandles tab command for the achievement window. When command 0x62 (tab selection) fires with a valid param_4 (achievement ID != -1), calls on_select_achievement to update the display.
0x007B8230134UIAchievementWnd__on_radio_button_clickHandles radio button click in the achievement window. When a radio button is clicked (command 6, param 0xd7), iterates through 2 radio buttons, activating the clicked one and deactivating the other. Updates the sort mode index and notifies parent via callback 0x16 with -1/-1 to reset selection.
0x007B82C0123UIAchievementWnd__on_button_or_list_commandHandles button click and list selection commands. Command 6 with param 0x1da: sends achievement reward claim packet (0xa25) with the selected reward ID. Command 0x91 with valid param: triggers achievement selection via on_select_achievement.
0x007B8340116UIAchievementWnd__on_messageMain message handler for the achievement window. Handles: command 6/0xc9 (close window), command 0x16 (category selection - calls SetSelectedReward), command 0x3c (timer refresh - updates reward display, category items, progress bars), command 0x87 (item selection - looks up achievement data, creates tree entry if needed, updates reward display). Falls through to UIWindow__handle_button_click for unhandled messages.
0x007B8B8060UIAchievementWnd__set_exp_progressSets the experience progress bar values. Updates both the internal fields (+0x9c current, +0xa0 max) and the progress bar widget's display values (+0x7c, +0x80), then triggers a repaint of the progress bar.
0x007B8BC060UIAchievementWnd__set_score_progressSets the score/achievement progress bar values. Updates both the internal fields (+0x94 current, +0x98 max) and the score progress bar widget's display values (+0x7c, +0x80), then triggers a repaint.
0x007B8C0030UIAchievementWnd__set_selected_rewardSets the selected reward fields (+0xe0 reward ID, +0xe4 reward data pointer) and calls UpdateRewardDisplay to refresh the reward panel UI.
0x007B8DC047UIAchievementWnd__set_sort_modeSets the sort mode for the achievement window. Stores the mode value at +0x28, then iterates 2 edit box widgets calling their virtual method 0x6c with (-1, -1) to clear/reset their content.
0x007B8DF0417UIAchievementWnd__SetSelectedRewardSets the selected reward for an achievement. Shows/hides UI elements based on param_2 (selected state). Updates reward item display, sets text label, and triggers timer refresh (0x3c = 60 ticks).
0x007B8FA0129UIAchievementWnd__SetRewardTextSets the reward description text for the achievement window. Handles page index (param_4). Calls string formatting helpers and refreshes the display.
0x007B90301027UIAchievementWnd__UpdateCategoryItemsUpdates category items in the achievement window. Processes two categories (left/right), creates packet entries, adds items to the list if the category has entries, and assigns reward values from packet parser results.
0x007B94402427UIAchievementWnd__UpdateRewardDisplayUpdates the full reward display panel. Iterates through 10 achievement slots, updates visibility and text. Handles 3 reward types: title (reward_title.bmp), buff (reward_buff.bmp with GetStateIconDescript), and item rewards. Colors entries based on completion status (green=0xC9977D completed, gray=0x995736 not done).
0x007B9DC022UIAchievementWnd__AddCategoryItemThin wrapper that forwards to FUN_007b0a10 to add a category item entry.
0x007BA090453UIAchievementWnd__FindEntryByParamSearches through achievement entries (each 0x2C bytes) from param_2 to param_3 to find one matching param_4. Copies string data from matching entries. Returns pointer to matched entry via param_1.
0x007BFC7043CPartySearchWnd__update_toggle_stateUpdates party search listing toggle state. Applies drag offset then refreshes toggle display based on flag at +0x150.
0x007BFCA022CPartySearchWnd__conditional_updateConditionally applies drag offset update only if flag at +0xAC is zero (not locked/hidden).
0x007BFCC0456CPartySearchWnd__show_page_tooltipShows tooltip for page tab buttons. Maps param ranges (0x3D-0x4B, 0x4F-0x5D, 0x61-0x6F, 0x73-0x81) to message IDs (0xD5C, 0xDA3, 0xD74, 0xDB4) and displays tooltip at accumulated position.
0x007BFE90443CPartySearchWnd__send_whisper_to_leaderSends whisper/chat message to party leader. If +0xAC is 0 and player IDs differ from globals, copies name, checks guild membership, dispatches chat message type 0xE with name and guild info.
0x007C0050156CPartySearchWnd__toggle_child_visibilityToggles visibility of child controls at +0xF8 (index 0) and +0xFC (index 1) based on param_2 index and param_3 show/hide flag.
0x007C00F0338CPartySearchWnd__add_entry_to_listAdds a party search entry to internal linked list. Checks for duplicates by param_2 ID. If not found, formats display text via snprintf, creates window type 0x146, and inserts 0x2C-byte node into list.
0x007C0250333CPartySearchWnd__build_entry_from_controlsBuilds a CPartySearchEntry from UI controls: reads 4 job toggle states from child controls at +0xC4/C8/CC/D0 offset 0x150, parses level values via atoi, copies name and description strings.
0x007C03A0122CPartySearchWnd__reset_slot_defaultsResets party search slot to default state: clears visibility flag +0xAD, empties strings, sets size fields to 1, clears index, hides control.
0x007C0420141CPartySearchWnd__process_messageMain message handler for party search list window. Processes message types: 0x6 (button actions: 0xC9 close, 0xDA/0xF6 page nav, 0x16B reset, 0x16D submit, 0x17B view entry, 0x19A register, 0x19F close, 0x234/0x235 edit), 0x22 (position update), 0x27 (selection change), 0x3C (refresh list), 0xA5 (page state update).
0x007C1410849CPartySearchCreateWnd__process_messageMessage handler for party search entry creation window. Handles 0x6/0xC9 (close), 0x234/0x235 (submit with validation: checks DAT_01737a9c mode, validates name completeness, verifies min/max levels). On submit, collects 4 job toggles, level range, class ID, name and description into CPartySearchEntry and calls register.
0x007C17701093CPartySearchDetailWnd__process_messageMessage handler for party search detail/queue window. Handles 0x6/0xC9 (close with callback), 0x21D (send recruit request via network packet 0x108), 0x21E (process response: adds to queue list, sends dequeue). On 0x38: receives entry data including item equip sprite, name, count, and populates the detail scroll list with formatted text.
0x007C1BC0130CPartySearchWnd__init_single_slotInitializes a single party search slot by populating it from data struct, then updates navigation buttons. Wrapper that calls populate_slot_from_data + update_navigation_buttons.
0x007C1C50182CPartySearchWnd__set_slot_toggle_displaySets party search slot toggle display mode. Stores param as mode at +0x150, then swaps button textures between two string sets at +0x120/+0x138 depending on the mode flag.
0x007C1D10261CPartySearchWnd__set_slot_dataSets party search slot data: stores 4 job preference bytes at +0xB8-0xBB, level range at +0x2F/+0x30, class ID at +0x31, name string at +0x32, guild string at +0x3A, and additional IDs at +0x38/+0x39.
0x007C1E20393CPartySearchWnd__populate_slot_from_dataPopulates party search slot display from a 0x4C-byte data struct. Copies party name to +0x120, formats level as "%d/%d" to +0x138, sets 4 job preference bytes at +0x180-0x183, copies guild info to +0x1B0, stores player/guild IDs at +0x1A8/+0x1AC.
0x007C1FB0360CPartySearchWnd__update_slot_controlsUpdates party search slot UI controls: sets 4 job toggle buttons, formats min/max level numbers to text controls via snprintf, selects class type in dropdown, and assigns name/description text.
0x007C2120530CPartySearchWnd__update_navigation_buttonsUpdates prev/next page navigation button visibility and state. In DAT_01737a9c==0 mode (no data), hides all and clears text. Otherwise, shows/hides prev/next buttons based on param_2 page flag, managing 3 navigation controls at +0xEC, +0xF0, +0xF4.
0x007C2340117CPartySearchWnd__set_name_textSets the party/character name text string at field +0x120 from the provided string parameter.
0x007C23C056CPartySearchWnd__sync_rect_to_parent_0x120Copies position rect (x,y,w,h) from this control's fields (+0x14,+0x18,+0x1C,+0x20) to the object referenced at +0x120.
0x007C240056CPartySearchWnd__sync_rect_to_parent_0x100Copies position rect (x,y,w,h) from this control's fields (+0x14,+0x18,+0x1C,+0x20) to the object referenced at +0x100.
0x007C244056CPartySearchWnd__sync_rect_to_parent_0xE4Copies position rect (x,y,w,h) from this control's fields (+0x14,+0x18,+0x1C,+0x20) to the object referenced at +0xE4.
0x007C2480173CPartySearchWnd__clear_slot_data_vectorDestroys all entries in party search slot data vector (0x4C-byte stride elements). Calls destructor on each entry, frees the buffer, resets start/end/capacity pointers to null.
0x007C27B0135CTooltipWnd__ctorConstructor for CTooltipWnd. Calls CEffect__ctor base, sets vtable to PTR_CTooltipWnd__scalar_dtor_011240c4, initializes tree fields +0x7C/+0x80 to 0, allocates 0x1C-byte sentinel node for the tooltip tree with self-referencing pointers.
0x007C2C0068CTooltipWnd__clear_all_nodesClears all tooltip tree nodes by calling TooltipTree__destroy_all_0x30_nodes. SEH wrapper function.
0x007C2C50123CTooltipWnd__dtorDestructor for a tooltip window class. Sets vtable to PTR_FUN_011240c4, destroys the tooltip tree nodes recursively at +0x7C, frees the tree root, then calls FUN_00a79e90 (base class dtor).
0x007C2CD0147CTooltipWnd__scalar_dtorScalar deleting destructor for tooltip window. Calls CTooltipWnd__dtor logic, then conditionally frees memory (0x84 bytes) if param_2 & 1.
0x007C2D70786CTooltipWnd__add_tooltip_entryAdds a tooltip entry to the tree organized by category ID. Creates category node in red-black tree if it doesn't exist. Appends text entry to category's linked list. Enforces max entries per category (1 for category 2, 3 for others) by removing oldest. Recalculates text sizes and total height for scroll region.
0x007C3090296CTooltipWnd__recalculate_entry_sizesRecalculates tooltip entry display sizes for a given category node. Measures text widths to find max, sums heights with 4px spacing, stores results at node+0x28 (width+12) and node+0x2C (total height). Then recalculates total tooltip height across all categories with 0x11-byte inter-category spacing.
0x007C31C0224CTooltipWnd__render_color_barsRenders colored rectangular bars inside a tooltip window. Iterates through a tree structure at +0x7C, traversing nodes in-order. For each node's linked list of items, draws filled rectangles (render_filled_rect) with color from item[9], dimensions from item[10]/item[11], positioned relative to the window's coordinates (+0x1C, +0x20). Bars are stacked vertically with 10px padding and 7px group spacing.
0x007C32A021CTooltipWnd__get_max_entries_for_categoryReturns max entries per category: 1 for category 2, 3 for all others
0x007C32D0352CTooltipWnd__render_entriesRenders all tooltip entries. Traverses category tree in-order. For each category with data: draws header bar (0xFF5C5C5C background), then draws each text line with shadow using font metrics from category node. Stacks entries vertically with 4px line spacing, 10px entry spacing, 7px category spacing.
0x007C3430328CTooltipWnd__update_timed_entriesUpdates timed tooltip entries. If tree has entries (count != 0), enables timer and iterates all categories/entries checking timestamps against _Xtime_get_ticks(). Expired entries (current tick > entry time + duration*10000000) are removed from linked list and freed. If tree is empty, disables timer.
0x007E21D0111CNavigatorWnd__ctorCNavigatorWnd constructor. Sets vtable (PTR_01127f6c), initializes count to 0, allocates sentinel linked list node (0xc bytes) for the window list.
0x007E2240116CNavigatorWndGroup__ctorCNavigatorWndGroup constructor. Sets vtable (PTR_01127f64), initializes window count, constructs 4 linked lists (one per side: left/right/top/bottom) via _eh_vector_constructor_iterator_, clears selection index.
0x007E23D0225CNavigatorWnd__dtorCNavigatorWnd destructor. Sets vtable, deletes all child windows via their scalar deleting dtors, frees linked list nodes, and frees the sentinel node.
0x007E24C084CNavigatorWndGroup__dtorCNavigatorWndGroup destructor. Sets vtable, destroys 4 side-linked lists via _eh_vector_destructor_iterator_.
0x007E252035CNavigatorWnd__scalar_deleting_dtorCNavigatorWnd scalar deleting destructor. Calls CNavigatorWnd__dtor then optionally frees 0x10 bytes.
0x007E2550109CNavigatorWndGroup__scalar_deleting_dtorCNavigatorWndGroup scalar deleting destructor. Calls dtor (destroys 4 linked lists), then optionally frees 0x2c bytes.
0x007E25C0167CNavigatorWnd__add_window_to_groupAdds a window to a snap group. If no group exists and the global snap flag (DAT_013346a8) is set, creates a new CNavigatorWndGroup, sets the window ID, and adds it to the master list.
0x007E2670174CNavigatorWnd__register_windowRegisters a window with the navigator snap system. Creates a new CNavigatorWndGroup if needed, rebuilds child links, and adds to the master list. Skips if already registered.
0x007E272079CNavigatorWnd__refresh_dependent_windowsIterates all windows in the snap group and calls each one's virtual refresh method to update their positions after a snap operation.
0x007E2770320CNavigatorWnd__check_adjacencyChecks adjacency between two window groups. Compares position and size to determine edge overlap. Returns 0=left, 1=right, 2=top, 3=bottom, -1=not adjacent.
0x007E28B035CNavigatorWnd__clear_all_snap_flagsClears the snap flag (offset 0x28) on all groups in the master window list.
0x007E28E030CNavigatorWnd__add_to_snap_listAdds a window to a snap side list if the side index is not -1.
0x007E290086CNavigatorWnd__snap_pair_to_listsSnaps a pair of windows. Removes both from existing lists, adds primary to snap list, and conditionally adds secondary based on global lookup table at DAT_01334698.
0x007E296088CNavigatorWndGroup__remove_from_all_listsRemoves a window from all 4 side lists in the group. Searches each linked list for the matching pointer and unlinks/frees the node.
0x007E29C067CNavigatorWnd__rebuild_all_childrenRebuilds all children in the snap group. Iterates the master list and calls SpriteLayer__rebuild_child_links for each group that has children.
0x007E2A10233CNavigatorWnd__calculate_snap_offsetCalculates snap offset for a window group. Iterates through children, validates dependencies, computes absolute positional offsets, and returns max x/y displacement.
0x007E2B1085CNavigatorWndGroup__accumulate_heightIterates children in a CNavigatorWndGroup and sums up their heights (field at offset 0x18). Returns total accumulated height.
0x007E2B7044CNavigatorWnd__find_group_by_idFinds a CNavigatorWndGroup by window ID in the master list. Returns the group pointer or 0 if not found.
0x007E2BA0127CNavigatorWnd__search_and_validate_snapSearches for and validates snap configuration between two windows. Clears all snap flags, finds both groups in the master list, then validates the dependency tree.
0x007E2C2097CNavigatorWndGroup__has_dependencyRecursively checks if a CNavigatorWndGroup has a dependency on another group. Uses visit flag (offset 0x28) to prevent infinite recursion. Checks all 4 side lists.
0x007E68F0365CRefineWnd__ctorConstructor for CRefineWnd (equipment refinement window). Inherits from UIWindowBase. Sets vtable to CRefineWnd, initializes refinement-related fields: selection index (-1), success rate (200), cost (100), and various state flags. Calls CItemInfoMgr__destroy_nodes_recursive_alt for item node init.
0x007E6C30129CRefineWnd__free_result_vectorFrees the result/status vector (element size 4 bytes). Deallocates memory and zeroes pointers.
0x007E6CC0151CRefineWnd__dtorDestructor for CRefineWnd. Sets vtable, destroys strings, frees item and result vectors, destroys base class.
0x007E6E50175CRefineWnd__scalar_dtorScalar deleting destructor for CRefineWnd (size 0x228). Calls dtor and conditionally frees memory.
0x007E7050933CRefineWnd__build_requirements_listBuilds the refine requirements checklist. Checks: item selected (0xEED if none), item refinable (0xEEE if not), material availability (0xE7B/0xE7C), zeny cost (0xE7D), weight limit (0xE7E), success rate threshold (0xE80/0xEEE if >=100%), item level requirement (0xE81). Appends status codes to the result vector.
0x007E750088CRefineWnd__on_refine_button_clickHandles refine button click. Checks if click is within the refine area (x: 0x35-0x63, y: 0x72-0xA0) and if param4 indicates a valid click (==1), then calls virtual method at offset 0x94 with action 0x17. Also notifies another object via virtual call.
0x007E7560319CRefineWnd__reset_stateResets the refine window state. Clears item description, resets selected item index to -1, clears material/catalyst slots, resets refine mode flags, records current time via timeGetTime, and calls virtual reset methods on child views.
0x007E76A074CRefineWnd__get_selected_item_propertyGets a property value (offset +8) from the currently selected item in the refine item list. Returns 0 if no item is selected or index is out of bounds. Items are 0x11 bytes each in the vector.
0x007E76F074CRefineWnd__hit_test_slot_indexHit-tests a screen coordinate against 3 material slot positions. Returns slot index 0-2 if the point falls within one of the material slots (spaced 0x28 apart starting at y=0x66), or -1 if no hit. X range: 0x9E-0x189.
0x007E774059CRefineWnd__calc_success_rateCalculates the refine success rate percentage. Base rate from field +0x118, adds bonus from (field +0x114 / field +0xFC) * field +0x104. Clamps result to max 100. Returns 0 if refining is not active.
0x007E77801042CRefineWnd__create_child_windowsCreates the refine UI child windows: main item display (0xD0 bytes, position 0x159x299), item list view (+0xB4, position 0x23x0x123), material view (+0xB8, position 0x9Ex0xE1), slot view (+0xBC, position 0x9Ex0xF0), and a text/button view (position 0x8Cx100). Sets up message handlers for each child window.
0x007E7BA03515CRefineWnd__render_uiRenders the refine UI. Draws common elements (background texts), then based on mode (0=no item, 1=refining, 2=result): shows item slots with names/descriptions, material list with requirements, refine status messages, and success rate display. Iterates over item vector to draw slot entries at y-offsets spaced 0x28 apart.
0x007E899043CRefineWnd__on_clickOnClick handler for refine window. Checks if click position is within refine area bounds (x: 0x35-0x63, y: 0x72-0xA0) and if refining is active, then calls reset_state to reinitialize.
0x007E89C0107CRefineWnd__on_right_clickRight-click handler for refine window. If clicking header area (y<0x26, x>0x8D), delegates to drag handler. If in refine mode and clicking item area, sends refine request packet (0x21) with item info.
0x007E8A30254CRefineWnd__on_mouse_moveMouse move handler. Delegates to drag if in header. Otherwise, hit-tests material slot positions (3 slots), selects hovered slot, shows warning message if item has catalyst, and triggers redraw.
0x007E8B30116CRefineWnd__update_hover_slotUpdates the hover slot index (+0xE8) based on mouse position. Hit-tests against 3 material slot positions (x: 0x9E-0x189, y: 0x66-0xDB, slots spaced 0x28 apart). Sets -1 if no slot hit.
0x007E8BB0260CRefineWnd__update_tooltipUpdates the tooltip text for the refine window. Gets formatted string with item name (msg 0xF88), sets tooltip position with offset (0, -20), and displays via tooltip manager.
0x007E8CC0603CRefineWnd__on_timer_tickTimer tick handler for refine animation. Manages frame advancement (mode 0=6 frames, mode 1=6, mode 2=5). After 3000ms in result mode (mode 2), shows result message (0xE76-0xE7A based on result type) and resets. Also checks if refine button should be enabled/disabled based on item validity.
0x007E8FB0540CRefineWnd__on_hover_show_item_infoHover item info display. Shows item tooltip when hovering over material slots or catalyst slot (0xC3-0xDB, 0xE4-0xFC). Also shows tooltip for main refine item slot. Uses tooltip window (type 0xC) with virtual call 0x94.
0x007E91D01139CRefineWnd__on_messageMain message handler for refine window. Handles: msg 6/0x117=add catalyst material, 6/0xB8=start refine (sends packet 0xB5B), 6/0xB9\|0xC9=cancel/close (packet 0xB5C), 6/0x118=remove catalyst, 6/0x1FE=open URL, 0x17=item placed (validates and sends packet 0xB59). Checks refinability, level, and count limits.
0x007E9650543CRefineWnd__set_item_dataSets refine item data from server. Copies item desc, material list (0x11 bytes per entry), refine parameters (zeny cost, material count, catalyst info). Transitions to refine mode (mode=1), records timestamp, triggers redraw.
0x007E99D097CRefineWnd__set_refine_modeSets the refine mode (0=idle, 1=refining, 2=result). Records timeGetTime timestamp, sets animation frame to 1, updates parent window visibility flag. If mode==2 (result), records result display start time for 3s timeout.
0x007E9A40289CRefineWnd__grow_item_vectorGrows the item vector capacity (element size 0x11 bytes). Uses 1.5x growth strategy. Frees old buffer, allocates new one with alignment for large blocks (>0xFFF). Throws length_error if capacity exceeds 0xF0F0F0F.
0x007E9BD039CRefineWnd__push_back_result_codePushes a result status code (4 bytes) to the result vector. If capacity is reached, calls grow helper FUN_007e6720.
0x007F4920332UICardListWnd__ctorConstructor for UICardListWnd. Sets vtable to PTR_FUN_01129608. Initializes page size (0x33=7), scale (0x34=100), selected index (0x37=-1), initial year value (0x3C=0x19EB=6635). Creates two tree structures for item organization.
0x007F4D20188UICardListWnd__dtorDestructor for UICardListWnd. Restores vtable, destroys strings and two 9-byte vectors, calls base dtor.
0x007F4F40212UICardListWnd__scalar_dtorScalar deleting destructor for UICardListWnd. Destroys strings and vectors, calls base dtor, optionally frees 0x300 bytes.
0x007F527090UICardListWnd__OnMouseClickMouse click handler for UICardListWnd. Checks if click is within the selected card preview area (x: 0x6D-0x9B, y: 0xC9-0xF7). If left-click on a valid slot, sends self-message 0x17 (equipment change) with the clicked item data. Then notifies parent window with message 0x12.
0x007F52D0480UICardListWnd__ResetStateResets the card list window to its initial state. Clears selected card (-1), resets page settings (page=0, pageSize=7), clears search results, refreshes timestamp, and hides secondary tabs. Shows the first tab as active.
0x007F54B069UICardListWnd__GetSelectedCardIdReturns the card ID of the currently selected card. Reads from the 9-byte element vector at offset 0xE0 using selected index at 0xDC. Returns 0 if no card selected or index out of bounds.
0x007F550069UICardListWnd__HitTestCardSlotHit tests a screen coordinate against the card grid slots. Grid starts at x=0xB, y=0x37, each slot is 0x31 wide. Returns slot index (0-4) or -1 if outside grid.
0x007F55A02168UICardListWnd__UpdateCardDataUpdates card data after selection or filter change. Handles different card type modes (3-6), compares current card list with previous, updates status messages (string IDs 0xB97/0xB9A/0xCAA-0xCAD), shows 5-second toast messages for special conditions (price threshold check against DAT_01733d28). Refreshes child windows and tab states.
0x007F5E301089UICardListWnd__OnCreateOnCreate handler for UICardListWnd. Creates child windows: close button (ID 0xB9), tab control with 4 tabs (UICardListTabWnd2 at 0xB4, UICardListTabWnd3 at 0xB8, UICardListTabWnd1 at 0xBC), detail window (UICardListDetailWnd at 0xC4), and a search/filter tab control (ID 0x1FE).
0x007F62801377UICardListWnd__OnDrawMain draw handler for UICardListWnd. Renders the card list with mode-dependent header text (modes 0-6). Draws background rectangle, card grid with item icons (5 slots, 0x31 spacing), card count text, selection highlight, and mode-specific status labels (string IDs 0xB9B-0xB9E). Handles price/count display for unowned cards.
0x007F6BF0687UICardListWnd__DrawCompletionStatusDraws the completion status text for a card in the list. Renders owned/unowned state label (string 0xCA9) with color coding: red (0xE1C1F) if highlighted, brown (0x6F4333) if owned, green (0x3E1B12) otherwise. For unowned cards, also draws count and price text.
0x007F6EA0391UICardListWnd__DrawCardNameDraws the card name label. If card is owned (offset 0xAC=1), uses brown color (0x94644A); otherwise uses green (0x3E1B12). Also renders the card count text below if not owned. String ID 0xB96.
0x007F7030137UICardListWnd__DrawNewBadgeDraws the "NEW" badge on the card. If offset 0x120 flag is set, uses red color (0xE1C1F); otherwise green (0x3E1B12). String ID 0xB9D. Y-position adjusts based on display mode.
0x007F70C0474UICardListWnd__DrawCardDescriptionDraws the card description text. Loads the card image sprite, word-wraps the description string from offset 0xA8, and renders each line with 0xB pixel spacing. Text color is green (0x2E15CA) or red (0xC4281C) based on completion flag at 0xF9.
0x007F72A045UICardListWnd__OnMouseOverMouse over handler for card list window. If card display is active and mouse is within grid bounds, calls FUN_007f52d0 to update hover state.
0x007F72D0105UICardListWnd__OnDoubleClickDouble-click handler for card list window. If y < 0x11, delegates to base header handler. Otherwise, in mode 1 with active card display, if click is within card preview area (x: 0x6D-0x9B, y: 0xC9-0xF7), opens item display window (type 0x1C) for the selected card via CGameMode__setup_item_display_extended.
0x007F7340799UICardListWnd__OnRightClickRight-click handler for card list. Delegates to base if y < 0x11. Hit-tests card grid slots for selection. For specific card IDs (0x3D8-0x3F3, 0x184F-0x1861, etc.), shows special info messages (string IDs 0xBAC-0xBAE). Handles card locking toggle for slot 4 (buy mode). Checks price against item database.
0x007F76C0982UICardListWnd__OnMouseHoverShowTooltipHandles mouse hover tooltips for the card list window. Shows item name tooltips when hovering over card slots (grid at x=0xB, y=0x37, 0x31 spacing) or the selected card preview area. Looks up item names via CItemDesc and displays via CToolTipMgr.
0x007F7AA0676UICardListWnd__OnAnimationTickAnimation tick handler for UICardListWnd. Advances frame counter based on mode-specific frame limits (stored in lookup table at DAT_01129b70). Plays refine sound effects at frames 7 and 12 in mode 2. On animation completion, plays success/fail sounds and transitions to result display via UpdateCardData and SetDisplayMode.
0x007F7E20669UICardListWnd__OnClickShowItemInfoClick handler that opens item info popup windows for the card list. Hit-tests card grid slots and the selected card preview area. Creates item info windows (type 0xC) via CGameObject and sends item data via message 0x18. Handles both individual card slots and the combined result slot (slot 4).
0x007F80C0326UICardListWnd__SetTabButtonTextures_ASets button textures for tab control A in UICardListWnd. Uses "success"/"fail" texture variants based on flag at offset 0x49. Applies textures to button states 0/1/2 (normal/hover/pressed) via UIButtonWidget__set_texture_resolved, then resizes and refreshes.
0x007F8210326UICardListWnd__SetTabButtonTextures_BSets button textures for tab control B in UICardListWnd. Uses "success"/"fail" texture variants based on flag at offset 0x48. Similar to SetTabButtonTextures_A but uses different texture path format strings (DAT_01129798/DAT_011297e0).
0x007F83601091UICardListWnd__OnCommandCommand/message handler for UICardListWnd. Handles button commands (msg 6): 0xB8=confirm/buy card (sends packet 0xAA3 with card data, checks price threshold DAT_01733d28), 0xB9/0xC9=close window (sends packet 0xAA4), 0x207=search tab reset (clears selection, resets to browse mode), 0x208=redirect to 0xB8, 0x1FE=open URL. Also handles equipment change events (msg 0x17) for modes 0/1 - validates item and sends equip packet 0xAA1.
0x007F87B01146UICardListWnd__OnReceiveItemDataReceives and processes item data for UICardListWnd. For modes 0/1 (browse/select), validates item slot and populates card data with item description, tooltip body, and card list entries. For modes 2-6 (result display), updates the result item data. Formats tooltip via CItemDesc__format_tooltip_body, copies card vector data via std__vector_assign_9byte_elements, and transitions to display mode.
0x007F8CC0382UICardListWnd__SetDisplayModeSets the display mode for UICardListWnd. Modes 0-2 toggle tab visibility and child window states. Modes 3-6 display colored result messages via CUIWindowMgr__dispatch_chat_message (3=success msg 0x1F2, 4/6=fail msg 499, 5=special msg 0x601). Records timestamp for animation timing.
0x0083FEA0355CReportManager__copy_linked_listCopies a circular doubly-linked list of 0x50-byte report records. Iterates the source list, allocating new 0x50-byte nodes and calling CReportManager__copy_report_record to duplicate each record's data. Links nodes into a new circular list with a sentinel node. Returns the new list head and count via param_1.
0x008401C084CReportWnd__ctor_dialogDialog-based constructor for CReportWnd variant C. Calls CDialogWnd__full_ctor for base initialization, sets vtable to PTR_CReportWnd__scalar_dtor_c.
0x008402A065CReportWnd__string_dtor_wrapperWrapper that calls STL_string_dtor. Used as a CReportWnd destructor helper for string field cleanup.
0x008402F071CReportWnd__dtor_aDestructor for CReportWnd variant A (0x104 bytes). Sets vtable and calls UIItemListWnd_vt59a0__dtor for base cleanup.
0x0084034071CReportWnd__dtor_bDestructor for CReportWnd variant B (0x110 bytes). Sets vtable and calls UIItemListWnd_vt57f0__dtor for base cleanup.
0x0084039071CReportWnd__dtor_cDestructor for CReportWnd variant C (0x120 bytes). Sets vtable and calls UIDialogBoxBase__destructor for base cleanup.
0x008403E099CReportWnd__scalar_dtor_aScalar deleting destructor for CReportWnd variant A. Frees 0x104 bytes if flag bit 0 set.
0x0084045099CReportWnd__scalar_dtor_bScalar deleting destructor for CReportWnd variant B. Frees 0x110 bytes if flag bit 0 set.
0x008404C099CReportWnd__scalar_dtor_cScalar deleting destructor for CReportWnd variant C. Frees 0x120 bytes if flag bit 0 set.
0x008405301529CReportWnd__validate_collection_submissionValidates collection report submission. Counts unique inventory/equip cards, checks weapon types and wedding states, enforces item count limits (DAT_0173a5f4+100 total, 30000 per item). Shows error messages via CMessageStringTable on validation failure.
0x00840B30208CReportWnd__handle_item_use_requestHandles item use request for the report window. Checks if shop window 0x271b is open, validates item type (weapon/wedding), routes to appropriate handler or opens item detail window (type 0xf).
0x00840C00180CReportWnd__handle_item_eventHandles item events for the report window. Routes based on param_4 value: 4 with sub-param 1 triggers report action, otherwise opens item window type 0xf with message 0x17.
0x00840CC0497CReportWnd__get_item_at_grid_pos_pendingReturns the item data at a given grid position in the pending items list. Bounds-checks coordinates against the grid area, iterates through the pending list to find the item at the calculated row/column, and copies it to the output parameter.
0x00840EC0289CReportWnd__get_item_index_at_grid_pos_pendingReturns the linear index of a pending item at the given grid coordinates. Bounds-checks, calculates column from x and row from y, iterates the pending list to find the matching index. Returns -1 if out of bounds or no item at position.
0x00840FF0804CReportWnd__get_item_at_grid_pos_completedReturns item data at grid position from the completed items list. Similar to get_item_at_grid_pos_pending but uses the completed list. Also handles second column by converting item ID to string for display.
0x00841320804CReportWnd__get_item_at_grid_pos_pending_bVariant B of get_item_at_grid_pos_pending. Uses the pending list (CReportStorage__get_pending_list_ptr). Same grid bounds checking and iteration logic, with the extra column-1 string conversion path.
0x00841650497CReportWnd__get_item_at_grid_pos_completed_bVariant B of get_item_at_grid_pos_completed. Uses the completed list (CReportStorage__get_completed_list_ptr). Same grid bounds checking and item lookup logic as the pending variant.
0x0084185021CReportWnd__check_item_count_sufficientChecks if existing item count for a given item ID is >= param_2. Calls find_item_count_by_id internally.
0x0084187062CReportWnd__hit_test_item_grid_aHit tests the item grid area. Returns true if coordinates (param_2, param_3) fall within the grid bounds (x: 0x28 to width-0x14, y: 0x11 to rows*0x20+0x11).
0x008418B062CReportWnd__hit_test_item_grid_bHit tests the item grid area (variant B). Returns true if coordinates fall within grid bounds. Identical logic to hit_test_item_grid_a.
0x008418F021CReportWnd__check_sum_exceeds_30000Returns true if param_1 + param_2 exceeds 30000 (the per-item stack limit for reports).
0x00841910245CReportWnd__find_item_count_by_idSearches the item list by iterating through linked list entries, converting each name string to int via atoi and comparing against param_1. Returns the matching item's count field, or 0 if not found.
0x00841A102906CReportWnd__init_buttons_and_scrollbarInitializes buttons and scrollbar for the report window. Creates UITextLabelWidget (checkbox), UISpriteWidget (scrollbar), two CDialogWnd sub-windows for tabs (btn_cancel texture variants), and positions everything. Sets initial page/scroll state and dispatches message 0x17.
0x00842570362CReportWnd__init_ui_widgetsInitializes UI widgets for the report window. Creates a UITextLabelWidget (checkbox with texture) and UISpriteWidget (scrollbar), positions them relative to window size, and calculates grid row count.
0x008426E01286CReportWnd__draw_completed_item_gridDraws the completed items grid. Renders borders, background tiles, and iterates through the completed report list drawing item sprites, names with tooltips, quantities, and price calculations. Highlights the selected item row.
0x00842BF01436CReportWnd__draw_pending_item_gridDraws the pending items grid. Similar to draw_completed_item_grid but uses pending list. Renders borders, tiles, item sprites (with or without count based on item type flag at offset 0x10), names, quantities, and prices.
0x00843190209CReportWnd__on_mouse_move_completedMouse move handler for the completed items tab. Updates hover state via hit test, shows item tooltip on hover using CGameMode__setup_item_use_display with type 4.
0x00843270427CReportWnd__on_mouse_move_pendingMouse move handler for the pending items tab. Updates hover index via item grid hit test, shows item tooltip on hover using CGameMode__setup_item_use_display with type 0x1f.
0x00843420648CReportWnd__show_completed_item_tooltipShows tooltip for a completed item on hover. Looks up item info, formats price string via CMessageStringTable 0xde1, and displays tooltip via CToolTipMgr.
0x008436B0603CReportWnd__show_pending_item_tooltipShows tooltip for a pending item on hover. Looks up item info, formats price string via CMessageStringTable 0xde1, and displays tooltip via CToolTipMgr.
0x008439101223CReportWnd__show_report_summary_tooltipBuilds a summary tooltip from the report tree. Iterates up to 30 entries, formats each with item name and price (msg 0xde1), joins with newlines, and shows via CToolTipMgr.
0x00843DE0209CReportWnd__on_dblclick_completed_itemDouble-click handler for completed items tab. Gets clicked item via get_item_at_grid_pos_completed, opens detail window (type 0xc) with the item data.
0x00843EC0209CReportWnd__on_dblclick_pending_itemDouble-click handler for pending items tab. Gets clicked item via get_item_at_grid_pos_pending_b, opens detail window (type 0xc) with the item data.
0x00843FA0138CReportWnd__on_message_completedMessage handler for the completed items report tab. Switch on param_3: 0x06=submit/cancel report, 0x0e=resize window (align to 32px grid, min 0xe8x0x78), 0x17=scroll event (rebuild item list), 0x22=restore position, 0x26=add item to report (validates weapon/wedding type, checks 30000 limit, calculates zeny cost).
0x008446D0138CReportWnd__on_message_pendingMessage handler for the pending items report tab. Switch on param_3: 0x0e=resize window (align to 32px grid), 0x17=scroll event (rebuild pending list), 0x22=restore position, 0x26=remove item from report (transfers completed entry back to pending). Default delegates to CUISkillWindow__handle_message.
0x00844A90170CReportWnd__linked_list_delete_rangeDeletes a range of linked list nodes between param_3 and param_4. Iterates from param_3, destroys each 0x100-byte node (dtor + free), decrements the list count. Updates link pointers to splice out the range.
0x00844B40154CReportWnd__vector_copy_16byte_structsVector copy constructor for 16-byte structs. Allocates destination vector, copies elements in 16-byte chunks from source vector (param_2) to output (param_1).
0x0084EAB0287UIDialogBox__ctorFull constructor for CDialogWnd. Initializes dialog properties, creates buttons, sets up layout, and configures event handlers. This is the main dialog box window used throughout the client UI.
0x008511B0183UIDialogBox__dtorFull destructor for UIDialogBox. Sets vtable to PTR_UIDialogBox__scalar_deleting_dtor_01132440, destroys 4 string fields in sequence. Then transitions to UITextDisplayWidget vtable (011321ac), destroys 2 more string fields. Finally calls CEffect__dtor for base widget cleanup. Total: 6 string fields destroyed.
0x00851560120UIDialogBoxBase__scalar_del_dtor_4Scalar deleting destructor variant 4 for dialog box base class.
0x008519B071UIDialogBoxBase__scalar_del_dtor_5Scalar deleting destructor variant 5 for dialog box base class.
0x0085222038UIDialogBox__scalar_deleting_dtorScalar deleting destructor for UIDialogBox. Calls UIDialogBoxBase__destructor, then frees 0x120 bytes if param_2 & 1.
0x0086C53084UIDialogBox2__ctorConstructs UIDialogBox2 by calling UIDialogBox__ctor base, then overrides vtable to UIDialogBox2 (0x01134C20)
0x0086EBB094UIDialogBoxDerived2__ctorConstructor for UIDialogBoxDerived2. Inherits UIDialogBox, overrides vtable, zeroes state field at offset 0x48.
0x0087028071UIDialogBox2__dtorDestructor for UIDialogBox2: resets vtable to UIDialogBox2 (0x01134C20), then delegates to UIDialogBox__dtor for cleanup.
0x008719B071UIDialogBoxDerived__dtorDestructor for a UIDialogBox-derived class. Sets vtable, then delegates to UIDialogBoxBase__destructor for full cleanup.
0x00871BA071UIDialogBoxDerived2__dtorDestructor for second UIDialogBox-derived class. Sets vtable, delegates to UIDialogBoxBase__destructor.
0x0087273099UIDialogBox2__scalar_deleting_dtorScalar deleting destructor for UIDialogBox (0x120 bytes). Sets vtable, calls UIDialogBoxBase destructor, optionally frees.
0x0087420099UIDialogBoxDerived__scalar_deleting_dtorScalar deleting destructor for UIDialogBoxDerived (0x13C bytes). Sets vtable, calls UIDialogBoxBase__destructor, optionally frees.
0x0087446099UIDialogBoxDerived2__scalar_deleting_dtorScalar deleting destructor for UIDialogBoxDerived2 (0x124 bytes). Sets vtable, calls UIDialogBoxBase destructor, optionally frees.
0x008933E0830CItemList__parse_next_item_entryParses the next item entry from an item list iterator. Returns 0 if at end, 0 if item name contains 'unknown item'. Populates output struct (param_2) with item ID, flags, class/level, stack count, enchantment data. Uses CItemDesc functions to extract item properties. Returns 1 on success.
0x0089A9D4230CNavigatorWnd__handle_set_navigation_targetCNavigatorWnd: handle set navigation target
0x008A43E084UIDialogBoxSubclass__ctorConstructor for a UIDialogBox subclass. Calls FUN_0084eab0 for base dialog init, then sets vtable to PTR_UIDialogBoxSubclass__scalar_deleting_dtor_011397a8.
0x008A558071UIDialogBoxSubclass__dtorDestructor for a UI dialog box subclass (vtable PTR_FUN_011397a8). Delegates to UIDialogBoxBase__destructor for cleanup.
0x008A67F099UIDialogBoxSubclass__scalar_deleting_dtorScalar deleting destructor for UIDialogBoxSubclass (vtable PTR_FUN_011397a8). Delegates to UIDialogBoxBase__destructor, frees 0x120 bytes if param_2 bit 0 is set.
0x008A73503857UIDialogBox__init_layoutInitializes the layout for a UI dialog box. Takes title text, button type (0/2/4/5), timer duration, button label, size params, and item slot info. Sets up timing (timeGetTime for start/end), creates scroll list widget, configures cancel buttons from sprite resources (btn_cancel, btn_cancel_a, btn_cancel_b), positions the dialog centered on screen, and optionally creates an edit box (type 5) or item slot widget.
0x008A82802126UIDialogBox__init_simple_layoutInitializes a simpler dialog box layout with fixed size 0x118 x 0x78. Sets up timer, scroll list, cancel button with 3 states, and a color button widget. Configures button colors via CColorPicker__GetPixelRGB. Creates the button layout centered on screen. Also gets item description for display via CItemDesc__get_offset_ptr.
0x008A8AD0598UIDialogBox__setup_item_dialogSets up a dialog box for item interactions. Calls FUN_008a7350 to init layout, configures scroll list colors, positions child widgets, creates button sprites from DAT_010e2d58/010e2d8c, and retrieves item description via CItemDesc__get_offset_ptr. Stores formatted text result at offset 0x120.
0x009144B0355CNavigatorWnd__dtor_009144b0CNavigatorWnd destructor. Sets vtable to PTR_FUN_01140d30. Frees memory at offset 0xC8, cleans up optional sub-object at offset 0xC0 (with string linked list + string), destroys CFmt, multiple nested vtable sub-objects (3 vectors of 0x3C elements with strings), a linked list at offset 0xB4, then UIWindowBase__dtor.
0x00935270354UISkillWnd__handle_msg_commandHandles skill window messages. Command 6/0xB8: saves hotkeys and closes window. Command 6/0xB9: clears all skill tree data (4 categories). Command 6/0xD5: toggles extended skill bar mode (DAT_014576a4/DAT_014576a6), updates layout. Commands 0x13C/0x13D: page prev/next. Command 0x16B: handles map window message. Command 0x16: tab selection with pagination for >36 items. Falls through to UIWindow__handle_button_click for unknown commands.
0x00957DE0272UIGuildWnd__populate_agit_namesPopulates agit (guild castle) names by iterating FUN_00ae46c0 results. For each agit, calls lua script 'get_agit_name' to get the name and adds it to the scroll list widget at member 0x100 via virtual method 0xD8.
0x00957EF0341UIGuildWnd__create_tab_edit_widgetsCreates editable text widgets for guild window tabs. Allocates UIEditableTextWidget objects in a loop, sets tab labels from resource string IDs 0x154-0x159. Each tab is 0x42 pixels apart. Registers Alt+G hotkey.
0x009580701672UIGuildWnd__create_dialog_buttonsCreates OK/Cancel dialog buttons for a guild window page. Allocates UITextWidget (0x11C bytes) as a label at 0xBC with light gray color (0xE6E6E6), and 2 CDialogWnd buttons with btn_cancel textures at calculated positions. Sets default button ID to 0xB8 at member 0x8C.
0x0095870055UIGuildWnd__init_guild_info_pageInitializes the guild info page. Creates controls via UIGuildWnd__create_guild_info_controls, then updates the editable text widget at 0xB8 with message string 0x20C if the widget exists.
0x00958740589UIGuildWnd__create_list_widgetsCreates list widgets for guild window. Sets up scrollbar, creates 11 pairs of editable text widgets (name + value columns) for the member/position lists. Compares guild name string and sends initial requests.
0x009589901627UIGuildWnd__create_info_page_buttonsCreates buttons for the guild info page. Creates 3 dialog buttons at member 0xB4 with textures: btn_help_b (help), create_guild (create), btn_cancel (cancel) with IDs 0x157, 0x1C0, 0xB8. Uses "_guild_helper" string for texture base name.
0x00958FF02020UIGuildWnd__create_position_page_controlsCreates guild position/rank editing page controls. Creates edit button (btn_edit textures) at 0xD0 with ID 0x116, save button at 0xD4 with ID 0x1C1, scroll list (UIFormattedWidget) at 0x100 for agit names, and a formatted list widget at 0x104 with message IDs 0xE2D-0xE2E. Populates agit names via UIGuildWnd__populate_agit_names.
0x009597E01828UIGuildWnd__create_guild_info_controlsCreates guild info overview page controls. Creates a text widget at 0xB4 for guild name display, an editable text widget at 0xB8 with message 0x20B, and 2 cancel buttons (btn_cancel textures) with IDs 0xB8 and 0xB9. Sets default button to 0xB8.
0x00959F103499UIGuildWnd__create_skill_tree_page_controlsCreates guild skill tree page controls with 4 columns per row (name, desc, level, extra), 6 upgrade buttons (basic_interface textures) at 0x130+, scrollbar at 0x148, OK button at 0x14C with btn_ok_dis disabled state, and a radio tab widget at 0x194 with label from message 0xB30.
0x0095ACC01712UIGuildWnd__create_chat_page_controlsCreates chat page controls for the guild window (not CUIChatWindow). Creates editable text widget at 0xD0 for guild name display, a list dialog widget at 0xD4 for chat messages, and a send button (btn_send textures) at 0xD8. Part of the guild window page system.
0x0095B3803076UIGuildWnd__create_member_page_controlsCreates guild member list page controls. Creates scrollbar at 0x81, 3 sets of 11 checkbox/tab widgets (0x34-0x54), 11 name text widgets (0x60-0x6A), 11 value text widgets (0x55-0x5F or 0x76-0x80), and an OK/disabled button at 0x82 with btn_ok_dis textures. Calls UIGuildWnd__update_scrollbar_list_b at end.
0x0095BF903381UIGuildWnd__create_skill_page_controlsCreates guild skill page controls. Creates scrollbar at 0x35, 7 skill upgrade buttons (basic_interface_skill_up textures) at 0x46+, 7 arrow/navigation buttons (arw_left) at 0x3F+, and use/close buttons at 0x36-0x37 with btn_use and btn_close textures. Sends initial skill data request (message 0x17).
0x0095CCD01735UIGuildWnd__create_tips_page_controlsCreates the guild tips/help page. Allocates a UIColoredScrollListBase (0xEC bytes) at member 0xB4, populates it with guild tip strings from CTownInfoMgr, and creates a close button (btn_close textures) at member 0xB8 with button ID 0xC9.
0x0095D3A0453UIGuildWnd__create_expel_page_controlsCreates guild expulsion page controls. Initializes page/scroll state (members 0x104-0x114), creates scrollbar at 0x100, and creates 12 editable text widgets at 0xD0+ for the expelled member list. Row height from DAT_0133b0fc. Calls update_scrollbar_list_c at end.
0x0095D6401237UIGuildWnd__draw_expel_pageDraws the guild expulsion page showing expelled members list with names and reasons. Size: 1237 bytes.
0x0095DB801924UIGuildWnd__draw_alliance_pageDraws the guild alliance page showing allied and enemy guilds. Size: 1924 bytes.
0x0095E3201395UIGuildWnd__draw_notice_pageDraws the guild notice/announcement page with editable text areas for subject and body. Size: 1395 bytes.
0x0095E8A0259UIGuildWnd__draw_notice_text_infoDraws guild notice/description text info. Shows message texts 0x203 and 0x204 (notice subject/body labels), and a character count display (e.g. "x/y") right-aligned using text length from widget 0x77.
0x0095E9B01915UIGuildWnd__draw_agit_pageDraws the guild agit (castle) page showing castle ownership and investment info. Size: 1915 bytes.
0x0095F130743UIGuildWnd__draw_skill_list_itemsDraws the guild skill list items. Renders skill icons (sprites), skill names, levels (Nv/Lv), and skill points (Sp) for each visible skill entry. Shows SkillPoint counter at bottom. Uses linked list at member 0x148.
0x0095F4601011UIGuildWnd__draw_expel_list_columnsDraws expulsion list columns with grid lines and data rows. Renders 4 columns (name, level, date range) using DAT_016d44f4 linked list and DAT_0133b0fc row height. Highlights selected row.
0x0095F860371UIGuildWnd__draw_window_backgroundDraws the guild window background including tab bar with 6 tabs (0x42 pixels apart), tab highlighting for active tab, window border fills, and tiled bottom border decoration.
0x0095F9E0498UIGuildWnd__draw_bordered_list_viewDraws a bordered list view with corner sprites, selection highlight for active row (member 0x94), and text items from a string list at member 0x88. Row height from member 0xB8. Renders 2 items.
0x0095FBF0177UIGuildWnd__on_click_update_list_b_selectionClick handler that updates selection in list B (member 0x4C). Hit-tests against DAT_016d44ec linked list using DAT_0133b0e8 row height and page/column offsets at members 0x4B-0x4E. Triggers repaint if selection changed.
0x0095FCB052UIGuildWnd__on_drag_startHandles drag start on guild window header. Calls UIWindow__draw_header_area then sets drag state (0x80) and timestamps the drag on the global guild drag object at DAT_01457ab8.
0x0095FCF071UIGuildWnd__on_tab_click_deselectHandles tab click that deselects the current scroll list selection. Calls handle_tab_click_or_header first, then deselects the scroll list at member 0x41 if it has items.
0x0095FD40198UIGuildWnd__on_mouse_move_sort_or_hoverMouse move handler that either sorts by column header click (if Y in header row 0x2F-0x42, hit-tests X against column boundaries from DAT_0133b0AC and calls UIListWnd__sort_by_column), or updates grid item hover selection at member 0x58 (if Y in data area 0x42+, using row height from member 0x5D).
0x0095FE109thunk_to_UIGuildWnd__handle_tab_click_or_header_0095fe10Single-call thunk that forwards to FUN_00960020
0x0095FE2071UIGuildWnd__on_mouse_move_list_bMouse move handler for list B area. Updates selection index at member 0x84 using UIAuctionWnd__hit_test_list_item_b and triggers repaint if changed.
0x0095FE70229UIGuildWnd__on_mouse_move_skill_listMouse move handler for skill list. Updates hover selection at member 0x4D, and if not in cooldown (DAT_016f7144==0), shows skill tooltip with icon and description via FUN_00cfe2a0.
0x0095FF60177UIGuildWnd__on_mouse_move_list_cMouse move handler for list C area. Updates selection at member 0x42 by hit-testing against list using DAT_016d44f4 linked list and DAT_0133b0fc row height.
0x00960020108UIGuildWnd__handle_tab_click_or_headerHandles click on tab headers or window drag area. If click is in tab row (Y 0x11-0x29), calculates tab index from X/0x42 and sends tab switch message. Otherwise delegates to UIWindow__draw_header_area.
0x0096009054UIGuildWnd__on_parent_mouse_moveParent widget mouse move handler. Forwards mouse move to UIListBox and sends notification 0xA3 to parent widget at member 0x10.
0x009600D078UIGuildWnd__on_child_mouse_move_notifyChild widget mouse move handler. Updates list hover via UIListBox, sends selection notification 0x30 with selected index, and notifies parent at member 0x4 with message 0xA3.
0x0096013046UIGuildWnd__on_drag_endHandles drag end on guild window. Calls UIWindow__draw_footer_bar, then sets drag state to 0xFF and timestamps it on the global guild drag object.
0x0096016086UIGuildWnd__update_half_row_hoverUpdates hover selection for a half-row widget. Divides Y by row height (member 0x2E), clamps to 0-1 range. Triggers repaint if hover changed. Returns -1 if outside bounds.
0x009601D086UIGuildWnd__on_window_moveHandles window move event. Calls UIWindow__draw_multi_line_text, then repositions the guild emblem widget (DAT_01457ab8) relative to the window position.
0x00960230176UIGuildWnd__on_timer_check_guild_flagTimer callback that checks if the guild has its flag set (byte at offset 0x24D == 1). If so, triggers a repaint. Uses CPacketStream and string operations for guild data lookup.
0x009602E068UIGuildWnd__check_tooltip_timeout_aChecks if tooltip at member 0x198 has timed out (400ms). If so, clears tooltip state and hides the tooltip widget at member 0x14C by clearing its visible flag and triggering repaint.
0x0096033068UIGuildWnd__check_tooltip_timeout_bChecks if tooltip at member 0x230 has timed out (400ms). Same pattern as check_tooltip_timeout_a but for a different tooltip widget at member 0x208.
0x0096038056UIGuildWnd__deselect_scroll_list_memberDeselects the scroll list at member 0x41 (same as UIAuctionWnd__deselect_scroll_list). Calls virtual 0x38 to deselect, resets selected index to -1, triggers repaint.
0x009603C0109UIGuildWnd__update_grid_hoverUpdates grid item hover selection. Hit-tests click in grid area (X: 5-0x17F, Y: 0x42-0x11C), calculates item index from row height and page offset. Triggers repaint if hover changed.
0x0096043050UIGuildWnd__update_list_b_hoverUpdates hover selection for list B. Uses UIAuctionWnd__hit_test_list_item_b, stores result at member 0x84, triggers repaint if changed.
0x0096047050UIGuildWnd__update_skill_hoverUpdates hover selection for skill list. Uses UIAuctionWnd__hit_test_skill_list, stores result at member 0x4D, triggers repaint if changed.
0x009604B0131UIGuildWnd__on_listbox_mouse_move_with_tooltipListbox mouse move with tooltip. Updates hover via UIListBox, if item selected (0x94 >= 0) sends tooltip position (0xA2) with adjusted coords, otherwise sends simple mouse move (0xA3) to parent.
0x00960540221UIGuildWnd__on_agit_list_clickHandles click on agit (castle) list. Two regions: allied castles (Y 0x9E-0xCC) and enemy castles (Y 0xE8-0x116). Gets castle count via CTownInfoMgr__count_warps_for_id, calculates index from Y/16. Stores to member 0x3E (allied) or 0x3F (enemy). Sends selection message 0x31 to parent.
0x0096096066UIGuildWnd__on_mouse_wheel_list_aMouse wheel handler for list A. Scrolls up to 3 rows based on wheel direction. Sends scroll message (7) to parent via virtual 0x94.
0x009609B066UIGuildWnd__on_mouse_wheel_list_bMouse wheel handler for list B. Same pattern as list A wheel handler but uses different member offsets (0x5C, 0x5A, 0x52).
0x00960A0066UIGuildWnd__on_mouse_wheel_list_cMouse wheel handler for list C. Same pattern as list A wheel handler but uses member offsets (0x87, 0x86, 0x81).
0x00960A5066UIGuildWnd__on_mouse_wheel_skillMouse wheel handler for skill list. Same pattern using member offsets (0x51, 0x50, 0x35).
0x00960AA066UIGuildWnd__on_mouse_wheel_gridMouse wheel handler for grid/item list. Same pattern using member offsets (0x45, 0x44, 0x40).
0x00960AF0174UIGuildWnd__update_scrollbar_list_aUpdates scrollbar for list A (member 0x128). Calculates page count from item count (DAT_016d44f0) and items per page. Sets scrollbar range and clamps current scroll position.
0x00960BA0210UIGuildWnd__update_scrollbar_gridUpdates scrollbar for the item grid (member 0x148). Calculates visible rows from row height (member 0x174), total pages from item count (0x17C) and columns (0x164). Clamps scroll position.
0x00960C80175UIGuildWnd__update_scrollbar_list_bUpdates scrollbar for list B (member 0x204). Same scrollbar update pattern using members 0x20C-0x224 for position/count/columns.
0x00960D30175UIGuildWnd__update_scrollbar_skillUpdates scrollbar for skill list (member 0xD4). Same pattern as other scrollbar updates using members 0x138-0x14C.
0x00960DE0174UIGuildWnd__update_scrollbar_list_cUpdates scrollbar for list C (member 0x100). Uses DAT_016d44f8 for total count. Same scrollbar update pattern using members 0x104-0x114.
0x00960E90255UIGuildWnd__layout_skill_widgetsLays out skill widget positions. For each skill entry, positions 3 widgets (icon, name, buttons) at 0x22-pixel row spacing. Hides off-screen or empty skill entries by moving them out of view.
0x009611B0169UIGuildWnd__reload_emblem_filesReloads guild emblem files. Clears the linked list of emblem entries at member 0xD8 (freeing strings and 0x20-byte nodes), then scans for emblem .bmp and .gif files using find_files_in_directory in the emblem directory path.
0x00961260114UIGuildWnd__on_dissolve_buttonHandles guild dissolve button click (button IDs 0xBB/0xBC). On confirm (0xBB), sends dissolve request (0x13B) with guild ID. Calls CUIWindowMgr__unregister_window to close the window.
0x00961540178UIGuildWnd__on_create_dialog_resultHandles create guild dialog result. On OK (0xB8), sends guild create request (0x6F) with text from editable widget. On cancel (0xB9), just closes. Also handles message 0x22 to copy 3 dwords into member 0xBC.
0x0096160063UIGuildWnd__handle_scroll_and_button_eventHandles scroll and button events for list A page. Button 0xC9 closes window with sound 0x3B. Messages 7/9/10 handle scroll position changes (relative/page up/page down) for list A. Message 0x3C reloads and updates scrollbar. Falls through to UIGuildWnd__handle_common_event for unhandled events.
0x00961710357UIGuildWnd__on_info_page_buttonHandles info page buttons. 0xB8 closes 3 sub-windows. 0x157 opens/closes guild tax window. 0x1C0 opens/closes guild emblem window and repositions it. Message 0x22 sets resize data and refreshes.
0x00961880140UIGuildWnd__on_agit_page_eventMain event handler for the agit (castle) page. Handles emblem file selection (0x27), alliance/enemy guild clicks (0x30), agit list display (0x31), page init (0x3C), tooltip positioning (0xA2), deselection (0xA3), and button clicks.
0x00962310110UIGuildWnd__on_notice_dialog_resultHandles notice dialog result. On OK (0xB8), sends guild notice text (0x6E) from editable widget and closes dialog. On cancel (0xB9), just closes.
0x00962380152UIGuildWnd__on_member_page_eventMain event handler for guild member page. Handles member list clicks (0x30/0x31), position assignment, right-click context menus, scroll events, member button initialization (0x6A), and save/cancel (0xB8/0xC9). Size: ~6KB (truncated decompile).
0x00963BF0536UIGuildWnd__on_notice_page_eventEvent handler for guild notice editing page. Handles save/load of notice text, edit confirmation. Size: 536 bytes.
0x00963E10131UIGuildWnd__on_position_page_eventEvent handler for guild position editing page. Handles save (0xB8) which copies position tree and sends update (0x68), position name/tax edit (0x113/0x114), scroll events, and permission toggle (0xD5). Validates tax rates 0-50.
0x00964500135UIGuildWnd__on_skill_page_eventEvent handler for guild skill page. Handles skill use (0xB8), skill point allocation (0xEF-0xF5), skill level adjust (0xFD-0x10A), context menu (0x30), skill tree rebuild (0x17), scroll events, and skill request (0x3A).
0x00964C6039UIGuildWnd__on_close_tax_windowSimple handler for closing guild tax window. Only handles button 0xC9 (close) by calling tls_clear_field_4f1d4(0xD6) to destroy window type 0xD6.
0x00964C9052UIGuildWnd__on_expel_page_eventEvent handler for guild expulsion page. Close button (0xC9), scroll events (7/9/10) updating scroll position and scrollbar for list C.
0x00964D50496UIGuildWnd__handle_common_eventCommon event handler shared by guild sub-pages. Handles window resize (0x22), page refresh (0x3C), and tab switch (0x45). Tab switch closes current window and opens the target page (0x3C-0x42 for pages 0-6). Checks guild permissions before allowing access.
0x00964F80835UIGuildWnd__on_agit_detail_eventHandles agit (castle) detail events. Message 0x30 delegates to scroll handler. For param_4==0: checks job level (error if 1), otherwise retrieves agit name and cost via Lua (get_agit_name, get_agit_costzeny), creates an investment window. For param_4==1: sends agit invest request (0x13C) with town ID from scroll list selection.
0x009652D0385UIGuildWnd__format_member_name_textFormats member name text for display in guild list. Handles text truncation and styling.
0x0096546079UIGuildWnd__show_tooltip_at_positionShows tooltip widget at given position. Moves widget at member 0x41 to (x,y), enables it via virtual 0x38, copies selected index from member 0x40, and triggers repaint.
0x009654B0401UIGuildWnd__rebuild_position_listRebuilds the guild position/rank list. Toggles sort direction at member 0x188, calls UIListWnd__sort_by_column(1), clears NPC list, then iterates the linked list at member 0x178 to copy each position entry (with 3 string copies) and add to town info via CTownInfoMgr__add_npc_to_list.
0x0096566056UIGuildWnd__store_window_rect_to_ptrStores current window rectangle (x, y, width, height) to a pointer at member 0xB8. Copies from members 0x1C, 0x20, 0x14, 0x18.
0x009656A075UIGuildWnd__save_window_state_to_memberSaves window state (position, size, and current tab via virtual 0xD4) to the struct pointed to by member 0x2D.
0x00965E1033UIGuildWnd__clear_member_changes_treeClears the member changes tracking tree. Recursively destroys all nodes in the tree at member 0x00, resets sentinel pointers to self, and sets count to 0. Called after saving or canceling guild member edits.
0x00965E40115UIGuildWnd__clear_position_changes_treeClears the position changes tracking tree. Iterates all non-sentinel nodes, recursively destroys subtrees, frees 0x20-byte nodes, resets sentinel pointers to self, and sets count to 0. Called after saving or canceling guild position edits.
0x0096E650254UIItemListWnd__ctorConstructor for UIItemListWnd (vtable 0x011453b8). Inherits from UIWindowBase. Allocates a 0x100-byte linked list node at offset 0x3a. Initializes numerous fields: enabled=1 at 0x2d, and zeros at 0x2e-0x36 and 0x39.
0x0096E7B0124UIItemListWnd_vt59a0__ctorConstructor for UIItemListWnd variant (vtable 0x011459a0). Inherits from UIItemListWnd via FUN_0096e650. Sets selected index at 0x3e to -1, mode flags at 0x2e=1, and additional fields at 0x3d and 0x3f.
0x0096E830124UIItemListWnd_vt5b50__ctorConstructor for UIItemListWnd variant (vtable 0x01145b50). Inherits from UIItemListWnd. Sets selected=-1, mode=1, clears fields 0x3d and 0x3f.
0x0096E8B0114UIItemListWnd_vt5a78__ctorConstructor for UIItemListWnd variant (vtable 0x01145a78). Inherits from UIItemListWnd. Sets selected=-1, mode=1, clears field 0x3d.
0x0096E930154UIItemListWnd_vt58c8__ctorConstructor for UIItemListWnd variant (vtable 0x011458c8). Inherits from UIItemListWnd. Sets selected=-1 at 0x40, disabled at 0x2d, mode=1 at 0x2e, item height=0x1d at 0x41, clears several fields.
0x0096E9D0164UIItemListWnd_vt57f0__ctorConstructor for UIItemListWnd variant (vtable 0x011457f0). Inherits from UIItemListWnd. Similar to vt58c8 but with additional field 0x43 cleared.
0x0096EA80236UIItemListWnd_vt5568__ctorConstructor for UIItemListWnd variant (vtable 0x01145568). Inherits from UIItemListWnd. Initializes two inline SSO strings (capacity 0xf) at offsets 0x49 and 0x4f. Sets grid layout: 3 columns, enabled, row height 0x12.
0x0096EB70236UIItemListWnd_vt5490__ctorConstructor for UIItemListWnd variant (vtable 0x01145490). Inherits from UIItemListWnd. Initializes two inline SSO strings at offsets 0x48 and 0x4e. Sets grid layout: 3 columns, enabled, row height 0x12.
0x0096EC60301UIItemListWnd_vt5640__ctorConstructor for UIItemListWnd variant (vtable 0x01145640). Inherits from UIItemListWnd. Initializes an SSO string at offset 0x51. Sets both 0x2d and 0x2e to 1 (both enabled). Initializes 8 pairs of fields in a loop at offsets 0x40 and 0x48. Complex constructor with flag bytes at offset 0xf8.
0x0096ED90204UIItemListWnd_vt6060__ctorConstructor for UIItemListWnd variant (vtable 0x01146060). Inherits from UIItemListWnd. Initializes many fields to zero at offsets 0x2f-0x30, 0x36, 0x39-0x43, 0x49-0x4b.
0x0096EE60172UIItemListWnd_vt5d00__ctorConstructor for UIItemListWnd variant (vtable 0x01145d00). Inherits from UIItemListWnd. Takes param_2 stored at offset 0x40. Sets item height=0x15 at 0x47, mode=1, clears several fields.
0x0096EFC0155UIItemListWnd_vt5eb0__ctorConstructor for UIItemListWnd variant (vtable 0x01145eb0). Inherits from UIItemListWnd. Takes param_2 at 0x42, sets mode=1, selected=-1 at 0x40, calls FUN_00dd8980.
0x0096F060175UIItemListWnd_vt5c28__ctorConstructor for UIItemListWnd variant (vtable 0x01145c28). Inherits from UIItemListWnd. Takes param_2 at 0x43, mode=1, selected=-1 at 0x3f, item height=0x15 at 0x46.
0x0096F110104UIItemListWnd_vt6138__ctorConstructor for UIItemListWnd variant (vtable 0x01146138). Inherits from UIItemListWnd. Simple constructor setting mode=1 and clearing 0x3c.
0x0096F180115UIItemListWnd_vt6210__ctorConstructor for UIItemListWnd variant (vtable 0x01146210). Inherits from UIItemListWnd. Takes param_2 at 0x3d, mode=1, clears 0x3c.
0x0096F67071UIDialog_vt52cc__dtorDestructor for UI dialog class (vtable 0x011452cc). Sets vtable then calls UIBaseDialog__destructor.
0x0096F6C0115UIItemListWnd__dtorDestructor for UIItemListWnd (vtable 0x011453b8). Sets vtable, destroys the hash table at offset 0x3a via CHashTable__destroy_all_entries, frees the 0x100-byte hash table, then calls UIWindowBase__dtor.
0x0096F790128UIItemListWnd_vt59a0__dtorDestructor for UIItemListWnd variant (vtable 0x011459a0). Sets parent vtable to UIItemListWnd, destroys hash table at 0x3a, calls UIWindowBase__dtor.
0x0096F810128UIItemListWnd_vt5b50__dtorDestructor for UIItemListWnd variant (vtable 0x01145b50). Same pattern as vt59a0 dtor.
0x0096F890128UIItemListWnd_vt5a78__dtorDestructor for UIItemListWnd variant (vtable 0x01145a78). Same pattern as other item list dtors.
0x0096F910128UIItemListWnd_vt58c8__dtorDestructor for UIItemListWnd variant (vtable 0x011458c8). Same pattern as other item list dtors.
0x0096F990128UIItemListWnd_vt57f0__dtorDestructor for UIItemListWnd variant (vtable 0x011457f0). Same pattern as other item list dtors.
0x0096FA10161UIItemListWnd_vt5568__dtorDestructor for UIItemListWnd variant (vtable 0x01145568). Destroys 2 SSO strings, then sets parent vtable to UIItemListWnd, destroys hash table at 0x3a, calls UIWindowBase__dtor.
0x00970640185UIItemListWnd_vt5568__scalar_deleting_dtorScalar deleting destructor for UIItemListWnd variant (vtable 0x01145568, size 0x164). Destroys 2 SSO strings, then base class hash table at 0xE8, frees 0x100 buffer, calls UIWindowBase::dtor, frees object if flag bit 0 set.
0x009A7D3084UIItemListWndEx__ctorConstructor for UIItemListWndEx. Calls UIItemListWnd_vt59a0__ctor then sets vtable to PTR_01147dec.
0x009A7D9084UIItemListWndEx__ctor_009a7d90Constructor for a UIItemListWnd subclass. Calls UIItemListWnd_vt57f0__ctor then sets vtable to PTR_FUN_01147d14.
0x009A7DF0154UIItemListWndEx2__ctor_009a7df0Constructor for a UIItemListWnd subclass. Calls UIItemListWnd__ctor, sets vtable to PTR_FUN_01147ec4, initializes extra fields (filter type=0x1d, various flags).
0x009A7E9071UIItemListWndEx__dtor_009a7e90Destructor for UIItemListWnd subclass (vtable PTR_FUN_01147dec). Sets vtable then calls UIItemListWnd_vt59a0__dtor.
0x009A7EE071UIItemListWndEx__dtor_009a7ee0Destructor for UIItemListWnd subclass (vtable PTR_FUN_01147d14). Sets vtable then calls UIItemListWnd_vt57f0__dtor.
0x009A7F3094UIItemListWndEx2__dtor_009a7f30Destructor for UIItemListWnd subclass (vtable PTR_FUN_01147ec4). Calls FUN_00dd8540 then UIItemListWnd__dtor.
0x009A7F9099UIItemListWndEx__scalar_deleting_dtor_009a7f90Scalar deleting destructor for UIItemListWnd subclass (vtable PTR_FUN_01147dec). Calls UIItemListWnd_vt59a0__dtor, conditionally frees memory (size 0x104).
0x009A800099UIItemListWndEx__scalar_deleting_dtor_009a8000Scalar deleting destructor for UIItemListWnd subclass (vtable PTR_FUN_01147d14). Calls UIItemListWnd_vt57f0__dtor, conditionally frees memory (size 0x110).
0x009A8070118UIItemListWndEx2__scalar_deleting_dtor_009a8070Scalar deleting destructor for UIItemListWnd subclass (vtable PTR_FUN_01147ec4). Calls FUN_00dd8540 then UIItemListWnd__dtor, conditionally frees memory (size 0x104).
0x009BD7D0444UIDialogC__ctorConstructor for UIDialogC. Calls CEffect__ctor, sets vtable to UIDialogC, initializes linked list node at offset 0x24 (0x2c bytes), STL string at 0x26, fields 0x20-0x34 to zero, second linked list at 0x35 (0x40 bytes), selection index 0x37=-1, flags at 0x38.
0x009BD990444UIDialogD__ctorConstructor for UIDialogD. Same structure as UIDialogC but with UIDialogD vtable. Second linked list node is 0x2c bytes instead of 0x40.
0x009BDB50444UIDialogE__ctorConstructor for UIDialogE. Same structure as UIDialogC/D but with UIDialogE vtable. Second linked list node is 0x5c bytes.
0x009BDD10444UIDialogF__ctorConstructor for UIDialogF. Same structure as UIDialogC/D/E but with UIDialogF vtable. Second linked list node is 0x38 bytes.
0x009BE5A060UIDialog__release_texture_if_setReleases a texture resource if one is set. Checks if field[0] is non-null, and if so calls FUN_00af0be0 to release/free it. Used by dialog destructors for cleanup.
0x009BE5F0340UIDialogA__dtorDestructor for UIDialogA. Sets vtable, destroys child widget at 0x3f, walks and frees linked list at 0x31, destroys STL string, recursively destroys map nodes at 0x24, releases textures at 0x20-0x23, then calls CEffect__dtor.
0x009BE750340UIDialogB__dtorDestructor for UIDialogB. Same pattern as UIDialogA__dtor but sets UIDialogB vtable. Destroys child widget, linked list, STL string, map nodes, textures, then CEffect__dtor.
0x009BE8B0348UIDialogC__dtorDestructor for UIDialogC. Sets UIDialogC vtable, destroys two child widgets at 0x4d and 0x43, calls FUN_009bf7e0 and FUN_009bfb70 for additional cleanup, then destroys string, map, textures, and calls CEffect__dtor.
0x009BEA10348UIDialogD__dtorDestructor for UIDialogD. Same pattern as UIDialogC__dtor but with UIDialogD vtable. Calls FUN_009bf890 and FUN_009bfc00 for type-specific cleanup.
0x009BEB70348UIDialogE__dtorDestructor for UIDialogE. Sets UIDialogE vtable, destroys child widgets, calls FUN_009bf930 and STL_vector_int_deallocate for type-specific cleanup, then standard dialog teardown.
0x009BECD0348UIDialogF__dtorDestructor for UIDialogF. Sets UIDialogF vtable, destroys child widgets, calls FUN_009bf740 and STL_vector_int_deallocate for type-specific cleanup, then standard dialog teardown.
0x009BEED033UIDialog__release_child_widget_at_9_009beed0Releases the child widget at field[9] if non-null. Calls vtable+0x10 to notify detachment, then nulls the field.
0x009BEF0033UIDialog__release_child_widget_at_9Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to move/detach the widget, then nulls the pointer. Used by various dialog types for cleanup.
0x009BEF3033UIDialog__release_child_widget_at_9_009bef30Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9.
0x009BEF6033UIDialog__release_child_widget_at_9_009bef60Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9.
0x009BEF9033UIDialog__release_child_widget_at_9_009bef90Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9.
0x009BEFC033UIDialog__release_child_widget_at_9_009befc0Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9.
0x009BEFF033UIDialog__release_child_widget_at_9_009beff0Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9.
0x009BF02033UIDialog__release_child_widget_at_9_009bf020Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9.
0x009BF05033UIDialog__release_child_widget_at_9_009bf050Releases child widget at field[9] if non-null. Calls virtual method at vtable+0x10 to detach, then nulls the pointer. Duplicate instance of UIDialog__release_child_widget_at_9.
0x009BF1C0147UIDialog__destroy_linked_list_nodeDestroys a linked list node used by dialog system. If field[1] (the node pointer) is non-null, releases child widget at node+0x3c via virtual call, then frees the 0x40-byte node allocation.
0x009BF26078UIDialog__free_node_2cFrees a 0x2c-byte linked list node if field[1] is non-null. Simple deallocation with SEH frame.
0x009BF2B078UIDialog__free_node_40Frees a 0x40-byte linked list node if field[1] is non-null. Simple deallocation with SEH frame.
0x009BF30092UIDialog__release_child_widget_sehReleases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Same as UIDialog__release_child_widget_at_9 but with structured exception handling wrapper.
0x009BF36092UIDialog__release_child_widget_seh_009bf360Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh.
0x009BF3C092UIDialog__release_child_widget_seh_009bf3c0Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh.
0x009BF42092UIDialog__release_child_widget_seh_009bf420Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh.
0x009BF48092UIDialog__release_child_widget_seh_009bf480Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh.
0x009BF4E092UIDialog__release_child_widget_seh_009bf4e0Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh.
0x009BF54092UIDialog__release_child_widget_seh_009bf540Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh.
0x009BF5A092UIDialog__release_child_widget_seh_009bf5a0Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh.
0x009BF60092UIDialog__release_child_widget_seh_009bf600Releases child widget at field[9] if non-null via virtual call at vtable+0x10, with SEH frame. Duplicate instance of UIDialog__release_child_widget_seh.
0x009BF660103UIDialog__destroy_linked_list_0cWalks and frees a singly-linked list of 0xc-byte nodes. Nulls the tail pointer first, then iterates through the list freeing each node, finally frees the head sentinel.
0x009BF6D0103UIDialog__destroy_linked_list_0c_009bf6d0Walks and frees a singly-linked list of 0xc-byte nodes. Duplicate instance of UIDialog__destroy_linked_list_0c.
0x009BF740151UIDialogF__destroy_item_list_38Destroys UIDialogF item list. Walks linked list of 0x38-byte nodes, each containing two STL strings. Destroys both strings per node then frees the node.
0x009BF7E0165UIDialogC__destroy_item_list_40Destroys UIDialogC item list. Walks linked list of 0x40-byte nodes, each containing formatted data. Calls CFmt__func_0058c230 and STL_string_dtor per node, then frees the 0x40-byte allocation.
0x009BF890151UIDialogD__destroy_item_list_2cDestroys UIDialogD item list. Same pattern as UIDialogC but nodes are 0x2c bytes.
0x009BF930177UIDialogE__destroy_item_list_5cDestroys UIDialogE item list. Walks linked list of 0x5c-byte nodes, each containing formatted data and two STL strings. Calls CFmt__func_0058c230 and two STL_string_dtors per node.
0x009BFB00105UIDialog__release_child_widget_at_2cReleases child widget at byte offset 0x2c (field at param+0x2c) if non-null. Uses virtual call at vtable+0x10 to detach, then nulls the pointer.
0x009BFDB0200UIDialog__dtor_009bfdb0UI dialog destructor: sets vtable to PTR_FUN_011489f0, releases two COM-style interface pointers (offsets 0x3b and 0x31) via virtual Release, destroys string member, then calls base class destructor chain (FUN_00a79e90).
0x009C077038UIDialogA__scalar_deleting_dtor_009c0770Scalar deleting destructor: calls dtor FUN_009be5f0, then frees 0x100-byte object if bit 0 of flags param is set.
0x009C07A038UIDialogB__scalar_deleting_dtor_009c07a0Scalar deleting destructor: calls dtor FUN_009be750, then frees 0x100-byte object if bit 0 of flags param is set.
0x009C07D038UIDialogC__scalar_deleting_dtor_009c07d0Scalar deleting destructor: calls dtor FUN_009be8b0, then frees 0x138-byte object if bit 0 of flags param is set.
0x009C080038UIDialogD__scalar_deleting_dtor_009c0800Scalar deleting destructor: calls dtor FUN_009bea10, then frees 0x138-byte object if bit 0 of flags param is set.
0x009C083038UIDialogE__scalar_deleting_dtor_009c0830Scalar deleting destructor: calls dtor FUN_009beb70, then frees 0x138-byte object if bit 0 of flags param is set.
0x009C086038UIDialogF__scalar_deleting_dtor_009c0860Scalar deleting destructor: calls dtor FUN_009becd0, then frees 0x138-byte object if bit 0 of flags param is set.
0x009C089038UIDialog__scalar_deleting_dtor_009c0890Scalar deleting destructor: calls UIDialog__dtor_009bfdb0, then frees 0xf0-byte object if bit 0 of flags param is set.
0x009C15504637UIDialogA__init_encrypted_resources_009c1550Large initialization function for a UI dialog. Allocates 0x100-byte object with UIDialogA constructor, decrypts multiple XOR-encrypted string resources (using xor_decrypt_buffer with various keys), populates a map<int,string> with decrypted names (keys 0,1,2), loads sprite/texture resources via FUN_009f28f0, FUN_009f2e40, FUN_009f2be0. Stores result at param_1+0xec.
0x009C5BB05013UIDialogF__init_child_widgetsInitializes UIDialogF child widgets. Creates UIStringDialog, UIScrollbar, UIListBox, UICallback objects. Configures scrollbar, rebuilds list items, and decrypts XOR-encrypted strings from TLS. ~5K bytes.
0x009C6F507588UIDialogC__init_child_widgetsInitializes UIDialogC child widgets. Creates UIButton, UIListDialog, UIScrollbar, UIListBox, UICallback objects. Configures buttons, rebuilds list, swaps callbacks, decrypts XOR strings. ~7.5K bytes.
0x009CDD407588UIDialogE__init_child_widgetsInitializes UIDialogE child widgets. 7.5K bytes. Creates scrollbars, buttons, list boxes, callbacks. Configures component layout from stream. No callers (registered as callback/vtable).
0x009EC4301046UIDialog__ctorUIDialog constructor. Calls CEffect::ctor, sets UIBase then UIDialog vtable. Initializes strings (4 SSO strings at offsets 0x22-0x5E), tree map for state tracking (sentinel at offset 0x55), color fields (default white/gray), font size 0xC. Inserts keys 0,1,2 into state map.
0x009ED360116UIDialog__set_state_colorsSets 3 state colors in the dialog's state map (keys 0,1,2 for normal/pressed/hover) and sets background color at offset 0x57. Calls virtual refresh.
0x009ED79024UIDialog__set_id_and_refreshSets the dialog ID at offset 0x20 and calls virtual refresh (vtable+0x98).
0x009ED80024UIDialog__set_state_and_refreshSets dialog state value at offset 0x21 and calls virtual refresh (vtable+0x98).
0x009ED82024UIDialog__set_flags_and_refreshSets dialog flags at offset 0x22 and calls virtual refresh (vtable+0x98).
0x009ED88054UIDialog__set_padding_and_resizeSets 4 padding values (left, top, right, bottom) at offsets 0x23-0x26 and triggers virtual resize with current width/height.
0x009FD3402286EnchantUI__setup_socket_button_panel_009fd340Sets up an enchant UI socket button panel. Calls FUN_009ff700 for base init, positions child at 0x3b,1. Creates 4 button BMP strings (EnchantUI_btn_socket_out.bmp, _over.bmp, _select.bmp) and calls FUN_009efb00 to create the button. Configures a text label: font size 12, bold, color 0x965532, magenta outline (0xffff00ff), size 39x13, with hardcoded string references.
0x009FDC302286EnchantUI__setup_socket_button_panel_009fdc30Sets up an enchant UI socket button panel (variant). Nearly identical to 009fd340 - calls FUN_009ff700, positions child, creates socket button BMPs (EnchantUI_btn_socket_out/over/select.bmp), configures text label with font 12, bold, color 0x965532, magenta outline. Different vtable pointer (PTR_FUN_0114e298).
0x009FE5202286EnchantUI__setup_socket_button_panel_009fe520Sets up an enchant UI socket button panel (variant 3). Calls FUN_009ff700 for base init, positions child at 3,1. Creates socket button BMPs, configures text label with font 12, bold, color 0x965532, magenta outline. Uses PTR_FUN_0114e2b4 vtable.
0x009FEE102286EnchantUI__setup_socket_button_panel_009fee10Sets up an enchant UI socket button panel (variant 4). Calls FUN_009ff700 for base init, positions child at 3,1. Creates socket button BMPs, configures text label with font 12, bold, color 0x965532, magenta outline. Uses PTR_FUN_0114e2d0 vtable.
0x009FF7004474EnchantUI__init_base_panel_009ff700Base initialization for EnchantUI panels. Allocates a 0x178-byte window via FUN_009bdf40, sets vtable, sets size 44x44. Creates a text edit box (0x1d8 at offset 0x84) with 100 char limit. Creates a label (0xe0 at offset 0x88) sized 39x96 with font 12 bold 0x965532 magenta outline. Decrypts 4 XOR-encrypted BMP strings for button creation via FUN_009efb00. Also decrypts strings for tooltip display via FUN_009ea900/FUN_009ea940/FUN_009ea960.
0x00A00D503443EnchantUI__init_complex_panel_00a00d50Complex EnchantUI panel initialization (3443 bytes). Creates and configures multiple child UI elements.
0x00A04860148EnchantUI__init_manager_singleton_00a04860Initializes EnchantUI manager. Sets vtable, creates singleton Ench tree (0x38 bytes via Ench__tree_0067ff60) if not already created, registers with Ench manager via Ench__mgr_00682960, then calls CUIWindow base destructor to save position.
0x00A04D70226EnchantUI__on_socket_selected_00a04d70Handles socket selection in EnchantUI. Gets selected item index from list at offset 0x98, traverses linked list to get data, ensures Ench tree singleton exists, gets pointer offset, calls Ench__mgr_00683c20 with item params and equipment slot info.
0x00A04E60162EnchantUI__request_enchant_00a04e60Requests enchant operation. Ensures Ench tree singleton, gets equipment pointer and slot info, calls Ench__mgr_00683d10 to send enchant request.
0x00A04F10152EnchantUI__request_reset_00a04f10Requests enchant reset. Ensures Ench tree singleton, gets equipment pointer and slot info, calls Ench__mgr_00683e00 to send reset request.
0x00A04FB0295EnchantUI__confirm_or_select_action_00a04fb0Handles enchant confirm/select. If flag 0xb8 is set, calls Ench__mgr_00683ff0. Otherwise gets selected item from list, calls Ench__mgr_006863f0, then Ench__mgr_00683ef0 with the selected socket data.
0x00A050E0162EnchantUI__request_perfect_upgrade_enchantSends a perfect upgrade enchant request to the server. Ensures CEnchantMgr singleton exists, gets equipment pointer and slot info via CUIItemSlot__this_adjust_0x90, then calls CEnchantMgr__send_perfect_upgrade_enchant_packet with account/character IDs, equipment slot, and enchant slot. Previously misnamed as request_close.
0x00A05290218EnchantUI__find_available_slot_00a05290Finds first available enchant slot. Gets equipment info from offset 0xa4, copies CShopItem data, iterates slot indices checking which are empty (value 0 in aiStack_f0 array). Returns first empty slot index, or -1 if all slots are filled.
0x00A053E0114EnchantUI__find_enchant_data_by_id_00a053e0Searches an RB-tree (at offset 0xa4+0x60) for enchant data by ID (param_3). Performs standard RB-tree upper_bound search. Returns pointer to data (node+6) if found with matching or lower key, sets valid flag. Returns invalid if equipment data is null or key not found.
0x00A05470455EnchantUI__on_enchant_slot_selectHandles enchant slot selection. Hides all child windows, resets text to '0', finds enchant data by ID, reads slot index from string field, looks up and navigates to the enchant list window.
0x00A05640543EnchantUI__on_enchant_slot_select_extendedExtended enchant slot selection handler. Similar to on_enchant_slot_select but handles two-level navigation: first finds slot data, then reads sub-index to navigate deeper into enchant hierarchy.
0x00A05860259EnchantUI__populate_item_slotPopulates an item slot in the enchant UI. Clears existing data, loads item info (class/level), populates slot from item data, builds tooltip string, assigns to text label, and calls virtual enable/disable (vtable+0xE0).
0x00A05970538EnchantUI__update_enchant_buttonsUpdates enchant UI button states for both enchant containers (offsets 0x3A, 0x3B) and the confirm button (0x3C). For each container's two slots (0x80, 0x84), calls button event handler and optionally resizes based on enchant data.
0x00A05B90329EnchantUI__update_item_slot_displayUpdates item slot display with enchant count. Populates slot from item data, formats count string if positive, shows/hides count label, builds tooltip, assigns text.
0x00A05CF0253EnchantUI__create_item_slot_gridCreates an 8-item slot grid (4 columns x 2 rows). Each slot is factory-created as a UI window, positioned at column*0x4A, row*0x34. Slots are added to a linked list at offset 0x90. Calls button handler after creation.
0x00A05E2081EnchantUI__enable_both_child_viewsEnables both child listbox views at offsets 0x80 and 0x84. Finds items via UIListBox__find_item_by_data, sets enabled flag (0x21) to 1, and refreshes display via vtable 0x98.
0x00A05E80132EnchantUI__refresh_all_button_states_00a05e80Calls FUN_00a05cf0 for cleanup, then traverses the RB-tree at offset 0x88 (in-order), setting each node's child window (node[5]+0x80) enabled flag to 1 and refreshing via vtable 0x98.
0x00A05F10153EnchantUI__refresh_buttons_and_list_00a05f10Same as 00a05e80 but also sets list at offset 0x98 field 0x31 to 1 and calls its vtable 0x98 to refresh.
0x00A05FB0153EnchantUI__refresh_buttons_and_list_00a05fb0Same as 00a05f10 - refreshes all button states via RB-tree traversal, then refreshes list control.
0x00A0605050EnchantUI__disable_scroll_and_select_tabDisables child 0x84 (clears flag 0x7c), hides scrollbar, then calls vtable 0xb4(0) on child 0x80 to select tab index 0.
0x00A0609050EnchantUI__disable_scroll_and_select_tab_00a06090Disables child 0x84, hides scrollbar, calls vtable 0xb4(1) on child 0x80 to select tab index 1.
0x00A060D050EnchantUI__disable_scroll_and_select_tab_00a060d0Disables child 0x84, hides scrollbar, calls vtable 0xb4(2) on child 0x80 to select tab index 2.
0x00A0611050EnchantUI__disable_scroll_and_select_tab_00a06110Disables child 0x84, hides scrollbar, calls vtable 0xb4(3) on child 0x80 to select tab index 3.
0x00A0617030EnchantUI__cleanup_and_refresh_list_00a06170Calls FUN_00a05cf0 for cleanup, then sets list (offset 0x98) field 0x31 to 1 and calls vtable 0x98 to refresh.
0x00A0619045EnchantUI__on_mouse_moveMouse move handler for EnchantUI. Performs hit test, and if cursor is over the control, calls prepare_render_context to update display.
0x00A061C033EnchantUI__delegate_to_child_vtable70Delegates a virtual call (vtable+0x70) to the child control at offset 0xe8. Used for forwarding UI events in EnchantUI.
0x00A061F033EnchantUI__delegate_to_child_vtable70_00a061f0Delegates a virtual call (vtable+0x70) to the child control at offset 0xe8. Duplicate of 00a061c0 for a different context.
0x00A0622036EnchantUI__delegate_to_child_vtable80Delegates a virtual call (vtable+0x80) to the child control at offset 0xe8.
0x00A0625060EnchantUI__delegate_mouse_to_childPerforms hit test, then delegates mouse event to child window at offset 0x84 with coordinates adjusted relative to the child's position.
0x00A0629036EnchantUI__delegate_to_child_vtable80_00a06290Delegates a virtual call (vtable+0x80) to the child control at offset 0xe8. Duplicate of 00a06220.
0x00A062C052EnchantUI__dynamic_dispatch_to_childUses RTDynamicCast to get a typed child control from offset 0x10, then calls vtable+0xe8 on it with data from param_2+0x2c.
0x00A0630074EnchantUI__sync_scrollbar_stateSynchronizes scrollbar state: sets max value (item_count * row_height + header), visible range, current scroll position, and marks the list as needing redraw.
0x00A06350462EnchantUI__on_item_deselectedHandles item deselection in EnchantUI. Clears list data, disables all linked list items (vtable 0x38 with 0), resets count to "0", refreshes child 0x28, then toggles a listbox item's enabled state based on vtable 0xe0 result.
0x00A06520384EnchantUI__on_item_deselected_variantVariant of item deselection handler. Disables linked list items, resets count label to "0", refreshes child 0x28, clears list data, then calls vtable 0xe0.
0x00A066A073EnchantUI__handle_item_dropHandles item drop/selection in EnchantUI. Calls button event handler to reset state, then if param_4 != 0, validates via populate_slot_items and stores coordinates (x, y, item) before calling vtable 0xe4.
0x00A066F0163EnchantUI__handle_dual_panel_item_dropHandles item drop on both panels (children 0x80 and 0x84). For each panel, resets via button event handler, validates via populate_slot_items, and stores drop coordinates before calling vtable 0xe4.
0x00A067A039EnchantUI__forward_event_to_childrenForwards an event (param_2) to both child controls at offsets 0x80 and 0x84 via vtable 0xec.
0x00A067D047EnchantUI__toggle_listbox_item_enabledFinds a listbox item by data and toggles its enabled state (XOR with 1), then refreshes the item display via vtable 0x98.
0x00A06800482EnchantUI__reset_all_slots_and_listResets all enchant UI state. Disables all slot items in the RB-tree (vtable 0x38 with 0), clears linked list items, resets the item list, zeros the count label, refreshes child 0x28, and notifies parent with -1 via vtable 0xec.
0x00A069F086EnchantUI__set_tab_selected_styleSets the visual style for a selected/deselected tab. Stores selection state at offset 0x48, sets font size (selected=0x644031, deselected=0xb6752e), toggles bold, and rebuilds text layout.
0x00A06A50165EnchantUI__adjust_child_positionsAdjusts child control positions by +/-1 pixel based on param_2 (expand/collapse toggle). Moves three children at offsets 0xe8, 0xec, 0xf0. Checks field 0x88 to avoid double-adjusting. Calls set_orientation at end.
0x00A06B00221EnchantUI__select_tab_by_idSelects a tab by ID. Iterates the RB-tree at offset 0x22, comparing each node's key to param_2. Matching tab gets bold font + larger size, others get normal. Calls vtable 0xe4 after selection change.
0x00A06BE063EnchantUI__set_enabled_with_colorSets enabled/disabled state on child at 0xe8 (flag 0x86) and changes text label color: enabled=0xaaaaaa (gray), disabled=0xc89682 (muted red).
0x00A06C2030EnchantUI__set_child_enabledSets the enabled flag (offset 0x21) on child control at 0x80, then refreshes via vtable 0x98.
0x00A06C40827EnchantUI__load_enchant_data_and_populate_itemsLoads enchant data by uint64 key via CEnchantMgr. For each eligible item, checks equip status, base level, refine level, and enchant flag. Adds qualifying items to the enchant item list and syncs the scrollbar.
0x00A06F80380EnchantUI__populate_available_enchantsFinds available enchant slot, loads enchant data, iterates enchant options. For each option, checks expiration time and material costs (quantity owned vs required). Adds to list with availability flag. Syncs scrollbar after populating.
0x00A07100472EnchantUI__populate_enchant_optionsPopulates enchant option details for a specific slot. Finds the enchant slot by item level in an RB-tree, builds linked list of option IDs, adds each as an item pair to the list control, syncs scrollbar, and updates the main window.
0x00A072E0345EnchantUI__validate_enchant_requirementsValidates enchant requirements for the selected item. Updates main window display, then checks if the item has all required enchant slots filled (up to 4). Returns true if all requirements met, false if any slot is empty.
0x00A07440412EnchantUI__populate_enchant_list_by_gradePopulates enchant list filtered by grade. Looks up enchant data by selected ID, finds matching grade entry, iterates enchant options checking expiration and material costs. Adds items with availability flags. Syncs scrollbar on success.
0x00A075E0510EnchantUI__populate_enchant_options_by_slotPopulates enchant options filtered by slot index. Looks up enchant data, finds slot by atoi of item string, searches RB-tree for matching entry. Builds option list, adds items, syncs scrollbar, and updates main window with selected info.
0x00A077E0226EnchantUI__display_item_infoDisplays item info in the EnchantUI. Creates CItemDesc from item ID, populates slot data, builds tooltip string, and sets it on a text label.
0x00A078D0271EnchantUI__display_item_detail_panelDisplays item detail on a text panel in EnchantUI. Creates CItemDesc, populates slot data, copies item name string, clears panel, then appends tooltip text.
0x00A079E0448EnchantUI__populate_slot_itemsPopulates the enchant slot grid items. For each slot in the RB-tree (up to 4), loads item data, builds name/tooltip, and sets visibility. Returns true if any slots were populated, false if param_2 has no data.
0x00A07BA0519EnchantUI__display_material_requirementDisplays a material requirement row. Shows item icon, owned quantity vs required count. Colors text red (0x5a3ce6) if insufficient, white (0xf0f0f0) if sufficient. Enables/disables the row's child control accordingly.
0x00A07DB0328EnchantUI__update_selected_item_infoUpdates the selected item's info display. Populates item data, shows base level requirement if > 0, enables/disables confirm button, and sets tooltip text on a label.
0x00A07F00528EnchantUI__update_material_listUpdates the material requirements list for the selected enchant. Iterates slot list, shows/hides each row, calls display_material_requirement for visible ones. Sets cost text, checks expiration and material availability to enable/disable confirm button.
0x00A08110118EnchantUI__is_enchant_mgr_idleGets or creates the CEnchantMgr singleton, then returns true if field 0x30 is zero (manager is idle/not busy). Not a destructor despite original name.
0x00A19C60199UIDialog__ctor_00a19c60Constructor for UIDialog. Inherits from UIBase (vtable 0x011489F0). Initializes dialog-specific fields: flags, STL string, two object pointers at +0x31*4 and +0x3B*4.
0x00A19DC0250UIDialog__dtor_00a19dc0Destructor for UIDialog variant (vtable 0x01150200). Cleans up child widget at +0x8C, destroys two owned objects at +0xEC and +0xC4 via virtual delete, then calls UIBase dtor.
0x00A19EC0250UIDialog__dtor_00a19ec0Destructor for UIDialog variant (vtable 0x011502DC). Same cleanup pattern: destroys child widget at +0x8C, two owned objects at +0xEC and +0xC4 via virtual delete, then calls UIBase dtor.
0x00A19FC0250UIDialog__dtor_00a19fc0Destructor for UIDialog variant (vtable 0x01150124). Same pattern: cleans up child widget +0x8C, destroys owned objects at +0xEC and +0xC4, calls UIBase dtor.
0x00A1A0C0250UIDialog__dtor_00a1a0c0Destructor for UIDialog variant (vtable 0x01150048). Same pattern: cleans up child widget +0x8C, destroys owned objects at +0xEC and +0xC4, calls UIBase dtor.
0x00A1B240274UIDialog__scalar_deleting_dtor_00a1b240Scalar deleting destructor for UIDialog (vtable 0x01150200). Runs dtor then conditionally frees 0xF0-byte object if bit 0 of param_2 is set.
0x00A1B360274UIDialog__scalar_deleting_dtor_00a1b360Scalar deleting destructor for UIDialog (vtable 0x011502DC). Runs dtor then conditionally frees 0xF0-byte object.
0x00A1B480274UIDialog__scalar_deleting_dtor_00a1b480Scalar deleting destructor for UIDialog (vtable 0x01150124). Runs dtor then conditionally frees 0xF0-byte object.
0x00A1B5A0274UIDialog__scalar_deleting_dtor_00a1b5a0Scalar deleting destructor for UIDialog (vtable 0x01150048). Runs dtor then conditionally frees 0xF0-byte object.
0x00A1B820353UIOptionWindow__create_subwindow_00a1b820Factory function that creates a UIComponent subwindow (0xF0 bytes). Sets up position/size from parent, creates child stream handlers for option slots, and adds it to the parent hierarchy.
0x00A1B990353UIOptionWindow__create_subwindow_00a1b990Factory function that creates a UIComponent subwindow variant (0xF0 bytes). Sets up position/size from parent, creates child stream handlers for option slots.
0x00A1BB00353UIOptionWindow__create_subwindow_00a1bb00Factory function that creates a UIComponent subwindow variant (0xF0 bytes). Sets up position/size from parent, creates child stream handlers for option slots.
0x00A1BC70353UIOptionWindow__create_subwindow_00a1bc70Factory function that creates a UIComponent subwindow variant (0xF0 bytes). Sets up position/size from parent, creates child stream handlers for option slots.
0x00A1BDE0353UIOptionWindow__create_subwindow_00a1bde0Factory function that creates a UIComponent subwindow variant (0xF0 bytes). Sets up position/size from parent, creates child stream handlers for option slots.
0x00A1C1B02782UIOptionWindow__init_controls_00a1c1b0Initializes the option window controls. Stores width/height/param4, creates UIComponent + UIDialog + CListCtrl sub-widgets. Uses XOR-encrypted strings for control names (decrypted at runtime). Sets up scrollbar, item list, and multiple text labels via encrypted resource strings.
0x00A1CC902782UIOptionWindow__init_controls_00a1cc90Initializes option window controls variant. Same pattern as 00a1c1b0 with XOR-encrypted strings and sub-widget creation.
0x00A1D7702782UIOptionWindow__init_controls_00a1d770Initializes option window controls variant. Same pattern as 00a1c1b0 with XOR-encrypted strings and sub-widget creation.
0x00A1E2502782UIOptionWindow__init_controls_00a1e250Initializes option window controls variant. Same pattern as 00a1c1b0 with XOR-encrypted strings and sub-widget creation.
0x00A1EE2092UIOptionWindow__init_window_layout_00a1ee20Initializes the option window layout. Sets flags, calls virtual methods to set size (400x350), position (0,0), activate/show, applies skin colors (0,0,3,1), and sets render mode to 3.
0x00A1EE80189UIOptionWindow__create_tab_page_00a1ee80Creates a tab page (0x84 bytes) for the option window. Sets its size (400x288), adds to parent hierarchy, then pushes it to the vector at this+0xE4/0xE8 (using emplace if full).
0x00A1EF4080UIOptionWindow__scroll_to_bottom_00a1ef40Scrolls an option window pane to the bottom. If a condition is met, calculates max scroll (height-1) and calls FUN_00aa27b0 to scroll the list control at +0x8C.
0x00A1EF9080UIOptionWindow__scroll_to_bottom_00a1ef90Scrolls an option window pane to the bottom. Same pattern as 00a1ef40.
0x00A1EFE080UIOptionWindow__scroll_to_bottom_00a1efe0Scrolls an option window pane to the bottom. Same pattern as 00a1ef40.
0x00A1F03080UIOptionWindow__scroll_to_bottom_00a1f030Scrolls an option window pane to the bottom. Same pattern as 00a1ef40.
0x00A1F210193UIOptionWindow__create_scrollbar_00a1f210Creates a scrollbar child widget (0xF0 bytes) using FUN_009be480. Stores at this+0xB0, sets hidden (flag 0), creates stream handler, and adds to parent hierarchy.
0x00A1F2E0193UIOptionWindow__create_scrollbar_00a1f2e0Creates a scrollbar child widget variant. Same pattern as 00a1f210.
0x00A1F3B0193UIOptionWindow__create_scrollbar_00a1f3b0Creates a scrollbar child widget variant. Same pattern as 00a1f210.
0x00A1F480193UIOptionWindow__create_scrollbar_00a1f480Creates a scrollbar child widget variant. Same pattern as 00a1f210.
0x00A1F550193UIOptionWindow__create_option_slotCreates an option slot control (0xF0 bytes, UIInterfaceDialog). Sets invisible via vtable+0x38, registers OptionSlot callback for option changes, and adds as child to parent hierarchy. Stores at this+0xB0.
0x00A1F620623UIOptionWindow__create_child_widgetsCreates 6 child widgets for a UIOptionWindow section: UILabel at +0x80 (0x88 bytes, 400x36), UISlider at +0x84 (0xA4 bytes, 400x60), UIPanel at +0x88 (0x94 bytes, 400x36), UICheckBox at +0x8C (0x94 bytes, 400x60), UIProgressBar at +0x90 (0x9C bytes, 400x36), UIImage at +0x94 (0x94 bytes, 400x36). Each positioned vertically in sequence and added as child.
0x00A1F890636UIOptionWindow__create_description_label_00a1f890Creates a text label widget (0xFC bytes) for the option window description area. Positions at (0x9B, 0x10), sets size, font (XOR-encrypted name), line spacing 12, no bold, black color with white outline/shadow. Stores at this+0xE8.
0x00A1FB1013033UIOptionWindow__setup_option_pages_00a1fb10Large function (13033 bytes) that sets up all option pages for the settings/options window. SKIPPED decompilation due to size > 5000 bytes.
0x00A22E00623UIOptionWindow__create_all_controls_00a22e00Creates all child controls for the option window: UISprite (+0x80, 400x32), UIListBox (+0x84, 400x64), UIButton (+0x88), UIRadioButton (+0x8C), UIScrollPanel (+0x90), and UIDropdown (+0x94). Each is sized 400xW and positioned vertically.
0x00A230705276UIOptionWindow__init_page_content_a_00a23070Option window page content initialization (5276 bytes). SKIPPED decompilation due to size > 5000 bytes.
0x00A245105326UIOptionWindow__init_page_content_b_00a24510Option window page content initialization (5326 bytes). SKIPPED decompilation due to size > 5000 bytes.
0x00A259E05954UIOptionWindow__init_page_content_c_00a259e0Option window page content initialization (5954 bytes). SKIPPED decompilation due to size > 5000 bytes.
0x00A271303015UIOptionWindow__create_list_sectionCreates a list-based option section: text label at +0x80 (0xFC bytes, XOR-encrypted title, bold, black with white outline/shadow), option dialog at +0x84 (0xF0 bytes) initialized via init_controls_00a1d770 with 4 XOR-encrypted button text labels, and optional list dialog at +0x88 (0x120 bytes) with stream callbacks for item selection and scrolling. Positioned at offset (9, 0x96).
0x00A27D005244UIOptionWindow__init_page_content_d_00a27d00Option window page content initialization (5244 bytes). SKIPPED decompilation due to size > 5000 bytes.
0x00A291807484UIOptionWindow__init_page_content_e_00a29180Option window page content initialization (7484 bytes). SKIPPED decompilation due to size > 5000 bytes.
0x00A2AEC05372UIOptionWindow__init_page_content_f_00a2aec0Option window page content initialization (5372 bytes). SKIPPED decompilation due to size > 5000 bytes.
0x00A2C3C03006UIOptionWindow__create_list_section_00a2c3c0Creates a list-based option section variant: text label at +0x80 (0xFC bytes, shorter title 0x4B wide, XOR-encrypted), option dialog at +0x84 (0xF0 bytes) initialized via init_controls_00a1e250 with 4 XOR-encrypted button labels, and optional list dialog at +0x88 (0x120 bytes). Same pattern as 00a27130 but with different init_controls call and positioned at (9, 0x6E).
0x00A2CF8010486UIOptionWindow__handle_message_00a2cf80Option window message handler (10486 bytes). SKIPPED decompilation due to size > 5000 bytes.
0x00A2F8803083UIOptionWindow__create_scrollbar_sectionCreates a scrollbar-based option section: text label at +0x80 (0xFC bytes, XOR-encrypted title, bold, black with white outline/shadow), scrollbar at +0x84 (0xF0 bytes, UIInterfaceDialog) with max=0x80, visible range=0x80, XOR-encrypted button/background/thumb textures. Sets up scroll callback and positions at (0xB, 0x99).
0x00A304903034UIOptionWindow__create_scrollbar_section_00a30490Creates a scrollbar-based option section variant: text label at +0x80 (0xFC bytes, XOR-encrypted 14-char title, bold, black with white outline/shadow), scrollbar at +0x84 (0xF0 bytes) with max=0x80, visible range=0x80, XOR-encrypted button/background/thumb textures. Same pattern as 00a2f880 but different TLS offsets and texture keys. Positioned at (0xB, 0x99).
0x00A310705340UIOptionWindow__save_settings_00a31070Saves current option settings from UI controls to configuration (5340 bytes). SKIPPED decompilation due to size > 5000 bytes.
0x00A325503323UIOptionWindow__create_listctrl_sectionCreates a CListCtrl-based option section: list control at +0x80 (0x138 bytes, item size 0x183x0x1A, viewport 400x0x11E). Clones child objects for item/row templates, initializes 3 map columns (0,1,2) with empty strings, configures scrollbar with XOR-encrypted button labels, background texture, and horizontal thumb textures. Calls rebuild_visible_items and adds as child.
0x00A332504732UIOptionWindow__create_main_controlsCreates the main controls for a UIOptionWindow variant: checkbox at +0xE8 (0x150 bytes), list dialog at +0xEC (0x120 bytes) with stream callback, dialog at +0xF0 (0x190 bytes) with label/font/colors, and text label at +0xF4 (0xFC bytes). Sets XOR-encrypted button textures for both list dialogs and configures label formatting (font, size 12, bold, black text with white shadow/outline).
0x00A36B7083UIDialog__notify_callbacks_00a36b70Notifies registered callbacks when dialog state changes. Calls callback at +0xEC with widget ID, and callback at +0xC4 with param_2.
0x00A36BD083UIDialog__notify_callbacks_00a36bd0Notifies registered callbacks. Same pattern as 00a36b70.
0x00A3A43020SettingsUI__on_slider_change_callbackCallback for slider value change in settings UI. Dereferences pointer param and forwards to SettingsUI::notify_apply_button_update.
0x00A3A45020SettingsUI__on_checkbox_change_callbackCallback for checkbox state change in settings UI. Dereferences pointer param and forwards to SettingsUI::check_and_update_apply_button.
0x00A3F10099SettingsUI__initialize_windowInitializes the settings UI window. Checks a condition via FUN_00a401c0, creates window with ID 0xC5F or 0xC60, dimensions 0x118x0x78. If window creation succeeds (not 0xBC), calls FUN_00a40900 and FUN_00a421e0 to set up content.
0x00A3F180277SettingsUI__apply_and_refreshApplies all game settings changes and refreshes the settings UI. Creates settings window (0xC5E), notifies all child controls to save (vtable+0xD8), ensures GameSettings singleton exists, calls apply_all_options, notifies children to reload (vtable+0xDC), then syncs all checkboxes/labels.
0x00A3F2A0128SettingsUI__apply_single_optionApplies a single game option change. Ensures GameSettings singleton exists (allocates 0x58 bytes if needed), then calls GameSettings__apply_option_change_2 with the option ID from this->offset_0xF8.
0x00A3F32052SettingsUI__on_list_selectionHandles list selection in settings UI. If selected index > 0, gets UI window 0x13B and dispatches an event with the selected value.
0x00A3F360107SettingsUI__toggle_smooth_scrollToggles smooth scroll option (option ID 7). Inverts the param, sets scrollbar smooth scroll, updates the control at offset 0x88, saves to GameSettings, and if the value changed, sends notification event (0x5A) via global callback.
0x00A3F3D0168SettingsUI__on_bgm_volume_changedHandles BGM volume slider change. Sets stream volume via CSoundMgr, reads back the volume value, sets BGM max volume, converts to string and updates scrollbar thumb tooltip text.
0x00A3F48064SettingsUI__toggle_option_0xbToggles game option 0xB. Inverts param, sets scrollbar smooth scroll, updates control at offset 0x98, and saves to GameSettings.
0x00A3F4C0159SettingsUI__on_sound_volume_changedHandles sound effect volume slider change. Sets sound volume and 3D volume via CSoundMgr, reads config value at offset 0xe8, converts to string and updates scrollbar thumb tooltip text.
0x00A3F56092SettingsUI__toggle_option_0xf3Toggles game option 0xF3. Saves to GameSettings, sends effect notification (type=3 clear, type=1 with resource ID 0xDC7 or 0xDC8 based on toggle state).
0x00A3F5C092SettingsUI__toggle_option_0xa5Toggles game option 0xA5. Saves to GameSettings, sends effect notification (type=3 clear, type=1 with resource ID 0x414 or 0x415 based on toggle state).
0x00A3F64094SettingsUI__send_packet_option_toggleSends a network packet for a settings toggle. XORs param with 1, builds packet with header 0xB93 and toggle flag, calls packet assembly functions FUN_00c7d7d0 twice, then sends via FUN_00c7ce30.
0x00A3F6B020SettingsUI__toggle_smooth_scroll_wrapperWrapper that calls SettingsUI__toggle_smooth_scroll_00a3f360.
0x00A3F6D066SettingsUI__set_smooth_scroll_directSets smooth scroll directly (without inverting). Updates scrollbar, control at offset 0x98, and saves inverted value to GameSettings option 0xB.
0x00A3F720152SettingsUI__toggle_invertible_optionToggles an option that may be invertible. Ensures GameSettings singleton exists, checks if option type is invertible via GameSettings__is_invertible_type, XORs value if so, then applies via GameSettings__apply_option_change.
0x00A3F95081SettingsUI__on_full_list_item_selectedHandles selection of a full list item. Gets selected index from inner listbox, traverses linked list to find the item, copies it via UIListItem__assign, then calls FUN_00a427a0 to process the selection.
0x00A3F9E0171SettingsUI__on_small_list_item_selectedHandles selection of a small list item. Gets selected index from inner listbox, traverses to find the item, copies 3 data fields + 1 string to this+0x184, then uses RTDynamicCast to get settings panel (0x271E) and calls FUN_00a421e0 to update UI.
0x00A3FAC081SettingsUI__on_medium_list_item_selectedHandles selection of a medium list item. Gets selected index from inner listbox, traverses to find item, copies data field to this+0x8C, then calls FUN_00a42460 to process selection.
0x00A3FB5066SettingsUI__on_skin_selectedHandles skin selection from the settings list. Gets selected index (subtracts 1), updates CSkinSelector if changed, then calls FUN_00a8bb20 and FUN_00a966e0 to apply the new skin.
0x00A3FCD0863SettingsUI__get_user_hotkey_info_stringBuilds a hotkey info string. Allocates "GetUserHotKeyInfo" string, calls FUN_00afc9a0 on a global. If CFmt check passes, also allocates "GetOriginalHotKeyInfo". Returns the resulting string in param_1 (std::string out-param).
0x00A40080102SettingsUI__check_settings_unchangedChecks if UI settings have not changed from stored global values. Calls FUN_00a401c0 first; if that returns 0, compares UI control values at offsets 0x88/0x8c/0x94 against DAT_0173a8e0/e4/e8. Returns 0 if all match (unchanged), 1 if any differ.
0x00A4011055SettingsUI__validate_two_fieldsValidates two UI input fields at offsets +0xf8 and +0x184 within the settings object using stub_00569da0 and stub_00569e60. Returns 0 if both pass validation, 1 otherwise.
0x00A401C0114SettingsUI__check_page_and_fields_validChecks if the settings page is valid: verifies offsets 0x88==0x8c in the sub-object at +0x80, validates two input fields (+0xf8, +0x184) via stub_00569da0/stub_00569e60, and compares a checkbox state against DAT_0173a8c0. Returns 0 if all pass, 1 otherwise.
0x00A4024036SettingsUI__is_tab_page_4_selectedChecks if tab page 4 (accessibility) is currently selected. Reads the selection value from the tab control at offset +0xf0. Returns 1 if page index == 4, 0 otherwise. Returns 0xffffff00 if the sub-object at +0x80 is null.
0x00A40280404SettingsUI__apply_option_to_controlsApplies a game settings option to UI controls. Stores option ID at +0xf8, creates GameSettings singleton if needed, retrieves the option state, sets checkbox/radio button states, updates text label and tooltip from the option's string data. Uses GameSettings__is_invertible_type and GameSettings__get_option_state.
0x00A4043075SettingsUI__disable_option_0xf3_and_notifyDisables game option 0xF3 (sets to 0), plays notification sound (type 3 then type 1 with msg ID 0xDC8). Sends a UI notification after changing the setting.
0x00A4048075SettingsUI__enable_option_0xa5_and_notifyEnables game option 0xA5 (sets to 1), plays notification sound (type 3 then type 1 with msg ID 0x414). Sends a UI notification after changing the setting.
0x00A404F089SettingsUI__send_packet_0xb93Constructs and sends a network packet with header 0xB93. Sets up local_14=0xB93, local_10=1, local_c=1, calls two packet construction functions, then sends via FUN_00c7ce30.
0x00A40560876SettingsUI__apply_audio_and_scroll_defaults_from_luaApplies default audio and scroll settings from obfuscated Lua config strings. Decrypts TLS-cached config key strings via xor_decrypt_buffer, reads default int values via lua_get_default_option_value_int, then applies: BGM volume (on_bgm_volume_changed), smooth scroll toggle, sound volume (on_sound_volume_changed), and scrollbar smooth scroll state + GameSettings option 0xB.
0x00A40900655SettingsUI__on_settings_changedHandles settings change events. If page/fields are valid (check_page_and_fields_valid returns nonzero), saves current state to globals DAT_0173a8xx (text rendering mode, font settings, etc.) for page type 1 or 2. If fields haven't changed, updates individual settings like DAT_0173a8e0 (render mode), DAT_0173a8e4 (font quality mapping), DAT_0173a8e8 (bold toggle). Triggers text render reinit and reflow as needed.
0x00A40C401236SettingsUI__init_settings_dialogInitializes the settings dialog window. Centers the window on screen, sets the title text from msg ID 0x946, populates 5 list box items (IDs 0-4) with localized strings from msg IDs 0x102E-0x107E. Iterates child control lists to trigger their init/refresh callbacks.
0x00A41120151SettingsUI__init_graphics_tab_labelsInitializes text labels for the graphics settings tab. Sets 3 labels using localized strings from msg IDs 0x1032, 0x1035, and 0x1036 via UITextLabel__assign_text_and_recalc.
0x00A411C0151SettingsUI__init_audio_tab_labelsInitializes text labels for the audio settings tab. Sets 3 labels using localized strings from msg IDs 0x1057, 0x1058, and 0x1059 via UITextLabel__assign_text_and_recalc.
0x00A41260676SettingsUI__init_font_tab_and_populateInitializes the font settings tab. Sets header labels from msg IDs 0xC6D and 0xC6E, calls CRT_init_text_render_singleton, retrieves font info via stub_0056a0f0, populates the UI list item with font data (name string, metrics at various offsets), assigns current settings from DAT_0173a8c4/c8/cc, and copies current font settings to the working copy.
0x00A4151079SettingsUI__init_community_tab_headerInitializes the community/social settings tab header. Sets label text from msg ID 0x1001, initializes text render singleton, gets a value via stub_0056a230 and stores it as both the current and max value at offsets +0x88 and +0x8c.
0x00A41560431SettingsUI__init_accessibility_tab_labelsInitializes the accessibility settings tab labels. Sets 3 text labels from msg IDs 0x107D, 0x1033, and 0x1034. Also decrypts an obfuscated string using xor_decrypt_buffer (key 0xf96d9da5/0x03772763) and sets it as a non-recalculated text label, likely an anticheat or protected setting name.
0x00A41710343SettingsUI__init_gameplay_tab_labelsInitializes text labels for the gameplay settings tab. Sets 7 labels using localized strings from msg IDs 0x1039-0x103F. Alternates between recalc and no-recalc text assignment for the label pairs.
0x00A41870151SettingsUI__init_notification_tab_labelsInitializes text labels for the notification settings tab. Sets 3 labels from msg IDs 0xC40, 0x1038, and 0x1037 via UITextLabel__assign_text_and_recalc.
0x00A41910582SettingsUI__populate_font_listPopulates the font selection list in settings UI. First adds a header item from msg ID 0x5D9, then adds a default item from msg ID 0xC12. Iterates through CStringTable entries (font names) and adds each as a list box item. Finally calls FUN_00a42160 to update the scrollbar.
0x00A41B60247SettingsUI__init_chat_tab_labelsInitializes text labels for the chat settings tab. Sets 5 labels from msg IDs 0x5CD, 0x5D7, 0x1034, 0x5D8, and 0x1034 via UITextLabel__assign_text_and_recalc.
0x00A41CE0151SettingsUI__init_shortcut_tab_labelsInitializes text labels for the shortcut/keybind settings tab. Sets 3 labels from msg IDs 0x105A, 0x1033, and 0x1034 via UITextLabel__assign_text_and_recalc.
0x00A41DA057SettingsUI__layout_child_controls_verticallyIterates through linked list of child controls at offset +0x50, positioning each one vertically. Each control is set to y-position = cumulative height, then the child's height (offset +6*4=0x18) is added to the running total.
0x00A41DE045SettingsUI__draw_if_visibleDraws the settings UI element if it passes hit testing. Calls UIControl__hit_test first, and if visible, calls UIWindow__draw_header_area to render the header.
0x00A41E1026SettingsUI__select_accessibility_tabSelects the accessibility tab (item ID 4) in the settings list box. Finds and selects the list item via UIListBox__find_item_by_id and UIListBox__select_item.
0x00A41E3027SettingsUI__wrapper_toggle_option_0xf3Simple wrapper that calls SettingsUI__toggle_option_0xf3_00a3f560. Used as a callback handler for a UI button/event.
0x00A41E5052SettingsUI__check_and_update_apply_buttonChecks if settings have changed and updates the apply button state. Looks up window ID 0x271E via FUN_00aa5f70, casts it via __RTDynamicCast, and if the cast succeeds calls FUN_00a421e0 to enable/disable the apply button based on whether settings differ from saved values.
0x00A41E9027SettingsUI__wrapper_toggle_option_0xa5Simple wrapper that calls SettingsUI__toggle_option_0xa5_00a3f5c0. Used as a callback handler for a UI button/event.
0x00A41EB0120SettingsUI__set_process_prioritySets the process priority class based on which radio button is selected. Compares param_2 against three button IDs at offsets +0x84, +0x8c, +0x94. Sets priority to NORMAL_PRIORITY_CLASS (0x80/0x20) or IDLE_PRIORITY_CLASS (0x40) via SetPriorityClass on the current process. Stores selection in DAT_0173a5c4.
0x00A41F30101SettingsUI__on_priority_radio_changedHandles priority radio button change event. Determines which radio is not selected (local_c = param_2 != offset +0x8c), constructs and sends packet 0xB93 with the selection state.
0x00A41FA052SettingsUI__check_and_update_apply_button_altAlternative path to check and update the apply button. Same logic as SettingsUI__check_and_update_apply_button - looks up window 0x271E, casts via RTDynamicCast, calls FUN_00a421e0 if cast succeeds.
0x00A41FE0128SettingsUI__update_font_list_scrollbarUpdates the scrollbar for the font selection list. Calculates visible item count (min of total items and max visible), resizes the list if needed, then updates scrollbar max value, visible range, and current position. Marks the list as needing redraw.
0x00A42060128SettingsUI__update_font_detail_list_scrollbarUpdates scrollbar for the font detail/variant list. Same pattern as update_font_list_scrollbar: calculates visible count, resizes if needed, updates scrollbar max/range/value, marks for redraw.
0x00A420E0128SettingsUI__update_options_list_scrollbarUpdates scrollbar for the options list control. Same pattern: calculates visible items, resizes list, updates scrollbar max/visible range/position, marks for redraw.
0x00A42160128SettingsUI__update_generic_list_scrollbarUpdates scrollbar for a generic settings list. Calculates visible items from list count and max visible, resizes if needed, updates scrollbar max/range/value, and marks the list for redraw.
0x00A421E0162SettingsUI__update_apply_button_enabled_stateUpdates the apply button enabled state based on whether settings have changed. Checks if the tab page index is 3 (font settings), then compares current UI values against stored globals (DAT_0173a8e0/e4/e8). Enables the apply button (+0xf8 control) with value 1 if changes detected, 0 if unchanged.
0x00A42290453SettingsUI__load_options_into_listLoads game settings options into a list control. Creates GameSettings singleton if needed, loads option config entries for the given param_2, iterates the returned linked list and inserts each entry into the UI list at +0x80. Updates scrollbar, marks list as needing redraw, and calls SettingsUI__sync_all_checkboxes_and_labels to refresh the UI state.
0x00A42460830SettingsUI__populate_font_family_listPopulates the font family selection list. Clears the existing list at +0x84->0x8c, resets scrollbar. Retrieves font families from the text render system, creates linked list entries with font data (name strings, metrics). Updates font list scrollbar. Searches for the currently selected font and scrolls to it, triggering selection via FUN_00a36cf0. Cleans up temporary font data.
0x00A427A01069SettingsUI__populate_font_style_listPopulates the font style/variant list for the selected font family. Clears existing list at +0x8c->0x8c, resets scrollbar. Retrieves font styles for the given family (via +0xfc), creates linked list entries with style info. Updates scrollbar. If no matching style found, falls back to default font from stub_0056a240 and uses stored DAT_0173a8cc. Scrolls to the matching style and selects it via CListCtrl__on_item_clicked. Cleans up temporary data.
0x00A42BD0699SettingsUI__populate_font_size_listPopulates the font size selection list. Clears existing list at +0x84->0x8c, resets scrollbar. Retrieves available font sizes via stub_0056a2a0, creates linked list entries with size values and names. Updates scrollbar. Finds the entry matching the current selection (+0x8c) and scrolls to it, triggering selection via CListCtrl__on_item_clicked. Cleans up temporary data.
0x00A42E90301SettingsUI__save_font_settings_to_globalsSaves font settings from the UI to global variables. Calls UIListItem__assign to update the display, copies font metrics. For page type 1 (font family): copies font name to DAT_0173a898, font metrics to DAT_0173a878-0173a894. For page type 2 (font style): copies style data to DAT_0173a8f4-0173a904. Always updates DAT_0173a8c4/c8/cc with current selection.
0x00A42FE09thunk_to_SettingsUI__on_bgm_volume_changedWrapper that calls FUN_00a3f3d0 and returns
0x00A42FF09thunk_to_SettingsUI__on_sound_volume_changedWrapper that calls FUN_00a3f4c0 and returns
0x00A4300052SettingsUI__notify_apply_button_updateCallback that triggers apply button state update. Finds the settings window (ID 0x271E) via CUIWindowMgr, dynamic casts to the settings UI type, and calls update_apply_button_enabled_state if valid.
0x00A4304052SettingsUI__notify_apply_button_update_altAlternative callback for apply button state update. Same logic as notify_apply_button_update: finds window 0x271E, casts, and calls update_apply_button_enabled_state.
0x00A4308092SettingsUI__scroll_to_and_select_font_itemScrolls the font list to a specific item index and selects it. Sets scrollbar value based on item height * index, then iterates visible items to find the one matching param_2 and triggers FUN_00a36cf0 (selection callback). Returns 1 if found, 0 if not.
0x00A430E092SettingsUI__scroll_to_and_click_list_itemScrolls the list to a specific item index and triggers a click on it. Sets scrollbar value based on item height * index, iterates visible items to find the matching one, and calls CListCtrl__on_item_clicked. Returns 1 if found, 0 if not.
0x00A4314092SettingsUI__find_and_select_option_a_00a43140Searches through child elements by param_2 index, calls FUN_009f2530 to set computed value, then iterates vector at offset 0xC8 looking for matching option ID at +0x94. If found, calls FUN_00a36eb0 to select it. Uses indirect parent ptr at +0x8C.
0x00A431A092SettingsUI__find_and_select_option_b_00a431a0Same pattern as 00a43140 but calls FUN_00a36f90 instead of FUN_00a36eb0 for the selected option. Uses indirect parent ptr at +0x8C.
0x00A4320089SettingsUI__find_and_apply_option_a_00a43200Iterates option vector at +0xC8, matches param_2 to option ID at +0x94. Calls FUN_00a36cf0 on match. Direct this-ptr usage (no indirection). Returns 1 if found, 0 otherwise.
0x00A4326089SettingsUI__find_and_apply_option_b_00a43260Iterates option vector at +0xC8, matches param_2 to option ID at +0x94. Calls FUN_00a36dd0 on match. Returns 1 if found, 0 otherwise.
0x00A432C089SettingsUI__find_and_apply_option_c_00a432c0Iterates option vector at +0xC8, matches param_2 to option ID at +0x94. Calls FUN_00a36eb0 on match. Returns 1 if found, 0 otherwise.
0x00A4332089SettingsUI__find_and_apply_option_d_00a43320Iterates option vector at +0xC8, matches param_2 to option ID at +0x94. Calls FUN_00a36f90 on match. Returns 1 if found, 0 otherwise.
0x00A433D059SettingsUI__invoke_vtable_and_refresh_00a433d0Calls virtual method at vtable+0x38 on object at +0xF4. Compares FUN_009f0ea0(3) result with param_2. Then refreshes via FUN_00a421e0.
0x00A43410380SettingsUI__update_option_labels_00a43410Iterates options in parent's vector (+0x80 -> +0xC8/0xCC), for each visible option (flag at +0x28), looks up option config via FUN_00a3c1e0 and FUN_00a3fcd0. Creates GameSettings singleton if needed. Updates option label text via GameSettings__get_option_ptr and STL string assignment.
0x00A43590188SettingsUI__sync_checkbox_from_option_00a43590Syncs checkbox widget state from game option value. Searches tabs in +0xE4 vector, for each tab iterates options in +0x80 vector to find matching option ID at +0xF8. Applies inverted state via GameSettings__is_invertible_type XOR GameSettings__get_option_state to checkbox at +0x48. Also updates all child linked list items via vtable+0xDC.
0x00A4370081SettingsUI__update_toggle_pair_00a43700Updates a pair of toggle UI widgets for option 0xA5. Gets option state, sets first widget at +0x84 checkbox, sets second widget at +0x8C to inverse. Calls virtual refresh on both.
0x00A43870451SettingsUI__init_sound_volume_and_togglesInitializes sound volume scrollbars and game option toggles. Sets up two volume sliders: first for CSoundMgr volume (option 7), second for a global value at DAT_0138be7c+0xE8 (option 0xB). For each slider: sets range to 0x87, visible range from pixel conversion, current value from volume/global, tooltip text. For each option: reads GameSettings state (inverted), sets scrollbar smooth scroll and checkbox widgets at +0x88/+0x8C and +0x98/+0x9C respectively.
0x00A43A4058SettingsUI__clamp_and_set_value_a_00a43a40Clamps global DAT_0173a8e0 to max 2, then calls FUN_009f2b70(3) to set range and FUN_009f2530 with clamped value. Used for a settings slider/dropdown with 3 options (0,1,2).
0x00A43A8058SettingsUI__clamp_and_set_value_b_00a43a80Clamps global DAT_0173a8e4 to max 2, then calls FUN_009f2b70(3) to set range and FUN_009f2530 with clamped value. Used for a settings slider/dropdown with 3 options (0,1,2).
0x00A43BA071SettingsUI__refresh_all_child_options_00a43ba0Refreshes all child option widgets. Iterates linked list at +0xDC offset calling vtable+0xDC on each node. Then iterates vector at +0xE4 calling FUN_00a43bf0 (sync all checkboxes) for each tab.
0x00A43BF0127SettingsUI__sync_all_checkboxes_and_labels_00a43bf0Iterates all options in parent's vector (+0x80->+0xC8/0xCC). For each visible option (+0x28!=0), syncs checkbox widget at +0xE8 by XORing GameSettings__is_invertible_type with GameSettings__get_option_state for the option at +0xF8. Then calls FUN_00a43410 to update labels.
0x00A43C70432SettingsUI__update_all_tab_option_labels_00a43c70Updates option labels for all tabs. Iterates tabs in +0xE4 vector, for each tab iterates options in +0x80 vector. Same GameSettings lookup pattern as FUN_00a43410 but operates across all tabs rather than single parent.
0x00A44030141SettingsUI__dtor_00a44030Destructor for SettingsUI. Sets vtable to PTR_FUN_01153054, releases timer/resource at +0x31 via vtable+0x10, resets vtable to PTR_FUN_0114875c, then calls base class dtor FUN_00a79e90.
0x00A440C0165SettingsUI__scalar_deleting_dtor_00a440c0Scalar deleting destructor for SettingsUI. Performs same cleanup as dtor, then conditionally frees memory (size 200 bytes) if param_2 & 1.
0x00A4424012354SettingsUI__main_setup_00a44240Large settings UI initialization function (12354 bytes). Too large to decompile in agent context. Likely the main setup/create method for the settings window, building all tabs and option controls.
0x00A4FF10193QuestUI__create_scrollbarCreates and initializes a scrollbar for the Quest UI. Allocates a new object via FUN_009be480, hides it initially (virtual call with 0), sets up a callback with QuestUI__init_vtable_d, and adds the scrollbar as a child control via CEffect__add_child_to_list_end. Stores the scrollbar pointer at offset +0xB0.
0x00A4FFE02433QuestUI__init_header_panel_00a4ffe0Initializes the Quest UI header panel. Creates icon button (+0x80, 10x9), title label (+0x84, 50x12 with font), and text description panel (+0x88, UIFmtDialog with CTextPanel). Loads Renew_QuestUI/poring.bmp as icon. Sets fonts, colors, margins. Creates scrollbar with QuestUI arrow textures.
0x00A509703972QuestUI__init_main_panel_00a50970Initializes the Quest UI main panel. Creates multi-resource dialog (+0xD8), title label with 'QUEST' text, checkable button (+0xEC, 0x120 bytes), tree view list (+0x9C). Sets titlebar textures (basic_interface_titlebar_left/mid/right.bmp). Configures scrollbar with QuestUI assets.
0x00A519001475QuestUI__init_detail_panel_00a51900Initializes the Quest UI detail panel. Creates icon (+0xE8, 38x38 with QuestUI/questIocn.bmp), tooltip widget (+0xEC, 0x1D8 bytes with CItemInfoMgr), name label (+0xF0, 170x12), and description label (+0xF4, 170x12 with color 0xA0551D).
0x00A51ED04764QuestUI__init_objectives_panel_00a51ed0Initializes the Quest UI objectives panel. Creates icon (+0x80), multiple text labels (+0x84 to +0x98) for quest name, description, progress, etc. Creates tree view (+0x9C) with scrollbar configured using QuestUI arrow textures. Sets texture names and scrollbar background.
0x00A531702175QuestUI__init_rewards_panel_00a53170Initializes the Quest UI rewards panel. Creates text boxes (+0x80, +0x88 as UITextBoxA), separator lines (+0x84, +0x8C as image buttons with line.bmp texture), reward detail box (+0x90 as UITextBoxD), and a vertical scrollbar (+0x94). Configures scrollbar with QuestUI arrow and thumb textures.
0x00A53A0063QuestUI__scroll_step_or_forwardHandles a scroll step or forward action. Checks the child object at +0xB0: if its flag at +0xA8 is zero and its count (+0x94) is less than its max (+0x90), calls virtual function +0x8C on the child. Otherwise, calls the same virtual function on the parent at +0x10. Used as a scrollbar callback.
0x00A53A4065QuestUI__set_selection_highlightSets the selection highlight on visible list items. Iterates all items from +0xC8 to +0xCC, calling virtual function +0xDC on each with a boolean: true if the item matches param_2 (selected), false otherwise.
0x00A53A90603QuestUI__rebuild_visible_items_00a53a90Rebuilds the visible items array for the QuestUI list view. Removes all existing child items from the parent, clears the item vector (+0xC8/+0xCC), then calculates how many items fit based on the view height (+0x18) divided by item height (+0xB8). Creates UITextBoxC instances for each visible slot, sets their button textures from stored texture handles (+0x80 to +0x8C), registers click and tooltip callbacks, and adds them as children. Updates the scrollbar max value and visible range.
0x00A53CF0522QuestUI__load_textures_00a53cf0Loads texture resources for the QuestUI list view. Loads 4 textures from a string map (indices 0-2 from the map, index 3 from offset +0x98 string), storing texture handles at +0x80 to +0x8C. Releases old texture references before replacing. Then iterates all visible items (+0xC8 to +0xCC) and applies the new button state textures to each via UIButton__set_state_textures_direct.
0x00A53F00115QuestUI__resize_and_rebuild_00a53f00Handles resize for the QuestUI list view. Calls CEffect__resize_surface with new dimensions, rebuilds visible items, resizes the scrollbar height, recalculates scrollbar max value from item count * item height + header offset, sets visible range, restores scroll position, and marks layout as dirty (+0xE1=1).
0x00A53F80498QuestUI__update_visible_range_00a53f80Updates the visible range of items in the QuestUI list view based on scroll position (param_2). Calculates which items should be visible based on scroll offset divided by item height (+0xB8). Rotates the item array to reuse existing slots when scrolling. For each visible slot, updates the data index, calls the data binding callback (+0x134), sets selected state via vtable+0xD8, positions the item, and shows it. Hides items that scroll out of view.
0x00A54180218QuestUI__on_item_clicked_00a54180Handles item click in the QuestUI list view. If not locked (+0xC4==0), deselects all other items by calling vtable+0xD8 with 0, selects the clicked item with 1. If selection changed or first click, performs RTTI dynamic cast, stores the selected data index at +0xDC, and invokes the selection callback (+0x10C) with the item data from the linked list at +0xD4.
0x00A54260216QuestUI__set_texture_names_00a54260Sets texture names for the QuestUI list view. Stores 3 texture names into a string map (indices 0, 1, 2) and a 4th string into the scrollbar label field (+0x98). Then triggers a texture reload via vtable+0xD4 and layout refresh via vtable+0x98.
0x00A5434022QuestUI__init_vtable_c_00a54340Initializes a vtable callback object for QuestUI. Sets vtable pointer to PTR_01153e28 (init_vtable_c table) and copies context pointer from source +4.
0x00A5436022QuestUI__init_vtable_d_00a54360Initializes a vtable callback object for QuestUI. Sets vtable pointer to PTR_01153e0c (init_vtable_d table) and copies context pointer from source +4.
0x00A5438022QuestUI__init_vtable_e_00a54380Initializes a vtable callback object for QuestUI. Sets vtable pointer to PTR_01153dd4 (init_vtable_e table) and copies context pointer from source +4.
0x00A543A022QuestUI__init_vtable_f_00a543a0Initializes a vtable callback object for QuestUI. Sets vtable pointer to PTR_01153d80 (init_vtable_f table) and copies context pointer from source +4.
0x00A543C022QuestUI__create_vtable_callback_aCreates a vtable callback object for QuestUI. Sets vtable pointer to PTR_FUN_01153db8 and copies the second dword from the source object.
0x00A543E022QuestUI__create_vtable_callback_bCreates a vtable callback object for QuestUI. Sets vtable pointer to PTR_FUN_01153e44 and copies the second dword from the source object.
0x00A5440022QuestUI__create_vtable_callback_cCreates a vtable callback object for QuestUI. Sets vtable pointer to PTR_FUN_01153df0 and copies the second dword from the source object.
0x00A5442022QuestUI__create_vtable_callback_dCreates a vtable callback object for QuestUI. Sets vtable pointer to PTR_FUN_01153d9c and copies the second dword from the source object.
0x00A5444068QuestUI__conditional_free_aConditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object via FUN_00e6227f. Part of scalar deleting destructor pattern.
0x00A5449068QuestUI__conditional_free_bConditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern.
0x00A544E068QuestUI__conditional_free_cConditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern.
0x00A5453068QuestUI__conditional_free_dConditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern.
0x00A5458068QuestUI__conditional_free_eConditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern.
0x00A545D068QuestUI__conditional_free_fConditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern.
0x00A5462068QuestUI__conditional_free_gConditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern.
0x00A5467068QuestUI__conditional_free_hConditional free for a QuestUI callback object. If param_2 is nonzero, frees the 8-byte object. Part of scalar deleting destructor pattern.
0x00A546C065QuestUI__highlight_selected_itemHighlights the selected item in the quest list. Dereferences param_2 to get the selected item pointer, then iterates all visible items in the list (offsets +0xC8 to +0xCC). For each item, calls virtual function at vtable+0xDC with true if it matches the selected item, false otherwise.
0x00A5471020QuestUI__wrapper_update_visible_rangeWrapper that calls QuestUI__update_visible_range_00a53f80 with the dereferenced first parameter. Used as a callback/delegate.
0x00A5474023QuestUI__wrapper_null_stubWrapper that calls null_stub_00a55710 with dereferenced first param and second param. Used as a delegate for an empty handler.
0x00A5476020QuestUI__wrapper_reposition_childrenWrapper that calls UIQuestWnd__reposition_children_00a55f20 with dereferenced first param. Used as a callback/delegate for layout updates.
0x00A54780216QuestUI__on_item_clickedHandles item click in the quest list. Deselects all other items (calls vtable+0xD8 with 0), selects the clicked item (vtable+0xD8 with 1). If the selection changed or first click, dynamic casts to get the item's data index, stores it at +0xDC, and calls the item selection callback at +0x10C with the item data from the linked list.
0x00A5487023QuestUI__wrapper_setup_item_tooltipWrapper that calls UIQuestWnd__setup_item_tooltip_00a55720 with dereferenced first param and second param. Used as a delegate for tooltip display.
0x00A5492022QuestUI__create_vtable_callback_eCreates a vtable callback object using QuestUI__init_vtable_c. Sets vtable pointer and copies context from source object.
0x00A5494022QuestUI__create_vtable_callback_fCreates a vtable callback object using QuestUI__init_vtable_d. Sets vtable pointer and copies context from source object.
0x00A5496022QuestUI__create_vtable_callback_gCreates a vtable callback object using QuestUI__init_vtable_e. Sets vtable pointer and copies context.
0x00A5498022QuestUI__create_vtable_callback_hCreates a vtable callback object using QuestUI__init_vtable_f. Sets vtable pointer and copies context.
0x00A549A022QuestUI__create_vtable_callback_iCreates a vtable callback object referencing QuestUI__create_vtable_callback_a vtable. Sets vtable pointer and copies context.
0x00A549C022QuestUI__create_vtable_callback_jCreates a vtable callback object referencing QuestUI__create_vtable_callback_b vtable. Sets vtable pointer and copies context.
0x00A549E022QuestUI__create_vtable_callback_kCreates a vtable callback object referencing QuestUI__create_vtable_callback_c vtable. Sets vtable pointer and copies context.
0x00A54A0022QuestUI__create_vtable_callback_lCreates a vtable callback object referencing QuestUI__create_vtable_callback_d vtable. Sets vtable pointer and copies context.
0x00A55720320UIQuestWnd__setup_item_tooltip_00a55720Sets up item tooltip for quest window. Calls CItemInfoMgr__clear_tree_and_free_alt, CItemDesc__get_class_and_level, CItemDB__build_item_tooltip_string. Sets up tooltip text with item name and description using string ID 0xb6.
0x00A558B0130UIQuestWnd__set_initial_position_00a558b0Sets the initial position of the quest window. Looks up string ID 0xd48, sets window title. Tries to find saved position from UIManager (ID 0x2718), if found uses saved pos, otherwise centers on screen.
0x00A55950309UIQuestWnd__init_tabs_and_worldmap_00a55950Initializes quest window tabs and world map. Sets 3 tab labels from string IDs 0xd4c-0xd4e, enables scrollbar on tab panel, allocates+constructs CWorldMap, adds it as child with size 0x4b x 0x91, then shows the world map.
0x00A55A90190UIQuestWnd__set_tab_labels_00a55a90Sets tab labels and enables visibility for quest window's 3 tab panels (at +0x80, +0x88, +0x90). Sets visible flag at +0x79 for each, then sets label strings from msgstringtable IDs 0xd49, 0xd4a, 0xd4b.
0x00A55B5018UIQuestWnd__virtual_dispatch_00a55b50Virtual dispatch stub. Calls virtual method at vtable offset 0x8c on the child object at +0x94.
0x00A55B70333UIQuestWnd__refresh_quest_list_00a55b70Refreshes the quest list display. Gets quest data from the map tree at +0xe4, looks up quest ID +0xf0 in the global quest map (DAT_0138cf40), processes bulk packet data via CPacketSystem__bulk_processor, updates scrollbar dimensions and child heights, then adjusts scroll range.
0x00A55CC0327UIQuestWnd__load_quest_by_id_00a55cc0Loads and displays quest details by quest ID (param_2). Looks up quest in global map, processes bulk packet text lines, updates tab scrollbar visibility and child element heights, then adjusts total scroll range.
0x00A55E10142UIQuestWnd__update_scrollbar_h_00a55e10Updates horizontal scrollbar for quest window. Shows/hides scrollbar based on whether content exceeds visible area (+0x32 vs +0x33). Adjusts scrollbar position and recalculates max child content width, then sets scroll range via FUN_00a82eb0.
0x00A55EA0126UIQuestWnd__update_scrollbar_v_00a55ea0Updates vertical scrollbar for quest window detail panel (+0x9c). Shows/hides based on content count (+0x36). Adjusts scrollbar size based on item count * item height + padding. Recalculates max child content height and sets scroll range.
0x00A55F2078UIQuestWnd__reposition_children_00a55f20Repositions child elements in the quest window. Iterates linked list of children (+0x50), for each non-header child, moves it by -param_2 offset and stacks based on previous child's bottom edge.
0x00A55F70217UIQuestWnd__load_worldmap_data_00a55f70Loads world map data for quest window. If param_2 has a map name (string length > 0), copies it and calls CWorldMap__LoadMapData. Optionally sets display name from param_3 via CWorldMap__SetMapName. Calls the show method on the world map object.
0x00A56050242UIQuestWnd__select_quest_entry_00a56050Selects a quest entry by ID (param_2) in the quest window. Looks up quest in global map, sets display name and description text, calls CPacketManager handler for additional data, then calls FUN_00a56150 to populate the detail view. Stores selected quest ID at +0xf0.
0x00A561501292UIQuestWnd__populate_quest_detail_00a56150Populates the quest detail view for a selected quest ID. Clears existing list items, looks up quest in global map, processes objectives and description lines, populates reward item list, loads world map data if available, then updates scrollbars and layout.
0x00A56860115UIQuestWnd__create_window_child_00a56860Factory function: allocates 0xec bytes and constructs a UIQuestWindowChild via FUN_00a586c0. Returns null if allocation fails.
0x00A568E066UIQuestWnd__reset_window_layout_00a568e0Resets quest window layout. Clears flags, enables close button, sets window size to 0x156 x 0x19c, moves to origin (0,0), then auto-sizes and centers.
0x00A56930189UIQuestWnd__add_quest_tab_entry_00a56930Adds a new quest tab entry. Allocates 0x84 bytes, constructs via FUN_00a58640, adds as child at 300x150 size, then pushes to vector at +0x8c. Uses emplace_grow helper if vector is at capacity.
0x00A569F01790UIQuestWnd__init_text_label_and_scrollbar_00a569f0Initializes the quest window's text label and scrollbar. Creates UITextEdit-like control (0xe0 bytes), configures font size 12, text color white, alignment, sets scrollbar sprites from 'Renew_QuestUI_bt_scrollbar_arrow' resources, adds as child at +0x80.
0x00A570F03572UIQuestWnd__init_detail_panel_00a570f0Initializes the quest window detail panel. Creates title bar with left/mid/right BMP sprites (basic_interface_titlebar), creates description text labels, button controls, and multiple sub-panels for quest details. Stores controls at +0xd8 (text), +0xdc (image), +0xe0 (label), +0xe4 (panel), +0xe8 (description).
0x00A57EF01406UIQuestWnd__init_tab_panels_00a57ef0Initializes the 3 quest tab panels with background images. Creates panel +0x80 (0x150x0x13e, bg_quest01.png), +0x84 (0x144x0x8a, bg_quest01.png), +0x88 (0xd0x0x5c, bg_quest02.png). Creates 3 tab entries via add_quest_tab_entry, then configures panel sizes and positions for list, content, and detail views with scrollbar heights.
0x00A587C0177UIQuestWndEx__ctorConstructor for UIQuestWndEx (extended quest window). Calls CEffect__ctor as base class, sets vtable first to UIBase then UIQuestWndEx, zeroes out 7 member fields at offsets +0x80 through +0x98.
0x00A589C0108UIQuestWndEx__dtor_00a589c0Destructor for UIQuestWndEx. Sets vtable to PTR_FUN_0115445c, calls cleanup FUN_00a58880, resets vtable to base UIBase, then calls base dtor FUN_00a79e90.
0x00A58B10132UIQuestWndEx__scalar_deleting_dtor_00a58b10Scalar deleting destructor for UIQuestWndEx. Sets vtable, calls cleanup and base dtors, frees 0x9c bytes if param_2 & 1.
0x00A58BE0130UIQuestWndEx__set_initial_position_00a58be0Sets initial position for UIQuestWndEx. Same pattern as UIQuestWnd: looks up string ID 0xd48 for title, checks UIManager ID 0x2718 for saved position, otherwise centers on screen.
0x00A58C70145UIQuestWndEx__init_worldmap_00a58c70Initializes the world map widget for UIQuestWndEx. Allocates 0xa4 bytes, constructs CWorldMap, adds as child at 0x4b x 0x91, initially hidden. Stores at +0x98.
0x00A58D10225UIQuestWndEx__load_worldmap_data_00a58d10Loads world map data for UIQuestWndEx. Same pattern as UIQuestWnd version: loads map from param_2 string via CWorldMap__LoadMapData, optionally sets display name from param_3, then shows the map widget at +0x98.
0x00A58E00114UIQuestWndEx__select_quest_entry_00a58e00Selects a quest entry by ID in UIQuestWndEx. Looks up quest in global map (DAT_0138cf40), sets name text, then calls FUN_00a58e80 to populate the detail view.
0x00A58E801085UIQuestWndEx__populate_quest_detail_00a58e80Populates quest detail view for UIQuestWndEx. Clears tab entries, looks up quest by ID in global map, builds description from packet stream, iterates up to 3 tab objective sections (at +0xe0), sets each tab's text lines. Loads world map data if quest has a map, otherwise hides world map.
0x00A64E3020UIQuestWnd__dropdown_update_callbackUIQuestWnd callback wrapper: dereferences param and forwards to UIDropdownList__update_visible_items.
0x00A64E5023UIQuestWnd__quest_double_click_callbackUIQuestWnd callback wrapper: dereferences param and forwards to UIQuestWnd__on_quest_double_click with selection data.
0x00A64F6023UIQuestWnd__populate_detail_callbackUIQuestWnd callback wrapper: dereferences param and forwards to UIQuestWnd__populate_quest_detail with quest data.
0x00A64F9021UIQuestWnd__toggle_complete_callbackUIQuestWnd callback wrapper: forwards to UIQuestWnd__toggle_show_complete to toggle display of completed quests.
0x00A64FB021UIQuestWnd__toggle_expanded_view_callbackUIQuestWnd callback wrapper: forwards to UIQuestWnd__toggle_quest_expanded_view to toggle the expanded/collapsed quest detail view.
0x00A64FE020UIQuestWnd__packet_update_callbackUIQuestWnd callback wrapper: dereferences param and forwards to UIQuestWnd__on_packet_update for server packet handling.
0x00A6509021UIQuestWnd__send_action_callbackUIQuestWnd callback wrapper: forwards to UIQuestWnd__send_quest_action to send quest action to server.
0x00A66140150UIQuestWnd__send_quest_action_00a66140Sends a quest action. If quest type (offset 0xFC) is 2, calls CPacketSystem method and conditionally refreshes quest list. Otherwise, constructs packet 0x2B6 and sends it via the packet system.
0x00A661F057UIQuestWnd__toggle_show_complete_00a661f0Toggles the "show completed quests" setting. Calls FUN_00a83300 with type 6, subtype 0xD5, and the toggle flag. Then notifies the quest window (ID 0xCC) via virtual method at vtable+0x38.
0x00A6623066UIQuestWnd__submit_search_text_00a66230Gets the search text from the editable text widget, measures its length (strlen), updates the text display, then refreshes the quest list via FUN_00a67290 with flag 0xF (all categories).
0x00A6628067UIQuestWnd__toggle_quest_expanded_viewToggles the expanded/simple view state for an ongoing quest. Calls CQuestMgr__set_ongoing_quest_expanded_flag with the current quest ID and the toggle parameter, saves the simple view list, then notifies the quest window (ID 0xCC) via vtable+0x98 to refresh display.
0x00A6637066UIQuestWnd__submit_search_text_b_00a66370Alternate search text submission handler. Gets display text, measures length, updates display, refreshes quest list with flag 0xF.
0x00A663C067UIQuestWnd__find_quest_tab_by_id_00a663c0Searches the tab array (offset 0xF0..0xF4) for a tab whose ID at +0x84 matches param_2. Returns the value at +0x80 of the matching tab, or 0 if not found.
0x00A66410163UIQuestWnd__filter_quest_entry_00a66410Filters a quest entry against the current search criteria. Checks name via CPacketSystem method. If a text filter (offset 0x110) is active, searches both the quest display name and internal name via CFmt string find. Returns 1 if entry passes filter, 0 otherwise.
0x00A664C0251UIQuestWnd__on_quest_double_click_00a664c0Handles double-click on a quest entry. Selects the quest, performs RTDynamicCast to get appropriate window type (differs for type 2 vs other), and notifies the detail window to display quest info. Destroys the child window after action.
0x00A665C01559UIQuestWnd__populate_quest_detail_00a665c0Populates quest detail view when a quest is selected. Stores quest type and ID, looks up quest data in the global quest map via _Find_lower_bound, formats reward text (fixed notation), sets quest description, title, objectives, and updates tab visibility and button state. Handles both type 2 (completed) and normal quest display paths.
0x00A66BE040UIQuestWnd__set_quest_filter_contextSets the quest filter context for the quest window. Calls a position/state setter, then stores param_3 at offset 0x10C (quest filter category) and param_2 at offset 0x108 (quest list reference). These values are used by other quest window methods to filter and display quests.
0x00A66C70274UIQuestWnd__set_button_text_00a66c70Loads a string resource (ID 0xD51) and assigns it to the button text at offset 0xF4+0x88. Handles SSO string buffer management.
0x00A66DA0411UIQuestWnd__init_quest_window_00a66da0Initializes the quest window. Destroys old window (0x2718), destroys window 0x8F, loads window title (string 0xD48), loads subtitle (string 0x7E3), checks if show-complete flag is set, assigns category bitmask to tab items (powers of 2), refreshes quest list with flag 0xF, and populates quest names from linked list via CPacketManager.
0x00A66FF0403UIQuestWnd__find_and_select_quest_00a66ff0Finds a quest by ID (param_2) in the quest list. Iterates tab entries, searches linked list for matching quest ID. If found, scrolls to the entry and selects it. If not found, formats a "Not found Quest Info" error message and displays it in a message box.
0x00A67190241UIQuestWnd__on_quest_double_click_b_00a67190Alternate quest double-click handler. Same logic as on_quest_double_click: selects quest, dynamic casts to get detail window, and notifies. Differs slightly in context handling.
0x00A672902576UIQuestWnd__refresh_quest_lists_00a67290Refreshes quest lists by category bitmask (param_2). Bit 1=active, 2=completed, 4=special type A, 8=special type B. For each category: clears the list, iterates the global quest map, filters entries via UIQuestWnd__filter_quest_entry, and adds matching quests. Recalculates scroll bounds and restores scroll position afterward.
0x00A67CA050UIQuestWnd__set_active_color_00a67ca0Sets the active/inactive color for a quest element. Active=0xE47B2E (orange), inactive=0x955322 (dark brown). Calls FUN_009f0da0 to set color and FUN_009f0290 to set state.
0x00A67D40208UIQuestWnd__on_button_action_00a67d40Handles button actions in quest window. Action type 6 subtype 0xD5: toggle show-complete checkbox and notify quest window. Action type 0x16: calls log2 and scroll update. Delegates to UIWindow__handle_button_click for other actions.
0x00A67E1036UIQuestWnd__on_quest_category_updateHandles a quest category update from packet data. If param_2 is non-null, reads the category/filter ID from offset 0x2C and stores it at offset 0x10C, then refreshes all quest lists to reflect the updated category.
0x00AB120028CConnectionPointSink__ctor_simpleConstructor for a simple COM connection point sink. Sets vtable pointer to PTR_FUN_01158c24, clears ref count, stores param_2 as the connection target.
0x00AB122028CConnectionPointSink__ctor_type_c04Constructor for COM connection point sink with vtable PTR_01158c04.
0x00AB124028CConnectionPointSink__ctor_type_bb8Constructor for COM connection point sink with vtable PTR_01158bb8.
0x00AB126028CConnectionPointSink__ctor_type_b38Constructor for COM connection point sink with vtable PTR_01158b38.
0x00AB1280131CConnectionPointSink__ctor_with_innerConstructor for a COM connection point sink with an inner object. Sets vtable to PTR_FUN_01158b78, allocates an inner 0xc-byte COM object with vtable PTR_FUN_01158b38. Stores param_2 as the connection target in both outer and inner objects.
0x00AB1310368CWebBrowserEventSink__ctorConstructor for a web browser event sink COM object. Creates a hierarchy of COM sink objects for handling browser events: inner sink (0xc bytes, vtable PTR_FUN_01158b38), wrapper (0x10 bytes, vtable PTR_FUN_01158b78), and three additional sinks (0xc bytes each with different vtables). Calls AddRef on the target connection point at param_3.
0x00AB14E0232CWebBrowserEventSink__dtorDestructor for the web browser event sink COM object. Queries the connection point for unadvise, releases all child sink objects (vtables 5-7, and inner wrapper at 4), calls Release on the connection point.
0x00AB16A078CWebBrowserEventSink__QueryInterfaceIUnknown::QueryInterface for the web browser event sink. Compares the requested IID against a known GUID at DAT_011b0880. Only supports interface IDs 0x28 and 0x29 (IDispatch-related). Returns 0x80040104 (no interface) or 0x80040100 on mismatch.
0x00AB1880300CWebBrowserEventSink__on_navigateHandles web browser navigation events (event ID 0x111/BeforeNavigate2). Extracts the URL from the event args (BSTR/WCHAR), converts to multibyte via WideCharToMultiByte, builds a string, and calls FUN_00ab2d50 to process the URL. Sets navigation status to 0xB.
0x00AB19F092CWebBrowserEventSink__advise_connectionAdvises (connects) the event sink to a connection point. Queries the target for IConnectionPointContainer, then finds the correct connection point by IID and calls Advise to register this sink.
0x00AB1B20303CWebBrowserControl__QueryInterfaceIUnknown::QueryInterface for the web browser control. Supports 6 different IIDs, returning different interface pointers from offsets +0x10 through +0x1c of the object. Returns E_NOINTERFACE (0x80004002) for unknown IIDs.
0x00AB1DE0246CWebBrowser__ctorConstructor for the CWebBrowser class. Initializes all fields to zero, gets screen dimensions via GetSystemMetrics. If option 0x10F (hardware cursor) is enabled, saves cursor state, disables the option, converts cursor coordinates, and repositions the cursor on screen.
0x00AB1F20456CWebBrowser__dtorDestructor for CWebBrowser. Restores cursor state if hardware cursor was changed, hides system cursor. Unadvises the event sink from the connection point, releases the browser COM object, destroys the browser window, and restores the parent window.
0x00AB21F0104CWebBrowser__address_bar_wndprocSubclassed window procedure for the browser address bar. Intercepts Enter key (WM_KEYDOWN/0x100 with VK_RETURN/0xD) and sends WM_COMMAND with ID 1000 to navigate. Suppresses WM_KEYUP/WM_CHAR for Enter. Other messages pass through to the original wndproc.
0x00AB226079CWebBrowser__check_resizeChecks if the browser window was resized by querying current width/height from the COM object. If dimensions differ from stored values (fields 0xD, 0xE), calls FUN_00ab3060 to handle the resize.
0x00AB22B0373CWebBrowser__create_browser_windowCreates the embedded web browser window. Uses CoCreateInstance to create an IWebBrowser2, registers the "ROWebBrowser" window class, creates a child window, sets up the OLE container, then creates the address bar (FUN_00ab27a0) and advises the event sink (FUN_00ab2ab0).
0x00AB2430150CWebBrowser__disconnect_eventsDisconnects the event sink from the browser COM object. Queries for IConnectionPointContainer, unadvises, then destroys the event sink object.
0x00AB24D0310CWebBrowser__close_and_cleanupFully closes and cleans up the web browser. Hides cursor, disconnects events, releases OLE object, restores window styles, releases COM interface, destroys the browser window. Returns 1.
0x00AB2610187CWebBrowser__fix_fullscreen_windowFixes the browser window when it enters fullscreen mode. Checks if the OLE control window size matches the expected dimensions, and if so resets the window styles and containment to prevent fullscreen.
0x00AB26D079CWebBrowser__get_address_bar_heightReturns the height of the address bar (rebar control) + 4 pixels padding. Returns 0 if the rebar window doesn't exist or is not visible (flag at +0x18).
0x00AB2720120CWebBrowser__disable_hardware_cursorDisables the hardware cursor option (0x10F) for the web browser. Saves current cursor position, converts from client to screen coordinates, sets the system cursor position, and marks the cursor state at +0x3c.
0x00AB27A0420CWebBrowser__create_address_barCreates the address bar toolbar. Creates a ReBarWindow32 control, inserts a COMBOBOX band for URL input, subclasses the combo's edit child with CWebBrowser__address_bar_wndproc. Stores rebar/combo handles, gets address bar height.
0x00AB2950125CWebBrowser__init_ole_containerInitializes the OLE container for the web browser. Allocates a 0x1c-byte container object via FUN_00ab3710, calls its initialization method, then activates the browser control via FUN_00ab3ae0.
0x00AB29D0223CWebBrowser__create_container_windowCreates the ROWebBrowser container window. Registers the window class, creates a child popup window, parents the OLE control inside it.
0x00AB2AB0347CWebBrowser__advise_and_activateCreates the event sink, connects to the browser COM object, sets OLE containment, resizes to client area, and advises the connection point for navigation events.
0x00AB2C10189CWebBrowser__create_browser_frameCreates IWebBrowser2 using CoCreateInstance with CLSCTX_LOCAL_SERVER. Sets up the OLE site, disables toolbar, address bar, and menu bar on the browser control. Handles COM error logging.
0x00AB2CD0127CWebBrowser__create_browser_inprocCreates IWebBrowser2 using CoCreateInstance with CLSCTX_INPROC_SERVER. Simpler version that only sets up the OLE site. Handles COM error logging.
0x00AB2D50284CWebBrowser__navigate_to_urlNavigates the web browser to a URL string. Converts the multibyte URL to a wide string, creates a BSTR, calls IWebBrowser2::Navigate, shows the window, activates in-place, and updates the address bar text. Returns 1 on success, 0 on failure.
0x00AB2E70442CWebBrowser__update_and_manage_cursorUpdates the web browser window state and manages cursor visibility. Checks if browser window is visible, fixes fullscreen mode, handles resize, and toggles between game cursor (hidden) and system arrow cursor based on whether the mouse is over the game window or the browser window.
0x00AB303040CWebBrowser__is_child_windowChecks if param_2 is the browser container window or a direct child of it. Returns 1 if match, 0 otherwise.
0x00AB3060180CWebBrowser__resize_browserResizes the browser to the given width and height. Adjusts for address bar height if visible. Stores actual content dimensions at fields 0xD and 0xE. Calls IWebBrowser2::put_Width and put_Height. Repositions the rebar toolbar.
0x00AB3120257CWebBrowser__toggle_address_barToggles the address bar visibility on the web browser. Shows/hides the rebar control (field 10), adjusts the OLE control position for the address bar height, and resizes the browser content area to fill the remaining space.
0x00AB3230173CWebBrowser__update_cursor_visibilityUpdates cursor visibility based on whether the mouse is over the game window or the browser. If over the game window (DAT_0173ad68), hides the system cursor. Otherwise shows the arrow cursor. Stores cursor state at offset +0x14.
0x00AB32E0109CWebBrowser__set_cursor_stateSets the cursor visibility state for the web browser. If param_2 is 0, hides the cursor. If 1, shows the arrow cursor and enables hardware cursor processing. Stores state at +0x14.
0x00AB3350105CWebBrowser__restore_hardware_cursorRestores the hardware cursor option (0x10F) when closing the web browser. Converts cursor position from screen to client coordinates, re-enables the game option, and activates the game window.
0x00AB33C0683ROWebBrowser__WndProcWindow procedure for ROWebBrowser windows. Handles WM_NCHITTEST/WM_CREATE (tracking active browser), WM_DESTROY (cleanup), WM_SIZE (resize browser), WM_CLOSE, WM_COMMAND with id 1000 (address bar navigate - reads URL, converts to wide, calls IWebBrowser2::Navigate), and filters F1/F11 key events.
0x00AB406084CMoviePlayer__ctor_baseBase constructor for CMoviePlayer. Calls CDialogWnd__on_resize_handler for parent initialization, then sets vtable to PTR_FUN_01158dc8.
0x00AB40C0154CMoviePlayer__ctorFull constructor for CMoviePlayer. Calls CEffect__ctor(1) for base class, sets vtable to PTR_FUN_01158ea4, initializes fields (playing=0, volume=0, state=-1), then creates a CBinkPlayer instance at offset 0x1f*4.
0x00AB416071CMoviePlayer__dtor_baseBase destructor for CMoviePlayer. Resets vtable to PTR_FUN_01158dc8, then calls UIBaseDialog__destructor_2 for parent cleanup.
0x00AB41B0160CMoviePlayer__dtorDestructor for CMoviePlayer. Sets vtable, releases COM object via Release, closes and frees the CBinkPlayer, restores stream volume if saved, then calls CEffect__dtor for base cleanup.
0x00AB425099CMoviePlayer__scalar_deleting_dtor_baseScalar deleting destructor for CMoviePlayer base class (UITextDisplayWidget). Sets vtable to base vtable, calls UIBaseDialog__destructor_2, and conditionally frees the 0xB4-byte object.
0x00AB42C0184CMoviePlayer__scalar_deleting_dtor_fullScalar deleting destructor for full CMoviePlayer (CEffect-derived). Sets vtable, releases COM object, closes/frees CBinkPlayer, restores sound volume, calls CEffect__dtor, and conditionally frees the 0x88-byte object.
0x00AB4390198CMoviePlayer__create_close_buttonCreates a close button for the movie player. Allocates and constructs a UITextDisplayWidget, sets its size to 0x7F x 0x2B, positions it relative to params, assigns window type 0x209, and adds it as a child effect.
0x00AB4460409CMoviePlayer__render_text_overlayRenders the text overlay on the movie player. Fills background with black, measures and draws a short text string (from DAT_01158f78) centered in the player area. Text color is 0xFFFFFF normally, 0x4EC7FF when state is 1 (playing).
0x00AB4600125CMoviePlayer__render_frameRenders the movie player frame. Draws a black background, then if the BinkPlayer has a valid frame, scales it maintaining aspect ratio and draws the textured quad centered vertically.
0x00AB468069CMoviePlayer__update_frameUpdates the movie player each tick. Calls CBinkPlayer__update_frame to advance the video, copies the frame to the render surface, triggers a redraw. If playback state is 2 (finished), opens the movie end dialog (window type 0x130).
0x00AB46D069CMoviePlayer__handle_messageMessage handler for CMoviePlayer. Handles: event 0x96 (open video file, create texture), 0x97 (pause/unpause via BinkPause), 0x9F (set volume via BinkSetVolume, save/mute stream), 0 with key 0x1B (trigger close dialog), 5 (show close confirmation), 6 (close on confirm). Forwards to CEffect__notify_parent_of_state_change.
0x00AD64B039CToolTipMgr__hide_tooltipHides the current tooltip by unregistering its window (offset 0x1C) from CUIWindowMgr, nulling the pointer, and stamping the hide time via timeGetTime.
0x00AD64E044CToolTipMgr__is_target_mapChecks if the given param_2 matches the target map ID. Only valid when mode==1 (offset 0x58) and field 4 is non-zero. Calls FUN_00cf0320 and compares param_2 to the value at offset 0x70 of the result.
0x00AD6510440CToolTipMgr__show_tooltipShows a tooltip with text (param_2) at position (param_3, param_4) with color (param_5). If param_7 is set, processes the text through FUN_00dff1f0 (encoding conversion). Creates the tooltip dialog widget (0xCC bytes) if it doesn't exist, configures size, text content (split by '#' delimiter), text color (byte-swapped), and positions it clamped to screen bounds.
0x00AD67A047CToolTipMgr__auto_hide_expired_tooltipAutomatically hides the tooltip if more than 100ms have elapsed since it was shown (offset 0x20 timestamp). Unregisters the tooltip window and nulls the pointer.
0x00CA7640121CReportStorage__ctorConstructs CReportStorage. Sets vtable, creates 0x18-byte RB-tree sentinel node with self-referencing pointers.
0x00CA76C086CReportStorage__dtorDestructor for CReportStorage. Sets vtable, destroys tree and frees sentinel via CReportStorage__destroy_tree_and_sentinel.
0x00CA7720111CReportStorage__scalar_deleting_dtorScalar deleting destructor for CReportStorage. Calls dtor, then frees 0xC bytes if flag bit 0 set.
0x00CA7790229CReportStorage__insert_or_updateInserts or updates an entry in CReportStorage's RB-tree map. If key not found, creates 0x18-byte node. Sets value at offset 0x14 regardless.
0x00CA788072CReportStorage__find_by_idFinds an entry in CReportStorage by ID using lower_bound. Returns value at offset 0x14 of found node, or 0 if not found.
0x00CA796075CReportManager__map_lower_bound_00ca7960Performs lower_bound search in CReportManager's RB-tree map. Traverses tree comparing keys at offset 0x10, returns iterator with node, found flag, and end sentinel.
0x00CA79B0132CReportManager__ctorConstructs CReportManager. Sets vtable, creates 0x20-byte RB-tree sentinel node, sets initialized flag to 1.
0x00CA7A4067CReportManager__free_sentinel_nodeFrees the 0x20-byte RB-tree sentinel node of CReportManager if it exists.
0x00CA7A9076CReportManager__destroy_tree_and_sentinelDestroys all RB-tree nodes and frees the 0x20-byte sentinel for CReportManager.
0x00CA7AF0116CReportManager__cleanup_and_freeCleans up CReportManager by calling CReportStorage dtor on sentinel data, then freeing the 0x20-byte sentinel node.
0x00CA7B7078CReportManager__free_sentinel_node_variantVariant of CReportManager sentinel node free. Frees the 0x20-byte RB-tree sentinel if it exists.
0x00CA7BC087CReportManager__destroy_tree_and_freeDestroys all RB-tree nodes and frees the 0x20-byte sentinel for CReportManager (variant).
0x00CA7C2068CReportStorage__deinit_wrapperWrapper that calls CReportStorage__dtor. Used as a cleanup callback.
0x00CA7C70108CReportManager__dtorDestructor for CReportManager. Sets vtable, destroys RB-tree of 0x20-byte nodes, frees sentinel.
0x00CA7CE0133CReportManager__scalar_deleting_dtorScalar deleting destructor for CReportManager. Calls dtor, then frees 0x10 bytes if flag bit 0 set.
0x00CA7D70253CReportManager__add_report_entryAdds a report entry to CReportManager. Creates outer map entry (CReportStorage) if needed, then calls CReportStorage__insert_or_update with the inner key-value pair.
0x00CA7E7041CReportManager__clear_allClears all entries in CReportManager. Destroys all subtree nodes, resets sentinel to empty state.
0x00CA7FB080CReportManager__find_nested_entryFinds a nested entry in CReportManager. First looks up outer key, then delegates to CReportStorage__find_by_id for the inner key. Returns 0 if outer key not found.
0x00D18AB0232CReportManager__insert_or_update_entryInserts or updates an entry in the report manager's red-black tree (at offset 0x7FC0). Uses lower_bound to find the insertion point. If the key doesn't exist, allocates a new 0x18-byte node, inserts it. Sets the data field (offset 0x14) to param_3.
0x00E07AA01285CReportSystem__save_report_entryCReportSystem: save report entry
0x00E07FB0476CReportSystem__process_report_stringProcesses a report string input. Takes a char* string, builds an STL string from it, splits by whitespace, checks if result has entries, and if so looks up the first token in a hash table. Returns boolean success. Part of CReportSystem.
0x00E48C00649CItemList__parse_items_from_bufferParses items from a binary buffer into a linked list of CItemNode entries (0x58 bytes each). Copies param_3 bytes from param_4 at offset param_2, then iterates parsing each item via FUN_00e494f0, constructing CItemNode and inserting into the doubly-linked list. Handles STL string cleanup for each parsed item.