Commit e8977135 authored by mercury233's avatar mercury233

Merge branch 'master' of https://github.com/Fluorohydride/ygopro

parents bd155bfb f33b04ef
...@@ -1148,7 +1148,12 @@ bool ClientField::ShowSelectSum(bool panelmode) { ...@@ -1148,7 +1148,12 @@ bool ClientField::ShowSelectSum(bool panelmode) {
} else { } else {
select_ready = true; select_ready = true;
mainGame->wCardSelect->setVisible(false); mainGame->wCardSelect->setVisible(false);
mainGame->dField.ShowSelectCard(true); wchar_t wbuf[256], *pwbuf = wbuf;
BufferIO::CopyWStrRef(dataManager.GetSysString(209), pwbuf, 256);
*pwbuf++ = L'\n';
BufferIO::CopyWStrRef(dataManager.GetSysString(210), pwbuf, 256);
mainGame->stQMessage->setText(wbuf);
mainGame->PopupElement(mainGame->wQuery);
} }
} else { } else {
select_ready = false; select_ready = false;
...@@ -1500,8 +1505,13 @@ void ClientField::UpdateDeclarableCodeType(bool enter) { ...@@ -1500,8 +1505,13 @@ void ClientField::UpdateDeclarableCodeType(bool enter) {
auto cp = dataManager.GetCodePointer(cit->first); //verified by _strings auto cp = dataManager.GetCodePointer(cit->first); //verified by _strings
//datas.alias can be double card names or alias //datas.alias can be double card names or alias
if(is_declarable(cp->second, declarable_type)) { if(is_declarable(cp->second, declarable_type)) {
mainGame->lstANCard->addItem(cit->second.name); if(wcscmp(pname, cit->second.name) == 0) { //exact match
ancard.push_back(cit->first); mainGame->lstANCard->insertItem(0, cit->second.name, -1);
ancard.insert(ancard.begin(), cit->first);
} else {
mainGame->lstANCard->addItem(cit->second.name);
ancard.push_back(cit->first);
}
} }
} }
} }
...@@ -1527,8 +1537,13 @@ void ClientField::UpdateDeclarableCodeOpcode(bool enter) { ...@@ -1527,8 +1537,13 @@ void ClientField::UpdateDeclarableCodeOpcode(bool enter) {
auto cp = dataManager.GetCodePointer(cit->first); //verified by _strings auto cp = dataManager.GetCodePointer(cit->first); //verified by _strings
//datas.alias can be double card names or alias //datas.alias can be double card names or alias
if(is_declarable(cp->second, opcode)) { if(is_declarable(cp->second, opcode)) {
mainGame->lstANCard->addItem(cit->second.name); if(wcscmp(pname, cit->second.name) == 0) { //exact match
ancard.push_back(cit->first); mainGame->lstANCard->insertItem(0, cit->second.name, -1);
ancard.insert(ancard.begin(), cit->first);
} else {
mainGame->lstANCard->addItem(cit->second.name);
ancard.push_back(cit->first);
}
} }
} }
} }
......
...@@ -54,6 +54,7 @@ public: ...@@ -54,6 +54,7 @@ public:
int select_sumval; int select_sumval;
int select_cancelable; int select_cancelable;
int select_mode; int select_mode;
bool select_panalmode;
bool select_ready; bool select_ready;
int announce_count; int announce_count;
int declarable_type; int declarable_type;
......
...@@ -205,6 +205,11 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) { ...@@ -205,6 +205,11 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
DuelClient::SendBufferToServer(CTOS_UPDATE_DECK, deckbuf, pdeck - deckbuf); DuelClient::SendBufferToServer(CTOS_UPDATE_DECK, deckbuf, pdeck - deckbuf);
break; break;
} }
case BUTTON_MSG_OK: {
mainGame->HideElement(mainGame->wMessage);
mainGame->actionSignal.Set();
break;
}
case BUTTON_YES: { case BUTTON_YES: {
mainGame->HideElement(mainGame->wQuery); mainGame->HideElement(mainGame->wQuery);
if(!mainGame->is_building || mainGame->is_siding) if(!mainGame->is_building || mainGame->is_siding)
......
...@@ -522,6 +522,8 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -522,6 +522,8 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->closeDoneSignal.Wait(); mainGame->closeDoneSignal.Wait();
mainGame->gMutex.Lock(); mainGame->gMutex.Lock();
mainGame->dInfo.isStarted = false; mainGame->dInfo.isStarted = false;
mainGame->is_building = false;
mainGame->wDeckEdit->setVisible(false);
mainGame->btnCreateHost->setEnabled(true); mainGame->btnCreateHost->setEnabled(true);
mainGame->btnJoinHost->setEnabled(true); mainGame->btnJoinHost->setEnabled(true);
mainGame->btnJoinCancel->setEnabled(true); mainGame->btnJoinCancel->setEnabled(true);
...@@ -1458,7 +1460,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1458,7 +1460,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame->dField.selectsum_all.clear(); mainGame->dField.selectsum_all.clear();
mainGame->dField.selected_cards.clear(); mainGame->dField.selected_cards.clear();
mainGame->dField.selectsum_cards.clear(); mainGame->dField.selectsum_cards.clear();
bool panelmode = false; mainGame->dField.select_panalmode = false;
for (int i = 0; i < mainGame->dField.must_select_count; ++i) { for (int i = 0; i < mainGame->dField.must_select_count; ++i) {
unsigned int code = (unsigned int)BufferIO::ReadInt32(pbuf); unsigned int code = (unsigned int)BufferIO::ReadInt32(pbuf);
int c = mainGame->LocalPlayer(BufferIO::ReadInt8(pbuf)); int c = mainGame->LocalPlayer(BufferIO::ReadInt8(pbuf));
...@@ -1484,20 +1486,20 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1484,20 +1486,20 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
pcard->select_seq = i; pcard->select_seq = i;
mainGame->dField.selectsum_all.push_back(pcard); mainGame->dField.selectsum_all.push_back(pcard);
if ((l & 0xe) == 0) if ((l & 0xe) == 0)
panelmode = true; mainGame->dField.select_panalmode = true;
} }
std::sort(mainGame->dField.selectsum_all.begin(), mainGame->dField.selectsum_all.end(), ClientCard::client_card_sort); std::sort(mainGame->dField.selectsum_all.begin(), mainGame->dField.selectsum_all.end(), ClientCard::client_card_sort);
if(select_hint) if(select_hint)
myswprintf(textBuffer, L"%ls(%d)", dataManager.GetDesc(select_hint), mainGame->dField.select_sumval); myswprintf(textBuffer, L"%ls(%d)", dataManager.GetDesc(select_hint), mainGame->dField.select_sumval);
else myswprintf(textBuffer, L"%ls(%d)", dataManager.GetSysString(560), mainGame->dField.select_sumval); else myswprintf(textBuffer, L"%ls(%d)", dataManager.GetSysString(560), mainGame->dField.select_sumval);
select_hint = 0; select_hint = 0;
if (panelmode) { if(mainGame->dField.select_panalmode) {
mainGame->wCardSelect->setText(textBuffer); mainGame->wCardSelect->setText(textBuffer);
} else { } else {
mainGame->stHintMsg->setText(textBuffer); mainGame->stHintMsg->setText(textBuffer);
mainGame->stHintMsg->setVisible(true); mainGame->stHintMsg->setVisible(true);
} }
return mainGame->dField.ShowSelectSum(panelmode); return mainGame->dField.ShowSelectSum(mainGame->dField.select_panalmode);
} }
case MSG_SORT_CARD: case MSG_SORT_CARD:
case MSG_SORT_CHAIN: { case MSG_SORT_CHAIN: {
......
...@@ -299,6 +299,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -299,6 +299,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case MSG_SELECT_TRIBUTE: case MSG_SELECT_TRIBUTE:
case MSG_SELECT_SUM: { case MSG_SELECT_SUM: {
mainGame->HideElement(mainGame->wQuery); mainGame->HideElement(mainGame->wQuery);
if(select_panalmode)
mainGame->dField.ShowSelectCard(true);
break; break;
} }
case MSG_SELECT_CHAIN: { case MSG_SELECT_CHAIN: {
...@@ -891,6 +893,13 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -891,6 +893,13 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
} }
break; break;
} }
case LISTBOX_ANCARD: {
int sel = mainGame->lstANCard->getSelected();
if(sel != -1) {
mainGame->ShowCardInfo(ancard[sel]);
}
break;
}
} }
break; break;
} }
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
int enable_log = 0; int enable_log = 0;
bool exit_on_return = false; bool exit_on_return = false;
bool keep_on_return = false;
bool open_file = false; bool open_file = false;
wchar_t open_file_name[256] = L""; wchar_t open_file_name[256] = L"";
...@@ -85,11 +86,16 @@ int main(int argc, char* argv[]) { ...@@ -85,11 +86,16 @@ int main(int argc, char* argv[]) {
continue; continue;
} else if(!strcmp(argv[i], "-x")) { // eXit on return } else if(!strcmp(argv[i], "-x")) { // eXit on return
exit_on_return = true; exit_on_return = true;
} else if(!strcmp(argv[i], "-k")) { // Keep on return
exit_on_return = false;
keep_on_return = true;
} else if(!strcmp(argv[i], "-j")) { // Join host } else if(!strcmp(argv[i], "-j")) { // Join host
exit_on_return = !keep_on_return;
ClickButton(ygo::mainGame->btnLanMode); ClickButton(ygo::mainGame->btnLanMode);
ClickButton(ygo::mainGame->btnJoinHost); ClickButton(ygo::mainGame->btnJoinHost);
break; break;
} else if(!strcmp(argv[i], "-d")) { // Deck } else if(!strcmp(argv[i], "-d")) { // Deck
exit_on_return = !keep_on_return;
if(i < argc) { if(i < argc) {
open_file = true; open_file = true;
GetParameterW(open_file_name, &argv[i + 1][0]); GetParameterW(open_file_name, &argv[i + 1][0]);
...@@ -97,6 +103,7 @@ int main(int argc, char* argv[]) { ...@@ -97,6 +103,7 @@ int main(int argc, char* argv[]) {
ClickButton(ygo::mainGame->btnDeckEdit); ClickButton(ygo::mainGame->btnDeckEdit);
break; break;
} else if(!strcmp(argv[i], "-r")) { // Replay } else if(!strcmp(argv[i], "-r")) { // Replay
exit_on_return = !keep_on_return;
if(i < argc) { if(i < argc) {
open_file = true; open_file = true;
GetParameterW(open_file_name, &argv[i + 1][0]); GetParameterW(open_file_name, &argv[i + 1][0]);
...@@ -106,6 +113,7 @@ int main(int argc, char* argv[]) { ...@@ -106,6 +113,7 @@ int main(int argc, char* argv[]) {
ClickButton(ygo::mainGame->btnLoadReplay); ClickButton(ygo::mainGame->btnLoadReplay);
break; break;
} else if(!strcmp(argv[i], "-s")) { // Single } else if(!strcmp(argv[i], "-s")) { // Single
exit_on_return = !keep_on_return;
if(i < argc) { if(i < argc) {
open_file = true; open_file = true;
GetParameterW(open_file_name, &argv[i + 1][0]); GetParameterW(open_file_name, &argv[i + 1][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