Commit bb830c38 authored by edo9300's avatar edo9300

Fix

parent 220864e2
...@@ -202,24 +202,32 @@ void Game::DrawLinkedZones(ClientCard* pcard) { ...@@ -202,24 +202,32 @@ void Game::DrawLinkedZones(ClientCard* pcard) {
if (dField.hovered_sequence < 5) { if (dField.hovered_sequence < 5) {
if (mark & LINK_MARKER_LEFT && dField.hovered_sequence > 0) { if (mark & LINK_MARKER_LEFT && dField.hovered_sequence > 0) {
pcard2 = mainGame->dField.mzone[dField.hovered_controler][dField.hovered_sequence - 1]; pcard2 = mainGame->dField.mzone[dField.hovered_controler][dField.hovered_sequence - 1];
CheckMutual(pcard2, LINK_MARKER_LEFT); CheckMutual(pcard2, LINK_MARKER_RIGHT);
driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][dField.hovered_sequence - 1], 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][dField.hovered_sequence - 1], 4, matManager.iRectangle, 2);
} }
if (mark & LINK_MARKER_RIGHT && dField.hovered_sequence < 4) { if (mark & LINK_MARKER_RIGHT && dField.hovered_sequence < 4) {
pcard2 = mainGame->dField.mzone[dField.hovered_controler][dField.hovered_sequence + 1]; pcard2 = mainGame->dField.mzone[dField.hovered_controler][dField.hovered_sequence + 1];
CheckMutual(pcard2, LINK_MARKER_RIGHT); CheckMutual(pcard2, LINK_MARKER_LEFT);
driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][dField.hovered_sequence + 1], 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][dField.hovered_sequence + 1], 4, matManager.iRectangle, 2);
} }
if (dInfo.duel_rule >= 4) { if (dInfo.duel_rule >= 4) {
if ((mark & LINK_MARKER_TOP_LEFT && dField.hovered_sequence == 2) || (mark & LINK_MARKER_TOP && dField.hovered_sequence == 1) || (mark & LINK_MARKER_TOP_RIGHT && dField.hovered_sequence == 0)) { if ((mark & LINK_MARKER_TOP_LEFT && dField.hovered_sequence == 2) || (mark & LINK_MARKER_TOP && dField.hovered_sequence == 1) || (mark & LINK_MARKER_TOP_RIGHT && dField.hovered_sequence == 0)) {
int mark = (dField.hovered_sequence == 2) ? LINK_MARKER_TOP_LEFT : (dField.hovered_sequence == 1) ? LINK_MARKER_TOP : LINK_MARKER_TOP_RIGHT; int mark = (dField.hovered_sequence == 2) ? LINK_MARKER_BOTTOM_RIGHT : (dField.hovered_sequence == 1) ? LINK_MARKER_BOTTOM : LINK_MARKER_BOTTOM_LEFT;
pcard2 = mainGame->dField.mzone[dField.hovered_controler][5]; pcard2 = mainGame->dField.mzone[dField.hovered_controler][5];
if (!pcard2) {
pcard2 = mainGame->dField.mzone[1 - dField.hovered_controler][6];
mark = (dField.hovered_sequence == 2) ? LINK_MARKER_TOP_LEFT : (dField.hovered_sequence == 1) ? LINK_MARKER_TOP : LINK_MARKER_TOP_RIGHT;
}
CheckMutual(pcard2, mark); CheckMutual(pcard2, mark);
driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][5], 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][5], 4, matManager.iRectangle, 2);
} }
if ((mark & LINK_MARKER_TOP_LEFT && dField.hovered_sequence == 4) || (mark & LINK_MARKER_TOP && dField.hovered_sequence == 3) || (mark & LINK_MARKER_TOP_RIGHT && dField.hovered_sequence == 2)) { if ((mark & LINK_MARKER_TOP_LEFT && dField.hovered_sequence == 4) || (mark & LINK_MARKER_TOP && dField.hovered_sequence == 3) || (mark & LINK_MARKER_TOP_RIGHT && dField.hovered_sequence == 2)) {
int mark = (dField.hovered_sequence == 4) ? LINK_MARKER_TOP_LEFT : (dField.hovered_sequence == 3) ? LINK_MARKER_TOP : LINK_MARKER_TOP_RIGHT; int mark = (dField.hovered_sequence == 4) ? LINK_MARKER_BOTTOM_RIGHT : (dField.hovered_sequence == 3) ? LINK_MARKER_BOTTOM : LINK_MARKER_BOTTOM_LEFT;
pcard2 = mainGame->dField.mzone[dField.hovered_controler][5]; pcard2 = mainGame->dField.mzone[dField.hovered_controler][6];
if (!pcard2) {
pcard2 = mainGame->dField.mzone[1 - dField.hovered_controler][5];
mark = (dField.hovered_sequence == 4) ? LINK_MARKER_TOP_LEFT : (dField.hovered_sequence == 3) ? LINK_MARKER_TOP : LINK_MARKER_TOP_RIGHT;
}
CheckMutual(pcard2, mark); CheckMutual(pcard2, mark);
driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][6], 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][6], 4, matManager.iRectangle, 2);
} }
...@@ -228,51 +236,42 @@ void Game::DrawLinkedZones(ClientCard* pcard) { ...@@ -228,51 +236,42 @@ void Game::DrawLinkedZones(ClientCard* pcard) {
int swap = (dField.hovered_sequence == 5) ? 0 : 2; int swap = (dField.hovered_sequence == 5) ? 0 : 2;
if (mark & LINK_MARKER_BOTTOM_LEFT) { if (mark & LINK_MARKER_BOTTOM_LEFT) {
pcard2 = mainGame->dField.mzone[dField.hovered_controler][0 + swap]; pcard2 = mainGame->dField.mzone[dField.hovered_controler][0 + swap];
CheckMutual(pcard2, LINK_MARKER_BOTTOM_LEFT); CheckMutual(pcard2, LINK_MARKER_TOP_RIGHT);
driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][0 + swap], 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][0 + swap], 4, matManager.iRectangle, 2);
} }
if (mark & LINK_MARKER_BOTTOM) { if (mark & LINK_MARKER_BOTTOM) {
pcard2 = mainGame->dField.mzone[dField.hovered_controler][1 + swap]; pcard2 = mainGame->dField.mzone[dField.hovered_controler][1 + swap];
CheckMutual(pcard2, LINK_MARKER_BOTTOM); CheckMutual(pcard2, LINK_MARKER_TOP);
driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][1 + swap], 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][1 + swap], 4, matManager.iRectangle, 2);
} }
if (mark & LINK_MARKER_BOTTOM_RIGHT) { if (mark & LINK_MARKER_BOTTOM_RIGHT) {
pcard2 = mainGame->dField.mzone[dField.hovered_controler][2 + swap]; pcard2 = mainGame->dField.mzone[dField.hovered_controler][2 + swap];
CheckMutual(pcard2, LINK_MARKER_BOTTOM_RIGHT); CheckMutual(pcard2, LINK_MARKER_TOP_LEFT);
driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][2 + swap], 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][2 + swap], 4, matManager.iRectangle, 2);
} }
if (mark & LINK_MARKER_TOP_LEFT) { if (mark & LINK_MARKER_TOP_LEFT) {
pcard2 = mainGame->dField.mzone[dField.hovered_controler][4 - swap]; pcard2 = mainGame->dField.mzone[1 - dField.hovered_controler][4 - swap];
CheckMutual(pcard2, LINK_MARKER_TOP_LEFT); CheckMutual(pcard2, LINK_MARKER_TOP_LEFT);
driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][4 - swap], 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(&matManager.vFieldMzone[1 - dField.hovered_controler][4 - swap], 4, matManager.iRectangle, 2);
} }
if (mark & LINK_MARKER_TOP) { if (mark & LINK_MARKER_TOP) {
pcard2 = mainGame->dField.mzone[dField.hovered_controler][3 - swap]; pcard2 = mainGame->dField.mzone[1 - dField.hovered_controler][3 - swap];
CheckMutual(pcard2, LINK_MARKER_TOP); CheckMutual(pcard2, LINK_MARKER_TOP);
driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][3 - swap], 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(&matManager.vFieldMzone[1 - dField.hovered_controler][3 - swap], 4, matManager.iRectangle, 2);
} }
if (mark & LINK_MARKER_TOP_RIGHT) { if (mark & LINK_MARKER_TOP_RIGHT) {
pcard2 = mainGame->dField.mzone[dField.hovered_controler][2 - swap]; pcard2 = mainGame->dField.mzone[1 - dField.hovered_controler][2 - swap];
CheckMutual(pcard2, LINK_MARKER_TOP_RIGHT); CheckMutual(pcard2, LINK_MARKER_TOP_RIGHT);
driver->drawVertexPrimitiveList(&matManager.vFieldMzone[dField.hovered_controler][2 - swap], 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(&matManager.vFieldMzone[1 - dField.hovered_controler][2 - swap], 4, matManager.iRectangle, 2);
} }
} }
} }
void Game::CheckMutual(ClientCard* pcard, int mark) { void Game::CheckMutual(ClientCard* pcard, int mark) {
matManager.mSelField.AmbientColor = 0xff0261a2; matManager.mSelField.AmbientColor = 0xff0261a2;
driver->setMaterial(matManager.mSelField); driver->setMaterial(matManager.mSelField);
if (pcard && pcard->type & TYPE_LINK) { if (pcard && pcard->type & TYPE_LINK && pcard->link_marker & mark) {
if ((mark == LINK_MARKER_BOTTOM_LEFT && pcard->link_marker & LINK_MARKER_TOP_RIGHT) || matManager.mSelField.AmbientColor = 0xff009900;
(mark == LINK_MARKER_BOTTOM && pcard->link_marker & LINK_MARKER_TOP) || driver->setMaterial(matManager.mSelField);
(mark == LINK_MARKER_BOTTOM_RIGHT && pcard->link_marker & LINK_MARKER_TOP_LEFT) ||
(mark == LINK_MARKER_LEFT && pcard->link_marker & LINK_MARKER_RIGHT) ||
(mark == LINK_MARKER_RIGHT && pcard->link_marker & LINK_MARKER_LEFT) ||
(mark == LINK_MARKER_TOP_LEFT && pcard->link_marker & LINK_MARKER_BOTTOM_RIGHT) ||
(mark == LINK_MARKER_TOP && pcard->link_marker & LINK_MARKER_BOTTOM) ||
(mark == LINK_MARKER_TOP_RIGHT && pcard->link_marker & LINK_MARKER_BOTTOM_LEFT)) {
matManager.mSelField.AmbientColor = 0xff009900;
driver->setMaterial(matManager.mSelField);
}
} }
} }
void Game::DrawCards() { void Game::DrawCards() {
......
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