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
aaa1d3cf
Commit
aaa1d3cf
authored
Jan 04, 2025
by
salix5
Committed by
GitHub
Jan 04, 2025
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix ScriptReader (#2642)
* fix ScriptReader * increase scriptBuffer * fix DeckManager::LoadCurrentDeck
parent
cc18709f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
12 additions
and
17 deletions
+12
-17
gframe/data_manager.cpp
gframe/data_manager.cpp
+5
-8
gframe/data_manager.h
gframe/data_manager.h
+1
-1
gframe/deck_manager.cpp
gframe/deck_manager.cpp
+6
-8
No files found.
gframe/data_manager.cpp
View file @
aaa1d3cf
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
namespace
ygo
{
namespace
ygo
{
const
wchar_t
*
DataManager
::
unknown_string
=
L"???"
;
const
wchar_t
*
DataManager
::
unknown_string
=
L"???"
;
unsigned
char
DataManager
::
scriptBuffer
[
0x
2
0000
];
unsigned
char
DataManager
::
scriptBuffer
[
0x
10
0000
];
IFileSystem
*
DataManager
::
FileSystem
;
IFileSystem
*
DataManager
::
FileSystem
;
DataManager
dataManager
;
DataManager
dataManager
;
...
@@ -424,14 +424,11 @@ unsigned char* DataManager::ScriptReader(const char* script_name, int* slen) {
...
@@ -424,14 +424,11 @@ unsigned char* DataManager::ScriptReader(const char* script_name, int* slen) {
#endif
#endif
if
(
!
reader
)
if
(
!
reader
)
return
nullptr
;
return
nullptr
;
size_t
size
=
reader
->
getSize
();
int
size
=
reader
->
read
(
scriptBuffer
,
sizeof
scriptBuffer
);
if
(
size
>
sizeof
scriptBuffer
)
{
reader
->
drop
();
return
nullptr
;
}
reader
->
read
(
scriptBuffer
,
size
);
reader
->
drop
();
reader
->
drop
();
*
slen
=
(
int
)
size
;
if
(
size
>=
(
int
)
sizeof
scriptBuffer
)
return
nullptr
;
*
slen
=
size
;
return
scriptBuffer
;
return
scriptBuffer
;
}
}
unsigned
char
*
DataManager
::
DefaultScriptReader
(
const
char
*
script_name
,
int
*
slen
)
{
unsigned
char
*
DataManager
::
DefaultScriptReader
(
const
char
*
script_name
,
int
*
slen
)
{
...
...
gframe/data_manager.h
View file @
aaa1d3cf
...
@@ -50,7 +50,7 @@ public:
...
@@ -50,7 +50,7 @@ public:
std
::
unordered_map
<
unsigned
int
,
std
::
wstring
>
_sysStrings
;
std
::
unordered_map
<
unsigned
int
,
std
::
wstring
>
_sysStrings
;
char
errmsg
[
512
]{};
char
errmsg
[
512
]{};
static
unsigned
char
scriptBuffer
[
0x
2
0000
];
static
unsigned
char
scriptBuffer
[
0x
10
0000
];
static
const
wchar_t
*
unknown_string
;
static
const
wchar_t
*
unknown_string
;
static
uint32_t
CardReader
(
uint32_t
,
card_data
*
);
static
uint32_t
CardReader
(
uint32_t
,
card_data
*
);
static
unsigned
char
*
ScriptReaderEx
(
const
char
*
script_name
,
int
*
slen
);
static
unsigned
char
*
ScriptReaderEx
(
const
char
*
script_name
,
int
*
slen
);
...
...
gframe/deck_manager.cpp
View file @
aaa1d3cf
...
@@ -280,25 +280,23 @@ bool DeckManager::LoadCurrentDeck(const wchar_t* file, bool is_packlist) {
...
@@ -280,25 +280,23 @@ bool DeckManager::LoadCurrentDeck(const wchar_t* file, bool is_packlist) {
current_deck
.
clear
();
current_deck
.
clear
();
IReadFile
*
reader
=
OpenDeckReader
(
file
);
IReadFile
*
reader
=
OpenDeckReader
(
file
);
if
(
!
reader
)
{
if
(
!
reader
)
{
wchar_t
localfile
[
64
];
wchar_t
localfile
[
256
];
myswprintf
(
localfile
,
L"./deck/%ls.ydk"
,
file
);
myswprintf
(
localfile
,
L"./deck/%ls.ydk"
,
file
);
reader
=
OpenDeckReader
(
localfile
);
reader
=
OpenDeckReader
(
localfile
);
}
}
if
(
!
reader
&&
!
mywcsncasecmp
(
file
,
L"./pack"
,
6
))
{
if
(
!
reader
&&
!
mywcsncasecmp
(
file
,
L"./pack"
,
6
))
{
wchar_t
zipfile
[
64
];
wchar_t
zipfile
[
256
];
myswprintf
(
zipfile
,
L"%ls"
,
file
+
2
);
myswprintf
(
zipfile
,
L"%ls"
,
file
+
2
);
reader
=
OpenDeckReader
(
zipfile
);
reader
=
OpenDeckReader
(
zipfile
);
}
}
if
(
!
reader
)
if
(
!
reader
)
return
false
;
return
false
;
auto
size
=
reader
->
getSize
();
if
(
size
>=
(
int
)
sizeof
deckBuffer
)
{
reader
->
drop
();
return
false
;
}
std
::
memset
(
deckBuffer
,
0
,
sizeof
deckBuffer
);
std
::
memset
(
deckBuffer
,
0
,
sizeof
deckBuffer
);
reader
->
read
(
deckBuffer
,
size
);
int
size
=
reader
->
read
(
deckBuffer
,
sizeof
deckBuffer
);
reader
->
drop
();
reader
->
drop
();
if
(
size
>=
(
int
)
sizeof
deckBuffer
)
{
return
false
;
}
std
::
istringstream
deckStream
(
deckBuffer
);
std
::
istringstream
deckStream
(
deckBuffer
);
LoadDeck
(
current_deck
,
deckStream
,
is_packlist
);
LoadDeck
(
current_deck
,
deckStream
,
is_packlist
);
return
true
;
// the above LoadDeck has return value but we ignore it here for now
return
true
;
// the above LoadDeck has return value but we ignore it here for now
...
...
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