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
fe53acb7
Commit
fe53acb7
authored
Dec 19, 2024
by
Chen Bill
Committed by
GitHub
Dec 19, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
DataManager: add DefaultScriptReader (#2624)
* DataManager: add DefaultScriptReader * update priority
parent
56247c6d
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
35 additions
and
10 deletions
+35
-10
gframe/data_manager.cpp
gframe/data_manager.cpp
+30
-10
gframe/data_manager.h
gframe/data_manager.h
+5
-0
No files found.
gframe/data_manager.cpp
View file @
fe53acb7
...
...
@@ -393,19 +393,26 @@ uint32_t DataManager::CardReader(uint32_t code, card_data* pData) {
}
unsigned
char
*
DataManager
::
ScriptReaderEx
(
const
char
*
script_name
,
int
*
slen
)
{
// default script name: ./script/c%d.lua
char
first
[
256
]{};
char
second
[
256
]{};
if
(
std
::
strncmp
(
script_name
,
"./script"
,
8
)
!=
0
)
return
DefaultScriptReader
(
script_name
,
slen
);
char
expansions_path
[
1024
]{};
std
::
snprintf
(
expansions_path
,
sizeof
expansions_path
,
"./expansions/%s"
,
script_name
+
2
);
if
(
mainGame
->
gameConf
.
prefer_expansion_script
)
{
snprintf
(
first
,
sizeof
first
,
"expansions/%s"
,
script_name
+
2
);
snprintf
(
second
,
sizeof
second
,
"%s"
,
script_name
+
2
);
if
(
ScriptReader
(
script_name
,
slen
))
return
scriptBuffer
;
else
if
(
DefaultScriptReader
(
expansions_path
,
slen
))
return
scriptBuffer
;
else
if
(
DefaultScriptReader
(
script_name
,
slen
))
return
scriptBuffer
;
}
else
{
snprintf
(
first
,
sizeof
first
,
"%s"
,
script_name
+
2
);
snprintf
(
second
,
sizeof
second
,
"expansions/%s"
,
script_name
+
2
);
}
if
(
ScriptReader
(
first
,
slen
))
if
(
DefaultScriptReader
(
script_name
,
slen
))
return
scriptBuffer
;
else
return
ScriptReader
(
second
,
slen
);
else
if
(
ScriptReader
(
script_name
,
slen
))
return
scriptBuffer
;
else
if
(
DefaultScriptReader
(
expansions_path
,
slen
))
return
scriptBuffer
;
}
return
nullptr
;
}
unsigned
char
*
DataManager
::
ScriptReader
(
const
char
*
script_name
,
int
*
slen
)
{
#ifdef _WIN32
...
...
@@ -427,5 +434,18 @@ unsigned char* DataManager::ScriptReader(const char* script_name, int* slen) {
*
slen
=
(
int
)
size
;
return
scriptBuffer
;
}
unsigned
char
*
DataManager
::
DefaultScriptReader
(
const
char
*
script_name
,
int
*
slen
)
{
wchar_t
fname
[
256
]{};
BufferIO
::
DecodeUTF8
(
script_name
,
fname
);
FILE
*
fp
=
myfopen
(
fname
,
"rb"
);
if
(
!
fp
)
return
nullptr
;
size_t
len
=
std
::
fread
(
scriptBuffer
,
1
,
sizeof
scriptBuffer
,
fp
);
std
::
fclose
(
fp
);
if
(
len
>=
sizeof
scriptBuffer
)
return
nullptr
;
*
slen
=
(
int
)
len
;
return
scriptBuffer
;
}
}
gframe/data_manager.h
View file @
fe53acb7
...
...
@@ -54,7 +54,12 @@ public:
static
const
wchar_t
*
unknown_string
;
static
uint32_t
CardReader
(
uint32_t
,
card_data
*
);
static
unsigned
char
*
ScriptReaderEx
(
const
char
*
script_name
,
int
*
slen
);
//read by IFileSystem
static
unsigned
char
*
ScriptReader
(
const
char
*
script_name
,
int
*
slen
);
//read by fread
static
unsigned
char
*
DefaultScriptReader
(
const
char
*
script_name
,
int
*
slen
);
static
IFileSystem
*
FileSystem
;
private:
...
...
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