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
nanahira
ygopro
Commits
8fe0dfbf
Commit
8fe0dfbf
authored
May 28, 2023
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'server' into duplicate
parents
9927b97f
7eaf5e96
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
319 additions
and
75 deletions
+319
-75
cards.cdb
cards.cdb
+0
-0
gframe/data_manager.cpp
gframe/data_manager.cpp
+1
-1
gframe/drawing.cpp
gframe/drawing.cpp
+16
-14
gframe/duelclient.cpp
gframe/duelclient.cpp
+31
-21
gframe/event_handler.cpp
gframe/event_handler.cpp
+8
-1
gframe/game.cpp
gframe/game.cpp
+17
-5
gframe/game.h
gframe/game.h
+7
-4
lflist.conf
lflist.conf
+213
-18
ocgcore
ocgcore
+1
-1
premake/gframe/ygopro.rc
premake/gframe/ygopro.rc
+3
-3
script
script
+1
-1
strings.conf
strings.conf
+21
-6
No files found.
cards.cdb
View file @
8fe0dfbf
No preview for this file type
gframe/data_manager.cpp
View file @
8fe0dfbf
...
...
@@ -324,7 +324,7 @@ const wchar_t* DataManager::FormatRace(int race) {
wchar_t
*
p
=
racBuffer
;
unsigned
filter
=
1
;
int
i
=
1020
;
for
(;
filter
!=
0x2000000
;
filter
<<=
1
,
++
i
)
{
for
(;
filter
<
(
1
<<
RACES_COUNT
)
;
filter
<<=
1
,
++
i
)
{
if
(
race
&
filter
)
{
BufferIO
::
CopyWStrRef
(
GetSysString
(
i
),
p
,
16
);
*
p
=
L'|'
;
...
...
gframe/drawing.cpp
View file @
8fe0dfbf
...
...
@@ -637,20 +637,22 @@ void Game::DrawMisc() {
DrawShadowText
(
numFont
,
dInfo
.
strLP
[
0
],
Resize
(
330
,
12
,
631
,
30
),
Resize
(
0
,
1
,
2
,
0
),
0xffffff00
,
0xff000000
,
true
,
false
,
0
);
DrawShadowText
(
numFont
,
dInfo
.
strLP
[
1
],
Resize
(
691
,
12
,
992
,
30
),
Resize
(
0
,
1
,
2
,
0
),
0xffffff00
,
0xff000000
,
true
,
false
,
0
);
recti
p1size
=
Resize
(
335
,
31
,
629
,
50
);
recti
p2size
=
Resize
(
986
,
31
,
986
,
50
);
if
(
!
dInfo
.
isTag
||
!
dInfo
.
tag_player
[
0
])
textFont
->
draw
(
dInfo
.
hostname
,
p1size
,
0xffffffff
,
false
,
false
,
0
);
else
textFont
->
draw
(
dInfo
.
hostname_tag
,
p1size
,
0xffffffff
,
false
,
false
,
0
);
if
(
!
dInfo
.
isTag
||
!
dInfo
.
tag_player
[
1
])
{
auto
cld
=
textFont
->
getDimension
(
dInfo
.
clientname
);
p2size
.
UpperLeftCorner
.
X
-=
cld
.
Width
;
textFont
->
draw
(
dInfo
.
clientname
,
p2size
,
0xffffffff
,
false
,
false
,
0
);
}
else
{
auto
cld
=
textFont
->
getDimension
(
dInfo
.
clientname_tag
);
p2size
.
UpperLeftCorner
.
X
-=
cld
.
Width
;
textFont
->
draw
(
dInfo
.
clientname_tag
,
p2size
,
0xffffffff
,
false
,
false
,
0
);
if
(
!
gameConf
.
hide_player_name
)
{
recti
p1size
=
Resize
(
335
,
31
,
629
,
50
);
recti
p2size
=
Resize
(
986
,
31
,
986
,
50
);
if
(
!
dInfo
.
isTag
||
!
dInfo
.
tag_player
[
0
])
textFont
->
draw
(
dInfo
.
hostname
,
p1size
,
0xffffffff
,
false
,
false
,
0
);
else
textFont
->
draw
(
dInfo
.
hostname_tag
,
p1size
,
0xffffffff
,
false
,
false
,
0
);
if
(
!
dInfo
.
isTag
||
!
dInfo
.
tag_player
[
1
])
{
auto
cld
=
textFont
->
getDimension
(
dInfo
.
clientname
);
p2size
.
UpperLeftCorner
.
X
-=
cld
.
Width
;
textFont
->
draw
(
dInfo
.
clientname
,
p2size
,
0xffffffff
,
false
,
false
,
0
);
}
else
{
auto
cld
=
textFont
->
getDimension
(
dInfo
.
clientname_tag
);
p2size
.
UpperLeftCorner
.
X
-=
cld
.
Width
;
textFont
->
draw
(
dInfo
.
clientname_tag
,
p2size
,
0xffffffff
,
false
,
false
,
0
);
}
}
driver
->
draw2DRectangle
(
Resize
(
632
,
10
,
688
,
30
),
0x00000000
,
0x00000000
,
0xffffffff
,
0xffffffff
);
driver
->
draw2DRectangle
(
Resize
(
632
,
30
,
688
,
50
),
0xffffffff
,
0xffffffff
,
0x00000000
,
0x00000000
);
...
...
gframe/duelclient.cpp
View file @
8fe0dfbf
...
...
@@ -570,8 +570,11 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
stHostPrepDuelist
[
2
]
->
setVisible
(
false
);
mainGame
->
stHostPrepDuelist
[
3
]
->
setVisible
(
false
);
}
for
(
int
i
=
0
;
i
<
4
;
++
i
)
for
(
int
i
=
0
;
i
<
4
;
++
i
)
{
mainGame
->
chkHostPrepReady
[
i
]
->
setChecked
(
false
);
mainGame
->
stHostPrepDuelist
[
i
]
->
setText
(
L""
);
mainGame
->
stHostPrepDuelist
[
i
]
->
setToolTipText
(
L""
);
}
mainGame
->
btnHostPrepReady
->
setVisible
(
true
);
mainGame
->
btnHostPrepNotReady
->
setVisible
(
false
);
mainGame
->
dInfo
.
time_limit
=
pkt
->
info
.
time_limit
;
...
...
@@ -581,10 +584,6 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
deckBuilder
.
filterList
=
deckManager
.
GetLFListContent
(
pkt
->
info
.
lflist
);
if
(
mainGame
->
deckBuilder
.
filterList
==
nullptr
)
mainGame
->
deckBuilder
.
filterList
=
&
deckManager
.
_lfList
[
0
].
content
;
mainGame
->
stHostPrepDuelist
[
0
]
->
setText
(
L""
);
mainGame
->
stHostPrepDuelist
[
1
]
->
setText
(
L""
);
mainGame
->
stHostPrepDuelist
[
2
]
->
setText
(
L""
);
mainGame
->
stHostPrepDuelist
[
3
]
->
setText
(
L""
);
mainGame
->
stHostPrepOB
->
setText
(
L""
);
mainGame
->
SetStaticText
(
mainGame
->
stHostPrepRule
,
180
,
mainGame
->
guiFont
,
str
.
c_str
());
mainGame
->
RefreshCategoryDeck
(
mainGame
->
cbCategorySelect
,
mainGame
->
cbDeckSelect
);
...
...
@@ -723,11 +722,11 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
btnSpectatorSwap
->
setVisible
(
true
);
}
if
(
selftype
!=
1
)
{
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
0
]
->
getT
ext
(),
mainGame
->
dInfo
.
hostname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
1
]
->
getT
ext
(),
mainGame
->
dInfo
.
clientname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
0
]
->
getT
oolTipText
().
c_str
(),
mainGame
->
dInfo
.
hostname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
1
]
->
getT
oolTipText
().
c_str
(),
mainGame
->
dInfo
.
clientname
,
20
);
}
else
{
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
1
]
->
getT
ext
(),
mainGame
->
dInfo
.
hostname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
0
]
->
getT
ext
(),
mainGame
->
dInfo
.
clientname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
1
]
->
getT
oolTipText
().
c_str
(),
mainGame
->
dInfo
.
hostname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
0
]
->
getT
oolTipText
().
c_str
(),
mainGame
->
dInfo
.
clientname
,
20
);
}
}
else
{
if
(
selftype
>
3
)
{
...
...
@@ -737,15 +736,15 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
btnSpectatorSwap
->
setVisible
(
true
);
}
if
(
selftype
>
1
&&
selftype
<
4
)
{
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
2
]
->
getT
ext
(),
mainGame
->
dInfo
.
hostname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
3
]
->
getT
ext
(),
mainGame
->
dInfo
.
hostname_tag
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
0
]
->
getT
ext
(),
mainGame
->
dInfo
.
clientname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
1
]
->
getT
ext
(),
mainGame
->
dInfo
.
clientname_tag
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
2
]
->
getT
oolTipText
().
c_str
(),
mainGame
->
dInfo
.
hostname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
3
]
->
getT
oolTipText
().
c_str
(),
mainGame
->
dInfo
.
hostname_tag
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
0
]
->
getT
oolTipText
().
c_str
(),
mainGame
->
dInfo
.
clientname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
1
]
->
getT
oolTipText
().
c_str
(),
mainGame
->
dInfo
.
clientname_tag
,
20
);
}
else
{
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
0
]
->
getT
ext
(),
mainGame
->
dInfo
.
hostname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
1
]
->
getT
ext
(),
mainGame
->
dInfo
.
hostname_tag
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
2
]
->
getT
ext
(),
mainGame
->
dInfo
.
clientname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
3
]
->
getT
ext
(),
mainGame
->
dInfo
.
clientname_tag
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
0
]
->
getT
oolTipText
().
c_str
(),
mainGame
->
dInfo
.
hostname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
1
]
->
getT
oolTipText
().
c_str
(),
mainGame
->
dInfo
.
hostname_tag
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
2
]
->
getT
oolTipText
().
c_str
(),
mainGame
->
dInfo
.
clientname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
stHostPrepDuelist
[
3
]
->
getT
oolTipText
().
c_str
(),
mainGame
->
dInfo
.
clientname_tag
,
20
);
}
mainGame
->
dInfo
.
tag_player
[
0
]
=
false
;
mainGame
->
dInfo
.
tag_player
[
1
]
=
false
;
...
...
@@ -922,7 +921,11 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
BufferIO
::
CopyWStr
(
pkt
->
name
,
mainGame
->
dInfo
.
clientname
,
20
);
}
mainGame
->
gMutex
.
lock
();
mainGame
->
stHostPrepDuelist
[
pkt
->
pos
]
->
setText
(
name
);
if
(
mainGame
->
gameConf
.
hide_player_name
)
mainGame
->
stHostPrepDuelist
[
pkt
->
pos
]
->
setText
(
L"[********]"
);
else
mainGame
->
stHostPrepDuelist
[
pkt
->
pos
]
->
setText
(
name
);
mainGame
->
stHostPrepDuelist
[
pkt
->
pos
]
->
setToolTipText
(
name
);
mainGame
->
gMutex
.
unlock
();
mainGame
->
FlashWindow
();
break
;
...
...
@@ -936,9 +939,14 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
gMutex
.
lock
();
if
(
state
<
8
)
{
soundManager
.
PlaySoundEffect
(
SOUND_PLAYER_ENTER
);
wchar_t
*
prename
=
(
wchar_t
*
)
mainGame
->
stHostPrepDuelist
[
pos
]
->
getText
();
mainGame
->
stHostPrepDuelist
[
state
]
->
setText
(
prename
);
wchar_t
*
prename
=
(
wchar_t
*
)
mainGame
->
stHostPrepDuelist
[
pos
]
->
getToolTipText
().
c_str
();
if
(
mainGame
->
gameConf
.
hide_player_name
)
mainGame
->
stHostPrepDuelist
[
state
]
->
setText
(
L"[********]"
);
else
mainGame
->
stHostPrepDuelist
[
state
]
->
setText
(
prename
);
mainGame
->
stHostPrepDuelist
[
state
]
->
setToolTipText
(
prename
);
mainGame
->
stHostPrepDuelist
[
pos
]
->
setText
(
L""
);
mainGame
->
stHostPrepDuelist
[
pos
]
->
setToolTipText
(
L""
);
mainGame
->
chkHostPrepReady
[
pos
]
->
setChecked
(
false
);
if
(
pos
==
0
)
BufferIO
::
CopyWStr
(
prename
,
mainGame
->
dInfo
.
hostname
,
20
);
...
...
@@ -962,12 +970,14 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
}
}
else
if
(
state
==
PLAYERCHANGE_LEAVE
)
{
mainGame
->
stHostPrepDuelist
[
pos
]
->
setText
(
L""
);
mainGame
->
stHostPrepDuelist
[
pos
]
->
setToolTipText
(
L""
);
mainGame
->
chkHostPrepReady
[
pos
]
->
setChecked
(
false
);
}
else
if
(
state
==
PLAYERCHANGE_OBSERVE
)
{
watching
++
;
wchar_t
watchbuf
[
32
];
myswprintf
(
watchbuf
,
L"%ls%d"
,
dataManager
.
GetSysString
(
1253
),
watching
);
mainGame
->
stHostPrepDuelist
[
pos
]
->
setText
(
L""
);
mainGame
->
stHostPrepDuelist
[
pos
]
->
setToolTipText
(
L""
);
mainGame
->
chkHostPrepReady
[
pos
]
->
setChecked
(
false
);
mainGame
->
stHostPrepOB
->
setText
(
watchbuf
);
}
...
...
@@ -3788,7 +3798,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
/*int player = */
mainGame
->
LocalPlayer
(
BufferIO
::
ReadInt8
(
pbuf
));
mainGame
->
dField
.
announce_count
=
BufferIO
::
ReadInt8
(
pbuf
);
int
available
=
BufferIO
::
ReadInt32
(
pbuf
);
for
(
int
i
=
0
,
filter
=
0x1
;
i
<
25
;
++
i
,
filter
<<=
1
)
{
for
(
int
i
=
0
,
filter
=
0x1
;
i
<
RACES_COUNT
;
++
i
,
filter
<<=
1
)
{
mainGame
->
chkRace
[
i
]
->
setChecked
(
false
);
if
(
filter
&
available
)
mainGame
->
chkRace
[
i
]
->
setVisible
(
true
);
...
...
gframe/event_handler.cpp
View file @
8fe0dfbf
...
...
@@ -852,7 +852,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
case
CHECK_RACE
:
{
int
rac
=
0
,
filter
=
0x1
,
count
=
0
;
for
(
int
i
=
0
;
i
<
25
;
++
i
,
filter
<<=
1
)
{
for
(
int
i
=
0
;
i
<
RACES_COUNT
;
++
i
,
filter
<<=
1
)
{
if
(
mainGame
->
chkRace
[
i
]
->
isChecked
())
{
rac
|=
filter
;
count
++
;
...
...
@@ -1965,6 +1965,13 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
return
true
;
break
;
}
case
CHECKBOX_HIDE_PLAYER_NAME
:
{
mainGame
->
gameConf
.
hide_player_name
=
mainGame
->
chkHidePlayerName
->
isChecked
()
?
1
:
0
;
if
(
mainGame
->
gameConf
.
hide_player_name
)
mainGame
->
ClearChatMsg
();
return
true
;
break
;
}
case
CHECKBOX_PREFER_EXPANSION
:
{
mainGame
->
gameConf
.
prefer_expansion_script
=
mainGame
->
chkPreferExpansionScript
->
isChecked
()
?
1
:
0
;
return
true
;
...
...
gframe/game.cpp
View file @
8fe0dfbf
...
...
@@ -27,7 +27,7 @@ namespace irr {
#include <regex>
#endif //YGOPRO_SERVER_MODE
unsigned
short
PRO_VERSION
=
0x13
54
;
unsigned
short
PRO_VERSION
=
0x13
60
;
namespace
ygo
{
...
...
@@ -229,7 +229,7 @@ bool Game::Initialize() {
SetWindowsIcon
();
//main menu
wchar_t
strbuf
[
256
];
myswprintf
(
strbuf
,
L"KoishiPro %X.0%X.%X
PayaPaya
"
,
PRO_VERSION
>>
12
,
(
PRO_VERSION
>>
4
)
&
0xff
,
PRO_VERSION
&
0xf
);
myswprintf
(
strbuf
,
L"KoishiPro %X.0%X.%X
Ulysses
"
,
PRO_VERSION
>>
12
,
(
PRO_VERSION
>>
4
)
&
0xff
,
PRO_VERSION
&
0xf
);
wMainMenu
=
env
->
addWindow
(
rect
<
s32
>
(
370
,
200
,
650
,
415
),
false
,
strbuf
);
wMainMenu
->
getCloseButton
()
->
setVisible
(
false
);
btnLanMode
=
env
->
addButton
(
rect
<
s32
>
(
10
,
30
,
270
,
60
),
wMainMenu
,
BUTTON_LAN_MODE
,
dataManager
.
GetSysString
(
1200
));
...
...
@@ -480,6 +480,9 @@ bool Game::Initialize() {
chkIgnore2
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
posX
,
posY
,
posX
+
260
,
posY
+
25
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1291
));
chkIgnore2
->
setChecked
(
gameConf
.
chkIgnore2
!=
0
);
posY
+=
30
;
chkHidePlayerName
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
posX
,
posY
,
posX
+
260
,
posY
+
25
),
tabSystem
,
CHECKBOX_HIDE_PLAYER_NAME
,
dataManager
.
GetSysString
(
1289
));
chkHidePlayerName
->
setChecked
(
gameConf
.
hide_player_name
!=
0
);
posY
+=
30
;
chkIgnoreDeckChanges
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
posX
,
posY
,
posX
+
260
,
posY
+
25
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1357
));
chkIgnoreDeckChanges
->
setChecked
(
gameConf
.
chkIgnoreDeckChanges
!=
0
);
posY
+=
30
;
...
...
@@ -534,7 +537,7 @@ bool Game::Initialize() {
chkEnablePScale
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
posX
,
posY
,
posX
+
260
,
posY
+
25
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1269
));
chkEnablePScale
->
setChecked
(
gameConf
.
chkEnablePScale
!=
0
);
posY
+=
30
;
env
->
addStaticText
(
dataManager
.
GetSysString
(
12
89
),
rect
<
s32
>
(
posX
+
23
,
posY
+
3
,
posX
+
160
,
posY
+
28
),
false
,
false
,
tabSystem
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
12
67
),
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
();
elmTabSystemLast
=
cbLocale
;
...
...
@@ -674,7 +677,7 @@ bool Game::Initialize() {
wANRace
=
env
->
addWindow
(
rect
<
s32
>
(
480
,
200
,
850
,
410
),
false
,
dataManager
.
GetSysString
(
563
));
wANRace
->
getCloseButton
()
->
setVisible
(
false
);
wANRace
->
setVisible
(
false
);
for
(
int
filter
=
0x1
,
i
=
0
;
i
<
25
;
filter
<<=
1
,
++
i
)
for
(
int
filter
=
0x1
,
i
=
0
;
i
<
RACES_COUNT
;
filter
<<=
1
,
++
i
)
chkRace
[
i
]
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
10
+
(
i
%
4
)
*
90
,
25
+
(
i
/
4
)
*
25
,
100
+
(
i
%
4
)
*
90
,
50
+
(
i
/
4
)
*
25
),
wANRace
,
CHECK_RACE
,
dataManager
.
FormatRace
(
filter
));
//selection hint
...
...
@@ -821,7 +824,7 @@ bool Game::Initialize() {
cbRace
=
env
->
addComboBox
(
rect
<
s32
>
(
60
,
40
+
75
/
6
,
190
,
60
+
75
/
6
),
wFilter
,
COMBOBOX_RACE
);
cbRace
->
setMaxSelectionRows
(
10
);
cbRace
->
addItem
(
dataManager
.
GetSysString
(
1310
),
0
);
for
(
int
filter
=
0x1
;
filter
!=
0x2000000
;
filter
<<=
1
)
for
(
int
filter
=
0x1
;
filter
<
(
1
<<
RACES_COUNT
)
;
filter
<<=
1
)
cbRace
->
addItem
(
dataManager
.
FormatRace
(
filter
),
filter
);
stAttack
=
env
->
addStaticText
(
dataManager
.
GetSysString
(
1322
),
rect
<
s32
>
(
205
,
22
+
50
/
6
,
280
,
42
+
50
/
6
),
false
,
false
,
wFilter
);
ebAttack
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
260
,
20
+
50
/
6
,
340
,
40
+
50
/
6
),
true
,
wFilter
,
EDITBOX_INPUTS
);
...
...
@@ -1531,6 +1534,8 @@ bool Game::LoadConfigFromFile(const char* file) {
gameConf
.
auto_save_replay
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"draw_single_chain"
))
{
gameConf
.
draw_single_chain
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"hide_player_name"
))
{
gameConf
.
hide_player_name
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"prefer_expansion_script"
))
{
gameConf
.
prefer_expansion_script
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"ask_mset"
))
{
...
...
@@ -1627,6 +1632,7 @@ void Game::LoadConfig() {
gameConf
.
quick_animation
=
0
;
gameConf
.
auto_save_replay
=
0
;
gameConf
.
draw_single_chain
=
0
;
gameConf
.
hide_player_name
=
0
;
gameConf
.
prefer_expansion_script
=
0
;
gameConf
.
ask_mset
=
0
;
gameConf
.
enable_sound
=
true
;
...
...
@@ -1766,6 +1772,7 @@ void Game::SaveConfig() {
fprintf
(
fp
,
"quick_animation = %d
\n
"
,
gameConf
.
quick_animation
);
fprintf
(
fp
,
"auto_save_replay = %d
\n
"
,
(
chkAutoSaveReplay
->
isChecked
()
?
1
:
0
));
fprintf
(
fp
,
"draw_single_chain = %d
\n
"
,
gameConf
.
draw_single_chain
);
fprintf
(
fp
,
"hide_player_name = %d
\n
"
,
gameConf
.
hide_player_name
);
fprintf
(
fp
,
"prefer_expansion_script = %d
\n
"
,
gameConf
.
prefer_expansion_script
);
fprintf
(
fp
,
"ask_mset = %d
\n
"
,
gameConf
.
ask_mset
);
fprintf
(
fp
,
"window_maximized = %d
\n
"
,
(
gameConf
.
window_maximized
?
1
:
0
));
...
...
@@ -1904,6 +1911,8 @@ void Game::AddChatMsg(const wchar_t* msg, int player) {
chatMsg
[
0
].
clear
();
chatTiming
[
0
]
=
1200
;
chatType
[
0
]
=
player
;
if
(
gameConf
.
hide_player_name
&&
player
<
4
)
player
=
10
;
switch
(
player
)
{
case
0
:
//from host
chatMsg
[
0
].
append
(
dInfo
.
hostname
);
...
...
@@ -1935,6 +1944,9 @@ void Game::AddChatMsg(const wchar_t* msg, int player) {
case
9
:
//error message
chatMsg
[
0
].
append
(
L"[Script Error]: "
);
break
;
case
10
:
//hidden name
chatMsg
[
0
].
append
(
L"[********]: "
);
break
;
default:
//from watcher or unknown
if
(
player
<
11
||
player
>
19
)
chatMsg
[
0
].
append
(
L"[---]: "
);
...
...
gframe/game.h
View file @
8fe0dfbf
...
...
@@ -64,6 +64,7 @@ struct Config {
bool
resize_popup_menu
;
int
auto_save_replay
;
int
draw_single_chain
;
int
hide_player_name
;
int
prefer_expansion_script
;
int
ask_mset
;
bool
enable_sound
;
...
...
@@ -339,6 +340,7 @@ public:
irr
::
gui
::
IGUICheckBox
*
chkAutoSaveReplay
;
irr
::
gui
::
IGUICheckBox
*
chkDrawSingleChain
;
irr
::
gui
::
IGUICheckBox
*
chkAskMSet
;
irr
::
gui
::
IGUICheckBox
*
chkHidePlayerName
;
irr
::
gui
::
IGUIWindow
*
tabSystem
;
irr
::
gui
::
IGUIElement
*
elmTabSystemLast
;
irr
::
gui
::
IGUIScrollBar
*
scrTabSystem
;
...
...
@@ -502,7 +504,7 @@ public:
irr
::
gui
::
IGUICheckBox
*
chkAttribute
[
7
];
//announce race
irr
::
gui
::
IGUIWindow
*
wANRace
;
irr
::
gui
::
IGUICheckBox
*
chkRace
[
25
];
irr
::
gui
::
IGUICheckBox
*
chkRace
[
RACES_COUNT
];
//cmd menu
irr
::
gui
::
IGUIWindow
*
wCmdMenu
;
irr
::
gui
::
IGUIButton
*
btnActivate
;
...
...
@@ -859,9 +861,10 @@ extern unsigned int pre_seed[3];
#define CHECKBOX_PREFER_EXPANSION 373
#define CHECKBOX_DRAW_SINGLE_CHAIN 374
#define CHECKBOX_LFLIST 375
#define CHECKBOX_REGEX 376
#define COMBOBOX_LOCALE 377
#define CHECKBOX_ASK_MSET 378
#define CHECKBOX_HIDE_PLAYER_NAME 376
#define CHECKBOX_REGEX 377
#define COMBOBOX_LOCALE 378
#define CHECKBOX_ASK_MSET 379
#define BUTTON_BIG_CARD_CLOSE 380
#define BUTTON_BIG_CARD_ZOOM_IN 381
...
...
lflist.conf
View file @
8fe0dfbf
This diff is collapsed.
Click to expand it.
ocgcore
@
0df2566f
Subproject commit
6132d084fb053799e7cf4ba4805bc9fba63562fc
Subproject commit
0df2566f9356e7b79392bf72edbf1a75fa3a1ac1
premake/gframe/ygopro.rc
View file @
8fe0dfbf
1 ICON "ygopro.ico"
1 VERSIONINFO
FILEVERSION 1, 0, 3
5, 4
PRODUCTVERSION 1, 0, 3
5, 4
FILEVERSION 1, 0, 3
6, 0
PRODUCTVERSION 1, 0, 3
6, 0
FILEOS 0x4
FILETYPE 0x1
...
...
@@ -13,7 +13,7 @@ BLOCK "080404b0"
BEGIN
VALUE "FileDescription", "YGOPRO Server Mode ver.Koishi"
VALUE "InternalName", "YGOPRO Server Mode"
VALUE "LegalCopyright", "Copyright (C) 202
2
Nanahira"
VALUE "LegalCopyright", "Copyright (C) 202
3
Nanahira"
VALUE "OriginalFilename", "ygopro.exe"
VALUE "ProductName", "YGOPRO Server Mode"
VALUE "FileVersion", "Server"
...
...
script
@
d5747ceb
Subproject commit d
296d267914015581189fe3ba20fac562141f36d
Subproject commit d
5747ceb983d601d117a838139fe13b0ec502057
strings.conf
View file @
8fe0dfbf
...
...
@@ -181,6 +181,7 @@
!
system
1042
创造神
!
system
1043
幻龙
!
system
1044
电子界
!
system
1045
幻想魔
!
system
1050
怪兽
!
system
1051
魔法
!
system
1052
陷阱
...
...
@@ -319,6 +320,7 @@
!
system
1262
大师规则3
!
system
1263
新大师规则
!
system
1264
大师规则
2020
!
system
1267
语言(重启后生效)
!
system
1268
盖放怪兽前询问
!
system
1269
数字灵摆图片
!
system
1270
卡片信息
...
...
@@ -340,7 +342,7 @@
!
system
1286
特大
!
system
1287
只有连锁
1
也显示连锁动画
!
system
1288
禁限卡表
!
system
1289
语言(重启后生效)
!
system
1289
隐藏玩家昵称
!
system
1290
忽略对方发言
!
system
1291
忽略观战者发言
!
system
1292
忽略时点
...
...
@@ -602,7 +604,7 @@
!
counter
0
x25
年代记指示物
!
counter
0
x26
指示物(金属射手)
!
counter
0
x27
指示物(死亡蚊)
!
counter
0
x28
指示物(暗黑
投
射手)
!
counter
0
x28
指示物(暗黑
弹
射手)
!
counter
0
x29
指示物(气球蜥蜴)
!
counter
0
x102a
指示物(魔法防护器)
!
counter
0
x2b
命运指示物
...
...
@@ -646,7 +648,7 @@
!
counter
0
x57
幻魔指示物
!
counter
0
x58
指示物(祢须三破鸣比)
!
counter
0
x59
落魂指示物
!
counter
0
x5a
指示物(
岩战之
试炼)
!
counter
0
x5a
指示物(
战吼
试炼)
!
counter
0
x5b
指示物(北极天熊北斗星)
!
counter
0
x105c
燃烧指示物
!
counter
0
x5d
指示物(机巧传-神使记纪图)
...
...
@@ -698,7 +700,7 @@
!
setname
0
x16
机人 ロイド
!
setname
0
x1016
交通机人 ビークロイド
!
setname
0
x2016
疾行机人 スピードロイド
#
!setname 0x17 同调 シンクロ
!
setname
0
x17
同调 シンクロ
!
setname
0
x1017
同调士 シンクロン
!
setname
0
x2017
同调龙 シンクロ・ドラゴン
!
setname
0
x18
云魔物 雲魔物
...
...
@@ -711,7 +713,8 @@
!
setname
0
x1e
茧状体
C
(コクーン)
!
setname
0
x1f
新空间侠
N
(ネオスペーシアン)
!
setname
0
x20
紫炎 紫炎
!
setname
0
x21
地缚神 地縛神
!
setname
0
x21
地缚 地縛
!
setname
0
x1021
地缚神 地縛神
!
setname
0
x22
朱罗纪 ジュラック
!
setname
0
x23
罪
Sin
!
setname
0
x24
废铁 スクラップ
...
...
@@ -779,6 +782,7 @@
!
setname
0
x1050
凶饿毒|蛇毒 スターヴ・ヴェノム
!
setname
0
x51
零件 ガジェット
!
setname
0
x52
守护者 ガーディアン
!
setname
0
x1052
门之守护神|守护者
Gate
Guardian
!
setname
0
x53
星圣 セイクリッド
!
setname
0
x54
我我我 ガガガ
!
setname
0
x55
光子 フォトン
...
...
@@ -830,6 +834,7 @@
!
setname
0
x107a
圣骑士 聖騎士(せいきし)
!
setname
0
x207a
圣剑 聖剣(せいけん)
!
setname
0
x507a
焰圣骑士 焔聖騎士
!
setname
0
x607a
焰圣剑 焔聖剣
!
setname
0
x7b
银河 ギャラクシー
!
setname
0
x107b
银河眼 ギャラクシーアイズ
!
setname
0
x307b
银河眼时空龙 ギャラクシーアイズ・タキオン・ドラゴン
...
...
@@ -848,7 +853,9 @@
!
setname
0
x82
怒怒怒 ドドド
!
setname
0
x83
人偶 パペット
!
setname
0
x1083
机关傀儡 ギミック・パペット
!
setname
0
x84
燃烧拳击手
BK
(バーニングナックラー)
#setname 0x84 燃烧拳 バーニングナック
!
setname
0
x1084
燃烧拳击手
BK
(バーニングナックラー)
!
setname
0
x2084
燃烧拳 バーニングナックル
!
setname
0
x85
超级防卫机器人
SD
ロボ
!
setname
0
x86
光天使
!
setname
0
x87
阴影 アンブラル
...
...
@@ -1177,3 +1184,11 @@
!
setname
0
x18f
防火 ファイアウォール
!
setname
0
x190
末那愚子族 マナドゥム
!
setname
0
x191
妮穆蕾莉娅 ネムレリア
!
setname
0
x192
黄金荣耀
Gold
Pride
!
setname
0
x193
迷宫壁
Labyrinth
Wall
!
setname
0
x194
至爱 フェイバリット
!
setname
0
x195
征服斗魂
VS
(ヴァンキッシュ・ソウル)
!
setname
0
x196
新式魔厨 ヌーベルズ
!
setname
0
x197
食谱 レシピ
!
setname
0
x198
维萨斯 ヴィサス
!
setname
0
x199
反击 カウンター
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