Commit 0adf26be authored by edo9300's avatar edo9300

change the way messagtes are read from single mode

parent 5175d9b7
......@@ -1859,10 +1859,10 @@ std::wstring Game::ReadPuzzleMessage(const char* script_name) {
std::wstring str((std::istreambuf_iterator<char>(infile)),
std::istreambuf_iterator<char>());
std::wstring res = L"";
size_t start = str.find(L"#header");
size_t start = str.find(L"--[[message");
if(start != std::wstring::npos) {
size_t end = str.rfind(L"#endheader");
res = str.substr(start + 7, end - (start + 7));
size_t end = str.find(L"]]", start);
res = str.substr(start + 11, end - (start + 11));
int len = 0;
for(wchar_t c : res) {
if(iswalnum(c))
......@@ -1877,17 +1877,6 @@ std::wstring Game::ReadPuzzleMessage(const char* script_name) {
}
return res;
}
std::string Game::ReadPuzzleBuffer(const char* script_name) {
std::ifstream infile(script_name);
std::string str((std::istreambuf_iterator<char>(infile)),
std::istreambuf_iterator<char>());
size_t start = str.rfind("#endheader");
if(start != std::string::npos) {
std::string res = str.substr(start + 10);
return res;
}
return str;
}
}
......@@ -158,7 +158,6 @@ public:
recti ResizeWin(s32 x, s32 y, s32 x2, s32 y2, bool chat = false);
void ValidateName(irr::gui::IGUIEditBox* box);
std::wstring ReadPuzzleMessage(const char* script_name);
std::string ReadPuzzleBuffer(const char* script_name);
Mutex gMutex;
Mutex gBuffer;
......
......@@ -221,8 +221,7 @@ namespace ygo {
char filename[256];
size_t slen = cur_replay.ReadInt16();
cur_replay.ReadData(filename, slen);
std::string scriptbuff = mainGame->ReadPuzzleBuffer(filename);
if(!preload_script(pduel, filename, slen, scriptbuff.length(), (char *)scriptbuff.c_str()))
if(!preload_script(pduel, filename, slen))
return false;
}
start_duel(pduel, opt);
......
......@@ -57,17 +57,14 @@ int SingleMode::SinglePlayThread(void* param) {
mainGame->dInfo.turn = 0;
char filename[256];
size_t slen = 0;
std::string scriptbuff;
if(open_file) {
open_file = false;
slen = BufferIO::EncodeUTF8(open_file_name, filename);
scriptbuff = mainGame->ReadPuzzleBuffer(filename);
if(!preload_script(pduel, filename, slen, scriptbuff.length(), (char *)scriptbuff.c_str())) {
if(!preload_script(pduel, filename, slen)) {
wchar_t fname[256];
myswprintf(fname, L"./single/%ls", open_file_name);
slen = BufferIO::EncodeUTF8(fname, filename);
scriptbuff = mainGame->ReadPuzzleBuffer(filename);
if(!preload_script(pduel, filename, slen, scriptbuff.length(), (char *)scriptbuff.c_str()))
if(!preload_script(pduel, filename, slen))
slen = 0;
}
} else {
......@@ -75,8 +72,7 @@ int SingleMode::SinglePlayThread(void* param) {
wchar_t fname[256];
myswprintf(fname, L"./single/%ls", name);
slen = BufferIO::EncodeUTF8(fname, filename);
scriptbuff = mainGame->ReadPuzzleBuffer(filename);
if(!preload_script(pduel, filename, slen, scriptbuff.length(), (char *)scriptbuff.c_str()))
if(!preload_script(pduel, filename, slen))
slen = 0;
}
if(slen == 0) {
......
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