Commit 6e212103 authored by nanahira's avatar nanahira

Merge branch 'server' of ../../ygopro into fh-special

parents 6a5321b8 09ed78db
Pipeline #6014 passed with stages
in 4 minutes and 55 seconds
No preview for this file type
...@@ -97,7 +97,6 @@ extern bool exit_on_return; ...@@ -97,7 +97,6 @@ extern bool exit_on_return;
extern bool auto_watch_mode; extern bool auto_watch_mode;
extern bool open_file; extern bool open_file;
extern wchar_t open_file_name[256]; extern wchar_t open_file_name[256];
extern wchar_t open_file_name_with_category[256];
extern bool bot_mode; extern bool bot_mode;
#endif #endif
...@@ -71,7 +71,7 @@ public: ...@@ -71,7 +71,7 @@ public:
BufferIO::WriteInt8(p, proto); BufferIO::WriteInt8(p, proto);
memcpy(p, &st, sizeof(ST)); memcpy(p, &st, sizeof(ST));
#ifdef YGOPRO_MESSAGE_DEBUG #ifdef YGOPRO_MESSAGE_DEBUG
printf("CTOS: %d Length: %d\n", proto, sizeof(ST)); printf("CTOS: %d Length: %ld\n", proto, sizeof(ST));
#endif #endif
bufferevent_write(client_bev, duel_client_write, sizeof(ST) + 3); bufferevent_write(client_bev, duel_client_write, sizeof(ST) + 3);
} }
...@@ -81,7 +81,7 @@ public: ...@@ -81,7 +81,7 @@ public:
BufferIO::WriteInt8(p, proto); BufferIO::WriteInt8(p, proto);
memcpy(p, buffer, len); memcpy(p, buffer, len);
#ifdef YGOPRO_MESSAGE_DEBUG #ifdef YGOPRO_MESSAGE_DEBUG
printf("CTOS: %d Length: %d\n", proto, len); printf("CTOS: %d Length: %ld\n", proto, len);
#endif #endif
bufferevent_write(client_bev, duel_client_write, len + 3); bufferevent_write(client_bev, duel_client_write, len + 3);
} }
......
...@@ -208,7 +208,7 @@ bool Game::Initialize() { ...@@ -208,7 +208,7 @@ bool Game::Initialize() {
SetWindowsIcon(); SetWindowsIcon();
//main menu //main menu
wchar_t strbuf[256]; wchar_t strbuf[256];
myswprintf(strbuf, L"KoishiPro %X.0%X.%X Himehina", PRO_VERSION >> 12, (PRO_VERSION >> 4) & 0xff, PRO_VERSION & 0xf); myswprintf(strbuf, L"KoishiPro %X.0%X.%X Hoshirin", PRO_VERSION >> 12, (PRO_VERSION >> 4) & 0xff, PRO_VERSION & 0xf);
wMainMenu = env->addWindow(rect<s32>(370, 200, 650, 415), false, strbuf); wMainMenu = env->addWindow(rect<s32>(370, 200, 650, 415), false, strbuf);
wMainMenu->getCloseButton()->setVisible(false); wMainMenu->getCloseButton()->setVisible(false);
btnLanMode = env->addButton(rect<s32>(10, 30, 270, 60), wMainMenu, BUTTON_LAN_MODE, dataManager.GetSysString(1200)); btnLanMode = env->addButton(rect<s32>(10, 30, 270, 60), wMainMenu, BUTTON_LAN_MODE, dataManager.GetSysString(1200));
......
...@@ -13,7 +13,6 @@ bool exit_on_return = false; ...@@ -13,7 +13,6 @@ bool exit_on_return = false;
bool auto_watch_mode = false; bool auto_watch_mode = false;
bool open_file = false; bool open_file = false;
wchar_t open_file_name[256] = L""; wchar_t open_file_name[256] = L"";
wchar_t open_file_name_with_category[256] = L"";
bool bot_mode = false; bool bot_mode = false;
void ClickButton(irr::gui::IGUIElement* btn) { void ClickButton(irr::gui::IGUIElement* btn) {
...@@ -199,11 +198,14 @@ int main(int argc, char* argv[]) { ...@@ -199,11 +198,14 @@ int main(int argc, char* argv[]) {
exit_on_return = !keep_on_return; exit_on_return = !keep_on_return;
if(i < wargc) { if(i < wargc) {
open_file = true; open_file = true;
wcscpy(open_file_name, wargv[i]); if(deckCategorySpecified) {
if(deckCategorySpecified && wcslen(ygo::mainGame->gameConf.lastcategory)) { #ifdef WIN32
swprintf(open_file_name_with_category, 256, L"%ls/%ls", ygo::mainGame->gameConf.lastcategory, open_file_name); myswprintf(open_file_name, L"%ls\\%ls", ygo::mainGame->gameConf.lastcategory, wargv[i]);
#else
myswprintf(open_file_name, L"%ls/%ls", ygo::mainGame->gameConf.lastcategory, wargv[i]);
#endif
} else { } else {
wcscpy(open_file_name_with_category, open_file_name); wcscpy(open_file_name, wargv[i]);
} }
} }
ClickButton(ygo::mainGame->btnDeckEdit); ClickButton(ygo::mainGame->btnDeckEdit);
......
...@@ -403,14 +403,14 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -403,14 +403,14 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
} }
case BUTTON_DECK_EDIT: { case BUTTON_DECK_EDIT: {
mainGame->RefreshCategoryDeck(mainGame->cbDBCategory, mainGame->cbDBDecks); mainGame->RefreshCategoryDeck(mainGame->cbDBCategory, mainGame->cbDBDecks);
if(open_file && deckManager.LoadDeck(open_file_name_with_category)) { if(open_file && deckManager.LoadDeck(open_file_name)) {
#ifdef WIN32 #ifdef WIN32
wchar_t *dash = wcsrchr(open_file_name, L'\\'); wchar_t *dash = wcsrchr(open_file_name, L'\\');
#else #else
wchar_t *dash = wcsrchr(open_file_name, L'/'); wchar_t *dash = wcsrchr(open_file_name, L'/');
#endif #endif
wchar_t *dot = wcsrchr(open_file_name, L'.'); wchar_t *dot = wcsrchr(open_file_name, L'.');
if(dash && dot) { if(dash && dot && !mywcsncasecmp(dot, L".ydk", 4)) { // full path
wchar_t deck_name[256]; wchar_t deck_name[256];
wcsncpy(deck_name, dash + 1, dot - dash - 1); wcsncpy(deck_name, dash + 1, dot - dash - 1);
deck_name[dot - dash - 1] = L'\0'; deck_name[dot - dash - 1] = L'\0';
...@@ -420,7 +420,17 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -420,7 +420,17 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame->btnManageDeck->setEnabled(false); mainGame->btnManageDeck->setEnabled(false);
mainGame->cbDBCategory->setEnabled(false); mainGame->cbDBCategory->setEnabled(false);
mainGame->cbDBDecks->setEnabled(false); mainGame->cbDBDecks->setEnabled(false);
} else { } else if(dash) { // has category
wchar_t deck_name[256];
wcsncpy(deck_name, dash + 1, 256);
for(size_t i = 0; i < mainGame->cbDBDecks->getItemCount(); ++i) {
if(!wcscmp(mainGame->cbDBDecks->getItem(i), deck_name)) {
wcscpy(mainGame->gameConf.lastdeck, deck_name);
mainGame->cbDBDecks->setSelected(i);
break;
}
}
} else { // only deck name
for(size_t i = 0; i < mainGame->cbDBDecks->getItemCount(); ++i) { for(size_t i = 0; i < mainGame->cbDBDecks->getItemCount(); ++i) {
if(!wcscmp(mainGame->cbDBDecks->getItem(i), open_file_name)) { if(!wcscmp(mainGame->cbDBDecks->getItem(i), open_file_name)) {
wcscpy(mainGame->gameConf.lastdeck, open_file_name); wcscpy(mainGame->gameConf.lastdeck, open_file_name);
......
...@@ -282,7 +282,7 @@ bool Replay::CheckReplay(const wchar_t* name) { ...@@ -282,7 +282,7 @@ bool Replay::CheckReplay(const wchar_t* name) {
ReplayHeader rheader; ReplayHeader rheader;
size_t count = fread(&rheader, sizeof(ReplayHeader), 1, rfp); size_t count = fread(&rheader, sizeof(ReplayHeader), 1, rfp);
fclose(rfp); fclose(rfp);
return count == 1 && rheader.id == 0x31707279 && rheader.version >= 0x12d0u; return count == 1 && rheader.id == 0x31707279 && rheader.version >= 0x12d0u && (rheader.version < 0x1353u || (rheader.flag & REPLAY_UNIFORM));
} }
bool Replay::DeleteReplay(const wchar_t* name) { bool Replay::DeleteReplay(const wchar_t* name) {
wchar_t fname[256]; wchar_t fname[256];
......
Subproject commit 8529b2a85334d3b27611b1b7113e062f22ebb30f Subproject commit 17ad8099eb8821050bea00af3fd74eb0fd90cc39
Subproject commit 971a83e5335253d82f1dcf38e1792f22041ed311 Subproject commit 01c0e6c7881523752ca17e3dd16911dbe65877ec
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