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() {
for(int i = 0; i < 5; ++i) {
pcard = dField.mzone[0][i];
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 - 3, 417, m + 5, 437), 0xffffffff, true, false, 0);
int w = adFont->getDimension(pcard->atkstring).Width;
......@@ -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 + 5, 417, m + 5 + w, 437),
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(444 + i * 85, 357, 476 + i * 85, 367),
adFont->draw(pcard->lvstring, recti(473 + i * 80, 356, 475 + i * 80, 366), 0xff000000, false, false, 0);
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);
}
}
for(int i = 0; i < 5; ++i) {
pcard = dField.mzone[1][i];
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 - 3, 236, m + 5, 256), 0xffffffff, true, false, 0);
int w = adFont->getDimension(pcard->atkstring).Width;
......@@ -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 + 5, 236, m + 5 + w, 256),
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(769 - i * 76, 273, 800 - i * 76, 293),
adFont->draw(pcard->lvstring, recti(779 - i * 71, 272, 800 - i * 71, 292), 0xff000000, false, false, 0);
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);
}
}
......@@ -417,36 +417,36 @@ void Game::DrawMisc() {
adFont->draw(pcard->rscstring, recti(429, 246, 461, 266), 0xffffffff, true, false, 0);
}
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(245, 563, 383, 553), 0xffffff00, 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(330, 563, 383, 553), 0xffffff00, true, false, 0);
}
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(913, 563, 1023, 553), 0xffffff00, 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(908, 563, 1023, 553), 0xffffff00, true, false, 0);
}
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, 376, 986, 457), 0xffffff00, true, false, 0);
}
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(1025, 376, 959, 381), 0xffffff00, 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(1015, 376, 959, 381), 0xffffff00, true, false, 0);
}
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(808, 208, 910, 233), 0xffffff00, 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(818, 208, 910, 233), 0xffffff00, true, false, 0);
}
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(391, 208, 483, 233), 0xffffff00, 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(465, 208, 483, 233), 0xffffff00, true, false, 0);
}
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(348, 311, 464, 282), 0xffffff00, 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(420, 311, 464, 282), 0xffffff00, true, false, 0);
}
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(216, 311, 445, 341), 0xffffff00, 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(300, 311, 445, 341), 0xffffff00, true, false, 0);
}
}
void Game::DrawGUI() {
......
......@@ -1502,21 +1502,23 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
return false;
}
void ClientField::GetHoverField(int x, int y) {
irr::core::recti sfRect(393, 504, 875, 600);
irr::core::recti ofRect(501, 135, 790, 191);
irr::core::recti sfRect(430, 504, 875, 600);
irr::core::recti ofRect(531, 135, 800, 191);
irr::core::position2di pos(x, y);
if(sfRect.isPointInside(pos)) {
int hc = hand[0].size();
if(hc == 0)
hovered_location = 0;
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)
hovered_location = 0;
else {
int seq = (x - left) / 82;
int seq = (x - left) / (cardSize + cardSpace);
if(seq >= hc) seq = hc - 1;
if(x - left - 82 * seq < 71) {
if(x - left - (cardSize + cardSpace) * seq < cardSize) {
hovered_controler = 0;
hovered_location = LOCATION_HAND;
hovered_sequence = seq;
......@@ -1528,20 +1530,22 @@ void ClientField::GetHoverField(int x, int y) {
if(x >= 804)
hovered_sequence = hc - 1;
else
hovered_sequence = (x - 393) * (hc - 1) / 411;
hovered_sequence = (x - sfRect.UpperLeftCorner.X) * (hc - 1) / 393;
}
} else if(ofRect.isPointInside(pos)) {
int hc = hand[1].size();
if(hc == 0)
hovered_location = 0;
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)
hovered_location = 0;
else {
int seq = (x - left) / 49;
int seq = (x - left) / (cardSize + cardSpace);
if(seq >= hc) seq = hc - 1;
if(x - left - 49 * seq < 42) {
if(x - left - (cardSize + cardSpace) * seq < cardSize) {
hovered_controler = 1;
hovered_location = LOCATION_HAND;
hovered_sequence = hc - 1 - seq;
......@@ -1553,10 +1557,10 @@ void ClientField::GetHoverField(int x, int y) {
if(x >= 748)
hovered_sequence = 0;
else
hovered_sequence = hc - 1 - (x - 501) * (hc - 1) / 247;
hovered_sequence = hc - 1 - (x - ofRect.UpperLeftCorner.X) * (hc - 1) / 247;
}
} 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 angle = 0.798056 - atan(screeny); //0.798056 = arctan(8.0/7.8)
double vlen = sqrt(1.0 + screeny * screeny);
......
......@@ -176,7 +176,7 @@ bool Game::Initialize() {
imgCard = env->addImage(rect<s32>(9, 9, 187, 262), wCardImg);
imgCard->setUseAlphaChannel(true);
//phase
wPhase = env->addStaticText(L"", rect<s32>(455, 310, 830, 330));
wPhase = env->addStaticText(L"", rect<s32>(480, 310, 855, 330));
wPhase->setVisible(false);
btnDP = env->addButton(rect<s32>(0, 0, 50, 20), wPhase, -1, L"\xff24\xff30");
btnDP->setEnabled(false);
......@@ -497,7 +497,7 @@ void Game::MainLoop() {
wchar_t cap[256];
camera = smgr->addCameraSceneNode(0);
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);
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) {
cv.push_back(pcard);
}
if(core.global_flag & GLOBALFLAG_XMAT_COUNT_LIMIT) {
for(auto pcard : cv) {
effect* peffect = pcard->is_affected_by_effect(EFFECT_XMAT_COUNT_LIMIT);
for(auto pcard = cv.begin(); pcard != cv.end(); ++pcard) {
effect* peffect = (*pcard)->is_affected_by_effect(EFFECT_XMAT_COUNT_LIMIT);
if(peffect) {
int32 v = peffect->get_value();
core.xmaterial_lst.insert(std::make_pair(v, pcard));
core.xmaterial_lst.insert(std::make_pair(v, *pcard));
} 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();
while((iter != core.xmaterial_lst.end()) && ((iter->first > core.xmaterial_lst.size()) || (iter->first > maxc)))
core.xmaterial_lst.erase(iter++);
} else {
for(auto pcard : cv)
core.xmaterial_lst.insert(std::make_pair(0, pcard));
for(auto pcard = cv.begin(); pcard != cv.end(); ++pcard)
core.xmaterial_lst.insert(std::make_pair(0, *pcard));
}
}
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,
if(mg) {
card_vector cv;
core.xmaterial_lst.clear();
for (auto pcard : mg->container) {
if(pduel->lua->check_matching(pcard, findex, 0))
cv.push_back(pcard);
for (auto pcard = mg->container.begin(); pcard != mg->container.end(); ++pcard) {
if(pduel->lua->check_matching(*pcard, findex, 0))
cv.push_back(*pcard);
}
if(core.global_flag & GLOBALFLAG_XMAT_COUNT_LIMIT) {
for(auto pcard : cv) {
effect* peffect = pcard->is_affected_by_effect(EFFECT_XMAT_COUNT_LIMIT);
for(auto pcard = cv.begin(); pcard != cv.end(); ++pcard) {
effect* peffect = (*pcard)->is_affected_by_effect(EFFECT_XMAT_COUNT_LIMIT);
if(peffect) {
int32 v = peffect->get_value();
core.xmaterial_lst.insert(std::make_pair(v, pcard));
core.xmaterial_lst.insert(std::make_pair(v, *pcard));
} 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();
while((iter != core.xmaterial_lst.end()) && ((iter->first > core.xmaterial_lst.size()) || (iter->first > max)))
core.xmaterial_lst.erase(iter++);
} else {
for(auto pcard : cv)
core.xmaterial_lst.insert(std::make_pair(0, pcard));
for(auto pcard = cv.begin(); pcard != cv.end(); ++pcard)
core.xmaterial_lst.insert(std::make_pair(0, *pcard));
}
} else {
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
maxv = core.xmaterial_lst.begin()->first;
if(min >= maxv) {
core.select_cards.clear();
for(auto iter : core.xmaterial_lst)
core.select_cards.push_back(iter.second);
for(auto iter = core.xmaterial_lst.begin(); iter != core.xmaterial_lst.end(); ++iter)
core.select_cards.push_back(iter->second);
pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(HINT_SELECTMSG);
pduel->write_buffer8(playerid);
......@@ -4009,8 +4009,8 @@ int32 field::select_xyz_material(int16 step, uint8 playerid, card* scard, int32
case 2: {
core.operated_set.clear();
core.select_cards.clear();
for(auto iter : core.xmaterial_lst)
core.select_cards.push_back(iter.second);
for(auto iter = core.xmaterial_lst.begin(); iter != core.xmaterial_lst.end(); ++iter)
core.select_cards.push_back(iter->second);
pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(HINT_SELECTMSG);
pduel->write_buffer8(playerid);
......@@ -4055,8 +4055,8 @@ int32 field::select_xyz_material(int16 step, uint8 playerid, card* scard, int32
return TRUE;
}
core.select_cards.clear();
for(auto iter : core.xmaterial_lst)
core.select_cards.push_back(iter.second);
for(auto iter = core.xmaterial_lst.begin(); iter != core.xmaterial_lst.end(); iter++)
core.select_cards.push_back(iter->second);
int maxv = core.xmaterial_lst.begin()->first;
pduel->write_buffer8(MSG_HINT);
pduel->write_buffer8(HINT_SELECTMSG);
......@@ -4072,8 +4072,8 @@ int32 field::select_xyz_material(int16 step, uint8 playerid, card* scard, int32
}
case 5: {
group* pgroup = pduel->new_group();
for(auto pcard : core.operated_set)
pgroup->container.insert(pcard);
for(auto pcard = core.operated_set.begin(); pcard != core.operated_set.end(); ++pcard)
pgroup->container.insert(*pcard);
for(int32 i = 0; i < returns.bvalue[0]; ++i) {
card* pcard = core.select_cards[returns.bvalue[i + 1]];
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