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