Commit 377824c5 authored by Chen Bill's avatar Chen Bill Committed by GitHub

remove additional texts for cards in deck (#2657)

* clear data before adding to deck

* keep the order in deck

* remove additional texts for cards in deck

* set mark to false before adding to deck

* update ClientField::Initial
parent ad9a7069
...@@ -220,27 +220,29 @@ bool ClientCard::client_card_sort(ClientCard* c1, ClientCard* c2) { ...@@ -220,27 +220,29 @@ bool ClientCard::client_card_sort(ClientCard* c1, ClientCard* c2) {
return cp1 < cp2; return cp1 < cp2;
if(c1->location != c2->location) if(c1->location != c2->location)
return c1->location < c2->location; return c1->location < c2->location;
if (c1->location & LOCATION_OVERLAY) { if (c1->location == LOCATION_OVERLAY) {
if (c1->overlayTarget != c2->overlayTarget) if (c1->overlayTarget != c2->overlayTarget)
return c1->overlayTarget->sequence < c2->overlayTarget->sequence; return c1->overlayTarget->sequence < c2->overlayTarget->sequence;
else else
return c1->sequence < c2->sequence; return c1->sequence < c2->sequence;
} }
else { else if (c1->location == LOCATION_DECK) {
if(c1->location & (LOCATION_DECK | LOCATION_GRAVE | LOCATION_REMOVED | LOCATION_EXTRA)) { return c1->sequence > c2->sequence;
auto it1 = std::find_if(mainGame->dField.chains.rbegin(), mainGame->dField.chains.rend(), [c1](const ChainInfo& ch) { }
return c1 == ch.chain_card || ch.target.find(c1) != ch.target.end(); else if (c1->location & (LOCATION_GRAVE | LOCATION_REMOVED | LOCATION_EXTRA)) {
}); auto it1 = std::find_if(mainGame->dField.chains.rbegin(), mainGame->dField.chains.rend(), [c1](const ChainInfo& ch) {
auto it2 = std::find_if(mainGame->dField.chains.rbegin(), mainGame->dField.chains.rend(), [c2](const ChainInfo& ch) { return c1 == ch.chain_card || ch.target.find(c1) != ch.target.end();
return c2 == ch.chain_card || ch.target.find(c2) != ch.target.end(); });
}); auto it2 = std::find_if(mainGame->dField.chains.rbegin(), mainGame->dField.chains.rend(), [c2](const ChainInfo& ch) {
if(it1 != mainGame->dField.chains.rend() || it2 != mainGame->dField.chains.rend()) { return c2 == ch.chain_card || ch.target.find(c2) != ch.target.end();
return it1 < it2; });
} if (it1 != mainGame->dField.chains.rend() || it2 != mainGame->dField.chains.rend()) {
return c1->sequence > c2->sequence; return it1 < it2;
} }
else return c1->sequence > c2->sequence;
return c1->sequence < c2->sequence; }
else {
return c1->sequence < c2->sequence;
} }
} }
} }
...@@ -127,7 +127,7 @@ void ClientField::Initial(int player, int deckc, int extrac) { ...@@ -127,7 +127,7 @@ void ClientField::Initial(int player, int deckc, int extrac) {
deck[player].push_back(pcard); deck[player].push_back(pcard);
pcard->owner = player; pcard->owner = player;
pcard->controler = player; pcard->controler = player;
pcard->location = 0x1; pcard->location = LOCATION_DECK;
pcard->sequence = i; pcard->sequence = i;
pcard->position = POS_FACEDOWN_DEFENSE; pcard->position = POS_FACEDOWN_DEFENSE;
GetCardLocation(pcard, &pcard->curPos, &pcard->curRot, true); GetCardLocation(pcard, &pcard->curPos, &pcard->curRot, true);
...@@ -137,7 +137,7 @@ void ClientField::Initial(int player, int deckc, int extrac) { ...@@ -137,7 +137,7 @@ void ClientField::Initial(int player, int deckc, int extrac) {
extra[player].push_back(pcard); extra[player].push_back(pcard);
pcard->owner = player; pcard->owner = player;
pcard->controler = player; pcard->controler = player;
pcard->location = 0x40; pcard->location = LOCATION_EXTRA;
pcard->sequence = i; pcard->sequence = i;
pcard->position = POS_FACEDOWN_DEFENSE; pcard->position = POS_FACEDOWN_DEFENSE;
GetCardLocation(pcard, &pcard->curPos, &pcard->curRot, true); GetCardLocation(pcard, &pcard->curPos, &pcard->curRot, true);
...@@ -202,6 +202,9 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se ...@@ -202,6 +202,9 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
pcard->sequence = 0; pcard->sequence = 0;
} }
pcard->is_reversed = false; pcard->is_reversed = false;
pcard->ClearData();
pcard->ClearTarget();
SetShowMark(pcard, false);
break; break;
} }
case LOCATION_HAND: { case LOCATION_HAND: {
......
...@@ -2407,19 +2407,19 @@ void ClientField::ShowCancelOrFinishButton(int buttonOp) { ...@@ -2407,19 +2407,19 @@ void ClientField::ShowCancelOrFinishButton(int buttonOp) {
void ClientField::SetShowMark(ClientCard* pcard, bool enable) { void ClientField::SetShowMark(ClientCard* pcard, bool enable) {
if(pcard->equipTarget) if(pcard->equipTarget)
pcard->equipTarget->is_showequip = enable; pcard->equipTarget->is_showequip = enable;
for(auto cit = pcard->equipped.begin(); cit != pcard->equipped.end(); ++cit) for (auto& card : pcard->equipped)
(*cit)->is_showequip = enable; card->is_showequip = enable;
for(auto cit = pcard->cardTarget.begin(); cit != pcard->cardTarget.end(); ++cit) for (auto& card : pcard->cardTarget)
(*cit)->is_showtarget = enable; card->is_showtarget = enable;
for(auto cit = pcard->ownerTarget.begin(); cit != pcard->ownerTarget.end(); ++cit) for (auto& card : pcard->ownerTarget)
(*cit)->is_showtarget = enable; card->is_showtarget = enable;
for(auto chit = chains.begin(); chit != chains.end(); ++chit) { for (auto& ch : chains) {
if(pcard == chit->chain_card) { if (pcard == ch.chain_card) {
for(auto tgit = chit->target.begin(); tgit != chit->target.end(); ++tgit) for (auto& tg : ch.target)
(*tgit)->is_showchaintarget = enable; tg->is_showchaintarget = enable;
} }
if(chit->target.find(pcard) != chit->target.end()) if (ch.target.find(pcard) != ch.target.end())
chit->chain_card->is_showchaintarget = enable; ch.chain_card->is_showchaintarget = enable;
} }
} }
void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* element, irr::gui::IGUIElement* parent) { void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* element, irr::gui::IGUIElement* parent) {
...@@ -2428,26 +2428,28 @@ void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* e ...@@ -2428,26 +2428,28 @@ void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* e
if(pcard->code) { if(pcard->code) {
str.append(dataManager.GetName(pcard->code)); str.append(dataManager.GetName(pcard->code));
} }
if(pcard->overlayTarget) { if (pcard->location != LOCATION_DECK) {
myswprintf(formatBuffer, dataManager.GetSysString(225), dataManager.GetName(pcard->overlayTarget->code), pcard->overlayTarget->sequence + 1); if (pcard->overlayTarget) {
str.append(L"\n").append(formatBuffer); myswprintf(formatBuffer, dataManager.GetSysString(225), dataManager.GetName(pcard->overlayTarget->code), pcard->overlayTarget->sequence + 1);
}
if((pcard->status & STATUS_PROC_COMPLETE)
&& (pcard->type & (TYPE_RITUAL | TYPE_FUSION | TYPE_SYNCHRO | TYPE_XYZ | TYPE_LINK | TYPE_SPSUMMON)))
str.append(L"\n").append(dataManager.GetSysString(224));
for(auto iter = pcard->desc_hints.begin(); iter != pcard->desc_hints.end(); ++iter) {
myswprintf(formatBuffer, L"\n*%ls", dataManager.GetDesc(iter->first));
str.append(formatBuffer);
}
for(size_t i = 0; i < chains.size(); ++i) {
auto chit = chains[i];
if(pcard == chit.chain_card) {
myswprintf(formatBuffer, dataManager.GetSysString(216), i + 1);
str.append(L"\n").append(formatBuffer); str.append(L"\n").append(formatBuffer);
} }
if(chit.target.find(pcard) != chit.target.end()) { if ((pcard->status & STATUS_PROC_COMPLETE)
myswprintf(formatBuffer, dataManager.GetSysString(217), i + 1, dataManager.GetName(chit.chain_card->code)); && (pcard->type & (TYPE_RITUAL | TYPE_FUSION | TYPE_SYNCHRO | TYPE_XYZ | TYPE_LINK | TYPE_SPSUMMON)))
str.append(L"\n").append(formatBuffer); str.append(L"\n").append(dataManager.GetSysString(224));
for (auto iter = pcard->desc_hints.begin(); iter != pcard->desc_hints.end(); ++iter) {
myswprintf(formatBuffer, L"\n*%ls", dataManager.GetDesc(iter->first));
str.append(formatBuffer);
}
for (size_t i = 0; i < chains.size(); ++i) {
const auto& chit = chains[i];
if (pcard == chit.chain_card) {
myswprintf(formatBuffer, dataManager.GetSysString(216), i + 1);
str.append(L"\n").append(formatBuffer);
}
if (chit.target.find(pcard) != chit.target.end()) {
myswprintf(formatBuffer, dataManager.GetSysString(217), i + 1, dataManager.GetName(chit.chain_card->code));
str.append(L"\n").append(formatBuffer);
}
} }
} }
if(str.length() > 0) { if(str.length() > 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