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
YGOPRO-520DIY
ygopro
Commits
07ac78c6
Commit
07ac78c6
authored
Sep 24, 2022
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'patch-srv-withport' of ../versions/ygopro-fh
parents
cb476a2e
757e3990
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
40 additions
and
19 deletions
+40
-19
gframe/duelclient.cpp
gframe/duelclient.cpp
+6
-1
gframe/duelclient.h
gframe/duelclient.h
+1
-1
gframe/game.cpp
gframe/game.cpp
+8
-6
gframe/game.h
gframe/game.h
+2
-0
gframe/gframe.cpp
gframe/gframe.cpp
+14
-7
gframe/menu_handler.cpp
gframe/menu_handler.cpp
+7
-3
system.conf
system.conf
+2
-1
No files found.
gframe/duelclient.cpp
View file @
07ac78c6
...
...
@@ -4425,8 +4425,13 @@ bool DuelClient::LookupSRV(char *hostname, HostResult* result) {
return
true
;
}
HostResult
DuelClient
::
ParseHost
(
char
*
hostname
)
{
HostResult
DuelClient
::
ParseHost
(
char
*
hostname
,
unsigned
short
port
)
{
HostResult
result
;
if
(
port
)
{
result
.
host
=
LookupHost
(
hostname
);
result
.
port
=
port
;
return
result
;
}
unsigned
int
tryAddress
=
htonl
(
inet_addr
(
hostname
));
if
(
tryAddress
!=
-
1
)
{
result
.
host
=
tryAddress
;
...
...
gframe/duelclient.h
View file @
07ac78c6
...
...
@@ -97,7 +97,7 @@ public:
static
void
SendResponse
();
static
unsigned
int
LookupHost
(
char
*
host
);
static
bool
LookupSRV
(
char
*
hostname
,
HostResult
*
result
);
static
HostResult
ParseHost
(
char
*
hostname
);
static
HostResult
ParseHost
(
char
*
hostname
,
unsigned
short
port
);
static
void
SendPacketToServer
(
unsigned
char
proto
)
{
char
*
p
=
duel_client_write
;
BufferIO
::
WriteInt16
(
p
,
1
);
...
...
gframe/game.cpp
View file @
07ac78c6
...
...
@@ -201,8 +201,10 @@ bool Game::Initialize() {
lstHostList
->
setItemHeight
(
18
);
btnLanRefresh
=
env
->
addButton
(
rect
<
s32
>
(
240
,
325
,
340
,
350
),
wLanWindow
,
BUTTON_LAN_REFRESH
,
dataManager
.
GetSysString
(
1217
));
env
->
addStaticText
(
dataManager
.
GetSysString
(
1221
),
rect
<
s32
>
(
10
,
360
,
220
,
380
),
false
,
false
,
wLanWindow
);
ebJoinHost
=
env
->
addEditBox
(
gameConf
.
lasthost
,
rect
<
s32
>
(
110
,
355
,
42
0
,
380
),
true
,
wLanWindow
);
ebJoinHost
=
env
->
addEditBox
(
gameConf
.
lasthost
,
rect
<
s32
>
(
110
,
355
,
35
0
,
380
),
true
,
wLanWindow
);
ebJoinHost
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
ebJoinPort
=
env
->
addEditBox
(
gameConf
.
lastport
,
rect
<
s32
>
(
360
,
355
,
420
,
380
),
true
,
wLanWindow
);
ebJoinPort
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1222
),
rect
<
s32
>
(
10
,
390
,
220
,
410
),
false
,
false
,
wLanWindow
);
ebJoinPass
=
env
->
addEditBox
(
gameConf
.
roompass
,
rect
<
s32
>
(
110
,
385
,
420
,
410
),
true
,
wLanWindow
);
ebJoinPass
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
...
...
@@ -1399,11 +1401,8 @@ bool Game::LoadConfigFromFile(const char* file) {
}
else
if
(
!
strcmp
(
strbuf
,
"lasthost"
))
{
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
lasthost
,
100
);
}
else
if
(
!
strcmp
(
strbuf
,
"lastport"
))
{
// for config migration
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
wchar_t
tmpLastHost
[
100
];
BufferIO
::
CopyWStr
(
gameConf
.
lasthost
,
tmpLastHost
,
100
);
myswprintf
(
gameConf
.
lasthost
,
L"%ls:%ls"
,
tmpLastHost
,
wstr
);
}
else
if
(
!
strcmp
(
strbuf
,
"lastport"
))
{
gameConf
.
lastport
=
(
unsigned
short
)
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"roompass"
))
{
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
roompass
,
20
);
...
...
@@ -1527,6 +1526,7 @@ void Game::LoadConfig() {
gameConf
.
numfont
[
0
]
=
0
;
gameConf
.
textfont
[
0
]
=
0
;
gameConf
.
lasthost
[
0
]
=
0
;
gameConf
.
lastport
=
0
;
gameConf
.
roompass
[
0
]
=
0
;
//settings
gameConf
.
chkMAutoPos
=
0
;
...
...
@@ -1661,6 +1661,8 @@ void Game::SaveConfig() {
fprintf
(
fp
,
"serverport = %d
\n
"
,
gameConf
.
serverport
);
BufferIO
::
EncodeUTF8
(
gameConf
.
lasthost
,
linebuf
);
fprintf
(
fp
,
"lasthost = %s
\n
"
,
linebuf
);
BufferIO
::
EncodeUTF8
(
gameConf
.
lastport
,
linebuf
);
fprintf
(
fp
,
"lastport = %s
\n
"
,
linebuf
);
//settings
fprintf
(
fp
,
"automonsterpos = %d
\n
"
,
(
chkMAutoPos
->
isChecked
()
?
1
:
0
));
fprintf
(
fp
,
"autospellpos = %d
\n
"
,
(
chkSTAutoPos
->
isChecked
()
?
1
:
0
));
...
...
gframe/game.h
View file @
07ac78c6
...
...
@@ -19,6 +19,7 @@ struct Config {
unsigned
short
serverport
;
unsigned
char
textfontsize
;
wchar_t
lasthost
[
100
];
unsigned
short
lastport
;
wchar_t
nickname
[
20
];
wchar_t
gamename
[
20
];
wchar_t
lastcategory
[
64
];
...
...
@@ -361,6 +362,7 @@ public:
irr
::
gui
::
IGUIListBox
*
lstHostList
;
irr
::
gui
::
IGUIButton
*
btnLanRefresh
;
irr
::
gui
::
IGUIEditBox
*
ebJoinHost
;
irr
::
gui
::
IGUIEditBox
*
ebJoinPort
;
irr
::
gui
::
IGUIEditBox
*
ebJoinPass
;
irr
::
gui
::
IGUIButton
*
btnJoinHost
;
irr
::
gui
::
IGUIButton
*
btnJoinCancel
;
...
...
gframe/gframe.cpp
View file @
07ac78c6
...
...
@@ -77,6 +77,7 @@ int main(int argc, char* argv[]) {
bool
keep_on_return
=
false
;
bool
deckCategorySpecified
=
false
;
bool
portSpecified
=
false
;
for
(
int
i
=
1
;
i
<
wargc
;
++
i
)
{
if
(
wargv
[
i
][
0
]
==
L'-'
&&
wargv
[
i
][
1
]
==
L'e'
&&
wargv
[
i
][
2
]
!=
L'\0'
)
{
ygo
::
dataManager
.
LoadDB
(
&
wargv
[
i
][
2
]);
...
...
@@ -95,17 +96,23 @@ int main(int argc, char* argv[]) {
continue
;
}
else
if
(
!
wcscmp
(
wargv
[
i
],
L"-h"
))
{
// Host address
++
i
;
if
(
i
<
wargc
)
if
(
i
<
wargc
)
{
ygo
::
mainGame
->
ebJoinHost
->
setText
(
wargv
[
i
]);
if
(
!
portSpecified
)
ygo
::
mainGame
->
ebJoinPort
->
setText
(
L""
);
}
continue
;
}
else
if
(
!
wcscmp
(
wargv
[
i
],
L"-p"
))
{
// host
port, deprecated, and should use 1.1.1.1:7911 instead
}
else
if
(
!
wcscmp
(
wargv
[
i
],
L"-p"
))
{
// host
Port
++
i
;
if
(
i
<
wargc
)
{
auto
host
=
ygo
::
mainGame
->
ebJoinHost
->
getText
();
if
(
wcslen
(
host
)
>
0
)
{
wchar_t
appended
[
100
];
myswprintf
(
appended
,
L"%ls:%ls"
,
host
,
wargv
[
i
]);
ygo
::
mainGame
->
ebJoinHost
->
setText
(
appended
);
portSpecified
=
true
;
auto
port
=
_wtoi
(
wargv
[
i
]);
if
(
port
)
{
wchar_t
portStr
[
6
];
myswprintf
(
portStr
,
L"%d"
,
port
);
ygo
::
mainGame
->
ebJoinPort
->
setText
(
portStr
);
}
else
{
ygo
::
mainGame
->
ebJoinPort
->
setText
(
L""
);
}
}
continue
;
...
...
gframe/menu_handler.cpp
View file @
07ac78c6
...
...
@@ -68,7 +68,8 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
char
hostname
[
100
];
const
wchar_t
*
pstr
=
mainGame
->
ebJoinHost
->
getText
();
BufferIO
::
CopyWStr
(
pstr
,
hostname
,
100
);
HostResult
remote
=
DuelClient
::
ParseHost
(
hostname
);
auto
port
=
(
unsigned
short
)
_wtoi
(
mainGame
->
ebJoinPort
->
getText
());
HostResult
remote
=
DuelClient
::
ParseHost
(
hostname
,
port
);
if
(
!
remote
.
isValid
())
{
mainGame
->
gMutex
.
lock
();
soundManager
.
PlaySoundEffect
(
SOUND_INFO
);
...
...
@@ -81,6 +82,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
break
;
}
BufferIO
::
CopyWStr
(
pstr
,
mainGame
->
gameConf
.
lasthost
,
100
);
mainGame
->
gameConf
.
lastport
=
port
;
if
(
DuelClient
::
StartClient
(
remote
.
host
,
remote
.
port
,
false
))
{
mainGame
->
btnCreateHost
->
setEnabled
(
false
);
mainGame
->
btnJoinHost
->
setEnabled
(
false
);
...
...
@@ -484,9 +486,11 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
}
int
addr
=
DuelClient
::
hosts
[
sel
].
ipaddr
;
int
port
=
DuelClient
::
hosts
[
sel
].
port
;
wchar_t
buf
[
2
6
];
myswprintf
(
buf
,
L"%d.%d.%d.%d
:%d"
,
addr
&
0xff
,
(
addr
>>
8
)
&
0xff
,
(
addr
>>
16
)
&
0xff
,
(
addr
>>
24
)
&
0xff
,
port
);
wchar_t
buf
[
2
0
];
myswprintf
(
buf
,
L"%d.%d.%d.%d
"
,
addr
&
0xff
,
(
addr
>>
8
)
&
0xff
,
(
addr
>>
16
)
&
0xff
,
(
addr
>>
24
)
&
0xff
);
mainGame
->
ebJoinHost
->
setText
(
buf
);
myswprintf
(
buf
,
L"%d"
,
port
);
mainGame
->
ebJoinPort
->
setText
(
buf
);
break
;
}
case
LISTBOX_REPLAY_LIST
:
{
...
...
system.conf
View file @
07ac78c6
...
...
@@ -12,7 +12,8 @@ lastdeck = new
textfont
= ./
fonts
/
simhei
.
ttf
14
numfont
= ./
fonts
/
arial
.
ttf
serverport
=
7911
lasthost
=
127
.
0
.
0
.
1
:
7911
lasthost
=
127
.
0
.
0
.
1
lastport
=
0
automonsterpos
=
0
autospellpos
=
0
randompos
=
0
...
...
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