1
0
Fork 0
mirror of https://github.com/halpz/re3.git synced 2025-05-03 16:06:29 +00:00

Add files via upload

This commit is contained in:
MaZaHa-Ka 2024-09-27 13:11:00 +03:00 committed by GitHub
parent 15582a81ae
commit 17872b8fc9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 138 additions and 51 deletions

View file

@ -175,6 +175,7 @@ CAnimBlendAssocGroup::CreateAssociations(const char *name)
} }
// Create associations from hierarchies for a given clump // Create associations from hierarchies for a given clump
//__declspec(noinline) // 4 debug
void void
CAnimBlendAssocGroup::CreateAssociations(const char *blockName, RpClump *clump, const char **animNames, int numAssocs) CAnimBlendAssocGroup::CreateAssociations(const char *blockName, RpClump *clump, const char **animNames, int numAssocs)
{ {
@ -183,6 +184,11 @@ CAnimBlendAssocGroup::CreateAssociations(const char *blockName, RpClump *clump,
DestroyAssociations(); DestroyAssociations();
animBlock = CAnimManager::GetAnimationBlock(blockName); animBlock = CAnimManager::GetAnimationBlock(blockName);
//assert(animBlock);
//if(!animBlock) {
//animBlock = CAnimManager::GetAnimationBlock(blockName); // 4 debug research need name
//}
debug("Loading anim \"%s\"\n", blockName);
assocList = new CAnimBlendAssociation[numAssocs]; assocList = new CAnimBlendAssociation[numAssocs];
numAssociations = 0; numAssociations = 0;

View file

@ -59,11 +59,16 @@ CAnimBlendAssociation::FreeAnimBlendNodeArray(void)
RwFreeAlign(nodes); RwFreeAlign(nodes);
} }
//__declspec(noinline) // 4 dbg
void void
CAnimBlendAssociation::Init(RpClump *clump, CAnimBlendHierarchy *hier) CAnimBlendAssociation::Init(RpClump *clump, CAnimBlendHierarchy *hier)
{ {
int i; int i;
AnimBlendFrameData *frame; AnimBlendFrameData *frame;
assert(hier);
/*if(!hier) {
debug("\n\n\n");
}*/
CAnimBlendClumpData *clumpData = *RPANIMBLENDCLUMPDATA(clump); CAnimBlendClumpData *clumpData = *RPANIMBLENDCLUMPDATA(clump);
numNodes = clumpData->numFrames; numNodes = clumpData->numFrames;

View file

@ -80,7 +80,9 @@ AnimAssocDesc aStdAnimDescs[] = {
{ ANIM_STD_DETONATE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_STD_DETONATE, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_STD_PUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_STD_PUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_STD_PARTIALPUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_STD_PARTIALPUNCH, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_STD_KICKGROUND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_STD_KICKGROUND, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, //--------------------------------------------------------
{ ANIM_STD_THROW_UNDER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL }, { ANIM_STD_THROW_UNDER, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL },
{ ANIM_STD_FIGHT_SHUFFLE_B, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION }, { ANIM_STD_FIGHT_SHUFFLE_B, ASSOC_FADEOUTWHENDONE | ASSOC_PARTIAL | ASSOC_HAS_TRANSLATION },
{ ANIM_STD_JACKEDCAR_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL }, { ANIM_STD_JACKEDCAR_RHS, ASSOC_DELETEFADEDOUT | ASSOC_PARTIAL },
@ -1331,9 +1333,15 @@ CAnimManager::CreateAnimAssociation(AssocGroupId groupId, AnimationId animId)
return ms_aAnimAssocGroups[groupId].CopyAnimation(animId); return ms_aAnimAssocGroups[groupId].CopyAnimation(animId);
} }
//__declspec(noinline)
CAnimBlendAssociation* CAnimBlendAssociation*
CAnimManager::GetAnimAssociation(AssocGroupId groupId, AnimationId animId) CAnimManager::GetAnimAssociation(AssocGroupId groupId, AnimationId animId)
{ {
/*if(groupId == AssocGroupId::ASSOCGRP_KNIFE) {
// animId = AnimationId::ANIM_BIKE_HIT;
debug("\n\n");
}
auto b = ms_aAnimAssocGroups[groupId].assocList[animId - ms_aAnimAssocGroups[groupId].firstAnimId];*/
return ms_aAnimAssocGroups[groupId].GetAnimation(animId); return ms_aAnimAssocGroups[groupId].GetAnimation(animId);
} }
@ -1383,9 +1391,42 @@ CAnimManager::AddAnimationAndSync(RpClump *clump, CAnimBlendAssociation *syncani
return anim; return anim;
} }
__declspec(noinline)
//MAZAHAKA_ANIM_STUFF
//#include "PlayerInfo.h" // find func
//#include "PlayerPed.h"
CAnimBlendAssociation* CAnimBlendAssociation*
CAnimManager::BlendAnimation(RpClump *clump, AssocGroupId groupId, AnimationId animId, float delta) CAnimManager::BlendAnimation(RpClump *clump, AssocGroupId groupId, AnimationId animId, float delta)
{ {
// reVC My dumper Mazahaka anims player
/*if(FindPlayerPed() && FindPlayerPed()->GetClump() == clump) // only player anims debug
{
debug("anim groupId: %d\n", groupId);
debug("anim animId: %d\n\n", animId);
}*/
/*if(groupId == AssocGroupId::ASSOCGRP_KNIFE)
{
if(!animId) { animId = (AnimationId)205; } // debug from vice
assert(animId);
//animId = AnimationId::ANIM_BIKE_HIT;
debug("\n\n");
}*/
/*if(animId == 60) { // kickground
debug("groupid: %d\n", groupId);
debug("\n\n");
//if(animId == 60) { animId = (AnimationId)65; } // reVC
if(animId == 60) { groupId = (AssocGroupId)0; } // reVC kick 0:65 fix 0:60
} else if(groupId == 7 || groupId == 9) {
debug("groupId: %d\n", groupId);
debug("animId: %d\n", animId);
}*/
// crash kick+katana
// groupId 7,9
// animId 60
int removePrevAnim = 0; int removePrevAnim = 0;
CAnimBlendClumpData *clumpData = *RPANIMBLENDCLUMPDATA(clump); CAnimBlendClumpData *clumpData = *RPANIMBLENDCLUMPDATA(clump);
CAnimBlendAssociation *anim = GetAnimAssociation(groupId, animId); CAnimBlendAssociation *anim = GetAnimAssociation(groupId, animId);
@ -1430,6 +1471,7 @@ CAnimManager::BlendAnimation(RpClump *clump, AssocGroupId groupId, AnimationId a
return found; return found;
} }
//__declspec(noinline) // 4 debug breakpoints
void void
CAnimManager::LoadAnimFiles(void) CAnimManager::LoadAnimFiles(void)
{ {
@ -1438,6 +1480,7 @@ CAnimManager::LoadAnimFiles(void)
CreateAnimAssocGroups(); CreateAnimAssocGroups();
} }
//__declspec(noinline) // 4 debug breakpoints
void void
CAnimManager::CreateAnimAssocGroups(void) CAnimManager::CreateAnimAssocGroups(void)
{ {
@ -1449,6 +1492,7 @@ CAnimManager::CreateAnimAssocGroups(void)
continue; continue;
CBaseModelInfo *mi = CModelInfo::GetModelInfo(ms_aAnimAssocDefinitions[i].modelIndex); CBaseModelInfo *mi = CModelInfo::GetModelInfo(ms_aAnimAssocDefinitions[i].modelIndex);
//if(!mi) { continue; } // mazahaka
RpClump *clump = (RpClump*)mi->CreateInstance(); RpClump *clump = (RpClump*)mi->CreateInstance();
RpAnimBlendClumpInit(clump); RpAnimBlendClumpInit(clump);
CAnimBlendAssocGroup *group = &ms_aAnimAssocGroups[i]; CAnimBlendAssocGroup *group = &ms_aAnimAssocGroups[i];
@ -1465,6 +1509,7 @@ CAnimManager::CreateAnimAssocGroups(void)
} }
} }
//__declspec(noinline) // 4 debug breakpoints
void void
CAnimManager::LoadAnimFile(const char *filename) CAnimManager::LoadAnimFile(const char *filename)
{ {
@ -1475,6 +1520,8 @@ CAnimManager::LoadAnimFile(const char *filename)
RwStreamClose(stream, nil); RwStreamClose(stream, nil);
} }
//#include <iostream>
//__declspec(noinline) // 4 debug breakpoints
void void
CAnimManager::LoadAnimFile(RwStream *stream, bool compress, char (*uncompressedAnims)[32]) CAnimManager::LoadAnimFile(RwStream *stream, bool compress, char (*uncompressedAnims)[32])
{ {
@ -1511,7 +1558,8 @@ CAnimManager::LoadAnimFile(RwStream *stream, bool compress, char (*uncompressedA
animBlock->isLoaded = true; animBlock->isLoaded = true;
int animIndex = animBlock->firstIndex; int animIndex = animBlock->firstIndex;
for(j = 0; j < animBlock->numAnims; j++){ for(j = 0; j < animBlock->numAnims; j++)
{
assert(animIndex < ARRAY_SIZE(ms_aAnimations)); assert(animIndex < ARRAY_SIZE(ms_aAnimations));
CAnimBlendHierarchy *hier = &ms_aAnimations[animIndex++]; CAnimBlendHierarchy *hier = &ms_aAnimations[animIndex++];
@ -1520,6 +1568,13 @@ CAnimManager::LoadAnimFile(RwStream *stream, bool compress, char (*uncompressedA
ROUNDSIZE(name.size); ROUNDSIZE(name.size);
RwStreamRead(stream, buf, name.size); RwStreamRead(stream, buf, name.size);
hier->SetName(buf); hier->SetName(buf);
//continue;
//------MAZAHAKA----DUMP-----ANIMS
//std::cout << hier->name << "\n";
//--------------------------------
#ifdef ANIM_COMPRESSION #ifdef ANIM_COMPRESSION
bool compressHier = compress; bool compressHier = compress;
@ -1551,7 +1606,8 @@ CAnimManager::LoadAnimFile(RwStream *stream, bool compress, char (*uncompressedA
for(k = 0; k < hier->numSequences; k++, seq++){ for(k = 0; k < hier->numSequences; k++, seq++){
// Each node has a name and key frames // Each node has a name and key frames
RwStreamRead(stream, &cpan, sizeof(IfpHeader)); RwStreamRead(stream, &cpan, sizeof(IfpHeader));
ROUNDSIZE(dgan.size); //ROUNDSIZE(dgan.size); // bug?
ROUNDSIZE(cpan.size);
RwStreamRead(stream, &anim, sizeof(IfpHeader)); RwStreamRead(stream, &anim, sizeof(IfpHeader));
ROUNDSIZE(anim.size); ROUNDSIZE(anim.size);
RwStreamRead(stream, buf, anim.size); RwStreamRead(stream, buf, anim.size);

View file

@ -2,7 +2,8 @@
enum AnimationId enum AnimationId
{ {
ANIM_STD_WALK, ANIM_STD_NOT_INITED_SLOT_4_FISTFITE = 0,
ANIM_STD_WALK = 0,
ANIM_STD_RUN, ANIM_STD_RUN,
ANIM_STD_RUNFAST, ANIM_STD_RUNFAST,
ANIM_STD_IDLE, ANIM_STD_IDLE,
@ -62,6 +63,7 @@ enum AnimationId
ANIM_STD_DETONATE, ANIM_STD_DETONATE,
ANIM_STD_PUNCH, ANIM_STD_PUNCH,
ANIM_STD_PARTIALPUNCH, ANIM_STD_PARTIALPUNCH,
ANIM_STD_KICKGROUND, ANIM_STD_KICKGROUND,
ANIM_STD_THROW_UNDER, ANIM_STD_THROW_UNDER,

View file

@ -181,6 +181,7 @@ RpAnimBlendClumpInitSkinned(RpClump *clump)
void void
RpAnimBlendClumpInitNotSkinned(RpClump *clump) RpAnimBlendClumpInitNotSkinned(RpClump *clump)
{ {
//if(!clump) { return; }
int numFrames = 0; int numFrames = 0;
CAnimBlendClumpData *clumpData; CAnimBlendClumpData *clumpData;
RwFrame *root; RwFrame *root;

View file

@ -11928,7 +11928,7 @@ cAudioManager::ProcessMissionAudioSlot(uint8 slot)
SampleManager.SetChannelVolume(slot + CHANNEL_MISSION_AUDIO_1, Vol); SampleManager.SetChannelVolume(slot + CHANNEL_MISSION_AUDIO_1, Vol);
SampleManager.SetChannelPan(slot + CHANNEL_MISSION_AUDIO_1, pan); SampleManager.SetChannelPan(slot + CHANNEL_MISSION_AUDIO_1, pan);
} }
SampleManager.StartChannel(slot + CHANNEL_MISSION_AUDIO_1); SampleManager.StartChannel(slot + CHANNEL_MISSION_AUDIO_1); // mazahakabug crash mono to stereo
} }
m_nMissionAudioPlayStatus[slot] = PLAY_STATUS_PLAYING; m_nMissionAudioPlayStatus[slot] = PLAY_STATUS_PLAYING;
nCheckPlayingDelay[slot] = 30; nCheckPlayingDelay[slot] = 30;

View file

@ -75,7 +75,7 @@ cMusicManager::ResetMusicAfterReload()
float afRadioTime[NUM_RADIOS]; float afRadioTime[NUM_RADIOS];
m_bRadioSetByScript = FALSE; m_bRadioSetByScript = FALSE;
m_nRadioStationScript = WILDSTYLE; m_nRadioStationScript = FLASH_FM;
m_nRadioPosition = -1; m_nRadioPosition = -1;
m_nAnnouncement = NO_TRACK; m_nAnnouncement = NO_TRACK;
m_bAnnouncementInProgress = FALSE; m_bAnnouncementInProgress = FALSE;
@ -183,7 +183,7 @@ cMusicManager::Initialise()
m_bResetTimers = FALSE; m_bResetTimers = FALSE;
m_nResetTime = 0; m_nResetTime = 0;
m_bRadioSetByScript = FALSE; m_bRadioSetByScript = FALSE;
m_nRadioStationScript = WILDSTYLE; m_nRadioStationScript = FLASH_FM;
m_nRadioPosition = -1; m_nRadioPosition = -1;
m_nRadioInCar = NO_TRACK; m_nRadioInCar = NO_TRACK;
gRetuneCounter = 0; gRetuneCounter = 0;
@ -258,7 +258,7 @@ cMusicManager::PlayerInCar()
uint32 uint32
cMusicManager::GetRadioInCar(void) cMusicManager::GetRadioInCar(void)
{ {
if (!m_bIsInitialised) return WILDSTYLE; if (!m_bIsInitialised) return FLASH_FM;
if (PlayerInCar()) { if (PlayerInCar()) {
CVehicle* veh = AudioManager.FindVehicleOfPlayer(); CVehicle* veh = AudioManager.FindVehicleOfPlayer();
if (veh != nil) { if (veh != nil) {
@ -315,7 +315,7 @@ cMusicManager::ChangeMusicMode(uint8 mode)
#ifdef PAUSE_RADIO_IN_FRONTEND #ifdef PAUSE_RADIO_IN_FRONTEND
// rewind those streams we weren't listening right now // rewind those streams we weren't listening right now
for( uint32 i = STREAMED_SOUND_RADIO_HEAD; i < STREAMED_SOUND_CUTSCENE_BIKER; i++ ) { for( uint32 i = STREAMED_SOUND_RADIO_FLASH_FM; i < STREAMED_SOUND_CUTSCENE_BIKER; i++ ) {
m_aTracks[i].m_nPosition = GetTrackStartPos(i); m_aTracks[i].m_nPosition = GetTrackStartPos(i);
m_aTracks[i].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); m_aTracks[i].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode();
} }
@ -427,7 +427,7 @@ cMusicManager::ServiceFrontEndMode()
#ifdef PAUSE_RADIO_IN_FRONTEND #ifdef PAUSE_RADIO_IN_FRONTEND
// pause radio // pause radio
for( uint32 i = STREAMED_SOUND_RADIO_HEAD; i < STREAMED_SOUND_CUTSCENE_BIKER; i++ ) for( uint32 i = STREAMED_SOUND_RADIO_FLASH_FM; i < STREAMED_SOUND_CUTSCENE_BIKER; i++ )
m_aTracks[i].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode(); m_aTracks[i].m_nLastPosCheckTimer = CTimer::GetTimeInMillisecondsPauseMode();
#endif #endif
@ -595,7 +595,7 @@ cMusicManager::ServiceGameMode()
if (!m_bRadioStreamReady) if (!m_bRadioStreamReady)
{ {
if(vehicle == nil) { if(vehicle == nil) {
m_nFrontendTrack = STREAMED_SOUND_RADIO_LCFR; // huh? m_nFrontendTrack = STREAMED_SOUND_RADIO_EMOTION; // huh?
return; return;
} }
if(m_bRadioSetByScript) { if(m_bRadioSetByScript) {
@ -1311,23 +1311,38 @@ cMusicManager::DisplayRadioStationName()
#endif #endif
wchar* string = nil; wchar* string = nil;
switch (track) { switch (track) {
case WILDSTYLE: string = TheText.Get("FEA_FM0"); break; case FLASH_FM: string = TheText.Get("FEA_FM0"); break;
case FLASH_FM: string = TheText.Get("FEA_FM1"); break; case V_ROCK: string = TheText.Get("FEA_FM1"); break;
case KCHAT: string = TheText.Get("FEA_FM2"); break; case PARADISE: string = TheText.Get("FEA_FM2"); break;
case FEVER: string = TheText.Get("FEA_FM3"); break; case VCPR: string = TheText.Get("FEA_FM3"); break;
case V_ROCK: string = TheText.Get("FEA_FM4"); break; case VCFL: string = TheText.Get("FEA_FM4"); break;
case VCPR: string = TheText.Get("FEA_FM5"); break; case WAVE: string = TheText.Get("FEA_FM5"); break;
case RADIO_ESPANTOSO: string = TheText.Get("FEA_FM6"); break; case FRESH: string = TheText.Get("FEA_FM6"); break;
case EMOTION: string = TheText.Get("FEA_FM7"); break; case ESPANTOSO: string = TheText.Get("FEA_FM7"); break;
case WAVE: string = TheText.Get("FEA_FM8"); break; case EMOTION: string = TheText.Get("FEA_FM8"); break;
case 9: string = TheText.Get("FEA_FM9"); break; case USERTRACK:
case 10:
if (!SampleManager.IsMP3RadioChannelAvailable()) if (!SampleManager.IsMP3RadioChannelAvailable())
return; return;
string = TheText.Get("FEA_MP3"); break; string = TheText.Get("FEA_MP3"); break;
default: string = TheText.Get("FEA_NON"); break; case RADIO_OFF: {
// Otherwise RADIO OFF will be seen after pausing-resuming game and Mission Complete text
if (!m_bRadioStreamReady || !m_bGameplayAllowsRadio)
return;
extern wchar WideErrorString[];
string = TheText.Get("FEA_NON");
if (string == WideErrorString) {
pCurrentStation = nil;
return;
}
break;
}
default: return;
}; };
if (pCurrentStation != string) { if (pCurrentStation != string) {
pCurrentStation = string; pCurrentStation = string;
cDisplay = 60; cDisplay = 60;

View file

@ -2,18 +2,18 @@
enum eRadioStation enum eRadioStation
{ {
WILDSTYLE,
FLASH_FM, FLASH_FM,
KCHAT,
FEVER,
V_ROCK, V_ROCK,
PARADISE,
VCPR, VCPR,
RADIO_ESPANTOSO, VCFL,
EMOTION,
WAVE, WAVE,
FRESH,
ESPANTOSO,
EMOTION,
USERTRACK, USERTRACK,
NUM_RADIOS = 11, NUM_RADIOS = 10,
POLICE_RADIO = 11, POLICE_RADIO = 10,
RADIO_OFF = 10, RADIO_OFF = 10,
//TAXI_RADIO, //TAXI_RADIO,
}; };
@ -38,16 +38,15 @@ enum ePlayerMood
enum eStreamedSounds enum eStreamedSounds
{ {
STREAMED_SOUND_RADIO_HEAD, STREAMED_SOUND_RADIO_FLASH_FM,
STREAMED_SOUND_RADIO_DOUBLE, STREAMED_SOUND_RADIO_V_ROCK,
STREAMED_SOUND_RADIO_KJAH, STREAMED_SOUND_RADIO_PARADISE,
STREAMED_SOUND_RADIO_RISE, STREAMED_SOUND_RADIO_VCPR,
STREAMED_SOUND_RADIO_LIPS, STREAMED_SOUND_RADIO_VCFL,
STREAMED_SOUND_RADIO_MUNDO, STREAMED_SOUND_RADIO_WAVE,
STREAMED_SOUND_RADIO_MSX, STREAMED_SOUND_RADIO_FRESH,
STREAMED_SOUND_RADIO_FLASH, STREAMED_SOUND_RADIO_ESPANTOSO,
STREAMED_SOUND_RADIO_LCJ, STREAMED_SOUND_RADIO_EMOTION,
STREAMED_SOUND_RADIO_LCFR,
STREAMED_SOUND_RADIO_MP3_PLAYER, STREAMED_SOUND_RADIO_MP3_PLAYER,
STREAMED_SOUND_CITY_AMBIENT, STREAMED_SOUND_CITY_AMBIENT,
STREAMED_SOUND_WATER_AMBIENT, STREAMED_SOUND_WATER_AMBIENT,

View file

@ -17,7 +17,11 @@ bool bChannelsCreated = false;
int32 CChannel::channelsThatNeedService = 0; int32 CChannel::channelsThatNeedService = 0;
uint8 tempStereoBuffer[PED_BLOCKSIZE * 2]; #ifdef MAZAHAKA_TRY_SFX_FIX
uint8 tempStereoBuffer[PED_BLOCKSIZE * 2 * 2];
#else
uint8 tempStereoBuffer[PED_BLOCKSIZE * 2]; // crash vic3 'VIC3_AA'
#endif
void void
CChannel::InitChannels() CChannel::InitChannels()

View file

@ -262,17 +262,16 @@ public:
extern cSampleManager SampleManager; extern cSampleManager SampleManager;
extern uint32 BankStartOffset[MAX_SFX_BANKS]; extern uint32 BankStartOffset[MAX_SFX_BANKS];
static char StreamedNameTable[][40] = { static char StreamedNameTable[][39] = {
"AUDIO\\MUSIC\\HEAD",
"AUDIO\\MUSIC\\DOUBLE",
"AUDIO\\MUSIC\\KJAH",
"AUDIO\\MUSIC\\RISE",
"AUDIO\\MUSIC\\LIPS",
"AUDIO\\MUSIC\\MUNDO",
"AUDIO\\MUSIC\\MSX",
"AUDIO\\MUSIC\\FLASH", "AUDIO\\MUSIC\\FLASH",
"AUDIO\\MUSIC\\LCJ", "AUDIO\\MUSIC\\VROCK",
"AUDIO\\MUSIC\\LCFR", "AUDIO\\MUSIC\\PARADISE",
"AUDIO\\MUSIC\\VCPR",
"AUDIO\\MUSIC\\VCFL",
"AUDIO\\MUSIC\\WAVE",
"AUDIO\\MUSIC\\FRESH",
"AUDIO\\MUSIC\\ESPANT",
"AUDIO\\MUSIC\\EMOTION",
"AUDIO\\MUSIC\\MISCOM2", "AUDIO\\MUSIC\\MISCOM2",
"AUDIO\\MUSIC\\CITY", "AUDIO\\MUSIC\\CITY",
"AUDIO\\MUSIC\\WATER", "AUDIO\\MUSIC\\WATER",