Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-2pick
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-2pick
Commits
fe70771e
Commit
fe70771e
authored
Dec 02, 2018
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
multi_language
parent
c13ed7b6
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
97 additions
and
1 deletion
+97
-1
gframe/event_handler.cpp
gframe/event_handler.cpp
+10
-0
gframe/game.cpp
gframe/game.cpp
+64
-1
gframe/game.h
gframe/game.h
+7
-0
gframe/image_manager.cpp
gframe/image_manager.cpp
+16
-0
No files found.
gframe/event_handler.cpp
View file @
fe70771e
...
@@ -1880,6 +1880,16 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
...
@@ -1880,6 +1880,16 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
}
}
break
;
break
;
}
}
case
irr
:
:
gui
::
EGET_COMBO_BOX_CHANGED
:
{
switch
(
id
)
{
case
COMBOBOX_LOCALE
:
{
myswprintf
(
mainGame
->
gameConf
.
locale
,
L"%ls"
,
mainGame
->
cbLocale
->
getItem
(
mainGame
->
cbLocale
->
getSelected
()));
mainGame
->
SaveConfig
();
break
;
}
}
break
;
}
case
irr
:
:
gui
::
EGET_EDITBOX_ENTER
:
{
case
irr
:
:
gui
::
EGET_EDITBOX_ENTER
:
{
switch
(
id
)
{
switch
(
id
)
{
case
EDITBOX_CHAT
:
{
case
EDITBOX_CHAT
:
{
...
...
gframe/game.cpp
View file @
fe70771e
...
@@ -57,10 +57,12 @@ bool Game::Initialize() {
...
@@ -57,10 +57,12 @@ bool Game::Initialize() {
return
false
;
return
false
;
}
}
LoadExpansionDB
();
LoadExpansionDB
();
if
(
dataManager
.
LoadDB
(
GetLocaleDir
(
"cards.cdb"
)))
{}
else
if
(
!
dataManager
.
LoadDB
(
"cards.cdb"
))
{
if
(
!
dataManager
.
LoadDB
(
"cards.cdb"
))
{
ErrorLog
(
"Failed to load card database (cards.cdb)!"
);
ErrorLog
(
"Failed to load card database (cards.cdb)!"
);
return
false
;
return
false
;
}
}
if
(
dataManager
.
LoadStrings
(
GetLocaleDir
(
"strings.conf"
)))
{}
else
if
(
!
dataManager
.
LoadStrings
(
"strings.conf"
))
{
if
(
!
dataManager
.
LoadStrings
(
"strings.conf"
))
{
ErrorLog
(
"Failed to load strings!"
);
ErrorLog
(
"Failed to load strings!"
);
return
false
;
return
false
;
...
@@ -320,6 +322,9 @@ bool Game::Initialize() {
...
@@ -320,6 +322,9 @@ bool Game::Initialize() {
posY
+=
30
;
posY
+=
30
;
chkMusicMode
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
posX
,
posY
,
posX
+
260
,
posY
+
25
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1281
));
chkMusicMode
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
posX
,
posY
,
posX
+
260
,
posY
+
25
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1281
));
chkMusicMode
->
setChecked
(
gameConf
.
music_mode
!=
0
);
chkMusicMode
->
setChecked
(
gameConf
.
music_mode
!=
0
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1288
),
rect
<
s32
>
(
posX
+
23
,
posY
+
3
,
posX
+
160
,
posY
+
28
),
false
,
false
,
tabSystem
);
cbLocale
=
env
->
addComboBox
(
rect
<
s32
>
(
posX
+
150
,
posY
+
4
,
posX
+
250
,
posY
+
21
),
tabSystem
,
COMBOBOX_LOCALE
);
RefreshLocales
();
//
//
wHand
=
env
->
addWindow
(
rect
<
s32
>
(
500
,
450
,
825
,
605
),
false
,
L""
);
wHand
=
env
->
addWindow
(
rect
<
s32
>
(
500
,
450
,
825
,
605
),
false
,
L""
);
wHand
->
getCloseButton
()
->
setVisible
(
false
);
wHand
->
getCloseButton
()
->
setVisible
(
false
);
...
@@ -906,11 +911,27 @@ void Game::RefreshSingleplay() {
...
@@ -906,11 +911,27 @@ void Game::RefreshSingleplay() {
lstSinglePlayList
->
addItem
(
name
);
lstSinglePlayList
->
addItem
(
name
);
});
});
}
}
void
Game
::
RefreshLocales
()
{
cbLocale
->
clear
();
cbLocale
->
addItem
(
L"default"
);
FileSystem
::
TraversalDir
(
L"./locales"
,
[
this
](
const
wchar_t
*
name
,
bool
isdir
)
{
if
(
isdir
&&
wcscmp
(
name
,
L"."
)
&&
wcscmp
(
name
,
L".."
))
cbLocale
->
addItem
(
name
);
});
for
(
size_t
i
=
0
;
i
<
cbLocale
->
getItemCount
();
++
i
)
{
if
(
!
wcscmp
(
cbLocale
->
getItem
(
i
),
gameConf
.
locale
))
{
cbLocale
->
setSelected
(
i
);
break
;
}
}
}
void
Game
::
RefreshBot
()
{
void
Game
::
RefreshBot
()
{
if
(
!
gameConf
.
enable_bot_mode
)
if
(
!
gameConf
.
enable_bot_mode
)
return
;
return
;
botInfo
.
clear
();
botInfo
.
clear
();
FILE
*
fp
=
fopen
(
"bot.conf"
,
"r"
);
FILE
*
fp
=
fopen
(
GetLocaleDir
(
"bot.conf"
),
"r"
);
if
(
!
fp
)
fp
=
fopen
(
"bot.conf"
,
"r"
);
char
linebuf
[
256
];
char
linebuf
[
256
];
char
strbuf
[
256
];
char
strbuf
[
256
];
if
(
fp
)
{
if
(
fp
)
{
...
@@ -1084,10 +1105,40 @@ void Game::LoadConfig() {
...
@@ -1084,10 +1105,40 @@ void Game::LoadConfig() {
}
else
if
(
!
strcmp
(
strbuf
,
"lastdeck"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"lastdeck"
))
{
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
lastdeck
,
64
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
lastdeck
,
64
);
}
else
if
(
!
strcmp
(
strbuf
,
"locale"
))
{
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
locale
,
64
);
}
}
}
}
}
}
fclose
(
fp
);
fclose
(
fp
);
#ifdef _WIN32
if
(
!
gameConf
.
locale
)
{
unsigned
int
lcid
=
((
unsigned
int
)
GetSystemDefaultLangID
())
&
0xff
;
switch
(
lcid
)
{
case
0x04
:
{
myswprintf
(
mainGame
->
gameConf
.
locale
,
L"%ls"
,
L"zh-CN"
);
break
;
}
case
0x09
:
{
myswprintf
(
mainGame
->
gameConf
.
locale
,
L"%ls"
,
L"en-US"
);
break
;
}
case
0x0a
:
{
myswprintf
(
mainGame
->
gameConf
.
locale
,
L"%ls"
,
L"es-ES"
);
break
;
}
case
0x11
:
{
myswprintf
(
mainGame
->
gameConf
.
locale
,
L"%ls"
,
L"ja-JP"
);
break
;
}
case
0x12
:
{
myswprintf
(
mainGame
->
gameConf
.
locale
,
L"%ls"
,
L"ko-KR"
);
break
;
}
}
}
#endif
}
}
void
Game
::
SaveConfig
()
{
void
Game
::
SaveConfig
()
{
FILE
*
fp
=
fopen
(
"system.conf"
,
"w"
);
FILE
*
fp
=
fopen
(
"system.conf"
,
"w"
);
...
@@ -1136,6 +1187,8 @@ void Game::SaveConfig() {
...
@@ -1136,6 +1187,8 @@ void Game::SaveConfig() {
fprintf
(
fp
,
"enable_bot_mode = %d
\n
"
,
gameConf
.
enable_bot_mode
);
fprintf
(
fp
,
"enable_bot_mode = %d
\n
"
,
gameConf
.
enable_bot_mode
);
fprintf
(
fp
,
"quick_animation = %d
\n
"
,
gameConf
.
quick_animation
);
fprintf
(
fp
,
"quick_animation = %d
\n
"
,
gameConf
.
quick_animation
);
fprintf
(
fp
,
"auto_save_replay = %d
\n
"
,
(
chkAutoSaveReplay
->
isChecked
()
?
1
:
0
));
fprintf
(
fp
,
"auto_save_replay = %d
\n
"
,
(
chkAutoSaveReplay
->
isChecked
()
?
1
:
0
));
BufferIO
::
EncodeUTF8
(
gameConf
.
locale
,
linebuf
);
fprintf
(
fp
,
"locale = %s
\n
"
,
linebuf
);
#ifdef YGOPRO_USE_IRRKLANG
#ifdef YGOPRO_USE_IRRKLANG
fprintf
(
fp
,
"enable_sound = %d
\n
"
,
(
chkEnableSound
->
isChecked
()
?
1
:
0
));
fprintf
(
fp
,
"enable_sound = %d
\n
"
,
(
chkEnableSound
->
isChecked
()
?
1
:
0
));
fprintf
(
fp
,
"enable_music = %d
\n
"
,
(
chkEnableMusic
->
isChecked
()
?
1
:
0
));
fprintf
(
fp
,
"enable_music = %d
\n
"
,
(
chkEnableMusic
->
isChecked
()
?
1
:
0
));
...
@@ -1390,6 +1443,16 @@ void Game::FlashWindow() {
...
@@ -1390,6 +1443,16 @@ void Game::FlashWindow() {
FlashWindowEx
(
&
fi
);
FlashWindowEx
(
&
fi
);
#endif
#endif
}
}
const
char
*
Game
::
GetLocaleDir
(
const
char
*
dir
)
{
if
(
!
gameConf
.
locale
||
!
wcscmp
(
gameConf
.
locale
,
L"default"
))
return
dir
;
wchar_t
locale_buf
[
256
];
wchar_t
orig_dir
[
64
];
BufferIO
::
DecodeUTF8
(
dir
,
orig_dir
);
myswprintf
(
locale_buf
,
L"locales/%ls/%ls"
,
gameConf
.
locale
,
orig_dir
);
BufferIO
::
EncodeUTF8
(
locale_buf
,
locale_buf_utf8
);
return
locale_buf_utf8
;
}
void
Game
::
SetCursor
(
ECURSOR_ICON
icon
)
{
void
Game
::
SetCursor
(
ECURSOR_ICON
icon
)
{
ICursorControl
*
cursor
=
mainGame
->
device
->
getCursorControl
();
ICursorControl
*
cursor
=
mainGame
->
device
->
getCursorControl
();
if
(
cursor
->
getActiveIcon
()
!=
icon
)
{
if
(
cursor
->
getActiveIcon
()
!=
icon
)
{
...
...
gframe/game.h
View file @
fe70771e
...
@@ -25,6 +25,7 @@ struct Config {
...
@@ -25,6 +25,7 @@ struct Config {
wchar_t
textfont
[
256
];
wchar_t
textfont
[
256
];
wchar_t
numfont
[
256
];
wchar_t
numfont
[
256
];
wchar_t
roompass
[
20
];
wchar_t
roompass
[
20
];
wchar_t
locale
[
64
];
//settings
//settings
int
chkMAutoPos
;
int
chkMAutoPos
;
int
chkSTAutoPos
;
int
chkSTAutoPos
;
...
@@ -112,6 +113,7 @@ public:
...
@@ -112,6 +113,7 @@ public:
void
RefreshReplay
();
void
RefreshReplay
();
void
RefreshSingleplay
();
void
RefreshSingleplay
();
void
RefreshBot
();
void
RefreshBot
();
void
RefreshLocales
();
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
();
...
@@ -143,6 +145,7 @@ public:
...
@@ -143,6 +145,7 @@ public:
int
LocalPlayer
(
int
player
);
int
LocalPlayer
(
int
player
);
const
wchar_t
*
LocalName
(
int
local_player
);
const
wchar_t
*
LocalName
(
int
local_player
);
const
char
*
GetLocaleDir
(
const
char
*
dir
);
bool
HasFocus
(
EGUI_ELEMENT_TYPE
type
)
const
{
bool
HasFocus
(
EGUI_ELEMENT_TYPE
type
)
const
{
irr
::
gui
::
IGUIElement
*
focus
=
env
->
getFocus
();
irr
::
gui
::
IGUIElement
*
focus
=
env
->
getFocus
();
...
@@ -200,6 +203,8 @@ public:
...
@@ -200,6 +203,8 @@ public:
bool
is_building
;
bool
is_building
;
bool
is_siding
;
bool
is_siding
;
char
locale_buf_utf8
[
256
];
ClientField
dField
;
ClientField
dField
;
DeckBuilder
deckBuilder
;
DeckBuilder
deckBuilder
;
MenuHandler
menuHandler
;
MenuHandler
menuHandler
;
...
@@ -255,6 +260,7 @@ public:
...
@@ -255,6 +260,7 @@ public:
irr
::
gui
::
IGUIScrollBar
*
scrSoundVolume
;
irr
::
gui
::
IGUIScrollBar
*
scrSoundVolume
;
irr
::
gui
::
IGUIScrollBar
*
scrMusicVolume
;
irr
::
gui
::
IGUIScrollBar
*
scrMusicVolume
;
irr
::
gui
::
IGUICheckBox
*
chkMusicMode
;
irr
::
gui
::
IGUICheckBox
*
chkMusicMode
;
irr
::
gui
::
IGUIComboBox
*
cbLocale
;
//main menu
//main menu
irr
::
gui
::
IGUIWindow
*
wMainMenu
;
irr
::
gui
::
IGUIWindow
*
wMainMenu
;
irr
::
gui
::
IGUIButton
*
btnLanMode
;
irr
::
gui
::
IGUIButton
*
btnLanMode
;
...
@@ -636,6 +642,7 @@ extern Game* mainGame;
...
@@ -636,6 +642,7 @@ extern Game* mainGame;
#define COMBOBOX_SORTTYPE 370
#define COMBOBOX_SORTTYPE 370
#define COMBOBOX_LIMIT 371
#define COMBOBOX_LIMIT 371
#define COMBOBOX_LOCALE 372
#define BUTTON_MARKS_FILTER 380
#define BUTTON_MARKS_FILTER 380
#define BUTTON_MARKERS_OK 381
#define BUTTON_MARKERS_OK 381
...
...
gframe/image_manager.cpp
View file @
fe70771e
...
@@ -166,6 +166,10 @@ irr::video::ITexture* ImageManager::GetTexture(int code) {
...
@@ -166,6 +166,10 @@ irr::video::ITexture* ImageManager::GetTexture(int code) {
char
file
[
256
];
char
file
[
256
];
sprintf
(
file
,
"expansions/pics/%d.jpg"
,
code
);
sprintf
(
file
,
"expansions/pics/%d.jpg"
,
code
);
irr
::
video
::
ITexture
*
img
=
GetTextureFromFile
(
file
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
);
irr
::
video
::
ITexture
*
img
=
GetTextureFromFile
(
file
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
);
if
(
img
==
NULL
)
{
sprintf
(
file
,
mainGame
->
GetLocaleDir
(
"pics/%d.jpg"
),
code
);
img
=
GetTextureFromFile
(
file
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
);
}
if
(
img
==
NULL
)
{
if
(
img
==
NULL
)
{
sprintf
(
file
,
"pics/%d.jpg"
,
code
);
sprintf
(
file
,
"pics/%d.jpg"
,
code
);
img
=
GetTextureFromFile
(
file
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
);
img
=
GetTextureFromFile
(
file
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
);
...
@@ -194,6 +198,10 @@ irr::video::ITexture* ImageManager::GetTextureThumb(int code) {
...
@@ -194,6 +198,10 @@ irr::video::ITexture* ImageManager::GetTextureThumb(int code) {
sprintf
(
file
,
"pics/thumbnail/%d.jpg"
,
code
);
sprintf
(
file
,
"pics/thumbnail/%d.jpg"
,
code
);
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
}
}
if
(
img
==
NULL
)
{
sprintf
(
file
,
mainGame
->
GetLocaleDir
(
"pics/thumbnail/%d.jpg"
),
code
);
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
}
if
(
img
==
NULL
&&
mainGame
->
gameConf
.
use_image_scale
)
{
if
(
img
==
NULL
&&
mainGame
->
gameConf
.
use_image_scale
)
{
sprintf
(
file
,
"expansions/pics/%d.jpg"
,
code
);
sprintf
(
file
,
"expansions/pics/%d.jpg"
,
code
);
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
...
@@ -222,6 +230,14 @@ irr::video::ITexture* ImageManager::GetTextureField(int code) {
...
@@ -222,6 +230,14 @@ irr::video::ITexture* ImageManager::GetTextureField(int code) {
sprintf
(
file
,
"expansions/pics/field/%d.jpg"
,
code
);
sprintf
(
file
,
"expansions/pics/field/%d.jpg"
,
code
);
img
=
GetTextureFromFile
(
file
,
512
,
512
);
img
=
GetTextureFromFile
(
file
,
512
,
512
);
}
}
if
(
img
==
NULL
)
{
sprintf
(
file
,
mainGame
->
GetLocaleDir
(
"pics/field/%d.png"
),
code
);
img
=
GetTextureFromFile
(
file
,
512
,
512
);
}
if
(
img
==
NULL
)
{
sprintf
(
file
,
mainGame
->
GetLocaleDir
(
"pics/field/%d.jpg"
),
code
);
img
=
GetTextureFromFile
(
file
,
512
,
512
);
}
if
(
img
==
NULL
)
{
if
(
img
==
NULL
)
{
sprintf
(
file
,
"pics/field/%d.png"
,
code
);
sprintf
(
file
,
"pics/field/%d.png"
,
code
);
img
=
GetTextureFromFile
(
file
,
512
,
512
);
img
=
GetTextureFromFile
(
file
,
512
,
512
);
...
...
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