Commit 4922ba57 authored by nanahira's avatar nanahira Committed by GitHub

display side deck count in "banished zone" before duel start (#2790)

parent ba9379cf
......@@ -118,28 +118,23 @@ void ClientField::Clear() {
tag_surrender = false;
tag_teammate_surrender = false;
}
void ClientField::Initial(int player, int deckc, int extrac) {
ClientCard* pcard;
for(int i = 0; i < deckc; ++i) {
pcard = new ClientCard;
deck[player].push_back(pcard);
pcard->owner = player;
pcard->controler = player;
pcard->location = LOCATION_DECK;
pcard->sequence = i;
pcard->position = POS_FACEDOWN_DEFENSE;
GetCardLocation(pcard, &pcard->curPos, &pcard->curRot, true);
}
for(int i = 0; i < extrac; ++i) {
pcard = new ClientCard;
extra[player].push_back(pcard);
pcard->owner = player;
pcard->controler = player;
pcard->location = LOCATION_EXTRA;
pcard->sequence = i;
pcard->position = POS_FACEDOWN_DEFENSE;
GetCardLocation(pcard, &pcard->curPos, &pcard->curRot, true);
}
void ClientField::Initial(int player, int deckc, int extrac, int sidec) {
auto load_location = [&](std::vector<ClientCard*>& container, int count, uint8_t location) {
for(int i = 0; i < count; ++i) {
ClientCard* pcard = new ClientCard;
container.push_back(pcard);
pcard->owner = player;
pcard->controler = player;
pcard->location = location;
pcard->sequence = i;
pcard->position = POS_FACEDOWN_DEFENSE;
GetCardLocation(pcard, &pcard->curPos, &pcard->curRot, true);
}
};
load_location(deck[player], deckc, LOCATION_DECK);
load_location(extra[player], extrac, LOCATION_EXTRA);
load_location(remove[player], sidec, LOCATION_REMOVED);
}
void ClientField::ResetSequence(std::vector<ClientCard*>& list, bool reset_height) {
unsigned char seq = 0;
......
......@@ -95,7 +95,7 @@ public:
ClientField();
~ClientField();
void Clear();
void Initial(int player, int deckc, int extrac);
void Initial(int player, int deckc, int extrac, int sidec = 0);
void ResetSequence(std::vector<ClientCard*>& list, bool reset_height);
ClientCard* GetCard(int controler, int location, int sequence, int sub_seq = 0);
void AddCard(ClientCard* pcard, int controler, int location, int sequence);
......
......@@ -432,11 +432,11 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, int len) {
int deckc = BufferIO::ReadInt16(pdata);
int extrac = BufferIO::ReadInt16(pdata);
int sidec = BufferIO::ReadInt16(pdata);
mainGame->dField.Initial(0, deckc, extrac);
mainGame->dField.Initial(0, deckc, extrac, sidec);
deckc = BufferIO::ReadInt16(pdata);
extrac = BufferIO::ReadInt16(pdata);
sidec = BufferIO::ReadInt16(pdata);
mainGame->dField.Initial(1, deckc, extrac);
mainGame->dField.Initial(1, deckc, extrac, sidec);
mainGame->gMutex.unlock();
break;
}
......
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