From c38c52c6ad2093a914a335d9e98033d87350bbb2 Mon Sep 17 00:00:00 2001 From: "Xawotihs@gmail.com" Date: Sat, 11 Feb 2012 18:20:08 +0000 Subject: [PATCH] Refactored audio sample playback --- projects/mtg/include/MTGCardInstance.h | 2 +- projects/mtg/include/WResourceManager.h | 7 ++++++- projects/mtg/src/ActionStack.cpp | 27 ++++++++++++++++--------- projects/mtg/src/AllAbilities.cpp | 8 ++------ projects/mtg/src/Credits.cpp | 6 +----- projects/mtg/src/MTGAbility.cpp | 4 +--- projects/mtg/src/MTGCardInstance.cpp | 25 +++++++++-------------- projects/mtg/src/MTGGameZones.cpp | 4 +--- projects/mtg/src/StoryFlow.cpp | 6 +----- 9 files changed, 41 insertions(+), 48 deletions(-) diff --git a/projects/mtg/include/MTGCardInstance.h b/projects/mtg/include/MTGCardInstance.h index c8c5e37e5..1ea069a25 100644 --- a/projects/mtg/include/MTGCardInstance.h +++ b/projects/mtg/include/MTGCardInstance.h @@ -201,7 +201,7 @@ public: void eventblocked(MTGCardInstance * opponent); int isInPlay(GameObserver* game); - JSample * getSample(); + const string& getSample(); JQuadPtr getIcon(); diff --git a/projects/mtg/include/WResourceManager.h b/projects/mtg/include/WResourceManager.h index a1f6f82fd..9f650f52f 100644 --- a/projects/mtg/include/WResourceManager.h +++ b/projects/mtg/include/WResourceManager.h @@ -73,7 +73,12 @@ public: } virtual bool IsThreaded() = 0; - + void PlaySample(const string& fileName) { + JSample*sample = RetrieveSample(fileName); + if(sample) { + JSoundSystem::GetInstance()->PlaySample(sample); + } + }; virtual JQuadPtr RetrieveCard(MTGCard * card, int style = RETRIEVE_NORMAL,int submode = CACHE_NORMAL) = 0; virtual JSample * RetrieveSample(const string& filename, int style = RETRIEVE_NORMAL, int submode = CACHE_NORMAL) = 0; virtual JTexture * RetrieveTexture(const string& filename, int style = RETRIEVE_NORMAL, int submode = CACHE_NORMAL) = 0; diff --git a/projects/mtg/src/ActionStack.cpp b/projects/mtg/src/ActionStack.cpp index 86cd321cd..a33c84eca 100644 --- a/projects/mtg/src/ActionStack.cpp +++ b/projects/mtg/src/ActionStack.cpp @@ -309,11 +309,9 @@ int Spell::resolve() //Play SFX if (options[Options::SFXVOLUME].number > 0) { - JSample * sample = source->getSample(); - if (sample) - { - JSoundSystem::GetInstance()->PlaySample(sample); - } + + if(observer->getResourceManager()) + observer->getResourceManager()->PlaySample(source->getSample()); } AbilityFactory af(observer); af.addAbilities(observer->mLayers->actionLayer()->getMaxId(), this); @@ -967,15 +965,26 @@ void ActionStack::Update(float dt) } } -void ActionStack::cancelInterruptOffer(InterruptDecision cancelMode, bool log) +void ActionStack::cancelInterruptOffer(InterruptDecision cancelMode, bool log, Player* cancelMe) { - int playerId = (observer->isInterrupting == observer->players[1]) ? 1 : 0; + int playerId; + if(cancelMe != NULL) { + if(observer->players[1] == cancelMe) + playerId = 1; + else + playerId = 0; + } else { + playerId = (observer->isInterrupting == observer->players[1]) ? 1 : 0; + } interruptDecision[playerId] = cancelMode; askIfWishesToInterrupt = NULL; observer->isInterrupting = NULL; timer = -1; - if(log) - observer->logAction(playerId, "no"); + if(log) { + stringstream stream; + stream << "no " << cancelMode; + observer->logAction(playerId, stream.str()); + } } void ActionStack::endOfInterruption(bool log) diff --git a/projects/mtg/src/AllAbilities.cpp b/projects/mtg/src/AllAbilities.cpp index af01f63e3..d3fcd6c00 100644 --- a/projects/mtg/src/AllAbilities.cpp +++ b/projects/mtg/src/AllAbilities.cpp @@ -4344,9 +4344,7 @@ void ATutorialMessage::Render() if (options[Options::SFXVOLUME].number > 0) { - JSample * sample = game->getResourceManager()->RetrieveSample("tutorial.wav"); - if (sample) - JSoundSystem::GetInstance()->PlaySample(sample); + game->getResourceManager()->PlaySample("tutorial.wav"); } } else @@ -4381,9 +4379,7 @@ void ATutorialMessage::Render() if (options[Options::SFXVOLUME].number > 0) { - JSample * sample = game->getResourceManager()->RetrieveSample("chain.wav"); - if (sample) - JSoundSystem::GetInstance()->PlaySample(sample); + game->getResourceManager()->PlaySample("chain.wav"); } } } diff --git a/projects/mtg/src/Credits.cpp b/projects/mtg/src/Credits.cpp index 40780f27f..654ad600e 100644 --- a/projects/mtg/src/Credits.cpp +++ b/projects/mtg/src/Credits.cpp @@ -293,11 +293,7 @@ void Credits::compute(GameObserver* g, GameApp * _app) if (unlocked && options[Options::SFXVOLUME].number > 0) { - JSample * sample = WResourceManager::Instance()->RetrieveSample("bonus.wav"); - if (sample) - { - JSoundSystem::GetInstance()->PlaySample(sample); - } + WResourceManager::Instance()->PlaySample("bonus.wav"); } } diff --git a/projects/mtg/src/MTGAbility.cpp b/projects/mtg/src/MTGAbility.cpp index e8df964a5..8bb158886 100644 --- a/projects/mtg/src/MTGAbility.cpp +++ b/projects/mtg/src/MTGAbility.cpp @@ -4770,9 +4770,7 @@ int AManaProducer::reactToClick(MTGCardInstance * _card) if (options[Options::SFXVOLUME].number > 0) { - JSample * sample = WResourceManager::Instance()->RetrieveSample("mana.wav"); - if (sample) - JSoundSystem::GetInstance()->PlaySample(sample); + WResourceManager::Instance()->PlaySample("mana.wav"); } return ActivatedAbility::activateAbility(); } diff --git a/projects/mtg/src/MTGCardInstance.cpp b/projects/mtg/src/MTGCardInstance.cpp index 71e55fc07..f103e09b5 100644 --- a/projects/mtg/src/MTGCardInstance.cpp +++ b/projects/mtg/src/MTGCardInstance.cpp @@ -1023,12 +1023,10 @@ int MTGCardInstance::cantBeBlockedBy(MTGCardInstance * card) } /* Choose a sound sample to associate to that card */ -JSample * MTGCardInstance::getSample() +const string& MTGCardInstance::getSample() { - JSample * js = 0; - if (sample.size()) - return WResourceManager::Instance()->RetrieveSample(sample); + return sample; for (int i = types.size() - 1; i > 0; i--) { @@ -1037,11 +1035,10 @@ JSample * MTGCardInstance::getSample() type = type + ".wav"; if(getObserver() && getObserver()->getResourceManager()) { - js = WResourceManager::Instance()->RetrieveSample(type); - if (js) + if (getObserver()->getResourceManager()->RetrieveSample(type)) { sample = string(type); - return js; + return sample; } } } @@ -1056,11 +1053,10 @@ JSample * MTGCardInstance::getSample() type = type + ".wav"; if(getObserver() && getObserver()->getResourceManager()) { - js = WResourceManager::Instance()->RetrieveSample(type); - if (js) + if (getObserver()->getResourceManager()->RetrieveSample(type)) { sample = string(type); - return js; + return sample; } } } @@ -1068,21 +1064,20 @@ JSample * MTGCardInstance::getSample() string type = ""; if(!types.size()) - return NULL; + return sample; type = Subtypes::subtypesList->find(types[0]); std::transform(type.begin(), type.end(), type.begin(), ::tolower); type.append(".wav"); if(getObserver() && getObserver()->getResourceManager()) { - js = WResourceManager::Instance()->RetrieveSample(type); - if (js) + if (getObserver()->getResourceManager()->RetrieveSample(type)) { sample = string(type); - return js; + return sample; } } - return NULL; + return sample; } int MTGCardInstance::stepPower(CombatStep step) diff --git a/projects/mtg/src/MTGGameZones.cpp b/projects/mtg/src/MTGGameZones.cpp index 1a5be155c..9a2793a46 100644 --- a/projects/mtg/src/MTGGameZones.cpp +++ b/projects/mtg/src/MTGGameZones.cpp @@ -327,9 +327,7 @@ MTGCardInstance * MTGPlayerCards::putInZone(MTGCardInstance * card, MTGGameZone { if (card->isCreature() && g->getResourceManager()) { - JSample * sample = g->getResourceManager()->RetrieveSample("graveyard.wav"); - if (sample) - JSoundSystem::GetInstance()->PlaySample(sample); + g->getResourceManager()->PlaySample("graveyard.wav"); } } } diff --git a/projects/mtg/src/StoryFlow.cpp b/projects/mtg/src/StoryFlow.cpp index 71a3af06f..06bb5ce17 100644 --- a/projects/mtg/src/StoryFlow.cpp +++ b/projects/mtg/src/StoryFlow.cpp @@ -175,11 +175,7 @@ void StoryReward::Update(float dt) if (!rewardSoundPlayed && options[Options::SFXVOLUME].number > 0) { - JSample * sample = WResourceManager::Instance()->RetrieveSample("bonus.wav"); - if (sample) - { - JSoundSystem::GetInstance()->PlaySample(sample); - } + WResourceManager::Instance()->PlaySample("bonus.wav"); rewardSoundPlayed = 1; } rewardDone = 1;