Commit 694d732c authored by nanahira's avatar nanahira

Merge branch 'nolink' into another

parents f7f8c1ec 61ad244c
......@@ -1508,8 +1508,15 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
case MSG_SELECT_UNSELECT_CARD: {
/*int selecting_player = */BufferIO::ReadInt8(pbuf);
#ifdef YGOPRO_IGNORE_SELECT_UNSELECT
BufferIO::ReadInt8(pbuf);
BufferIO::ReadInt8(pbuf);
bool buttonok = true;
mainGame->dField.select_cancelable = TRUE;
#else
bool buttonok = !!BufferIO::ReadInt8(pbuf);
mainGame->dField.select_cancelable = BufferIO::ReadInt8(pbuf);
#endif
mainGame->dField.select_min = BufferIO::ReadInt8(pbuf);
mainGame->dField.select_max = BufferIO::ReadInt8(pbuf);
int count1 = BufferIO::ReadInt8(pbuf);
......@@ -1517,7 +1524,12 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame->dField.selected_cards.clear();
int c, l, s, ss;
unsigned int code;
#ifdef YGOPRO_IGNORE_SELECT_UNSELECT
int seq_count = 0;
bool panelmode = true;
#else
bool panelmode = false;
#endif
mainGame->dField.select_ready = false;
ClientCard* pcard;
for (int i = 0; i < count1; ++i) {
......@@ -1537,6 +1549,9 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if (code != 0 && pcard->code != code)
pcard->SetCode(code);
pcard->select_seq = i;
#ifdef YGOPRO_IGNORE_SELECT_UNSELECT
seq_count = i;
#endif
mainGame->dField.selectable_cards.push_back(pcard);
pcard->is_selectable = true;
pcard->is_selected = false;
......@@ -1561,12 +1576,109 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if (code != 0 && pcard->code != code)
pcard->SetCode(code);
pcard->select_seq = i;
#ifdef YGOPRO_IGNORE_SELECT_UNSELECT
seq_count = i;
#endif
mainGame->dField.selectable_cards.push_back(pcard);
pcard->is_selectable = true;
pcard->is_selected = true;
if (l & 0xf1)
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);
if(select_hint)
myswprintf(textBuffer, L"%ls(%d-%d)", dataManager.GetDesc(select_hint),
......
......@@ -14,6 +14,9 @@ solution "ygo"
if os.getenv("YGOPRO_COMPAT_MYCARD") then
defines { "YGOPRO_COMPAT_MYCARD" }
end
if os.getenv("YGOPRO_IGNORE_SELECT_UNSELECT") then
defines { "YGOPRO_IGNORE_SELECT_UNSELECT" }
end
configuration "windows"
defines { "WIN32", "_WIN32", "WINVER=0x0501" }
libdirs { "$(DXSDK_DIR)Lib/x86" }
......
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