From 32b7a24911f011ab51f77b9074660918d44c4be8 Mon Sep 17 00:00:00 2001 From: DailyShana Date: Thu, 16 Apr 2020 12:43:29 +0800 Subject: [PATCH 01/15] reset isSingleMode after watching puzzle replay --- gframe/replay_mode.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/gframe/replay_mode.cpp b/gframe/replay_mode.cpp index 3d9dbbb792..350854f33d 100644 --- a/gframe/replay_mode.cpp +++ b/gframe/replay_mode.cpp @@ -239,6 +239,7 @@ void ReplayMode::EndDuel() { mainGame->dInfo.isStarted = false; mainGame->dInfo.isFinished = true; mainGame->dInfo.isReplay = false; + mainGame->dInfo.isSingleMode = false; mainGame->gMutex.unlock(); mainGame->closeDoneSignal.Reset(); mainGame->closeSignal.Set(); From 408577caf35a0ae4053577d0a697ed87be3e2eb7 Mon Sep 17 00:00:00 2001 From: DailyShana Date: Thu, 16 Apr 2020 12:51:14 +0800 Subject: [PATCH 02/15] select zone for opponent in puzzle without DUEL_SIMPLE_AI --- gframe/duelclient.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gframe/duelclient.cpp b/gframe/duelclient.cpp index 1a7ee4a48c..c32d99c24c 100644 --- a/gframe/duelclient.cpp +++ b/gframe/duelclient.cpp @@ -1689,9 +1689,11 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { } case MSG_SELECT_PLACE: case MSG_SELECT_DISFIELD: { - /*int selecting_player = */BufferIO::ReadInt8(pbuf); + int selecting_player = BufferIO::ReadInt8(pbuf); mainGame->dField.select_min = BufferIO::ReadInt8(pbuf); mainGame->dField.selectable_field = ~BufferIO::ReadInt32(pbuf); + if(selecting_player == mainGame->LocalPlayer(1)) + mainGame->dField.selectable_field = (mainGame->dField.selectable_field >> 16) | (mainGame->dField.selectable_field << 16); mainGame->dField.selected_field = 0; unsigned char respbuf[64]; int pzone = 0; From c401e836f4801dff6d3eb4e89ae91beceedea4d9 Mon Sep 17 00:00:00 2001 From: DailyShana Date: Thu, 16 Apr 2020 14:27:21 +0800 Subject: [PATCH 03/15] draw atk texture correctly for opponent's monster for puzzle mode --- gframe/drawing.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gframe/drawing.cpp b/gframe/drawing.cpp index 98cb83822b..0bae66d52c 100644 --- a/gframe/drawing.cpp +++ b/gframe/drawing.cpp @@ -392,7 +392,8 @@ void Game::DrawCard(ClientCard* pcard) { matManager.mTexture.setTexture(0, imageManager.tAttack); driver->setMaterial(matManager.mTexture); irr::core::matrix4 atk; - atk.setTranslation(pcard->curPos + vector3df(0, -atkdy / 4.0f - 0.35f, 0.05f)); + atk.setTranslation(pcard->curPos + vector3df(0, (pcard->controler == 0 ? -1 : 1) * (atkdy / 4.0f + 0.35f), 0.05f)); + atk.setRotationRadians(vector3df(0, 0, pcard->controler == 0 ? 0 : 3.1415926f)); driver->setTransform(irr::video::ETS_WORLD, atk); driver->drawVertexPrimitiveList(matManager.vSymbol, 4, matManager.iRectangle, 2); } From 9c57e6aa92b6b41f397b2de427157b5f7b3d9ce5 Mon Sep 17 00:00:00 2001 From: Mercury233 Date: Sat, 18 Apr 2020 09:54:48 +0800 Subject: [PATCH 04/15] update DEFAULT_DUEL_RULE --- gframe/game.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gframe/game.h b/gframe/game.h index f865a4b082..fdc7e1b0bb 100644 --- a/gframe/game.h +++ b/gframe/game.h @@ -717,7 +717,7 @@ extern Game* mainGame; #define CHECKBOX_MULTI_KEYWORDS 372 #define CHECKBOX_PREFER_EXPANSION 373 -#define DEFAULT_DUEL_RULE 4 +#define DEFAULT_DUEL_RULE 5 #define CARD_ARTWORK_VERSIONS_OFFSET 10 #endif // GAME_H From 392e6d9bba9f8d4998f316de714c491ce979df95 Mon Sep 17 00:00:00 2001 From: mercury233 Date: Sun, 19 Apr 2020 21:52:14 +0800 Subject: [PATCH 05/15] minor fix crlf --- gframe/game.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gframe/game.cpp b/gframe/game.cpp index 1f7d2e773b..2412975a15 100644 --- a/gframe/game.cpp +++ b/gframe/game.cpp @@ -458,10 +458,10 @@ bool Game::Initialize() { wANNumber->setVisible(false); cbANNumber = env->addComboBox(rect(40, 30, 190, 50), wANNumber, -1); cbANNumber->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER); - for(int i = 0; i < 12; ++i) { - myswprintf(strbuf, L"%d", i + 1); - btnANNumber[i] = env->addButton(rect(20 + 50 * (i % 4), 40 + 50 * (i / 4), 60 + 50 * (i % 4), 80 + 50 * (i / 4)), wANNumber, BUTTON_ANNUMBER_1 + i, strbuf); - btnANNumber[i]->setIsPushButton(true); + for(int i = 0; i < 12; ++i) { + myswprintf(strbuf, L"%d", i + 1); + btnANNumber[i] = env->addButton(rect(20 + 50 * (i % 4), 40 + 50 * (i / 4), 60 + 50 * (i % 4), 80 + 50 * (i / 4)), wANNumber, BUTTON_ANNUMBER_1 + i, strbuf); + btnANNumber[i]->setIsPushButton(true); } btnANNumberOK = env->addButton(rect(80, 60, 150, 85), wANNumber, BUTTON_ANNUMBER_OK, dataManager.GetSysString(1211)); //announce card From 34c0dbf62ca8c5191d2de22a0dad2d2e8027a1b4 Mon Sep 17 00:00:00 2001 From: mercury233 Date: Tue, 21 Apr 2020 20:18:56 +0800 Subject: [PATCH 06/15] fix cr line break --- gframe/game.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gframe/game.cpp b/gframe/game.cpp index 2412975a15..1be6e8ed69 100644 --- a/gframe/game.cpp +++ b/gframe/game.cpp @@ -906,7 +906,9 @@ void Game::SetStaticText(irr::gui::IGUIStaticText* pControl, u32 cWidth, irr::gu wchar_t c = text[i]; u32 w = font->getCharDimension(c).Width + font->getKerningWidth(c, prev); prev = c; - if(text[i] == L'\n') { + if(text[i] == L'\r') { + continue; + } else if(text[i] == L'\n') { dataManager.strBuffer[pbuffer++] = L'\n'; _width = 0; _height++; From 67b325d634dbf70c8419f11d8c36e7f4f10258c6 Mon Sep 17 00:00:00 2001 From: mercury233 Date: Wed, 22 Apr 2020 08:11:44 +0800 Subject: [PATCH 07/15] update ROTD strings --- strings.conf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/strings.conf b/strings.conf index 0af1f577dc..8ae16d97ed 100644 --- a/strings.conf +++ b/strings.conf @@ -1008,3 +1008,7 @@ !setname 0x2142 黄金国永生药 エルドリクシル !setname 0x143 黄金乡 黄金郷 !setname 0x144 幻魔 +!setname 0x145 教导 ドラグマ +!setname 0x146 童话动物 メルフィー +!setname 0x147 波波 ポータン +!setname 0x148 罗兰 ローラン From b15a37b9277a6bff23b183468351026ffd4ffbe7 Mon Sep 17 00:00:00 2001 From: Mercury233 Date: Fri, 24 Apr 2020 10:42:40 +0800 Subject: [PATCH 08/15] blur deck combobox after selecting (#2284) --- gframe/deck_con.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gframe/deck_con.cpp b/gframe/deck_con.cpp index 8b8d40f4d9..e27e533a0a 100644 --- a/gframe/deck_con.cpp +++ b/gframe/deck_con.cpp @@ -471,6 +471,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) { break; } } + mainGame->env->setFocus(0); InstantSearch(); break; } @@ -488,13 +489,16 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) { mainGame->ebDefense->setEnabled(true); } } + mainGame->env->setFocus(0); InstantSearch(); break; } case COMBOBOX_ATTRIBUTE: case COMBOBOX_RACE: case COMBOBOX_LIMIT: + mainGame->env->setFocus(0); InstantSearch(); + break; } } default: break; From c49cf7aaa832c59abf8272e1d6964e8d139e4f22 Mon Sep 17 00:00:00 2001 From: Mercury233 Date: Fri, 24 Apr 2020 10:43:01 +0800 Subject: [PATCH 09/15] add enter search for other inputs in deck con (#2285) --- gframe/deck_con.cpp | 1 + gframe/game.cpp | 8 ++++---- gframe/game.h | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/gframe/deck_con.cpp b/gframe/deck_con.cpp index e27e533a0a..7e289e59c3 100644 --- a/gframe/deck_con.cpp +++ b/gframe/deck_con.cpp @@ -343,6 +343,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) { } case irr::gui::EGET_EDITBOX_ENTER: { switch(id) { + case EDITBOX_INPUTS: case EDITBOX_KEYWORD: { StartFilter(); break; diff --git a/gframe/game.cpp b/gframe/game.cpp index 1be6e8ed69..1da9b5801f 100644 --- a/gframe/game.cpp +++ b/gframe/game.cpp @@ -581,16 +581,16 @@ bool Game::Initialize() { for(int filter = 0x1; filter != 0x2000000; filter <<= 1) cbRace->addItem(dataManager.FormatRace(filter), filter); stAttack = env->addStaticText(dataManager.GetSysString(1322), rect(205, 22 + 50 / 6, 280, 42 + 50 / 6), false, false, wFilter); - ebAttack = env->addEditBox(L"", rect(260, 20 + 50 / 6, 340, 40 + 50 / 6), true, wFilter); + ebAttack = env->addEditBox(L"", rect(260, 20 + 50 / 6, 340, 40 + 50 / 6), true, wFilter, EDITBOX_INPUTS); ebAttack->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER); stDefense = env->addStaticText(dataManager.GetSysString(1323), rect(205, 42 + 75 / 6, 280, 62 + 75 / 6), false, false, wFilter); - ebDefense = env->addEditBox(L"", rect(260, 40 + 75 / 6, 340, 60 + 75 / 6), true, wFilter); + ebDefense = env->addEditBox(L"", rect(260, 40 + 75 / 6, 340, 60 + 75 / 6), true, wFilter, EDITBOX_INPUTS); ebDefense->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER); stStar = env->addStaticText(dataManager.GetSysString(1324), rect(10, 62 + 100 / 6, 80, 82 + 100 / 6), false, false, wFilter); - ebStar = env->addEditBox(L"", rect(60, 60 + 100 / 6, 100, 80 + 100 / 6), true, wFilter); + ebStar = env->addEditBox(L"", rect(60, 60 + 100 / 6, 100, 80 + 100 / 6), true, wFilter, EDITBOX_INPUTS); ebStar->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER); stScale = env->addStaticText(dataManager.GetSysString(1336), rect(101, 62 + 100 / 6, 150, 82 + 100 / 6), false, false, wFilter); - ebScale = env->addEditBox(L"", rect(150, 60 + 100 / 6, 190, 80 + 100 / 6), true, wFilter); + ebScale = env->addEditBox(L"", rect(150, 60 + 100 / 6, 190, 80 + 100 / 6), true, wFilter, EDITBOX_INPUTS); ebScale->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER); stSearch = env->addStaticText(dataManager.GetSysString(1325), rect(205, 62 + 100 / 6, 280, 82 + 100 / 6), false, false, wFilter); ebCardName = env->addEditBox(L"", rect(260, 60 + 100 / 6, 390, 80 + 100 / 6), true, wFilter, EDITBOX_KEYWORD); diff --git a/gframe/game.h b/gframe/game.h index fdc7e1b0bb..7dede5cba3 100644 --- a/gframe/game.h +++ b/gframe/game.h @@ -699,6 +699,7 @@ extern Game* mainGame; #define BUTTON_MARKS_FILTER 322 #define BUTTON_MARKERS_OK 323 #define COMBOBOX_SORTTYPE 324 +#define EDITBOX_INPUTS 325 #define BUTTON_CLEAR_LOG 350 #define LISTBOX_LOG 351 #define SCROLL_CARDTEXT 352 From f1969f7cecda71f30b58d4243ec98a6e24d00226 Mon Sep 17 00:00:00 2001 From: Mercury233 Date: Fri, 24 Apr 2020 10:43:24 +0800 Subject: [PATCH 10/15] auto trim hostname and port when joining host (#2286) --- gframe/game.h | 6 ++++++ gframe/menu_handler.cpp | 2 ++ 2 files changed, 8 insertions(+) diff --git a/gframe/game.h b/gframe/game.h index 7dede5cba3..e2cab924ca 100644 --- a/gframe/game.h +++ b/gframe/game.h @@ -158,6 +158,12 @@ class Game { return focus && focus->hasType(type); } + void TrimText(irr::gui::IGUIElement* editbox) const { + irr::core::stringw text(editbox->getText()); + text.trim(); + editbox->setText(text.c_str()); + } + void OnResize(); recti Resize(s32 x, s32 y, s32 x2, s32 y2); recti Resize(s32 x, s32 y, s32 x2, s32 y2, s32 dx, s32 dy, s32 dx2, s32 dy2); diff --git a/gframe/menu_handler.cpp b/gframe/menu_handler.cpp index 25947a3594..3619a13053 100644 --- a/gframe/menu_handler.cpp +++ b/gframe/menu_handler.cpp @@ -62,6 +62,8 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { } case BUTTON_JOIN_HOST: { bot_mode = false; + mainGame->TrimText(mainGame->ebJoinHost); + mainGame->TrimText(mainGame->ebJoinPort); char ip[20]; const wchar_t* pstr = mainGame->ebJoinHost->getText(); BufferIO::CopyWStr(pstr, ip, 16); From 414481c587f7dc7dc6a4d4e7823906641ca79f8a Mon Sep 17 00:00:00 2001 From: Mercury233 Date: Fri, 24 Apr 2020 10:44:03 +0800 Subject: [PATCH 11/15] use panelmode when selecting cards from hand having more than 10 cards (#2287) --- gframe/duelclient.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gframe/duelclient.cpp b/gframe/duelclient.cpp index c32d99c24c..24471b8ba4 100644 --- a/gframe/duelclient.cpp +++ b/gframe/duelclient.cpp @@ -1462,6 +1462,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { int c, l, s, ss; unsigned int code; bool panelmode = false; + int handcount = 0; bool select_ready = mainGame->dField.select_min == 0; mainGame->dField.select_ready = select_ready; ClientCard* pcard; @@ -1483,6 +1484,11 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { pcard->is_selected = false; if (l & 0xf1) panelmode = true; + if(l & LOCATION_HAND) { + handcount++; + if(handcount >= 10) + panelmode = true; + } } std::sort(mainGame->dField.selectable_cards.begin(), mainGame->dField.selectable_cards.end(), ClientCard::client_card_sort); if(select_hint) From 5c51a7c9841fe78f864ef20d53c10cb90c923d49 Mon Sep 17 00:00:00 2001 From: Mercury233 Date: Fri, 24 Apr 2020 10:44:27 +0800 Subject: [PATCH 12/15] fix CardNameContains (#2288) --- gframe/deck_con.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/gframe/deck_con.cpp b/gframe/deck_con.cpp index 7e289e59c3..06ce177afc 100644 --- a/gframe/deck_con.cpp +++ b/gframe/deck_con.cpp @@ -1074,6 +1074,7 @@ bool DeckBuilder::CardNameContains(const wchar_t *haystack, const wchar_t *needl return true; } } else { + i -= j; j = 0; } i++; From f7fa8c183011bd5f20d0deab87908e5024193858 Mon Sep 17 00:00:00 2001 From: Mercury233 Date: Mon, 27 Apr 2020 07:53:44 +0800 Subject: [PATCH 13/15] support new expansion file extension (#2280) --- gframe/game.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gframe/game.cpp b/gframe/game.cpp index 1da9b5801f..7f071f16de 100644 --- a/gframe/game.cpp +++ b/gframe/game.cpp @@ -937,15 +937,15 @@ void Game::LoadExpansions() { myswprintf(fpath, L"./expansions/%ls", name); dataManager.LoadDB(fpath); } - if(!isdir && wcsrchr(name, '.') && !mywcsncasecmp(wcsrchr(name, '.'), L".zip", 4)) { + if(!isdir && wcsrchr(name, '.') && (!mywcsncasecmp(wcsrchr(name, '.'), L".zip", 4) || !mywcsncasecmp(wcsrchr(name, '.'), L".ypk", 4))) { wchar_t fpath[1024]; myswprintf(fpath, L"./expansions/%ls", name); #ifdef _WIN32 - dataManager.FileSystem->addFileArchive(fpath, true, false); + dataManager.FileSystem->addFileArchive(fpath, true, false, EFAT_ZIP); #else char upath[1024]; BufferIO::EncodeUTF8(fpath, upath); - dataManager.FileSystem->addFileArchive(upath, true, false); + dataManager.FileSystem->addFileArchive(upath, true, false, EFAT_ZIP); #endif } }); From d50ffd162f8976c28a6504ed8c390ee1c4be16e3 Mon Sep 17 00:00:00 2001 From: DailyShana Date: Thu, 30 Apr 2020 09:38:55 +0800 Subject: [PATCH 14/15] add STOC_DECK_COUNT (#2290) * add STOC_DECK_COUNT * side count * show deck in tag duel --- gframe/duelclient.cpp | 14 ++++++++++++++ gframe/network.h | 1 + gframe/single_duel.cpp | 14 ++++++++++++++ gframe/tag_duel.cpp | 16 ++++++++++++++++ 4 files changed, 45 insertions(+) diff --git a/gframe/duelclient.cpp b/gframe/duelclient.cpp index 24471b8ba4..ca5c2a1427 100644 --- a/gframe/duelclient.cpp +++ b/gframe/duelclient.cpp @@ -408,6 +408,19 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { mainGame->gMutex.unlock(); break; } + case STOC_DECK_COUNT: { + mainGame->gMutex.lock(); + int deckc = BufferIO::ReadInt16(pdata); + int extrac = BufferIO::ReadInt16(pdata); + int sidec = BufferIO::ReadInt16(pdata); + mainGame->dField.Initial(0, deckc, extrac); + deckc = BufferIO::ReadInt16(pdata); + extrac = BufferIO::ReadInt16(pdata); + sidec = BufferIO::ReadInt16(pdata); + mainGame->dField.Initial(1, deckc, extrac); + mainGame->gMutex.unlock(); + break; + } case STOC_JOIN_GAME: { STOC_JoinGame* pkt = (STOC_JoinGame*)pdata; std::wstring str; @@ -1164,6 +1177,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { mainGame->WaitFrameSignal(40); mainGame->showcard = 0; mainGame->gMutex.lock(); + mainGame->dField.Clear(); int playertype = BufferIO::ReadInt8(pbuf); mainGame->dInfo.isFirst = (playertype & 0xf) ? false : true; if(playertype & 0xf0) diff --git a/gframe/network.h b/gframe/network.h index d4d9c53380..bab7b1e657 100644 --- a/gframe/network.h +++ b/gframe/network.h @@ -185,6 +185,7 @@ class DuelMode { #define STOC_TP_RESULT 0x6 #define STOC_CHANGE_SIDE 0x7 #define STOC_WAITING_SIDE 0x8 +#define STOC_DECK_COUNT 0x9 #define STOC_CREATE_GAME 0x11 #define STOC_JOIN_GAME 0x12 #define STOC_TYPE_CHANGE 0x13 diff --git a/gframe/single_duel.cpp b/gframe/single_duel.cpp index e5f68c9e02..e1b4fc7de5 100644 --- a/gframe/single_duel.cpp +++ b/gframe/single_duel.cpp @@ -328,6 +328,20 @@ void SingleDuel::StartDuel(DuelPlayer* dp) { (*oit)->state = CTOS_LEAVE_GAME; NetServer::ReSendToPlayer(*oit); } + char deckbuff[12]; + char* pbuf = deckbuff; + BufferIO::WriteInt16(pbuf, pdeck[0].main.size()); + BufferIO::WriteInt16(pbuf, pdeck[0].extra.size()); + BufferIO::WriteInt16(pbuf, pdeck[0].side.size()); + BufferIO::WriteInt16(pbuf, pdeck[1].main.size()); + BufferIO::WriteInt16(pbuf, pdeck[1].extra.size()); + BufferIO::WriteInt16(pbuf, pdeck[1].side.size()); + NetServer::SendBufferToPlayer(players[0], STOC_DECK_COUNT, deckbuff, 12); + char tempbuff[6]; + memcpy(tempbuff, deckbuff, 6); + memcpy(deckbuff, deckbuff + 6, 6); + memcpy(deckbuff + 6, tempbuff, 6); + NetServer::SendBufferToPlayer(players[1], STOC_DECK_COUNT, deckbuff, 12); NetServer::SendPacketToPlayer(players[0], STOC_SELECT_HAND); NetServer::ReSendToPlayer(players[1]); hand_result[0] = 0; diff --git a/gframe/tag_duel.cpp b/gframe/tag_duel.cpp index 4b77ed274b..12040b2c39 100644 --- a/gframe/tag_duel.cpp +++ b/gframe/tag_duel.cpp @@ -285,6 +285,22 @@ void TagDuel::StartDuel(DuelPlayer* dp) { (*oit)->state = CTOS_LEAVE_GAME; NetServer::ReSendToPlayer(*oit); } + char deckbuff[12]; + char* pbuf = deckbuff; + BufferIO::WriteInt16(pbuf, pdeck[0].main.size()); + BufferIO::WriteInt16(pbuf, pdeck[0].extra.size()); + BufferIO::WriteInt16(pbuf, pdeck[0].side.size()); + BufferIO::WriteInt16(pbuf, pdeck[2].main.size()); + BufferIO::WriteInt16(pbuf, pdeck[2].extra.size()); + BufferIO::WriteInt16(pbuf, pdeck[2].side.size()); + NetServer::SendBufferToPlayer(players[0], STOC_DECK_COUNT, deckbuff, 12); + NetServer::ReSendToPlayer(players[1]); + char tempbuff[6]; + memcpy(tempbuff, deckbuff, 6); + memcpy(deckbuff, deckbuff + 6, 6); + memcpy(deckbuff + 6, tempbuff, 6); + NetServer::SendBufferToPlayer(players[2], STOC_DECK_COUNT, deckbuff, 12); + NetServer::ReSendToPlayer(players[3]); NetServer::SendPacketToPlayer(players[0], STOC_SELECT_HAND); NetServer::ReSendToPlayer(players[2]); hand_result[0] = 0; From 2acbb94664d8e1abbb2acd45ea0fe654e84f61da Mon Sep 17 00:00:00 2001 From: mercury233 Date: Fri, 1 May 2020 20:51:40 +0800 Subject: [PATCH 15/15] version --- gframe/game.cpp | 2 +- ocgcore | 2 +- script | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gframe/game.cpp b/gframe/game.cpp index 7f071f16de..ff90e52a48 100644 --- a/gframe/game.cpp +++ b/gframe/game.cpp @@ -10,7 +10,7 @@ #include "netserver.h" #include "single_mode.h" -const unsigned short PRO_VERSION = 0x1350; +const unsigned short PRO_VERSION = 0x1351; namespace ygo { diff --git a/ocgcore b/ocgcore index e80d151ae5..ea542f3300 160000 --- a/ocgcore +++ b/ocgcore @@ -1 +1 @@ -Subproject commit e80d151ae5d9efba5cee6e2360e3679e1789d429 +Subproject commit ea542f3300ff627c02c6e1729f9a5e94e957694a diff --git a/script b/script index b820812a1f..216c4754fb 160000 --- a/script +++ b/script @@ -1 +1 @@ -Subproject commit b820812a1ffb14eeb0022b2336c0c8c93d856d5c +Subproject commit 216c4754fb203fe2f598fee02ace05e54f7cea55