From b14e3808db539402d686fc078674be3756cfec7b Mon Sep 17 00:00:00 2001 From: "wrenczes@gmail.com" Date: Sun, 7 Nov 2010 03:55:56 +0000 Subject: [PATCH] Minor code cleanup - pass by reference instead of value; instead of creating temp char arrays on each deck loop while building deck metadata, use an ostringstream when needed. --- projects/mtg/include/GameState.h | 10 ++++---- projects/mtg/src/DeckEditorMenu.cpp | 30 +++++++++++------------ projects/mtg/src/DeckMenu.cpp | 7 ++---- projects/mtg/src/GameState.cpp | 37 +++++++++++++---------------- 4 files changed, 38 insertions(+), 46 deletions(-) diff --git a/projects/mtg/include/GameState.h b/projects/mtg/include/GameState.h index 2eaaad569..d8348661c 100644 --- a/projects/mtg/include/GameState.h +++ b/projects/mtg/include/GameState.h @@ -66,19 +66,19 @@ class GameState // it makes it easier to manipulate the deck information menus. // generate the Deck Meta Data and build the menu items of the menu given - static vector fillDeckMenu(SimpleMenu * _menu, string path, string smallDeckPrefix = "", Player * statsPlayer = NULL); + static vector fillDeckMenu(SimpleMenu * _menu, const string& path, const string& smallDeckPrefix = "", Player * statsPlayer = NULL); // generate the Deck Meta Data and build the menu items of the menu given - static vector fillDeckMenu(DeckMenu * _menu, string path, string smallDeckPrefix = "", Player * statsPlayer = NULL); + static vector fillDeckMenu(DeckMenu * _menu, const string& path, const string& smallDeckPrefix = "", Player * statsPlayer = NULL); // build a vector of decks with the information passsed in. - static vector getValidDeckMetaData(string path, string smallDeckPrefix = "", Player * statsPlayer = NULL); + static vector getValidDeckMetaData(const string& path, const string& smallDeckPrefix = "", Player * statsPlayer = NULL); // build menu items based on the vector - static void renderDeckMenu(SimpleMenu * _menu, vector deckMetaDataList); + static void renderDeckMenu(SimpleMenu * _menu, const vector& deckMetaDataList); // build menu items based on the vector - static void renderDeckMenu(DeckMenu * _menu, vector deckMetaDataList); + static void renderDeckMenu(DeckMenu * _menu, const vector& deckMetaDataList); }; bool sortByName( DeckMetaData * d1, DeckMetaData * d2 ); diff --git a/projects/mtg/src/DeckEditorMenu.cpp b/projects/mtg/src/DeckEditorMenu.cpp index ec015c8bf..fef9564cd 100644 --- a/projects/mtg/src/DeckEditorMenu.cpp +++ b/projects/mtg/src/DeckEditorMenu.cpp @@ -1,7 +1,7 @@ -#include "PrecompiledHeader.h" -#include "DeckEditorMenu.h" +#include "PrecompiledHeader.h" +#include "DeckEditorMenu.h" #include "JTypes.h" - + DeckEditorMenu::DeckEditorMenu(int id, JGuiListener* listener, int fontId, const char * _title) : DeckMenu( id, listener, fontId, _title ) { @@ -31,16 +31,16 @@ DeckEditorMenu::DeckEditorMenu(int id, JGuiListener* listener, int fontId, const SAFE_DELETE(scroller); // need to delete the scroller init in the base class scroller = NEW TextScroller(Fonts::MAIN_FONT, 40 , 230, scrollerWidth, 100, 1, 1); -} - -void DeckEditorMenu::Render() -{ - JRenderer *r = JRenderer::GetInstance(); +} + +void DeckEditorMenu::Render() +{ + JRenderer *r = JRenderer::GetInstance(); r->FillRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT,ARGB(200,0,0,0)); - DeckMenu::Render(); -} - -DeckEditorMenu::~DeckEditorMenu() -{ - SAFE_DELETE( scroller ); -} + DeckMenu::Render(); +} + +DeckEditorMenu::~DeckEditorMenu() +{ + SAFE_DELETE( scroller ); +} diff --git a/projects/mtg/src/DeckMenu.cpp b/projects/mtg/src/DeckMenu.cpp index 78d9ddd9a..094d28408 100644 --- a/projects/mtg/src/DeckMenu.cpp +++ b/projects/mtg/src/DeckMenu.cpp @@ -211,19 +211,17 @@ void DeckMenu::Add(int id, const char * text,string desc, bool forceFocus, DeckM } } - void DeckMenu::updateScroller() { // add all the items from the Tasks db. - TaskList *taskList = NEW TaskList(); + TaskList taskList; scroller->Reset(); - for (vector::iterator it = taskList->tasks.begin(); it!=taskList->tasks.end(); it++) + for (vector::iterator it = taskList.tasks.begin(); it!=taskList.tasks.end(); it++) { ostringstream taskDescription; taskDescription << "[ " << setw(4) << (*it)->getReward() << " / " << (*it)->getExpiration() << " ] " << (*it)->getDesc() << endl; scroller->Add( taskDescription.str() ); } - SAFE_DELETE(taskList); } @@ -241,5 +239,4 @@ void DeckMenu::destroy(){ DeckMenu::~DeckMenu() { SAFE_DELETE(scroller); - } \ No newline at end of file diff --git a/projects/mtg/src/GameState.cpp b/projects/mtg/src/GameState.cpp index c1848886e..341491e65 100644 --- a/projects/mtg/src/GameState.cpp +++ b/projects/mtg/src/GameState.cpp @@ -13,7 +13,7 @@ // TODO: revise sorting strategy to allow other types of sorting. Currently, it is hardwired to use // sortByName to do the sorting. This was done since the menu item display is done in insertion order. -vector GameState::fillDeckMenu( SimpleMenu * _menu, string path, string smallDeckPrefix, Player * statsPlayer){ +vector GameState::fillDeckMenu( SimpleMenu * _menu, const string& path, const string& smallDeckPrefix, Player * statsPlayer){ bool translate = _menu->autoTranslate; _menu->autoTranslate = false; vector deckMetaDataVector = getValidDeckMetaData( path, smallDeckPrefix, statsPlayer ); @@ -23,7 +23,7 @@ vector GameState::fillDeckMenu( SimpleMenu * _menu, string path, return deckMetaDataVector; } -vector GameState::fillDeckMenu( DeckMenu * _menu, string path, string smallDeckPrefix, Player * statsPlayer){ +vector GameState::fillDeckMenu( DeckMenu * _menu, const string& path, const string& smallDeckPrefix, Player * statsPlayer){ bool translate = _menu->autoTranslate; _menu->autoTranslate = false; vector deckMetaDataVector = getValidDeckMetaData( path, smallDeckPrefix, statsPlayer ); @@ -34,7 +34,7 @@ vector GameState::fillDeckMenu( DeckMenu * _menu, string path, s } -vector GameState::getValidDeckMetaData( string path, string smallDeckPrefix, Player * statsPlayer) +vector GameState::getValidDeckMetaData( const string& path, const string& smallDeckPrefix, Player * statsPlayer) { vector retList; @@ -43,30 +43,25 @@ vector GameState::getValidDeckMetaData( string path, string smal int nbDecks = 1; while (found){ found = 0; - char buffer[512]; - char smallDeckName[512]; - char deckDesc[512]; - sprintf(buffer, "%s/deck%i.txt",path.c_str(),nbDecks); - - DeckMetaData * meta = metas->get(buffer, statsPlayer); + std::ostringstream filename; + filename << path << "/deck" << nbDecks << ".txt"; + DeckMetaData * meta = metas->get(filename.str(), statsPlayer); if (meta) { found = 1; - sprintf(smallDeckName, "%s_deck%i",smallDeckPrefix.c_str(),nbDecks); if (statsPlayer){ - string smallDeckNameStr = string(smallDeckName); - meta->loadStatsForPlayer( statsPlayer, smallDeckNameStr ); + std::ostringstream smallDeckName; + smallDeckName << smallDeckPrefix << "_deck" << nbDecks; + meta->loadStatsForPlayer( statsPlayer, smallDeckName.str()); } else { - char playerStatsDeckName[512]; - - sprintf(playerStatsDeckName, "stats/player_deck%i.txt", nbDecks); - string deckstats = options.profileFile(playerStatsDeckName); + std::ostringstream playerStatsDeckName; + playerStatsDeckName << "stats/player_deck" << nbDecks << ".txt"; + string deckstats = options.profileFile(playerStatsDeckName.str()); meta->loadStatsForPlayer( NULL, deckstats ); } - deckDesc[16] = 0; retList.push_back( meta ); nbDecks++; } @@ -81,12 +76,12 @@ vector GameState::getValidDeckMetaData( string path, string smal // build a menu with the given deck list and return a vector of the deck ids created. -void GameState::renderDeckMenu ( SimpleMenu * _menu, vector deckMetaDataList ) +void GameState::renderDeckMenu ( SimpleMenu * _menu, const vector& deckMetaDataList ) { int deckNumber = 1; Translator * t = Translator::GetInstance(); map::iterator it; - for (vector::iterator i = deckMetaDataList.begin(); i != deckMetaDataList.end(); i++) + for (vector::const_iterator i = deckMetaDataList.begin(); i != deckMetaDataList.end(); i++) { DeckMetaData * deckMetaData = *i; string deckName = deckMetaData -> getName(); @@ -102,12 +97,12 @@ void GameState::renderDeckMenu ( SimpleMenu * _menu, vector deck // build a menu with the given deck list and return a vector of the deck ids created. -void GameState::renderDeckMenu ( DeckMenu * _menu, vector deckMetaDataList ) +void GameState::renderDeckMenu ( DeckMenu * _menu, const vector& deckMetaDataList ) { int deckNumber = 1; Translator * t = Translator::GetInstance(); map::iterator it; - for (vector::iterator i = deckMetaDataList.begin(); i != deckMetaDataList.end(); i++) + for (vector::const_iterator i = deckMetaDataList.begin(); i != deckMetaDataList.end(); i++) { DeckMetaData * deckMetaData = *i; string deckName = deckMetaData -> getName();