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