Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
ygopro
Commits
e2c4ebf6
Commit
e2c4ebf6
authored
Mar 18, 2025
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into server-develop
parents
8b7b984e
ef41ff54
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
125 additions
and
139 deletions
+125
-139
.github/workflows/build.yml
.github/workflows/build.yml
+0
-14
.gitlab-ci.yml
.gitlab-ci.yml
+39
-29
appveyor.yml
appveyor.yml
+2
-2
gframe/client_field.cpp
gframe/client_field.cpp
+19
-16
gframe/client_field.h
gframe/client_field.h
+5
-5
gframe/deck_con.cpp
gframe/deck_con.cpp
+2
-1
gframe/drawing.cpp
gframe/drawing.cpp
+32
-37
gframe/duelclient.cpp
gframe/duelclient.cpp
+21
-25
ocgcore
ocgcore
+1
-1
premake/lua/premake5.lua
premake/lua/premake5.lua
+3
-8
script
script
+1
-1
No files found.
.github/workflows/build.yml
View file @
e2c4ebf6
...
@@ -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" \
...
...
.gitlab-ci.yml
View file @
e2c4ebf6
...
@@ -52,13 +52,9 @@ mat_linux:
...
@@ -52,13 +52,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_windows
:
mat_windows
:
stage
:
prepare
stage
:
prepare
...
@@ -67,8 +63,8 @@ mat_windows:
...
@@ -67,8 +63,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-beta
2
-windows.zip
-
wget https://cdn01.moecube.com/ygopro-build-materials/premake-5.0.0-beta
5
-windows.zip
-
7z x -y premake-5.0.0-beta
2
-windows.zip
-
7z x -y premake-5.0.0-beta
5
-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
...
@@ -107,18 +103,17 @@ exec_windows:
...
@@ -107,18 +103,17 @@ exec_windows:
paths
:
paths
:
-
ygopro.exe
-
ygopro.exe
exec_linux
:
.exec_linux_common
:
extends
:
._exec_build
extends
:
._exec_build
tags
:
tags
:
-
linux
-
linux
image
:
git-registry.m
ycard.moe/mycard/docker-runner-base:debian11
image
:
git-registry.m
oenext.com/mycard/docker-ygopro-builder
dependencies
:
dependencies
:
-
mat_common
-
mat_common
-
mat_linux
-
mat_linux
-
mat_submodules
-
mat_submodules
script
:
script
:
-
apt update; apt -y install git build-essential
-
premake5 gmake
-
./premake5 gmake --build-sqlite --server-zip-support
-
cd build
-
cd build
-
make config=release -j$(nproc)
-
make config=release -j$(nproc)
-
cd ..
-
cd ..
...
@@ -128,25 +123,41 @@ exec_linux:
...
@@ -128,25 +123,41 @@ exec_linux:
paths
:
paths
:
-
ygopro
-
ygopro
exec_debian
:
.exec_linux
:
extends
:
._exec_build
extends
:
.exec_linux_common
tags
:
variables
:
-
linux
BUILD_SQLITE
:
'
1'
dependencies
:
SERVER_ZIP_SUPPORT
:
'
1'
-
mat_common
EVENT_INCLUDE_DIR
:
/usr/share/libevent-stable/include
-
mat_linux
EVENT_LIB_DIR
:
/usr/share/libevent-stable/lib
-
mat_submodules
script
:
.exec_debian
:
extends
:
.exec_linux_common
variables
:
BUILD_SQLITE
:
'
1'
SERVER_ZIP_SUPPORT
:
'
1'
before_script
:
-
apt update; apt -y install git build-essential liblua5.3-dev libsqlite3-dev libevent-dev
-
apt update; apt -y install git build-essential liblua5.3-dev libsqlite3-dev libevent-dev
-
./premake5 gmake --lua-deb
-
cd build
.use_arm
:
-
make config=release -j$(nproc)
tags
:
-
cd ..
-
arm
-
mv bin/release/ygopro ./ygopro
-
strip ygopro
exec_linux
:
artifacts
:
extends
:
.exec_linux
paths
:
-
ygopro
exec_debian
:
extends
:
.exec_debian
exec_linuxarm
:
extends
:
-
.exec_linux
-
.use_arm
exec_debianarm
:
extends
:
-
.exec_debian
-
.use_arm
#win_server_pack:
#win_server_pack:
# stage: pack
# stage: pack
...
@@ -158,7 +169,6 @@ exec_debian:
...
@@ -158,7 +169,6 @@ exec_debian:
# - apt update; apt -y install p7zip-full wget
# - apt update; apt -y install p7zip-full wget
# - wget https://nodejs.org/dist/v14.17.0/node-v14.17.0-win-x64.7z
# - wget https://nodejs.org/dist/v14.17.0/node-v14.17.0-win-x64.7z
upload_to_minio
:
upload_to_minio
:
stage
:
deploy
stage
:
deploy
dependencies
:
dependencies
:
...
...
appveyor.yml
View file @
e2c4ebf6
...
@@ -7,8 +7,8 @@ install:
...
@@ -7,8 +7,8 @@ install:
-
git submodule update --init --recursive
-
git submodule update --init --recursive
# environment and system dependency
# environment and system dependency
-
bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/premake/premake-core/releases/download/v5.0.0-beta
2/premake-5.0.0-beta2
-windows.zip ; exit 0"
-
bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/premake/premake-core/releases/download/v5.0.0-beta
5/premake-5.0.0-beta5
-windows.zip ; exit 0"
-
7z x premake-5.0.0-beta
2
-windows.zip
-
7z x premake-5.0.0-beta
5
-windows.zip
-
bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz ; exit 0"
-
bash -c "curl --retry 5 --connect-timeout 30 --location --remote-header-name --remote-name https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz ; exit 0"
-
tar xf libevent-2.0.22-stable.tar.gz
-
tar xf libevent-2.0.22-stable.tar.gz
...
...
gframe/client_field.cpp
View file @
e2c4ebf6
...
@@ -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
...
...
gframe/client_field.h
View file @
e2c4ebf6
...
@@ -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
;
...
...
gframe/deck_con.cpp
View file @
e2c4ebf6
...
@@ -142,7 +142,8 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -142,7 +142,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
())
...
...
gframe/drawing.cpp
View file @
e2c4ebf6
...
@@ -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.01
f
+
0.02
f
));
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.01
f
+
0.02
f
));
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.01
f
+
0.02
f
));
(
matManager
.
vFieldGrave
[
player
][
rule
][
0
].
Pos
.
Y
+
matManager
.
vFieldGrave
[
player
][
rule
][
2
].
Pos
.
Y
)
/
2
,
dField
.
grave
[
player
].
size
()
*
0.01
f
+
0.02
f
));
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.01
f
+
0.02
f
));
(
matManager
.
vFieldRemove
[
player
][
rule
][
0
].
Pos
.
Y
+
matManager
.
vFieldRemove
[
player
][
rule
][
2
].
Pos
.
Y
)
/
2
,
dField
.
remove
[
player
].
size
()
*
0.01
f
+
0.02
f
));
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.01
f
+
0.02
f
));
(
matManager
.
vFieldExtra
[
player
][
0
].
Pos
.
Y
+
matManager
.
vFieldExtra
[
player
][
2
].
Pos
.
Y
)
/
2
,
dField
.
extra
[
player
].
size
()
*
0.01
f
+
0.02
f
));
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.03
f
));
(
matManager
.
vFieldSzone
[
player
][
seq
][
rule
][
0
].
Pos
.
Y
+
matManager
.
vFieldSzone
[
player
][
seq
][
rule
][
2
].
Pos
.
Y
)
/
2
,
0.03
f
));
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.03
f
));
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
,
...
...
gframe/duelclient.cpp
View file @
e2c4ebf6
...
@@ -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
;
}
}
...
...
ocgcore
@
1d7398c7
Subproject commit
39de78189126c70aa25f927d1033599f4b501ae7
Subproject commit
1d7398c7e92cf9a53fa483527a9328cc82a067f5
premake/lua/premake5.lua
View file @
e2c4ebf6
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"
}
...
...
script
@
65a4ab26
Subproject commit
0e92e4d32b2073615f5bc8005bfba50283844734
Subproject commit
65a4ab26c4f556e0388a9b6c80cbb090cc5569be
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment