Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-2pick
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
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
MyCard
ygopro-2pick
Commits
a6f86739
Commit
a6f86739
authored
Nov 04, 2018
by
DailyShana
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
9d9e27db
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
86 additions
and
200 deletions
+86
-200
gframe/data_manager.cpp
gframe/data_manager.cpp
+6
-0
gframe/deck_manager.cpp
gframe/deck_manager.cpp
+12
-33
gframe/deck_manager.h
gframe/deck_manager.h
+0
-1
gframe/game.cpp
gframe/game.cpp
+3
-3
gframe/image_manager.cpp
gframe/image_manager.cpp
+22
-36
gframe/replay_mode.cpp
gframe/replay_mode.cpp
+10
-31
gframe/single_duel.cpp
gframe/single_duel.cpp
+10
-31
gframe/single_mode.cpp
gframe/single_mode.cpp
+13
-34
gframe/tag_duel.cpp
gframe/tag_duel.cpp
+10
-31
No files found.
gframe/data_manager.cpp
View file @
a6f86739
...
@@ -65,7 +65,13 @@ bool DataManager::LoadDB(const char* file) {
...
@@ -65,7 +65,13 @@ bool DataManager::LoadDB(const char* file) {
return
true
;
return
true
;
}
}
bool
DataManager
::
LoadStrings
(
const
char
*
file
)
{
bool
DataManager
::
LoadStrings
(
const
char
*
file
)
{
#ifdef _WIN32
wchar_t
fname
[
1024
];
BufferIO
::
DecodeUTF8
(
file
,
fname
);
FILE
*
fp
=
_wfopen
(
fname
,
L"r"
);
#else
FILE
*
fp
=
fopen
(
file
,
"r"
);
FILE
*
fp
=
fopen
(
file
,
"r"
);
#endif // _WIN32
if
(
!
fp
)
if
(
!
fp
)
return
false
;
return
false
;
char
linebuf
[
256
];
char
linebuf
[
256
];
...
...
gframe/deck_manager.cpp
View file @
a6f86739
...
@@ -13,7 +13,13 @@ DeckManager deckManager;
...
@@ -13,7 +13,13 @@ DeckManager deckManager;
void
DeckManager
::
LoadLFListSingle
(
const
char
*
path
)
{
void
DeckManager
::
LoadLFListSingle
(
const
char
*
path
)
{
LFList
*
cur
=
NULL
;
LFList
*
cur
=
NULL
;
#ifdef _WIN32
wchar_t
fname
[
1024
];
BufferIO
::
DecodeUTF8
(
path
,
fname
);
FILE
*
fp
=
_wfopen
(
fname
,
L"r"
);
#else
FILE
*
fp
=
fopen
(
path
,
"r"
);
FILE
*
fp
=
fopen
(
path
,
"r"
);
#endif // _WIN32
char
linebuf
[
256
];
char
linebuf
[
256
];
wchar_t
strBuffer
[
256
];
wchar_t
strBuffer
[
256
];
if
(
fp
)
{
if
(
fp
)
{
...
@@ -52,42 +58,15 @@ void DeckManager::LoadLFListSingle(const char* path) {
...
@@ -52,42 +58,15 @@ void DeckManager::LoadLFListSingle(const char* path) {
fclose
(
fp
);
fclose
(
fp
);
}
}
}
}
void
DeckManager
::
LoadLFListDirectry
(
const
char
*
path
)
{
char
fpath
[
1000
];
sprintf
(
fpath
,
"%s/lflist.conf"
,
path
);
LoadLFListSingle
(
fpath
);
}
void
DeckManager
::
LoadLFList
()
{
void
DeckManager
::
LoadLFList
()
{
LoadLFListSingle
(
"expansions/lflist.conf"
);
LoadLFListSingle
(
"expansions/lflist.conf"
);
#ifdef _WIN32
FileSystem
::
TraversalDir
(
"./expansions"
,
[
this
](
const
char
*
name
,
bool
isdir
)
{
char
fpath
[
1000
];
if
(
isdir
&&
strcmp
(
name
,
"."
)
&&
strcmp
(
name
,
".."
))
{
WIN32_FIND_DATAW
fdataw
;
char
fpath
[
1024
];
HANDLE
fh
=
FindFirstFileW
(
L"./expansions/*"
,
&
fdataw
);
sprintf
(
fpath
,
"./expansions/%s/lflist.conf"
,
name
);
if
(
fh
!=
INVALID_HANDLE_VALUE
)
{
LoadLFListSingle
(
fpath
);
do
{
if
(
wcscmp
(
L"."
,
fdataw
.
cFileName
)
!=
0
&&
wcscmp
(
L".."
,
fdataw
.
cFileName
)
!=
0
&&
fdataw
.
dwFileAttributes
&
FILE_ATTRIBUTE_DIRECTORY
)
{
char
fname
[
780
];
BufferIO
::
EncodeUTF8
(
fdataw
.
cFileName
,
fname
);
sprintf
(
fpath
,
"./expansions/%s"
,
fname
);
LoadLFListDirectry
(
fpath
);
}
}
while
(
FindNextFileW
(
fh
,
&
fdataw
));
FindClose
(
fh
);
}
#else
DIR
*
dir
;
struct
dirent
*
dirp
;
if
((
dir
=
opendir
(
"./expansions/"
))
!=
NULL
)
{
while
((
dirp
=
readdir
(
dir
))
!=
NULL
)
{
if
(
strcmp
(
"."
,
dirp
->
d_name
)
==
0
||
strcmp
(
".."
,
dirp
->
d_name
)
==
0
||
dirp
->
d_type
!=
DT_DIR
)
continue
;
char
filepath
[
1000
];
sprintf
(
filepath
,
"./expansions/%s/"
,
dirp
->
d_name
);
LoadLFListDirectry
(
filepath
);
}
}
closedir
(
dir
);
});
}
#endif
LoadLFListSingle
(
"lflist.conf"
);
LoadLFListSingle
(
"lflist.conf"
);
LFList
nolimit
;
LFList
nolimit
;
myswprintf
(
nolimit
.
listName
,
L"N/A"
);
myswprintf
(
nolimit
.
listName
,
L"N/A"
);
...
...
gframe/deck_manager.h
View file @
a6f86739
...
@@ -36,7 +36,6 @@ public:
...
@@ -36,7 +36,6 @@ public:
std
::
vector
<
LFList
>
_lfList
;
std
::
vector
<
LFList
>
_lfList
;
void
LoadLFListSingle
(
const
char
*
path
);
void
LoadLFListSingle
(
const
char
*
path
);
void
LoadLFListDirectry
(
const
char
*
path
);
void
LoadLFList
();
void
LoadLFList
();
wchar_t
*
GetLFListName
(
int
lfhash
);
wchar_t
*
GetLFListName
(
int
lfhash
);
int
CheckDeck
(
Deck
&
deck
,
int
lfhash
,
bool
allow_ocg
,
bool
allow_tcg
);
int
CheckDeck
(
Deck
&
deck
,
int
lfhash
,
bool
allow_ocg
,
bool
allow_tcg
);
...
...
gframe/game.cpp
View file @
a6f86739
...
@@ -882,9 +882,9 @@ void Game::LoadExpansionStrings() {
...
@@ -882,9 +882,9 @@ void Game::LoadExpansionStrings() {
dataManager
.
LoadStrings
(
"./expansions/strings.conf"
);
dataManager
.
LoadStrings
(
"./expansions/strings.conf"
);
FileSystem
::
TraversalDir
(
"./expansions"
,
[](
const
char
*
name
,
bool
isdir
)
{
FileSystem
::
TraversalDir
(
"./expansions"
,
[](
const
char
*
name
,
bool
isdir
)
{
if
(
isdir
&&
strcmp
(
name
,
"."
)
&&
strcmp
(
name
,
".."
))
{
if
(
isdir
&&
strcmp
(
name
,
"."
)
&&
strcmp
(
name
,
".."
))
{
char
subdir
[
1024
];
char
fpath
[
1024
];
sprintf
(
subdir
,
"./expansions/%s/strings.conf"
,
name
);
sprintf
(
fpath
,
"./expansions/%s/strings.conf"
,
name
);
dataManager
.
LoadStrings
(
subdir
);
dataManager
.
LoadStrings
(
fpath
);
}
}
});
});
}
}
...
...
gframe/image_manager.cpp
View file @
a6f86739
...
@@ -142,62 +142,48 @@ void imageScaleNNAA(irr::video::IImage *src, irr::video::IImage *dest)
...
@@ -142,62 +142,48 @@ void imageScaleNNAA(irr::video::IImage *src, irr::video::IImage *dest)
}
}
}
}
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureFromFile
(
char
*
file
,
s32
width
,
s32
height
)
{
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureFromFile
(
char
*
file
,
s32
width
,
s32
height
)
{
#ifdef _WIN32
wchar_t
name
[
1024
];
BufferIO
::
DecodeUTF8
(
file
,
name
);
#else
char
*
name
=
file
;
#endif // _WIN32
if
(
mainGame
->
gameConf
.
use_image_scale
)
{
if
(
mainGame
->
gameConf
.
use_image_scale
)
{
irr
::
video
::
ITexture
*
texture
;
irr
::
video
::
ITexture
*
texture
;
irr
::
video
::
IImage
*
srcimg
=
driver
->
createImageFromFile
(
fil
e
);
irr
::
video
::
IImage
*
srcimg
=
driver
->
createImageFromFile
(
nam
e
);
if
(
srcimg
==
NULL
)
if
(
srcimg
==
NULL
)
return
NULL
;
return
NULL
;
if
(
srcimg
->
getDimension
()
==
irr
::
core
::
dimension2d
<
u32
>
(
width
,
height
))
{
if
(
srcimg
->
getDimension
()
==
irr
::
core
::
dimension2d
<
u32
>
(
width
,
height
))
{
texture
=
driver
->
addTexture
(
fil
e
,
srcimg
);
texture
=
driver
->
addTexture
(
nam
e
,
srcimg
);
}
else
{
}
else
{
video
::
IImage
*
destimg
=
driver
->
createImage
(
srcimg
->
getColorFormat
(),
irr
::
core
::
dimension2d
<
u32
>
(
width
,
height
));
video
::
IImage
*
destimg
=
driver
->
createImage
(
srcimg
->
getColorFormat
(),
irr
::
core
::
dimension2d
<
u32
>
(
width
,
height
));
imageScaleNNAA
(
srcimg
,
destimg
);
imageScaleNNAA
(
srcimg
,
destimg
);
texture
=
driver
->
addTexture
(
fil
e
,
destimg
);
texture
=
driver
->
addTexture
(
nam
e
,
destimg
);
destimg
->
drop
();
destimg
->
drop
();
}
}
srcimg
->
drop
();
srcimg
->
drop
();
return
texture
;
return
texture
;
}
else
{
}
else
{
return
driver
->
getTexture
(
fil
e
);
return
driver
->
getTexture
(
nam
e
);
}
}
}
}
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureExpansions
(
char
*
file
,
s32
width
,
s32
height
)
{
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureExpansions
(
char
*
file
,
s32
width
,
s32
height
)
{
irr
::
video
::
ITexture
*
img
=
GetTextureExpansionsDirectry
(
"./expansions"
,
file
,
width
,
height
);
irr
::
video
::
ITexture
*
img
=
GetTextureExpansionsDirectry
(
"./expansions"
,
file
,
width
,
height
);
if
(
img
!=
NULL
)
if
(
img
!=
NULL
)
return
img
;
return
img
;
#ifdef _WIN32
bool
find
=
false
;
char
fpath
[
1000
];
FileSystem
::
TraversalDir
(
"./expansions"
,
[
this
,
file
,
width
,
height
,
&
img
,
&
find
](
const
char
*
name
,
bool
isdir
)
{
WIN32_FIND_DATAW
fdataw
;
if
(
!
find
&&
isdir
&&
strcmp
(
name
,
"."
)
&&
strcmp
(
name
,
".."
))
{
HANDLE
fh
=
FindFirstFileW
(
L"./expansions/*"
,
&
fdataw
);
char
subdir
[
1024
];
if
(
fh
!=
INVALID_HANDLE_VALUE
)
{
sprintf
(
subdir
,
"./expansions/%s"
,
name
);
do
{
img
=
GetTextureExpansionsDirectry
(
subdir
,
file
,
width
,
height
);
if
(
wcscmp
(
L"."
,
fdataw
.
cFileName
)
!=
0
&&
wcscmp
(
L".."
,
fdataw
.
cFileName
)
!=
0
&&
fdataw
.
dwFileAttributes
&
FILE_ATTRIBUTE_DIRECTORY
)
{
if
(
img
)
char
fname
[
780
];
find
=
true
;
BufferIO
::
EncodeUTF8
(
fdataw
.
cFileName
,
fname
);
sprintf
(
fpath
,
"./expansions/%s"
,
fname
);
img
=
GetTextureExpansionsDirectry
(
fpath
,
file
,
width
,
height
);
if
(
img
!=
NULL
)
return
img
;
}
}
while
(
FindNextFileW
(
fh
,
&
fdataw
));
FindClose
(
fh
);
}
#else
DIR
*
dir
;
struct
dirent
*
dirp
;
if
((
dir
=
opendir
(
"./expansions/"
))
!=
NULL
)
{
while
((
dirp
=
readdir
(
dir
))
!=
NULL
)
{
if
(
strcmp
(
"."
,
dirp
->
d_name
)
==
0
||
strcmp
(
".."
,
dirp
->
d_name
)
==
0
||
dirp
->
d_type
!=
DT_DIR
)
continue
;
char
filepath
[
1000
];
sprintf
(
filepath
,
"./expansions/%s/"
,
dirp
->
d_name
);
img
=
GetTextureExpansionsDirectry
(
filepath
,
file
,
width
,
height
);
if
(
img
!=
NULL
)
return
img
;
}
}
closedir
(
dir
);
}
);
}
if
(
find
)
#endif
return
img
;
return
img
;
return
img
;
}
}
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureExpansionsDirectry
(
const
char
*
path
,
char
*
file
,
s32
width
,
s32
height
)
{
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureExpansionsDirectry
(
const
char
*
path
,
char
*
file
,
s32
width
,
s32
height
)
{
...
...
gframe/replay_mode.cpp
View file @
a6f86739
...
@@ -942,39 +942,18 @@ byte* ReplayMode::ScriptReaderEx(const char* script_name, int* slen) {
...
@@ -942,39 +942,18 @@ byte* ReplayMode::ScriptReaderEx(const char* script_name, int* slen) {
byte
*
buffer
=
ScriptReaderExDirectry
(
"./expansions"
,
script_name
,
slen
);
byte
*
buffer
=
ScriptReaderExDirectry
(
"./expansions"
,
script_name
,
slen
);
if
(
buffer
)
if
(
buffer
)
return
buffer
;
return
buffer
;
#ifdef _WIN32
bool
find
=
false
;
char
fpath
[
1000
];
FileSystem
::
TraversalDir
(
"./expansions"
,
[
script_name
,
slen
,
&
buffer
,
&
find
](
const
char
*
name
,
bool
isdir
)
{
WIN32_FIND_DATAW
fdataw
;
if
(
!
find
&&
isdir
&&
strcmp
(
name
,
"."
)
&&
strcmp
(
name
,
".."
))
{
HANDLE
fh
=
FindFirstFileW
(
L"./expansions/*"
,
&
fdataw
);
char
subdir
[
1024
];
if
(
fh
!=
INVALID_HANDLE_VALUE
)
{
sprintf
(
subdir
,
"./expansions/%s"
,
name
);
do
{
buffer
=
ScriptReaderExDirectry
(
subdir
,
script_name
,
slen
);
if
(
wcscmp
(
L"."
,
fdataw
.
cFileName
)
!=
0
&&
wcscmp
(
L".."
,
fdataw
.
cFileName
)
!=
0
&&
fdataw
.
dwFileAttributes
&
FILE_ATTRIBUTE_DIRECTORY
)
{
char
fname
[
780
];
BufferIO
::
EncodeUTF8
(
fdataw
.
cFileName
,
fname
);
sprintf
(
fpath
,
"./expansions/%s"
,
fname
);
buffer
=
ScriptReaderExDirectry
(
fpath
,
script_name
,
slen
);
if
(
buffer
)
return
buffer
;
}
}
while
(
FindNextFileW
(
fh
,
&
fdataw
));
FindClose
(
fh
);
}
#else
DIR
*
dir
;
struct
dirent
*
dirp
;
if
((
dir
=
opendir
(
"./expansions/"
))
!=
NULL
)
{
while
((
dirp
=
readdir
(
dir
))
!=
NULL
)
{
if
(
strcmp
(
"."
,
dirp
->
d_name
)
==
0
||
strcmp
(
".."
,
dirp
->
d_name
)
==
0
||
dirp
->
d_type
!=
DT_DIR
)
continue
;
char
filepath
[
1000
];
sprintf
(
filepath
,
"./expansions/%s/"
,
dirp
->
d_name
);
buffer
=
ScriptReaderExDirectry
(
filepath
,
script_name
,
slen
);
if
(
buffer
)
if
(
buffer
)
return
buffer
;
find
=
true
;
}
}
closedir
(
dir
);
}
);
}
if
(
find
)
#endif
return
buffer
;
return
default_script_reader
(
script_name
,
slen
);
return
default_script_reader
(
script_name
,
slen
);
}
}
byte
*
ReplayMode
::
ScriptReaderExDirectry
(
const
char
*
path
,
const
char
*
script_name
,
int
*
slen
)
{
byte
*
ReplayMode
::
ScriptReaderExDirectry
(
const
char
*
path
,
const
char
*
script_name
,
int
*
slen
)
{
...
...
gframe/single_duel.cpp
View file @
a6f86739
...
@@ -1552,39 +1552,18 @@ byte* SingleDuel::ScriptReaderEx(const char* script_name, int* slen) {
...
@@ -1552,39 +1552,18 @@ byte* SingleDuel::ScriptReaderEx(const char* script_name, int* slen) {
byte
*
buffer
=
ScriptReaderExDirectry
(
"./expansions"
,
script_name
,
slen
);
byte
*
buffer
=
ScriptReaderExDirectry
(
"./expansions"
,
script_name
,
slen
);
if
(
buffer
)
if
(
buffer
)
return
buffer
;
return
buffer
;
#ifdef _WIN32
bool
find
=
false
;
char
fpath
[
1000
];
FileSystem
::
TraversalDir
(
"./expansions"
,
[
script_name
,
slen
,
&
buffer
,
&
find
](
const
char
*
name
,
bool
isdir
)
{
WIN32_FIND_DATAW
fdataw
;
if
(
!
find
&&
isdir
&&
strcmp
(
name
,
"."
)
&&
strcmp
(
name
,
".."
))
{
HANDLE
fh
=
FindFirstFileW
(
L"./expansions/*"
,
&
fdataw
);
char
subdir
[
1024
];
if
(
fh
!=
INVALID_HANDLE_VALUE
)
{
sprintf
(
subdir
,
"./expansions/%s"
,
name
);
do
{
buffer
=
ScriptReaderExDirectry
(
subdir
,
script_name
,
slen
);
if
(
wcscmp
(
L"."
,
fdataw
.
cFileName
)
!=
0
&&
wcscmp
(
L".."
,
fdataw
.
cFileName
)
!=
0
&&
fdataw
.
dwFileAttributes
&
FILE_ATTRIBUTE_DIRECTORY
)
{
char
fname
[
780
];
BufferIO
::
EncodeUTF8
(
fdataw
.
cFileName
,
fname
);
sprintf
(
fpath
,
"./expansions/%s"
,
fname
);
buffer
=
ScriptReaderExDirectry
(
fpath
,
script_name
,
slen
);
if
(
buffer
)
return
buffer
;
}
}
while
(
FindNextFileW
(
fh
,
&
fdataw
));
FindClose
(
fh
);
}
#else
DIR
*
dir
;
struct
dirent
*
dirp
;
if
((
dir
=
opendir
(
"./expansions/"
))
!=
NULL
)
{
while
((
dirp
=
readdir
(
dir
))
!=
NULL
)
{
if
(
strcmp
(
"."
,
dirp
->
d_name
)
==
0
||
strcmp
(
".."
,
dirp
->
d_name
)
==
0
||
dirp
->
d_type
!=
DT_DIR
)
continue
;
char
filepath
[
1000
];
sprintf
(
filepath
,
"./expansions/%s/"
,
dirp
->
d_name
);
buffer
=
ScriptReaderExDirectry
(
filepath
,
script_name
,
slen
);
if
(
buffer
)
if
(
buffer
)
return
buffer
;
find
=
true
;
}
}
closedir
(
dir
);
}
);
}
if
(
find
)
#endif
return
buffer
;
return
default_script_reader
(
script_name
,
slen
);
return
default_script_reader
(
script_name
,
slen
);
}
}
byte
*
SingleDuel
::
ScriptReaderExDirectry
(
const
char
*
path
,
const
char
*
script_name
,
int
*
slen
)
{
byte
*
SingleDuel
::
ScriptReaderExDirectry
(
const
char
*
path
,
const
char
*
script_name
,
int
*
slen
)
{
...
...
gframe/single_mode.cpp
View file @
a6f86739
...
@@ -852,45 +852,24 @@ byte* SingleMode::ScriptReaderEx(const char* script_name, int* slen) {
...
@@ -852,45 +852,24 @@ byte* SingleMode::ScriptReaderEx(const char* script_name, int* slen) {
byte
*
buffer
=
ScriptReaderExDirectry
(
"./expansions"
,
script_name
,
slen
);
byte
*
buffer
=
ScriptReaderExDirectry
(
"./expansions"
,
script_name
,
slen
);
if
(
buffer
)
if
(
buffer
)
return
buffer
;
return
buffer
;
#ifdef _WIN32
bool
find
=
false
;
char
fpath
[
1000
];
FileSystem
::
TraversalDir
(
"./expansions"
,
[
script_name
,
slen
,
&
buffer
,
&
find
](
const
char
*
name
,
bool
isdir
)
{
WIN32_FIND_DATAW
fdataw
;
if
(
!
find
&&
isdir
&&
strcmp
(
name
,
"."
)
&&
strcmp
(
name
,
".."
))
{
HANDLE
fh
=
FindFirstFileW
(
L"./expansions/*"
,
&
fdataw
);
char
subdir
[
1024
];
if
(
fh
!=
INVALID_HANDLE_VALUE
)
{
sprintf
(
subdir
,
"./expansions/%s"
,
name
);
do
{
buffer
=
ScriptReaderExDirectry
(
subdir
,
script_name
,
slen
);
if
(
wcscmp
(
L"."
,
fdataw
.
cFileName
)
!=
0
&&
wcscmp
(
L".."
,
fdataw
.
cFileName
)
!=
0
&&
fdataw
.
dwFileAttributes
&
FILE_ATTRIBUTE_DIRECTORY
)
{
char
fname
[
780
];
BufferIO
::
EncodeUTF8
(
fdataw
.
cFileName
,
fname
);
sprintf
(
fpath
,
"./expansions/%s"
,
fname
);
buffer
=
ScriptReaderExDirectry
(
fpath
,
script_name
,
slen
);
if
(
buffer
)
return
buffer
;
}
}
while
(
FindNextFileW
(
fh
,
&
fdataw
));
FindClose
(
fh
);
}
#else
DIR
*
dir
;
struct
dirent
*
dirp
;
if
((
dir
=
opendir
(
"./expansions/"
))
!=
NULL
)
{
while
((
dirp
=
readdir
(
dir
))
!=
NULL
)
{
if
(
strcmp
(
"."
,
dirp
->
d_name
)
==
0
||
strcmp
(
".."
,
dirp
->
d_name
)
==
0
||
dirp
->
d_type
!=
DT_DIR
)
continue
;
char
filepath
[
1000
];
sprintf
(
filepath
,
"./expansions/%s/"
,
dirp
->
d_name
);
buffer
=
ScriptReaderExDirectry
(
filepath
,
script_name
,
slen
);
if
(
buffer
)
if
(
buffer
)
return
buffer
;
find
=
true
;
}
}
closedir
(
dir
);
}
);
}
if
(
find
)
#endif
return
buffer
;
return
ScriptReader
(
script_name
,
slen
);
return
ScriptReader
(
script_name
,
slen
);
}
}
byte
*
SingleMode
::
ScriptReaderExDirectry
(
const
char
*
path
,
const
char
*
script_name
,
int
*
slen
)
{
byte
*
SingleMode
::
ScriptReaderExDirectry
(
const
char
*
path
,
const
char
*
script_name
,
int
*
slen
)
{
char
sname
[
256
]
=
path
;
char
sname
[
256
];
s
trcat
(
sname
,
script_name
+
1
);
//default script name: ./script/c%d.lua
s
printf
(
sname
,
"%s%s"
,
path
,
script_name
+
1
);
//default script name: ./script/c%d.lua
return
ScriptReader
(
sname
,
slen
)
return
ScriptReader
(
sname
,
slen
)
;
}
}
byte
*
SingleMode
::
ScriptReader
(
const
char
*
script_name
,
int
*
slen
)
{
byte
*
SingleMode
::
ScriptReader
(
const
char
*
script_name
,
int
*
slen
)
{
FILE
*
fp
;
FILE
*
fp
;
...
...
gframe/tag_duel.cpp
View file @
a6f86739
...
@@ -1670,39 +1670,18 @@ byte* TagDuel::ScriptReaderEx(const char* script_name, int* slen) {
...
@@ -1670,39 +1670,18 @@ byte* TagDuel::ScriptReaderEx(const char* script_name, int* slen) {
byte
*
buffer
=
ScriptReaderExDirectry
(
"./expansions"
,
script_name
,
slen
);
byte
*
buffer
=
ScriptReaderExDirectry
(
"./expansions"
,
script_name
,
slen
);
if
(
buffer
)
if
(
buffer
)
return
buffer
;
return
buffer
;
#ifdef _WIN32
bool
find
=
false
;
char
fpath
[
1000
];
FileSystem
::
TraversalDir
(
"./expansions"
,
[
script_name
,
slen
,
&
buffer
,
&
find
](
const
char
*
name
,
bool
isdir
)
{
WIN32_FIND_DATAW
fdataw
;
if
(
!
find
&&
isdir
&&
strcmp
(
name
,
"."
)
&&
strcmp
(
name
,
".."
))
{
HANDLE
fh
=
FindFirstFileW
(
L"./expansions/*"
,
&
fdataw
);
char
subdir
[
1024
];
if
(
fh
!=
INVALID_HANDLE_VALUE
)
{
sprintf
(
subdir
,
"./expansions/%s"
,
name
);
do
{
buffer
=
ScriptReaderExDirectry
(
subdir
,
script_name
,
slen
);
if
(
wcscmp
(
L"."
,
fdataw
.
cFileName
)
!=
0
&&
wcscmp
(
L".."
,
fdataw
.
cFileName
)
!=
0
&&
fdataw
.
dwFileAttributes
&
FILE_ATTRIBUTE_DIRECTORY
)
{
char
fname
[
780
];
BufferIO
::
EncodeUTF8
(
fdataw
.
cFileName
,
fname
);
sprintf
(
fpath
,
"./expansions/%s"
,
fname
);
buffer
=
ScriptReaderExDirectry
(
fpath
,
script_name
,
slen
);
if
(
buffer
)
return
buffer
;
}
}
while
(
FindNextFileW
(
fh
,
&
fdataw
));
FindClose
(
fh
);
}
#else
DIR
*
dir
;
struct
dirent
*
dirp
;
if
((
dir
=
opendir
(
"./expansions/"
))
!=
NULL
)
{
while
((
dirp
=
readdir
(
dir
))
!=
NULL
)
{
if
(
strcmp
(
"."
,
dirp
->
d_name
)
==
0
||
strcmp
(
".."
,
dirp
->
d_name
)
==
0
||
dirp
->
d_type
!=
DT_DIR
)
continue
;
char
filepath
[
1000
];
sprintf
(
filepath
,
"./expansions/%s/"
,
dirp
->
d_name
);
buffer
=
ScriptReaderExDirectry
(
filepath
,
script_name
,
slen
);
if
(
buffer
)
if
(
buffer
)
return
buffer
;
find
=
true
;
}
}
closedir
(
dir
);
}
);
}
if
(
find
)
#endif
return
buffer
;
return
default_script_reader
(
script_name
,
slen
);
return
default_script_reader
(
script_name
,
slen
);
}
}
byte
*
TagDuel
::
ScriptReaderExDirectry
(
const
char
*
path
,
const
char
*
script_name
,
int
*
slen
)
{
byte
*
TagDuel
::
ScriptReaderExDirectry
(
const
char
*
path
,
const
char
*
script_name
,
int
*
slen
)
{
...
...
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