diff --git a/projects/mtg/src/DeckManager.cpp b/projects/mtg/src/DeckManager.cpp index d0cd5c29d..ab27dd849 100644 --- a/projects/mtg/src/DeckManager.cpp +++ b/projects/mtg/src/DeckManager.cpp @@ -164,33 +164,7 @@ bool DeckManager::instanceFlag = false; void DeckManager::EndInstance() { - if (mInstance) - { - - map::iterator it; - vector::iterator metaDataIter; - - for (it = mInstance->aiDeckStatsMap.begin(); it != mInstance->aiDeckStatsMap.end(); it++){ - SAFE_DELETE(it->second); - } - for (it = mInstance->playerDeckStatsMap.begin(); it != mInstance->playerDeckStatsMap.end(); it++){ - SAFE_DELETE(it->second); - } - - for( metaDataIter = mInstance->aiDeckOrderList.begin(); metaDataIter != mInstance->aiDeckOrderList.end(); ++metaDataIter) - { - SAFE_DELETE( *metaDataIter ); - } - for( metaDataIter = mInstance->playerDeckOrderList.begin(); metaDataIter != mInstance->playerDeckOrderList.end(); ++metaDataIter) - { - SAFE_DELETE( *metaDataIter ); - } - mInstance->aiDeckOrderList.clear(); - mInstance->playerDeckOrderList.clear(); - mInstance->aiDeckStatsMap.clear(); - mInstance->playerDeckStatsMap.clear(); - SAFE_DELETE( mInstance ); - } + SAFE_DELETE(mInstance); } DeckManager* DeckManager::GetInstance() @@ -215,4 +189,28 @@ int DeckManager::getDifficultyRating(Player *statsPlayer, Player *player) DeckManager::~DeckManager() { instanceFlag = false; + map::iterator it; + vector::iterator metaDataIter; + + for (it = mInstance->aiDeckStatsMap.begin(); it != mInstance->aiDeckStatsMap.end(); it++){ + SAFE_DELETE(it->second); + } + for (it = mInstance->playerDeckStatsMap.begin(); it != mInstance->playerDeckStatsMap.end(); it++){ + SAFE_DELETE(it->second); + } + + for( metaDataIter = mInstance->aiDeckOrderList.begin(); metaDataIter != mInstance->aiDeckOrderList.end(); ++metaDataIter) + { + SAFE_DELETE( *metaDataIter ); + } + + for( metaDataIter = mInstance->playerDeckOrderList.begin(); metaDataIter != mInstance->playerDeckOrderList.end(); ++metaDataIter) + { + SAFE_DELETE( *metaDataIter ); + } + + aiDeckOrderList.clear(); + playerDeckOrderList.clear(); + aiDeckStatsMap.clear(); + playerDeckStatsMap.clear(); } diff --git a/projects/mtg/src/DeckMetaData.cpp b/projects/mtg/src/DeckMetaData.cpp index 90220990f..c2fa03030 100644 --- a/projects/mtg/src/DeckMetaData.cpp +++ b/projects/mtg/src/DeckMetaData.cpp @@ -21,6 +21,30 @@ DeckMetaData::DeckMetaData(const string& filename, bool isAI) LoadDeck(); } + +void DeckMetaData::LoadDeck() +{ + if (!mDeckLoaded) + { + MTGDeck deck(mFilename.c_str(), NULL, 1); + mName = trim(deck.meta_name); + mDescription = trim(deck.meta_desc); + mDeckId = atoi((mFilename.substr(mFilename.find("deck") + 4, mFilename.find(".txt"))).c_str()); + mDeckLoaded = true; + if (!mIsAI) + mAvatarFilename = "avatar.jpg"; + else + { + ostringstream avatarFilename; + avatarFilename << "avatar" << getAvatarId() << ".jpg"; + mAvatarFilename = avatarFilename.str(); + } + } + + +} + + void DeckMetaData::LoadStats() { if (!mStatsLoaded) @@ -73,28 +97,6 @@ int DeckMetaData::getAvatarId() return mDeckId % 100; } -void DeckMetaData::LoadDeck() -{ - if (!mDeckLoaded) - { - MTGDeck deck(mFilename.c_str(), NULL, 1); - mName = trim(deck.meta_name); - mDescription = trim(deck.meta_desc); - mDeckId = atoi((mFilename.substr(mFilename.find("deck") + 4, mFilename.find(".txt"))).c_str()); - mDeckLoaded = true; - if (!mIsAI) - mAvatarFilename = "avatar.jpg"; - else - { - ostringstream avatarFilename; - avatarFilename << "avatar" << getAvatarId() << ".jpg"; - mAvatarFilename = avatarFilename.str(); - } - } - - -} - //Accessors string DeckMetaData::getFilename()