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
wind2009
ygopro
Commits
c9a35976
Commit
c9a35976
authored
May 07, 2024
by
wind2009
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/master' into server-develop
parents
34603515
50df3b4b
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
157 additions
and
110 deletions
+157
-110
gframe/config.h
gframe/config.h
+1
-1
gframe/data_manager.cpp
gframe/data_manager.cpp
+14
-8
gframe/deck_manager.cpp
gframe/deck_manager.cpp
+14
-15
gframe/duelclient.cpp
gframe/duelclient.cpp
+8
-18
gframe/duelclient.h
gframe/duelclient.h
+1
-1
gframe/game.cpp
gframe/game.cpp
+115
-65
gframe/game.h
gframe/game.h
+3
-1
gframe/gframe.cpp
gframe/gframe.cpp
+1
-1
No files found.
gframe/config.h
View file @
c9a35976
...
@@ -97,7 +97,7 @@ using namespace io;
...
@@ -97,7 +97,7 @@ using namespace io;
#endif
#endif
extern
const
unsigned
short
PRO_VERSION
;
extern
const
unsigned
short
PRO_VERSION
;
extern
int
enable_log
;
extern
unsigned
int
enable_log
;
extern
bool
exit_on_return
;
extern
bool
exit_on_return
;
extern
bool
open_file
;
extern
bool
open_file
;
extern
wchar_t
open_file_name
[
256
];
extern
wchar_t
open_file_name
[
256
];
...
...
gframe/data_manager.cpp
View file @
c9a35976
...
@@ -169,24 +169,30 @@ bool DataManager::LoadStrings(IReadFile* reader) {
...
@@ -169,24 +169,30 @@ bool DataManager::LoadStrings(IReadFile* reader) {
void
DataManager
::
ReadStringConfLine
(
const
char
*
linebuf
)
{
void
DataManager
::
ReadStringConfLine
(
const
char
*
linebuf
)
{
if
(
linebuf
[
0
]
!=
'!'
)
if
(
linebuf
[
0
]
!=
'!'
)
return
;
return
;
char
strbuf
[
256
];
char
strbuf
[
256
]{};
int
value
;
int
value
{};
wchar_t
strBuffer
[
4096
];
wchar_t
strBuffer
[
4096
]{};
sscanf
(
linebuf
,
"!%s"
,
strbuf
);
if
(
sscanf
(
linebuf
,
"!%63s"
,
strbuf
)
!=
1
)
return
;
if
(
!
strcmp
(
strbuf
,
"system"
))
{
if
(
!
strcmp
(
strbuf
,
"system"
))
{
sscanf
(
&
linebuf
[
7
],
"%d %240[^
\n
]"
,
&
value
,
strbuf
);
if
(
sscanf
(
&
linebuf
[
7
],
"%d %240[^
\n
]"
,
&
value
,
strbuf
)
!=
2
)
return
;
BufferIO
::
DecodeUTF8
(
strbuf
,
strBuffer
);
BufferIO
::
DecodeUTF8
(
strbuf
,
strBuffer
);
_sysStrings
[
value
]
=
strBuffer
;
_sysStrings
[
value
]
=
strBuffer
;
}
else
if
(
!
strcmp
(
strbuf
,
"victory"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"victory"
))
{
sscanf
(
&
linebuf
[
8
],
"%x %240[^
\n
]"
,
&
value
,
strbuf
);
if
(
sscanf
(
&
linebuf
[
8
],
"%x %240[^
\n
]"
,
&
value
,
strbuf
)
!=
2
)
return
;
BufferIO
::
DecodeUTF8
(
strbuf
,
strBuffer
);
BufferIO
::
DecodeUTF8
(
strbuf
,
strBuffer
);
_victoryStrings
[
value
]
=
strBuffer
;
_victoryStrings
[
value
]
=
strBuffer
;
}
else
if
(
!
strcmp
(
strbuf
,
"counter"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"counter"
))
{
sscanf
(
&
linebuf
[
8
],
"%x %240[^
\n
]"
,
&
value
,
strbuf
);
if
(
sscanf
(
&
linebuf
[
8
],
"%x %240[^
\n
]"
,
&
value
,
strbuf
)
!=
2
)
return
;
BufferIO
::
DecodeUTF8
(
strbuf
,
strBuffer
);
BufferIO
::
DecodeUTF8
(
strbuf
,
strBuffer
);
_counterStrings
[
value
]
=
strBuffer
;
_counterStrings
[
value
]
=
strBuffer
;
}
else
if
(
!
strcmp
(
strbuf
,
"setname"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"setname"
))
{
sscanf
(
&
linebuf
[
8
],
"%x %240[^
\t\n
]"
,
&
value
,
strbuf
);
//using tab for comment
//using tab for comment
if
(
sscanf
(
&
linebuf
[
8
],
"%x %240[^
\t\n
]"
,
&
value
,
strbuf
)
!=
2
)
return
;
BufferIO
::
DecodeUTF8
(
strbuf
,
strBuffer
);
BufferIO
::
DecodeUTF8
(
strbuf
,
strBuffer
);
_setnameStrings
[
value
]
=
strBuffer
;
_setnameStrings
[
value
]
=
strBuffer
;
}
}
...
...
gframe/deck_manager.cpp
View file @
c9a35976
...
@@ -13,15 +13,16 @@ DeckManager deckManager;
...
@@ -13,15 +13,16 @@ DeckManager deckManager;
void
DeckManager
::
LoadLFListSingle
(
const
char
*
path
)
{
void
DeckManager
::
LoadLFListSingle
(
const
char
*
path
)
{
LFList
*
cur
=
nullptr
;
LFList
*
cur
=
nullptr
;
FILE
*
fp
=
fopen
(
path
,
"r"
);
FILE
*
fp
=
fopen
(
path
,
"r"
);
char
linebuf
[
256
];
char
linebuf
[
256
]
{}
;
wchar_t
strBuffer
[
256
];
wchar_t
strBuffer
[
256
]
{}
;
if
(
fp
)
{
if
(
fp
)
{
while
(
fgets
(
linebuf
,
256
,
fp
))
{
while
(
fgets
(
linebuf
,
256
,
fp
))
{
if
(
linebuf
[
0
]
==
'#'
)
if
(
linebuf
[
0
]
==
'#'
)
continue
;
continue
;
if
(
linebuf
[
0
]
==
'!'
)
{
if
(
linebuf
[
0
]
==
'!'
)
{
int
sa
=
BufferIO
::
DecodeUTF8
(
&
linebuf
[
1
],
strBuffer
);
int
sa
=
BufferIO
::
DecodeUTF8
(
&
linebuf
[
1
],
strBuffer
);
while
(
strBuffer
[
sa
-
1
]
==
L'\r'
||
strBuffer
[
sa
-
1
]
==
L'\n'
)
sa
--
;
while
(
strBuffer
[
sa
-
1
]
==
L'\r'
||
strBuffer
[
sa
-
1
]
==
L'\n'
)
sa
--
;
strBuffer
[
sa
]
=
0
;
strBuffer
[
sa
]
=
0
;
LFList
newlist
;
LFList
newlist
;
_lfList
.
push_back
(
newlist
);
_lfList
.
push_back
(
newlist
);
...
@@ -30,20 +31,18 @@ void DeckManager::LoadLFListSingle(const char* path) {
...
@@ -30,20 +31,18 @@ void DeckManager::LoadLFListSingle(const char* path) {
cur
->
hash
=
0x7dfcee6a
;
cur
->
hash
=
0x7dfcee6a
;
continue
;
continue
;
}
}
int
p
=
0
;
if
(
linebuf
[
0
]
==
0
)
while
(
linebuf
[
p
]
!=
' '
&&
linebuf
[
p
]
!=
'\t'
&&
linebuf
[
p
]
!=
0
)
p
++
;
if
(
linebuf
[
p
]
==
0
)
continue
;
continue
;
linebuf
[
p
++
]
=
0
;
int
code
=
0
;
int
sa
=
p
;
int
count
=
-
1
;
int
code
=
atoi
(
linebuf
);
if
(
sscanf
(
linebuf
,
"%d %d"
,
&
code
,
&
count
)
!=
2
)
if
(
code
==
0
)
continue
;
if
(
code
<=
0
||
code
>
99999999
)
continue
;
if
(
count
<
0
||
count
>
2
)
continue
;
if
(
!
cur
)
continue
;
continue
;
while
(
linebuf
[
p
]
==
' '
||
linebuf
[
p
]
==
'\t'
)
p
++
;
while
(
linebuf
[
p
]
!=
' '
&&
linebuf
[
p
]
!=
'\t'
&&
linebuf
[
p
]
!=
0
)
p
++
;
linebuf
[
p
]
=
0
;
int
count
=
atoi
(
&
linebuf
[
sa
]);
if
(
!
cur
)
continue
;
cur
->
content
[
code
]
=
count
;
cur
->
content
[
code
]
=
count
;
cur
->
hash
=
cur
->
hash
^
((
code
<<
18
)
|
(
code
>>
14
))
^
((
code
<<
(
27
+
count
))
|
(
code
>>
(
5
-
count
)));
cur
->
hash
=
cur
->
hash
^
((
code
<<
18
)
|
(
code
>>
14
))
^
((
code
<<
(
27
+
count
))
|
(
code
>>
(
5
-
count
)));
}
}
...
...
gframe/duelclient.cpp
View file @
c9a35976
...
@@ -403,6 +403,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
...
@@ -403,6 +403,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
break
;
break
;
}
}
case
STOC_WAITING_SIDE
:
{
case
STOC_WAITING_SIDE
:
{
mainGame
->
dInfo
.
isInDuel
=
false
;
mainGame
->
gMutex
.
lock
();
mainGame
->
gMutex
.
lock
();
mainGame
->
dField
.
Clear
();
mainGame
->
dField
.
Clear
();
mainGame
->
stHintMsg
->
setText
(
dataManager
.
GetSysString
(
1409
));
mainGame
->
stHintMsg
->
setText
(
dataManager
.
GetSysString
(
1409
));
...
@@ -744,28 +745,17 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
...
@@ -744,28 +745,17 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
case
STOC_CHAT
:
{
case
STOC_CHAT
:
{
STOC_Chat
*
pkt
=
(
STOC_Chat
*
)
pdata
;
STOC_Chat
*
pkt
=
(
STOC_Chat
*
)
pdata
;
int
player
=
pkt
->
player
;
int
player
=
pkt
->
player
;
auto
play_sound
=
false
;
if
(
player
<
4
)
{
if
(
player
<
4
)
{
if
(
mainGame
->
chkIgnore1
->
isChecked
())
if
(
mainGame
->
chkIgnore1
->
isChecked
())
break
;
break
;
if
(
!
mainGame
->
dInfo
.
isTag
)
{
auto
localplayer
=
mainGame
->
ChatLocalPlayer
(
player
);
if
(
mainGame
->
dInfo
.
isInDuel
)
player
=
localplayer
&
0xf
;
player
=
mainGame
->
LocalPlayer
(
player
);
if
(
!
(
localplayer
&
0x10
))
}
else
{
play_sound
=
true
;
if
(
mainGame
->
dInfo
.
isInDuel
&&
!
mainGame
->
dInfo
.
isFirst
)
player
^=
2
;
if
(
player
==
0
)
player
=
0
;
else
if
(
player
==
1
)
player
=
2
;
else
if
(
player
==
2
)
player
=
1
;
else
if
(
player
==
3
)
player
=
3
;
else
player
=
10
;
}
}
else
{
}
else
{
if
(
player
==
8
)
{
//system custom message.
if
(
player
==
8
)
{
//system custom message.
play_sound
=
true
;
if
(
mainGame
->
chkIgnore1
->
isChecked
())
if
(
mainGame
->
chkIgnore1
->
isChecked
())
break
;
break
;
}
else
if
(
player
<
11
||
player
>
19
)
{
}
else
if
(
player
<
11
||
player
>
19
)
{
...
@@ -777,7 +767,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
...
@@ -777,7 +767,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
wchar_t
msg
[
256
];
wchar_t
msg
[
256
];
BufferIO
::
CopyWStr
(
pkt
->
msg
,
msg
,
256
);
BufferIO
::
CopyWStr
(
pkt
->
msg
,
msg
,
256
);
mainGame
->
gMutex
.
lock
();
mainGame
->
gMutex
.
lock
();
mainGame
->
AddChatMsg
(
msg
,
player
);
mainGame
->
AddChatMsg
(
msg
,
player
,
play_sound
);
mainGame
->
gMutex
.
unlock
();
mainGame
->
gMutex
.
unlock
();
break
;
break
;
}
}
...
...
gframe/duelclient.h
View file @
c9a35976
...
@@ -23,7 +23,6 @@ private:
...
@@ -23,7 +23,6 @@ private:
static
unsigned
char
response_buf
[
SIZE_RETURN_VALUE
];
static
unsigned
char
response_buf
[
SIZE_RETURN_VALUE
];
static
unsigned
int
response_len
;
static
unsigned
int
response_len
;
static
unsigned
int
watching
;
static
unsigned
int
watching
;
static
unsigned
char
selftype
;
static
bool
is_host
;
static
bool
is_host
;
static
event_base
*
client_base
;
static
event_base
*
client_base
;
static
bufferevent
*
client_bev
;
static
bufferevent
*
client_bev
;
...
@@ -39,6 +38,7 @@ private:
...
@@ -39,6 +38,7 @@ private:
static
wchar_t
event_string
[
256
];
static
wchar_t
event_string
[
256
];
static
mt19937
rnd
;
static
mt19937
rnd
;
public:
public:
static
unsigned
char
selftype
;
static
bool
StartClient
(
unsigned
int
ip
,
unsigned
short
port
,
bool
create_game
=
true
);
static
bool
StartClient
(
unsigned
int
ip
,
unsigned
short
port
,
bool
create_game
=
true
);
static
void
ConnectTimeout
(
evutil_socket_t
fd
,
short
events
,
void
*
arg
);
static
void
ConnectTimeout
(
evutil_socket_t
fd
,
short
events
,
void
*
arg
);
static
void
StopClient
(
bool
is_exiting
=
false
);
static
void
StopClient
(
bool
is_exiting
=
false
);
...
...
gframe/game.cpp
View file @
c9a35976
...
@@ -1323,23 +1323,29 @@ void Game::RefreshBot() {
...
@@ -1323,23 +1323,29 @@ void Game::RefreshBot() {
return
;
return
;
botInfo
.
clear
();
botInfo
.
clear
();
FILE
*
fp
=
fopen
(
"bot.conf"
,
"r"
);
FILE
*
fp
=
fopen
(
"bot.conf"
,
"r"
);
char
linebuf
[
256
];
char
linebuf
[
256
]
{}
;
char
strbuf
[
256
];
char
strbuf
[
256
]
{}
;
if
(
fp
)
{
if
(
fp
)
{
while
(
fgets
(
linebuf
,
256
,
fp
))
{
while
(
fgets
(
linebuf
,
256
,
fp
))
{
if
(
linebuf
[
0
]
==
'#'
)
if
(
linebuf
[
0
]
==
'#'
)
continue
;
continue
;
if
(
linebuf
[
0
]
==
'!'
)
{
if
(
linebuf
[
0
]
==
'!'
)
{
BotInfo
newinfo
;
BotInfo
newinfo
;
sscanf
(
linebuf
,
"!%240[^
\n
]"
,
strbuf
);
if
(
sscanf
(
linebuf
,
"!%240[^
\n
]"
,
strbuf
)
!=
1
)
continue
;
BufferIO
::
DecodeUTF8
(
strbuf
,
newinfo
.
name
);
BufferIO
::
DecodeUTF8
(
strbuf
,
newinfo
.
name
);
fgets
(
linebuf
,
256
,
fp
);
if
(
!
fgets
(
linebuf
,
256
,
fp
))
sscanf
(
linebuf
,
"%240[^
\n
]"
,
strbuf
);
break
;
if
(
sscanf
(
linebuf
,
"%240[^
\n
]"
,
strbuf
)
!=
1
)
continue
;
BufferIO
::
DecodeUTF8
(
strbuf
,
newinfo
.
command
);
BufferIO
::
DecodeUTF8
(
strbuf
,
newinfo
.
command
);
fgets
(
linebuf
,
256
,
fp
);
if
(
!
fgets
(
linebuf
,
256
,
fp
))
sscanf
(
linebuf
,
"%240[^
\n
]"
,
strbuf
);
break
;
if
(
sscanf
(
linebuf
,
"%240[^
\n
]"
,
strbuf
)
!=
1
)
continue
;
BufferIO
::
DecodeUTF8
(
strbuf
,
newinfo
.
desc
);
BufferIO
::
DecodeUTF8
(
strbuf
,
newinfo
.
desc
);
fgets
(
linebuf
,
256
,
fp
);
if
(
!
fgets
(
linebuf
,
256
,
fp
))
break
;
newinfo
.
support_master_rule_3
=
!!
strstr
(
linebuf
,
"SUPPORT_MASTER_RULE_3"
);
newinfo
.
support_master_rule_3
=
!!
strstr
(
linebuf
,
"SUPPORT_MASTER_RULE_3"
);
newinfo
.
support_new_master_rule
=
!!
strstr
(
linebuf
,
"SUPPORT_NEW_MASTER_RULE"
);
newinfo
.
support_new_master_rule
=
!!
strstr
(
linebuf
,
"SUPPORT_NEW_MASTER_RULE"
);
newinfo
.
support_master_rule_2020
=
!!
strstr
(
linebuf
,
"SUPPORT_MASTER_RULE_2020"
);
newinfo
.
support_master_rule_2020
=
!!
strstr
(
linebuf
,
"SUPPORT_MASTER_RULE_2020"
);
...
@@ -1372,31 +1378,34 @@ void Game::LoadConfig() {
...
@@ -1372,31 +1378,34 @@ void Game::LoadConfig() {
FILE
*
fp
=
fopen
(
"system.conf"
,
"r"
);
FILE
*
fp
=
fopen
(
"system.conf"
,
"r"
);
if
(
!
fp
)
if
(
!
fp
)
return
;
return
;
char
linebuf
[
256
];
char
linebuf
[
256
]
{}
;
char
strbuf
[
32
]
;
char
strbuf
[
64
]{}
;
char
valbuf
[
256
];
char
valbuf
[
256
]
{}
;
wchar_t
wstr
[
256
];
wchar_t
wstr
[
256
]
{}
;
while
(
fgets
(
linebuf
,
256
,
fp
))
{
while
(
fgets
(
linebuf
,
256
,
fp
))
{
sscanf
(
linebuf
,
"%s = %s"
,
strbuf
,
valbuf
);
if
(
sscanf
(
linebuf
,
"%63s = %255s"
,
strbuf
,
valbuf
)
!=
2
)
continue
;
if
(
!
strcmp
(
strbuf
,
"antialias"
))
{
if
(
!
strcmp
(
strbuf
,
"antialias"
))
{
gameConf
.
antialias
=
atoi
(
valbuf
);
gameConf
.
antialias
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"use_d3d"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"use_d3d"
))
{
gameConf
.
use_d3d
=
atoi
(
valbuf
)
>
0
;
gameConf
.
use_d3d
=
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
}
else
if
(
!
strcmp
(
strbuf
,
"use_image_scale"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"use_image_scale"
))
{
gameConf
.
use_image_scale
=
atoi
(
valbuf
)
>
0
;
gameConf
.
use_image_scale
=
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
}
else
if
(
!
strcmp
(
strbuf
,
"errorlog"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"errorlog"
))
{
enable_log
=
atoi
(
valbuf
);
unsigned
int
val
=
strtol
(
valbuf
,
nullptr
,
10
);
enable_log
=
val
&
0xff
;
}
else
if
(
!
strcmp
(
strbuf
,
"textfont"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"textfont"
))
{
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
)
;
int
textfontsize
=
0
;
i
nt
textfontsize
=
gameConf
.
textfontsize
;
i
f
(
sscanf
(
linebuf
,
"%63s = %255s %d"
,
strbuf
,
valbuf
,
&
textfontsize
)
!=
3
)
sscanf
(
linebuf
,
"%s = %s %d"
,
strbuf
,
valbuf
,
&
textfontsize
)
;
continue
;
gameConf
.
textfontsize
=
textfontsize
;
gameConf
.
textfontsize
=
textfontsize
;
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
textfont
,
256
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
textfont
,
256
);
}
else
if
(
!
strcmp
(
strbuf
,
"numfont"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"numfont"
))
{
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
numfont
,
256
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
numfont
,
256
);
}
else
if
(
!
strcmp
(
strbuf
,
"serverport"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"serverport"
))
{
gameConf
.
serverport
=
atoi
(
valbuf
);
gameConf
.
serverport
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"lasthost"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"lasthost"
))
{
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
lasthost
,
100
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
lasthost
,
100
);
...
@@ -1407,82 +1416,93 @@ void Game::LoadConfig() {
...
@@ -1407,82 +1416,93 @@ void Game::LoadConfig() {
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
roompass
,
20
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
roompass
,
20
);
}
else
if
(
!
strcmp
(
strbuf
,
"automonsterpos"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"automonsterpos"
))
{
gameConf
.
chkMAutoPos
=
atoi
(
valbuf
);
gameConf
.
chkMAutoPos
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"autospellpos"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"autospellpos"
))
{
gameConf
.
chkSTAutoPos
=
atoi
(
valbuf
);
gameConf
.
chkSTAutoPos
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"randompos"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"randompos"
))
{
gameConf
.
chkRandomPos
=
atoi
(
valbuf
);
gameConf
.
chkRandomPos
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"autochain"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"autochain"
))
{
gameConf
.
chkAutoChain
=
atoi
(
valbuf
);
gameConf
.
chkAutoChain
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"waitchain"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"waitchain"
))
{
gameConf
.
chkWaitChain
=
atoi
(
valbuf
);
gameConf
.
chkWaitChain
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"showchain"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"showchain"
))
{
gameConf
.
chkDefaultShowChain
=
atoi
(
valbuf
);
gameConf
.
chkDefaultShowChain
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"mute_opponent"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"mute_opponent"
))
{
gameConf
.
chkIgnore1
=
atoi
(
valbuf
);
gameConf
.
chkIgnore1
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"mute_spectators"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"mute_spectators"
))
{
gameConf
.
chkIgnore2
=
atoi
(
valbuf
);
gameConf
.
chkIgnore2
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"use_lflist"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"use_lflist"
))
{
gameConf
.
use_lflist
=
atoi
(
valbuf
);
gameConf
.
use_lflist
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"default_lflist"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"default_lflist"
))
{
gameConf
.
default_lflist
=
atoi
(
valbuf
);
gameConf
.
default_lflist
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"default_rule"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"default_rule"
))
{
gameConf
.
default_rule
=
atoi
(
valbuf
);
gameConf
.
default_rule
=
strtol
(
valbuf
,
nullptr
,
10
);
if
(
gameConf
.
default_rule
<=
0
)
if
(
gameConf
.
default_rule
<=
0
)
gameConf
.
default_rule
=
DEFAULT_DUEL_RULE
;
gameConf
.
default_rule
=
DEFAULT_DUEL_RULE
;
}
else
if
(
!
strcmp
(
strbuf
,
"hide_setname"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"hide_setname"
))
{
gameConf
.
hide_setname
=
atoi
(
valbuf
);
gameConf
.
hide_setname
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"hide_hint_button"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"hide_hint_button"
))
{
gameConf
.
hide_hint_button
=
atoi
(
valbuf
);
gameConf
.
hide_hint_button
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"control_mode"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"control_mode"
))
{
gameConf
.
control_mode
=
atoi
(
valbuf
);
gameConf
.
control_mode
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"draw_field_spell"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"draw_field_spell"
))
{
gameConf
.
draw_field_spell
=
atoi
(
valbuf
);
gameConf
.
draw_field_spell
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"separate_clear_button"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"separate_clear_button"
))
{
gameConf
.
separate_clear_button
=
atoi
(
valbuf
);
gameConf
.
separate_clear_button
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"auto_search_limit"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"auto_search_limit"
))
{
gameConf
.
auto_search_limit
=
atoi
(
valbuf
);
gameConf
.
auto_search_limit
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"search_multiple_keywords"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"search_multiple_keywords"
))
{
gameConf
.
search_multiple_keywords
=
atoi
(
valbuf
);
gameConf
.
search_multiple_keywords
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"ignore_deck_changes"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"ignore_deck_changes"
))
{
gameConf
.
chkIgnoreDeckChanges
=
atoi
(
valbuf
);
gameConf
.
chkIgnoreDeckChanges
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"default_ot"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"default_ot"
))
{
gameConf
.
defaultOT
=
atoi
(
valbuf
);
gameConf
.
defaultOT
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"enable_bot_mode"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"enable_bot_mode"
))
{
gameConf
.
enable_bot_mode
=
atoi
(
valbuf
);
gameConf
.
enable_bot_mode
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"quick_animation"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"quick_animation"
))
{
gameConf
.
quick_animation
=
atoi
(
valbuf
);
gameConf
.
quick_animation
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"auto_save_replay"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"auto_save_replay"
))
{
gameConf
.
auto_save_replay
=
atoi
(
valbuf
);
gameConf
.
auto_save_replay
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"draw_single_chain"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"draw_single_chain"
))
{
gameConf
.
draw_single_chain
=
atoi
(
valbuf
);
gameConf
.
draw_single_chain
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"hide_player_name"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"hide_player_name"
))
{
gameConf
.
hide_player_name
=
atoi
(
valbuf
);
gameConf
.
hide_player_name
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"prefer_expansion_script"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"prefer_expansion_script"
))
{
gameConf
.
prefer_expansion_script
=
atoi
(
valbuf
);
gameConf
.
prefer_expansion_script
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"window_maximized"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"window_maximized"
))
{
gameConf
.
window_maximized
=
atoi
(
valbuf
)
>
0
;
gameConf
.
window_maximized
=
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
}
else
if
(
!
strcmp
(
strbuf
,
"window_width"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"window_width"
))
{
gameConf
.
window_width
=
atoi
(
valbuf
);
gameConf
.
window_width
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"window_height"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"window_height"
))
{
gameConf
.
window_height
=
atoi
(
valbuf
);
gameConf
.
window_height
=
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
strcmp
(
strbuf
,
"resize_popup_menu"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"resize_popup_menu"
))
{
gameConf
.
resize_popup_menu
=
atoi
(
valbuf
)
>
0
;
gameConf
.
resize_popup_menu
=
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
#ifdef YGOPRO_USE_IRRKLANG
#ifdef YGOPRO_USE_IRRKLANG
}
else
if
(
!
strcmp
(
strbuf
,
"enable_sound"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"enable_sound"
))
{
gameConf
.
enable_sound
=
atoi
(
valbuf
)
>
0
;
gameConf
.
enable_sound
=
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
}
else
if
(
!
strcmp
(
strbuf
,
"sound_volume"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"sound_volume"
))
{
gameConf
.
sound_volume
=
atof
(
valbuf
)
/
100
;
int
vol
=
strtol
(
valbuf
,
nullptr
,
10
);
if
(
vol
<
0
)
vol
=
0
;
else
if
(
vol
>
100
)
vol
=
100
;
gameConf
.
sound_volume
=
(
double
)
vol
/
100
;
}
else
if
(
!
strcmp
(
strbuf
,
"enable_music"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"enable_music"
))
{
gameConf
.
enable_music
=
atoi
(
valbuf
)
>
0
;
gameConf
.
enable_music
=
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
}
else
if
(
!
strcmp
(
strbuf
,
"music_volume"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"music_volume"
))
{
gameConf
.
music_volume
=
atof
(
valbuf
)
/
100
;
int
vol
=
strtol
(
valbuf
,
nullptr
,
10
);
if
(
vol
<
0
)
vol
=
0
;
else
if
(
vol
>
100
)
vol
=
100
;
gameConf
.
music_volume
=
(
double
)
vol
/
100
;
}
else
if
(
!
strcmp
(
strbuf
,
"music_mode"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"music_mode"
))
{
gameConf
.
music_mode
=
atoi
(
valbuf
);
gameConf
.
music_mode
=
strtol
(
valbuf
,
nullptr
,
10
);
#endif
#endif
}
else
{
}
else
{
// options allowing multiple words
// options allowing multiple words
sscanf
(
linebuf
,
"%s = %240[^
\n
]"
,
strbuf
,
valbuf
);
if
(
sscanf
(
linebuf
,
"%63s = %240[^
\n
]"
,
strbuf
,
valbuf
)
!=
2
)
continue
;
if
(
!
strcmp
(
strbuf
,
"nickname"
))
{
if
(
!
strcmp
(
strbuf
,
"nickname"
))
{
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
nickname
,
20
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
nickname
,
20
);
...
@@ -1510,7 +1530,7 @@ void Game::SaveConfig() {
...
@@ -1510,7 +1530,7 @@ void Game::SaveConfig() {
fprintf
(
fp
,
"use_d3d = %d
\n
"
,
gameConf
.
use_d3d
?
1
:
0
);
fprintf
(
fp
,
"use_d3d = %d
\n
"
,
gameConf
.
use_d3d
?
1
:
0
);
fprintf
(
fp
,
"use_image_scale = %d
\n
"
,
gameConf
.
use_image_scale
?
1
:
0
);
fprintf
(
fp
,
"use_image_scale = %d
\n
"
,
gameConf
.
use_image_scale
?
1
:
0
);
fprintf
(
fp
,
"antialias = %d
\n
"
,
gameConf
.
antialias
);
fprintf
(
fp
,
"antialias = %d
\n
"
,
gameConf
.
antialias
);
fprintf
(
fp
,
"errorlog = %
d
\n
"
,
enable_log
);
fprintf
(
fp
,
"errorlog = %
u
\n
"
,
enable_log
);
BufferIO
::
CopyWStr
(
ebNickName
->
getText
(),
gameConf
.
nickname
,
20
);
BufferIO
::
CopyWStr
(
ebNickName
->
getText
(),
gameConf
.
nickname
,
20
);
BufferIO
::
EncodeUTF8
(
gameConf
.
nickname
,
linebuf
);
BufferIO
::
EncodeUTF8
(
gameConf
.
nickname
,
linebuf
);
fprintf
(
fp
,
"nickname = %s
\n
"
,
linebuf
);
fprintf
(
fp
,
"nickname = %s
\n
"
,
linebuf
);
...
@@ -1570,10 +1590,8 @@ void Game::SaveConfig() {
...
@@ -1570,10 +1590,8 @@ void Game::SaveConfig() {
fprintf
(
fp
,
"enable_music = %d
\n
"
,
(
chkEnableMusic
->
isChecked
()
?
1
:
0
));
fprintf
(
fp
,
"enable_music = %d
\n
"
,
(
chkEnableMusic
->
isChecked
()
?
1
:
0
));
fprintf
(
fp
,
"#Volume of sound and music, between 0 and 100
\n
"
);
fprintf
(
fp
,
"#Volume of sound and music, between 0 and 100
\n
"
);
int
vol
=
gameConf
.
sound_volume
*
100
;
int
vol
=
gameConf
.
sound_volume
*
100
;
if
(
vol
<
0
)
vol
=
0
;
else
if
(
vol
>
100
)
vol
=
100
;
fprintf
(
fp
,
"sound_volume = %d
\n
"
,
vol
);
fprintf
(
fp
,
"sound_volume = %d
\n
"
,
vol
);
vol
=
gameConf
.
music_volume
*
100
;
vol
=
gameConf
.
music_volume
*
100
;
if
(
vol
<
0
)
vol
=
0
;
else
if
(
vol
>
100
)
vol
=
100
;
fprintf
(
fp
,
"music_volume = %d
\n
"
,
vol
);
fprintf
(
fp
,
"music_volume = %d
\n
"
,
vol
);
fprintf
(
fp
,
"music_mode = %d
\n
"
,
(
chkMusicMode
->
isChecked
()
?
1
:
0
));
fprintf
(
fp
,
"music_mode = %d
\n
"
,
(
chkMusicMode
->
isChecked
()
?
1
:
0
));
#endif
#endif
...
@@ -1696,7 +1714,7 @@ void Game::AddLog(const wchar_t* msg, int param) {
...
@@ -1696,7 +1714,7 @@ void Game::AddLog(const wchar_t* msg, int param) {
lstLog
->
setSelected
(
-
1
);
lstLog
->
setSelected
(
-
1
);
}
}
}
}
void
Game
::
AddChatMsg
(
const
wchar_t
*
msg
,
int
player
)
{
void
Game
::
AddChatMsg
(
const
wchar_t
*
msg
,
int
player
,
bool
play_sound
)
{
for
(
int
i
=
7
;
i
>
0
;
--
i
)
{
for
(
int
i
=
7
;
i
>
0
;
--
i
)
{
chatMsg
[
i
]
=
chatMsg
[
i
-
1
];
chatMsg
[
i
]
=
chatMsg
[
i
-
1
];
chatTiming
[
i
]
=
chatTiming
[
i
-
1
];
chatTiming
[
i
]
=
chatTiming
[
i
-
1
];
...
@@ -1707,23 +1725,22 @@ void Game::AddChatMsg(const wchar_t* msg, int player) {
...
@@ -1707,23 +1725,22 @@ void Game::AddChatMsg(const wchar_t* msg, int player) {
chatType
[
0
]
=
player
;
chatType
[
0
]
=
player
;
if
(
gameConf
.
hide_player_name
&&
player
<
4
)
if
(
gameConf
.
hide_player_name
&&
player
<
4
)
player
=
10
;
player
=
10
;
if
(
play_sound
)
soundManager
.
PlaySoundEffect
(
SOUND_CHAT
);
switch
(
player
)
{
switch
(
player
)
{
case
0
:
//from host
case
0
:
//from host
chatMsg
[
0
].
append
(
dInfo
.
hostname
);
chatMsg
[
0
].
append
(
dInfo
.
hostname
);
chatMsg
[
0
].
append
(
L": "
);
chatMsg
[
0
].
append
(
L": "
);
break
;
break
;
case
1
:
//from client
case
1
:
//from client
soundManager
.
PlaySoundEffect
(
SOUND_CHAT
);
chatMsg
[
0
].
append
(
dInfo
.
clientname
);
chatMsg
[
0
].
append
(
dInfo
.
clientname
);
chatMsg
[
0
].
append
(
L": "
);
chatMsg
[
0
].
append
(
L": "
);
break
;
break
;
case
2
:
//host tag
case
2
:
//host tag
soundManager
.
PlaySoundEffect
(
SOUND_CHAT
);
chatMsg
[
0
].
append
(
dInfo
.
hostname_tag
);
chatMsg
[
0
].
append
(
dInfo
.
hostname_tag
);
chatMsg
[
0
].
append
(
L": "
);
chatMsg
[
0
].
append
(
L": "
);
break
;
break
;
case
3
:
//client tag
case
3
:
//client tag
soundManager
.
PlaySoundEffect
(
SOUND_CHAT
);
chatMsg
[
0
].
append
(
dInfo
.
clientname_tag
);
chatMsg
[
0
].
append
(
dInfo
.
clientname_tag
);
chatMsg
[
0
].
append
(
L": "
);
chatMsg
[
0
].
append
(
L": "
);
break
;
break
;
...
@@ -1732,7 +1749,6 @@ void Game::AddChatMsg(const wchar_t* msg, int player) {
...
@@ -1732,7 +1749,6 @@ void Game::AddChatMsg(const wchar_t* msg, int player) {
chatMsg
[
0
].
append
(
L": "
);
chatMsg
[
0
].
append
(
L": "
);
break
;
break
;
case
8
:
//system custom message, no prefix.
case
8
:
//system custom message, no prefix.
soundManager
.
PlaySoundEffect
(
SOUND_CHAT
);
chatMsg
[
0
].
append
(
L"[System]: "
);
chatMsg
[
0
].
append
(
L"[System]: "
);
break
;
break
;
case
9
:
//error message
case
9
:
//error message
...
@@ -1849,6 +1865,40 @@ int Game::LocalPlayer(int player) const {
...
@@ -1849,6 +1865,40 @@ int Game::LocalPlayer(int player) const {
int
pid
=
player
?
1
:
0
;
int
pid
=
player
?
1
:
0
;
return
dInfo
.
isFirst
?
pid
:
1
-
pid
;
return
dInfo
.
isFirst
?
pid
:
1
-
pid
;
}
}
int
Game
::
OppositePlayer
(
int
player
)
{
auto
player_side_bit
=
dInfo
.
isTag
?
0x2
:
0x1
;
return
player
^
player_side_bit
;
}
int
Game
::
ChatLocalPlayer
(
int
player
)
{
if
(
player
>
3
)
return
player
;
bool
is_self
;
if
(
dInfo
.
isStarted
||
is_siding
)
{
if
(
dInfo
.
isInDuel
)
// when in duel
player
=
mainGame
->
dInfo
.
isFirst
?
player
:
OppositePlayer
(
player
);
else
{
// when changing side or waiting tp result
auto
selftype_boundary
=
dInfo
.
isTag
?
2
:
1
;
if
(
DuelClient
::
selftype
>=
selftype_boundary
&&
DuelClient
::
selftype
<
4
)
player
=
OppositePlayer
(
player
);
}
if
(
DuelClient
::
selftype
>=
4
)
{
is_self
=
false
;
}
else
if
(
dInfo
.
isTag
)
{
is_self
=
(
player
&
0x2
)
==
0
&&
(
player
&
0x1
)
==
(
DuelClient
::
selftype
&
0x1
);
}
else
{
is_self
=
player
==
0
;
}
}
else
{
// when in lobby
is_self
=
player
==
DuelClient
::
selftype
;
}
if
(
dInfo
.
isTag
&&
(
player
==
1
||
player
==
2
))
{
player
=
3
-
player
;
}
return
player
|
(
is_self
?
0x10
:
0
);
}
const
wchar_t
*
Game
::
LocalName
(
int
local_player
)
{
const
wchar_t
*
Game
::
LocalName
(
int
local_player
)
{
return
local_player
==
0
?
dInfo
.
hostname
:
dInfo
.
clientname
;
return
local_player
==
0
?
dInfo
.
hostname
:
dInfo
.
clientname
;
}
}
...
...
gframe/game.h
View file @
c9a35976
...
@@ -170,7 +170,7 @@ public:
...
@@ -170,7 +170,7 @@ public:
void
ShowCardInfo
(
int
code
,
bool
resize
=
false
);
void
ShowCardInfo
(
int
code
,
bool
resize
=
false
);
void
ClearCardInfo
(
int
player
=
0
);
void
ClearCardInfo
(
int
player
=
0
);
void
AddLog
(
const
wchar_t
*
msg
,
int
param
=
0
);
void
AddLog
(
const
wchar_t
*
msg
,
int
param
=
0
);
void
AddChatMsg
(
const
wchar_t
*
msg
,
int
player
);
void
AddChatMsg
(
const
wchar_t
*
msg
,
int
player
,
bool
play_sound
=
false
);
void
ClearChatMsg
();
void
ClearChatMsg
();
void
AddDebugMsg
(
const
char
*
msgbuf
);
void
AddDebugMsg
(
const
char
*
msgbuf
);
void
ErrorLog
(
const
char
*
msgbuf
);
void
ErrorLog
(
const
char
*
msgbuf
);
...
@@ -180,6 +180,8 @@ public:
...
@@ -180,6 +180,8 @@ public:
void
CloseDuelWindow
();
void
CloseDuelWindow
();
int
LocalPlayer
(
int
player
)
const
;
int
LocalPlayer
(
int
player
)
const
;
int
OppositePlayer
(
int
player
);
int
ChatLocalPlayer
(
int
player
);
const
wchar_t
*
LocalName
(
int
local_player
);
const
wchar_t
*
LocalName
(
int
local_player
);
bool
HasFocus
(
EGUI_ELEMENT_TYPE
type
)
const
{
bool
HasFocus
(
EGUI_ELEMENT_TYPE
type
)
const
{
...
...
gframe/gframe.cpp
View file @
c9a35976
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
#import <CoreFoundation/CoreFoundation.h>
#import <CoreFoundation/CoreFoundation.h>
#endif
#endif
int
enable_log
=
0
;
unsigned
int
enable_log
=
0x3
;
#ifndef YGOPRO_SERVER_MODE
#ifndef YGOPRO_SERVER_MODE
bool
exit_on_return
=
false
;
bool
exit_on_return
=
false
;
bool
open_file
=
false
;
bool
open_file
=
false
;
...
...
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