fixes ai deck saving bug pointed out by Zethfox.

TODO: fix text to the right of the box when saving ai deck.
This commit is contained in:
techdragon.nguyen@gmail.com
2010-10-27 03:00:39 +00:00
parent 56ba37feec
commit 28d3b9b9a9
5 changed files with 16 additions and 14 deletions

View File

@@ -19,7 +19,7 @@ class DeckDataWrapper: public WSrcDeck {
bool next() {currentPos++; return true;}; bool next() {currentPos++; return true;};
bool prev() {currentPos--; return true;}; bool prev() {currentPos--; return true;};
void save(); void save();
void save(string filepath, bool useExpandedCardNames); void save(string filepath, bool useExpandedCardNames, string &deckTitle, string &deckDesc);
}; };
#endif #endif

View File

@@ -150,7 +150,7 @@ class MTGDeck{
int add(MTGCard * card); int add(MTGCard * card);
int remove(MTGCard * card); int remove(MTGCard * card);
int save(); int save();
int save(string destFileName, bool useExpandedDescriptions); int save(string destFileName, bool useExpandedDescriptions, string &deckTitle, string &deckDesc);
MTGCard * getCardById(int id); MTGCard * getCardById(int id);
}; };

View File

@@ -17,9 +17,9 @@ void DeckDataWrapper::save(){
} }
} }
void DeckDataWrapper::save(string filepath, bool useExpandedCardNames){ void DeckDataWrapper::save(string filepath, bool useExpandedCardNames, string &deckTitle, string &deckDesc){
if(parent){ if(parent){
Rebuild(parent); Rebuild(parent);
parent->save(filepath, useExpandedCardNames); parent->save(filepath, useExpandedCardNames, deckTitle, deckDesc);
} }
} }

View File

@@ -275,14 +275,15 @@ void GameStateDeckViewer::saveAsAIDeck( string deckName )
oss << "deck" << nbAiDecks; oss << "deck" << nbAiDecks;
defaultAiDeckName = oss.str(); defaultAiDeckName = oss.str();
oss.str(""); oss.str("");
oss << endl << "Can you beat your own creations?" << endl << "User created AI Deck # " << nbAiDecks; if ( myDeck->parent->meta_desc == "" )
oss << endl << "Can you beat your own creations?" << endl << "User created AI Deck # " << nbAiDecks;
else
oss << myDeck->parent->meta_desc;
string deckDesc = oss.str(); string deckDesc = oss.str();
string filepath = RESPATH; string filepath = RESPATH;
filepath.append("/ai/baka/").append( defaultAiDeckName ).append( ".txt" ); filepath.append("/ai/baka/").append( defaultAiDeckName ).append( ".txt" );
DebugTrace("saving AI deck " << filepath << endl ); DebugTrace("saving AI deck " << filepath);
myDeck->parent->meta_desc = deckDesc; myDeck->save( filepath, true, deckName, deckDesc);
myDeck->parent->meta_name = deckName;
myDeck->save( filepath, true);
oss.clear(); oss.clear();
delete deckManager; delete deckManager;

View File

@@ -740,23 +740,23 @@ int MTGDeck::remove(MTGCard * card){
} }
int MTGDeck::save() { int MTGDeck::save() {
return save( filename, false ); return save( filename, false, meta_name, meta_desc );
} }
int MTGDeck::save(string destFileName, bool useExpandedDescriptions){ int MTGDeck::save(string destFileName, bool useExpandedDescriptions, string &deckTitle, string &deckDesc ){
string tmp = destFileName; string tmp = destFileName;
tmp.append(".tmp"); //not thread safe tmp.append(".tmp"); //not thread safe
std::ofstream file(tmp.c_str()); std::ofstream file(tmp.c_str());
char writer[512]; char writer[512];
if (file){ if (file){
DebugTrace("Saving Deck: " << meta_name << " to " << destFileName ); DebugTrace("Saving Deck: " << deckTitle << " to " << destFileName );
if (meta_name.size()){ if (meta_name.size()){
file << "#NAME:" << meta_name << '\n'; file << "#NAME:" << deckTitle << '\n';
} }
if (meta_desc.size()){ if (meta_desc.size()){
size_t found = 0; size_t found = 0;
string desc= meta_desc; string desc= deckDesc;
found = desc.find_first_of("\n"); found = desc.find_first_of("\n");
while(found != string::npos){ while(found != string::npos){
file << "#DESC:" << desc.substr(0,found+1); file << "#DESC:" << desc.substr(0,found+1);
@@ -781,6 +781,7 @@ int MTGDeck::save(string destFileName, bool useExpandedDescriptions){
string setName = setInfo->getName(); string setName = setInfo->getName();
string cardName = card->data->getName(); string cardName = card->data->getName();
file<< cardName << "\t " << "(" << setName << ") *" << nbCards << endl; file<< cardName << "\t " << "(" << setName << ") *" << nbCards << endl;
setInfo = NULL;
} }
} }
else else