Back to legacygamers.net
WARPGATE

Sound

CSoundMgr (Miles), CBGMManager, CBinkPlayer, CWavSound, CVideoRes

Functions 102Code 25 KBAddresses 0x00638A90 to 0x00E08E20Group Systems
102 functions
AddressSizeNameDescription
0x00638A90429CSoundMgr__ctorCSoundMgr constructor. Sets vtable, initializes volume defaults (sound=100, 3d=100, bgm_max=100), fade params (rate=250, step=40), two STL filename strings, playback state. Calls CSoundMgr__initialize to set up Miles Sound System. Object size 0x41C bytes.
0x00638C40269CSoundMgr__dtorCSoundMgr destructor. Releases all 3D sample handles (0x30 entries), closes 3D listener and provider, closes streams, releases all 2D sample handles (0x30 entries), closes digital driver, shuts down AIL. Destroys filename strings.
0x00638D50293CSoundMgr__scalar_deleting_dtorCSoundMgr scalar deleting destructor. Calls full destructor (releases all AIL handles, closes streams, shuts down MSS), then optionally frees the 0x41C-byte object if flag bit 0 is set.
0x00638E8098CSoundMgr__start_fadein_threadStops current fade thread (if any), closes handle, starts new background thread to fade volume IN (param=1). Uses _beginthreadex with volume_fade_thread as entry point.
0x00638EF098CSoundMgr__start_fadeout_threadStops current fade thread (if any), closes handle, starts new background thread to fade volume OUT (param=0). Uses _beginthreadex with volume_fade_thread as entry point.
0x00638F60265CSoundMgr__close_streams_and_resetResets BGM filename string, closes both AIL streams (BGM at +0x1c, secondary at +0x410), and clears the playing flag at +0x14.
0x00639070726CSoundMgr__initializeInitializes Miles Sound System (MSS). Zeros sample handle arrays (+0x20, +0x340). Configures sample rate (22050/11025/8000), bit depth (16/8), channels (mono/stereo) based on global settings. Calls AIL_startup, AIL_open_digital_driver. For 3D mode, enumerates 3D providers, opens listener. Allocates sample/3D handles.
0x00639350532CSoundMgr__create_singletonCreates the CSoundMgr singleton. Allocates 0x41C bytes, sets vtable to CSoundMgr vftable, initializes volume defaults (sound=100, 3d=100, bgm_max=100, etc.), initializes two STL strings for filenames. Calls CSoundMgr__initialize. Stores result in global DAT_0138be7c.
0x00639570308CSoundMgr__play_bgm_with_fadePlays BGM with crossfade. Checks fade thread exit code, pauses current BGM stream, gets volume, starts fadeout, waits for completion, then reopens and starts new BGM stream at target volume with loop count 1.
0x006396B0455CSoundMgr__shutdownShuts down Miles Sound System. Releases all 3D sample handles, closes 3D listener and provider, resets BGM filename, closes both streams, releases all 2D sample handles, closes digital driver, calls AIL_shutdown.
0x0063988027CSoundMgr__destroy_singletonDestroys the CSoundMgr singleton. Calls virtual destructor on the singleton at DAT_0138be7c and nulls the global pointer.
0x006398A0104CSoundMgr__stop_all_samplesStops all active sound samples. Iterates the 2D sample handle array (0x30 entries at +0x20) calling AIL_end_sample, then 3D sample array (0x30 entries at +0x340) calling AIL_end_3D_sample.
0x00639910318CSoundMgr__volume_fade_threadBackground thread for volume fading. param=1: fades in (increments +0xe4 up to +0xe0 max), param=0: fades out (decrements to 0). Updates both stream volumes via AIL_set_stream_volume. Sleeps 10ms per step, max 1000 steps. Exits on WM_USER message.
0x00639A6014CSoundMgr__get_volumeReturns current BGM volume from field +0xe4. Returns 0 if this pointer is null.
0x00639A7071CSoundMgr__is_any_stream_playingChecks if any audio stream is currently playing. Returns 1 if either the primary BGM stream (+0x1c) or secondary stream (+0x410) has AIL_stream_status == 2 (playing). Requires sound enabled and fade thread not running.
0x00639AC025CSoundMgr__is_bgm_stream_doneReturns 1 if the BGM stream (+0x1c) has AIL_stream_status == 8 (done/stopped). Used to detect when BGM has finished playing.
0x00639AF081CSoundMgr__pause_bgm_streamPauses or unpauses the BGM stream (+0x1c). param_2=1 to pause, 0 to unpause. Calls AIL_pause_stream and reads stream volume. On unpause, copies the stored filename from +0x11c into the active BGM filename string.
0x00639B50476CSoundMgr__play_3d_soundPlays a 3D positional sound. Finds free 3D sample handle, loads audio file, sets position/orientation/volume/distance, applies effects level based on reverb setting (+0x408). Falls back to 2D if no 3D provider.
0x00639D30181CSoundMgr__set_bgm_filenameSets the BGM filename string (+0x104/+0x11c). Also checks game option 7 (sound enabled) and configures 3D room type on the provider. Calls play_bgm afterward if sound option enabled.
0x00639DF0272CSoundMgr__play_2d_soundPlays a 2D sound effect. Calculates 3D distance from listener, attenuates volume by distance. Finds free sample handle from the 2D array (+0x20), inits sample, loads file, sets volume with attenuation, and starts playback.
0x00639F00547CSoundMgr__play_bgmPlays or changes BGM. If filename differs from current, fades out old BGM, updates filename string, opens new AIL stream, sets volume and loop count, starts playback. param_4 controls whether to crossfade or hard-switch.
0x0063A130631CSoundMgr__play_sound_from_resourcePlays a sound from a resource file. Checks game option 0xB (sound effects enabled), loads resource via CResourceMgr, then plays as 2D or 3D sound depending on DAT_0173a924 mode setting. Uses the resource's audio data pointer at +0x110.
0x0063A3B0135CSoundMgr__resume_bgm_streamResumes BGM stream after a fade or pause. Reopens secondary stream if filename changed (+0x415 flag), sets volume, loop count=1, and starts playback. Only acts if playing flag (+0x14) is set.
0x0063A44042CSoundMgr__set_sound_volumeSets the 2D sound effect volume at +0xe8. Clamps to range [0, 127].
0x0063A47042CSoundMgr__set_3d_volumeSets the 3D sound volume at +0x134. Clamps to range [0, 127].
0x0063A4A042CSoundMgr__set_bgm_max_volumeSets the BGM maximum volume at +0xe0. Clamps to range [0, 127]. This is the ceiling for volume fading.
0x0063A4D0134CSoundMgr__set_3d_listener_orientationSets the 3D audio listener orientation based on camera angle. Computes forward/up vectors using vec3_normalize and vec3_cross_product, then calls AIL_set_3D_orientation on the listener handle (+0x400).
0x0063A56059CSoundMgr__set_3d_room_typeSets the 3D audio room reverb type on the provider (+0x338). Checks if room type is supported (AIL_3D_room_type != -1), stores support flag at +0x404, then applies via AIL_set_3D_room_type.
0x0063A5A081CSoundMgr__set_stream_volumeSets the BGM stream volume directly. Clamps value to [0, 127], stores at +0xe4, and applies to both BGM stream (+0x1c) and secondary stream (+0x410) via AIL_set_stream_volume.
0x0063A600127CUISoundEvent__ctorConstructor for CUISoundEvent. Inherits from CUIEventBase. Calls CUIEventBase__init with event parameters and a static counter. Sets vtable to CUISoundEvent vftable. Stores sound type and window pointer.
0x0063A68072CUISoundEvent__dtorDestructor for CUISoundEvent. Restores vtable chain: CUISoundEvent -> CUIEventBase. Non-virtual destructor.
0x0063A6D097CUISoundEvent__scalar_deleting_dtorScalar deleting destructor for CUISoundEvent. Calls dtor, then operator_delete(this, 0x38) if bit 0 of param is set.
0x0063A74055CUISoundEvent__on_eventEvent handler for CUISoundEvent. Looks up target window by type via CUIWindowMgr__find_window_by_type, verifies it matches stored window pointer (+0x30), then calls virtual method +0x94 on the window to play a sound effect. Clears the active flag (+0x24).
0x007613D0156CWavSound__create_instanceAllocates and constructs a CWavSound object (0x118 bytes), sets vtable
0x00761470950CWavSound__load_from_fileLoads WAV/ADPCM/ASI audio file, decompresses if needed, stores PCM data in object
0x0076183061CWavSound__free_audio_dataFrees audio buffer data, uses AIL_mem_free_lock for decompressed data or free() for raw
0x0076187094CWavSound__destructorCWavSound destructor, sets vtable and optionally frees memory
0x007618D0104CWavSound__constructorCWavSound constructor, initializes base class and zeroes audio data/flag fields
0x007AF6D030CBinkPlayer__init_fieldsInitializes CBinkPlayer fields to zero: Bink handle, play state, loop mode, and file stream pointer.
0x007AF6F0104CBinkPlayer__closeCloses the Bink video player. Calls BinkClose on the handle, then closes and deletes the CFileStream wrapper. Uses SEH for cleanup.
0x007AF76056CBinkPlayer__close_no_sehCloses Bink video player without SEH frame. Same logic as CBinkPlayer__close: calls BinkClose and frees the CFileStream.
0x007AF7A0145CBinkPlayer__copy_frame_to_surfaceCopies current Bink frame to a render surface. Calls vtable method to lock surface, BinkCopyToBuffer to copy pixels, then unlocks and sets dirty rect.
0x007AF840335CBinkPlayer__open_videoOpens a Bink video file. Closes any existing video first. If param_4==1, creates CFileStream wrapper (0x2C bytes) for streaming. Opens via BinkOpen with appropriate flags. Sets loop mode in param_1[2].
0x007AF990146CBinkPlayer__update_frameUpdates Bink video playback. Calls BinkWait, BinkDoFrame, handles frame skipping. When reaching last frame: mode 0 = stop, mode 1 = loop. Returns 1 if frame rendered, 0 if waiting or done.
0x007AFAC0142CBGMInfo__ctorCBGMInfo constructor. Initializes SSO string (capacity 0xF), float field at +0x1C (150.0f), zeroes state fields, allocates 0x14-byte linked list sentinel node.
0x007AFBB065CBGMInfo__dtor_stringDestroys the string member of CBGMInfo within an SEH frame by calling STL_string_dtor.
0x007AFE20166CBGMInfo__dtorCBGMInfo destructor. Closes and frees the Bink player at +0x18, frees all 0x14-byte list nodes at +0x20, then destroys the name string.
0x007AFED0161CBGMInfo__release_all_entriesReleases all entries in the CBGMInfo list. Iterates the list calling scalar_deleting_dtor on entries with Bink data, then frees all 0xC-byte list nodes.
0x007AFF80187CBGMInfo__scalar_deleting_dtorCBGMInfo scalar deleting destructor. Runs full destructor (close Bink, free list, destroy string), then optionally frees the 0x28-byte object if bit 0 of param is set.
0x007B0040174CBGMInfo__add_entryAdds an entry to the CBGMInfo linked list at +0x20. Allocates a 0x14-byte node, stores the 8-byte data and param_3, increments count at +0x24. Throws if list is at max length (0xCCCCCCC).
0x007B00F0718CVideoRes__FindOrLoadByNameFinds a video resource by name in the linked list, or loads a new one. Searches by comparing names using std::char_traits::compare. If not found, allocates a 0x28-byte entry, creates a Bink video handle via "video/" path prefix, loads the file, and inserts into the linked list. Returns the video data pointer.
0x007B03C0302CVideoRes__ReloadVideoReloads a video resource. Frees existing Bink data at +6, allocates a new one, loads the video from "video/" path, and copies the name string if successful. Returns 1 on success, 0 on failure.
0x007B04F0373CVideoRes__UpdateAllVolumesUpdates volume for all video resources in the linked list based on distance to player. For each active video with positional audio, finds closest emitter and sets BinkSetVolume accordingly.
0x007B0670323CVideoRes__UpdateVolumeByDistanceUpdates Bink video volume based on distance to player. Loads the texture if needed, then iterates sound emitter positions to find the closest one. Sets BinkSetVolume based on distance/maxDistance ratio. Mutes if player is outside max range.
0x007B07C0259CVideoRes__UpdateVolumeByDistance_AltAlternative volume-by-distance update for video resources. Similar to CVideoRes__UpdateVolumeByDistance but uses different offsets (+0x18/0x1c/0x20/0x24). Adjusts Bink volume based on minimum distance from player to any emitter position.
0x00AC64F0497CBGMManager__ctorCBGMManager constructor. Sets vtable to CBGMManager's vftable, initializes 4 linked list sentinels (0xC-byte nodes), 1 tree sentinel (0x1C bytes), and an 84-byte sub-struct via struct_84byte_init_defaults. Configures various state fields and global indices.
0x00AC6FB0545CBGMManager__dtorDestructor for CBGMManager. Sets vtable to PTR_FUN_01159288, releases COM interface at offset 10, frees BGM entries array at offset 0x38 via CBGMInfo__release_all_entries, then clears multiple linked lists (offsets 0x3b, 0x36, 8, 6, 4, 2), an AVL tree (offset 0x39), and a vector.
0x00AC740038CBGMManager__scalar_deleting_dtorScalar deleting destructor for CBGMManager. Calls CBGMManager__dtor, then optionally frees the 0x100-byte object if bit 0 of param_2 is set.
0x00AC743047CBGMManager__push_back_and_incrementAppends a value to the vector at offset 0x38 (push_back). If at capacity, calls STL_vector__insert_ptr_element to grow. Atomically increments counter at offset 0x44 (LOCK prefix).
0x00AC79C0609CBGMManager__initialize_quadtree_and_cellsInitializes the BGM manager's spatial quadtree from map dimensions. Frees existing quadtree, computes world bounds from cell count and cell size, subdivides into quadtree nodes, inserts all BGM entries into the quadtree, converts world coords, and initializes cell-based lookup structures.
0x00AC822058CBGMManager__find_map_by_idFinds a map object in the linked list at offset 0x10 by matching ID at object+0x110. If param_2 matches the global current map ID (DAT_01733c3c), returns cached pointer at offset 0x2c directly.
0x00AC826047CBGMManager__find_map_by_id_no_cacheFinds a map object in the linked list at offset 0x10 by matching ID at object+0x110. Always walks the list (no cache shortcut). Returns the object pointer or 0 if not found.
0x00AC8290183CBGMManager__get_map_coordinatesGets map coordinate info for a given map ID. For the current map (DAT_01733c3c), returns global cached coordinates. Otherwise searches the map list, and if found, reads coordinates from the map's sub-object at offset 0x490 (fields 0xa0 and 0xa4). Returns a struct with two 64-bit values and a success flag.
0x00AC835047CBGMManager__find_npc_by_idFinds an NPC object in the linked list at offset 0x18 by matching ID at object+0x17C. Returns the object pointer or 0 if not found.
0x00AC838092CBGMManager__find_active_actor_by_gidSearches the linked list at offset 0x10 for an actor whose virtual method at vtable+0xA8 returns the given GID (param_2). Skips entries where byte at offset 0x314 is set (dead/inactive flag). Returns the actor object or 0.
0x00AC844047CBGMManager__find_item_by_idFinds an item object in the linked list at offset 0x20 by matching ID at object+0x418. Returns the object pointer or 0 if not found.
0x00AC8470117CBGMManager__create_and_store_map_objectAllocates a new 0x548-byte entity object via CPlayerEntity__ctor, stores it at offset 0x2C (current map cache), and pushes it into the linked list via STL_list_push_back_ptr.
0x00AC8750743CBGMManager__check_position_in_rangeChecks if a position (param_2 X, param_3 Z) is within range of any registered entity. First checks cell-based entries by iterating in a grid around the position. Then checks the actor linked list (offset 0x10) matching float at offset 0x110 to cell values. For the local player (DAT_016d44d0), handles warp portal mode (offset 0x70==1). Returns 1 if in range, 0 otherwise.
0x00AC8A40349CBGMManager__check_cell_has_matching_entryChecks if a specific cell (computed from param_2 coordinates using map dimensions) contains any entry matching a callback predicate. Looks up the cell in an AVL/map structure via FUN_00ac5670, skips dead entries, then invokes the callback on each entry in the cell's linked list. Returns true if any entry matches.
0x00AC8BA067CBGMManager__is_local_player_in_listChecks if a specific float value (param_2) exists at offset 0x110 of any actor in the linked list (offset 0x10), and that actor's GID (via vtable+0xA8) matches DAT_016d44d0 (the local player GID). Returns 1 if found, 0 otherwise.
0x00AC8BF0604CBGMManager__background_load_rsm_modelsBackground thread function for loading RSM (3D model) resources. Sets thread priority to ABOVE_NORMAL (2), sorts model data, then iterates entries loading bone textures via CRsmModel__LoadBoneTextures and creating CRsmNodeEx or CRsmAnimNode instances depending on model type (0x110). Configures each node with transform data and adds to the object vector. Atomically increments load counter. Yields via Sleep(0).
0x00AC9040835CBGMManager__load_map_effectsLoads map effects from a GND/RSW resource. Gets the model name, looks up the resource via FUN_00aee770. For each effect in the resource's linked list (offset 0x118), either creates an effect object (0x178 bytes via FUN_00e4a2b0) and adds to this manager's list, or plays it directly via FUN_00b24a50. Also handles a second effect list (offset 0x120) for light effects (0x170 bytes via FUN_00da1e30) if DAT_0173a924 is set.
0x00AC93C0253CBGMManager__toggle_npc_chat_stateToggles NPC chat state using a callback predicate. If state flag (offset 0xF4) is 1 and callback returns false, clears the flag. If flag is 0 and callback returns true, builds a packet (0xBB0 header with local player GID from DAT_016d44d0, flags), sends it via FUN_00c7ce30, and sets the flag.
0x00AC94C02003CBGMManager__load_map_and_modelsMain map loading function. Loads RSW resource by name, retrieves GND (ground) and GAT (attribute) resources. Creates the 3D attribute manager (0xAC bytes), sets cell size to 5, initializes lighting/camera globals. Iterates all map objects from the resource, sorts by distance to camera, loads close models immediately (creating CRsmNodeEx/CRsmAnimNode), queues far ones for background loading. Initializes quadtree, loads effects, spawns background thread for remaining RSM models, creates the secondary map object. Updates loading progress bar.
0x00AC9CA0161CBGMManager__unload_current_mapUnloads the current map. Waits for background model loading thread, clears the deferred model list, frees quadtree, clears all entity lists and destroys render nodes. Destroys the 3D attribute manager (offset 0x28), releases cached resources.
0x00AC9D50285CBGMManager__try_toggle_npc_chat_with_range_checkChecks if the local player is in the actor list, then creates a range-check predicate object (0x18 bytes with vtable PTR_FUN_0115938c) containing range, position, and parameters, and calls CBGMManager__toggle_npc_chat_state with it.
0x00AC9E70146CBGMManager__toggle_npc_chat_with_paramsCreates a predicate object (vtable PTR_FUN_011593a8) from two parameter values and calls CBGMManager__toggle_npc_chat_state with it.
0x00AC9F10610CBGMManager__update_framePer-frame update for the BGM manager. Updates audio volumes if enabled. Processes newly loaded models from the background thread, inserting them into quadtree nodes. Cleans up dead/expired effect objects from the effect list (offset 8), removing them from actor list (offset 0x10) as well. Processes deferred item updates from the pending list (offset 0xD8).
0x00ACA200175CBGMManager__remove_actor_by_map_idRemoves an actor from the manager by its map ID (matched at object+0x110). Cleans up associated quadtree entries via FUN_00aca670 and FUN_00aca7b0, removes from both the actor list (offset 0x10) and the effect list (offset 8) with virtual destructor call. Returns 1 if found and removed, 0 otherwise.
0x00ACA2B0109CBGMManager__remove_actor_by_pointerRemoves an actor from the manager by its pointer (matched at node->data). Cleans up quadtree entries for the actor's map ID, removes from actor list (offset 0x10). Returns 1 if found and removed, 0 otherwise.
0x00ACA320434CBGMManager__clear_all_entity_listsClears all entity lists: destroys effect objects (offset 8 list), clears actor list (offset 0x10), NPC list (offset 0x18), item list (offset 0x20). Also clears the pending list (offset 0xD8), the AVL tree (offset 0xE4), the extra linked list (offset 0xEC), and calls FUN_00b254c0 to clean up effects.
0x00ACA4E081CBGMManager__remove_effect_by_pointerRemoves an effect object from the effect list (offset 8) by matching the pointer. Calls the object's virtual destructor, unlinks and frees the list node.
0x00ACA540144CBGMManager__remove_npc_by_idRemoves an NPC from the NPC list (offset 0x18) by matching ID at object+0x17C. Also removes the associated effect from the effect list (offset 8) with virtual destructor call. Returns 1 if found and removed, 0 otherwise.
0x00ACA670318CBGMManager__remove_from_cell_mapRemoves an entry (param_2) from the cell-indexed AVL tree (offset 0xE4). Traverses all cells in the tree, searches each cell's linked list for the matching entry. If param_3 is set and NPC chat state is active, checks if local player is affected and toggles NPC chat state. Frees the list node after removal.
0x00ACA7B0230CBGMManager__remove_from_extra_listRemoves an entry (param_2) from the extra linked list (offset 0xEC) by matching the data value. If param_3 is set and NPC chat state is active, checks local player involvement and toggles NPC chat state. Frees the list node.
0x00ACA8A0211CBGMManager__remove_item_by_idRemoves an item from the item list (offset 0x20) by matching ID at object+0x418. Calls the item's virtual method (vtable+8) with type 0x35, checks return from FUN_00cadcc0. If not deferred, removes effect and list node. If deferred, adds to pending list (offset 0xD8) via FUN_00acc590. Returns 1 if removed, 0 otherwise.
0x00ACA980110CBGMManager__dispatch_effect_updateDispatches an update to an effect in the effect list (offset 8) matching the given coordinates (param_3, param_4). Calls the effect's virtual method (vtable+8) with param_2 as type and additional parameters sign-extended to 64-bit.
0x00ACA9F0409CBGMManager__register_actor_at_positionRegisters an actor (param_2) at a position (param_3 float coords). First removes any existing entry from the cell map, then removes from the extra list. Computes the cell linear index, looks up or creates a cell entry in the AVL tree (offset 0xE4). Adds the actor to the cell's linked list and to the pending queue via FUN_00acc590. Finally calls CBGMManager__try_toggle_npc_chat_with_range_check.
0x00ACAB9077CBGMManager__register_actor_by_tile_coordsWrapper that converts tile coordinates to world coordinates via FUN_00cd36e0, then calls CBGMManager__register_actor_at_position.
0x00ACABE0114CBGMManager__move_actor_and_updateMoves an actor (param_2) to new position (param_3). Removes from cell map (FUN_00aca670) and extra list (offset 0xEC), adds to pending queue via FUN_00acc590, and calls CBGMManager__try_toggle_npc_chat_with_range_check with the new position.
0x00ACAC60171CBGMManager__move_actor_by_tile_coordsWrapper that converts tile coordinates (param_3) to world coordinates, then performs the same actor move logic as CBGMManager__move_actor_and_update: removes from cell map, removes from extra list, adds to pending, and toggles NPC chat check.
0x00ACB6C062CBGMManager__wait_for_background_threadWaits for the background model loading thread to finish (INFINITE timeout), closes the thread handle, resets the deferred model list, and clears the pending load counter.
0x00AE7D3088CBinkPlayer__handle_key_inputHandles keyboard input during Bink video playback. Key 0x67 ('g') seeks to frame 1500 and sets flag. Key 0x52 ('R') sets result=0. Any other key stops playback. Returns 0 if playing, 1 if not active.
0x00AE7D9029CBinkPlayer__close_handle_onlyCloses only the Bink video handle via _BinkClose_4 and zeroes the handle pointer. Does not close the CFileStream wrapper (unlike CBinkPlayer__close). Returns 1.
0x00AE7DE0560CBinkPlayer__play_opening_videoPlays the opening Bink video (openning.bik). Reads BINKMODE from registry, opens video with DirectSound, runs message pump loop with precision sleep timing. On completion or WM_QUIT, closes video and writes BINKMODE back to registry.
0x00AE801018CBinkPlayer__pausePauses or unpauses Bink video playback via _BinkPause_8.
0x00AE803099CBinkPlayer__read_binkmode_from_registryReads BINKMODE registry value from HKLM into member at offset +0xC. Uses REG_DWORD (type 4). Returns 1.
0x00AE80A0101CBinkPlayer__write_binkmode_to_registryWrites BINKMODE registry value to HKLM from member at offset +0xC. Creates key if needed. Uses REG_DWORD. Returns 1.
0x00D01850573CSoundEvent__vector_insertstd::vector::insert for 0x24-byte records containing an embedded STL string. Uses 1.5x growth strategy with max count 0x71C71C7. Constructs new element via record_0x24_copy_construct. Moves existing elements via vector_move_loop_records_0x24. Destroys old buffer elements via STL_string_dtor loop.
0x00D036C0103CSoundEvent__copy_constructCopy-constructs a 0x24-byte record at param_2 from source at param_3. Deep-copies the embedded STL string via STL_string_copy_construct, then copies 3 trailing DWORD fields at offsets 0x18, 0x1C, 0x20. Used as the element constructor during std::vector insertion for these records.
0x00E08D50201CBGMManager__count_map_bgm_entriesCounts BGM entries matching the current map name and a specific map ID. Iterates through BGM entry array (stride 0x54), comparing map names and checking if the entry's map ID matches the one found by CBGMManager__find_map_by_id_no_cache. Returns count of matching entries, or -1 if map not found.
0x00E08E20179CBGMManager__count_entries_by_nameCounts BGM entries matching the current map name and a given BGM file name. Iterates through the BGM entry array (stride 0x54), doing two string comparisons per entry: one against the stored map name and one against param_2. Returns count of matches.