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) { ...@@ -288,11 +288,14 @@ bool DeckManager::LoadDeck(const wchar_t* file, bool is_packlist) {
reader->read(deckBuffer, size); reader->read(deckBuffer, size);
reader->drop(); reader->drop();
std::istringstream deckStream(deckBuffer); 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 sp = 0, ct = 0, mainc = 0, sidec = 0, code;
int cardlist[300]; int cardlist[300];
bool is_side = false; bool is_side = false;
std::string linebuf; std::string linebuf;
while(std::getline(deckStream, linebuf) && ct < 300) { while(std::getline(*deckStream, linebuf) && ct < 300) {
if(linebuf[0] == '!') { if(linebuf[0] == '!') {
is_side = true; is_side = true;
continue; continue;
...@@ -302,13 +305,13 @@ bool DeckManager::LoadDeck(const wchar_t* file, bool is_packlist) { ...@@ -302,13 +305,13 @@ bool DeckManager::LoadDeck(const wchar_t* file, bool is_packlist) {
sp = 0; sp = 0;
while(linebuf[sp] >= '0' && linebuf[sp] <= '9') sp++; while(linebuf[sp] >= '0' && linebuf[sp] <= '9') sp++;
linebuf[sp] = 0; linebuf[sp] = 0;
code = atoi(linebuf.c_str()); code = std::stoi(linebuf);
cardlist[ct++] = code; cardlist[ct++] = code;
if(is_side) sidec++; if(is_side) sidec++;
else mainc++; else mainc++;
} }
LoadDeck(current_deck, cardlist, mainc, sidec, is_packlist); 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) { bool DeckManager::SaveDeck(Deck& deck, const wchar_t* file) {
if(!FileSystem::IsDirExists(L"./deck") && !FileSystem::MakeDir(L"./deck")) if(!FileSystem::IsDirExists(L"./deck") && !FileSystem::MakeDir(L"./deck"))
......
...@@ -51,6 +51,7 @@ public: ...@@ -51,6 +51,7 @@ public:
FILE* OpenDeckFile(const wchar_t* file, const char* mode); FILE* OpenDeckFile(const wchar_t* file, const char* mode);
IReadFile* OpenDeckReader(const wchar_t* file); IReadFile* OpenDeckReader(const wchar_t* file);
bool LoadDeck(const wchar_t* file, bool is_packlist = false); 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 SaveDeck(Deck& deck, const wchar_t* file);
bool DeleteDeck(const wchar_t* file); bool DeleteDeck(const wchar_t* file);
bool CreateCategory(const wchar_t* name); 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