Commit 53d951c7 authored by Chen Bill's avatar Chen Bill Committed by GitHub

update signature of ClientCard::SetCode (#2655)

* update signature of ClientCard::SetCode

* ClientField: fix AddCard, RemoveCard

* minor fix

* use int counter variable
parent 122b4187
...@@ -31,8 +31,8 @@ ClientCard::~ClientCard() { ...@@ -31,8 +31,8 @@ ClientCard::~ClientCard() {
} }
overlayed.clear(); overlayed.clear();
} }
void ClientCard::SetCode(int x) { void ClientCard::SetCode(unsigned int x) {
if((location == LOCATION_HAND) && (code != (unsigned int)x)) { if((location == LOCATION_HAND) && (code != x)) {
code = x; code = x;
mainGame->dField.MoveCard(this, 5); mainGame->dField.MoveCard(this, 5);
} else } else
...@@ -175,13 +175,13 @@ void ClientCard::UpdateInfo(unsigned char* buf) { ...@@ -175,13 +175,13 @@ void ClientCard::UpdateInfo(unsigned char* buf) {
} }
} }
void ClientCard::ClearTarget() { void ClientCard::ClearTarget() {
for(auto cit = cardTarget.begin(); cit != cardTarget.end(); ++cit) { for (auto& pcard : cardTarget) {
(*cit)->is_showtarget = false; pcard->is_showtarget = false;
(*cit)->ownerTarget.erase(this); pcard->ownerTarget.erase(this);
} }
for(auto cit = ownerTarget.begin(); cit != ownerTarget.end(); ++cit) { for (auto& pcard : ownerTarget) {
(*cit)->is_showtarget = false; pcard->is_showtarget = false;
(*cit)->cardTarget.erase(this); pcard->cardTarget.erase(this);
} }
cardTarget.clear(); cardTarget.clear();
ownerTarget.clear(); ownerTarget.clear();
......
...@@ -75,7 +75,7 @@ public: ...@@ -75,7 +75,7 @@ public:
ClientCard() = default; ClientCard() = default;
~ClientCard(); ~ClientCard();
void SetCode(int x); void SetCode(unsigned int x);
void UpdateInfo(unsigned char* buf); void UpdateInfo(unsigned char* buf);
void ClearTarget(); void ClearTarget();
void ClearData(); void ClearData();
......
...@@ -196,12 +196,9 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se ...@@ -196,12 +196,9 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
deck[controler].push_back(pcard); deck[controler].push_back(pcard);
pcard->sequence = (unsigned char)(deck[controler].size() - 1); pcard->sequence = (unsigned char)(deck[controler].size() - 1);
} else { } else {
deck[controler].push_back(0); for (auto& pcard : deck[controler])
for(int i = deck[controler].size() - 1; i > 0; --i) { pcard->sequence++;
deck[controler][i] = deck[controler][i - 1]; deck[controler].insert(deck[controler].begin(), pcard);
deck[controler][i]->sequence++;
}
deck[controler][0] = pcard;
pcard->sequence = 0; pcard->sequence = 0;
} }
pcard->is_reversed = false; pcard->is_reversed = false;
...@@ -235,15 +232,13 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se ...@@ -235,15 +232,13 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
extra[controler].push_back(pcard); extra[controler].push_back(pcard);
pcard->sequence = (unsigned char)(extra[controler].size() - 1); pcard->sequence = (unsigned char)(extra[controler].size() - 1);
} else { } else {
extra[controler].push_back(0);
int p = extra[controler].size() - extra_p_count[controler] - 1; int p = extra[controler].size() - extra_p_count[controler] - 1;
for(int i = extra[controler].size() - 1; i > p; --i) { for(int i = extra[controler].size() - 1; i > p; --i) {
extra[controler][i] = extra[controler][i - 1];
extra[controler][i]->sequence++; extra[controler][i]->sequence++;
extra[controler][i]->curPos += irr::core::vector3df(0, 0, 0.01f); extra[controler][i]->curPos += irr::core::vector3df(0, 0, 0.01f);
extra[controler][i]->mTransform.setTranslation(extra[controler][i]->curPos); extra[controler][i]->mTransform.setTranslation(extra[controler][i]->curPos);
} }
extra[controler][p] = pcard; extra[controler].insert(extra[controler].begin() + p, pcard);
pcard->sequence = p; pcard->sequence = p;
} }
if (pcard->position & POS_FACEUP) if (pcard->position & POS_FACEUP)
...@@ -253,69 +248,54 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se ...@@ -253,69 +248,54 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
} }
} }
ClientCard* ClientField::RemoveCard(int controler, int location, int sequence) { ClientCard* ClientField::RemoveCard(int controler, int location, int sequence) {
ClientCard* pcard = 0; ClientCard* pcard = nullptr;
auto erase_card = [](std::vector<ClientCard*>& lst, int seq) {
for (int i = seq; i < (int)lst.size() - 1; ++i) {
lst[i] = lst[i + 1];
lst[i]->sequence--;
lst[i]->curPos -= irr::core::vector3df(0, 0, 0.01f);
lst[i]->mTransform.setTranslation(lst[i]->curPos);
}
lst.pop_back();
};
switch (location) { switch (location) {
case LOCATION_DECK: { case LOCATION_DECK: {
pcard = deck[controler][sequence]; pcard = deck[controler][sequence];
for (size_t i = sequence; i < deck[controler].size() - 1; ++i) { erase_card(deck[controler], sequence);
deck[controler][i] = deck[controler][i + 1];
deck[controler][i]->sequence--;
deck[controler][i]->curPos -= irr::core::vector3df(0, 0, 0.01f);
deck[controler][i]->mTransform.setTranslation(deck[controler][i]->curPos);
}
deck[controler].erase(deck[controler].end() - 1);
break; break;
} }
case LOCATION_HAND: { case LOCATION_HAND: {
pcard = hand[controler][sequence]; pcard = hand[controler][sequence];
for (size_t i = sequence; i < hand[controler].size() - 1; ++i) { for (int i = sequence; i < (int)hand[controler].size() - 1; ++i) {
hand[controler][i] = hand[controler][i + 1]; hand[controler][i] = hand[controler][i + 1];
hand[controler][i]->sequence--; hand[controler][i]->sequence--;
} }
hand[controler].erase(hand[controler].end() - 1); hand[controler].pop_back();
break; break;
} }
case LOCATION_MZONE: { case LOCATION_MZONE: {
pcard = mzone[controler][sequence]; pcard = mzone[controler][sequence];
mzone[controler][sequence] = 0; mzone[controler][sequence] = nullptr;
break; break;
} }
case LOCATION_SZONE: { case LOCATION_SZONE: {
pcard = szone[controler][sequence]; pcard = szone[controler][sequence];
szone[controler][sequence] = 0; szone[controler][sequence] = nullptr;
break; break;
} }
case LOCATION_GRAVE: { case LOCATION_GRAVE: {
pcard = grave[controler][sequence]; pcard = grave[controler][sequence];
for (size_t i = sequence; i < grave[controler].size() - 1; ++i) { erase_card(grave[controler], sequence);
grave[controler][i] = grave[controler][i + 1];
grave[controler][i]->sequence--;
grave[controler][i]->curPos -= irr::core::vector3df(0, 0, 0.01f);
grave[controler][i]->mTransform.setTranslation(grave[controler][i]->curPos);
}
grave[controler].erase(grave[controler].end() - 1);
break; break;
} }
case LOCATION_REMOVED: { case LOCATION_REMOVED: {
pcard = remove[controler][sequence]; pcard = remove[controler][sequence];
for (size_t i = sequence; i < remove[controler].size() - 1; ++i) { erase_card(remove[controler], sequence);
remove[controler][i] = remove[controler][i + 1];
remove[controler][i]->sequence--;
remove[controler][i]->curPos -= irr::core::vector3df(0, 0, 0.01f);
remove[controler][i]->mTransform.setTranslation(remove[controler][i]->curPos);
}
remove[controler].erase(remove[controler].end() - 1);
break; break;
} }
case LOCATION_EXTRA: { case LOCATION_EXTRA: {
pcard = extra[controler][sequence]; pcard = extra[controler][sequence];
for (size_t i = sequence; i < extra[controler].size() - 1; ++i) { erase_card(extra[controler], sequence);
extra[controler][i] = extra[controler][i + 1];
extra[controler][i]->sequence--;
extra[controler][i]->curPos -= irr::core::vector3df(0, 0, 0.01f);
extra[controler][i]->mTransform.setTranslation(extra[controler][i]->curPos);
}
extra[controler].erase(extra[controler].end() - 1);
if (pcard->position & POS_FACEUP) if (pcard->position & POS_FACEUP)
extra_p_count[controler]--; extra_p_count[controler]--;
break; break;
...@@ -425,8 +405,8 @@ void ClientField::ClearChainSelect() { ...@@ -425,8 +405,8 @@ void ClientField::ClearChainSelect() {
void ClientField::ShowSelectCard(bool buttonok, bool chain) { void ClientField::ShowSelectCard(bool buttonok, bool chain) {
if(cant_check_grave) { if(cant_check_grave) {
bool has_card_in_grave = false; bool has_card_in_grave = false;
for(size_t i = 0; i < selectable_cards.size(); ++i) { for (auto& pcard : selectable_cards) {
if(selectable_cards[i]->location == LOCATION_GRAVE) { if (pcard->location == LOCATION_GRAVE) {
has_card_in_grave = true; has_card_in_grave = true;
break; break;
} }
...@@ -436,7 +416,7 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) { ...@@ -436,7 +416,7 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
} }
} }
int startpos; int startpos;
size_t ct; int ct;
if(selectable_cards.size() <= 5) { if(selectable_cards.size() <= 5) {
startpos = 30 + 125 * (5 - selectable_cards.size()) / 2; startpos = 30 + 125 * (5 - selectable_cards.size()) / 2;
ct = selectable_cards.size(); ct = selectable_cards.size();
...@@ -444,7 +424,7 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) { ...@@ -444,7 +424,7 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
startpos = 30; startpos = 30;
ct = 5; ct = 5;
} }
for(size_t i = 0; i < ct; ++i) { for(int i = 0; i < ct; ++i) {
mainGame->stCardPos[i]->enableOverrideColor(false); mainGame->stCardPos[i]->enableOverrideColor(false);
// image // image
if(selectable_cards[i]->code) if(selectable_cards[i]->code)
...@@ -528,7 +508,7 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) { ...@@ -528,7 +508,7 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
} }
void ClientField::ShowChainCard() { void ClientField::ShowChainCard() {
int startpos; int startpos;
size_t ct; int ct;
if(selectable_cards.size() <= 5) { if(selectable_cards.size() <= 5) {
startpos = 30 + 125 * (5 - selectable_cards.size()) / 2; startpos = 30 + 125 * (5 - selectable_cards.size()) / 2;
ct = selectable_cards.size(); ct = selectable_cards.size();
...@@ -536,7 +516,7 @@ void ClientField::ShowChainCard() { ...@@ -536,7 +516,7 @@ void ClientField::ShowChainCard() {
startpos = 30; startpos = 30;
ct = 5; ct = 5;
} }
for(size_t i = 0; i < ct; ++i) { for(int i = 0; i < ct; ++i) {
if(selectable_cards[i]->code) if(selectable_cards[i]->code)
mainGame->imageLoading.insert(std::make_pair(mainGame->btnCardSelect[i], selectable_cards[i]->code)); mainGame->imageLoading.insert(std::make_pair(mainGame->btnCardSelect[i], selectable_cards[i]->code));
else else
...@@ -582,7 +562,7 @@ void ClientField::ShowChainCard() { ...@@ -582,7 +562,7 @@ void ClientField::ShowChainCard() {
} }
void ClientField::ShowLocationCard() { void ClientField::ShowLocationCard() {
int startpos; int startpos;
size_t ct; int ct;
if(display_cards.size() <= 5) { if(display_cards.size() <= 5) {
startpos = 30 + 125 * (5 - display_cards.size()) / 2; startpos = 30 + 125 * (5 - display_cards.size()) / 2;
ct = display_cards.size(); ct = display_cards.size();
...@@ -590,7 +570,7 @@ void ClientField::ShowLocationCard() { ...@@ -590,7 +570,7 @@ void ClientField::ShowLocationCard() {
startpos = 30; startpos = 30;
ct = 5; ct = 5;
} }
for(size_t i = 0; i < ct; ++i) { for(int i = 0; i < ct; ++i) {
mainGame->stDisplayPos[i]->enableOverrideColor(false); mainGame->stDisplayPos[i]->enableOverrideColor(false);
if(display_cards[i]->code) if(display_cards[i]->code)
mainGame->imageLoading.insert(std::make_pair(mainGame->btnCardDisplay[i], display_cards[i]->code)); mainGame->imageLoading.insert(std::make_pair(mainGame->btnCardDisplay[i], display_cards[i]->code));
...@@ -1187,8 +1167,8 @@ bool ClientField::CheckSelectSum() { ...@@ -1187,8 +1167,8 @@ bool ClientField::CheckSelectSum() {
(*sit)->is_selected = false; (*sit)->is_selected = false;
selable.insert(*sit); selable.insert(*sit);
} }
for(size_t i = 0; i < selected_cards.size(); ++i) { for(int i = 0; i < (int)selected_cards.size(); ++i) {
if((int)i < must_select_count) if(i < must_select_count)
selected_cards[i]->is_selectable = false; selected_cards[i]->is_selectable = false;
else else
selected_cards[i]->is_selectable = true; selected_cards[i]->is_selectable = true;
...@@ -1274,7 +1254,7 @@ bool ClientField::CheckSelectTribute() { ...@@ -1274,7 +1254,7 @@ bool ClientField::CheckSelectTribute() {
(*sit)->is_selected = false; (*sit)->is_selected = false;
selable.insert(*sit); selable.insert(*sit);
} }
for(size_t i = 0; i < selected_cards.size(); ++i) { for(int i = 0; i < (int)selected_cards.size(); ++i) {
selected_cards[i]->is_selectable = true; selected_cards[i]->is_selectable = true;
selected_cards[i]->is_selected = true; selected_cards[i]->is_selected = true;
selable.erase(selected_cards[i]); selable.erase(selected_cards[i]);
......
...@@ -177,7 +177,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) { ...@@ -177,7 +177,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
if(*dname == 0) if(*dname == 0)
break; break;
int sel = -1; int sel = -1;
for(size_t i = 0; i < mainGame->cbDBDecks->getItemCount(); ++i) { for(int i = 0; i < (int)mainGame->cbDBDecks->getItemCount(); ++i) {
if(!std::wcscmp(dname, mainGame->cbDBDecks->getItem(i))) { if(!std::wcscmp(dname, mainGame->cbDBDecks->getItem(i))) {
sel = i; sel = i;
break; break;
......
...@@ -1266,7 +1266,7 @@ void Game::DrawDeckBd() { ...@@ -1266,7 +1266,7 @@ void Game::DrawDeckBd() {
driver->draw2DRectangle(Resize(805, 160, 1020, 630), 0x400000ff, 0x400000ff, 0x40000000, 0x40000000); driver->draw2DRectangle(Resize(805, 160, 1020, 630), 0x400000ff, 0x400000ff, 0x40000000, 0x40000000);
driver->draw2DRectangleOutline(Resize(804, 159, 1020, 630)); driver->draw2DRectangleOutline(Resize(804, 159, 1020, 630));
} }
for(size_t i = 0; i < 9 && i + scrFilter->getPos() < deckBuilder.results.size(); ++i) { for(int i = 0; i < 9 && i + scrFilter->getPos() < (int)deckBuilder.results.size(); ++i) {
code_pointer ptr = deckBuilder.results[i + scrFilter->getPos()]; code_pointer ptr = deckBuilder.results[i + scrFilter->getPos()];
if(i >= 7) if(i >= 7)
{ {
......
...@@ -1565,7 +1565,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -1565,7 +1565,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
l = BufferIO::ReadUInt8(pbuf); l = BufferIO::ReadUInt8(pbuf);
s = BufferIO::ReadUInt8(pbuf); s = BufferIO::ReadUInt8(pbuf);
ss = BufferIO::ReadUInt8(pbuf); ss = BufferIO::ReadUInt8(pbuf);
if ((l & LOCATION_OVERLAY) > 0) if (l & LOCATION_OVERLAY)
pcard = mainGame->dField.GetCard(c, l & 0x7f, s)->overlayed[ss]; pcard = mainGame->dField.GetCard(c, l & 0x7f, s)->overlayed[ss];
else else
pcard = mainGame->dField.GetCard(c, l, s); pcard = mainGame->dField.GetCard(c, l, s);
...@@ -1630,7 +1630,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -1630,7 +1630,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
l = BufferIO::ReadUInt8(pbuf); l = BufferIO::ReadUInt8(pbuf);
s = BufferIO::ReadUInt8(pbuf); s = BufferIO::ReadUInt8(pbuf);
ss = BufferIO::ReadUInt8(pbuf); ss = BufferIO::ReadUInt8(pbuf);
if ((l & LOCATION_OVERLAY) > 0) if (l & LOCATION_OVERLAY)
pcard = mainGame->dField.GetCard(c, l & 0x7f, s)->overlayed[ss]; pcard = mainGame->dField.GetCard(c, l & 0x7f, s)->overlayed[ss];
else else
pcard = mainGame->dField.GetCard(c, l, s); pcard = mainGame->dField.GetCard(c, l, s);
...@@ -1654,7 +1654,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -1654,7 +1654,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
l = BufferIO::ReadUInt8(pbuf); l = BufferIO::ReadUInt8(pbuf);
s = BufferIO::ReadUInt8(pbuf); s = BufferIO::ReadUInt8(pbuf);
ss = BufferIO::ReadUInt8(pbuf); ss = BufferIO::ReadUInt8(pbuf);
if ((l & LOCATION_OVERLAY) > 0) if (l & LOCATION_OVERLAY)
pcard = mainGame->dField.GetCard(c, l & 0x7f, s)->overlayed[ss]; pcard = mainGame->dField.GetCard(c, l & 0x7f, s)->overlayed[ss];
else else
pcard = mainGame->dField.GetCard(c, l, s); pcard = mainGame->dField.GetCard(c, l, s);
...@@ -2201,7 +2201,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -2201,7 +2201,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
} }
if (field_confirm.size() > 0) { if (field_confirm.size() > 0) {
mainGame->WaitFrameSignal(5); mainGame->WaitFrameSignal(5);
for(size_t i = 0; i < field_confirm.size(); ++i) { for(int i = 0; i < (int)field_confirm.size(); ++i) {
pcard = field_confirm[i]; pcard = field_confirm[i];
c = pcard->controler; c = pcard->controler;
l = pcard->location; l = pcard->location;
...@@ -2231,7 +2231,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -2231,7 +2231,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
mainGame->WaitFrameSignal(30); mainGame->WaitFrameSignal(30);
else else
mainGame->WaitFrameSignal(90); mainGame->WaitFrameSignal(90);
for(size_t i = 0; i < field_confirm.size(); ++i) { for(int i = 0; i < (int)field_confirm.size(); ++i) {
pcard = field_confirm[i]; pcard = field_confirm[i];
mainGame->dField.MoveCard(pcard, 5); mainGame->dField.MoveCard(pcard, 5);
pcard->is_highlighting = false; pcard->is_highlighting = false;
...@@ -3072,7 +3072,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -3072,7 +3072,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
unsigned int l = BufferIO::ReadUInt8(pbuf); unsigned int l = BufferIO::ReadUInt8(pbuf);
int s = BufferIO::ReadUInt8(pbuf); int s = BufferIO::ReadUInt8(pbuf);
int ss = BufferIO::ReadUInt8(pbuf); int ss = BufferIO::ReadUInt8(pbuf);
if ((l & LOCATION_OVERLAY) > 0) if (l & LOCATION_OVERLAY)
pcards[i] = mainGame->dField.GetCard(c, l & 0x7f, s)->overlayed[ss]; pcards[i] = mainGame->dField.GetCard(c, l & 0x7f, s)->overlayed[ss];
else else
pcards[i] = mainGame->dField.GetCard(c, l, s); pcards[i] = mainGame->dField.GetCard(c, l, s);
......
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