Commit 1957cbc7 authored by VanillaSalt's avatar VanillaSalt

Merge pull request #792 from Buttys2/master

Field Adjustments
parents 5356ef44 5f4df1ee
...@@ -361,7 +361,7 @@ void Game::DrawMisc() { ...@@ -361,7 +361,7 @@ void Game::DrawMisc() {
for(int i = 0; i < 5; ++i) { for(int i = 0; i < 5; ++i) {
pcard = dField.mzone[0][i]; pcard = dField.mzone[0][i];
if(pcard && pcard->code != 0) { if(pcard && pcard->code != 0) {
int m = 463 + i * 90; int m = 493 + i * 85;
adFont->draw(L"/", recti(m - 4, 416, m + 4, 436), 0xff000000, true, false, 0); adFont->draw(L"/", recti(m - 4, 416, m + 4, 436), 0xff000000, true, false, 0);
adFont->draw(L"/", recti(m - 3, 417, m + 5, 437), 0xffffffff, true, false, 0); adFont->draw(L"/", recti(m - 3, 417, m + 5, 437), 0xffffffff, true, false, 0);
int w = adFont->getDimension(pcard->atkstring).Width; int w = adFont->getDimension(pcard->atkstring).Width;
...@@ -372,15 +372,15 @@ void Game::DrawMisc() { ...@@ -372,15 +372,15 @@ void Game::DrawMisc() {
adFont->draw(pcard->defstring, recti(m + 4, 416, m + 4 + w, 436), 0xff000000, false, false, 0); adFont->draw(pcard->defstring, recti(m + 4, 416, m + 4 + w, 436), 0xff000000, false, false, 0);
adFont->draw(pcard->defstring, recti(m + 5, 417, m + 5 + w, 437), adFont->draw(pcard->defstring, recti(m + 5, 417, m + 5 + w, 437),
pcard->defence > pcard->base_defence ? 0xffffff00 : pcard->defence < pcard->base_defence ? 0xffff2090 : 0xffffffff , false, false, 0); pcard->defence > pcard->base_defence ? 0xffffff00 : pcard->defence < pcard->base_defence ? 0xffff2090 : 0xffffffff , false, false, 0);
adFont->draw(pcard->lvstring, recti(443 + i * 85, 356, 475 + i * 85, 366), 0xff000000, false, false, 0); adFont->draw(pcard->lvstring, recti(473 + i * 80, 356, 475 + i * 80, 366), 0xff000000, false, false, 0);
adFont->draw(pcard->lvstring, recti(444 + i * 85, 357, 476 + i * 85, 367), adFont->draw(pcard->lvstring, recti(474 + i * 80, 357, 476 + i * 80, 367),
(pcard->type & TYPE_XYZ) ? 0xffff80ff : (pcard->type & TYPE_TUNER) ? 0xffffff00 : 0xffffffff, false, false, 0); (pcard->type & TYPE_XYZ) ? 0xffff80ff : (pcard->type & TYPE_TUNER) ? 0xffffff00 : 0xffffffff, false, false, 0);
} }
} }
for(int i = 0; i < 5; ++i) { for(int i = 0; i < 5; ++i) {
pcard = dField.mzone[1][i]; pcard = dField.mzone[1][i];
if(pcard && (pcard->position & POS_FACEUP)) { if(pcard && (pcard->position & POS_FACEUP)) {
int m = 795 - i * 73; int m = 803 - i * 68;
adFont->draw(L"/", recti(m - 4, 235, m + 4, 255), 0xff000000, true, false, 0); adFont->draw(L"/", recti(m - 4, 235, m + 4, 255), 0xff000000, true, false, 0);
adFont->draw(L"/", recti(m - 3, 236, m + 5, 256), 0xffffffff, true, false, 0); adFont->draw(L"/", recti(m - 3, 236, m + 5, 256), 0xffffffff, true, false, 0);
int w = adFont->getDimension(pcard->atkstring).Width; int w = adFont->getDimension(pcard->atkstring).Width;
...@@ -391,8 +391,8 @@ void Game::DrawMisc() { ...@@ -391,8 +391,8 @@ void Game::DrawMisc() {
adFont->draw(pcard->defstring, recti(m + 4, 235, m + 4 + w, 255), 0xff000000, false, false, 0); adFont->draw(pcard->defstring, recti(m + 4, 235, m + 4 + w, 255), 0xff000000, false, false, 0);
adFont->draw(pcard->defstring, recti(m + 5, 236, m + 5 + w, 256), adFont->draw(pcard->defstring, recti(m + 5, 236, m + 5 + w, 256),
pcard->defence > pcard->base_defence ? 0xffffff00 : pcard->defence < pcard->base_defence ? 0xffff2090 : 0xffffffff , false, false, 0); pcard->defence > pcard->base_defence ? 0xffffff00 : pcard->defence < pcard->base_defence ? 0xffff2090 : 0xffffffff , false, false, 0);
adFont->draw(pcard->lvstring, recti(769 - i * 76, 272, 800 - i * 76, 292), 0xff000000, false, false, 0); adFont->draw(pcard->lvstring, recti(779 - i * 71, 272, 800 - i * 71, 292), 0xff000000, false, false, 0);
adFont->draw(pcard->lvstring, recti(769 - i * 76, 273, 800 - i * 76, 293), adFont->draw(pcard->lvstring, recti(780 - i * 71, 273, 800 - i * 71, 293),
(pcard->type & TYPE_XYZ) ? 0xffff80ff : (pcard->type & TYPE_TUNER) ? 0xffffff00 : 0xffffffff, false, false, 0); (pcard->type & TYPE_XYZ) ? 0xffff80ff : (pcard->type & TYPE_TUNER) ? 0xffffff00 : 0xffffffff, false, false, 0);
} }
} }
...@@ -417,36 +417,36 @@ void Game::DrawMisc() { ...@@ -417,36 +417,36 @@ void Game::DrawMisc() {
adFont->draw(pcard->rscstring, recti(429, 246, 461, 266), 0xffffffff, true, false, 0); adFont->draw(pcard->rscstring, recti(429, 246, 461, 266), 0xffffffff, true, false, 0);
} }
if(dField.extra[0].size()) { if(dField.extra[0].size()) {
numFont->draw(dataManager.GetNumString(dField.extra[0].size()), recti(245, 562, 381, 552), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.extra[0].size()), recti(330, 562, 381, 552), 0xff000000, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.extra[0].size()), recti(245, 563, 383, 553), 0xffffff00, true, false, 0); numFont->draw(dataManager.GetNumString(dField.extra[0].size()), recti(330, 563, 383, 553), 0xffffff00, true, false, 0);
} }
if(dField.deck[0].size()) { if(dField.deck[0].size()) {
numFont->draw(dataManager.GetNumString(dField.deck[0].size()), recti(912, 562, 1021, 552), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.deck[0].size()), recti(907, 562, 1021, 552), 0xff000000, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.deck[0].size()), recti(913, 563, 1023, 553), 0xffffff00, true, false, 0); numFont->draw(dataManager.GetNumString(dField.deck[0].size()), recti(908, 563, 1023, 553), 0xffffff00, true, false, 0);
} }
if(dField.grave[0].size()) { if(dField.grave[0].size()) {
numFont->draw(dataManager.GetNumString(dField.grave[0].size()), recti(837, 375, 984, 456), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.grave[0].size()), recti(837, 375, 984, 456), 0xff000000, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.grave[0].size()), recti(837, 376, 986, 457), 0xffffff00, true, false, 0); numFont->draw(dataManager.GetNumString(dField.grave[0].size()), recti(837, 376, 986, 457), 0xffffff00, true, false, 0);
} }
if(dField.remove[0].size()) { if(dField.remove[0].size()) {
numFont->draw(dataManager.GetNumString(dField.remove[0].size()), recti(1025, 375, 957, 380), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.remove[0].size()), recti(1015, 375, 957, 380), 0xff000000, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.remove[0].size()), recti(1025, 376, 959, 381), 0xffffff00, true, false, 0); numFont->draw(dataManager.GetNumString(dField.remove[0].size()), recti(1015, 376, 959, 381), 0xffffff00, true, false, 0);
} }
if(dField.extra[1].size()) { if(dField.extra[1].size()) {
numFont->draw(dataManager.GetNumString(dField.extra[1].size()), recti(808, 207, 908, 232), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.extra[1].size()), recti(818, 207, 908, 232), 0xff000000, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.extra[1].size()), recti(808, 208, 910, 233), 0xffffff00, true, false, 0); numFont->draw(dataManager.GetNumString(dField.extra[1].size()), recti(818, 208, 910, 233), 0xffffff00, true, false, 0);
} }
if(dField.deck[1].size()) { if(dField.deck[1].size()) {
numFont->draw(dataManager.GetNumString(dField.deck[1].size()), recti(391, 207, 481, 232), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.deck[1].size()), recti(465, 207, 481, 232), 0xff000000, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.deck[1].size()), recti(391, 208, 483, 233), 0xffffff00, true, false, 0); numFont->draw(dataManager.GetNumString(dField.deck[1].size()), recti(465, 208, 483, 233), 0xffffff00, true, false, 0);
} }
if(dField.grave[1].size()) { if(dField.grave[1].size()) {
numFont->draw(dataManager.GetNumString(dField.grave[1].size()), recti(348, 310, 462, 281), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.grave[1].size()), recti(420, 310, 462, 281), 0xff000000, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.grave[1].size()), recti(348, 311, 464, 282), 0xffffff00, true, false, 0); numFont->draw(dataManager.GetNumString(dField.grave[1].size()), recti(420, 311, 464, 282), 0xffffff00, true, false, 0);
} }
if(dField.remove[1].size()) { if(dField.remove[1].size()) {
numFont->draw(dataManager.GetNumString(dField.remove[1].size()), recti(216, 310, 443, 340), 0xff000000, true, false, 0); numFont->draw(dataManager.GetNumString(dField.remove[1].size()), recti(300, 310, 443, 340), 0xff000000, true, false, 0);
numFont->draw(dataManager.GetNumString(dField.remove[1].size()), recti(216, 311, 445, 341), 0xffffff00, true, false, 0); numFont->draw(dataManager.GetNumString(dField.remove[1].size()), recti(300, 311, 445, 341), 0xffffff00, true, false, 0);
} }
} }
void Game::DrawGUI() { void Game::DrawGUI() {
......
...@@ -1502,21 +1502,23 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1502,21 +1502,23 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
return false; return false;
} }
void ClientField::GetHoverField(int x, int y) { void ClientField::GetHoverField(int x, int y) {
irr::core::recti sfRect(393, 504, 875, 600); irr::core::recti sfRect(430, 504, 875, 600);
irr::core::recti ofRect(501, 135, 790, 191); irr::core::recti ofRect(531, 135, 800, 191);
irr::core::position2di pos(x, y); irr::core::position2di pos(x, y);
if(sfRect.isPointInside(pos)) { if(sfRect.isPointInside(pos)) {
int hc = hand[0].size(); int hc = hand[0].size();
if(hc == 0) if(hc == 0)
hovered_location = 0; hovered_location = 0;
else if(hc < 7) { else if(hc < 7) {
int left = 393 + 82 * (6 - hc) / 2; int cardSize = 66;
int cardSpace = 10;
int left = sfRect.UpperLeftCorner.X + (cardSize + cardSpace) * (6 - hc) / 2;
if(x < left) if(x < left)
hovered_location = 0; hovered_location = 0;
else { else {
int seq = (x - left) / 82; int seq = (x - left) / (cardSize + cardSpace);
if(seq >= hc) seq = hc - 1; if(seq >= hc) seq = hc - 1;
if(x - left - 82 * seq < 71) { if(x - left - (cardSize + cardSpace) * seq < cardSize) {
hovered_controler = 0; hovered_controler = 0;
hovered_location = LOCATION_HAND; hovered_location = LOCATION_HAND;
hovered_sequence = seq; hovered_sequence = seq;
...@@ -1528,20 +1530,22 @@ void ClientField::GetHoverField(int x, int y) { ...@@ -1528,20 +1530,22 @@ void ClientField::GetHoverField(int x, int y) {
if(x >= 804) if(x >= 804)
hovered_sequence = hc - 1; hovered_sequence = hc - 1;
else else
hovered_sequence = (x - 393) * (hc - 1) / 411; hovered_sequence = (x - sfRect.UpperLeftCorner.X) * (hc - 1) / 393;
} }
} else if(ofRect.isPointInside(pos)) { } else if(ofRect.isPointInside(pos)) {
int hc = hand[1].size(); int hc = hand[1].size();
if(hc == 0) if(hc == 0)
hovered_location = 0; hovered_location = 0;
else if(hc < 7) { else if(hc < 7) {
int left = 501 + 49 * (6 - hc) / 2; int cardSize = 39;
int cardSpace = 7;
int left = ofRect.UpperLeftCorner.X + (cardSize + cardSpace) * (6 - hc) / 2;
if(x < left) if(x < left)
hovered_location = 0; hovered_location = 0;
else { else {
int seq = (x - left) / 49; int seq = (x - left) / (cardSize + cardSpace);
if(seq >= hc) seq = hc - 1; if(seq >= hc) seq = hc - 1;
if(x - left - 49 * seq < 42) { if(x - left - (cardSize + cardSpace) * seq < cardSize) {
hovered_controler = 1; hovered_controler = 1;
hovered_location = LOCATION_HAND; hovered_location = LOCATION_HAND;
hovered_sequence = hc - 1 - seq; hovered_sequence = hc - 1 - seq;
...@@ -1553,10 +1557,10 @@ void ClientField::GetHoverField(int x, int y) { ...@@ -1553,10 +1557,10 @@ void ClientField::GetHoverField(int x, int y) {
if(x >= 748) if(x >= 748)
hovered_sequence = 0; hovered_sequence = 0;
else else
hovered_sequence = hc - 1 - (x - 501) * (hc - 1) / 247; hovered_sequence = hc - 1 - (x - ofRect.UpperLeftCorner.X) * (hc - 1) / 247;
} }
} else { } else {
double screenx = x / 1024.0 * 1.25 - 0.81; double screenx = x / 1024.0 * 1.35 - 0.90;
double screeny = y / 640.0 * 0.84 - 0.42; double screeny = y / 640.0 * 0.84 - 0.42;
double angle = 0.798056 - atan(screeny); //0.798056 = arctan(8.0/7.8) double angle = 0.798056 - atan(screeny); //0.798056 = arctan(8.0/7.8)
double vlen = sqrt(1.0 + screeny * screeny); double vlen = sqrt(1.0 + screeny * screeny);
......
...@@ -176,7 +176,7 @@ bool Game::Initialize() { ...@@ -176,7 +176,7 @@ bool Game::Initialize() {
imgCard = env->addImage(rect<s32>(9, 9, 187, 262), wCardImg); imgCard = env->addImage(rect<s32>(9, 9, 187, 262), wCardImg);
imgCard->setUseAlphaChannel(true); imgCard->setUseAlphaChannel(true);
//phase //phase
wPhase = env->addStaticText(L"", rect<s32>(455, 310, 830, 330)); wPhase = env->addStaticText(L"", rect<s32>(480, 310, 855, 330));
wPhase->setVisible(false); wPhase->setVisible(false);
btnDP = env->addButton(rect<s32>(0, 0, 50, 20), wPhase, -1, L"\xff24\xff30"); btnDP = env->addButton(rect<s32>(0, 0, 50, 20), wPhase, -1, L"\xff24\xff30");
btnDP->setEnabled(false); btnDP->setEnabled(false);
...@@ -497,7 +497,7 @@ void Game::MainLoop() { ...@@ -497,7 +497,7 @@ void Game::MainLoop() {
wchar_t cap[256]; wchar_t cap[256];
camera = smgr->addCameraSceneNode(0); camera = smgr->addCameraSceneNode(0);
irr::core::matrix4 mProjection; irr::core::matrix4 mProjection;
BuildProjectionMatrix(mProjection, -0.81f, 0.44f, -0.42f, 0.42f, 1.0f, 100.0f); BuildProjectionMatrix(mProjection, -0.90f, 0.45f, -0.42f, 0.42f, 1.0f, 100.0f);
camera->setProjectionMatrix(mProjection); camera->setProjectionMatrix(mProjection);
mProjection.buildCameraLookAtMatrixLH(vector3df(4.2f, 8.0f, 7.8f), vector3df(4.2f, 0, 0), vector3df(0, 0, 1)); mProjection.buildCameraLookAtMatrixLH(vector3df(4.2f, 8.0f, 7.8f), vector3df(4.2f, 0, 0), vector3df(0, 0, 1));
......
...@@ -1293,20 +1293,20 @@ void field::get_xyz_material(card* scard, int32 findex, int32 maxc) { ...@@ -1293,20 +1293,20 @@ void field::get_xyz_material(card* scard, int32 findex, int32 maxc) {
cv.push_back(pcard); cv.push_back(pcard);
} }
if(core.global_flag & GLOBALFLAG_XMAT_COUNT_LIMIT) { if(core.global_flag & GLOBALFLAG_XMAT_COUNT_LIMIT) {
for(auto pcard : cv) { for(auto pcard = cv.begin(); pcard != cv.end(); ++pcard) {
effect* peffect = pcard->is_affected_by_effect(EFFECT_XMAT_COUNT_LIMIT); effect* peffect = (*pcard)->is_affected_by_effect(EFFECT_XMAT_COUNT_LIMIT);
if(peffect) { if(peffect) {
int32 v = peffect->get_value(); int32 v = peffect->get_value();
core.xmaterial_lst.insert(std::make_pair(v, pcard)); core.xmaterial_lst.insert(std::make_pair(v, *pcard));
} else } else
core.xmaterial_lst.insert(std::make_pair(0, pcard)); core.xmaterial_lst.insert(std::make_pair(0, *pcard));
} }
auto iter = core.xmaterial_lst.begin(); auto iter = core.xmaterial_lst.begin();
while((iter != core.xmaterial_lst.end()) && ((iter->first > core.xmaterial_lst.size()) || (iter->first > maxc))) while((iter != core.xmaterial_lst.end()) && ((iter->first > core.xmaterial_lst.size()) || (iter->first > maxc)))
core.xmaterial_lst.erase(iter++); core.xmaterial_lst.erase(iter++);
} else { } else {
for(auto pcard : cv) for(auto pcard = cv.begin(); pcard != cv.end(); ++pcard)
core.xmaterial_lst.insert(std::make_pair(0, pcard)); core.xmaterial_lst.insert(std::make_pair(0, *pcard));
} }
} }
void field::get_overlay_group(uint8 self, uint8 s, uint8 o, card_set* pset) { void field::get_overlay_group(uint8 self, uint8 s, uint8 o, card_set* pset) {
...@@ -1680,25 +1680,25 @@ int32 field::check_xyz_material(card* scard, int32 findex, int32 min, int32 max, ...@@ -1680,25 +1680,25 @@ int32 field::check_xyz_material(card* scard, int32 findex, int32 min, int32 max,
if(mg) { if(mg) {
card_vector cv; card_vector cv;
core.xmaterial_lst.clear(); core.xmaterial_lst.clear();
for (auto pcard : mg->container) { for (auto pcard = mg->container.begin(); pcard != mg->container.end(); ++pcard) {
if(pduel->lua->check_matching(pcard, findex, 0)) if(pduel->lua->check_matching(*pcard, findex, 0))
cv.push_back(pcard); cv.push_back(*pcard);
} }
if(core.global_flag & GLOBALFLAG_XMAT_COUNT_LIMIT) { if(core.global_flag & GLOBALFLAG_XMAT_COUNT_LIMIT) {
for(auto pcard : cv) { for(auto pcard = cv.begin(); pcard != cv.end(); ++pcard) {
effect* peffect = pcard->is_affected_by_effect(EFFECT_XMAT_COUNT_LIMIT); effect* peffect = (*pcard)->is_affected_by_effect(EFFECT_XMAT_COUNT_LIMIT);
if(peffect) { if(peffect) {
int32 v = peffect->get_value(); int32 v = peffect->get_value();
core.xmaterial_lst.insert(std::make_pair(v, pcard)); core.xmaterial_lst.insert(std::make_pair(v, *pcard));
} else } else
core.xmaterial_lst.insert(std::make_pair(0, pcard)); core.xmaterial_lst.insert(std::make_pair(0, *pcard));
} }
auto iter = core.xmaterial_lst.begin(); auto iter = core.xmaterial_lst.begin();
while((iter != core.xmaterial_lst.end()) && ((iter->first > core.xmaterial_lst.size()) || (iter->first > max))) while((iter != core.xmaterial_lst.end()) && ((iter->first > core.xmaterial_lst.size()) || (iter->first > max)))
core.xmaterial_lst.erase(iter++); core.xmaterial_lst.erase(iter++);
} else { } else {
for(auto pcard : cv) for(auto pcard = cv.begin(); pcard != cv.end(); ++pcard)
core.xmaterial_lst.insert(std::make_pair(0, pcard)); core.xmaterial_lst.insert(std::make_pair(0, *pcard));
} }
} else { } else {
pduel->game_field->get_xyz_material(scard, findex, max); pduel->game_field->get_xyz_material(scard, findex, max);
......
...@@ -3986,8 +3986,8 @@ int32 field::select_xyz_material(int16 step, uint8 playerid, card* scard, int32 ...@@ -3986,8 +3986,8 @@ int32 field::select_xyz_material(int16 step, uint8 playerid, card* scard, int32
maxv = core.xmaterial_lst.begin()->first; maxv = core.xmaterial_lst.begin()->first;
if(min >= maxv) { if(min >= maxv) {
core.select_cards.clear(); core.select_cards.clear();
for(auto iter : core.xmaterial_lst) for(auto iter = core.xmaterial_lst.begin(); iter != core.xmaterial_lst.end(); ++iter)
core.select_cards.push_back(iter.second); core.select_cards.push_back(iter->second);
pduel->write_buffer8(MSG_HINT); pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(HINT_SELECTMSG); pduel->write_buffer8(HINT_SELECTMSG);
pduel->write_buffer8(playerid); pduel->write_buffer8(playerid);
...@@ -4009,8 +4009,8 @@ int32 field::select_xyz_material(int16 step, uint8 playerid, card* scard, int32 ...@@ -4009,8 +4009,8 @@ int32 field::select_xyz_material(int16 step, uint8 playerid, card* scard, int32
case 2: { case 2: {
core.operated_set.clear(); core.operated_set.clear();
core.select_cards.clear(); core.select_cards.clear();
for(auto iter : core.xmaterial_lst) for(auto iter = core.xmaterial_lst.begin(); iter != core.xmaterial_lst.end(); ++iter)
core.select_cards.push_back(iter.second); core.select_cards.push_back(iter->second);
pduel->write_buffer8(MSG_HINT); pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(HINT_SELECTMSG); pduel->write_buffer8(HINT_SELECTMSG);
pduel->write_buffer8(playerid); pduel->write_buffer8(playerid);
...@@ -4055,8 +4055,8 @@ int32 field::select_xyz_material(int16 step, uint8 playerid, card* scard, int32 ...@@ -4055,8 +4055,8 @@ int32 field::select_xyz_material(int16 step, uint8 playerid, card* scard, int32
return TRUE; return TRUE;
} }
core.select_cards.clear(); core.select_cards.clear();
for(auto iter : core.xmaterial_lst) for(auto iter = core.xmaterial_lst.begin(); iter != core.xmaterial_lst.end(); iter++)
core.select_cards.push_back(iter.second); core.select_cards.push_back(iter->second);
int maxv = core.xmaterial_lst.begin()->first; int maxv = core.xmaterial_lst.begin()->first;
pduel->write_buffer8(MSG_HINT); pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(HINT_SELECTMSG); pduel->write_buffer8(HINT_SELECTMSG);
...@@ -4072,8 +4072,8 @@ int32 field::select_xyz_material(int16 step, uint8 playerid, card* scard, int32 ...@@ -4072,8 +4072,8 @@ int32 field::select_xyz_material(int16 step, uint8 playerid, card* scard, int32
} }
case 5: { case 5: {
group* pgroup = pduel->new_group(); group* pgroup = pduel->new_group();
for(auto pcard : core.operated_set) for(auto pcard = core.operated_set.begin(); pcard != core.operated_set.end(); ++pcard)
pgroup->container.insert(pcard); pgroup->container.insert(*pcard);
for(int32 i = 0; i < returns.bvalue[0]; ++i) { for(int32 i = 0; i < returns.bvalue[0]; ++i) {
card* pcard = core.select_cards[returns.bvalue[i + 1]]; card* pcard = core.select_cards[returns.bvalue[i + 1]];
pgroup->container.insert(pcard); pgroup->container.insert(pcard);
......
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