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
59d98986
Commit
59d98986
authored
Mar 24, 2025
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into another-develop
parents
3a23fcf1
8b95107d
Changes
35
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
243 additions
and
377 deletions
+243
-377
.ci/pack-linux-dlc.sh
.ci/pack-linux-dlc.sh
+3
-1
.ci/pack-linux.sh
.ci/pack-linux.sh
+3
-1
.ci/pack-macos-dlc.sh
.ci/pack-macos-dlc.sh
+3
-1
.ci/pack-macos.sh
.ci/pack-macos.sh
+3
-1
.ci/pack-windows-7z.sh
.ci/pack-windows-7z.sh
+3
-1
.ci/pack-windows-dlc.sh
.ci/pack-windows-dlc.sh
+3
-1
.ci/pack-windows.sh
.ci/pack-windows.sh
+3
-1
.github/workflows/build.yml
.github/workflows/build.yml
+3
-14
.gitlab-ci.yml
.gitlab-ci.yml
+56
-13
cards.cdb
cards.cdb
+0
-0
cmake/CMakeLists.txt
cmake/CMakeLists.txt
+0
-0
copy.sh
copy.sh
+2
-0
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/deck_manager.cpp
gframe/deck_manager.cpp
+1
-1
gframe/deck_manager.h
gframe/deck_manager.h
+1
-1
gframe/drawing.cpp
gframe/drawing.cpp
+32
-37
gframe/duelclient.cpp
gframe/duelclient.cpp
+21
-25
gframe/game.cpp
gframe/game.cpp
+1
-1
gframe/premake5.lua
gframe/premake5.lua
+1
-2
ocgcore
ocgcore
+1
-1
premake/event/premake5.lua
premake/event/premake5.lua
+0
-1
premake/freetype/premake5.lua
premake/freetype/premake5.lua
+0
-1
premake/irrlicht/defines.lua
premake/irrlicht/defines.lua
+49
-0
premake/irrlicht/premake5.lua
premake/irrlicht/premake5.lua
+15
-239
premake/lua/premake5.lua
premake/lua/premake5.lua
+6
-7
premake/sqlite3/premake5.lua
premake/sqlite3/premake5.lua
+0
-1
premake5.lua
premake5.lua
+2
-1
resource/gframe/ygopro.aps
resource/gframe/ygopro.aps
+0
-0
resource/gframe/ygopro.icns
resource/gframe/ygopro.icns
+0
-0
resource/gframe/ygopro.ico
resource/gframe/ygopro.ico
+0
-0
resource/gframe/ygopro.rc
resource/gframe/ygopro.rc
+2
-2
script
script
+1
-1
strings.conf
strings.conf
+2
-0
No files found.
.ci/pack-linux-dlc.sh
View file @
59d98986
...
...
@@ -4,7 +4,9 @@ set -o errexit
ARCHIVE_FILES
=(
ygopro cards.cdb locales fonts sound textures strings.conf system.conf pack
)
TARGET_PLATFORM
=
linux
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
TARGET_PLATFORM
=
linux
fi
apt update
&&
apt
-y
install tar
zstd
mkdir
dist replay
...
...
.ci/pack-linux.sh
View file @
59d98986
...
...
@@ -6,7 +6,9 @@ ARCHIVE_FILES=(ygopro LICENSE README.md lflist.conf strings.conf system.conf car
# TARGET_LOCALE
# ARCHIVE_SUFFIX
TARGET_PLATFORM
=
linux
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
TARGET_PLATFORM
=
linux
fi
apt update
&&
apt
-y
install tar
git zstd
mkdir
dist replay
...
...
.ci/pack-macos-dlc.sh
View file @
59d98986
...
...
@@ -4,7 +4,9 @@ set -o errexit
ARCHIVE_FILES
=(
ygopro.app cards.cdb locales fonts sound textures strings.conf system.conf pack
)
TARGET_PLATFORM
=
darwin
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
TARGET_PLATFORM
=
darwin
fi
apt update
&&
apt
-y
install tar
zstd
mkdir
dist replay
...
...
.ci/pack-macos.sh
View file @
59d98986
...
...
@@ -6,7 +6,9 @@ ARCHIVE_FILES=(ygopro.app LICENSE README.md lflist.conf strings.conf system.conf
# TARGET_LOCALE
# ARCHIVE_SUFFIX
TARGET_PLATFORM
=
darwin
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
TARGET_PLATFORM
=
darwin
fi
apt update
&&
apt
-y
install tar
git zstd
mkdir
dist replay
...
...
.ci/pack-windows-7z.sh
View file @
59d98986
...
...
@@ -9,7 +9,9 @@ if [[ "$TARGET_LOCALE" == "zh-CN" ]]; then
fi
# TARGET_LOCALE
TARGET_PLATFORM
=
win32
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
TARGET_PLATFORM
=
win32
fi
apt update
&&
apt
-y
install
p7zip-full git
mkdir
dist replay
...
...
.ci/pack-windows-dlc.sh
View file @
59d98986
...
...
@@ -4,7 +4,9 @@ set -o errexit
ARCHIVE_FILES
=(
ygopro.exe cards.cdb locales fonts sound textures strings.conf system.conf skin pack
)
TARGET_PLATFORM
=
win32
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
TARGET_PLATFORM
=
win32
fi
apt update
&&
apt
-y
install tar
zstd
mkdir
dist replay
...
...
.ci/pack-windows.sh
View file @
59d98986
...
...
@@ -10,7 +10,9 @@ fi
# TARGET_LOCALE
# ARCHIVE_SUFFIX
TARGET_PLATFORM
=
win32
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
TARGET_PLATFORM
=
win32
fi
apt update
&&
apt
-y
install tar
git zstd
mkdir
dist replay
...
...
.github/workflows/build.yml
View file @
59d98986
...
...
@@ -90,17 +90,6 @@ jobs:
7z x ${{ steps.sqlite.outputs.filepath }}
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
run
:
|
git clone --depth=1 https://github.com/mercury233/irrlicht
...
...
@@ -132,6 +121,7 @@ jobs:
-
name
:
Copy premake files
run
:
|
xcopy /E premake\* .
xcopy /E resource\* .
-
name
:
Use premake to generate Visual Studio solution (2019)
if
:
matrix.os == 'windows-2019'
...
...
@@ -228,11 +218,11 @@ jobs:
-
name
:
Copy premake files
run
:
|
cp -r premake/* .
cp -r resource/* .
-
name
:
Use premake to generate make files
run
:
|
./premake5 gmake \
--no-use-irrklang \
--freetype-include-dir="/usr/include/freetype2"
-
name
:
Make
...
...
@@ -321,13 +311,13 @@ jobs:
-
name
:
Copy premake files
run
:
|
cp -r premake/* .
cp -r resource/* .
-
name
:
Use premake to generate make files (Intel)
if
:
runner.arch == 'X64'
run
:
|
./premake5 gmake \
--cc=clang \
--no-use-irrklang \
--freetype-include-dir="/usr/local/include/freetype2" \
--irrlicht-include-dir="../irrlicht/include" \
--irrlicht-lib-dir="../irrlicht/source/Irrlicht/MacOSX/build/Release"
...
...
@@ -337,7 +327,6 @@ jobs:
run
:
|
./premake5 gmake \
--cc=clang \
--no-use-irrklang \
--event-include-dir="/opt/homebrew/include" \
--event-lib-dir="/opt/homebrew/lib" \
--freetype-include-dir="/opt/homebrew/include/freetype2" \
...
...
.gitlab-ci.yml
View file @
59d98986
...
...
@@ -54,13 +54,9 @@ mat_linux:
script
:
-
apt update; apt -y install git wget tar
-
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
:
paths
:
-
premake5
-
irrlicht
-
libevent-stable
mat_macos
:
stage
:
prepare
...
...
@@ -68,7 +64,8 @@ mat_macos:
-
linux
script
:
-
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
-
cd irrlicht
-
wget -O - https://cdn01.moecube.com/ygopro-build-materials/irrlicht-mycard-mac.tar.gz | tar zfx -
...
...
@@ -85,8 +82,8 @@ mat_windows:
script
:
-
apt update; apt -y install wget tar patch p7zip-full
# premake5.exe
-
wget https://cdn01.moecube.com/ygopro-build-materials/premake-5.0.0-beta
2
-windows.zip
-
7z x -y 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
5
-windows.zip
# event
-
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
...
...
@@ -125,20 +122,20 @@ exec_windows:
paths
:
-
ygopro.exe
exec_linux
:
.
exec_linux
:
extends
:
._exec_build
tags
:
-
linux
image
:
git-registry.m
ycard.moe/mycard/docker-runner-base:debian11
image
:
git-registry.m
oenext.com/mycard/docker-ygopro-builder
dependencies
:
-
mat_common
-
mat_linux
-
mat_submodules
variables
:
EVENT_INCLUDE_DIR
:
/usr/share/libevent-stable/include
EVENT_LIB_DIR
:
/usr/share/libevent-stable/lib
script
:
-
apt update; apt -y install git build-essential libgl1-mesa-dev libglu-dev libxxf86vm-dev
-
export EVENT_INCLUDE_DIR=$PWD/libevent-stable/include
-
export EVENT_LIB_DIR=$PWD/libevent-stable/lib
-
./premake5 gmake --build-freetype --build-sqlite --build-irrlicht
-
premake5 gmake --build-freetype --build-sqlite --build-irrlicht
-
cd build
-
make config=release -j$(nproc)
-
cd ..
...
...
@@ -148,6 +145,14 @@ exec_linux:
paths
:
-
ygopro
exec_linux
:
extends
:
.exec_linux
exec_linuxarm
:
extends
:
.exec_linux
tags
:
-
arm
._exec_macos_platform
:
extends
:
._exec_build
dependencies
:
...
...
@@ -382,6 +387,15 @@ assets_en-US:
-
assets_zh-CN
-
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
:
extends
:
._pack
dependencies
:
...
...
@@ -409,6 +423,15 @@ assets_en-US:
-
assets_en-US
-
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
:
extends
:
._pack
dependencies
:
...
...
@@ -502,6 +525,15 @@ pack_linux_zh-CN_gz:
-
._pack_format_gz
-
._locale_zh-CN
pack_linuxarm_zh-CN_gz
:
extends
:
-
._pack_assets_linuxarm_zh-CN
-
._pack_script_linux
-
._pack_format_gz
-
._locale_zh-CN
variables
:
TARGET_PLATFORM
:
linuxarm
#pack_linux_zh-CN_zst:
# extends:
# - ._pack_assets_linux_zh-CN
...
...
@@ -551,6 +583,15 @@ pack_linux_en-US_gz:
-
._pack_format_gz
-
._locale_en-US
pack_linuxarm_en-US_gz
:
extends
:
-
._pack_assets_linuxarm_en-US
-
._pack_script_linux
-
._pack_format_gz
-
._locale_en-US
variables
:
TARGET_PLATFORM
:
linuxarm
#pack_linux_en-US_zst:
# extends:
# - ._pack_assets_linux_en-US
...
...
@@ -596,6 +637,7 @@ upload_to_minio:
#- pack_windows_zh-CN_gz
#- pack_windows_zh-CN_zst
-
pack_linux_zh-CN_gz
-
pack_linuxarm_zh-CN_gz
#- pack_linux_zh-CN_zst
-
pack_macos_zh-CN_gz
#- pack_macos_zh-CN_zst
...
...
@@ -603,6 +645,7 @@ upload_to_minio:
#- pack_windows_en-US_gz
#- pack_windows_en-US_zst
-
pack_linux_en-US_gz
-
pack_linuxarm_en-US_gz
#- pack_linux_en-US_zst
-
pack_macos_en-US_gz
#- pack_macos_en-US_zst
...
...
cards.cdb
View file @
59d98986
No preview for this file type
CMakeLists.txt
→
cmake/
CMakeLists.txt
View file @
59d98986
File moved
copy.sh
0 → 100755
View file @
59d98986
#!/bin/sh
cp
-r
premake/
*
.
gframe/client_field.cpp
View file @
59d98986
...
...
@@ -83,6 +83,11 @@ void ClientField::Clear() {
for
(
auto
cit
=
extra
[
i
].
begin
();
cit
!=
extra
[
i
].
end
();
++
cit
)
delete
*
cit
;
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
)
delete
*
cit
;
...
...
@@ -111,12 +116,6 @@ void ClientField::Clear() {
hovered_controler
=
0
;
hovered_location
=
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
;
deck_reversed
=
false
;
cant_check_grave
=
false
;
...
...
@@ -367,13 +366,14 @@ void ClientField::ClearCommandFlag() {
(
*
cit
)
->
cmdFlag
=
0
;
for
(
auto
cit
=
attackable_cards
.
begin
();
cit
!=
attackable_cards
.
end
();
++
cit
)
(
*
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
();
deck_act
=
false
;
extra_act
=
false
;
grave_act
=
false
;
remove_act
=
false
;
pzone_act
[
0
]
=
false
;
pzone_act
[
1
]
=
false
;
conti_act
=
false
;
}
void
ClientField
::
ClearSelect
()
{
...
...
@@ -401,11 +401,14 @@ void ClientField::ClearChainSelect() {
(
*
cit
)
->
is_selectable
=
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
();
deck_act
=
false
;
grave_act
=
false
;
remove_act
=
false
;
extra_act
=
false
;
conti_act
=
false
;
}
// needs to be synchronized with EGET_SCROLL_BAR_CHANGED
...
...
gframe/client_field.h
View file @
59d98986
...
...
@@ -78,11 +78,11 @@ public:
std
::
vector
<
ClientCard
*>
display_cards
;
std
::
vector
<
int
>
sort_list
;
std
::
map
<
int
,
int
>
player_desc_hints
[
2
];
bool
grave_act
{
false
};
bool
remove_act
{
false
};
bool
deck_act
{
false
};
bool
extra_act
{
false
};
bool
pzone_act
[
2
]{};
bool
grave_act
[
2
]
{
false
};
bool
remove_act
[
2
]
{
false
};
bool
deck_act
[
2
]
{
false
};
bool
extra_act
[
2
]
{
false
};
bool
pzone_act
[
2
]{
false
};
bool
conti_act
{
false
};
bool
chain_forced
{
false
};
ChainInfo
current_chain
;
...
...
gframe/deck_con.cpp
View file @
59d98986
...
...
@@ -143,7 +143,8 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
(
mainGame
->
wQuery
->
isVisible
()
&&
id
!=
BUTTON_YES
&&
id
!=
BUTTON_NO
)
||
(
mainGame
->
wLinkMarks
->
isVisible
()
&&
id
!=
BUTTON_MARKERS_OK
)
||
(
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_COMBO_BOX_CHANGED
)
{
if
(
mainGame
->
wDMQuery
->
isVisible
())
...
...
gframe/deck_manager.cpp
View file @
59d98986
...
...
@@ -78,7 +78,7 @@ static unsigned int checkAvail(unsigned int ot, unsigned int avail) {
return
DECKERROR_TCGONLY
;
return
DECKERROR_NOTAVAIL
;
}
unsigned
int
DeckManager
::
CheckDeck
(
Deck
&
deck
,
int
lfhash
,
int
rule
)
{
unsigned
int
DeckManager
::
CheckDeck
(
const
Deck
&
deck
,
unsigned
int
lfhash
,
int
rule
)
{
std
::
unordered_map
<
int
,
int
>
ccount
;
// rule
if
(
deck
.
main
.
size
()
<
DECK_MIN_SIZE
||
deck
.
main
.
size
()
>
DECK_MAX_SIZE
)
...
...
gframe/deck_manager.h
View file @
59d98986
...
...
@@ -62,7 +62,7 @@ public:
void
LoadLFList
();
const
wchar_t
*
GetLFListName
(
unsigned
int
lfhash
);
const
LFList
*
GetLFList
(
unsigned
int
lfhash
);
unsigned
int
CheckDeck
(
Deck
&
deck
,
int
lfhash
,
int
rule
);
unsigned
int
CheckDeck
(
const
Deck
&
deck
,
unsigned
int
lfhash
,
int
rule
);
int
LoadDeck
(
Deck
&
deck
,
int
*
dbuf
,
int
mainc
,
int
sidec
,
bool
is_packlist
=
false
);
int
LoadDeck
(
Deck
&
deck
,
std
::
istringstream
&
deckStream
,
bool
is_packlist
=
false
);
bool
LoadSide
(
Deck
&
deck
,
int
*
dbuf
,
int
mainc
,
int
sidec
);
...
...
gframe/drawing.cpp
View file @
59d98986
...
...
@@ -467,43 +467,38 @@ void Game::DrawMisc() {
im
.
setRotationRadians
(
act_rot
);
matManager
.
mTexture
.
setTexture
(
0
,
imageManager
.
tAct
);
driver
->
setMaterial
(
matManager
.
mTexture
);
if
(
dField
.
deck_act
)
{
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldDeck
[
0
][
0
].
Pos
.
X
+
matManager
.
vFieldDeck
[
0
][
1
].
Pos
.
X
)
/
2
,
(
matManager
.
vFieldDeck
[
0
][
0
].
Pos
.
Y
+
matManager
.
vFieldDeck
[
0
][
2
].
Pos
.
Y
)
/
2
,
dField
.
deck
[
0
].
size
()
*
0.01
f
+
0.02
f
));
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
,
(
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
));
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
,
(
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
));
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
,
(
matManager
.
vFieldExtra
[
0
][
0
].
Pos
.
Y
+
matManager
.
vFieldExtra
[
0
][
2
].
Pos
.
Y
)
/
2
,
dField
.
extra
[
0
].
size
()
*
0.01
f
+
0.02
f
));
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
;
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldSzone
[
0
][
seq
][
rule
][
0
].
Pos
.
X
+
matManager
.
vFieldSzone
[
0
][
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
));
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
);
for
(
int
player
=
0
;
player
<
2
;
++
player
)
{
if
(
dField
.
deck_act
[
player
])
{
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
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
dField
.
grave_act
[
player
])
{
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldGrave
[
player
][
rule
][
0
].
Pos
.
X
+
matManager
.
vFieldGrave
[
player
][
rule
][
1
].
Pos
.
X
)
/
2
,
(
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
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
dField
.
remove_act
[
player
])
{
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldRemove
[
player
][
rule
][
0
].
Pos
.
X
+
matManager
.
vFieldRemove
[
player
][
rule
][
1
].
Pos
.
X
)
/
2
,
(
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
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
dField
.
extra_act
[
player
])
{
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldExtra
[
player
][
0
].
Pos
.
X
+
matManager
.
vFieldExtra
[
player
][
1
].
Pos
.
X
)
/
2
,
(
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
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
dField
.
pzone_act
[
player
])
{
int
seq
=
dInfo
.
duel_rule
>=
4
?
0
:
6
;
im
.
setTranslation
(
irr
::
core
::
vector3df
((
matManager
.
vFieldSzone
[
player
][
seq
][
rule
][
0
].
Pos
.
X
+
matManager
.
vFieldSzone
[
player
][
seq
][
rule
][
1
].
Pos
.
X
)
/
2
,
(
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
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
}
if
(
dField
.
conti_act
)
{
irr
::
core
::
vector3df
pos
=
irr
::
core
::
vector3df
((
matManager
.
vFieldContiAct
[
0
].
X
+
matManager
.
vFieldContiAct
[
1
].
X
)
/
2
,
...
...
gframe/duelclient.cpp
View file @
59d98986
...
...
@@ -1554,14 +1554,12 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
mainGame
->
dField
.
conti_act
=
true
;
}
else
{
pcard
->
cmdFlag
|=
COMMAND_ACTIVATE
;
if
(
pcard
->
controler
==
0
)
{
if
(
pcard
->
location
==
LOCATION_GRAVE
)
mainGame
->
dField
.
grave_act
=
true
;
else
if
(
pcard
->
location
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
=
true
;
else
if
(
pcard
->
location
==
LOCATION_EXTRA
)
mainGame
->
dField
.
extra_act
=
true
;
}
if
(
pcard
->
location
==
LOCATION_GRAVE
)
mainGame
->
dField
.
grave_act
[
con
]
=
true
;
else
if
(
pcard
->
location
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
[
con
]
=
true
;
else
if
(
pcard
->
location
==
LOCATION_EXTRA
)
mainGame
->
dField
.
extra_act
[
con
]
=
true
;
}
}
mainGame
->
dField
.
attackable_cards
.
clear
();
...
...
@@ -1619,17 +1617,17 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
pcard
->
cmdFlag
|=
COMMAND_SPSUMMON
;
if
(
pcard
->
location
==
LOCATION_DECK
)
{
pcard
->
SetCode
(
code
);
mainGame
->
dField
.
deck_act
=
true
;
mainGame
->
dField
.
deck_act
[
con
]
=
true
;
}
else
if
(
pcard
->
location
==
LOCATION_GRAVE
)
mainGame
->
dField
.
grave_act
=
true
;
mainGame
->
dField
.
grave_act
[
con
]
=
true
;
else
if
(
pcard
->
location
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
=
true
;
mainGame
->
dField
.
remove_act
[
con
]
=
true
;
else
if
(
pcard
->
location
==
LOCATION_EXTRA
)
mainGame
->
dField
.
extra_act
=
true
;
mainGame
->
dField
.
extra_act
[
con
]
=
true
;
else
{
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
)
mainGame
->
dField
.
pzone_act
[
pcard
->
controler
]
=
true
;
mainGame
->
dField
.
pzone_act
[
con
]
=
true
;
}
}
mainGame
->
dField
.
reposable_cards
.
clear
();
...
...
@@ -1689,14 +1687,12 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
mainGame
->
dField
.
conti_act
=
true
;
}
else
{
pcard
->
cmdFlag
|=
COMMAND_ACTIVATE
;
if
(
pcard
->
controler
==
0
)
{
if
(
pcard
->
location
==
LOCATION_GRAVE
)
mainGame
->
dField
.
grave_act
=
true
;
else
if
(
pcard
->
location
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
=
true
;
else
if
(
pcard
->
location
==
LOCATION_EXTRA
)
mainGame
->
dField
.
extra_act
=
true
;
}
if
(
pcard
->
location
==
LOCATION_GRAVE
)
mainGame
->
dField
.
grave_act
[
con
]
=
true
;
else
if
(
pcard
->
location
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
[
con
]
=
true
;
else
if
(
pcard
->
location
==
LOCATION_EXTRA
)
mainGame
->
dField
.
extra_act
[
con
]
=
true
;
}
}
if
(
BufferIO
::
ReadUInt8
(
pbuf
))
{
...
...
@@ -1983,13 +1979,13 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
pcard
->
cmdFlag
|=
COMMAND_ACTIVATE
;
if
(
pcard
->
location
==
LOCATION_DECK
)
{
pcard
->
SetCode
(
code
);
mainGame
->
dField
.
deck_act
=
true
;
mainGame
->
dField
.
deck_act
[
c
]
=
true
;
}
else
if
(
l
==
LOCATION_GRAVE
)
mainGame
->
dField
.
grave_act
=
true
;
mainGame
->
dField
.
grave_act
[
c
]
=
true
;
else
if
(
l
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
=
true
;
mainGame
->
dField
.
remove_act
[
c
]
=
true
;
else
if
(
l
==
LOCATION_EXTRA
)
mainGame
->
dField
.
extra_act
=
true
;
mainGame
->
dField
.
extra_act
[
c
]
=
true
;
else
if
(
l
==
LOCATION_OVERLAY
)
panelmode
=
true
;
}
...
...
gframe/game.cpp
View file @
59d98986
...
...
@@ -227,7 +227,7 @@ bool Game::Initialize() {
SetWindowsIcon
();
//main menu
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
->
getCloseButton
()
->
setVisible
(
false
);
btnLanMode
=
env
->
addButton
(
irr
::
core
::
rect
<
irr
::
s32
>
(
10
,
30
,
270
,
60
),
wMainMenu
,
BUTTON_LAN_MODE
,
dataManager
.
GetSysString
(
1200
));
...
...
gframe/premake5.lua
View file @
59d98986
...
...
@@ -7,6 +7,7 @@ end
project
"YGOPro"
kind
"WindowedApp"
cppdialect
"C++14"
rtti
"Off"
files
{
"*.cpp"
,
"*.h"
,
"CGUISkinSystem/*.cpp"
,
"CGUISkinSystem/*.h"
,
"CXMLRegistry/*.cpp"
,
"CXMLRegistry/*.h"
}
includedirs
{
"../ocgcore"
}
...
...
@@ -50,8 +51,6 @@ project "YGOPro"
files
"ygopro.rc"
libdirs
{
"$(DXSDK_DIR)Lib/x86"
}
links
{
"opengl32"
,
"ws2_32"
,
"winmm"
,
"gdi32"
,
"kernel32"
,
"user32"
,
"imm32"
,
"Dnsapi"
}
filter
"not action:vs*"
buildoptions
{
"-fno-rtti"
}
filter
"not system:windows"
links
{
"event_pthreads"
,
"dl"
,
"pthread"
,
"resolv"
}
filter
"system:macosx"
...
...
ocgcore
@
5669c08b
Subproject commit
39de78189126c70aa25f927d1033599f4b501ae7
Subproject commit
5669c08b3a6674f25fd924633b2275eaed3fffad
premake/event/premake5.lua
View file @
59d98986
project
"event"
kind
"StaticLib"
cdialect
"C11"
includedirs
{
"include"
,
"compat"
}
...
...
premake/freetype/premake5.lua
View file @
59d98986
project
"freetype"
kind
"StaticLib"
cdialect
"C11"
includedirs
{
"include"
}
defines
{
"FT2_BUILD_LIBRARY"
}
...
...
premake/irrlicht/defines.lua
0 → 100644
View file @
59d98986
defines
{
"_IRR_STATIC_LIB_"
,
"NO_IRR_USE_NON_SYSTEM_BZLIB_"
,
"NO_IRR_COMPILE_WITH_BZIP2_"
,
"NO_IRR_COMPILE_WITH_CONSOLE_DEVICE_"
,
"NO_IRR_COMPILE_WITH_DIRECT3D_8_"
,
"NO_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_"
,
"NO_IRR_COMPILE_WITH_JOYSTICK_EVENTS_"
,
"NO_IRR_COMPILE_WITH_SOFTWARE_"
,
"NO_IRR_COMPILE_WITH_BURNINGSVIDEO_"
,
"NO_IRR_COMPILE_WITH_IRR_SCENE_LOADER_"
,
"NO_IRR_COMPILE_WITH_SKINNED_MESH_SUPPORT_"
,
"NO_IRR_COMPILE_WITH_IRR_MESH_LOADER_"
,
"NO_IRR_COMPILE_WITH_HALFLIFE_LOADER_"
,
"NO_IRR_COMPILE_WITH_MD2_LOADER_"
,
"NO_IRR_COMPILE_WITH_MD3_LOADER_"
,
"NO_IRR_COMPILE_WITH_3DS_LOADER_"
,
"NO_IRR_COMPILE_WITH_COLLADA_LOADER_"
,
"NO_IRR_COMPILE_WITH_CSM_LOADER_"
,
"NO_IRR_COMPILE_WITH_BSP_LOADER_"
,
"NO_IRR_COMPILE_WITH_DMF_LOADER_"
,
"NO_IRR_COMPILE_WITH_LMTS_LOADER_"
,
"NO_IRR_COMPILE_WITH_MY3D_LOADER_"
,
"NO_IRR_COMPILE_WITH_OBJ_LOADER_"
,
"NO_IRR_COMPILE_WITH_OCT_LOADER_"
,
"NO_IRR_COMPILE_WITH_LWO_LOADER_"
,
"NO_IRR_COMPILE_WITH_STL_LOADER_"
,
"NO_IRR_COMPILE_WITH_PLY_LOADER_"
,
"NO_IRR_COMPILE_WITH_SMF_LOADER_"
,
"NO_IRR_COMPILE_WITH_IRR_WRITER_"
,
"NO_IRR_COMPILE_WITH_COLLADA_WRITER_"
,
"NO_IRR_COMPILE_WITH_STL_WRITER_"
,
"NO_IRR_COMPILE_WITH_OBJ_WRITER_"
,
"NO_IRR_COMPILE_WITH_PLY_WRITER_"
,
"NO_IRR_COMPILE_WITH_PCX_LOADER_"
,
"NO_IRR_COMPILE_WITH_PPM_LOADER_"
,
"NO_IRR_COMPILE_WITH_PSD_LOADER_"
,
"NO_IRR_COMPILE_WITH_TGA_LOADER_"
,
"NO_IRR_COMPILE_WITH_WAL_LOADER_"
,
"NO_IRR_COMPILE_WITH_LMP_LOADER_"
,
"NO_IRR_COMPILE_WITH_RGB_LOADER_"
,
"NO_IRR_COMPILE_WITH_PCX_WRITER_"
,
"NO_IRR_COMPILE_WITH_PPM_WRITER_"
,
"NO_IRR_COMPILE_WITH_PSD_WRITER_"
,
"NO_IRR_COMPILE_WITH_TGA_WRITER_"
,
"NO__IRR_COMPILE_WITH_PAK_ARCHIVE_LOADER_"
,
"NO__IRR_COMPILE_WITH_NPK_ARCHIVE_LOADER_"
,
"NO__IRR_COMPILE_WITH_WAD_ARCHIVE_LOADER_"
,
}
premake/irrlicht/premake5.lua
View file @
59d98986
This diff is collapsed.
Click to expand it.
premake/lua/premake5.lua
View file @
59d98986
project
"lua"
kind
"StaticLib"
compileas
"C++"
files
{
"src/*.c"
,
"src/*.h"
,
"src/*.hpp"
}
removefiles
{
"src/lua.c"
,
"src/luac.c"
}
files
{
"src/*.c"
,
"src/*.h"
}
removefiles
{
"src/lua.c"
,
"src/luac.c"
,
"src/onelua.c"
}
filter
"action:vs*"
buildoptions
{
"/TP"
}
filter
"not action:vs*"
buildoptions
{
"-x c++"
}
if
not
GetParam
(
"no-lua-safe"
)
then
removefiles
{
"src/linit.c"
}
end
filter
"configurations:Debug"
defines
{
"LUA_USE_APICHECK"
}
...
...
premake/sqlite3/premake5.lua
View file @
59d98986
project
"sqlite3"
kind
"StaticLib"
cdialect
"C11"
files
{
"sqlite3.c"
,
"sqlite3.h"
}
premake5.lua
View file @
59d98986
...
...
@@ -211,7 +211,7 @@ workspace "YGOPro"
flags
{
"LinkTimeOptimization"
}
end
staticruntime
"On"
disablewarnings
{
"4244"
,
"4267"
,
"4838"
,
"4
577"
,
"4018"
,
"4996"
,
"4477"
,
"4091"
,
"4800
"
,
"6011"
,
"6031"
,
"6054"
,
"6262"
}
disablewarnings
{
"4244"
,
"4267"
,
"4838"
,
"4
996
"
,
"6011"
,
"6031"
,
"6054"
,
"6262"
}
filter
{
"configurations:Release"
,
"not action:vs*"
}
symbols
"On"
...
...
@@ -224,6 +224,7 @@ workspace "YGOPro"
disablewarnings
{
"6011"
,
"6031"
,
"6054"
,
"6262"
}
filter
"action:vs*"
cdialect
"C11"
vectorextensions
"SSE2"
buildoptions
{
"/utf-8"
}
defines
{
"_CRT_SECURE_NO_WARNINGS"
}
...
...
premak
e/gframe/ygopro.aps
→
resourc
e/gframe/ygopro.aps
View file @
59d98986
File moved
premak
e/gframe/ygopro.icns
→
resourc
e/gframe/ygopro.icns
View file @
59d98986
File moved
premak
e/gframe/ygopro.ico
→
resourc
e/gframe/ygopro.ico
View file @
59d98986
File moved
premak
e/gframe/ygopro.rc
→
resourc
e/gframe/ygopro.rc
View file @
59d98986
...
...
@@ -16,8 +16,8 @@ VALUE "InternalName", "KoishiPro"
VALUE "LegalCopyright", "Copyright (C) 2023 Nanahira"
VALUE "OriginalFilename", "ygopro.exe"
VALUE "ProductName", "KoishiPro"
VALUE "FileVersion", "
Moon
"
VALUE "ProductVersion", "
Moon
"
VALUE "FileVersion", "
Overdose
"
VALUE "ProductVersion", "
Overdose
"
END
END
BLOCK "VarFileInfo"
...
...
script
@
28782ebd
Subproject commit
0e92e4d32b2073615f5bc8005bfba50283844734
Subproject commit
28782ebd949a70081a9f3c5c867d12cba80e756d
strings.conf
View file @
59d98986
...
...
@@ -1257,3 +1257,5 @@
!
setname
0
x1c4
征龙 征竜
!
setname
0
x1c5
再世 再世
!
setname
0
x1c6
统王 ドミナス
!
setname
0
x1c7
塞勒凯特
Serket
!
setname
0
x1c8
阿匹卜
Apophis
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