Commit 97b1e996 authored by VanillaSalt's avatar VanillaSalt

extra monster zone

parent aed821db
......@@ -28,11 +28,10 @@ ClientField::ClientField() {
deck_reversed = false;
conti_selecting = false;
for(int p = 0; p < 2; ++p) {
for(int i = 0; i < 5; ++i)
mzone[p].push_back(0);
for(int i = 0; i < 8; ++i)
szone[p].push_back(0);
mzone[p].resize(7, 0);
szone[p].resize(8, 0);
}
usable_exmzone = 0;
}
void ClientField::Clear() {
for(int i = 0; i < 2; ++i) {
......@@ -67,6 +66,7 @@ void ClientField::Clear() {
overlay_cards.clear();
extra_p_count[0] = 0;
extra_p_count[1] = 0;
usable_exmzone = 0;
chains.clear();
activatable_cards.clear();
summonable_cards.clear();
......@@ -183,6 +183,8 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
}
case LOCATION_MZONE: {
mzone[controler][sequence] = pcard;
if (!usable_exmzone && sequence >= 5)
usable_exmzone = sequence;
break;
}
case LOCATION_SZONE: {
......
......@@ -41,6 +41,7 @@ public:
std::vector<int> select_options;
std::vector<ChainInfo> chains;
int extra_p_count[2];
int usable_exmzone;
size_t selected_option;
ClientCard* attacker;
......
......@@ -106,7 +106,7 @@ void Game::DrawBackGround() {
if(dInfo.curMsg == MSG_SELECT_PLACE || dInfo.curMsg == MSG_SELECT_DISFIELD) {
float cv[4] = {0.0f, 0.0f, 1.0f, 1.0f};
unsigned int filter = 0x1;
for (int i = 0; i < 5; ++i, filter <<= 1) {
for (int i = 0; i < 7; ++i, filter <<= 1) {
if (dField.selectable_field & filter)
DrawSelectionLine(matManager.vFieldMzone[0][i], !(dField.selected_field & filter), 2, cv);
}
......@@ -116,7 +116,7 @@ void Game::DrawBackGround() {
DrawSelectionLine(matManager.vFieldSzone[0][i], !(dField.selected_field & filter), 2, cv);
}
filter = 0x10000;
for (int i = 0; i < 5; ++i, filter <<= 1) {
for (int i = 0; i < 7; ++i, filter <<= 1) {
if (dField.selectable_field & filter)
DrawSelectionLine(matManager.vFieldMzone[1][i], !(dField.selected_field & filter), 2, cv);
}
......@@ -190,22 +190,22 @@ void Game::DrawBackGround() {
}
void Game::DrawCards() {
for(int p = 0; p < 2; ++p) {
for(int i = 0; i < 5; ++i)
if(dField.mzone[p][i])
DrawCard(dField.mzone[p][i]);
for(int i = 0; i < 8; ++i)
if(dField.szone[p][i])
DrawCard(dField.szone[p][i]);
for(size_t i = 0; i < dField.deck[p].size(); ++i)
DrawCard(dField.deck[p][i]);
for(size_t i = 0; i < dField.hand[p].size(); ++i)
DrawCard(dField.hand[p][i]);
for(size_t i = 0; i < dField.grave[p].size(); ++i)
DrawCard(dField.grave[p][i]);
for(size_t i = 0; i < dField.remove[p].size(); ++i)
DrawCard(dField.remove[p][i]);
for(size_t i = 0; i < dField.extra[p].size(); ++i)
DrawCard(dField.extra[p][i]);
for(auto it = dField.mzone[p].begin(); it != dField.mzone[p].end(); ++it)
if(*it)
DrawCard(*it);
for(auto it = dField.szone[p].begin(); it != dField.szone[p].end(); ++it)
if(*it)
DrawCard(*it);
for(auto it = dField.deck[p].begin(); it != dField.deck[p].end(); ++it)
DrawCard(*it);
for(auto it = dField.hand[p].begin(); it != dField.hand[p].end(); ++it)
DrawCard(*it);
for(auto it = dField.grave[p].begin(); it != dField.grave[p].end(); ++it)
DrawCard(*it);
for(auto it = dField.remove[p].begin(); it != dField.remove[p].end(); ++it)
DrawCard(*it);
for(auto it = dField.extra[p].begin(); it != dField.extra[p].end(); ++it)
DrawCard(*it);
}
for(auto cit = dField.overlay_cards.begin(); cit != dField.overlay_cards.end(); ++cit)
DrawCard(*cit);
......@@ -407,42 +407,26 @@ void Game::DrawMisc() {
ClientCard* pcard;
for(int i = 0; i < 5; ++i) {
pcard = dField.mzone[0][i];
if(pcard && pcard->code != 0) {
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;
adFont->draw(pcard->atkstring, recti(m - 5 - w, 416, m - 5, 436), 0xff000000, false, false, 0);
adFont->draw(pcard->atkstring, recti(m - 4 - w, 417, m - 4, 437),
pcard->attack > pcard->base_attack ? 0xffffff00 : pcard->attack < pcard->base_attack ? 0xffff2090 : 0xffffffff , false, false, 0);
w = adFont->getDimension(pcard->defstring).Width;
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->defense > pcard->base_defense ? 0xffffff00 : pcard->defense < pcard->base_defense ? 0xffff2090 : 0xffffffff , 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(474 + i * 80, 357, 476 + i * 80, 367),
(pcard->type & TYPE_XYZ) ? 0xffff80ff : (pcard->type & TYPE_TUNER) ? 0xffffff00 : 0xffffffff, false, false, 0);
}
if(pcard && pcard->code != 0)
DrawStatus(pcard, 493 + i * 85, 416, 473 + i * 80, 356);
}
pcard = dField.mzone[0][5];
if(pcard && pcard->code != 0)
DrawStatus(pcard, 589, 338, 563, 291);
pcard = dField.mzone[0][6];
if(pcard && pcard->code != 0)
DrawStatus(pcard, 743, 338, 712, 291);
for(int i = 0; i < 5; ++i) {
pcard = dField.mzone[1][i];
if(pcard && (pcard->position & POS_FACEUP)) {
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;
adFont->draw(pcard->atkstring, recti(m - 5 - w, 235, m - 5, 255), 0xff000000, false, false, 0);
adFont->draw(pcard->atkstring, recti(m - 4 - w, 236, m - 4, 256),
pcard->attack > pcard->base_attack ? 0xffffff00 : pcard->attack < pcard->base_attack ? 0xffff2090 : 0xffffffff , false, false, 0);
w = adFont->getDimension(pcard->defstring).Width;
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->defense > pcard->base_defense ? 0xffffff00 : pcard->defense < pcard->base_defense ? 0xffff2090 : 0xffffffff , 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(780 - i * 71, 273, 800 - i * 71, 293),
(pcard->type & TYPE_XYZ) ? 0xffff80ff : (pcard->type & TYPE_TUNER) ? 0xffffff00 : 0xffffffff, false, false, 0);
}
if(pcard && (pcard->position & POS_FACEUP))
DrawStatus(pcard, 803 - i * 68, 235, 779 - i * 71, 272);
}
pcard = dField.mzone[1][5];
if(pcard && (pcard->position & POS_FACEUP))
DrawStatus(pcard, 743, 338, 712, 291);
pcard = dField.mzone[1][6];
if(pcard && (pcard->position & POS_FACEUP))
DrawStatus(pcard, 589, 338, 563, 291);
pcard = dField.szone[0][6];
if(pcard) {
adFont->draw(pcard->lscstring, recti(426, 394, 438, 414), 0xff000000, true, false, 0);
......@@ -502,6 +486,21 @@ void Game::DrawMisc() {
numFont->draw(dataManager.GetNumString(dField.remove[1].size()), recti(300, 311, 445, 341), 0xffffff00, true, false, 0);
}
}
void Game::DrawStatus(ClientCard* pcard, int x1, int y1, int x2, int y2) {
adFont->draw(L"/", recti(x1 - 4, y1, x1 + 4, y1 + 20), 0xff000000, true, false, 0);
adFont->draw(L"/", recti(x1 - 3, y1 + 1, x1 + 5, y1 + 21), 0xffffffff, true, false, 0);
int w = adFont->getDimension(pcard->atkstring).Width;
adFont->draw(pcard->atkstring, recti(x1 - 5 - w, y1, x1 - 5, y1 + 20), 0xff000000, false, false, 0);
adFont->draw(pcard->atkstring, recti(x1 - 4 - w, y1 + 1, x1 - 4, y1 + 21),
pcard->attack > pcard->base_attack ? 0xffffff00 : pcard->attack < pcard->base_attack ? 0xffff2090 : 0xffffffff , false, false, 0);
w = adFont->getDimension(pcard->defstring).Width;
adFont->draw(pcard->defstring, recti(x1 + 4, y1, x1 + 4 + w, y1 + 20), 0xff000000, false, false, 0);
adFont->draw(pcard->defstring, recti(x1 + 5, y1 + 1, x1 + 5 + w, y1 + 21),
pcard->defense > pcard->base_defense ? 0xffffff00 : pcard->defense < pcard->base_defense ? 0xffff2090 : 0xffffffff , false, false, 0);
adFont->draw(pcard->lvstring, recti(x2, y2, x2 + 2, y2 + 20), 0xff000000, false, false, 0);
adFont->draw(pcard->lvstring, recti(x2 + 1, y2, x2 + 3, y2 + 21),
(pcard->type & TYPE_XYZ) ? 0xffff80ff : (pcard->type & TYPE_TUNER) ? 0xffffff00 : 0xffffffff, false, false, 0);
}
void Game::DrawGUI() {
if(imageLoading.size()) {
std::map<irr::gui::CGUIImageButton*, int>::iterator mit;
......
......@@ -1296,40 +1296,42 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame->stHintMsg->setVisible(true);
if (mainGame->dInfo.curMsg == MSG_SELECT_PLACE && mainGame->chkAutoPos->isChecked()) {
unsigned int filter;
if (mainGame->dField.selectable_field & 0x1f) {
respbuf[0] = mainGame->dInfo.isFirst ? 0 : 1;
respbuf[1] = 0x4;
filter = mainGame->dField.selectable_field & 0x1f;
if (mainGame->dField.selectable_field & 0x7f) {
respbuf[0] = mainGame->LocalPlayer(0);
respbuf[1] = LOCATION_MZONE;
filter = mainGame->dField.selectable_field & 0x7f;
} else if (mainGame->dField.selectable_field & 0x1f00) {
respbuf[0] = mainGame->dInfo.isFirst ? 0 : 1;
respbuf[1] = 0x8;
respbuf[0] = mainGame->LocalPlayer(0);
respbuf[1] = LOCATION_SZONE;
filter = (mainGame->dField.selectable_field >> 8) & 0x1f;
} else if (mainGame->dField.selectable_field & 0xc000) {
respbuf[0] = mainGame->dInfo.isFirst ? 0 : 1;
respbuf[1] = 0x8;
respbuf[0] = mainGame->LocalPlayer(0);
respbuf[1] = LOCATION_SZONE;
filter = (mainGame->dField.selectable_field >> 14) & 0x3;
pzone = 1;
} else if (mainGame->dField.selectable_field & 0x1f0000) {
respbuf[0] = mainGame->dInfo.isFirst ? 1 : 0;
respbuf[1] = 0x4;
filter = (mainGame->dField.selectable_field >> 16) & 0x1f;
} else if (mainGame->dField.selectable_field & 0x7f0000) {
respbuf[0] = mainGame->LocalPlayer(1);
respbuf[1] = LOCATION_MZONE;
filter = (mainGame->dField.selectable_field >> 16) & 0x7f;
} else if (mainGame->dField.selectable_field & 0x1f000000) {
respbuf[0] = mainGame->dInfo.isFirst ? 1 : 0;
respbuf[1] = 0x8;
respbuf[0] = mainGame->LocalPlayer(1);
respbuf[1] = LOCATION_SZONE;
filter = (mainGame->dField.selectable_field >> 24) & 0x1f;
} else {
respbuf[0] = mainGame->dInfo.isFirst ? 1 : 0;
respbuf[1] = 0x8;
respbuf[0] = mainGame->LocalPlayer(1);
respbuf[1] = LOCATION_SZONE;
filter = (mainGame->dField.selectable_field >> 30) & 0x3;
pzone = 1;
}
if(!pzone) {
if(mainGame->chkRandomPos->isChecked()) {
respbuf[2] = rnd.real() * 5;
while(!(filter & (1 << respbuf[2])))
respbuf[2] = rnd.real() * 5;
do {
respbuf[2] = rnd.real() * 7;
} while(!(filter & (1 << respbuf[2])));
} else {
if (filter & 0x4) respbuf[2] = 2;
if (filter & 0x40) respbuf[2] = 6;
else if (filter & 0x20) respbuf[2] = 5;
else if (filter & 0x4) respbuf[2] = 2;
else if (filter & 0x2) respbuf[2] = 1;
else if (filter & 0x8) respbuf[2] = 3;
else if (filter & 0x1) respbuf[2] = 0;
......
......@@ -1346,7 +1346,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
case MSG_SELECT_PLACE:
case MSG_SELECT_DISFIELD: {
if (!(hovered_location & LOCATION_ONFIELD) || hovered_sequence == 5)
if (!(hovered_location & LOCATION_ONFIELD))
break;
unsigned int flag = 1 << (hovered_sequence + (hovered_controler << 4) + ((hovered_location == LOCATION_MZONE) ? 0 : 8));
if (flag & selectable_field) {
......@@ -1360,10 +1360,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
unsigned char respbuf[80];
int filter = 1;
int p = 0;
for (int i = 0; i < 5; ++i, filter <<= 1) {
for (int i = 0; i < 7; ++i, filter <<= 1) {
if (selected_field & filter) {
respbuf[p] = mainGame->LocalPlayer(0);
respbuf[p + 1] = 0x4;
respbuf[p + 1] = LOCATION_MZONE;
respbuf[p + 2] = i;
p += 3;
}
......@@ -1372,16 +1372,16 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
for (int i = 0; i < 8; ++i, filter <<= 1) {
if (selected_field & filter) {
respbuf[p] = mainGame->LocalPlayer(0);
respbuf[p + 1] = 0x8;
respbuf[p + 1] = LOCATION_SZONE;
respbuf[p + 2] = i;
p += 3;
}
}
filter = 0x10000;
for (int i = 0; i < 5; ++i, filter <<= 1) {
for (int i = 0; i < 7; ++i, filter <<= 1) {
if (selected_field & filter) {
respbuf[p] = mainGame->LocalPlayer(1);
respbuf[p + 1] = 0x4;
respbuf[p + 1] = LOCATION_MZONE;
respbuf[p + 2] = i;
p += 3;
}
......@@ -1390,7 +1390,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
for (int i = 0; i < 8; ++i, filter <<= 1) {
if (selected_field & filter) {
respbuf[p] = mainGame->LocalPlayer(1);
respbuf[p + 1] = 0x8;
respbuf[p + 1] = LOCATION_SZONE;
respbuf[p + 2] = i;
p += 3;
}
......@@ -1916,49 +1916,49 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
switch(event.KeyInput.Key) {
case irr::KEY_F1:
loc_id = 1004;
for(int32 i = (int32)grave[0].size() - 1; i >= 0 ; --i)
display_cards.push_back(grave[0][i]);
for(auto it = grave[0].rbegin(); it != grave[0].rend(); ++it)
display_cards.push_back(*it);
break;
case irr::KEY_F2:
loc_id = 1005;
for(int32 i = (int32)remove[0].size() - 1; i >= 0 ; --i)
display_cards.push_back(remove[0][i]);
for(auto it = remove[0].rbegin(); it != remove[0].rend(); ++it)
display_cards.push_back(*it);
break;
case irr::KEY_F3:
loc_id = 1006;
for(int32 i = (int32)extra[0].size() - 1; i >= 0 ; --i)
display_cards.push_back(extra[0][i]);
for(auto it = extra[0].rbegin(); it != extra[0].rend(); ++it)
display_cards.push_back(*it);
break;
case irr::KEY_F4:
loc_id = 1007;
for(int32 i = 0; i <= 4 ; ++i) {
if(mzone[0][i] && mzone[0][i]->overlayed.size()) {
for(int32 j = 0; j <= (int32)mzone[0][i]->overlayed.size() - 1 ; ++j)
display_cards.push_back(mzone[0][i]->overlayed[j]);
for(auto it = mzone[0].begin(); it != mzone[0].end(); ++it) {
if(*it) {
for(auto oit = (*it)->overlayed.begin(); oit != (*it)->overlayed.end(); ++oit)
display_cards.push_back(*oit);
}
}
break;
case irr::KEY_F5:
loc_id = 1004;
for(int32 i = (int32)grave[1].size() - 1; i >= 0 ; --i)
display_cards.push_back(grave[1][i]);
for(auto it = grave[1].rbegin(); it != grave[1].rend(); ++it)
display_cards.push_back(*it);
break;
case irr::KEY_F6:
loc_id = 1005;
for(int32 i = (int32)remove[1].size() - 1; i >= 0 ; --i)
display_cards.push_back(remove[1][i]);
for(auto it = remove[1].rbegin(); it != remove[1].rend(); ++it)
display_cards.push_back(*it);
break;
case irr::KEY_F7:
loc_id = 1006;
for(int32 i = (int32)extra[1].size() - 1; i >= 0 ; --i)
display_cards.push_back(extra[1][i]);
for(auto it = extra[1].rbegin(); it != extra[1].rend(); ++it)
display_cards.push_back(*it);
break;
case irr::KEY_F8:
loc_id = 1007;
for(int32 i = 0; i <= 4 ; ++i) {
if(mzone[1][i] && mzone[1][i]->overlayed.size()) {
for(int32 j = 0; j <= (int32)mzone[1][i]->overlayed.size() - 1 ; ++j)
display_cards.push_back(mzone[1][i]->overlayed[j]);
for(auto it = mzone[1].begin(); it != mzone[1].end(); ++it) {
if(*it) {
for(auto oit = (*it)->overlayed.begin(); oit != (*it)->overlayed.end(); ++oit)
display_cards.push_back(*oit);
}
}
break;
......@@ -2128,6 +2128,28 @@ void ClientField::GetHoverField(int x, int y) {
hovered_controler = 0;
hovered_location = LOCATION_MZONE;
hovered_sequence = sequence;
} else if(boardy >= matManager.vFieldMzone[0][5][0].Pos.Y && boardy <= matManager.vFieldMzone[0][5][2].Pos.Y) {
if(sequence == 1) {
if(usable_exmzone != 6) {
hovered_controler = 0;
hovered_location = LOCATION_MZONE;
hovered_sequence = 5;
} else {
hovered_controler = 1;
hovered_location = LOCATION_MZONE;
hovered_sequence = 6;
}
} else if(sequence == 3) {
if(usable_exmzone != 5) {
hovered_controler = 0;
hovered_location = LOCATION_MZONE;
hovered_sequence = 6;
} else {
hovered_controler = 1;
hovered_location = LOCATION_MZONE;
hovered_sequence = 5;
}
}
} else if(boardy >= matManager.vFieldMzone[1][0][2].Pos.Y && boardy <= matManager.vFieldMzone[1][0][0].Pos.Y) {
hovered_controler = 1;
hovered_location = LOCATION_MZONE;
......
......@@ -91,6 +91,7 @@ public:
void DrawCards();
void DrawCard(ClientCard* pcard);
void DrawMisc();
void DrawStatus(ClientCard* pcard, int x1, int y1, int x2, int y2);
void DrawGUI();
void DrawSpec();
void ShowElement(irr::gui::IGUIElement* element, int autoframe = 0);
......
......@@ -17,7 +17,7 @@ Materials::Materials() {
SetS3DVertex(vCardOutliner, 0.37f, -0.54f, -0.375f, 0.54f, 0, 1, 0, 0, 1, 1);
SetS3DVertex(vCardBack, 0.35f, -0.5f, -0.35f, 0.5f, 0, -1, 0, 0, 1, 1);
SetS3DVertex(vSymbol, -0.35f, -0.35f, 0.35f, 0.35f, 0.01f, 1, 0, 0, 1, 1);
SetS3DVertex(vNegate, -0.25f, -0.28f, 0.25f, 0.22f, 0, 1, 0, 0, 1, 1);
SetS3DVertex(vNegate, -0.25f, -0.28f, 0.25f, 0.22f, 0.01f, 1, 0, 0, 1, 1);
SetS3DVertex(vChainNum, -0.35f, -0.35f, 0.35f, 0.35f, 0, 1, 0, 0, 0.19375f, 0.2421875f);
SetS3DVertex(vActivate, -0.5f, -0.5f, 0.5f, 0.5f, 0, 1, 0, 0, 1, 1);
SetS3DVertex(vField, -1.0f, -4.0f, 9.0f, 4.0f, 0, 1, 0, 0, 1, 1);
......@@ -188,6 +188,8 @@ Materials::Materials() {
SetS3DVertex(vFieldRemove[0], 7.9f, 0.1f, 8.7f, 1.3f, 0, 1, 0, 0, 0, 0);
for(int i = 0; i < 5; ++i)
SetS3DVertex(vFieldMzone[0][i], 1.2f + i * 1.1f, 0.8f, 2.3f + i * 1.1f, 2.0f, 0, 1, 0, 0, 0, 0);
SetS3DVertex(vFieldMzone[0][5], 2.3f, -0.6f, 3.4f, 0.6f, 0, 1, 0, 0, 0, 0);
SetS3DVertex(vFieldMzone[0][6], 4.5f, -0.6f, 5.6f, 0.6f, 0, 1, 0, 0, 0, 0);
for(int i = 0; i < 5; ++i)
SetS3DVertex(vFieldSzone[0][i], 1.2f + i * 1.1f, 2.0f, 2.3f + i * 1.1f, 3.2f, 0, 1, 0, 0, 0, 0);
//field
......@@ -203,6 +205,8 @@ Materials::Materials() {
SetS3DVertex(vFieldRemove[1], 0.0f, -0.1f, -0.8f, -1.3f, 0, 1, 0, 0, 0, 0);
for(int i = 0; i < 5; ++i)
SetS3DVertex(vFieldMzone[1][i], 6.7f - i * 1.1f, -0.8f, 5.6f - i * 1.1f, -2.0f, 0, 1, 0, 0, 0, 0);
SetS3DVertex(vFieldMzone[1][5], 5.6f, 0.6f, 4.5f, -0.6f, 0, 1, 0, 0, 0, 0);
SetS3DVertex(vFieldMzone[1][6], 3.4f, 0.6f, 2.3f, -0.6f, 0, 1, 0, 0, 0, 0);
for(int i = 0; i < 5; ++i)
SetS3DVertex(vFieldSzone[1][i], 6.7f - i * 1.1f, -2.0f, 5.6f - i * 1.1f, -3.2f, 0, 1, 0, 0, 0, 0);
//field
......
......@@ -24,7 +24,7 @@ public:
S3DVertex vFieldGrave[2][4];
S3DVertex vFieldExtra[2][4];
S3DVertex vFieldRemove[2][4];
S3DVertex vFieldMzone[2][5][4];
S3DVertex vFieldMzone[2][7][4];
S3DVertex vFieldSzone[2][8][4];
irr::core::vector3df vFieldContiAct[4];
S3DVertex vArrow[40];
......
......@@ -263,7 +263,7 @@
!system 1233 每回合抽卡:
!system 1234 主机名称:
!system 1235 主机密码:
!system 1236 旧规则(先攻抽卡、起动效果优先权等)
!system 1236 规则:
!system 1237 每回合时间:
!system 1240 OCG
!system 1241 TCG
......@@ -278,6 +278,10 @@
!system 1253 当前观战人数:
!system 1254 卡组选择:
!system 1255 准备完毕!
!system 1260 大师规则
!system 1261 大师规则2
!system 1262 大师规则3
!system 1263 大师规则4
!system 1270 卡片信息
!system 1271 消息记录
!system 1272 清除记录
......
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