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
84347d0a
Commit
84347d0a
authored
Jun 30, 2025
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of github.com:Fluorohydride/ygopro into develop
parents
d582bfd8
2c3d2e48
Changes
9
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
251 additions
and
33 deletions
+251
-33
gframe/client_field.cpp
gframe/client_field.cpp
+38
-10
gframe/client_field.h
gframe/client_field.h
+1
-0
gframe/duelclient.cpp
gframe/duelclient.cpp
+1
-1
gframe/game.cpp
gframe/game.cpp
+1
-1
gframe/menu_handler.cpp
gframe/menu_handler.cpp
+5
-1
gframe/premake5.lua
gframe/premake5.lua
+3
-1
lflist.conf
lflist.conf
+196
-13
premake/event/premake5.lua
premake/event/premake5.lua
+4
-4
resource/gframe/ygopro.rc
resource/gframe/ygopro.rc
+2
-2
No files found.
gframe/client_field.cpp
View file @
84347d0a
...
@@ -228,12 +228,12 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
...
@@ -228,12 +228,12 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
}
}
case
LOCATION_GRAVE
:
{
case
LOCATION_GRAVE
:
{
grave
[
controler
].
push_back
(
pcard
);
grave
[
controler
].
push_back
(
pcard
);
ResetSequence
(
grave
[
controler
],
false
);
pcard
->
sequence
=
(
unsigned
char
)(
grave
[
controler
].
size
()
-
1
);
break
;
break
;
}
}
case
LOCATION_REMOVED
:
{
case
LOCATION_REMOVED
:
{
remove
[
controler
].
push_back
(
pcard
);
remove
[
controler
].
push_back
(
pcard
);
ResetSequence
(
remove
[
controler
],
false
);
pcard
->
sequence
=
(
unsigned
char
)(
remove
[
controler
].
size
()
-
1
);
break
;
break
;
}
}
case
LOCATION_EXTRA
:
{
case
LOCATION_EXTRA
:
{
...
@@ -256,8 +256,13 @@ ClientCard* ClientField::RemoveCard(int controler, int location, int sequence) {
...
@@ -256,8 +256,13 @@ ClientCard* ClientField::RemoveCard(int controler, int location, int sequence) {
switch
(
location
)
{
switch
(
location
)
{
case
LOCATION_DECK
:
{
case
LOCATION_DECK
:
{
pcard
=
deck
[
controler
][
sequence
];
pcard
=
deck
[
controler
][
sequence
];
deck
[
controler
].
erase
(
deck
[
controler
].
begin
()
+
sequence
);
for
(
size_t
i
=
sequence
;
i
<
deck
[
controler
].
size
()
-
1
;
++
i
)
{
ResetSequence
(
deck
[
controler
],
true
);
deck
[
controler
][
i
]
=
deck
[
controler
][
i
+
1
];
deck
[
controler
][
i
]
->
sequence
--
;
deck
[
controler
][
i
]
->
curPos
-=
irr
::
core
::
vector3df
(
0
,
0
,
0.01
f
);
deck
[
controler
][
i
]
->
mTransform
.
setTranslation
(
deck
[
controler
][
i
]
->
curPos
);
}
deck
[
controler
].
erase
(
deck
[
controler
].
end
()
-
1
);
break
;
break
;
}
}
case
LOCATION_HAND
:
{
case
LOCATION_HAND
:
{
...
@@ -278,20 +283,35 @@ ClientCard* ClientField::RemoveCard(int controler, int location, int sequence) {
...
@@ -278,20 +283,35 @@ ClientCard* ClientField::RemoveCard(int controler, int location, int sequence) {
}
}
case
LOCATION_GRAVE
:
{
case
LOCATION_GRAVE
:
{
pcard
=
grave
[
controler
][
sequence
];
pcard
=
grave
[
controler
][
sequence
];
grave
[
controler
].
erase
(
grave
[
controler
].
begin
()
+
sequence
);
for
(
size_t
i
=
sequence
;
i
<
grave
[
controler
].
size
()
-
1
;
++
i
)
{
ResetSequence
(
grave
[
controler
],
true
);
grave
[
controler
][
i
]
=
grave
[
controler
][
i
+
1
];
grave
[
controler
][
i
]
->
sequence
--
;
grave
[
controler
][
i
]
->
curPos
-=
irr
::
core
::
vector3df
(
0
,
0
,
0.01
f
);
grave
[
controler
][
i
]
->
mTransform
.
setTranslation
(
grave
[
controler
][
i
]
->
curPos
);
}
grave
[
controler
].
erase
(
grave
[
controler
].
end
()
-
1
);
break
;
break
;
}
}
case
LOCATION_REMOVED
:
{
case
LOCATION_REMOVED
:
{
pcard
=
remove
[
controler
][
sequence
];
pcard
=
remove
[
controler
][
sequence
];
remove
[
controler
].
erase
(
remove
[
controler
].
begin
()
+
sequence
);
for
(
size_t
i
=
sequence
;
i
<
remove
[
controler
].
size
()
-
1
;
++
i
)
{
ResetSequence
(
remove
[
controler
],
true
);
remove
[
controler
][
i
]
=
remove
[
controler
][
i
+
1
];
remove
[
controler
][
i
]
->
sequence
--
;
remove
[
controler
][
i
]
->
curPos
-=
irr
::
core
::
vector3df
(
0
,
0
,
0.01
f
);
remove
[
controler
][
i
]
->
mTransform
.
setTranslation
(
remove
[
controler
][
i
]
->
curPos
);
}
remove
[
controler
].
erase
(
remove
[
controler
].
end
()
-
1
);
break
;
break
;
}
}
case
LOCATION_EXTRA
:
{
case
LOCATION_EXTRA
:
{
pcard
=
extra
[
controler
][
sequence
];
pcard
=
extra
[
controler
][
sequence
];
extra
[
controler
].
erase
(
extra
[
controler
].
begin
()
+
sequence
);
for
(
size_t
i
=
sequence
;
i
<
extra
[
controler
].
size
()
-
1
;
++
i
)
{
ResetSequence
(
extra
[
controler
],
true
);
extra
[
controler
][
i
]
=
extra
[
controler
][
i
+
1
];
extra
[
controler
][
i
]
->
sequence
--
;
extra
[
controler
][
i
]
->
curPos
-=
irr
::
core
::
vector3df
(
0
,
0
,
0.01
f
);
extra
[
controler
][
i
]
->
mTransform
.
setTranslation
(
extra
[
controler
][
i
]
->
curPos
);
}
extra
[
controler
].
erase
(
extra
[
controler
].
end
()
-
1
);
if
(
pcard
->
position
&
POS_FACEUP
)
if
(
pcard
->
position
&
POS_FACEUP
)
extra_p_count
[
controler
]
--
;
extra_p_count
[
controler
]
--
;
break
;
break
;
...
@@ -1293,6 +1313,14 @@ bool ClientField::CheckSelectTribute() {
...
@@ -1293,6 +1313,14 @@ bool ClientField::CheckSelectTribute() {
}
}
return
ret
;
return
ret
;
}
}
void
ClientField
::
get_sum_params
(
unsigned
int
opParam
,
int
&
op1
,
int
&
op2
)
{
op1
=
opParam
&
0xffff
;
op2
=
(
opParam
>>
16
)
&
0xffff
;
if
(
op2
&
0x8000
)
{
op1
=
opParam
&
0x7fffffff
;
op2
=
0
;
}
}
bool
ClientField
::
check_min
(
const
std
::
set
<
ClientCard
*>&
left
,
std
::
set
<
ClientCard
*>::
const_iterator
index
,
int
min
,
int
max
)
{
bool
ClientField
::
check_min
(
const
std
::
set
<
ClientCard
*>&
left
,
std
::
set
<
ClientCard
*>::
const_iterator
index
,
int
min
,
int
max
)
{
if
(
index
==
left
.
end
())
if
(
index
==
left
.
end
())
return
false
;
return
false
;
...
...
gframe/client_field.h
View file @
84347d0a
...
@@ -121,6 +121,7 @@ public:
...
@@ -121,6 +121,7 @@ public:
bool
ShowSelectSum
(
bool
panelmode
);
bool
ShowSelectSum
(
bool
panelmode
);
bool
CheckSelectSum
();
bool
CheckSelectSum
();
bool
CheckSelectTribute
();
bool
CheckSelectTribute
();
void
get_sum_params
(
unsigned
int
opParam
,
int
&
op1
,
int
&
op2
);
bool
check_min
(
const
std
::
set
<
ClientCard
*>&
left
,
std
::
set
<
ClientCard
*>::
const_iterator
index
,
int
min
,
int
max
);
bool
check_min
(
const
std
::
set
<
ClientCard
*>&
left
,
std
::
set
<
ClientCard
*>::
const_iterator
index
,
int
min
,
int
max
);
bool
check_sel_sum_s
(
const
std
::
set
<
ClientCard
*>&
left
,
int
index
,
int
acc
);
bool
check_sel_sum_s
(
const
std
::
set
<
ClientCard
*>&
left
,
int
index
,
int
acc
);
void
check_sel_sum_t
(
const
std
::
set
<
ClientCard
*>&
left
,
int
acc
);
void
check_sel_sum_t
(
const
std
::
set
<
ClientCard
*>&
left
,
int
acc
);
...
...
gframe/duelclient.cpp
View file @
84347d0a
...
@@ -134,7 +134,7 @@ void DuelClient::ClientEvent(bufferevent* bev, short events, void* ctx) {
...
@@ -134,7 +134,7 @@ void DuelClient::ClientEvent(bufferevent* bev, short events, void* ctx) {
uint16_t
hostname_buf
[
LEN_HOSTNAME
];
uint16_t
hostname_buf
[
LEN_HOSTNAME
];
auto
hostname_len
=
BufferIO
::
CopyCharArray
(
mainGame
->
ebJoinHost
->
getText
(),
hostname_buf
);
auto
hostname_len
=
BufferIO
::
CopyCharArray
(
mainGame
->
ebJoinHost
->
getText
(),
hostname_buf
);
auto
hostname_msglen
=
(
hostname_len
+
1
)
*
sizeof
(
uint16_t
);
auto
hostname_msglen
=
(
hostname_len
+
1
)
*
sizeof
(
uint16_t
);
char
buf
[
LEN_HOSTNAME
*
sizeof
(
int16_t
)
+
sizeof
(
uint32_t
)];
char
buf
[
LEN_HOSTNAME
*
sizeof
(
u
int16_t
)
+
sizeof
(
uint32_t
)];
memset
(
buf
,
0
,
sizeof
(
uint32_t
));
// real_ip
memset
(
buf
,
0
,
sizeof
(
uint32_t
));
// real_ip
memcpy
(
buf
+
sizeof
(
uint32_t
),
hostname_buf
,
hostname_msglen
);
memcpy
(
buf
+
sizeof
(
uint32_t
),
hostname_buf
,
hostname_msglen
);
SendBufferToServer
(
CTOS_EXTERNAL_ADDRESS
,
buf
,
hostname_msglen
+
sizeof
(
uint32_t
));
SendBufferToServer
(
CTOS_EXTERNAL_ADDRESS
,
buf
,
hostname_msglen
+
sizeof
(
uint32_t
));
...
...
gframe/game.cpp
View file @
84347d0a
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
#include <regex>
#include <regex>
#include <thread>
#include <thread>
unsigned
short
PRO_VERSION
=
0x136
1
;
unsigned
short
PRO_VERSION
=
0x136
2
;
namespace
ygo
{
namespace
ygo
{
...
...
gframe/menu_handler.cpp
View file @
84347d0a
...
@@ -217,8 +217,12 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
...
@@ -217,8 +217,12 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
case
BUTTON_LOAD_REPLAY
:
{
case
BUTTON_LOAD_REPLAY
:
{
int
start_turn
=
1
;
int
start_turn
=
1
;
if
(
open_file
)
{
if
(
open_file
)
{
ReplayMode
::
cur_replay
.
OpenReplay
(
open_file_name
);
open_file
=
false
;
open_file
=
false
;
if
(
!
ReplayMode
::
cur_replay
.
OpenReplay
(
open_file_name
))
{
if
(
exit_on_return
)
mainGame
->
device
->
closeDevice
();
break
;
}
}
else
{
}
else
{
auto
selected
=
mainGame
->
lstReplayList
->
getSelected
();
auto
selected
=
mainGame
->
lstReplayList
->
getSelected
();
if
(
selected
==
-
1
)
if
(
selected
==
-
1
)
...
...
gframe/premake5.lua
View file @
84347d0a
...
@@ -3,7 +3,6 @@ include "spmemvfs/."
...
@@ -3,7 +3,6 @@ include "spmemvfs/."
project
"YGOPro"
project
"YGOPro"
kind
"WindowedApp"
kind
"WindowedApp"
cppdialect
"C++14"
rtti
"Off"
rtti
"Off"
openmp
"On"
openmp
"On"
...
@@ -89,6 +88,9 @@ project "YGOPro"
...
@@ -89,6 +88,9 @@ project "YGOPro"
end
end
filter
"not system:windows"
filter
"not system:windows"
links
{
"resolv"
}
links
{
"resolv"
}
filter
"not action:vs*"
cppdialect
"C++14"
filter
"system:macosx"
filter
"system:macosx"
openmp
"Off"
openmp
"Off"
links
{
"OpenGL.framework"
,
"Cocoa.framework"
,
"IOKit.framework"
}
links
{
"OpenGL.framework"
,
"Cocoa.framework"
,
"IOKit.framework"
}
...
...
lflist.conf
View file @
84347d0a
This diff is collapsed.
Click to expand it.
premake/event/premake5.lua
View file @
84347d0a
project
"event"
project
"event"
kind
"StaticLib"
kind
"StaticLib"
local
EVENT_VERSION
=
(
io
.
readfile
(
"configure"
)
or
""
):
match
(
"NUMERIC_VERSION%s+
0x(
%x+)"
)
local
EVENT_VERSION
=
(
io
.
readfile
(
"configure"
)
or
""
):
match
(
"NUMERIC_VERSION%s+
(0x
%x+)"
)
if
not
EVENT_VERSION
then
if
not
EVENT_VERSION
then
print
(
"Warning: Could not determine libevent version from the configure file, assuming 2.1.12."
)
print
(
"Warning: Could not determine libevent version from the configure file, assuming 2.1.12."
)
EVENT_VERSION
=
"02010c00"
-- 2.1.12
EVENT_VERSION
=
"0
x0
2010c00"
-- 2.1.12
end
end
EVENT_VERSION
=
tonumber
(
EVENT_VERSION
,
16
)
EVENT_VERSION
=
tonumber
(
EVENT_VERSION
)
if
EVENT_VERSION
>=
0x02020000
then
if
EVENT_VERSION
>=
0x02020000
then
print
(
"Warning: Using libevent version 2.2.x is not supported, please use 2.1.x, otherwise you may encounter issues."
)
print
(
"Warning: Using libevent version 2.2.x is not supported, please use 2.1.x, otherwise you may encounter issues."
)
end
end
if
EVENT_VERSION
>=
0x02010000
and
WINXP_SUPPORT
then
if
EVENT_VERSION
>=
0x02010000
and
WINXP_SUPPORT
then
print
(
"Warning: libevent 2.1 uses some new APIs which require Windows Vista or later, so WinXP support will be
not
valid."
)
print
(
"Warning: libevent 2.1 uses some new APIs which require Windows Vista or later, so WinXP support will be
in
valid."
)
end
end
includedirs
{
"include"
,
"compat"
}
includedirs
{
"include"
,
"compat"
}
...
...
resource/gframe/ygopro.rc
View file @
84347d0a
1 ICON "ygopro.ico"
1 ICON "ygopro.ico"
1 VERSIONINFO
1 VERSIONINFO
FILEVERSION 1, 0, 36,
1
FILEVERSION 1, 0, 36,
2
PRODUCTVERSION 1, 0, 36,
1
PRODUCTVERSION 1, 0, 36,
2
FILEOS 0x4
FILEOS 0x4
FILETYPE 0x1
FILETYPE 0x1
...
...
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