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
0
Merge Requests
0
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
YGOPRO-520DIY
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
Hide 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
,
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
(
matManager
.
vFieldDeck
[
player
][
0
].
Pos
.
Y
+
matManager
.
vFieldDeck
[
player
][
2
].
Pos
.
Y
)
/
2
,
dField
.
deck
[
player
].
size
()
*
0.01
f
+
0.02
f
));
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
}
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
if
(
dField
.
grave_act
)
{
}
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldGrave
[
0
][
rule
][
0
].
Pos
.
X
+
matManager
.
vFieldGrave
[
0
][
rule
][
1
].
Pos
.
X
)
/
2
,
if
(
dField
.
grave_act
[
player
])
{
(
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
));
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldGrave
[
player
][
rule
][
0
].
Pos
.
X
+
matManager
.
vFieldGrave
[
player
][
rule
][
1
].
Pos
.
X
)
/
2
,
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
(
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
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
}
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
if
(
dField
.
remove_act
)
{
}
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldRemove
[
0
][
rule
][
0
].
Pos
.
X
+
matManager
.
vFieldRemove
[
0
][
rule
][
1
].
Pos
.
X
)
/
2
,
if
(
dField
.
remove_act
[
player
])
{
(
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
));
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldRemove
[
player
][
rule
][
0
].
Pos
.
X
+
matManager
.
vFieldRemove
[
player
][
rule
][
1
].
Pos
.
X
)
/
2
,
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
(
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
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
}
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
if
(
dField
.
extra_act
)
{
}
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldExtra
[
0
][
0
].
Pos
.
X
+
matManager
.
vFieldExtra
[
0
][
1
].
Pos
.
X
)
/
2
,
if
(
dField
.
extra_act
[
player
])
{
(
matManager
.
vFieldExtra
[
0
][
0
].
Pos
.
Y
+
matManager
.
vFieldExtra
[
0
][
2
].
Pos
.
Y
)
/
2
,
dField
.
extra
[
0
].
size
()
*
0.01
f
+
0.02
f
));
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldExtra
[
player
][
0
].
Pos
.
X
+
matManager
.
vFieldExtra
[
player
][
1
].
Pos
.
X
)
/
2
,
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
(
matManager
.
vFieldExtra
[
player
][
0
].
Pos
.
Y
+
matManager
.
vFieldExtra
[
player
][
2
].
Pos
.
Y
)
/
2
,
dField
.
extra
[
player
].
size
()
*
0.01
f
+
0.02
f
));
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
}
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
if
(
dField
.
pzone_act
[
0
])
{
}
int
seq
=
dInfo
.
duel_rule
>=
4
?
0
:
6
;
if
(
dField
.
pzone_act
[
player
])
{
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldSzone
[
0
][
seq
][
rule
][
0
].
Pos
.
X
+
matManager
.
vFieldSzone
[
0
][
seq
][
rule
][
1
].
Pos
.
X
)
/
2
,
int
seq
=
dInfo
.
duel_rule
>=
4
?
0
:
6
;
(
matManager
.
vFieldSzone
[
0
][
seq
][
rule
][
0
].
Pos
.
Y
+
matManager
.
vFieldSzone
[
0
][
seq
][
rule
][
2
].
Pos
.
Y
)
/
2
,
0.03
f
));
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldSzone
[
player
][
seq
][
rule
][
0
].
Pos
.
X
+
matManager
.
vFieldSzone
[
player
][
seq
][
rule
][
1
].
Pos
.
X
)
/
2
,
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
(
matManager
.
vFieldSzone
[
player
][
seq
][
rule
][
0
].
Pos
.
Y
+
matManager
.
vFieldSzone
[
player
][
seq
][
rule
][
2
].
Pos
.
Y
)
/
2
,
0.03
f
));
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
}
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
[
con
]
=
true
;
mainGame
->
dField
.
grave_act
=
true
;
else
if
(
pcard
->
location
==
LOCATION_REMOVED
)
else
if
(
pcard
->
location
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
[
con
]
=
true
;
mainGame
->
dField
.
remove_act
=
true
;
else
if
(
pcard
->
location
==
LOCATION_EXTRA
)
else
if
(
pcard
->
location
==
LOCATION_EXTRA
)
mainGame
->
dField
.
extra_act
[
con
]
=
true
;
mainGame
->
dField
.
extra_act
=
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
[
con
]
=
true
;
mainGame
->
dField
.
grave_act
=
true
;
else
if
(
pcard
->
location
==
LOCATION_REMOVED
)
else
if
(
pcard
->
location
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
[
con
]
=
true
;
mainGame
->
dField
.
remove_act
=
true
;
else
if
(
pcard
->
location
==
LOCATION_EXTRA
)
else
if
(
pcard
->
location
==
LOCATION_EXTRA
)
mainGame
->
dField
.
extra_act
[
con
]
=
true
;
mainGame
->
dField
.
extra_act
=
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