fixed music bug for Momir and Random game types. The functions that determined if a file existed did not handle errors properly. Instead it would return an empty string which when appended to the base path would always return true. Thus a non-existent file would always be treated as if it existed. The guards I put in test for empty strings before continuing evaluation. I may have been a little judicious in the places where I put the gaurds in. We can remove the guards if it turns out we don't need them in all the places.
This commit is contained in:
@@ -196,6 +196,8 @@ bool JFileSystem::DirExists(const string& strDirname)
|
|||||||
|
|
||||||
bool JFileSystem::FileExists(const string& strFilename)
|
bool JFileSystem::FileExists(const string& strFilename)
|
||||||
{
|
{
|
||||||
|
if (strFilename.length() < 1 ) return false;
|
||||||
|
|
||||||
return (mSystemFS && mSystemFS->FileExists(strFilename)) || mUserFS->FileExists(strFilename);
|
return (mSystemFS && mSystemFS->FileExists(strFilename)) || mUserFS->FileExists(strFilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -299,6 +299,7 @@ bool filesystem::DirExists(const std::string & folderName)
|
|||||||
|
|
||||||
bool filesystem::FileExists(const std::string & fileName)
|
bool filesystem::FileExists(const std::string & fileName)
|
||||||
{
|
{
|
||||||
|
if (fileName.length() < 1) return false;
|
||||||
//Check in zip
|
//Check in zip
|
||||||
file_info FileInfo;
|
file_info FileInfo;
|
||||||
|
|
||||||
|
|||||||
@@ -242,7 +242,10 @@ void GameStateDuel::End()
|
|||||||
//TODO Move This to utils or ResourceManager. Don't we have more generic functions that can do that?
|
//TODO Move This to utils or ResourceManager. Don't we have more generic functions that can do that?
|
||||||
bool GameStateDuel::MusicExist(string FileName)
|
bool GameStateDuel::MusicExist(string FileName)
|
||||||
{
|
{
|
||||||
return FileExists(WResourceManager::Instance()->musicFile(FileName));
|
string musicFilename = WResourceManager::Instance()->musicFile(FileName);
|
||||||
|
if (musicFilename.length() < 1) return false;
|
||||||
|
|
||||||
|
return FileExists(musicFilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameStateDuel::ConstructOpponentMenu()
|
void GameStateDuel::ConstructOpponentMenu()
|
||||||
@@ -438,7 +441,8 @@ void GameStateDuel::Update(float dt)
|
|||||||
else if (mParent->gameType == GAME_TYPE_RANDOM1 || mParent->gameType == GAME_TYPE_RANDOM2) musictrack
|
else if (mParent->gameType == GAME_TYPE_RANDOM1 || mParent->gameType == GAME_TYPE_RANDOM2) musictrack
|
||||||
= "ai_baka_music_random.mp3";
|
= "ai_baka_music_random.mp3";
|
||||||
|
|
||||||
if (!MusicExist(musictrack)) musictrack = "ai_baka_music.mp3";
|
if (!MusicExist(musictrack))
|
||||||
|
musictrack = "ai_baka_music.mp3";
|
||||||
|
|
||||||
GameApp::playMusic(musictrack);
|
GameApp::playMusic(musictrack);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -754,7 +754,7 @@ string ResourceManagerImpl::musicFile(const string& filename)
|
|||||||
sprintf(defdir, "sound/%s", filename.c_str());
|
sprintf(defdir, "sound/%s", filename.c_str());
|
||||||
if (fileOK(defdir)) return defdir;
|
if (fileOK(defdir)) return defdir;
|
||||||
|
|
||||||
//Failure. Check raw faile.
|
//Failure. Check raw file.
|
||||||
sprintf(defdir, "%s", filename.c_str());
|
sprintf(defdir, "%s", filename.c_str());
|
||||||
if (fileOK(defdir)) return defdir;
|
if (fileOK(defdir)) return defdir;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user