Commit 5e17c0d1 authored by nanahira's avatar nanahira

Merge branch 'master' of github.com:Fluorohydride/ygopro into develop

parents 7c5e6244 3415b1f5
...@@ -83,6 +83,11 @@ void ClientField::Clear() { ...@@ -83,6 +83,11 @@ void ClientField::Clear() {
for(auto cit = extra[i].begin(); cit != extra[i].end(); ++cit) for(auto cit = extra[i].begin(); cit != extra[i].end(); ++cit)
delete *cit; delete *cit;
extra[i].clear(); extra[i].clear();
deck_act[i] = false;
grave_act[i] = false;
remove_act[i] = false;
extra_act[i] = false;
pzone_act[i] = false;
} }
for(auto cit = limbo_temp.begin(); cit != limbo_temp.end(); ++cit) for(auto cit = limbo_temp.begin(); cit != limbo_temp.end(); ++cit)
delete *cit; delete *cit;
...@@ -111,12 +116,6 @@ void ClientField::Clear() { ...@@ -111,12 +116,6 @@ void ClientField::Clear() {
hovered_controler = 0; hovered_controler = 0;
hovered_location = 0; hovered_location = 0;
hovered_sequence = 0; hovered_sequence = 0;
deck_act = false;
grave_act = false;
remove_act = false;
extra_act = false;
pzone_act[0] = false;
pzone_act[1] = false;
conti_act = false; conti_act = false;
deck_reversed = false; deck_reversed = false;
cant_check_grave = false; cant_check_grave = false;
...@@ -367,13 +366,14 @@ void ClientField::ClearCommandFlag() { ...@@ -367,13 +366,14 @@ void ClientField::ClearCommandFlag() {
(*cit)->cmdFlag = 0; (*cit)->cmdFlag = 0;
for(auto cit = attackable_cards.begin(); cit != attackable_cards.end(); ++cit) for(auto cit = attackable_cards.begin(); cit != attackable_cards.end(); ++cit)
(*cit)->cmdFlag = 0; (*cit)->cmdFlag = 0;
for(int i = 0; i < 2; ++i) {
deck_act[i] = false;
extra_act[i] = false;
grave_act[i] = false;
remove_act[i] = false;
pzone_act[i] = false;
}
conti_cards.clear(); conti_cards.clear();
deck_act = false;
extra_act = false;
grave_act = false;
remove_act = false;
pzone_act[0] = false;
pzone_act[1] = false;
conti_act = false; conti_act = false;
} }
void ClientField::ClearSelect() { void ClientField::ClearSelect() {
...@@ -401,11 +401,14 @@ void ClientField::ClearChainSelect() { ...@@ -401,11 +401,14 @@ void ClientField::ClearChainSelect() {
(*cit)->is_selectable = false; (*cit)->is_selectable = false;
(*cit)->is_selected = false; (*cit)->is_selected = false;
} }
for(int i = 0; i < 2; ++i) {
deck_act[i] = false;
extra_act[i] = false;
grave_act[i] = false;
remove_act[i] = false;
pzone_act[i] = false;
}
conti_cards.clear(); conti_cards.clear();
deck_act = false;
grave_act = false;
remove_act = false;
extra_act = false;
conti_act = false; conti_act = false;
} }
// needs to be synchronized with EGET_SCROLL_BAR_CHANGED // needs to be synchronized with EGET_SCROLL_BAR_CHANGED
......
...@@ -78,11 +78,11 @@ public: ...@@ -78,11 +78,11 @@ public:
std::vector<ClientCard*> display_cards; std::vector<ClientCard*> display_cards;
std::vector<int> sort_list; std::vector<int> sort_list;
std::map<int, int> player_desc_hints[2]; std::map<int, int> player_desc_hints[2];
bool grave_act{ false }; bool grave_act[2]{ false };
bool remove_act{ false }; bool remove_act[2]{ false };
bool deck_act{ false }; bool deck_act[2]{ false };
bool extra_act{ false }; bool extra_act[2]{ false };
bool pzone_act[2]{}; bool pzone_act[2]{ false };
bool conti_act{ false }; bool conti_act{ false };
bool chain_forced{ false }; bool chain_forced{ false };
ChainInfo current_chain; ChainInfo current_chain;
......
...@@ -467,43 +467,38 @@ void Game::DrawMisc() { ...@@ -467,43 +467,38 @@ void Game::DrawMisc() {
im.setRotationRadians(act_rot); im.setRotationRadians(act_rot);
matManager.mTexture.setTexture(0, imageManager.tAct); matManager.mTexture.setTexture(0, imageManager.tAct);
driver->setMaterial(matManager.mTexture); driver->setMaterial(matManager.mTexture);
if(dField.deck_act) { for(int player = 0; player < 2; ++player) {
im.setTranslation(irr::core::vector3df((matManager.vFieldDeck[0][0].Pos.X + matManager.vFieldDeck[0][1].Pos.X) / 2, if(dField.deck_act[player]) {
(matManager.vFieldDeck[0][0].Pos.Y + matManager.vFieldDeck[0][2].Pos.Y) / 2, dField.deck[0].size() * 0.01f + 0.02f)); im.setTranslation(irr::core::vector3df((matManager.vFieldDeck[player][0].Pos.X + matManager.vFieldDeck[player][1].Pos.X) / 2,
(matManager.vFieldDeck[player][0].Pos.Y + matManager.vFieldDeck[player][2].Pos.Y) / 2, dField.deck[player].size() * 0.01f + 0.02f));
driver->setTransform(irr::video::ETS_WORLD, im); driver->setTransform(irr::video::ETS_WORLD, im);
driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2);
} }
if(dField.grave_act) { if(dField.grave_act[player]) {
im.setTranslation(irr::core::vector3df((matManager.vFieldGrave[0][rule][0].Pos.X + matManager.vFieldGrave[0][rule][1].Pos.X) / 2, im.setTranslation(irr::core::vector3df((matManager.vFieldGrave[player][rule][0].Pos.X + matManager.vFieldGrave[player][rule][1].Pos.X) / 2,
(matManager.vFieldGrave[0][rule][0].Pos.Y + matManager.vFieldGrave[0][rule][2].Pos.Y) / 2, dField.grave[0].size() * 0.01f + 0.02f)); (matManager.vFieldGrave[player][rule][0].Pos.Y + matManager.vFieldGrave[player][rule][2].Pos.Y) / 2, dField.grave[player].size() * 0.01f + 0.02f));
driver->setTransform(irr::video::ETS_WORLD, im); driver->setTransform(irr::video::ETS_WORLD, im);
driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2);
} }
if(dField.remove_act) { if(dField.remove_act[player]) {
im.setTranslation(irr::core::vector3df((matManager.vFieldRemove[0][rule][0].Pos.X + matManager.vFieldRemove[0][rule][1].Pos.X) / 2, im.setTranslation(irr::core::vector3df((matManager.vFieldRemove[player][rule][0].Pos.X + matManager.vFieldRemove[player][rule][1].Pos.X) / 2,
(matManager.vFieldRemove[0][rule][0].Pos.Y + matManager.vFieldRemove[0][rule][2].Pos.Y) / 2, dField.remove[0].size() * 0.01f + 0.02f)); (matManager.vFieldRemove[player][rule][0].Pos.Y + matManager.vFieldRemove[player][rule][2].Pos.Y) / 2, dField.remove[player].size() * 0.01f + 0.02f));
driver->setTransform(irr::video::ETS_WORLD, im); driver->setTransform(irr::video::ETS_WORLD, im);
driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2);
} }
if(dField.extra_act) { if(dField.extra_act[player]) {
im.setTranslation(irr::core::vector3df((matManager.vFieldExtra[0][0].Pos.X + matManager.vFieldExtra[0][1].Pos.X) / 2, im.setTranslation(irr::core::vector3df((matManager.vFieldExtra[player][0].Pos.X + matManager.vFieldExtra[player][1].Pos.X) / 2,
(matManager.vFieldExtra[0][0].Pos.Y + matManager.vFieldExtra[0][2].Pos.Y) / 2, dField.extra[0].size() * 0.01f + 0.02f)); (matManager.vFieldExtra[player][0].Pos.Y + matManager.vFieldExtra[player][2].Pos.Y) / 2, dField.extra[player].size() * 0.01f + 0.02f));
driver->setTransform(irr::video::ETS_WORLD, im); driver->setTransform(irr::video::ETS_WORLD, im);
driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2);
} }
if(dField.pzone_act[0]) { if(dField.pzone_act[player]) {
int seq = dInfo.duel_rule >= 4 ? 0 : 6; int seq = dInfo.duel_rule >= 4 ? 0 : 6;
im.setTranslation(irr::core::vector3df((matManager.vFieldSzone[0][seq][rule][0].Pos.X + matManager.vFieldSzone[0][seq][rule][1].Pos.X) / 2, im.setTranslation(irr::core::vector3df((matManager.vFieldSzone[player][seq][rule][0].Pos.X + matManager.vFieldSzone[player][seq][rule][1].Pos.X) / 2,
(matManager.vFieldSzone[0][seq][rule][0].Pos.Y + matManager.vFieldSzone[0][seq][rule][2].Pos.Y) / 2, 0.03f)); (matManager.vFieldSzone[player][seq][rule][0].Pos.Y + matManager.vFieldSzone[player][seq][rule][2].Pos.Y) / 2, 0.03f));
driver->setTransform(irr::video::ETS_WORLD, im); driver->setTransform(irr::video::ETS_WORLD, im);
driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2); driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2);
} }
if(dField.pzone_act[1]) {
int seq = dInfo.duel_rule >= 4 ? 0 : 6;
im.setTranslation(irr::core::vector3df((matManager.vFieldSzone[1][seq][rule][0].Pos.X + matManager.vFieldSzone[1][seq][rule][1].Pos.X) / 2,
(matManager.vFieldSzone[1][seq][rule][0].Pos.Y + matManager.vFieldSzone[1][seq][rule][2].Pos.Y) / 2, 0.03f));
driver->setTransform(irr::video::ETS_WORLD, im);
driver->drawVertexPrimitiveList(matManager.vActivate, 4, matManager.iRectangle, 2);
} }
if(dField.conti_act) { if(dField.conti_act) {
irr::core::vector3df pos = irr::core::vector3df((matManager.vFieldContiAct[0].X + matManager.vFieldContiAct[1].X) / 2, irr::core::vector3df pos = irr::core::vector3df((matManager.vFieldContiAct[0].X + matManager.vFieldContiAct[1].X) / 2,
......
...@@ -1495,14 +1495,12 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -1495,14 +1495,12 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
mainGame->dField.conti_act = true; mainGame->dField.conti_act = true;
} else { } else {
pcard->cmdFlag |= COMMAND_ACTIVATE; pcard->cmdFlag |= COMMAND_ACTIVATE;
if(pcard->controler == 0) {
if(pcard->location == LOCATION_GRAVE) if(pcard->location == LOCATION_GRAVE)
mainGame->dField.grave_act = true; mainGame->dField.grave_act[con] = true;
else if(pcard->location == LOCATION_REMOVED) else if(pcard->location == LOCATION_REMOVED)
mainGame->dField.remove_act = true; mainGame->dField.remove_act[con] = true;
else if(pcard->location == LOCATION_EXTRA) else if(pcard->location == LOCATION_EXTRA)
mainGame->dField.extra_act = true; mainGame->dField.extra_act[con] = true;
}
} }
} }
mainGame->dField.attackable_cards.clear(); mainGame->dField.attackable_cards.clear();
...@@ -1560,17 +1558,17 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -1560,17 +1558,17 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
pcard->cmdFlag |= COMMAND_SPSUMMON; pcard->cmdFlag |= COMMAND_SPSUMMON;
if (pcard->location == LOCATION_DECK) { if (pcard->location == LOCATION_DECK) {
pcard->SetCode(code); pcard->SetCode(code);
mainGame->dField.deck_act = true; mainGame->dField.deck_act[con] = true;
} else if (pcard->location == LOCATION_GRAVE) } else if (pcard->location == LOCATION_GRAVE)
mainGame->dField.grave_act = true; mainGame->dField.grave_act[con] = true;
else if (pcard->location == LOCATION_REMOVED) else if (pcard->location == LOCATION_REMOVED)
mainGame->dField.remove_act = true; mainGame->dField.remove_act[con] = true;
else if (pcard->location == LOCATION_EXTRA) else if (pcard->location == LOCATION_EXTRA)
mainGame->dField.extra_act = true; mainGame->dField.extra_act[con] = true;
else { else {
int left_seq = mainGame->dInfo.duel_rule >= 4 ? 0 : 6; int left_seq = mainGame->dInfo.duel_rule >= 4 ? 0 : 6;
if (pcard->location == LOCATION_SZONE && pcard->sequence == left_seq && (pcard->type & TYPE_PENDULUM) && !pcard->equipTarget) if (pcard->location == LOCATION_SZONE && pcard->sequence == left_seq && (pcard->type & TYPE_PENDULUM) && !pcard->equipTarget)
mainGame->dField.pzone_act[pcard->controler] = true; mainGame->dField.pzone_act[con] = true;
} }
} }
mainGame->dField.reposable_cards.clear(); mainGame->dField.reposable_cards.clear();
...@@ -1630,14 +1628,12 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -1630,14 +1628,12 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
mainGame->dField.conti_act = true; mainGame->dField.conti_act = true;
} else { } else {
pcard->cmdFlag |= COMMAND_ACTIVATE; pcard->cmdFlag |= COMMAND_ACTIVATE;
if(pcard->controler == 0) {
if(pcard->location == LOCATION_GRAVE) if(pcard->location == LOCATION_GRAVE)
mainGame->dField.grave_act = true; mainGame->dField.grave_act[con] = true;
else if(pcard->location == LOCATION_REMOVED) else if(pcard->location == LOCATION_REMOVED)
mainGame->dField.remove_act = true; mainGame->dField.remove_act[con] = true;
else if(pcard->location == LOCATION_EXTRA) else if(pcard->location == LOCATION_EXTRA)
mainGame->dField.extra_act = true; mainGame->dField.extra_act[con] = true;
}
} }
} }
if(BufferIO::ReadUInt8(pbuf)) { if(BufferIO::ReadUInt8(pbuf)) {
...@@ -1924,13 +1920,13 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -1924,13 +1920,13 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
pcard->cmdFlag |= COMMAND_ACTIVATE; pcard->cmdFlag |= COMMAND_ACTIVATE;
if(pcard->location == LOCATION_DECK) { if(pcard->location == LOCATION_DECK) {
pcard->SetCode(code); pcard->SetCode(code);
mainGame->dField.deck_act = true; mainGame->dField.deck_act[c] = true;
} else if(l == LOCATION_GRAVE) } else if(l == LOCATION_GRAVE)
mainGame->dField.grave_act = true; mainGame->dField.grave_act[c] = true;
else if(l == LOCATION_REMOVED) else if(l == LOCATION_REMOVED)
mainGame->dField.remove_act = true; mainGame->dField.remove_act[c] = true;
else if(l == LOCATION_EXTRA) else if(l == LOCATION_EXTRA)
mainGame->dField.extra_act = true; mainGame->dField.extra_act[c] = true;
else if(l == LOCATION_OVERLAY) else if(l == LOCATION_OVERLAY)
panelmode = true; panelmode = true;
} }
......
project "lua" project "lua"
kind "StaticLib" kind "StaticLib"
compileas "C++"
files { "src/*.c", "src/*.h", "src/*.hpp" } files { "src/*.c", "src/*.h" }
removefiles { "src/lua.c", "src/luac.c" } removefiles { "src/lua.c", "src/luac.c", "src/linit.c", "src/onelua.c" }
filter "action:vs*"
buildoptions { "/TP" }
filter "not action:vs*"
buildoptions { "-x c++" }
filter "configurations:Debug" filter "configurations:Debug"
defines { "LUA_USE_APICHECK" } defines { "LUA_USE_APICHECK" }
......
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