Erwan
- Yeshua's patch for ingame music
This commit is contained in:
@@ -31,7 +31,20 @@ class GameStateDuel: public GameState, public JGuiListener
|
|||||||
SimpleMenu * opponentMenu;
|
SimpleMenu * opponentMenu;
|
||||||
SimpleMenu * menu;
|
SimpleMenu * menu;
|
||||||
bool premadeDeck;
|
bool premadeDeck;
|
||||||
|
int OpponentsDeckid;
|
||||||
|
string musictrack;
|
||||||
|
|
||||||
|
bool MusicExist(string FileName){
|
||||||
|
string filepath = RESPATH;
|
||||||
|
filepath = filepath + "/" + resources.musicFile(FileName);
|
||||||
|
std::ifstream file(filepath.c_str());
|
||||||
|
if (file) {
|
||||||
|
file.close();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
void loadPlayer(int playerId, int decknb = 0, int isAI = 0);
|
void loadPlayer(int playerId, int decknb = 0, int isAI = 0);
|
||||||
void loadPlayerMomir(int playerId, int isAI);
|
void loadPlayerMomir(int playerId, int isAI);
|
||||||
void loadPlayerRandom(int playerId, int isAI, int mode);
|
void loadPlayerRandom(int playerId, int isAI, int mode);
|
||||||
|
|||||||
@@ -67,7 +67,12 @@ void GameStateDuel::Start()
|
|||||||
{
|
{
|
||||||
JRenderer * renderer = JRenderer::GetInstance();
|
JRenderer * renderer = JRenderer::GetInstance();
|
||||||
renderer->EnableVSync(true);
|
renderer->EnableVSync(true);
|
||||||
|
OpponentsDeckid=0;
|
||||||
|
//stop menu music
|
||||||
|
if (GameApp::music){
|
||||||
|
JSoundSystem::GetInstance()->StopMusic(GameApp::music);
|
||||||
|
SAFE_DELETE(GameApp::music);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef TESTSUITE
|
#ifdef TESTSUITE
|
||||||
SAFE_DELETE(testSuite);
|
SAFE_DELETE(testSuite);
|
||||||
@@ -100,6 +105,7 @@ void GameStateDuel::Start()
|
|||||||
fillDeckMenu(deckmenu,RESPATH"/player/premade");
|
fillDeckMenu(deckmenu,RESPATH"/player/premade");
|
||||||
}
|
}
|
||||||
//mGamePhase = DUEL_STATE_ERROR_NO_DECK;
|
//mGamePhase = DUEL_STATE_ERROR_NO_DECK;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameStateDuel::loadPlayerRandom(int playerId, int isAI, int mode){
|
void GameStateDuel::loadPlayerRandom(int playerId, int isAI, int mode){
|
||||||
@@ -219,6 +225,11 @@ void GameStateDuel::End()
|
|||||||
OutputDebugString("Ending GamestateDuel\n");
|
OutputDebugString("Ending GamestateDuel\n");
|
||||||
#endif
|
#endif
|
||||||
SAFE_DELETE(deckmenu);
|
SAFE_DELETE(deckmenu);
|
||||||
|
//stop game music
|
||||||
|
if (GameApp::music){
|
||||||
|
JSoundSystem::GetInstance()->StopMusic(GameApp::music);
|
||||||
|
SAFE_DELETE(GameApp::music);
|
||||||
|
}
|
||||||
JRenderer::GetInstance()->EnableVSync(false);
|
JRenderer::GetInstance()->EnableVSync(false);
|
||||||
if (mPlayers[0] && mPlayers[1]) mPlayers[0]->End();
|
if (mPlayers[0] && mPlayers[1]) mPlayers[0]->End();
|
||||||
GameObserver::EndInstance();
|
GameObserver::EndInstance();
|
||||||
@@ -327,11 +338,30 @@ void GameStateDuel::Update(float dt)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DUEL_STATE_PLAY:
|
case DUEL_STATE_PLAY:
|
||||||
//Stop the music before starting the game
|
//start of in game music code
|
||||||
if (GameApp::music){
|
musictrack = "";
|
||||||
JSoundSystem::GetInstance()->StopMusic(GameApp::music);
|
//check opponent id and choose the music track based on it
|
||||||
SAFE_DELETE(GameApp::music);
|
if(OpponentsDeckid) {
|
||||||
|
char temp[4096];
|
||||||
|
sprintf(temp,"ai_baka_music%i.mp3",OpponentsDeckid);
|
||||||
|
musictrack.assign(temp);
|
||||||
}
|
}
|
||||||
|
else if(mParent->gameType == GAME_TYPE_CLASSIC)
|
||||||
|
musictrack = "ai_baka_music.mp3";
|
||||||
|
else if(mParent->gameType == GAME_TYPE_MOMIR)
|
||||||
|
musictrack = "ai_baka_music_momir.mp3";
|
||||||
|
else if(mParent->gameType == GAME_TYPE_RANDOM1 || mParent->gameType == GAME_TYPE_RANDOM2)
|
||||||
|
musictrack = "ai_baka_music_random.mp3";
|
||||||
|
|
||||||
|
if(!MusicExist(musictrack))
|
||||||
|
musictrack = "ai_baka_music.mp3";
|
||||||
|
|
||||||
|
//play the music
|
||||||
|
if (GameApp::HasMusic && !GameApp::music && options[Options::MUSICVOLUME].number > 0 && MusicExist(musictrack)){
|
||||||
|
GameApp::music = resources.ssLoadMusic(musictrack.c_str());
|
||||||
|
JSoundSystem::GetInstance()->PlayMusic(GameApp::music, true);
|
||||||
|
}
|
||||||
|
//end of music code
|
||||||
if (!game){
|
if (!game){
|
||||||
GameObserver::Init(mPlayers, 2);
|
GameObserver::Init(mPlayers, 2);
|
||||||
game = GameObserver::GetInstance();
|
game = GameObserver::GetInstance();
|
||||||
@@ -480,6 +510,7 @@ void GameStateDuel::ButtonPressed(int controllerId, int controlId)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
loadPlayer(1,controlId,1);
|
loadPlayer(1,controlId,1);
|
||||||
|
OpponentsDeckid=controlId;
|
||||||
opponentMenu->Close();
|
opponentMenu->Close();
|
||||||
mGamePhase = DUEL_STATE_CHOOSE_DECK2_TO_PLAY;
|
mGamePhase = DUEL_STATE_CHOOSE_DECK2_TO_PLAY;
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user