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
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
MyCard
ygopro
Commits
95ed3727
Commit
95ed3727
authored
Jun 27, 2025
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into server-develop
parents
5c2835da
23be6f4c
Changes
18
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
412 additions
and
18 deletions
+412
-18
.ci/assets-locale.sh
.ci/assets-locale.sh
+1
-0
.ci/pack-linux-dlc.sh
.ci/pack-linux-dlc.sh
+1
-1
.ci/pack-linux.sh
.ci/pack-linux.sh
+1
-1
.ci/pack-macos-dlc.sh
.ci/pack-macos-dlc.sh
+1
-1
.ci/pack-macos.sh
.ci/pack-macos.sh
+1
-1
.ci/pack-windows-7z.sh
.ci/pack-windows-7z.sh
+1
-1
.ci/pack-windows-dlc.sh
.ci/pack-windows-dlc.sh
+1
-1
.ci/pack-windows.sh
.ci/pack-windows.sh
+1
-1
.gitlab-ci.yml
.gitlab-ci.yml
+131
-4
gframe/data_manager.cpp
gframe/data_manager.cpp
+164
-0
gframe/data_manager.h
gframe/data_manager.h
+15
-0
gframe/duelclient.cpp
gframe/duelclient.cpp
+2
-1
gframe/game.cpp
gframe/game.cpp
+51
-6
gframe/game.h
gframe/game.h
+11
-0
gframe/menu_handler.cpp
gframe/menu_handler.cpp
+18
-0
servers.conf
servers.conf
+8
-0
strings.conf
strings.conf
+1
-0
system.conf
system.conf
+3
-0
No files found.
.ci/assets-locale.sh
View file @
95ed3727
...
@@ -6,6 +6,7 @@ source .ci/asset-branch
...
@@ -6,6 +6,7 @@ source .ci/asset-branch
apt update
&&
apt
-y
install
wget git libarchive-tools sqlite3
apt update
&&
apt
-y
install
wget git libarchive-tools sqlite3
git clone
--depth
=
1
-b
"
$ASSET_BRANCH_NAME
"
https://code.moenext.com/mycard/ygopro-database
git clone
--depth
=
1
-b
"
$ASSET_BRANCH_NAME
"
https://code.moenext.com/mycard/ygopro-database
cp
-rf
./ygopro-database/locales/
$TARGET_LOCALE
/strings.conf
.
cp
-rf
./ygopro-database/locales/
$TARGET_LOCALE
/strings.conf
.
cp
-rf
./ygopro-database/locales/
$TARGET_LOCALE
/servers.conf
.
rm
-f
cards.cdb
rm
-f
cards.cdb
sqlite3 ./ygopro-database/locales/
$TARGET_LOCALE
/cards.cdb .dump | sqlite3 cards.cdb
sqlite3 ./ygopro-database/locales/
$TARGET_LOCALE
/cards.cdb .dump | sqlite3 cards.cdb
# ygopro-images
# ygopro-images
...
...
.ci/pack-linux-dlc.sh
View file @
95ed3727
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
set
-x
set
-x
set
-o
errexit
set
-o
errexit
ARCHIVE_FILES
=(
ygopro cards.cdb locales fonts sound textures strings.conf system.conf pack
)
ARCHIVE_FILES
=(
ygopro cards.cdb locales fonts sound textures strings.conf system.conf
servers.conf
pack
)
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
TARGET_PLATFORM
=
linux
TARGET_PLATFORM
=
linux
...
...
.ci/pack-linux.sh
View file @
95ed3727
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
set
-x
set
-x
set
-o
errexit
set
-o
errexit
ARCHIVE_FILES
=(
ygopro LICENSE README.md lflist.conf strings.conf system.conf cards.cdb script textures deck single pics replay windbot bot bot.conf locales fonts pack
)
ARCHIVE_FILES
=(
ygopro LICENSE README.md lflist.conf strings.conf system.conf
servers.conf
cards.cdb script textures deck single pics replay windbot bot bot.conf locales fonts pack
)
# TARGET_LOCALE
# TARGET_LOCALE
# ARCHIVE_SUFFIX
# ARCHIVE_SUFFIX
...
...
.ci/pack-macos-dlc.sh
View file @
95ed3727
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
set
-x
set
-x
set
-o
errexit
set
-o
errexit
ARCHIVE_FILES
=(
ygopro.app cards.cdb locales fonts sound textures strings.conf system.conf pack
)
ARCHIVE_FILES
=(
ygopro.app cards.cdb locales fonts sound textures strings.conf system.conf
servers.conf
pack
)
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
TARGET_PLATFORM
=
darwin
TARGET_PLATFORM
=
darwin
...
...
.ci/pack-macos.sh
View file @
95ed3727
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
set
-x
set
-x
set
-o
errexit
set
-o
errexit
ARCHIVE_FILES
=(
ygopro.app LICENSE README.md lflist.conf strings.conf system.conf cards.cdb script textures deck single pics replay sound windbot bot bot.conf locales fonts pack
)
ARCHIVE_FILES
=(
ygopro.app LICENSE README.md lflist.conf strings.conf system.conf
servers.conf
cards.cdb script textures deck single pics replay sound windbot bot bot.conf locales fonts pack
)
# TARGET_LOCALE
# TARGET_LOCALE
# ARCHIVE_SUFFIX
# ARCHIVE_SUFFIX
...
...
.ci/pack-windows-7z.sh
View file @
95ed3727
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
set
-x
set
-x
set
-o
errexit
set
-o
errexit
ARCHIVE_FILES
=(
ygopro.exe vcomp140.dll LICENSE README.md lflist.conf strings.conf system.conf cards.cdb script textures deck single pics replay sound bot.conf Bot.exe WindBot locales fonts skin pack
)
ARCHIVE_FILES
=(
ygopro.exe vcomp140.dll LICENSE README.md lflist.conf strings.conf system.conf
servers.conf
cards.cdb script textures deck single pics replay sound bot.conf Bot.exe WindBot locales fonts skin pack
)
if
[[
"
$TARGET_LOCALE
"
==
"zh-CN"
]]
;
then
if
[[
"
$TARGET_LOCALE
"
==
"zh-CN"
]]
;
then
ARCHIVE_FILES
=(
"
${
ARCHIVE_FILES
[@]
}
"
update-koishipro
)
ARCHIVE_FILES
=(
"
${
ARCHIVE_FILES
[@]
}
"
update-koishipro
)
...
...
.ci/pack-windows-dlc.sh
View file @
95ed3727
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
set
-x
set
-x
set
-o
errexit
set
-o
errexit
ARCHIVE_FILES
=(
ygopro.exe vcomp140.dll cards.cdb locales fonts sound textures strings.conf system.conf skin pack
)
ARCHIVE_FILES
=(
ygopro.exe vcomp140.dll cards.cdb locales fonts sound textures strings.conf system.conf s
ervers.conf s
kin pack
)
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
if
[[
-z
"
$TARGET_PLATFORM
"
]]
;
then
TARGET_PLATFORM
=
win32
TARGET_PLATFORM
=
win32
...
...
.ci/pack-windows.sh
View file @
95ed3727
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
set
-x
set
-x
set
-o
errexit
set
-o
errexit
ARCHIVE_FILES
=(
ygopro.exe vcomp140.dll LICENSE README.md lflist.conf strings.conf system.conf cards.cdb script textures deck single pics replay sound bot.conf Bot.exe WindBot locales fonts skin pack
)
ARCHIVE_FILES
=(
ygopro.exe vcomp140.dll LICENSE README.md lflist.conf strings.conf system.conf
servers.conf
cards.cdb script textures deck single pics replay sound bot.conf Bot.exe WindBot locales fonts skin pack
)
if
[[
"
$TARGET_LOCALE
"
==
"zh-CN"
&&
"
$ARCHIVE_SUFFIX
"
!=
"zst"
]]
;
then
if
[[
"
$TARGET_LOCALE
"
==
"zh-CN"
&&
"
$ARCHIVE_SUFFIX
"
!=
"zst"
]]
;
then
ARCHIVE_FILES
=(
"
${
ARCHIVE_FILES
[@]
}
"
update-koishipro
)
ARCHIVE_FILES
=(
"
${
ARCHIVE_FILES
[@]
}
"
update-koishipro
)
...
...
.gitlab-ci.yml
View file @
95ed3727
...
@@ -293,10 +293,137 @@ exec_macos:
...
@@ -293,10 +293,137 @@ exec_macos:
-
exec_macos_x64_pro3
-
exec_macos_x64_pro3
-
exec_macos_arm64_pro3
-
exec_macos_arm64_pro3
script
:
script
:
-
mkdir -p dist/macos
-
mkdir -p ygopro.app/Contents/MacOS ygopro.app/Contents/Frameworks;
-
lipo -create -output dist/macos/ygopro dist/macos-x64/ygopro dist/macos-arm64/ygopro
-
lipo -create -output ygopro.app/Contents/MacOS/ygopro $(ls -1 ygopro-platforms/ygopro-platform-*);
-
lipo -create -output dist/macos/libygoserver.dylib dist/macos-x64/libygoserver.dylib dist/macos-arm64/libygoserver.dylib
-
mkdir ygopro.app/Contents/Resources;
-
rm -rf dist/macos-x64 dist/macos-arm64
-
mv resource/gframe/ygopro.icns ygopro.app/Contents/Resources/Icon.icns;
-
defaults write "$PWD/ygopro.app/Contents/Info.plist" "CFBundleIconFile" "Icon.icns";
-
defaults write "$PWD/ygopro.app/Contents/Info.plist" "CFBundleIdentifier" "moe.mycard.ygopro";
artifacts
:
paths
:
-
ygopro.app
#exec_macos_sign:
# stage: sign
# tags:
# - macos
# dependencies:
# - exec_macos
# script: ./.ci/sign-macos.sh
# artifacts:
# paths:
# - ygopro.app
# only:
# - tags
# - master
assets
:
stage
:
prepare
tags
:
-
linux
script
:
-
apt update; apt -y install tar wget git
# starter pack
-
wget -O - https://code.moenext.com/mycard/ygopro-starter-pack/-/archive/master/ygopro-starter-pack-master.tar.gz | tar zfx -
-
mv ygopro-starter-pack-master/* .
# sound
-
wget -O - https://code.moenext.com/mycard/ygopro-sounds/-/archive/master/ygopro-sounds-master.tar.gz | tar zfx -
-
mv ygopro-sounds-master/sound/* sound
# fonts
-
git clone --depth=1 https://code.moenext.com/mycard/ygopro-fonts
-
mv ygopro-fonts/fonts .
# pack
-
git clone --depth=1 https://code.moenext.com/mycard/ygopro-card-list
-
mv ygopro-card-list/pack .
# locales
-
git clone --depth=1 https://code.moenext.com/nanahira/ygopro-database
-
mv ygopro-database/locales .
artifacts
:
paths
:
-
deck
-
single
-
sound
-
fonts
-
pack
-
locales
only
:
-
tags
-
master
assets_nonwindows
:
stage
:
prepare
tags
:
-
linux
script
:
-
apt update; apt -y install tar wget
-
wget -O - https://cdn02.moecube.com:444/windbot/windbot.tar.gz | tar zfx -
artifacts
:
paths
:
-
bot.conf
-
windbot
-
bot
only
:
-
tags
-
master
assets_windows
:
stage
:
prepare
tags
:
-
linux
script
:
-
wget https://cdn02.moecube.com:444/windbot/WindBot.7z
-
7z x -y WindBot.7z
-
aws s3 --endpoint=https://minio.mycard.moe:9000 sync s3://mycard/koishipro/contents/update-koishipro/ ./update-koishipro
-
rm -rf update-koishipro/.git ||
true
artifacts
:
paths
:
-
bot.conf
-
WindBot
-
Bot.exe
-
update-koishipro
only
:
-
tags
-
master
._locale_zh-CN
:
variables
:
TARGET_LOCALE
:
zh-CN
._locale_en-US
:
variables
:
TARGET_LOCALE
:
en-US
._assets_locale
:
stage
:
build
tags
:
-
linux
script
:
./.ci/assets-locale.sh
artifacts
:
paths
:
-
pics
-
cards.cdb
-
strings.conf
-
bot.conf
-
servers.conf
only
:
-
tags
-
master
assets_zh-CN
:
extends
:
-
._assets_locale
-
._locale_zh-CN
assets_en-US
:
extends
:
-
._assets_locale
-
._locale_en-US
._pack
:
stage
:
pack
tags
:
-
linux
artifacts
:
artifacts
:
paths
:
paths
:
-
dist
-
dist
...
...
gframe/data_manager.cpp
View file @
95ed3727
...
@@ -145,6 +145,17 @@ bool DataManager::LoadStrings(const char* file) {
...
@@ -145,6 +145,17 @@ bool DataManager::LoadStrings(const char* file) {
std
::
fclose
(
fp
);
std
::
fclose
(
fp
);
return
true
;
return
true
;
}
}
bool
DataManager
::
LoadStrings
(
const
wchar_t
*
file
)
{
FILE
*
fp
=
mywfopen
(
file
,
"r"
);
if
(
!
fp
)
return
false
;
char
linebuf
[
TEXT_LINE_SIZE
]{};
while
(
std
::
fgets
(
linebuf
,
sizeof
linebuf
,
fp
))
{
ReadStringConfLine
(
linebuf
);
}
std
::
fclose
(
fp
);
return
true
;
}
bool
DataManager
::
LoadStrings
(
irr
::
io
::
IReadFile
*
reader
)
{
bool
DataManager
::
LoadStrings
(
irr
::
io
::
IReadFile
*
reader
)
{
char
ch
{};
char
ch
{};
std
::
string
linebuf
;
std
::
string
linebuf
;
...
@@ -191,6 +202,159 @@ void DataManager::ReadStringConfLine(const char* linebuf) {
...
@@ -191,6 +202,159 @@ void DataManager::ReadStringConfLine(const char* linebuf) {
_setnameStrings
[
value
]
=
strBuffer
;
_setnameStrings
[
value
]
=
strBuffer
;
}
}
}
}
bool
DataManager
::
LoadServerList
(
const
char
*
file
)
{
FILE
*
fp
=
myfopen
(
file
,
"r"
);
if
(
!
fp
)
return
false
;
char
linebuf
[
TEXT_LINE_SIZE
]{};
while
(
std
::
fgets
(
linebuf
,
sizeof
linebuf
,
fp
))
{
ReadServerConfLine
(
linebuf
);
}
std
::
fclose
(
fp
);
return
true
;
}
bool
DataManager
::
LoadServerList
(
const
wchar_t
*
file
)
{
FILE
*
fp
=
mywfopen
(
file
,
"r"
);
if
(
!
fp
)
return
false
;
char
linebuf
[
TEXT_LINE_SIZE
]{};
while
(
std
::
fgets
(
linebuf
,
sizeof
linebuf
,
fp
))
{
ReadServerConfLine
(
linebuf
);
}
std
::
fclose
(
fp
);
return
true
;
}
bool
DataManager
::
LoadServerList
(
irr
::
io
::
IReadFile
*
reader
)
{
char
ch
{};
std
::
string
linebuf
;
while
(
reader
->
read
(
&
ch
,
1
))
{
if
(
ch
==
'\0'
)
break
;
linebuf
.
push_back
(
ch
);
if
(
ch
==
'\n'
||
linebuf
.
size
()
>=
TEXT_LINE_SIZE
-
1
)
{
ReadServerConfLine
(
linebuf
.
data
());
linebuf
.
clear
();
}
}
reader
->
drop
();
return
true
;
}
void
DataManager
::
ReadServerConfLine
(
const
char
*
linebuf
)
{
char
buffer
[
1024
];
std
::
strncpy
(
buffer
,
linebuf
,
sizeof
(
buffer
)
-
1
);
buffer
[
sizeof
(
buffer
)
-
1
]
=
'\0'
;
buffer
[
strcspn
(
buffer
,
"
\n
"
)]
=
'\0'
;
char
*
sep1
=
std
::
strchr
(
buffer
,
'|'
);
if
(
sep1
!=
nullptr
)
{
*
sep1
=
'\0'
;
char
*
addrPart
=
sep1
+
1
;
wchar_t
wname
[
256
],
wip
[
512
];
// read the server name
BufferIO
::
DecodeUTF8
(
buffer
,
wname
);
// replace the first '|' with ':'
char
*
sep2
=
std
::
strchr
(
addrPart
,
'|'
);
if
(
sep2
)
{
*
sep2
=
':'
;
}
BufferIO
::
DecodeUTF8
(
addrPart
,
wip
);
_serverStrings
.
emplace_back
(
wname
,
wip
);
}
}
bool
DataManager
::
LoadCorresSrvIni
(
const
char
*
file
)
{
FILE
*
fp
=
myfopen
(
file
,
"r"
);
if
(
!
fp
)
return
false
;
char
linebuf
[
TEXT_LINE_SIZE
]{};
while
(
std
::
fgets
(
linebuf
,
sizeof
linebuf
,
fp
))
{
ReadCorresSrvIniLine
(
linebuf
);
}
std
::
fclose
(
fp
);
InsertServerList
();
return
true
;
}
bool
DataManager
::
LoadCorresSrvIni
(
const
wchar_t
*
file
)
{
FILE
*
fp
=
mywfopen
(
file
,
"r"
);
if
(
!
fp
)
return
false
;
char
linebuf
[
TEXT_LINE_SIZE
]{};
while
(
std
::
fgets
(
linebuf
,
sizeof
linebuf
,
fp
))
{
ReadCorresSrvIniLine
(
linebuf
);
}
std
::
fclose
(
fp
);
InsertServerList
();
return
true
;
}
bool
DataManager
::
LoadCorresSrvIni
(
irr
::
io
::
IReadFile
*
reader
)
{
char
ch
{};
std
::
string
linebuf
;
while
(
reader
->
read
(
&
ch
,
1
))
{
if
(
ch
==
'\0'
)
break
;
linebuf
.
push_back
(
ch
);
if
(
ch
==
'\n'
||
linebuf
.
size
()
>=
TEXT_LINE_SIZE
-
1
)
{
ReadCorresSrvIniLine
(
linebuf
.
data
());
linebuf
.
clear
();
}
}
reader
->
drop
();
InsertServerList
();
return
true
;
}
void
DataManager
::
ReadCorresSrvIniLine
(
const
char
*
linebuf
)
{
std
::
wstring
name
=
GetINIValue
(
linebuf
,
"ServerName = "
);
std
::
wstring
host
=
GetINIValue
(
linebuf
,
"ServerHost = "
);
std
::
wstring
port
=
GetINIValue
(
linebuf
,
"ServerPort = "
);
if
(
name
!=
L""
)
iniName
=
name
;
if
(
host
!=
L""
)
iniHost
=
host
;
if
(
port
!=
L""
)
iniPort
=
port
;
}
std
::
wstring
DataManager
::
GetINIValue
(
const
char
*
line
,
const
char
*
key
)
{
if
(
!
line
||
!
key
)
{
return
L""
;
}
const
char
*
keyPos
=
strstr
(
line
,
key
);
if
(
!
keyPos
)
{
return
L""
;
}
const
char
*
valStart
=
keyPos
+
strlen
(
key
);
while
(
*
valStart
==
' '
)
valStart
++
;
const
char
*
valEnd
=
valStart
;
while
(
*
valEnd
&&
*
valEnd
!=
'\n'
&&
*
valEnd
!=
'\r'
)
valEnd
++
;
if
(
valStart
==
valEnd
)
return
L""
;
std
::
string
narrowStr
(
valStart
,
valEnd
);
if
(
narrowStr
.
empty
())
return
L""
;
wchar_t
wbuf
[
1024
];
BufferIO
::
DecodeUTF8
(
narrowStr
.
c_str
(),
wbuf
);
return
wbuf
;
}
void
DataManager
::
InsertServerList
()
{
if
(
iniName
!=
L""
&&
iniHost
!=
L""
)
{
std
::
wstring
ip
=
iniHost
;
if
(
iniPort
!=
L""
)
{
ip
+=
L":"
;
ip
+=
iniPort
;
}
_serverStrings
.
emplace_back
(
iniName
,
ip
);
}
iniName
.
clear
();
iniHost
.
clear
();
iniPort
.
clear
();
}
#endif //YGOPRO_SERVER_MODE
#endif //YGOPRO_SERVER_MODE
bool
DataManager
::
Error
(
sqlite3
*
pDB
,
sqlite3_stmt
*
pStmt
)
{
bool
DataManager
::
Error
(
sqlite3
*
pDB
,
sqlite3_stmt
*
pStmt
)
{
std
::
snprintf
(
errmsg
,
sizeof
errmsg
,
"%s"
,
sqlite3_errmsg
(
pDB
));
std
::
snprintf
(
errmsg
,
sizeof
errmsg
,
"%s"
,
sqlite3_errmsg
(
pDB
));
...
...
gframe/data_manager.h
View file @
95ed3727
...
@@ -50,8 +50,19 @@ public:
...
@@ -50,8 +50,19 @@ public:
#endif
#endif
#ifndef YGOPRO_SERVER_MODE
#ifndef YGOPRO_SERVER_MODE
bool
LoadStrings
(
const
char
*
file
);
bool
LoadStrings
(
const
char
*
file
);
bool
LoadStrings
(
const
wchar_t
*
file
);
bool
LoadStrings
(
irr
::
io
::
IReadFile
*
reader
);
bool
LoadStrings
(
irr
::
io
::
IReadFile
*
reader
);
void
ReadStringConfLine
(
const
char
*
linebuf
);
void
ReadStringConfLine
(
const
char
*
linebuf
);
bool
LoadServerList
(
const
char
*
file
);
bool
LoadServerList
(
const
wchar_t
*
file
);
bool
LoadServerList
(
irr
::
io
::
IReadFile
*
reader
);
void
ReadServerConfLine
(
const
char
*
linebuf
);
bool
LoadCorresSrvIni
(
const
char
*
file
);
bool
LoadCorresSrvIni
(
const
wchar_t
*
file
);
bool
LoadCorresSrvIni
(
irr
::
io
::
IReadFile
*
reader
);
void
ReadCorresSrvIniLine
(
const
char
*
linebuf
);
std
::
wstring
GetINIValue
(
const
char
*
line
,
const
char
*
key
);
void
InsertServerList
();
#endif
#endif
bool
Error
(
sqlite3
*
pDB
,
sqlite3_stmt
*
pStmt
=
nullptr
);
bool
Error
(
sqlite3
*
pDB
,
sqlite3_stmt
*
pStmt
=
nullptr
);
...
@@ -86,6 +97,7 @@ public:
...
@@ -86,6 +97,7 @@ public:
std
::
unordered_map
<
unsigned
int
,
std
::
wstring
>
_victoryStrings
;
std
::
unordered_map
<
unsigned
int
,
std
::
wstring
>
_victoryStrings
;
std
::
unordered_map
<
unsigned
int
,
std
::
wstring
>
_setnameStrings
;
std
::
unordered_map
<
unsigned
int
,
std
::
wstring
>
_setnameStrings
;
std
::
unordered_map
<
unsigned
int
,
std
::
wstring
>
_sysStrings
;
std
::
unordered_map
<
unsigned
int
,
std
::
wstring
>
_sysStrings
;
std
::
vector
<
std
::
pair
<
std
::
wstring
,
std
::
wstring
>>
_serverStrings
;
#endif
#endif
char
errmsg
[
512
]{};
char
errmsg
[
512
]{};
...
@@ -122,6 +134,9 @@ private:
...
@@ -122,6 +134,9 @@ private:
std
::
unordered_map
<
unsigned
int
,
CardDataC
>
_datas
;
std
::
unordered_map
<
unsigned
int
,
CardDataC
>
_datas
;
std
::
unordered_map
<
unsigned
int
,
CardString
>
_strings
;
std
::
unordered_map
<
unsigned
int
,
CardString
>
_strings
;
std
::
unordered_map
<
unsigned
int
,
std
::
vector
<
uint16_t
>>
extra_setcode
;
std
::
unordered_map
<
unsigned
int
,
std
::
vector
<
uint16_t
>>
extra_setcode
;
std
::
wstring
iniName
;
std
::
wstring
iniHost
;
std
::
wstring
iniPort
;
};
};
extern
DataManager
dataManager
;
extern
DataManager
dataManager
;
...
...
gframe/duelclient.cpp
View file @
95ed3727
...
@@ -386,7 +386,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, int len) {
...
@@ -386,7 +386,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, int len) {
break
;
break
;
}
}
case
ERRMSG_VERERROR
:
{
case
ERRMSG_VERERROR
:
{
if
(
temp_ver
)
{
if
(
temp_ver
||
!
mainGame
->
gameConf
.
freever
)
{
temp_ver
=
0
;
temp_ver
=
0
;
mainGame
->
btnCreateHost
->
setEnabled
(
true
);
mainGame
->
btnCreateHost
->
setEnabled
(
true
);
mainGame
->
btnJoinHost
->
setEnabled
(
true
);
mainGame
->
btnJoinHost
->
setEnabled
(
true
);
...
@@ -622,6 +622,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, int len) {
...
@@ -622,6 +622,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, int len) {
mainGame
->
cbDeckSelect
->
setEnabled
(
true
);
mainGame
->
cbDeckSelect
->
setEnabled
(
true
);
mainGame
->
HideElement
(
mainGame
->
wCreateHost
);
mainGame
->
HideElement
(
mainGame
->
wCreateHost
);
mainGame
->
HideElement
(
mainGame
->
wLanWindow
);
mainGame
->
HideElement
(
mainGame
->
wLanWindow
);
mainGame
->
HideElement
(
mainGame
->
wServerList
);
mainGame
->
HideElement
(
mainGame
->
wSinglePlay
);
mainGame
->
HideElement
(
mainGame
->
wSinglePlay
);
mainGame
->
ShowElement
(
mainGame
->
wHostPrepare
);
mainGame
->
ShowElement
(
mainGame
->
wHostPrepare
);
mainGame
->
ResizeChatInputWindow
();
mainGame
->
ResizeChatInputWindow
();
...
...
gframe/game.cpp
View file @
95ed3727
...
@@ -180,6 +180,8 @@ bool Game::Initialize() {
...
@@ -180,6 +180,8 @@ bool Game::Initialize() {
ErrorLog
(
"Failed to load strings!"
);
ErrorLog
(
"Failed to load strings!"
);
return
false
;
return
false
;
}
}
if
(
dataManager
.
LoadServerList
(
GetLocaleDir
(
"servers.conf"
)))
{}
else
dataManager
.
LoadServerList
(
"servers.conf"
);
dataManager
.
LoadDB
(
L"specials/special.cdb"
);
dataManager
.
LoadDB
(
L"specials/special.cdb"
);
env
=
device
->
getGUIEnvironment
();
env
=
device
->
getGUIEnvironment
();
numFont
=
irr
::
gui
::
CGUITTFont
::
createTTFont
(
env
,
gameConf
.
numfont
,
16
);
numFont
=
irr
::
gui
::
CGUITTFont
::
createTTFont
(
env
,
gameConf
.
numfont
,
16
);
...
@@ -291,7 +293,8 @@ bool Game::Initialize() {
...
@@ -291,7 +293,8 @@ bool Game::Initialize() {
editbox_list
.
push_back
(
ebNickName
);
editbox_list
.
push_back
(
ebNickName
);
lstHostList
=
env
->
addListBox
(
irr
::
core
::
rect
<
irr
::
s32
>
(
10
,
60
,
570
,
320
),
wLanWindow
,
LISTBOX_LAN_HOST
,
true
);
lstHostList
=
env
->
addListBox
(
irr
::
core
::
rect
<
irr
::
s32
>
(
10
,
60
,
570
,
320
),
wLanWindow
,
LISTBOX_LAN_HOST
,
true
);
lstHostList
->
setItemHeight
(
18
);
lstHostList
->
setItemHeight
(
18
);
btnLanRefresh
=
env
->
addButton
(
irr
::
core
::
rect
<
irr
::
s32
>
(
240
,
325
,
340
,
350
),
wLanWindow
,
BUTTON_LAN_REFRESH
,
dataManager
.
GetSysString
(
1217
));
btnLanRefresh
=
env
->
addButton
(
irr
::
core
::
rect
<
irr
::
s32
>
(
150
,
325
,
250
,
350
),
wLanWindow
,
BUTTON_LAN_REFRESH
,
dataManager
.
GetSysString
(
1217
));
btnServerList
=
env
->
addButton
(
irr
::
core
::
rect
<
irr
::
s32
>
(
280
,
325
,
380
,
350
),
wLanWindow
,
BUTTON_SERVER_LIST
,
dataManager
.
GetSysString
(
1239
));
env
->
addStaticText
(
dataManager
.
GetSysString
(
1221
),
irr
::
core
::
rect
<
irr
::
s32
>
(
10
,
360
,
220
,
380
),
false
,
false
,
wLanWindow
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1221
),
irr
::
core
::
rect
<
irr
::
s32
>
(
10
,
360
,
220
,
380
),
false
,
false
,
wLanWindow
);
ebJoinHost
=
env
->
addEditBox
(
gameConf
.
lasthost
,
irr
::
core
::
rect
<
irr
::
s32
>
(
110
,
355
,
420
,
380
),
true
,
wLanWindow
);
ebJoinHost
=
env
->
addEditBox
(
gameConf
.
lasthost
,
irr
::
core
::
rect
<
irr
::
s32
>
(
110
,
355
,
420
,
380
),
true
,
wLanWindow
);
ebJoinHost
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
ebJoinHost
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
...
@@ -415,6 +418,15 @@ bool Game::Initialize() {
...
@@ -415,6 +418,15 @@ bool Game::Initialize() {
btnHostPrepNotReady
->
setVisible
(
false
);
btnHostPrepNotReady
->
setVisible
(
false
);
btnHostPrepStart
=
env
->
addButton
(
irr
::
core
::
rect
<
irr
::
s32
>
(
230
,
280
,
340
,
305
),
wHostPrepare
,
BUTTON_HP_START
,
dataManager
.
GetSysString
(
1215
));
btnHostPrepStart
=
env
->
addButton
(
irr
::
core
::
rect
<
irr
::
s32
>
(
230
,
280
,
340
,
305
),
wHostPrepare
,
BUTTON_HP_START
,
dataManager
.
GetSysString
(
1215
));
btnHostPrepCancel
=
env
->
addButton
(
irr
::
core
::
rect
<
irr
::
s32
>
(
350
,
280
,
460
,
305
),
wHostPrepare
,
BUTTON_HP_CANCEL
,
dataManager
.
GetSysString
(
1210
));
btnHostPrepCancel
=
env
->
addButton
(
irr
::
core
::
rect
<
irr
::
s32
>
(
350
,
280
,
460
,
305
),
wHostPrepare
,
BUTTON_HP_CANCEL
,
dataManager
.
GetSysString
(
1210
));
//server list
wServerList
=
env
->
addWindow
(
irr
::
core
::
rect
<
irr
::
s32
>
(
25
,
80
,
325
,
400
),
false
,
dataManager
.
GetSysString
(
1239
));
wServerList
->
getCloseButton
()
->
setVisible
(
false
);
wServerList
->
setVisible
(
false
);
wServerList
->
setDraggable
(
true
);
lstServerList
=
env
->
addListBox
(
irr
::
core
::
rect
<
irr
::
s32
>
(
10
,
20
,
290
,
270
),
wServerList
,
LISTBOX_SERVER_LIST
,
true
);
lstServerList
->
setItemHeight
(
18
);
RefreshServerList
();
btnServerReturn
=
env
->
addButton
(
irr
::
core
::
rect
<
irr
::
s32
>
(
100
,
280
,
200
,
310
),
wServerList
,
BUTTON_SERVER_RETURN
,
dataManager
.
GetSysString
(
1210
));
//img
//img
wCardImg
=
env
->
addStaticText
(
L""
,
irr
::
core
::
rect
<
irr
::
s32
>
(
1
,
1
,
1
+
CARD_IMG_WIDTH
+
20
,
1
+
CARD_IMG_HEIGHT
+
18
),
true
,
false
,
0
,
-
1
,
true
);
wCardImg
=
env
->
addStaticText
(
L""
,
irr
::
core
::
rect
<
irr
::
s32
>
(
1
,
1
,
1
+
CARD_IMG_WIDTH
+
20
,
1
+
CARD_IMG_HEIGHT
+
18
),
true
,
false
,
0
,
-
1
,
true
);
wCardImg
->
setBackgroundColor
(
0xc0c0c0c0
);
wCardImg
->
setBackgroundColor
(
0xc0c0c0c0
);
...
@@ -1290,6 +1302,7 @@ std::wstring Game::SetStaticText(irr::gui::IGUIStaticText* pControl, irr::u32 cW
...
@@ -1290,6 +1302,7 @@ std::wstring Game::SetStaticText(irr::gui::IGUIStaticText* pControl, irr::u32 cW
#endif //YGOPRO_SERVER_MODE
#endif //YGOPRO_SERVER_MODE
void
Game
::
LoadExpansions
(
const
wchar_t
*
expansions_path
)
{
void
Game
::
LoadExpansions
(
const
wchar_t
*
expansions_path
)
{
bool
lflist_changed
=
false
;
bool
lflist_changed
=
false
;
bool
server_list_changed
=
false
;
FileSystem
::
TraversalDir
(
expansions_path
,
[
&
](
const
wchar_t
*
name
,
bool
isdir
)
{
FileSystem
::
TraversalDir
(
expansions_path
,
[
&
](
const
wchar_t
*
name
,
bool
isdir
)
{
if
(
isdir
)
if
(
isdir
)
return
;
return
;
...
@@ -1303,15 +1316,25 @@ void Game::LoadExpansions(const wchar_t* expansions_path) {
...
@@ -1303,15 +1316,25 @@ void Game::LoadExpansions(const wchar_t* expansions_path) {
if
(
!
std
::
wcscmp
(
name
,
L"lflist.conf"
))
{
if
(
!
std
::
wcscmp
(
name
,
L"lflist.conf"
))
{
deckManager
.
LoadLFListSingle
(
fpath
,
true
);
deckManager
.
LoadLFListSingle
(
fpath
,
true
);
lflist_changed
=
true
;
lflist_changed
=
true
;
}
else
if
(
!
std
::
wcscmp
(
name
,
L"servers.conf"
))
{
#ifndef YGOPRO_SERVER_MODE
dataManager
.
LoadServerList
(
fpath
);
server_list_changed
=
true
;
#endif
}
else
{
}
else
{
#ifndef YGOPRO_SERVER_MODE
#ifndef YGOPRO_SERVER_MODE
char
upath
[
1024
];
dataManager
.
LoadStrings
(
fpath
);
BufferIO
::
EncodeUTF8
(
fpath
,
upath
);
dataManager
.
LoadStrings
(
upath
);
#endif
#endif
}
}
return
;
return
;
}
}
#ifndef YGOPRO_SERVER_MODE
if
(
!
std
::
wcscmp
(
name
,
L"corres_srv.ini"
))
{
dataManager
.
LoadCorresSrvIni
(
fpath
);
server_list_changed
=
true
;
return
;
}
#endif
#if defined(SERVER_ZIP_SUPPORT) || !defined(YGOPRO_SERVER_MODE)
#if defined(SERVER_ZIP_SUPPORT) || !defined(YGOPRO_SERVER_MODE)
if
(
IsExtension
(
name
,
L".zip"
)
||
IsExtension
(
name
,
L".ypk"
))
{
if
(
IsExtension
(
name
,
L".zip"
)
||
IsExtension
(
name
,
L".ypk"
))
{
#ifdef _WIN32
#ifdef _WIN32
...
@@ -1353,6 +1376,11 @@ void Game::LoadExpansions(const wchar_t* expansions_path) {
...
@@ -1353,6 +1376,11 @@ void Game::LoadExpansions(const wchar_t* expansions_path) {
if
(
!
std
::
wcscmp
(
fname
,
L"lflist.conf"
))
{
if
(
!
std
::
wcscmp
(
fname
,
L"lflist.conf"
))
{
deckManager
.
LoadLFListSingle
(
reader
,
true
);
deckManager
.
LoadLFListSingle
(
reader
,
true
);
lflist_changed
=
true
;
lflist_changed
=
true
;
}
else
if
(
!
std
::
wcscmp
(
fname
,
L"servers.conf"
))
{
#ifndef YGOPRO_SERVER_MODE
dataManager
.
LoadServerList
(
reader
);
server_list_changed
=
true
;
#endif
}
else
{
}
else
{
#ifndef YGOPRO_SERVER_MODE
#ifndef YGOPRO_SERVER_MODE
dataManager
.
LoadStrings
(
reader
);
dataManager
.
LoadStrings
(
reader
);
...
@@ -1361,6 +1389,10 @@ void Game::LoadExpansions(const wchar_t* expansions_path) {
...
@@ -1361,6 +1389,10 @@ void Game::LoadExpansions(const wchar_t* expansions_path) {
continue
;
continue
;
}
}
#ifndef YGOPRO_SERVER_MODE
#ifndef YGOPRO_SERVER_MODE
if
(
!
std
::
wcscmp
(
fname
,
L"corres_srv.ini"
))
{
dataManager
.
LoadCorresSrvIni
(
createReader
());
server_list_changed
=
true
;
}
if
(
!
mywcsncasecmp
(
fname
,
L"pack/"
,
5
)
&&
IsExtension
(
fname
,
L".ydk"
))
{
if
(
!
mywcsncasecmp
(
fname
,
L"pack/"
,
5
)
&&
IsExtension
(
fname
,
L".ydk"
))
{
deckBuilder
.
expansionPacks
.
push_back
(
fname
);
deckBuilder
.
expansionPacks
.
push_back
(
fname
);
continue
;
continue
;
...
@@ -1372,6 +1404,8 @@ void Game::LoadExpansions(const wchar_t* expansions_path) {
...
@@ -1372,6 +1404,8 @@ void Game::LoadExpansions(const wchar_t* expansions_path) {
#ifndef YGOPRO_SERVER_MODE
#ifndef YGOPRO_SERVER_MODE
if
(
lflist_changed
)
if
(
lflist_changed
)
RefreshLFList
();
RefreshLFList
();
if
(
server_list_changed
)
RefreshServerList
();
#endif
#endif
}
}
void
Game
::
LoadExpansionsAll
()
{
void
Game
::
LoadExpansionsAll
()
{
...
@@ -1589,6 +1623,13 @@ void Game::RefreshBot() {
...
@@ -1589,6 +1623,13 @@ void Game::RefreshBot() {
RefreshCategoryDeck
(
cbBotDeckCategory
,
cbBotDeck
);
RefreshCategoryDeck
(
cbBotDeckCategory
,
cbBotDeck
);
}
}
}
}
void
Game
::
RefreshServerList
()
{
lstServerList
->
clear
();
for
(
const
auto
&
pair
:
dataManager
.
_serverStrings
)
{
const
wchar_t
*
key
=
pair
.
first
.
c_str
();
lstServerList
->
addItem
(
key
);
}
}
bool
Game
::
LoadConfigFromFile
(
const
char
*
file
)
{
bool
Game
::
LoadConfigFromFile
(
const
char
*
file
)
{
FILE
*
fp
=
myfopen
(
file
,
"r"
);
FILE
*
fp
=
myfopen
(
file
,
"r"
);
if
(
!
fp
){
if
(
!
fp
){
...
@@ -1606,12 +1647,14 @@ bool Game::LoadConfigFromFile(const char* file) {
...
@@ -1606,12 +1647,14 @@ bool Game::LoadConfigFromFile(const char* file) {
gameConf
.
use_d3d
=
std
::
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
gameConf
.
use_d3d
=
std
::
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"use_image_scale"
))
{
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"use_image_scale"
))
{
gameConf
.
use_image_scale
=
std
::
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
gameConf
.
use_image_scale
=
std
::
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"pro_version"
))
{
PRO_VERSION
=
std
::
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"use_image_scale_multi_thread"
))
{
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"use_image_scale_multi_thread"
))
{
gameConf
.
use_image_scale_multi_thread
=
std
::
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
gameConf
.
use_image_scale_multi_thread
=
std
::
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"use_image_load_background_thread"
))
{
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"use_image_load_background_thread"
))
{
gameConf
.
use_image_load_background_thread
=
std
::
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
gameConf
.
use_image_load_background_thread
=
std
::
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"pro_version"
))
{
PRO_VERSION
=
std
::
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"freever"
))
{
gameConf
.
freever
=
std
::
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"errorlog"
))
{
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"errorlog"
))
{
unsigned
int
val
=
std
::
strtol
(
valbuf
,
nullptr
,
10
);
unsigned
int
val
=
std
::
strtol
(
valbuf
,
nullptr
,
10
);
enable_log
=
val
&
0xff
;
enable_log
=
val
&
0xff
;
...
@@ -1884,6 +1927,7 @@ void Game::SaveConfig() {
...
@@ -1884,6 +1927,7 @@ void Game::SaveConfig() {
std
::
fprintf
(
fp
,
"use_image_scale_multi_thread = %d
\n
"
,
gameConf
.
use_image_scale_multi_thread
?
1
:
0
);
std
::
fprintf
(
fp
,
"use_image_scale_multi_thread = %d
\n
"
,
gameConf
.
use_image_scale_multi_thread
?
1
:
0
);
std
::
fprintf
(
fp
,
"use_image_load_background_thread = %d
\n
"
,
gameConf
.
use_image_load_background_thread
?
1
:
0
);
std
::
fprintf
(
fp
,
"use_image_load_background_thread = %d
\n
"
,
gameConf
.
use_image_load_background_thread
?
1
:
0
);
std
::
fprintf
(
fp
,
"pro_version = %d
\n
"
,
PRO_VERSION
);
std
::
fprintf
(
fp
,
"pro_version = %d
\n
"
,
PRO_VERSION
);
std
::
fprintf
(
fp
,
"freever = %d
\n
"
,
gameConf
.
freever
?
1
:
0
);
std
::
fprintf
(
fp
,
"antialias = %d
\n
"
,
gameConf
.
antialias
);
std
::
fprintf
(
fp
,
"antialias = %d
\n
"
,
gameConf
.
antialias
);
std
::
fprintf
(
fp
,
"errorlog = %u
\n
"
,
enable_log
);
std
::
fprintf
(
fp
,
"errorlog = %u
\n
"
,
enable_log
);
BufferIO
::
CopyWideString
(
ebNickName
->
getText
(),
gameConf
.
nickname
);
BufferIO
::
CopyWideString
(
ebNickName
->
getText
(),
gameConf
.
nickname
);
...
@@ -2286,6 +2330,7 @@ void Game::CloseDuelWindow() {
...
@@ -2286,6 +2330,7 @@ void Game::CloseDuelWindow() {
lstLog
->
clear
();
lstLog
->
clear
();
logParam
.
clear
();
logParam
.
clear
();
lstHostList
->
clear
();
lstHostList
->
clear
();
lstServerList
->
clear
();
DuelClient
::
hosts
.
clear
();
DuelClient
::
hosts
.
clear
();
DuelClient
::
hosts_srvpro
.
clear
();
DuelClient
::
hosts_srvpro
.
clear
();
ClearTextures
();
ClearTextures
();
...
...
gframe/game.h
View file @
95ed3727
...
@@ -65,6 +65,7 @@ struct Config {
...
@@ -65,6 +65,7 @@ struct Config {
#else
#else
bool
use_image_load_background_thread
{
true
};
bool
use_image_load_background_thread
{
true
};
#endif
#endif
bool
freever
{
true
};
unsigned
short
antialias
{
0
};
unsigned
short
antialias
{
0
};
unsigned
short
serverport
{
7911
};
unsigned
short
serverport
{
7911
};
unsigned
char
textfontsize
{
14
};
unsigned
char
textfontsize
{
14
};
...
@@ -218,6 +219,7 @@ public:
...
@@ -218,6 +219,7 @@ public:
void
RefreshBot
();
void
RefreshBot
();
void
RefreshLocales
();
void
RefreshLocales
();
void
RefreshLFList
();
void
RefreshLFList
();
void
RefreshServerList
();
void
DrawSelectionLine
(
irr
::
video
::
S3DVertex
*
vec
,
bool
strip
,
int
width
,
float
*
cv
);
void
DrawSelectionLine
(
irr
::
video
::
S3DVertex
*
vec
,
bool
strip
,
int
width
,
float
*
cv
);
void
DrawSelectionLine
(
irr
::
gui
::
IGUIElement
*
element
,
int
width
,
irr
::
video
::
SColor
color
);
void
DrawSelectionLine
(
irr
::
gui
::
IGUIElement
*
element
,
int
width
,
irr
::
video
::
SColor
color
);
void
DrawBackGround
();
void
DrawBackGround
();
...
@@ -711,6 +713,11 @@ public:
...
@@ -711,6 +713,11 @@ public:
irr
::
gui
::
IGUIButton
*
btnBigCardZoomIn
;
irr
::
gui
::
IGUIButton
*
btnBigCardZoomIn
;
irr
::
gui
::
IGUIButton
*
btnBigCardZoomOut
;
irr
::
gui
::
IGUIButton
*
btnBigCardZoomOut
;
irr
::
gui
::
IGUIButton
*
btnBigCardClose
;
irr
::
gui
::
IGUIButton
*
btnBigCardClose
;
//server list
irr
::
gui
::
IGUIButton
*
btnServerList
;
irr
::
gui
::
IGUIWindow
*
wServerList
;
irr
::
gui
::
IGUIListBox
*
lstServerList
;
irr
::
gui
::
IGUIButton
*
btnServerReturn
;
#endif //YGOPRO_SERVER_MODE
#endif //YGOPRO_SERVER_MODE
};
};
...
@@ -953,6 +960,10 @@ extern uint32_t duel_flags;
...
@@ -953,6 +960,10 @@ extern uint32_t duel_flags;
#define BUTTON_DECK_CODE_SAVE 390
#define BUTTON_DECK_CODE_SAVE 390
#define BUTTON_DECK_CODE_CANCEL 391
#define BUTTON_DECK_CODE_CANCEL 391
#define BUTTON_SERVER_LIST 392
#define LISTBOX_SERVER_LIST 393
#define BUTTON_SERVER_RETURN 394
#define TEXTURE_DUEL 0
#define TEXTURE_DUEL 0
#define TEXTURE_DECK 1
#define TEXTURE_DECK 1
#define TEXTURE_MENU 2
#define TEXTURE_MENU 2
...
...
gframe/menu_handler.cpp
View file @
95ed3727
...
@@ -91,6 +91,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
...
@@ -91,6 +91,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
}
}
case
BUTTON_JOIN_CANCEL
:
{
case
BUTTON_JOIN_CANCEL
:
{
mainGame
->
HideElement
(
mainGame
->
wLanWindow
);
mainGame
->
HideElement
(
mainGame
->
wLanWindow
);
mainGame
->
HideElement
(
mainGame
->
wServerList
);
mainGame
->
ShowElement
(
mainGame
->
wMainMenu
);
mainGame
->
ShowElement
(
mainGame
->
wMainMenu
);
if
(
exit_on_return
)
if
(
exit_on_return
)
mainGame
->
device
->
closeDevice
();
mainGame
->
device
->
closeDevice
();
...
@@ -104,6 +105,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
...
@@ -104,6 +105,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame
->
btnHostConfirm
->
setEnabled
(
true
);
mainGame
->
btnHostConfirm
->
setEnabled
(
true
);
mainGame
->
btnHostCancel
->
setEnabled
(
true
);
mainGame
->
btnHostCancel
->
setEnabled
(
true
);
mainGame
->
HideElement
(
mainGame
->
wLanWindow
);
mainGame
->
HideElement
(
mainGame
->
wLanWindow
);
mainGame
->
HideElement
(
mainGame
->
wServerList
);
mainGame
->
ShowElement
(
mainGame
->
wCreateHost
);
mainGame
->
ShowElement
(
mainGame
->
wCreateHost
);
break
;
break
;
}
}
...
@@ -484,6 +486,15 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
...
@@ -484,6 +486,15 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
prev_sel
=
-
1
;
prev_sel
=
-
1
;
break
;
break
;
}
}
case
BUTTON_SERVER_LIST
:
{
mainGame
->
ShowElement
(
mainGame
->
wServerList
);
mainGame
->
PopupElement
(
mainGame
->
wServerList
);
break
;
}
case
BUTTON_SERVER_RETURN
:
{
mainGame
->
HideElement
(
mainGame
->
wServerList
);
break
;
}
}
}
break
;
break
;
}
}
...
@@ -595,6 +606,13 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
...
@@ -595,6 +606,13 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame
->
cbBotDeck
->
setVisible
(
mainGame
->
botInfo
[
sel
].
select_deckfile
);
mainGame
->
cbBotDeck
->
setVisible
(
mainGame
->
botInfo
[
sel
].
select_deckfile
);
break
;
break
;
}
}
case
LISTBOX_SERVER_LIST
:
{
int
sel
=
mainGame
->
lstServerList
->
getSelected
();
auto
target
=
sel
==
-
1
?
L""
:
dataManager
.
_serverStrings
[
sel
].
second
.
c_str
();
BufferIO
::
CopyWideString
(
target
,
mainGame
->
gameConf
.
lasthost
);
mainGame
->
ebJoinHost
->
setText
(
target
);
break
;
}
}
}
break
;
break
;
}
}
...
...
servers.conf
0 → 100644
View file @
95ed3727
Koishi
主服|
koishi
.
momobako
.
com
:
7210
Koishi
DL
服|
koishi
.
momobako
.
com
:
7373
Koishi
无禁服|
koishi
.
momobako
.
com
:
2337
万宁游戏王|
koishi
.
momobako
.
com
:
10000
决斗编年史|
dc
.
momobako
.
com
:
2333
233
服|
s1
.
ygo233
.
com
:
233
233
服
2
区|
s2
.
ygo233
.
com
:
233
2333
约战服|
s1
.
ygo233
.
com
:
2333
strings.conf
View file @
95ed3727
...
@@ -305,6 +305,7 @@
...
@@ -305,6 +305,7 @@
!
system
1236
规则:
!
system
1236
规则:
!
system
1237
每回合时间:
!
system
1237
每回合时间:
!
system
1238
不洗切时回卡组改为回顶端
!
system
1238
不洗切时回卡组改为回顶端
!
system
1239
服务器列表
!
system
1244
单局模式
!
system
1244
单局模式
!
system
1245
比赛模式
!
system
1245
比赛模式
!
system
1246
TAG
!
system
1246
TAG
...
...
system.conf
View file @
95ed3727
...
@@ -2,7 +2,10 @@
...
@@ -2,7 +2,10 @@
#nickname & gamename should be less than 20 characters
#nickname & gamename should be less than 20 characters
use_d3d
=
0
use_d3d
=
0
use_image_scale
=
1
use_image_scale
=
1
use_image_scale_multi_thread
=
1
use_image_load_background_thread
=
0
pro_version
=
4961
pro_version
=
4961
freever
=
1
antialias
=
2
antialias
=
2
errorlog
=
3
errorlog
=
3
nickname
=
Komeiji
Koishi
nickname
=
Komeiji
Koishi
...
...
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