Commit 084de53c authored by edo9300's avatar edo9300

fixed chain buttons

parent de24b415
...@@ -1138,7 +1138,6 @@ bool ClientField::ShowSelectSum(bool panelmode) { ...@@ -1138,7 +1138,6 @@ bool ClientField::ShowSelectSum(bool panelmode) {
if(CheckSelectSum()) { if(CheckSelectSum()) {
if(selectsum_cards.size() == 0 || selectable_cards.size() == 0) { if(selectsum_cards.size() == 0 || selectable_cards.size() == 0) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
if(mainGame->wCardSelect->isVisible()) if(mainGame->wCardSelect->isVisible())
mainGame->HideElement(mainGame->wCardSelect, true); mainGame->HideElement(mainGame->wCardSelect, true);
else { else {
...@@ -1159,7 +1158,6 @@ bool ClientField::ShowSelectSum(bool panelmode) { ...@@ -1159,7 +1158,6 @@ bool ClientField::ShowSelectSum(bool panelmode) {
if(CheckSelectSum()) { if(CheckSelectSum()) {
if(selectsum_cards.size() == 0 || selectable_cards.size() == 0) { if(selectsum_cards.size() == 0 || selectable_cards.size() == 0) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
DuelClient::SendResponse(); DuelClient::SendResponse();
return true; return true;
} else { } else {
...@@ -1174,11 +1172,6 @@ bool ClientField::ShowSelectSum(bool panelmode) { ...@@ -1174,11 +1172,6 @@ bool ClientField::ShowSelectSum(bool panelmode) {
} else } else
select_ready = false; select_ready = false;
} }
if (select_ready) {
ShowCancelOrFinishButton(1);
} else {
ShowCancelOrFinishButton(0);
}
return false; return false;
} }
bool ClientField::CheckSelectSum() { bool ClientField::CheckSelectSum() {
......
...@@ -130,7 +130,6 @@ public: ...@@ -130,7 +130,6 @@ public:
void GetHoverField(int x, int y); void GetHoverField(int x, int y);
void ShowMenu(int flag, int x, int y); void ShowMenu(int flag, int x, int y);
void UpdateChainButtons(); void UpdateChainButtons();
void ShowCancelOrFinishButton(int buttonOp);
void SetResponseSelectedCards() const; void SetResponseSelectedCards() const;
}; };
......
...@@ -495,7 +495,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) { ...@@ -495,7 +495,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
if(!mainGame->is_siding) { if(!mainGame->is_siding) {
if((hovered_pos == 1 && (draging_pointer->second.type & 0x802040)) || (hovered_pos == 2 && !(draging_pointer->second.type & 0x802040))) if((hovered_pos == 1 && (draging_pointer->second.type & 0x802040)) || (hovered_pos == 2 && !(draging_pointer->second.type & 0x802040)))
hovered_pos = 0; hovered_pos = 0;
if((hovered_pos == 1 || (hovered_pos == 0 && click_pos == 1)) && deckManager.current_deck.main.size() < 100) { if((hovered_pos == 1 || (hovered_pos == 0 && click_pos == 1)) && deckManager.current_deck.main.size() < 60) {
if(hovered_seq == -1) if(hovered_seq == -1)
deckManager.current_deck.main.push_back(draging_pointer); deckManager.current_deck.main.push_back(draging_pointer);
else if(hovered_seq < (int)deckManager.current_deck.main.size() && hovered_pos) else if(hovered_seq < (int)deckManager.current_deck.main.size() && hovered_pos)
...@@ -616,7 +616,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) { ...@@ -616,7 +616,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
if((draging_pointer->second.type & 0x802040) && deckManager.current_deck.extra.size() < 15) { if((draging_pointer->second.type & 0x802040) && deckManager.current_deck.extra.size() < 15) {
deckManager.current_deck.extra.push_back(draging_pointer); deckManager.current_deck.extra.push_back(draging_pointer);
is_draging = false; is_draging = false;
} else if(!(draging_pointer->second.type & 0x802040) && deckManager.current_deck.main.size() < 100) { } else if(!(draging_pointer->second.type & 0x802040) && deckManager.current_deck.main.size() < 60) {
deckManager.current_deck.main.push_back(draging_pointer); deckManager.current_deck.main.push_back(draging_pointer);
is_draging = false; is_draging = false;
} }
...@@ -648,7 +648,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) { ...@@ -648,7 +648,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
break; break;
if((draging_pointer->second.type & 0x802040) && deckManager.current_deck.extra.size() < 15) { if((draging_pointer->second.type & 0x802040) && deckManager.current_deck.extra.size() < 15) {
deckManager.current_deck.extra.push_back(draging_pointer); deckManager.current_deck.extra.push_back(draging_pointer);
} else if(!(draging_pointer->second.type & 0x802040) && deckManager.current_deck.main.size() < 100) { } else if(!(draging_pointer->second.type & 0x802040) && deckManager.current_deck.main.size() < 60) {
deckManager.current_deck.main.push_back(draging_pointer); deckManager.current_deck.main.push_back(draging_pointer);
} else if (deckManager.current_deck.side.size() < 15) { } else if (deckManager.current_deck.side.size() < 15) {
deckManager.current_deck.side.push_back(draging_pointer); deckManager.current_deck.side.push_back(draging_pointer);
...@@ -686,7 +686,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) { ...@@ -686,7 +686,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
if (limit <= 0) if (limit <= 0)
break; break;
if (hovered_pos == 1) { if (hovered_pos == 1) {
if (deckManager.current_deck.main.size() < 100) if (deckManager.current_deck.main.size() < 60)
deckManager.current_deck.main.push_back(draging_pointer); deckManager.current_deck.main.push_back(draging_pointer);
else if (deckManager.current_deck.side.size() < 15) else if (deckManager.current_deck.side.size() < 15)
deckManager.current_deck.side.push_back(draging_pointer); deckManager.current_deck.side.push_back(draging_pointer);
...@@ -701,13 +701,13 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) { ...@@ -701,13 +701,13 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
else { else {
if ((draging_pointer->second.type & 0x802040) && deckManager.current_deck.extra.size() < 15) if ((draging_pointer->second.type & 0x802040) && deckManager.current_deck.extra.size() < 15)
deckManager.current_deck.extra.push_back(draging_pointer); deckManager.current_deck.extra.push_back(draging_pointer);
else if (!(draging_pointer->second.type & 0x802040) && deckManager.current_deck.main.size() < 100) else if (!(draging_pointer->second.type & 0x802040) && deckManager.current_deck.main.size() < 60)
deckManager.current_deck.main.push_back(draging_pointer); deckManager.current_deck.main.push_back(draging_pointer);
} }
} else { } else {
if ((draging_pointer->second.type & 0x802040) && deckManager.current_deck.extra.size() < 15) if ((draging_pointer->second.type & 0x802040) && deckManager.current_deck.extra.size() < 15)
deckManager.current_deck.extra.push_back(draging_pointer); deckManager.current_deck.extra.push_back(draging_pointer);
else if (!(draging_pointer->second.type & 0x802040) && deckManager.current_deck.main.size() < 100) else if (!(draging_pointer->second.type & 0x802040) && deckManager.current_deck.main.size() < 60)
deckManager.current_deck.main.push_back(draging_pointer); deckManager.current_deck.main.push_back(draging_pointer);
else if (deckManager.current_deck.side.size() < 15) else if (deckManager.current_deck.side.size() < 15)
deckManager.current_deck.side.push_back(draging_pointer); deckManager.current_deck.side.push_back(draging_pointer);
......
...@@ -309,7 +309,6 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -309,7 +309,6 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->btnChainIgnore->setVisible(false); mainGame->btnChainIgnore->setVisible(false);
mainGame->btnChainAlways->setVisible(false); mainGame->btnChainAlways->setVisible(false);
mainGame->btnChainWhenAvail->setVisible(false); mainGame->btnChainWhenAvail->setVisible(false);
mainGame->btnCancelOrFinish->setVisible(false);
mainGame->deckBuilder.result_string[0] = L'0'; mainGame->deckBuilder.result_string[0] = L'0';
mainGame->deckBuilder.result_string[1] = 0; mainGame->deckBuilder.result_string[1] = 0;
mainGame->deckBuilder.results.clear(); mainGame->deckBuilder.results.clear();
...@@ -597,7 +596,6 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -597,7 +596,6 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->btnChainIgnore->setVisible(false); mainGame->btnChainIgnore->setVisible(false);
mainGame->btnChainAlways->setVisible(false); mainGame->btnChainAlways->setVisible(false);
mainGame->btnChainWhenAvail->setVisible(false); mainGame->btnChainWhenAvail->setVisible(false);
mainGame->btnCancelOrFinish->setVisible(false);
mainGame->stMessage->setText(dataManager.GetSysString(1500)); mainGame->stMessage->setText(dataManager.GetSysString(1500));
mainGame->PopupElement(mainGame->wMessage); mainGame->PopupElement(mainGame->wMessage);
mainGame->gMutex.Unlock(); mainGame->gMutex.Unlock();
...@@ -627,7 +625,6 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -627,7 +625,6 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->btnChainIgnore->setVisible(false); mainGame->btnChainIgnore->setVisible(false);
mainGame->btnChainAlways->setVisible(false); mainGame->btnChainAlways->setVisible(false);
mainGame->btnChainWhenAvail->setVisible(false); mainGame->btnChainWhenAvail->setVisible(false);
mainGame->btnCancelOrFinish->setVisible(false);
time_t nowtime = time(NULL); time_t nowtime = time(NULL);
struct tm *localedtime = localtime(&nowtime); struct tm *localedtime = localtime(&nowtime);
char timebuf[40]; char timebuf[40];
...@@ -1270,11 +1267,6 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1270,11 +1267,6 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame->stHintMsg->setText(textBuffer); mainGame->stHintMsg->setText(textBuffer);
mainGame->stHintMsg->setVisible(true); mainGame->stHintMsg->setVisible(true);
} }
if (mainGame->dField.select_cancelable) {
mainGame->dField.ShowCancelOrFinishButton(1);
} else {
mainGame->dField.ShowCancelOrFinishButton(0);
}
return false; return false;
} }
case MSG_SELECT_CHAIN: { case MSG_SELECT_CHAIN: {
...@@ -1503,9 +1495,6 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1503,9 +1495,6 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame->gMutex.Lock(); mainGame->gMutex.Lock();
mainGame->stHintMsg->setText(textBuffer); mainGame->stHintMsg->setText(textBuffer);
mainGame->stHintMsg->setVisible(true); mainGame->stHintMsg->setVisible(true);
if (mainGame->dField.select_cancelable) {
mainGame->dField.ShowCancelOrFinishButton(1);
}
mainGame->gMutex.Unlock(); mainGame->gMutex.Unlock();
return false; return false;
} }
...@@ -1962,16 +1951,15 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1962,16 +1951,15 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame->btnLeaveGame->setVisible(true); mainGame->btnLeaveGame->setVisible(true);
} }
if(!mainGame->dInfo.isReplay && mainGame->dInfo.player_type < 7) { if(!mainGame->dInfo.isReplay && mainGame->dInfo.player_type < 7) {
if(mainGame->gameConf.control_mode == 0) { if(!mainGame->chkHideHintButton->isChecked()) {
mainGame->btnChainIgnore->setVisible(true); mainGame->btnChainIgnore->setVisible(true);
mainGame->btnChainAlways->setVisible(true); mainGame->btnChainAlways->setVisible(true);
mainGame->btnChainWhenAvail->setVisible(true); mainGame->btnChainWhenAvail->setVisible(true);
mainGame->dField.UpdateChainButtons(); //mainGame->dField.UpdateChainButtons();
} else { } else {
mainGame->btnChainIgnore->setVisible(false); mainGame->btnChainIgnore->setVisible(false);
mainGame->btnChainAlways->setVisible(false); mainGame->btnChainAlways->setVisible(false);
mainGame->btnChainWhenAvail->setVisible(false); mainGame->btnChainWhenAvail->setVisible(false);
mainGame->btnCancelOrFinish->setVisible(false);
} }
} }
if(mainGame->dInfo.isTag && mainGame->dInfo.turn != 1) { if(mainGame->dInfo.isTag && mainGame->dInfo.turn != 1) {
......
...@@ -153,29 +153,24 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -153,29 +153,24 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case MSG_WAITING: { case MSG_WAITING: {
if (mainGame->wCardSelect->isVisible()) { if (mainGame->wCardSelect->isVisible()) {
mainGame->HideElement(mainGame->wCardSelect); mainGame->HideElement(mainGame->wCardSelect);
ShowCancelOrFinishButton(0);
} }
break; break;
} }
case MSG_SELECT_BATTLECMD: { case MSG_SELECT_BATTLECMD: {
if (mainGame->wCardSelect->isVisible()) { if (mainGame->wCardSelect->isVisible()) {
mainGame->HideElement(mainGame->wCardSelect); mainGame->HideElement(mainGame->wCardSelect);
ShowCancelOrFinishButton(0);
} }
if (mainGame->wOptions->isVisible()) { if (mainGame->wOptions->isVisible()) {
mainGame->HideElement(mainGame->wOptions); mainGame->HideElement(mainGame->wOptions);
ShowCancelOrFinishButton(0);
} }
break; break;
} }
case MSG_SELECT_IDLECMD: { case MSG_SELECT_IDLECMD: {
if (mainGame->wCardSelect->isVisible()) { if (mainGame->wCardSelect->isVisible()) {
mainGame->HideElement(mainGame->wCardSelect); mainGame->HideElement(mainGame->wCardSelect);
ShowCancelOrFinishButton(0);
} }
if (mainGame->wOptions->isVisible()) { if (mainGame->wOptions->isVisible()) {
mainGame->HideElement(mainGame->wOptions); mainGame->HideElement(mainGame->wOptions);
ShowCancelOrFinishButton(0);
} }
break; break;
} }
...@@ -192,7 +187,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -192,7 +187,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if (selected_cards.size() == 0) { if (selected_cards.size() == 0) {
if (select_cancelable) { if (select_cancelable) {
DuelClient::SetResponseI(-1); DuelClient::SetResponseI(-1);
ShowCancelOrFinishButton(0);
if (mainGame->wCardSelect->isVisible()) if (mainGame->wCardSelect->isVisible())
mainGame->HideElement(mainGame->wCardSelect, true); mainGame->HideElement(mainGame->wCardSelect, true);
else else
...@@ -202,13 +196,11 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -202,13 +196,11 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
} }
if (mainGame->wQuery->isVisible()) { if (mainGame->wQuery->isVisible()) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wQuery, true); mainGame->HideElement(mainGame->wQuery, true);
break; break;
} }
if (select_ready) { if (select_ready) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
if (mainGame->wCardSelect->isVisible()) if (mainGame->wCardSelect->isVisible())
mainGame->HideElement(mainGame->wCardSelect, true); mainGame->HideElement(mainGame->wCardSelect, true);
else else
...@@ -229,7 +221,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -229,7 +221,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
} }
if (mainGame->wQuery->isVisible()) { if (mainGame->wQuery->isVisible()) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wQuery, true); mainGame->HideElement(mainGame->wQuery, true);
break; break;
} }
...@@ -238,7 +229,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -238,7 +229,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case MSG_SELECT_SUM: { case MSG_SELECT_SUM: {
if (mainGame->wQuery->isVisible()) { if (mainGame->wQuery->isVisible()) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wQuery, true); mainGame->HideElement(mainGame->wQuery, true);
break; break;
} }
...@@ -249,21 +239,17 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -249,21 +239,17 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break; break;
if (mainGame->wCardSelect->isVisible()) { if (mainGame->wCardSelect->isVisible()) {
mainGame->HideElement(mainGame->wCardSelect); mainGame->HideElement(mainGame->wCardSelect);
ShowCancelOrFinishButton(0);
break; break;
} }
if (mainGame->wQuery->isVisible()) { if (mainGame->wQuery->isVisible()) {
DuelClient::SetResponseI(-1); DuelClient::SetResponseI(-1);
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wQuery, true); mainGame->HideElement(mainGame->wQuery, true);
} }
else { else {
mainGame->PopupElement(mainGame->wQuery); mainGame->PopupElement(mainGame->wQuery);
ShowCancelOrFinishButton(0);
} }
if (mainGame->wOptions->isVisible()) { if (mainGame->wOptions->isVisible()) {
DuelClient::SetResponseI(-1); DuelClient::SetResponseI(-1);
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wOptions); mainGame->HideElement(mainGame->wOptions);
} }
break; break;
...@@ -304,7 +290,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -304,7 +290,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case MSG_SELECT_CHAIN: { case MSG_SELECT_CHAIN: {
mainGame->HideElement(mainGame->wQuery); mainGame->HideElement(mainGame->wQuery);
if (!chain_forced) { if (!chain_forced) {
ShowCancelOrFinishButton(1);
} }
break; break;
} }
...@@ -329,14 +314,12 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -329,14 +314,12 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case MSG_SELECT_CHAIN: { case MSG_SELECT_CHAIN: {
DuelClient::SetResponseI(-1); DuelClient::SetResponseI(-1);
mainGame->HideElement(mainGame->wQuery, true); mainGame->HideElement(mainGame->wQuery, true);
ShowCancelOrFinishButton(0);
break; break;
} }
case MSG_SELECT_CARD: case MSG_SELECT_CARD:
case MSG_SELECT_TRIBUTE: case MSG_SELECT_TRIBUTE:
case MSG_SELECT_SUM: { case MSG_SELECT_SUM: {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wQuery, true); mainGame->HideElement(mainGame->wQuery, true);
break; break;
} }
...@@ -424,7 +407,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -424,7 +407,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case BUTTON_CMD_ACTIVATE: case BUTTON_CMD_ACTIVATE:
case BUTTON_CMD_RESET: { case BUTTON_CMD_RESET: {
mainGame->wCmdMenu->setVisible(false); mainGame->wCmdMenu->setVisible(false);
ShowCancelOrFinishButton(0);
if(!list_command) { if(!list_command) {
int index = -1; int index = -1;
select_options.clear(); select_options.clear();
...@@ -555,7 +537,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -555,7 +537,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
list_command = COMMAND_SPSUMMON; list_command = COMMAND_SPSUMMON;
mainGame->wCardSelect->setText(dataManager.GetSysString(509)); mainGame->wCardSelect->setText(dataManager.GetSysString(509));
ShowSelectCard(); ShowSelectCard();
ShowCancelOrFinishButton(1);
} }
break; break;
} }
...@@ -756,19 +737,13 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -756,19 +737,13 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
int sel = selected_cards.size(); int sel = selected_cards.size();
if (sel >= select_max) { if (sel >= select_max) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wCardSelect, true); mainGame->HideElement(mainGame->wCardSelect, true);
} else if (sel >= select_min) { } else if (sel >= select_min) {
select_ready = true; select_ready = true;
mainGame->btnSelectOK->setVisible(true); mainGame->btnSelectOK->setVisible(true);
ShowCancelOrFinishButton(2);
} else { } else {
select_ready = false; select_ready = false;
mainGame->btnSelectOK->setVisible(false); mainGame->btnSelectOK->setVisible(false);
if (select_cancelable && sel == 0)
ShowCancelOrFinishButton(1);
else
ShowCancelOrFinishButton(0);
} }
break; break;
} }
...@@ -825,7 +800,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -825,7 +800,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if(mainGame->dInfo.curMsg == MSG_SELECT_CARD || mainGame->dInfo.curMsg == MSG_SELECT_SUM) { if(mainGame->dInfo.curMsg == MSG_SELECT_CARD || mainGame->dInfo.curMsg == MSG_SELECT_SUM) {
if(select_ready) { if(select_ready) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wCardSelect, true); mainGame->HideElement(mainGame->wCardSelect, true);
} }
break; break;
...@@ -1121,12 +1095,13 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1121,12 +1095,13 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
s32 y = pos.Y; s32 y = pos.Y;
if(x < 300) if(x < 300)
break; break;
if(mainGame->gameConf.control_mode == 1) { if(mainGame->btnChainAlways->isPressed())
mainGame->always_chain = event.MouseInput.isLeftPressed(); mainGame->always_chain = true;
mainGame->ignore_chain = false; else
mainGame->chain_when_avail = false; mainGame->always_chain = false;
UpdateChainButtons(); mainGame->ignore_chain = false;
} mainGame->chain_when_avail = false;
//UpdateChainButtons();
if(mainGame->wCmdMenu->isVisible() && !mainGame->wCmdMenu->getRelativePosition().isPointInside(mousepos)) if(mainGame->wCmdMenu->isVisible() && !mainGame->wCmdMenu->getRelativePosition().isPointInside(mousepos))
mainGame->wCmdMenu->setVisible(false); mainGame->wCmdMenu->setVisible(false);
if(panel && panel->isVisible()) if(panel && panel->isVisible())
...@@ -1427,16 +1402,13 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1427,16 +1402,13 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
} }
if (min >= select_max) { if (min >= select_max) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
DuelClient::SendResponse(); DuelClient::SendResponse();
} else if (max >= select_min) { } else if (max >= select_min) {
if(selected_cards.size() == selectable_cards.size()) { if(selected_cards.size() == selectable_cards.size()) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
DuelClient::SendResponse(); DuelClient::SendResponse();
} else { } else {
select_ready = true; select_ready = true;
ShowCancelOrFinishButton(2);
if(mainGame->dInfo.curMsg == MSG_SELECT_TRIBUTE) { if(mainGame->dInfo.curMsg == MSG_SELECT_TRIBUTE) {
wchar_t wbuf[256], *pwbuf = wbuf; wchar_t wbuf[256], *pwbuf = wbuf;
BufferIO::CopyWStrRef(dataManager.GetSysString(209), pwbuf, 256); BufferIO::CopyWStrRef(dataManager.GetSysString(209), pwbuf, 256);
...@@ -1448,10 +1420,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1448,10 +1420,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
} }
} else { } else {
select_ready = false; select_ready = false;
if (select_cancelable && min == 0)
ShowCancelOrFinishButton(1);
else
ShowCancelOrFinishButton(0);
} }
break; break;
} }
...@@ -1498,13 +1466,14 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1498,13 +1466,14 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
s32 y = event.MouseInput.Y; s32 y = event.MouseInput.Y;
irr::core::position2di pos(x, y); irr::core::position2di pos(x, y);
irr::gui::IGUIElement* root = mainGame->env->getRootGUIElement(); irr::gui::IGUIElement* root = mainGame->env->getRootGUIElement();
if(root->getElementFromPoint(pos) == mainGame->btnCancelOrFinish) if(event.MouseInput.X > 300) {
mainGame->chkHideHintButton->setChecked(true); if (mainGame->btnChainIgnore->isPressed())
if(mainGame->gameConf.control_mode == 1 && event.MouseInput.X > 300) { mainGame->ignore_chain = true;
mainGame->ignore_chain = event.MouseInput.isRightPressed(); else
mainGame->ignore_chain = false;
mainGame->always_chain = false; mainGame->always_chain = false;
mainGame->chain_when_avail = false; mainGame->chain_when_avail = false;
UpdateChainButtons(); //UpdateChainButtons();
} }
mainGame->wCmdMenu->setVisible(false); mainGame->wCmdMenu->setVisible(false);
if(mainGame->fadingList.size()) if(mainGame->fadingList.size())
...@@ -1513,29 +1482,24 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1513,29 +1482,24 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case MSG_WAITING: { case MSG_WAITING: {
if(mainGame->wCardSelect->isVisible()) { if(mainGame->wCardSelect->isVisible()) {
mainGame->HideElement(mainGame->wCardSelect); mainGame->HideElement(mainGame->wCardSelect);
ShowCancelOrFinishButton(0);
} }
break; break;
} }
case MSG_SELECT_BATTLECMD: { case MSG_SELECT_BATTLECMD: {
if(mainGame->wCardSelect->isVisible()) { if(mainGame->wCardSelect->isVisible()) {
mainGame->HideElement(mainGame->wCardSelect); mainGame->HideElement(mainGame->wCardSelect);
ShowCancelOrFinishButton(0);
} }
if(mainGame->wOptions->isVisible()) { if(mainGame->wOptions->isVisible()) {
mainGame->HideElement(mainGame->wOptions); mainGame->HideElement(mainGame->wOptions);
ShowCancelOrFinishButton(0);
} }
break; break;
} }
case MSG_SELECT_IDLECMD: { case MSG_SELECT_IDLECMD: {
if(mainGame->wCardSelect->isVisible()) { if(mainGame->wCardSelect->isVisible()) {
mainGame->HideElement(mainGame->wCardSelect); mainGame->HideElement(mainGame->wCardSelect);
ShowCancelOrFinishButton(0);
} }
if(mainGame->wOptions->isVisible()) { if(mainGame->wOptions->isVisible()) {
mainGame->HideElement(mainGame->wOptions); mainGame->HideElement(mainGame->wOptions);
ShowCancelOrFinishButton(0);
} }
break; break;
} }
...@@ -1552,7 +1516,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1552,7 +1516,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if(selected_cards.size() == 0) { if(selected_cards.size() == 0) {
if(select_cancelable) { if(select_cancelable) {
DuelClient::SetResponseI(-1); DuelClient::SetResponseI(-1);
ShowCancelOrFinishButton(0);
if(mainGame->wCardSelect->isVisible()) if(mainGame->wCardSelect->isVisible())
mainGame->HideElement(mainGame->wCardSelect, true); mainGame->HideElement(mainGame->wCardSelect, true);
else else
...@@ -1562,13 +1525,11 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1562,13 +1525,11 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
} }
if(mainGame->wQuery->isVisible()) { if(mainGame->wQuery->isVisible()) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wQuery, true); mainGame->HideElement(mainGame->wQuery, true);
break; break;
} }
if(select_ready) { if(select_ready) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
if(mainGame->wCardSelect->isVisible()) if(mainGame->wCardSelect->isVisible())
mainGame->HideElement(mainGame->wCardSelect, true); mainGame->HideElement(mainGame->wCardSelect, true);
else else
...@@ -1589,7 +1550,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1589,7 +1550,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
} }
if(mainGame->wQuery->isVisible()) { if(mainGame->wQuery->isVisible()) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wQuery, true); mainGame->HideElement(mainGame->wQuery, true);
break; break;
} }
...@@ -1598,7 +1558,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1598,7 +1558,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case MSG_SELECT_SUM: { case MSG_SELECT_SUM: {
if(mainGame->wQuery->isVisible()) { if(mainGame->wQuery->isVisible()) {
SetResponseSelectedCards(); SetResponseSelectedCards();
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wQuery, true); mainGame->HideElement(mainGame->wQuery, true);
break; break;
} }
...@@ -1609,20 +1568,16 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1609,20 +1568,16 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break; break;
if(mainGame->wCardSelect->isVisible()) { if(mainGame->wCardSelect->isVisible()) {
mainGame->HideElement(mainGame->wCardSelect); mainGame->HideElement(mainGame->wCardSelect);
ShowCancelOrFinishButton(0);
break; break;
} }
if(mainGame->wQuery->isVisible()) { if(mainGame->wQuery->isVisible()) {
DuelClient::SetResponseI(-1); DuelClient::SetResponseI(-1);
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wQuery, true); mainGame->HideElement(mainGame->wQuery, true);
} else { } else {
mainGame->PopupElement(mainGame->wQuery); mainGame->PopupElement(mainGame->wQuery);
ShowCancelOrFinishButton(0);
} }
if(mainGame->wOptions->isVisible()) { if(mainGame->wOptions->isVisible()) {
DuelClient::SetResponseI(-1); DuelClient::SetResponseI(-1);
ShowCancelOrFinishButton(0);
mainGame->HideElement(mainGame->wOptions); mainGame->HideElement(mainGame->wOptions);
} }
break; break;
...@@ -1650,13 +1605,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1650,13 +1605,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if(x < 300) { if(x < 300) {
irr::gui::IGUIElement* root = mainGame->env->getRootGUIElement(); irr::gui::IGUIElement* root = mainGame->env->getRootGUIElement();
irr::gui::IGUIElement* elem = root->getElementFromPoint(pos); irr::gui::IGUIElement* elem = root->getElementFromPoint(pos);
if(elem == mainGame->btnCancelOrFinish) {
should_show_tip = true;
myswprintf(formatBuffer, dataManager.GetSysString(1700), mainGame->btnCancelOrFinish->getText());
mainGame->stTip->setText(formatBuffer);
irr::core::dimension2d<unsigned int> dtip = mainGame->textFont->getDimension(formatBuffer) + irr::core::dimension2d<unsigned int>(10, 10);
mainGame->stTip->setRelativePosition(recti(x - 10 - dtip.Width, y - 10 - dtip.Height, x - 10, y - 10));
}
mainGame->stTip->setVisible(should_show_tip); mainGame->stTip->setVisible(should_show_tip);
break; break;
} }
...@@ -1846,22 +1794,22 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1846,22 +1794,22 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case irr::EMIE_LMOUSE_PRESSED_DOWN: { case irr::EMIE_LMOUSE_PRESSED_DOWN: {
if(!mainGame->dInfo.isStarted) if(!mainGame->dInfo.isStarted)
break; break;
if(mainGame->gameConf.control_mode == 1 && event.MouseInput.X > 300) { if(event.MouseInput.X > 300) {
mainGame->always_chain = event.MouseInput.isLeftPressed(); mainGame->always_chain = event.MouseInput.isLeftPressed();
mainGame->ignore_chain = false; mainGame->ignore_chain = false;
mainGame->chain_when_avail = false; mainGame->chain_when_avail = false;
UpdateChainButtons(); //UpdateChainButtons();
} }
break; break;
} }
case irr::EMIE_RMOUSE_PRESSED_DOWN: { case irr::EMIE_RMOUSE_PRESSED_DOWN: {
if(!mainGame->dInfo.isStarted) if(!mainGame->dInfo.isStarted)
break; break;
if(mainGame->gameConf.control_mode == 1 && event.MouseInput.X > 300) { if(event.MouseInput.X > 300) {
mainGame->ignore_chain = event.MouseInput.isRightPressed(); mainGame->ignore_chain = event.MouseInput.isRightPressed();
mainGame->always_chain = false; mainGame->always_chain = false;
mainGame->chain_when_avail = false; mainGame->chain_when_avail = false;
UpdateChainButtons(); //UpdateChainButtons();
} }
break; break;
} }
...@@ -1873,35 +1821,28 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1873,35 +1821,28 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case irr::EET_KEY_INPUT_EVENT: { case irr::EET_KEY_INPUT_EVENT: {
switch(event.KeyInput.Key) { switch(event.KeyInput.Key) {
case irr::KEY_KEY_A: { case irr::KEY_KEY_A: {
if(mainGame->gameConf.control_mode == 0) { mainGame->always_chain = event.KeyInput.PressedDown;
mainGame->always_chain = event.KeyInput.PressedDown; mainGame->ignore_chain = false;
mainGame->ignore_chain = false; mainGame->chain_when_avail = false;
mainGame->chain_when_avail = false; //UpdateChainButtons();
UpdateChainButtons();
}
break; break;
} }
case irr::KEY_KEY_S: { case irr::KEY_KEY_S: {
if(mainGame->gameConf.control_mode == 0) { mainGame->ignore_chain = event.KeyInput.PressedDown;
mainGame->ignore_chain = event.KeyInput.PressedDown; mainGame->always_chain = false;
mainGame->always_chain = false; mainGame->chain_when_avail = false;
mainGame->chain_when_avail = false; //UpdateChainButtons();
UpdateChainButtons();
}
break; break;
} }
case irr::KEY_KEY_D: { case irr::KEY_KEY_D: {
if(mainGame->gameConf.control_mode == 0) { mainGame->chain_when_avail = event.KeyInput.PressedDown;
mainGame->chain_when_avail = event.KeyInput.PressedDown; mainGame->always_chain = false;
mainGame->always_chain = false; mainGame->ignore_chain = false;
mainGame->ignore_chain = false; //UpdateChainButtons();
UpdateChainButtons();
}
break; break;
} }
case irr::KEY_KEY_R: { case irr::KEY_KEY_R: {
if(mainGame->gameConf.control_mode == 0 if(!event.KeyInput.PressedDown && !mainGame->HasFocus(EGUIET_EDIT_BOX))
&& !event.KeyInput.PressedDown && !mainGame->HasFocus(EGUIET_EDIT_BOX))
mainGame->textFont->setTransparency(true); mainGame->textFont->setTransparency(true);
break; break;
} }
...@@ -1977,8 +1918,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1977,8 +1918,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break; break;
} }
case irr::KEY_F9: { case irr::KEY_F9: {
if(mainGame->gameConf.control_mode == 1 if(!event.KeyInput.PressedDown && !mainGame->HasFocus(EGUIET_EDIT_BOX))
&& !event.KeyInput.PressedDown && !mainGame->HasFocus(EGUIET_EDIT_BOX))
mainGame->textFont->setTransparency(true); mainGame->textFont->setTransparency(true);
break; break;
} }
...@@ -2229,26 +2169,6 @@ void ClientField::UpdateChainButtons() { ...@@ -2229,26 +2169,6 @@ void ClientField::UpdateChainButtons() {
mainGame->btnChainWhenAvail->setPressed(mainGame->chain_when_avail); mainGame->btnChainWhenAvail->setPressed(mainGame->chain_when_avail);
} }
} }
void ClientField::ShowCancelOrFinishButton(int buttonOp) {
if (!mainGame->chkHideHintButton->isChecked() && !mainGame->dInfo.isReplay) {
switch (buttonOp) {
case 1:
mainGame->btnCancelOrFinish->setText(dataManager.GetSysString(1295));
mainGame->btnCancelOrFinish->setVisible(true);
break;
case 2:
mainGame->btnCancelOrFinish->setText(dataManager.GetSysString(1296));
mainGame->btnCancelOrFinish->setVisible(true);
break;
case 0:
default:
mainGame->btnCancelOrFinish->setVisible(false);
break;
}
} else {
mainGame->btnCancelOrFinish->setVisible(false);
}
}
void ClientField::SetResponseSelectedCards() const { void ClientField::SetResponseSelectedCards() const {
unsigned char respbuf[64]; unsigned char respbuf[64];
respbuf[0] = selected_cards.size(); respbuf[0] = selected_cards.size();
......
...@@ -589,9 +589,6 @@ bool Game::Initialize() { ...@@ -589,9 +589,6 @@ bool Game::Initialize() {
btnChainIgnore->setVisible(false); btnChainIgnore->setVisible(false);
btnChainAlways->setVisible(false); btnChainAlways->setVisible(false);
btnChainWhenAvail->setVisible(false); btnChainWhenAvail->setVisible(false);
//cancel or finish
btnCancelOrFinish = env->addButton(rect<s32>(205, 230, 295, 265), 0, BUTTON_CANCEL_OR_FINISH, dataManager.GetSysString(1295));
btnCancelOrFinish->setVisible(false);
//leave/surrender/exit //leave/surrender/exit
btnLeaveGame = env->addButton(rect<s32>(205, 5, 295, 80), 0, BUTTON_LEAVE_GAME, L""); btnLeaveGame = env->addButton(rect<s32>(205, 5, 295, 80), 0, BUTTON_LEAVE_GAME, L"");
btnLeaveGame->setVisible(false); btnLeaveGame->setVisible(false);
...@@ -980,7 +977,6 @@ void Game::LoadConfig() { ...@@ -980,7 +977,6 @@ void Game::LoadConfig() {
gameConf.chkIgnore2 = 0; gameConf.chkIgnore2 = 0;
gameConf.chkHideSetname = 0; gameConf.chkHideSetname = 0;
gameConf.chkHideHintButton = 0; gameConf.chkHideHintButton = 0;
gameConf.control_mode = 0;
gameConf.skin_index = -1; gameConf.skin_index = -1;
gameConf.enablesound = true; gameConf.enablesound = true;
gameConf.volume = 1.0; gameConf.volume = 1.0;
...@@ -1037,8 +1033,6 @@ void Game::LoadConfig() { ...@@ -1037,8 +1033,6 @@ void Game::LoadConfig() {
gameConf.chkHideSetname = atoi(valbuf); gameConf.chkHideSetname = atoi(valbuf);
} else if(!strcmp(strbuf, "hide_hint_button")) { } else if(!strcmp(strbuf, "hide_hint_button")) {
gameConf.chkHideHintButton = atoi(valbuf); gameConf.chkHideHintButton = atoi(valbuf);
} else if(!strcmp(strbuf, "control_mode")) {
gameConf.control_mode = atoi(valbuf);
} else if(!strcmp(strbuf, "draw_field_spell")) { } else if(!strcmp(strbuf, "draw_field_spell")) {
gameConf.draw_field_spell = atoi(valbuf); gameConf.draw_field_spell = atoi(valbuf);
} else if(!strcmp(strbuf, "separate_clear_button")) { } else if(!strcmp(strbuf, "separate_clear_button")) {
...@@ -1102,8 +1096,6 @@ void Game::SaveConfig() { ...@@ -1102,8 +1096,6 @@ void Game::SaveConfig() {
fprintf(fp, "mute_spectators = %d\n", ((mainGame->chkIgnore2->isChecked()) ? 1 : 0)); fprintf(fp, "mute_spectators = %d\n", ((mainGame->chkIgnore2->isChecked()) ? 1 : 0));
fprintf(fp, "hide_setname = %d\n", (gameConf.chkHideSetname)); fprintf(fp, "hide_setname = %d\n", (gameConf.chkHideSetname));
fprintf(fp, "hide_hint_button = %d\n", ((mainGame->chkHideHintButton->isChecked()) ? 1 : 0)); fprintf(fp, "hide_hint_button = %d\n", ((mainGame->chkHideHintButton->isChecked()) ? 1 : 0));
fprintf(fp, "#control_mode = 0: Key A/S/D/R Chain Buttons. control_mode = 1: MouseLeft/MouseRight/NULL/F9 Without Chain Buttons\n");
fprintf(fp, "control_mode = %d\n", gameConf.control_mode);
fprintf(fp, "draw_field_spell = %d\n", gameConf.draw_field_spell); fprintf(fp, "draw_field_spell = %d\n", gameConf.draw_field_spell);
fprintf(fp, "separate_clear_button = %d\n", gameConf.separate_clear_button); fprintf(fp, "separate_clear_button = %d\n", gameConf.separate_clear_button);
fprintf(fp, "skin_index = %d\n", gameConf.skin_index); fprintf(fp, "skin_index = %d\n", gameConf.skin_index);
...@@ -1306,7 +1298,6 @@ void Game::CloseDuelWindow() { ...@@ -1306,7 +1298,6 @@ void Game::CloseDuelWindow() {
btnChainIgnore->setVisible(false); btnChainIgnore->setVisible(false);
btnChainAlways->setVisible(false); btnChainAlways->setVisible(false);
btnChainWhenAvail->setVisible(false); btnChainWhenAvail->setVisible(false);
btnCancelOrFinish->setVisible(false);
wChat->setVisible(false); wChat->setVisible(false);
lstLog->clear(); lstLog->clear();
logParam.clear(); logParam.clear();
...@@ -1424,7 +1415,6 @@ void Game::OnResize() ...@@ -1424,7 +1415,6 @@ void Game::OnResize()
btnChainAlways->setRelativePosition(Resize(205, 140, 295, 175)); btnChainAlways->setRelativePosition(Resize(205, 140, 295, 175));
btnChainIgnore->setRelativePosition(Resize(205, 100, 295, 135)); btnChainIgnore->setRelativePosition(Resize(205, 100, 295, 135));
btnChainWhenAvail->setRelativePosition(Resize(205, 180, 295, 215)); btnChainWhenAvail->setRelativePosition(Resize(205, 180, 295, 215));
btnCancelOrFinish->setRelativePosition(Resize(205, 230, 295, 265));
} }
recti Game::Resize(s32 x, s32 y, s32 x2, s32 y2) recti Game::Resize(s32 x, s32 y, s32 x2, s32 y2)
{ {
......
...@@ -34,7 +34,6 @@ struct Config { ...@@ -34,7 +34,6 @@ struct Config {
int chkIgnore2; int chkIgnore2;
int chkHideSetname; int chkHideSetname;
int chkHideHintButton; int chkHideHintButton;
int control_mode;
int draw_field_spell; int draw_field_spell;
int separate_clear_button; int separate_clear_button;
...@@ -444,8 +443,6 @@ public: ...@@ -444,8 +443,6 @@ public:
irr::gui::IGUIButton* btnChainIgnore; irr::gui::IGUIButton* btnChainIgnore;
irr::gui::IGUIButton* btnChainAlways; irr::gui::IGUIButton* btnChainAlways;
irr::gui::IGUIButton* btnChainWhenAvail; irr::gui::IGUIButton* btnChainWhenAvail;
//cancel or finish
irr::gui::IGUIButton* btnCancelOrFinish;
}; };
extern Game* mainGame; extern Game* mainGame;
......
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