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
eb133fef
Commit
eb133fef
authored
Jun 17, 2025
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add registry and add metadata
parent
8a838916
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
47 additions
and
1 deletion
+47
-1
gframe/network.h
gframe/network.h
+1
-0
gframe/single_duel.cpp
gframe/single_duel.cpp
+24
-0
gframe/tag_duel.cpp
gframe/tag_duel.cpp
+21
-0
ocgcore
ocgcore
+1
-1
No files found.
gframe/network.h
View file @
eb133fef
...
...
@@ -232,6 +232,7 @@ public:
intptr_t
pduel
{};
wchar_t
name
[
20
]{};
wchar_t
pass
[
20
]{};
std
::
vector
<
byte
>
registry_dump
;
};
}
...
...
gframe/single_duel.cpp
View file @
eb133fef
...
...
@@ -436,6 +436,27 @@ void SingleDuel::TPResult(DuelPlayer* dp, unsigned char tp) {
set_card_reader
(
DataManager
::
CardReader
);
set_message_handler
(
SingleDuel
::
MessageHandler
);
pduel
=
create_duel
(
duel_seed
);
if
(
!
registry_dump
.
empty
())
{
load_registry
(
pduel
,
registry_dump
.
data
(),
(
int32_t
)
registry_dump
.
size
());
}
set_registry_value
(
pduel
,
"duel_mode"
,
match_mode
?
"match"
:
"single"
);
if
(
match_mode
)
{
set_registry_value
(
pduel
,
"duel_count"
,
std
::
to_string
(
duel_count
).
c_str
());
}
set_registry_value
(
pduel
,
"start_lp"
,
std
::
to_string
(
host_info
.
start_lp
).
c_str
());
set_registry_value
(
pduel
,
"start_hand"
,
std
::
to_string
(
host_info
.
start_hand
).
c_str
());
set_registry_value
(
pduel
,
"draw_count"
,
std
::
to_string
(
host_info
.
draw_count
).
c_str
());
wchar_t
player_name_buf
[
40
];
char
player_name_buf_u
[
40
];
char
player_key_buf
[
15
];
for
(
int
i
=
0
;
i
<
2
;
++
i
)
{
BufferIO
::
CopyCharArray
(
players
[
i
]
->
name
,
player_name_buf
);
BufferIO
::
EncodeUTF8
(
player_name_buf
,
player_name_buf_u
);
std
::
snprintf
(
player_key_buf
,
sizeof
(
player_key_buf
),
"player_name_%d"
,
i
);
set_registry_value
(
pduel
,
player_key_buf
,
player_name_buf_u
);
std
::
snprintf
(
player_key_buf
,
sizeof
(
player_key_buf
),
"player_type_%d"
,
i
);
set_registry_value
(
pduel
,
player_key_buf
,
std
::
to_string
(
players
[
i
]
->
type
).
c_str
());
}
set_player_info
(
pduel
,
0
,
host_info
.
start_lp
,
host_info
.
start_hand
,
host_info
.
draw_count
);
set_player_info
(
pduel
,
1
,
host_info
.
start_lp
,
host_info
.
start_hand
,
host_info
.
draw_count
);
preload_script
(
pduel
,
"./script/special.lua"
);
...
...
@@ -1462,6 +1483,9 @@ void SingleDuel::EndDuel() {
NetServer
::
ReSendToPlayer
(
players
[
1
]);
for
(
auto
oit
=
observers
.
begin
();
oit
!=
observers
.
end
();
++
oit
)
NetServer
::
ReSendToPlayer
(
*
oit
);
registry_dump
.
resize
(
0x2000
);
int
len
=
dump_registry
(
pduel
,
registry_dump
.
data
());
registry_dump
.
resize
(
len
);
end_duel
(
pduel
);
event_del
(
etimer
);
pduel
=
0
;
...
...
gframe/tag_duel.cpp
View file @
eb133fef
...
...
@@ -413,6 +413,24 @@ void TagDuel::TPResult(DuelPlayer* dp, unsigned char tp) {
set_card_reader
(
DataManager
::
CardReader
);
set_message_handler
(
TagDuel
::
MessageHandler
);
pduel
=
create_duel
(
duel_seed
);
if
(
!
registry_dump
.
empty
())
{
load_registry
(
pduel
,
registry_dump
.
data
(),
(
int32_t
)
registry_dump
.
size
());
}
set_registry_value
(
pduel
,
"duel_mode"
,
"tag"
);
set_registry_value
(
pduel
,
"start_lp"
,
std
::
to_string
(
host_info
.
start_lp
).
c_str
());
set_registry_value
(
pduel
,
"start_hand"
,
std
::
to_string
(
host_info
.
start_hand
).
c_str
());
set_registry_value
(
pduel
,
"draw_count"
,
std
::
to_string
(
host_info
.
draw_count
).
c_str
());
wchar_t
player_name_buf
[
40
];
char
player_name_buf_u
[
40
];
char
player_key_buf
[
15
];
for
(
int
i
=
0
;
i
<
2
;
++
i
)
{
BufferIO
::
CopyCharArray
(
players
[
i
]
->
name
,
player_name_buf
);
BufferIO
::
EncodeUTF8
(
player_name_buf
,
player_name_buf_u
);
std
::
snprintf
(
player_key_buf
,
sizeof
(
player_key_buf
),
"player_name_%d"
,
i
);
set_registry_value
(
pduel
,
player_key_buf
,
player_name_buf_u
);
std
::
snprintf
(
player_key_buf
,
sizeof
(
player_key_buf
),
"player_type_%d"
,
i
);
set_registry_value
(
pduel
,
player_key_buf
,
std
::
to_string
(
players
[
i
]
->
type
).
c_str
());
}
set_player_info
(
pduel
,
0
,
host_info
.
start_lp
,
host_info
.
start_hand
,
host_info
.
draw_count
);
set_player_info
(
pduel
,
1
,
host_info
.
start_lp
,
host_info
.
start_hand
,
host_info
.
draw_count
);
preload_script
(
pduel
,
"./script/special.lua"
);
...
...
@@ -1569,6 +1587,9 @@ void TagDuel::EndDuel() {
NetServer
::
ReSendToPlayer
(
players
[
3
]);
for
(
auto
oit
=
observers
.
begin
();
oit
!=
observers
.
end
();
++
oit
)
NetServer
::
ReSendToPlayer
(
*
oit
);
registry_dump
.
resize
(
0x2000
);
int
len
=
dump_registry
(
pduel
,
registry_dump
.
data
());
registry_dump
.
resize
(
len
);
end_duel
(
pduel
);
event_del
(
etimer
);
pduel
=
0
;
...
...
ocgcore
@
7e4dcb52
Subproject commit
ee1548f719cd4d371ae687fb623fac75bd8a64f4
Subproject commit
7e4dcb52699be7631d0abcc9617c7276bb3cc50d
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