Commit abc6f61c authored by nanahira's avatar nanahira

enable selecting all cards

parent 1d41c8c6
...@@ -1489,7 +1489,12 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1489,7 +1489,12 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame->dField.selected_cards.clear(); mainGame->dField.selected_cards.clear();
int c, l, s, ss; int c, l, s, ss;
unsigned int code; unsigned int code;
#ifdef YGOPRO_IGNORE_SELECT_UNSELECT
int seq_count = 0;
bool panelmode = true;
#else
bool panelmode = false; bool panelmode = false;
#endif
mainGame->dField.select_ready = false; mainGame->dField.select_ready = false;
ClientCard* pcard; ClientCard* pcard;
for (int i = 0; i < count1; ++i) { for (int i = 0; i < count1; ++i) {
...@@ -1509,6 +1514,9 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1509,6 +1514,9 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if (code != 0 && pcard->code != code) if (code != 0 && pcard->code != code)
pcard->SetCode(code); pcard->SetCode(code);
pcard->select_seq = i; pcard->select_seq = i;
#ifdef YGOPRO_IGNORE_SELECT_UNSELECT
seq_count = i;
#endif
mainGame->dField.selectable_cards.push_back(pcard); mainGame->dField.selectable_cards.push_back(pcard);
pcard->is_selectable = true; pcard->is_selectable = true;
pcard->is_selected = false; pcard->is_selected = false;
...@@ -1533,12 +1541,109 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) { ...@@ -1533,12 +1541,109 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if (code != 0 && pcard->code != code) if (code != 0 && pcard->code != code)
pcard->SetCode(code); pcard->SetCode(code);
pcard->select_seq = i; pcard->select_seq = i;
#ifdef YGOPRO_IGNORE_SELECT_UNSELECT
seq_count = i;
#endif
mainGame->dField.selectable_cards.push_back(pcard); mainGame->dField.selectable_cards.push_back(pcard);
pcard->is_selectable = true; pcard->is_selectable = true;
pcard->is_selected = true; pcard->is_selected = true;
if (l & 0xf1) if (l & 0xf1)
panelmode = true; panelmode = true;
} }
#ifdef YGOPRO_IGNORE_SELECT_UNSELECT
for(int i = 0; i < 2; ++i) {
for(auto cit = deck[i].begin(); cit != deck[i].end(); ++cit) {
ClientCard* scard = (*cit);
if(!scard->is_selectable) {
seq_count++;
scard->select_seq = seq_count;
mainGame->dField.selectable_cards.push_back(scard);
scard->is_selectable = true;
scard->is_selected = false;
}
}
for(auto cit = hand[i].begin(); cit != hand[i].end(); ++cit) {
ClientCard* scard = (*cit);
if(!scard->is_selectable) {
seq_count++;
scard->select_seq = seq_count;
mainGame->dField.selectable_cards.push_back(scard);
scard->is_selectable = true;
scard->is_selected = false;
}
}
for(auto cit = mzone[i].begin(); cit != mzone[i].end(); ++cit) {
ClientCard* scard = (*cit);
if(!scard->is_selectable) {
seq_count++;
scard->select_seq = seq_count;
mainGame->dField.selectable_cards.push_back(scard);
scard->is_selectable = true;
scard->is_selected = false;
}
}
for(auto cit = szone[i].begin(); cit != szone[i].end(); ++cit) {
ClientCard* scard = (*cit);
if(!scard->is_selectable) {
seq_count++;
scard->select_seq = seq_count;
mainGame->dField.selectable_cards.push_back(scard);
scard->is_selectable = true;
scard->is_selected = false;
}
}
for(auto cit = grave[i].begin(); cit != grave[i].end(); ++cit) {
ClientCard* scard = (*cit);
if(!scard->is_selectable) {
seq_count++;
scard->select_seq = seq_count;
mainGame->dField.selectable_cards.push_back(scard);
scard->is_selectable = true;
scard->is_selected = false;
}
}
for(auto cit = remove[i].begin(); cit != remove[i].end(); ++cit) {
ClientCard* scard = (*cit);
if(!scard->is_selectable) {
seq_count++;
scard->select_seq = seq_count;
mainGame->dField.selectable_cards.push_back(scard);
scard->is_selectable = true;
scard->is_selected = false;
}
}
for(auto cit = extra[i].begin(); cit != extra[i].end(); ++cit) {
ClientCard* scard = (*cit);
if(!scard->is_selectable) {
seq_count++;
scard->select_seq = seq_count;
mainGame->dField.selectable_cards.push_back(scard);
scard->is_selectable = true;
scard->is_selected = false;
}
}
}
for(auto cit = limbo_temp.begin(); cit != limbo_temp.end(); ++cit) {
ClientCard* scard = (*cit);
if(!scard->is_selectable) {
seq_count++;
scard->select_seq = seq_count;
mainGame->dField.selectable_cards.push_back(scard);
scard->is_selectable = true;
scard->is_selected = false;
}
}
for(auto sit = overlay_cards.begin(); sit != overlay_cards.end(); ++sit) {
ClientCard* scard = (*cit);
if(!scard->is_selectable) {
seq_count++;
scard->select_seq = seq_count;
mainGame->dField.selectable_cards.push_back(scard);
scard->is_selectable = true;
scard->is_selected = false;
}
}
#endif
std::sort(mainGame->dField.selectable_cards.begin(), mainGame->dField.selectable_cards.end(), ClientCard::client_card_sort); std::sort(mainGame->dField.selectable_cards.begin(), mainGame->dField.selectable_cards.end(), ClientCard::client_card_sort);
if(select_hint) if(select_hint)
myswprintf(textBuffer, L"%ls(%d-%d)", dataManager.GetDesc(select_hint), myswprintf(textBuffer, L"%ls(%d-%d)", dataManager.GetDesc(select_hint),
......
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