Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile
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
fallenstardust
YGOMobile
Commits
eba2ca9c
Commit
eba2ca9c
authored
Dec 15, 2018
by
mercury233
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update script reader
parent
851bf27e
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
27 additions
and
78 deletions
+27
-78
Classes/gframe/data_manager.cpp
Classes/gframe/data_manager.cpp
+26
-5
Classes/gframe/data_manager.h
Classes/gframe/data_manager.h
+1
-0
libcore/android/android_tools.cpp
libcore/android/android_tools.cpp
+0
-71
libcore/android/android_tools.h
libcore/android/android_tools.h
+0
-2
No files found.
Classes/gframe/data_manager.cpp
View file @
eba2ca9c
...
...
@@ -332,13 +332,17 @@ byte* DataManager::ScriptReaderEx(const char* script_name, int* slen) {
sprintf
(
first
,
"%s"
,
script_name
+
2
);
sprintf
(
second
,
"expansions/%s"
,
script_name
+
2
);
}
// byte* buffer = irr::android::android_script_reader(first, slen);
if
(
mainGame
->
gameConf
.
prefer_expansion_script
)
{
if
(
ScriptReader
(
first
,
slen
))
return
irr
::
android
::
android_script_reader
(
first
,
slen
);
return
scriptBuffer
;
if
(
ScriptReader
(
second
,
slen
))
return
scriptBuffer
;
}
if
(
ScriptReaderZip
(
first
,
slen
))
return
scriptBuffer
;
else
return
irr
::
android
::
android_script_reader
(
second
,
slen
);
return
ScriptReaderZip
(
second
,
slen
);
}
byte
*
DataManager
::
ScriptReader
(
const
char
*
script_name
,
int
*
slen
)
{
FILE
*
fp
;
#ifdef _WIN32
...
...
@@ -357,5 +361,22 @@ byte* DataManager::ScriptReader(const char* script_name, int* slen) {
*
slen
=
len
;
return
scriptBuffer
;
}
byte
*
DataManager
::
ScriptReaderZip
(
const
char
*
script_name
,
int
*
slen
)
{
wchar_t
fname
[
256
];
BufferIO
::
DecodeUTF8
(
script_name
,
fname
);
IFileSystem
*
fs
=
mainGame
->
device
->
getFileSystem
();
IReadFile
*
reader
=
fs
->
createAndOpenFile
(
fname
);
if
(
reader
==
NULL
)
return
0
;
size_t
size
=
reader
->
getSize
();
if
(
size
>
sizeof
(
scriptBuffer
))
{
reader
->
drop
();
return
0
;
}
reader
->
read
(
scriptBuffer
,
size
);
reader
->
drop
();
*
slen
=
size
;
return
scriptBuffer
;
}
}
Classes/gframe/data_manager.h
View file @
eba2ca9c
...
...
@@ -58,6 +58,7 @@ public:
static
int
CardReader
(
int
,
void
*
);
static
byte
*
ScriptReaderEx
(
const
char
*
script_name
,
int
*
slen
);
static
byte
*
ScriptReader
(
const
char
*
script_name
,
int
*
slen
);
static
byte
*
ScriptReaderZip
(
const
char
*
script_name
,
int
*
slen
);
};
...
...
libcore/android/android_tools.cpp
View file @
eba2ca9c
...
...
@@ -8,8 +8,6 @@
namespace
irr
{
namespace
android
{
static
unsigned
char
script_buffer
[
0x20000
];
inline
static
void
ReadString
(
irr
::
io
::
path
&
path
,
char
*&
p
)
{
int
length
=
BufferIO
::
ReadInt32
(
p
);
if
(
length
!=
0
)
{
...
...
@@ -900,75 +898,6 @@ s32 handleInput(ANDROID_APP app, AInputEvent* androidEvent) {
return
Status
;
}
unsigned
char
*
android_script_reader
(
const
char
*
script_name
,
int
*
slen
)
{
IFileSystem
*
fs
=
ygo
::
mainGame
->
device
->
getFileSystem
();
std
::
string
handledname
=
script_name
;
if
(
handledname
[
0
]
==
'.'
&&
handledname
[
1
]
==
'/'
)
{
handledname
=
handledname
.
substr
(
2
,
handledname
.
length
()
-
2
);
}
int
firstSeperatorIndex
=
handledname
.
find_first_of
(
'/'
);
std
::
string
typeDir
=
handledname
.
substr
(
0
,
firstSeperatorIndex
);
if
(
typeDir
==
"single"
)
{
FILE
*
fp
;
fp
=
fopen
(
script_name
,
"rb"
);
if
(
!
fp
)
return
0
;
fseek
(
fp
,
0
,
SEEK_END
);
uint32
len
=
ftell
(
fp
);
if
(
len
>
sizeof
(
script_buffer
))
{
fclose
(
fp
);
LOGW
(
"read %s failed: too large file"
,
script_name
);
return
0
;
}
fseek
(
fp
,
0
,
SEEK_SET
);
fread
(
script_buffer
,
len
,
1
,
fp
);
fclose
(
fp
);
*
slen
=
len
;
return
script_buffer
;
//} else if (typeDir == "script") {
}
else
{
//try to find in directory based script.
if
(
access
(
script_name
,
F_OK
)
!=
-
1
)
{
FILE
*
fp
;
fp
=
fopen
(
script_name
,
"rb"
);
fseek
(
fp
,
0
,
SEEK_END
);
uint32
len
=
ftell
(
fp
);
if
(
len
>
sizeof
(
script_buffer
))
{
fclose
(
fp
);
LOGW
(
"read %s failed: too large file"
,
script_name
);
return
0
;
}
fseek
(
fp
,
0
,
SEEK_SET
);
fread
(
script_buffer
,
len
,
1
,
fp
);
fclose
(
fp
);
*
slen
=
len
;
return
script_buffer
;
}
else
{
IReadFile
*
file
=
fs
->
createAndOpenFile
(
handledname
.
c_str
());
if
(
!
file
)
{
LOGW
(
"read %s failed: file not exist"
,
script_name
);
return
0
;
}
if
(
file
->
getSize
()
>
0x20000
)
{
LOGW
(
"read %s failed: too large file"
,
script_name
);
return
0
;
}
*
slen
=
file
->
getSize
();
if
(
file
->
read
(
script_buffer
,
*
slen
)
!=
*
slen
)
{
LOGW
(
"read %s failed: insufficient read length %d"
,
script_name
,
*
slen
);
*
slen
=
0
;
return
0
;
}
else
{
return
script_buffer
;
}
}
//} else {
// LOGW("read %s failed: unknown script source", script_name);
// return 0;
}
}
bool
android_deck_delete
(
const
char
*
deck_name
)
{
int
status
;
std
::
string
ext_deck_name
;
...
...
libcore/android/android_tools.h
View file @
eba2ca9c
...
...
@@ -173,8 +173,6 @@ extern void process_input(ANDROID_APP app,
extern
s32
handleInput
(
ANDROID_APP
app
,
AInputEvent
*
androidEvent
);
extern
unsigned
char
*
android_script_reader
(
const
char
*
script_name
,
int
*
slen
);
extern
bool
android_deck_delete
(
const
char
*
deck_name
);
extern
void
runWindbot
(
ANDROID_APP
app
,
const
char
*
args
);
...
...
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