Commit 929e6b4e authored by mercury233's avatar mercury233

yet more LoadDeck

parent 0d6e58e5
......@@ -288,11 +288,14 @@ bool DeckManager::LoadDeck(const wchar_t* file, bool is_packlist) {
reader->read(deckBuffer, size);
reader->drop();
std::istringstream deckStream(deckBuffer);
return LoadDeck(&deckStream, is_packlist);
}
bool DeckManager::LoadDeck(std::istringstream* deckStream, bool is_packlist) {
int sp = 0, ct = 0, mainc = 0, sidec = 0, code;
int cardlist[300];
bool is_side = false;
std::string linebuf;
while(std::getline(deckStream, linebuf) && ct < 300) {
while(std::getline(*deckStream, linebuf) && ct < 300) {
if(linebuf[0] == '!') {
is_side = true;
continue;
......@@ -302,13 +305,13 @@ bool DeckManager::LoadDeck(const wchar_t* file, bool is_packlist) {
sp = 0;
while(linebuf[sp] >= '0' && linebuf[sp] <= '9') sp++;
linebuf[sp] = 0;
code = atoi(linebuf.c_str());
code = std::stoi(linebuf);
cardlist[ct++] = code;
if(is_side) sidec++;
else mainc++;
}
LoadDeck(current_deck, cardlist, mainc, sidec, is_packlist);
return true;
return true; // the above LoadDeck has return value but we ignore it here for now
}
bool DeckManager::SaveDeck(Deck& deck, const wchar_t* file) {
if(!FileSystem::IsDirExists(L"./deck") && !FileSystem::MakeDir(L"./deck"))
......
......@@ -51,6 +51,7 @@ public:
FILE* OpenDeckFile(const wchar_t* file, const char* mode);
IReadFile* OpenDeckReader(const wchar_t* file);
bool LoadDeck(const wchar_t* file, bool is_packlist = false);
bool LoadDeck(std::istringstream* deckStream, bool is_packlist = false);
bool SaveDeck(Deck& deck, const wchar_t* file);
bool DeleteDeck(const wchar_t* file);
bool CreateCategory(const wchar_t* name);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment