Commit 3fde35b0 authored by nanahira's avatar nanahira

Merge branch 'master' into another

parents 3a23fcf1 7998cf43
...@@ -90,17 +90,6 @@ jobs: ...@@ -90,17 +90,6 @@ jobs:
7z x ${{ steps.sqlite.outputs.filepath }} 7z x ${{ steps.sqlite.outputs.filepath }}
move sqlite-amalgamation-3490100 sqlite3 move sqlite-amalgamation-3490100 sqlite3
- name: Download irrKlang
id: irrKlang
uses: mercury233/action-cache-download-file@v1.0.0
with:
url: https://www.ambiera.at/downloads/irrKlang-32bit-1.6.0.zip
- name: Extract irrKlang
run: |
7z x ${{ steps.irrKlang.outputs.filepath }}
move irrKlang-1.6.0 irrKlang
- name: Download irrlicht - name: Download irrlicht
run: | run: |
git clone --depth=1 https://github.com/mercury233/irrlicht git clone --depth=1 https://github.com/mercury233/irrlicht
...@@ -232,7 +221,6 @@ jobs: ...@@ -232,7 +221,6 @@ jobs:
- name: Use premake to generate make files - name: Use premake to generate make files
run: | run: |
./premake5 gmake \ ./premake5 gmake \
--no-use-irrklang \
--freetype-include-dir="/usr/include/freetype2" --freetype-include-dir="/usr/include/freetype2"
- name: Make - name: Make
...@@ -327,7 +315,6 @@ jobs: ...@@ -327,7 +315,6 @@ jobs:
run: | run: |
./premake5 gmake \ ./premake5 gmake \
--cc=clang \ --cc=clang \
--no-use-irrklang \
--freetype-include-dir="/usr/local/include/freetype2" \ --freetype-include-dir="/usr/local/include/freetype2" \
--irrlicht-include-dir="../irrlicht/include" \ --irrlicht-include-dir="../irrlicht/include" \
--irrlicht-lib-dir="../irrlicht/source/Irrlicht/MacOSX/build/Release" --irrlicht-lib-dir="../irrlicht/source/Irrlicht/MacOSX/build/Release"
...@@ -337,7 +324,6 @@ jobs: ...@@ -337,7 +324,6 @@ jobs:
run: | run: |
./premake5 gmake \ ./premake5 gmake \
--cc=clang \ --cc=clang \
--no-use-irrklang \
--event-include-dir="/opt/homebrew/include" \ --event-include-dir="/opt/homebrew/include" \
--event-lib-dir="/opt/homebrew/lib" \ --event-lib-dir="/opt/homebrew/lib" \
--freetype-include-dir="/opt/homebrew/include/freetype2" \ --freetype-include-dir="/opt/homebrew/include/freetype2" \
......
...@@ -54,13 +54,9 @@ mat_linux: ...@@ -54,13 +54,9 @@ mat_linux:
script: script:
- apt update; apt -y install git wget tar - apt update; apt -y install git wget tar
- git clone --depth=1 https://code.mycard.moe/mycard/irrlicht-new irrlicht - git clone --depth=1 https://code.mycard.moe/mycard/irrlicht-new irrlicht
- wget -O - https://cdn01.moecube.com/ygopro-build-materials/premake-5.0.0-beta2-linux.tar.gz | tar zfx -
- env PROCESSOR_COUNT=$(nproc) ./.ci/libevent-prebuild.sh
artifacts: artifacts:
paths: paths:
- premake5
- irrlicht - irrlicht
- libevent-stable
mat_macos: mat_macos:
stage: prepare stage: prepare
...@@ -68,7 +64,8 @@ mat_macos: ...@@ -68,7 +64,8 @@ mat_macos:
- linux - linux
script: script:
- apt update; apt -y install wget tar - apt update; apt -y install wget tar
- wget -O - https://cdn01.moecube.com/ygopro-build-materials/premake-5.0.0-beta2-macosx.tar.gz | tar zfx - - wget -O - https://cdn01.moecube.com/ygopro-build-materials/premake-5.0.0-beta5-macosx.tar.gz | tar zfx -
- chmod +x premake5
- mkdir irrlicht - mkdir irrlicht
- cd irrlicht - cd irrlicht
- wget -O - https://cdn01.moecube.com/ygopro-build-materials/irrlicht-mycard-mac.tar.gz | tar zfx - - wget -O - https://cdn01.moecube.com/ygopro-build-materials/irrlicht-mycard-mac.tar.gz | tar zfx -
...@@ -85,8 +82,8 @@ mat_windows: ...@@ -85,8 +82,8 @@ mat_windows:
script: script:
- apt update; apt -y install wget tar patch p7zip-full - apt update; apt -y install wget tar patch p7zip-full
# premake5.exe # premake5.exe
- wget https://cdn01.moecube.com/ygopro-build-materials/premake-5.0.0-beta2-windows.zip - wget https://cdn01.moecube.com/ygopro-build-materials/premake-5.0.0-beta5-windows.zip
- 7z x -y premake-5.0.0-beta2-windows.zip - 7z x -y premake-5.0.0-beta5-windows.zip
# event # event
- wget -O - https://cdn01.moecube.com/ygopro-build-materials/libevent-2.0.22-stable.tar.gz | tar zfx - - wget -O - https://cdn01.moecube.com/ygopro-build-materials/libevent-2.0.22-stable.tar.gz | tar zfx -
- mv libevent-2.0.22-stable event - mv libevent-2.0.22-stable event
...@@ -125,20 +122,20 @@ exec_windows: ...@@ -125,20 +122,20 @@ exec_windows:
paths: paths:
- ygopro.exe - ygopro.exe
exec_linux: .exec_linux:
extends: ._exec_build extends: ._exec_build
tags: tags:
- linux - linux
image: git-registry.mycard.moe/mycard/docker-runner-base:debian11 image: git-registry.moenext.com/mycard/docker-ygopro-builder
dependencies: dependencies:
- mat_common - mat_common
- mat_linux - mat_linux
- mat_submodules - mat_submodules
variables:
EVENT_INCLUDE_DIR: /usr/share/libevent-stable/include
EVENT_LIB_DIR: /usr/share/libevent-stable/lib
script: script:
- apt update; apt -y install git build-essential libgl1-mesa-dev libglu-dev libxxf86vm-dev - premake5 gmake --build-freetype --build-sqlite --build-irrlicht
- export EVENT_INCLUDE_DIR=$PWD/libevent-stable/include
- export EVENT_LIB_DIR=$PWD/libevent-stable/lib
- ./premake5 gmake --build-freetype --build-sqlite --build-irrlicht
- cd build - cd build
- make config=release -j$(nproc) - make config=release -j$(nproc)
- cd .. - cd ..
...@@ -148,6 +145,14 @@ exec_linux: ...@@ -148,6 +145,14 @@ exec_linux:
paths: paths:
- ygopro - ygopro
exec_linux:
extends: .exec_linux
exec_linuxarm:
extends: .exec_linux
tags:
- arm
._exec_macos_platform: ._exec_macos_platform:
extends: ._exec_build extends: ._exec_build
dependencies: dependencies:
...@@ -382,6 +387,15 @@ assets_en-US: ...@@ -382,6 +387,15 @@ assets_en-US:
- assets_zh-CN - assets_zh-CN
- mat_submodules - mat_submodules
._pack_assets_linuxarm_zh-CN:
extends: ._pack
dependencies:
- assets
- assets_nonwindows
- exec_linuxarm
- assets_zh-CN
- mat_submodules
._pack_assets_macos_zh-CN: ._pack_assets_macos_zh-CN:
extends: ._pack extends: ._pack
dependencies: dependencies:
...@@ -409,6 +423,15 @@ assets_en-US: ...@@ -409,6 +423,15 @@ assets_en-US:
- assets_en-US - assets_en-US
- mat_submodules - mat_submodules
._pack_assets_linuxarm_en-US:
extends: ._pack
dependencies:
- assets
- assets_nonwindows
- exec_linuxarm
- assets_en-US
- mat_submodules
._pack_assets_macos_en-US: ._pack_assets_macos_en-US:
extends: ._pack extends: ._pack
dependencies: dependencies:
...@@ -502,6 +525,13 @@ pack_linux_zh-CN_gz: ...@@ -502,6 +525,13 @@ pack_linux_zh-CN_gz:
- ._pack_format_gz - ._pack_format_gz
- ._locale_zh-CN - ._locale_zh-CN
pack_linuxarm_zh-CN_gz:
extends:
- ._pack_assets_linuxarm_zh-CN
- ._pack_script_linux
- ._pack_format_gz
- ._locale_zh-CN
#pack_linux_zh-CN_zst: #pack_linux_zh-CN_zst:
# extends: # extends:
# - ._pack_assets_linux_zh-CN # - ._pack_assets_linux_zh-CN
...@@ -551,6 +581,13 @@ pack_linux_en-US_gz: ...@@ -551,6 +581,13 @@ pack_linux_en-US_gz:
- ._pack_format_gz - ._pack_format_gz
- ._locale_en-US - ._locale_en-US
pack_linuxarm_en-US_gz:
extends:
- ._pack_assets_linuxarm_en-US
- ._pack_script_linux
- ._pack_format_gz
- ._locale_en-US
#pack_linux_en-US_zst: #pack_linux_en-US_zst:
# extends: # extends:
# - ._pack_assets_linux_en-US # - ._pack_assets_linux_en-US
......
No preview for this file type
...@@ -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;
......
...@@ -143,7 +143,8 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) { ...@@ -143,7 +143,8 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
(mainGame->wQuery->isVisible() && id != BUTTON_YES && id != BUTTON_NO) || (mainGame->wQuery->isVisible() && id != BUTTON_YES && id != BUTTON_NO) ||
(mainGame->wLinkMarks->isVisible() && id != BUTTON_MARKERS_OK) || (mainGame->wLinkMarks->isVisible() && id != BUTTON_MARKERS_OK) ||
(mainGame->wDMQuery->isVisible() && id != BUTTON_DM_OK && id != BUTTON_DM_CANCEL) || (mainGame->wDMQuery->isVisible() && id != BUTTON_DM_OK && id != BUTTON_DM_CANCEL) ||
(mainGame->wDeckManage->isVisible() && !(id >= WINDOW_DECK_MANAGE && id < COMBOBOX_LFLIST))) (mainGame->wDeckManage->isVisible() && !(id >= WINDOW_DECK_MANAGE && id < COMBOBOX_LFLIST)) ||
(mainGame->wDeckCode->isVisible() && id != BUTTON_DECK_CODE_SAVE && id != BUTTON_DECK_CODE_CANCEL))
&& event.GUIEvent.EventType != irr::gui::EGET_LISTBOX_CHANGED && event.GUIEvent.EventType != irr::gui::EGET_LISTBOX_CHANGED
&& event.GUIEvent.EventType != irr::gui::EGET_COMBO_BOX_CHANGED) { && event.GUIEvent.EventType != irr::gui::EGET_COMBO_BOX_CHANGED) {
if(mainGame->wDMQuery->isVisible()) if(mainGame->wDMQuery->isVisible())
......
...@@ -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,
......
...@@ -1554,14 +1554,12 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -1554,14 +1554,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();
...@@ -1619,17 +1617,17 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -1619,17 +1617,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();
...@@ -1689,14 +1687,12 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -1689,14 +1687,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)) {
...@@ -1983,13 +1979,13 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) { ...@@ -1983,13 +1979,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;
} }
......
...@@ -227,7 +227,7 @@ bool Game::Initialize() { ...@@ -227,7 +227,7 @@ bool Game::Initialize() {
SetWindowsIcon(); SetWindowsIcon();
//main menu //main menu
wchar_t strbuf[256]; wchar_t strbuf[256];
myswprintf(strbuf, L"KoishiPro %X.0%X.%X Moon", (PRO_VERSION & 0xf000U) >> 12, (PRO_VERSION & 0x0ff0U) >> 4, PRO_VERSION & 0x000fU); myswprintf(strbuf, L"KoishiPro %X.0%X.%X Overdose", (PRO_VERSION & 0xf000U) >> 12, (PRO_VERSION & 0x0ff0U) >> 4, PRO_VERSION & 0x000fU);
wMainMenu = env->addWindow(irr::core::rect<irr::s32>(370, 200, 650, 415), false, strbuf); wMainMenu = env->addWindow(irr::core::rect<irr::s32>(370, 200, 650, 415), false, strbuf);
wMainMenu->getCloseButton()->setVisible(false); wMainMenu->getCloseButton()->setVisible(false);
btnLanMode = env->addButton(irr::core::rect<irr::s32>(10, 30, 270, 60), wMainMenu, BUTTON_LAN_MODE, dataManager.GetSysString(1200)); btnLanMode = env->addButton(irr::core::rect<irr::s32>(10, 30, 270, 60), wMainMenu, BUTTON_LAN_MODE, dataManager.GetSysString(1200));
......
Subproject commit 39de78189126c70aa25f927d1033599f4b501ae7 Subproject commit b2d1a11ded55b3efca59065a63ef55133200a6fc
...@@ -16,8 +16,8 @@ VALUE "InternalName", "KoishiPro" ...@@ -16,8 +16,8 @@ VALUE "InternalName", "KoishiPro"
VALUE "LegalCopyright", "Copyright (C) 2023 Nanahira" VALUE "LegalCopyright", "Copyright (C) 2023 Nanahira"
VALUE "OriginalFilename", "ygopro.exe" VALUE "OriginalFilename", "ygopro.exe"
VALUE "ProductName", "KoishiPro" VALUE "ProductName", "KoishiPro"
VALUE "FileVersion", "Moon" VALUE "FileVersion", "Overdose"
VALUE "ProductVersion", "Moon" VALUE "ProductVersion", "Overdose"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"
......
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/onelua.c" }
filter "action:vs*" if not GetParam("no-lua-safe") then
buildoptions { "/TP" } removefiles { "src/linit.c" }
end
filter "not action:vs*"
buildoptions { "-x c++" }
filter "configurations:Debug" filter "configurations:Debug"
defines { "LUA_USE_APICHECK" } defines { "LUA_USE_APICHECK" }
......
Subproject commit 0e92e4d32b2073615f5bc8005bfba50283844734 Subproject commit 12e42e616bfef3a3e4309df389540e71c8a688d9
...@@ -1257,3 +1257,5 @@ ...@@ -1257,3 +1257,5 @@
!setname 0x1c4 征龙 征竜 !setname 0x1c4 征龙 征竜
!setname 0x1c5 再世 再世 !setname 0x1c5 再世 再世
!setname 0x1c6 统王 ドミナス !setname 0x1c6 统王 ドミナス
!setname 0x1c7 塞勒凯特 Serket
!setname 0x1c8 阿匹卜 Apophis
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