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
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
Commits
1dcbcb69
Commit
1dcbcb69
authored
Sep 26, 2024
by
wind2009
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/master'
parents
9bf4a297
36195fcc
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
671 additions
and
234 deletions
+671
-234
gframe/bufferio.h
gframe/bufferio.h
+125
-48
gframe/config.h
gframe/config.h
+14
-0
gframe/deck_con.cpp
gframe/deck_con.cpp
+6
-9
gframe/deck_manager.cpp
gframe/deck_manager.cpp
+3
-9
gframe/menu_handler.cpp
gframe/menu_handler.cpp
+3
-8
gframe/replay.cpp
gframe/replay.cpp
+63
-111
gframe/replay.h
gframe/replay.h
+7
-4
lflist.conf
lflist.conf
+444
-45
premake/lua/premake5.lua
premake/lua/premake5.lua
+3
-0
strings.conf
strings.conf
+3
-0
No files found.
gframe/bufferio.h
View file @
1dcbcb69
...
...
@@ -6,30 +6,30 @@
class
BufferIO
{
public:
inline
static
int
ReadInt32
(
unsigned
char
*&
p
)
{
static
int
ReadInt32
(
unsigned
char
*&
p
)
{
return
buffer_read
<
int32_t
>
(
p
);
}
inline
static
short
ReadInt16
(
unsigned
char
*&
p
)
{
static
short
ReadInt16
(
unsigned
char
*&
p
)
{
return
buffer_read
<
int16_t
>
(
p
);
}
inline
static
char
ReadInt8
(
unsigned
char
*&
p
)
{
static
char
ReadInt8
(
unsigned
char
*&
p
)
{
return
buffer_read
<
char
>
(
p
);
}
inline
static
unsigned
char
ReadUInt8
(
unsigned
char
*&
p
)
{
static
unsigned
char
ReadUInt8
(
unsigned
char
*&
p
)
{
return
buffer_read
<
unsigned
char
>
(
p
);
}
inline
static
void
WriteInt32
(
unsigned
char
*&
p
,
int
val
)
{
static
void
WriteInt32
(
unsigned
char
*&
p
,
int
val
)
{
buffer_write
<
int32_t
>
(
p
,
val
);
}
inline
static
void
WriteInt16
(
unsigned
char
*&
p
,
short
val
)
{
static
void
WriteInt16
(
unsigned
char
*&
p
,
short
val
)
{
buffer_write
<
int16_t
>
(
p
,
val
);
}
inline
static
void
WriteInt8
(
unsigned
char
*&
p
,
char
val
)
{
static
void
WriteInt8
(
unsigned
char
*&
p
,
char
val
)
{
buffer_write
<
char
>
(
p
,
val
);
}
// return: string length
template
<
typename
T1
,
typename
T2
>
inline
static
int
CopyWStr
(
const
T1
*
src
,
T2
*
pstr
,
int
bufsize
)
{
static
int
CopyWStr
(
const
T1
*
src
,
T2
*
pstr
,
int
bufsize
)
{
int
l
=
0
;
while
(
src
[
l
]
&&
l
<
bufsize
-
1
)
{
pstr
[
l
]
=
(
T2
)
src
[
l
];
...
...
@@ -39,7 +39,7 @@ public:
return
l
;
}
template
<
typename
T1
,
typename
T2
>
inline
static
int
CopyWStrRef
(
const
T1
*
src
,
T2
*&
pstr
,
int
bufsize
)
{
static
int
CopyWStrRef
(
const
T1
*
src
,
T2
*&
pstr
,
int
bufsize
)
{
int
l
=
0
;
while
(
src
[
l
]
&&
l
<
bufsize
-
1
)
{
pstr
[
l
]
=
(
T2
)
src
[
l
];
...
...
@@ -49,22 +49,117 @@ public:
*
pstr
=
0
;
return
l
;
}
template
<
typename
T
>
static
bool
CheckUTF8Byte
(
const
T
*
str
,
int
len
)
{
for
(
int
i
=
1
;
i
<
len
;
++
i
)
{
if
((
str
[
i
]
&
0xc0U
)
!=
0x80U
)
return
false
;
}
return
true
;
}
static
unsigned
int
ConvertUTF8
(
const
char
*&
p
)
{
unsigned
int
cur
=
0
;
if
((
p
[
0
]
&
0x80U
)
==
0
)
{
cur
=
p
[
0
]
&
0xffU
;
p
++
;
}
else
if
((
p
[
0
]
&
0xe0U
)
==
0xc0U
)
{
if
(
!
CheckUTF8Byte
(
p
,
2
))
{
p
++
;
return
UINT32_MAX
;
}
cur
=
((
p
[
0
]
&
0x1fU
)
<<
6
)
|
(
p
[
1
]
&
0x3fU
);
p
+=
2
;
if
(
cur
<
0x80U
)
return
UINT32_MAX
;
}
else
if
((
p
[
0
]
&
0xf0U
)
==
0xe0U
)
{
if
(
!
CheckUTF8Byte
(
p
,
3
))
{
p
++
;
return
UINT32_MAX
;
}
cur
=
((
p
[
0
]
&
0xfU
)
<<
12
)
|
((
p
[
1
]
&
0x3fU
)
<<
6
)
|
(
p
[
2
]
&
0x3fU
);
p
+=
3
;
if
(
cur
<
0x800U
)
return
UINT32_MAX
;
}
else
if
((
p
[
0
]
&
0xf8U
)
==
0xf0U
)
{
if
(
!
CheckUTF8Byte
(
p
,
4
))
{
p
++
;
return
UINT32_MAX
;
}
cur
=
((
p
[
0
]
&
0x7U
)
<<
18
)
|
((
p
[
1
]
&
0x3fU
)
<<
12
)
|
((
p
[
2
]
&
0x3fU
)
<<
6
)
|
(
p
[
3
]
&
0x3fU
);
p
+=
4
;
if
(
cur
<
0x10000U
)
return
UINT32_MAX
;
}
else
{
p
++
;
return
UINT32_MAX
;
}
return
cur
;
}
static
bool
IsHighSurrogate
(
unsigned
int
c
)
{
return
(
c
>=
0xd800U
&&
c
<=
0xdbffU
);
}
static
bool
IsLowSurrogate
(
unsigned
int
c
)
{
return
(
c
>=
0xdc00U
&&
c
<=
0xdfffU
);
}
static
bool
IsUnicodeChar
(
unsigned
int
c
)
{
if
(
IsHighSurrogate
(
c
))
return
false
;
if
(
IsLowSurrogate
(
c
))
return
false
;
if
(
c
>
0x10ffffU
)
return
false
;
return
true
;
}
// UTF-16/UTF-32 to UTF-8
// return: string length
static
int
EncodeUTF8String
(
const
wchar_t
*
wsrc
,
char
*
str
,
int
size
)
{
char
*
pstr
=
str
;
while
(
*
wsrc
!=
0
)
{
unsigned
cur
=
*
wsrc
;
auto
pw
=
wsrc
;
auto
pstr
=
str
;
while
(
*
pw
!=
0
)
{
unsigned
cur
=
0
;
int
codepoint_size
=
0
;
if
(
sizeof
(
wchar_t
)
==
2
)
{
if
(
IsHighSurrogate
(
pw
[
0
]))
{
if
(
pw
[
1
]
==
0
)
break
;
if
(
IsLowSurrogate
(
pw
[
1
]))
{
cur
=
((
pw
[
0
]
&
0x3ffU
)
<<
10
)
|
(
pw
[
1
]
&
0x3ffU
);
cur
+=
0x10000
;
pw
+=
2
;
}
else
{
pw
++
;
continue
;
}
}
else
if
(
IsLowSurrogate
(
pw
[
0
]))
{
pw
++
;
continue
;
}
else
{
cur
=
*
pw
;
pw
++
;
}
}
else
{
cur
=
*
pw
;
pw
++
;
}
if
(
!
IsUnicodeChar
(
cur
))
continue
;
if
(
cur
<
0x80U
)
codepoint_size
=
1
;
else
if
(
cur
<
0x800U
)
codepoint_size
=
2
;
else
if
(
cur
<
0x10000U
&&
(
cur
<
0xd800U
||
cur
>
0xdfffU
)
)
else
if
(
cur
<
0x10000U
)
codepoint_size
=
3
;
else
codepoint_size
=
4
;
if
(
pstr
-
str
+
codepoint_size
>
size
-
1
)
if
(
(
int
)(
pstr
-
str
)
+
codepoint_size
>
size
-
1
)
break
;
switch
(
codepoint_size
)
{
case
1
:
...
...
@@ -80,13 +175,6 @@ public:
pstr
[
2
]
=
(
cur
&
0x3f
)
|
0x80
;
break
;
case
4
:
if
(
sizeof
(
wchar_t
)
==
2
)
{
cur
=
0
;
cur
|=
(
*
wsrc
&
0x3ffU
)
<<
10
;
++
wsrc
;
cur
|=
*
wsrc
&
0x3ffU
;
cur
+=
0x10000
;
}
pstr
[
0
]
=
((
cur
>>
18
)
&
0x7
)
|
0xf0
;
pstr
[
1
]
=
((
cur
>>
12
)
&
0x3f
)
|
0x80
;
pstr
[
2
]
=
((
cur
>>
6
)
&
0x3f
)
|
0x80
;
...
...
@@ -96,10 +184,9 @@ public:
break
;
}
pstr
+=
codepoint_size
;
wsrc
++
;
}
*
pstr
=
0
;
return
pstr
-
str
;
return
(
int
)(
pstr
-
str
)
;
}
// UTF-8 to UTF-16/UTF-32
// return: string length
...
...
@@ -107,9 +194,11 @@ public:
const
char
*
p
=
src
;
wchar_t
*
wp
=
wstr
;
while
(
*
p
!=
0
)
{
const
unsigned
cur
=
*
p
&
0xffU
;
unsigned
int
cur
=
ConvertUTF8
(
p
)
;
int
codepoint_size
=
0
;
if
((
cur
&
0xf8
)
==
0xf0
)
{
if
(
!
IsUnicodeChar
(
cur
))
continue
;
if
(
cur
>=
0x10000
)
{
if
(
sizeof
(
wchar_t
)
==
2
)
codepoint_size
=
2
;
else
...
...
@@ -117,30 +206,18 @@ public:
}
else
codepoint_size
=
1
;
if
(
wp
-
wstr
+
codepoint_size
>
size
-
1
)
if
(
(
int
)(
wp
-
wstr
)
+
codepoint_size
>
size
-
1
)
break
;
if
((
cur
&
0x80
)
==
0
)
{
*
wp
=
*
p
;
p
++
;
}
else
if
((
cur
&
0xe0
)
==
0xc0
)
{
*
wp
=
((
p
[
0
]
&
0x1fU
)
<<
6
)
|
(
p
[
1
]
&
0x3fU
);
p
+=
2
;
}
else
if
((
cur
&
0xf0
)
==
0xe0
)
{
*
wp
=
((
p
[
0
]
&
0xfU
)
<<
12
)
|
((
p
[
1
]
&
0x3fU
)
<<
6
)
|
(
p
[
2
]
&
0x3fU
);
p
+=
3
;
}
else
if
((
cur
&
0xf8
)
==
0xf0
)
{
if
(
sizeof
(
wchar_t
)
==
2
)
{
unsigned
unicode
=
((
p
[
0
]
&
0x7U
)
<<
18
)
|
((
p
[
1
]
&
0x3fU
)
<<
12
)
|
((
p
[
2
]
&
0x3fU
)
<<
6
)
|
(
p
[
3
]
&
0x3fU
);
unicode
-=
0x10000
;
*
wp
++
=
(
unicode
>>
10
)
|
0xd800
;
*
wp
=
(
unicode
&
0x3ff
)
|
0xdc00
;
}
else
{
*
wp
=
((
p
[
0
]
&
0x7U
)
<<
18
)
|
((
p
[
1
]
&
0x3fU
)
<<
12
)
|
((
p
[
2
]
&
0x3fU
)
<<
6
)
|
(
p
[
3
]
&
0x3fU
);
}
p
+=
4
;
}
else
p
++
;
wp
++
;
if
(
codepoint_size
==
1
)
{
wp
[
0
]
=
cur
;
wp
++
;
}
else
{
cur
-=
0x10000U
;
wp
[
0
]
=
(
cur
>>
10
)
|
0xd800
;
wp
[
1
]
=
(
cur
&
0x3ff
)
|
0xdc00
;
wp
+=
2
;
}
}
*
wp
=
0
;
return
wp
-
wstr
;
...
...
gframe/config.h
View file @
1dcbcb69
...
...
@@ -58,6 +58,20 @@ inline int myswprintf(wchar_t(&buf)[N], const wchar_t* fmt, TR... args) {
#include "../ocgcore/ocgapi.h"
#include "../ocgcore/common.h"
inline
FILE
*
myfopen
(
const
char
*
filename
,
const
char
*
mode
)
{
FILE
*
fp
{};
#ifdef _WIN32
wchar_t
wname
[
256
]{};
wchar_t
wmode
[
20
]{};
BufferIO
::
DecodeUTF8
(
filename
,
wname
);
BufferIO
::
CopyWStr
(
mode
,
wmode
,
sizeof
wmode
/
sizeof
wmode
[
0
]);
fp
=
_wfopen
(
wname
,
wmode
);
#else
fp
=
fopen
(
filename
,
mode
);
#endif
return
fp
;
}
#include <irrlicht.h>
using
namespace
irr
;
using
namespace
core
;
...
...
gframe/deck_con.cpp
View file @
1dcbcb69
...
...
@@ -1348,6 +1348,7 @@ void DeckBuilder::FilterCards() {
element_t
()
:
type
(
type_t
::
all
),
exclude
(
false
)
{}
};
const
wchar_t
*
pstr
=
mainGame
->
ebCardName
->
getText
();
int
trycode
=
BufferIO
::
GetVal
(
pstr
);
std
::
wstring
str
=
std
::
wstring
(
pstr
);
std
::
vector
<
element_t
>
query_elements
;
if
(
mainGame
->
gameConf
.
search_multiple_keywords
)
{
...
...
@@ -1492,16 +1493,12 @@ void DeckBuilder::FilterCards() {
match
=
CardNameContains
(
text
.
name
.
c_str
(),
elements_iterator
->
keyword
.
c_str
());
}
else
if
(
elements_iterator
->
type
==
element_t
::
type_t
::
setcode
)
{
match
=
data
.
is_setcodes
(
elements_iterator
->
setcodes
);
}
else
if
(
trycode
&&
(
data
.
code
==
trycode
||
data
.
alias
==
trycode
&&
data
.
is_alternative
())){
match
=
true
;
}
else
{
int
trycode
=
BufferIO
::
GetVal
(
elements_iterator
->
keyword
.
c_str
());
bool
tryresult
=
dataManager
.
GetData
(
trycode
,
0
);
if
(
!
tryresult
)
{
match
=
CardNameContains
(
text
.
name
.
c_str
(),
elements_iterator
->
keyword
.
c_str
())
||
text
.
text
.
find
(
elements_iterator
->
keyword
)
!=
std
::
wstring
::
npos
||
data
.
is_setcodes
(
elements_iterator
->
setcodes
);
}
else
{
match
=
data
.
code
==
trycode
||
data
.
alias
==
trycode
;
}
match
=
CardNameContains
(
text
.
name
.
c_str
(),
elements_iterator
->
keyword
.
c_str
())
||
text
.
text
.
find
(
elements_iterator
->
keyword
)
!=
std
::
wstring
::
npos
||
data
.
is_setcodes
(
elements_iterator
->
setcodes
);
}
if
(
elements_iterator
->
exclude
)
match
=
!
match
;
...
...
gframe/deck_manager.cpp
View file @
1dcbcb69
...
...
@@ -263,15 +263,9 @@ void DeckManager::GetDeckFile(wchar_t* ret, irr::gui::IGUIComboBox* cbCategory,
}
}
FILE
*
DeckManager
::
OpenDeckFile
(
const
wchar_t
*
file
,
const
char
*
mode
)
{
#ifdef WIN32
wchar_t
wmode
[
20
]{};
BufferIO
::
CopyWStr
(
mode
,
wmode
,
sizeof
wmode
/
sizeof
wmode
[
0
]);
FILE
*
fp
=
_wfopen
(
file
,
wmode
);
#else
char
file2
[
256
];
BufferIO
::
EncodeUTF8
(
file
,
file2
);
FILE
*
fp
=
fopen
(
file2
,
mode
);
#endif
char
fullname
[
256
]{};
BufferIO
::
EncodeUTF8
(
file
,
fullname
);
FILE
*
fp
=
myfopen
(
fullname
,
mode
);
return
fp
;
}
IReadFile
*
DeckManager
::
OpenDeckReader
(
const
wchar_t
*
file
)
{
...
...
gframe/menu_handler.cpp
View file @
1dcbcb69
...
...
@@ -570,14 +570,9 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
const
wchar_t
*
name
=
mainGame
->
lstSinglePlayList
->
getListItem
(
sel
);
wchar_t
fname
[
256
];
myswprintf
(
fname
,
L"./single/%ls"
,
name
);
FILE
*
fp
;
#ifdef _WIN32
fp
=
_wfopen
(
fname
,
L"rb"
);
#else
char
filename
[
256
];
BufferIO
::
EncodeUTF8
(
fname
,
filename
);
fp
=
fopen
(
filename
,
"rb"
);
#endif
char
fullname
[
256
]{};
BufferIO
::
EncodeUTF8
(
fname
,
fullname
);
FILE
*
fp
=
myfopen
(
fullname
,
"rb"
);
if
(
!
fp
)
{
mainGame
->
stSinglePlayInfo
->
setText
(
L""
);
break
;
...
...
gframe/replay.cpp
View file @
1dcbcb69
...
...
@@ -28,7 +28,7 @@ void Replay::BeginRecord() {
if
(
!
fp
)
return
;
#endif
p
data
=
replay_data
;
p
write
=
replay_data
;
replay_size
=
0
;
comp_size
=
0
;
is_replaying
=
false
;
...
...
@@ -47,10 +47,10 @@ void Replay::WriteHeader(ReplayHeader& header) {
void
Replay
::
WriteData
(
const
void
*
data
,
int
length
,
bool
flush
)
{
if
(
!
is_recording
)
return
;
if
(
length
<
0
||
(
pdata
-
replay_data
)
+
length
>
MAX_REPLAY_SIZE
)
if
(
length
<
0
||
(
int
)(
pwrite
-
replay_data
)
+
length
>
MAX_REPLAY_SIZE
)
return
;
std
::
memcpy
(
p
data
,
data
,
length
);
p
data
+=
length
;
std
::
memcpy
(
p
write
,
data
,
length
);
p
write
+=
length
;
#ifdef _WIN32
DWORD
size
;
WriteFile
(
recording_fp
,
data
,
length
,
&
size
,
NULL
);
...
...
@@ -61,49 +61,13 @@ void Replay::WriteData(const void* data, int length, bool flush) {
#endif
}
void
Replay
::
WriteInt32
(
int
data
,
bool
flush
)
{
if
(
!
is_recording
)
return
;
if
((
pdata
-
replay_data
)
+
4
>
MAX_REPLAY_SIZE
)
return
;
BufferIO
::
WriteInt32
(
pdata
,
data
);
#ifdef _WIN32
DWORD
size
;
WriteFile
(
recording_fp
,
&
data
,
sizeof
(
int
),
&
size
,
NULL
);
#else
fwrite
(
&
data
,
sizeof
(
int
),
1
,
fp
);
if
(
flush
)
fflush
(
fp
);
#endif
WriteData
(
&
data
,
sizeof
data
,
flush
);
}
void
Replay
::
WriteInt16
(
short
data
,
bool
flush
)
{
if
(
!
is_recording
)
return
;
if
((
pdata
-
replay_data
)
+
2
>
MAX_REPLAY_SIZE
)
return
;
BufferIO
::
WriteInt16
(
pdata
,
data
);
#ifdef _WIN32
DWORD
size
;
WriteFile
(
recording_fp
,
&
data
,
sizeof
(
short
),
&
size
,
NULL
);
#else
fwrite
(
&
data
,
sizeof
(
short
),
1
,
fp
);
if
(
flush
)
fflush
(
fp
);
#endif
WriteData
(
&
data
,
sizeof
data
,
flush
);
}
void
Replay
::
WriteInt8
(
char
data
,
bool
flush
)
{
if
(
!
is_recording
)
return
;
if
((
pdata
-
replay_data
)
+
1
>
MAX_REPLAY_SIZE
)
return
;
BufferIO
::
WriteInt8
(
pdata
,
data
);
#ifdef _WIN32
DWORD
size
;
WriteFile
(
recording_fp
,
&
data
,
sizeof
(
char
),
&
size
,
NULL
);
#else
fwrite
(
&
data
,
sizeof
(
char
),
1
,
fp
);
if
(
flush
)
fflush
(
fp
);
#endif
WriteData
(
&
data
,
sizeof
data
,
flush
);
}
void
Replay
::
Flush
()
{
if
(
!
is_recording
)
...
...
@@ -121,10 +85,7 @@ void Replay::EndRecord() {
#else
fclose
(
fp
);
#endif
if
(
pdata
-
replay_data
>
0
&&
pdata
-
replay_data
<=
MAX_REPLAY_SIZE
)
replay_size
=
pdata
-
replay_data
;
else
replay_size
=
0
;
replay_size
=
pwrite
-
replay_data
;
pheader
.
datasize
=
replay_size
;
pheader
.
flag
|=
REPLAY_COMPRESSED
;
size_t
propsize
=
5
;
...
...
@@ -141,39 +102,26 @@ void Replay::SaveReplay(const wchar_t* name) {
return
;
wchar_t
fname
[
256
];
myswprintf
(
fname
,
L"./replay/%ls.yrp"
,
name
);
#ifdef WIN32
fp
=
_wfopen
(
fname
,
L"wb"
);
#else
char
fname2
[
256
];
BufferIO
::
EncodeUTF8
(
fname
,
fname2
);
fp
=
fopen
(
fname2
,
"wb"
);
#endif
if
(
!
fp
)
char
fullname
[
256
]{};
BufferIO
::
EncodeUTF8
(
fname
,
fullname
);
FILE
*
rfp
=
myfopen
(
fullname
,
"wb"
);
if
(
!
rfp
)
return
;
fwrite
(
&
pheader
,
sizeof
(
pheader
),
1
,
fp
);
fwrite
(
comp_data
,
comp_size
,
1
,
fp
);
fclose
(
fp
);
fwrite
(
&
pheader
,
sizeof
pheader
,
1
,
r
fp
);
fwrite
(
comp_data
,
comp_size
,
1
,
r
fp
);
fclose
(
r
fp
);
}
bool
Replay
::
OpenReplay
(
const
wchar_t
*
name
)
{
#ifdef WIN32
fp
=
_wfopen
(
name
,
L"rb"
);
#else
char
name2
[
256
];
BufferIO
::
EncodeUTF8
(
name
,
name2
);
fp
=
fopen
(
name2
,
"rb"
);
#endif
if
(
!
fp
)
{
char
fullname
[
256
]{};
BufferIO
::
EncodeUTF8
(
name
,
fullname
);
FILE
*
rfp
=
myfopen
(
fullname
,
"rb"
);
if
(
!
rfp
)
{
wchar_t
fname
[
256
];
myswprintf
(
fname
,
L"./replay/%ls"
,
name
);
#ifdef WIN32
fp
=
_wfopen
(
fname
,
L"rb"
);
#else
char
fname2
[
256
];
BufferIO
::
EncodeUTF8
(
fname
,
fname2
);
fp
=
fopen
(
fname2
,
"rb"
);
#endif
BufferIO
::
EncodeUTF8
(
fname
,
fullname
);
rfp
=
myfopen
(
fullname
,
"rb"
);
}
if
(
!
fp
)
if
(
!
r
fp
)
return
false
;
pdata
=
replay_data
;
...
...
@@ -181,13 +129,13 @@ bool Replay::OpenReplay(const wchar_t* name) {
is_replaying
=
false
;
replay_size
=
0
;
comp_size
=
0
;
if
(
fread
(
&
pheader
,
sizeof
(
pheader
),
1
,
fp
)
<
1
)
{
fclose
(
fp
);
if
(
fread
(
&
pheader
,
sizeof
pheader
,
1
,
r
fp
)
<
1
)
{
fclose
(
r
fp
);
return
false
;
}
if
(
pheader
.
flag
&
REPLAY_COMPRESSED
)
{
comp_size
=
fread
(
comp_data
,
1
,
MAX_COMP_SIZE
,
fp
);
fclose
(
fp
);
comp_size
=
fread
(
comp_data
,
1
,
MAX_COMP_SIZE
,
r
fp
);
fclose
(
r
fp
);
if
((
int
)
pheader
.
datasize
<
0
&&
(
int
)
pheader
.
datasize
>
MAX_REPLAY_SIZE
)
return
false
;
replay_size
=
pheader
.
datasize
;
...
...
@@ -198,8 +146,8 @@ bool Replay::OpenReplay(const wchar_t* name) {
return
false
;
}
}
else
{
replay_size
=
fread
(
replay_data
,
1
,
MAX_REPLAY_SIZE
,
fp
);
fclose
(
fp
);
replay_size
=
fread
(
replay_data
,
1
,
MAX_REPLAY_SIZE
,
r
fp
);
fclose
(
r
fp
);
comp_size
=
0
;
}
is_replaying
=
true
;
...
...
@@ -208,24 +156,20 @@ bool Replay::OpenReplay(const wchar_t* name) {
bool
Replay
::
CheckReplay
(
const
wchar_t
*
name
)
{
wchar_t
fname
[
256
];
myswprintf
(
fname
,
L"./replay/%ls"
,
name
);
#ifdef WIN32
FILE
*
rfp
=
_wfopen
(
fname
,
L"rb"
);
#else
char
fname2
[
256
];
BufferIO
::
EncodeUTF8
(
fname
,
fname2
);
FILE
*
rfp
=
fopen
(
fname2
,
"rb"
);
#endif
char
fullname
[
256
]{};
BufferIO
::
EncodeUTF8
(
fname
,
fullname
);
FILE
*
rfp
=
myfopen
(
fullname
,
"rb"
);
if
(
!
rfp
)
return
false
;
ReplayHeader
rheader
;
size_t
count
=
fread
(
&
rheader
,
sizeof
(
ReplayHeader
)
,
1
,
rfp
);
size_t
count
=
fread
(
&
rheader
,
sizeof
rheader
,
1
,
rfp
);
fclose
(
rfp
);
return
count
==
1
&&
rheader
.
id
==
0x31707279
&&
rheader
.
version
>=
0x12d0u
&&
(
rheader
.
version
<
0x1353u
||
(
rheader
.
flag
&
REPLAY_UNIFORM
));
}
bool
Replay
::
DeleteReplay
(
const
wchar_t
*
name
)
{
wchar_t
fname
[
256
];
myswprintf
(
fname
,
L"./replay/%ls"
,
name
);
#ifdef WIN32
#ifdef
_
WIN32
BOOL
result
=
DeleteFileW
(
fname
);
return
!!
result
;
#else
...
...
@@ -240,7 +184,7 @@ bool Replay::RenameReplay(const wchar_t* oldname, const wchar_t* newname) {
wchar_t
newfname
[
256
];
myswprintf
(
oldfname
,
L"./replay/%ls"
,
oldname
);
myswprintf
(
newfname
,
L"./replay/%ls"
,
newname
);
#ifdef WIN32
#ifdef
_
WIN32
BOOL
result
=
MoveFileW
(
oldfname
,
newfname
);
return
!!
result
;
#else
...
...
@@ -253,45 +197,53 @@ bool Replay::RenameReplay(const wchar_t* oldname, const wchar_t* newname) {
#endif
}
bool
Replay
::
ReadNextResponse
(
unsigned
char
resp
[])
{
if
(
pdata
-
replay_data
>=
(
int
)
replay_size
)
unsigned
char
len
{};
if
(
!
ReadData
(
&
len
,
sizeof
len
))
return
false
;
if
(
len
>
SIZE_RETURN_VALUE
)
{
is_replaying
=
false
;
return
false
;
int
len
=
*
pdata
++
;
if
(
len
>
SIZE_RETURN_VALUE
)
}
if
(
!
ReadData
(
resp
,
len
)
)
return
false
;
std
::
memcpy
(
resp
,
pdata
,
len
);
pdata
+=
len
;
return
true
;
}
void
Replay
::
ReadName
(
wchar_t
*
data
)
{
if
(
!
is_replaying
)
uint16_t
buffer
[
20
]{};
if
(
!
ReadData
(
buffer
,
sizeof
buffer
))
{
data
[
0
]
=
0
;
return
;
unsigned
short
buffer
[
20
];
ReadData
(
buffer
,
40
);
}
BufferIO
::
CopyWStr
(
buffer
,
data
,
20
);
}
void
Replay
::
ReadData
(
void
*
data
,
int
length
)
{
bool
Replay
::
ReadData
(
void
*
data
,
int
length
)
{
if
(
!
is_replaying
)
return
;
return
false
;
if
(
length
<
0
)
return
false
;
if
((
int
)(
pdata
-
replay_data
)
+
length
>
(
int
)
replay_size
)
{
is_replaying
=
false
;
return
false
;
}
std
::
memcpy
(
data
,
pdata
,
length
);
pdata
+=
length
;
return
true
;
}
int
Replay
::
ReadInt32
()
{
if
(
!
is_replaying
)
template
<
typename
T
>
T
Replay
::
ReadValue
()
{
T
ret
{};
if
(
!
ReadData
(
&
ret
,
sizeof
ret
))
return
-
1
;
int
ret
=
BufferIO
::
ReadInt32
(
pdata
);
return
ret
;
}
int
Replay
::
ReadInt32
()
{
return
ReadValue
<
int32_t
>
();
}
short
Replay
::
ReadInt16
()
{
if
(
!
is_replaying
)
return
-
1
;
short
ret
=
BufferIO
::
ReadInt16
(
pdata
);
return
ret
;
return
ReadValue
<
int16_t
>
();
}
char
Replay
::
ReadInt8
()
{
if
(
!
is_replaying
)
return
-
1
;
char
ret
=
BufferIO
::
ReadInt8
(
pdata
);
return
ret
;
return
ReadValue
<
char
>
();
}
void
Replay
::
Rewind
()
{
pdata
=
replay_data
;
...
...
gframe/replay.h
View file @
1dcbcb69
...
...
@@ -50,7 +50,9 @@ public:
bool
ReadNextResponse
(
unsigned
char
resp
[]);
void
ReadName
(
wchar_t
*
data
);
//void ReadHeader(ReplayHeader& header);
void
ReadData
(
void
*
data
,
int
length
);
bool
ReadData
(
void
*
data
,
int
length
);
template
<
typename
T
>
T
ReadValue
();
int
ReadInt32
();
short
ReadInt16
();
char
ReadInt8
();
...
...
@@ -62,13 +64,14 @@ public:
#endif
ReplayHeader
pheader
;
unsigned
char
*
replay_data
;
unsigned
char
*
comp_data
;
size_t
replay_size
{};
size_t
comp_size
{};
private:
unsigned
char
*
pdata
{
nullptr
};
unsigned
char
*
replay_data
;
size_t
replay_size
{};
unsigned
char
*
pwrite
{};
unsigned
char
*
pdata
{};
bool
is_recording
{};
bool
is_replaying
{};
};
...
...
lflist.conf
View file @
1dcbcb69
#[2024.
7][2024.4 TCG][2024.4][2024.1][2023.10][2023.7][2023.4][2023.1][2022.10][2022.7][2022.4][2022.1][2021.10][2021.7][2021.4][2021.1][2020.10][2020.7][2020.4][2020.1][2019.10][2019.7][2019.4][2019.1][2018.10][2018.7][2018.4][2018.1][2017.10][2017.7][2017.4][2017.1][2016.10][2016.7][2016.4][2016.1][2015.10][2015.4][2015.1][2014.10][2014.7][2014.4][2014.2][2013.9
][2024.1 TCG][2023.9 TCG][2023.6 TCG][2023.2 TCG][2022.12 TCG][2022.10 TCG][2022.5 TCG][2022.2 TCG][2021.10 TCG][2021.7 TCG][2021.3 TCG][2020.12 TCG][2020.9 TCG][2020.6 TCG][2020.4 TCG][2020.1 TCG][2019.10 TCG][2019.7 TCG][2019.4 TCG][2019.1 TCG][2018.12 TCG][2018.9 TCG][2018.5 TCG][2018.2 TCG][2017.11 TCG][2017.9 TCG][2017.6 TCG][2017.3 TCG][2016.8 TCG][2016.4 TCG][2015.11 TCG][2015.7 TCG][2015.4 TCG][2015.1 TCG][2014.10 TCG][2014.7 TCG][2014.4 TCG][2014.1.1 TCG][2013.10.11 TCG][2013.3.1][2012.9.1][2012.3.1][2011.9.1]
!
2024
.
7
#[2024.
10][2024.9 TCG][2024.7][2024.4][2024.1][2023.10][2023.7][2023.4][2023.1][2022.10][2022.7][2022.4][2022.1][2021.10][2021.7][2021.4][2021.1][2020.10][2020.7][2020.4][2020.1][2019.10][2019.7][2019.4][2019.1][2018.10][2018.7][2018.4][2018.1][2017.10][2017.7][2017.4][2017.1][2016.10][2016.7][2016.4][2016.1][2015.10][2015.4][2015.1][2014.10][2014.7][2014.4][2014.2][2013.9][2024.4 TCG
][2024.1 TCG][2023.9 TCG][2023.6 TCG][2023.2 TCG][2022.12 TCG][2022.10 TCG][2022.5 TCG][2022.2 TCG][2021.10 TCG][2021.7 TCG][2021.3 TCG][2020.12 TCG][2020.9 TCG][2020.6 TCG][2020.4 TCG][2020.1 TCG][2019.10 TCG][2019.7 TCG][2019.4 TCG][2019.1 TCG][2018.12 TCG][2018.9 TCG][2018.5 TCG][2018.2 TCG][2017.11 TCG][2017.9 TCG][2017.6 TCG][2017.3 TCG][2016.8 TCG][2016.4 TCG][2015.11 TCG][2015.7 TCG][2015.4 TCG][2015.1 TCG][2014.10 TCG][2014.7 TCG][2014.4 TCG][2014.1.1 TCG][2013.10.11 TCG][2013.3.1][2012.9.1][2012.3.1][2011.9.1]
!
2024
.
10
#forbidden
91869203
0
--アマゾネスの射手
20663556
0
--イレカエル
44910027
0
--ヴィクトリー・ドラゴン
27552504
0
--永遠の淑女 ベアトリーチェ
51858306
0
--エクリプス・ワイバーン
62242678
0
--琰魔竜王 レッド・デーモン・カラミティ
34945480
0
--外神アザトート
...
...
@@ -20,17 +21,14 @@
02563463
0
--流離のグリフォンライダー
88071625
0
--
The
tyrant
NEPTUNE
52653092
0
--
SNo
.
0
ホープ・ゼアル
48905153
0
--十二獣ドランシア
85115440
0
--十二獣ブルホーン
59537380
0
--守護竜アガーペイン
86148577
0
--守護竜エルピィ
88581108
0
--真竜皇
V
.
F
.
D
.
21377582
0
--真竜剣皇マスター
P
27381364
0
--スプライト・エルフ
16923472
0
--ゼンマイハンター
15341821
0
--ダンディライオン
77679716
0
--超重武者装留ブレイク・アーマー
37818794
0
--超魔導竜騎士-ドラグーン・オブ・レッドアイズ
92731385
0
--ティアラメンツ・キトカロス
69015963
0
--デビル・フランケン
79875176
0
--トゥーン・キャノン・ソルジャー
...
...
@@ -62,7 +60,6 @@
35059553
0
--カイザーコロシアム
74191942
0
--苦渋の選択
42829885
0
--強引な番兵
45986603
0
--強奪
55144522
0
--強欲な壺
23557835
0
--次元融合
31423101
0
--神剣-フェニックスブレード
...
...
@@ -90,39 +87,40 @@
28566710
0
--ラストバトル!
#limit
76794549
1
--アストログラフ・マジシャン
40177746
1
--イーバ
27552504
1
--永遠の淑女 ベアトリーチェ
29301450
1
--
S
:
P
リトルナイト
07563579
1
--
Em
ヒグルミ
17330916
1
--
EM
モンキーボード
68304193
1
--クシャトリラ・ユニコーン
12289247
1
--クロノグラフ・マジシャン
72270339
1
--黒魔女ディアベルスター
99937011
1
--剣神官ムドラ
38814750
1
--
PSY
フレームギア・γ
74586817
1
--
PSY
フレームロード・Ω
32731036
1
--深淵の獣ルベリオン
36521307
1
--斬機サーキュラー
48905153
1
--十二獣ドランシア
78872731
1
--十二獣モルモラット
06602300
1
--重爆撃禽 ボム・フェネクス
63542003
1
--宿神像ケルドウ
21377582
1
--真竜剣皇マスター
P
09674034
1
--スネークアイ・エクセル
81275020
1
--
SR
ベイゴマックス
90241276
1
--蛇眼の炎燐
13533678
1
--スプライト・ジェット
76145933
1
--スプライト・ブルー
82385847
1
--ダイナレスラー・パンクラトプス
90361010
1
--超重武者装留イワトオシ
37818794
1
--超魔導竜騎士-ドラグーン・オブ・レッドアイズ
04928565
1
--ティアラメンツ・クシャトリラ
00572850
1
--ティアラメンツ・シェイレーン
37961969
1
--ティアラメンツ・ハゥフニス
74078255
1
--ティアラメンツ・メイルゥ
73956664
1
--ティアラメンツ・レイノハート
90953320
1
--
TG
ハイパー・ライブラリアン
91810826
1
--天盃龍チュンドラ
75433814
1
--
No
.
40
ギミック・パペット-ヘブンズ・ストリングス
90448279
1
--天霆號アーゼウス
17266660
1
--朱光の宣告者
06637331
1
--深淵の獣ドルイドヴルム
72656408
1
--深淵の獣バルドレイク
33854624
1
--深淵の獣マグナムート
80453041
1
--ファントム・オブ・ユベル
33396948
1
--封印されしエクゾディア
44519536
1
--封印されし者の左足
07902349
1
--封印されし者の左腕
...
...
@@ -130,18 +128,18 @@
70903634
1
--封印されし者の右腕
94689206
1
--ブロックドラゴン
24094258
1
--ヘビーメタルフォーゼ・エレクトラム
31178212
1
--マジェスペクター・ユニコーン
04423206
1
--
M
.
X
-セイバー インヴォーカー
60764609
1
--魔を刻むデモンスミス
33508719
1
--メタモルポット
92746535
1
--竜剣士ラスター
P
77103950
1
--壱世壊=ペルレイノ
33782437
1
--一時休戦
01845204
1
--簡易融合
61292243
1
--
EMERGENCY
!
19613556
1
--大嵐
81439173
1
--おろかな埋葬
85106525
1
--篝火
84211599
1
--金満で謙虚な壺
23701465
1
--原初の種
45986603
1
--強奪
80845034
1
--“罪宝狩りの悪魔”
30336082
1
--盃満ちる燦幻荘
83764718
1
--死者蘇生
...
...
@@ -150,17 +148,15 @@
52340444
1
--閃刀機-ホーネットビット
32807846
1
--増援
72892473
1
--手札抹殺
98567237
1
--刻まれし魔の詠聖
73628505
1
--テラ・フォーミング
18144506
1
--ハーピィの羽根帚
21347668
1
--ピュアリィ・スリーピィメモリー
75500286
1
--封印の黄金櫃
52947044
1
--フュージョン・デステニー
07394770
1
--ブリリアント・フュージョン
73468603
1
--盆回し
93600443
1
--マスク・チェンジ・セカンド
65681983
1
--抹殺の指名者
71832012
1
--六世壊=パライゾス
36637374
1
--烙印開幕
44362883
1
--烙印融合
92107604
1
--神碑の泉
27970830
1
--六武の門
...
...
@@ -172,30 +168,32 @@
21076084
1
--トリックスター・リンカーネイション
23002292
1
--レッド・リブート
#semi limit
40177746
2
--イーバ
02526224
2
--炎王神獣 キリン
53804307
2
--焔征竜-ブラスター
90411554
2
--巌征竜-レドックス
78080961
2
--
SPYRAL
-ジーニア
ス
81275020
2
--
SR
ベイゴマックス
23434538
2
--増殖する
G
82385847
2
--ダイナレスラー・パンクラトプ
ス
91800273
2
--ディメンション・アトラクター
09411399
2
--
D
-
HERO
ディアボリックガイ
26400609
2
--瀑征竜-タイダル
89399912
2
--嵐征竜-テンペスト
04423206
2
--
M
.
X
-セイバー インヴォーカー
92746535
2
--竜剣士ラスター
P
65734501
2
--
R
-
ACE
エアホイスター
35726888
2
--おろかな副葬
85106525
2
--篝火
67723438
2
--緊急テレポート
49238328
2
--強欲で金満な壺
35261759
2
--強欲で貪欲な壺
12580477
2
--サンダー・ボルト
48130397
2
--超融合
11110587
2
--隣の芝刈り
93729896
2
--ナイトメア・スローン
24224830
2
--墓穴の指名者
55584558
2
--ピュアリィ・デリシャスメモリー
56700100
2
--ピュアリィ・マイフレンド
14532163
2
--ライトニング・ストーム
75500286
2
--封印の黄金櫃
52947044
2
--フュージョン・デステニー
36637374
2
--烙印開幕
53334471
2
--御前試合
92714517
2
--ビッグウェルカム・ラビュリンス
!
2024
.
4
TCG
!
2024
.
9
TCG
#forbidden
62320425
0
--
Agido
the
Ancient
Sentinel
20292186
0
--
Artifact
Scythe
...
...
@@ -206,7 +204,6 @@
15341821
0
--
Dandylion
08903700
0
--
Djinn
Releaser
of
Rituals
51858306
0
--
Eclipse
Wyvern
40177746
0
--
Eva
55623480
0
--
Fairy
Tail
-
Snow
78706415
0
--
Fiber
Jar
93369354
0
--
Fishborg
Blaster
...
...
@@ -219,15 +216,16 @@
36521307
0
--
Mathmech
Circular
23434538
0
--
Maxx
"C"
96782886
0
--
Mind
Master
07563579
0
--
Performage
Plushfire
23558733
0
--
Phoenixian
Cluster
Amaryllis
01357146
0
--
Ronintoadin
91258852
0
--
SPYRAL
Master
Plan
88071625
0
--
The
Tyrant
Neptune
44910027
0
--
Victory
Dragon
17412721
0
--
Elder
Entity
Norden
46640168
0
--
Fiendsmith
'
s
Lacrima
43387895
0
--
Supreme
King
Dragon
Starving
Venom
92731385
0
--
Tearlaments
Kitkallos
04280258
0
--
Apollousa
,
Bow
of
the
Goddess
50588353
0
--
Crystron
Halqifibrax
98095162
0
--
Curious
,
the
Lightsworn
Dominion
59537380
0
--
Guardragon
Agarpain
...
...
@@ -250,7 +248,9 @@
84815190
0
--
Baronne
de
Fleur
27548199
0
--
Borreload
Savage
Dragon
03040496
0
--
Chaos
Ruler
,
the
Chaotic
Magical
Dragon
62242678
0
--
Hot
Red
Dragon
Archfiend
King
Calamity
63101919
0
--
Tempest
Magician
27552504
0
--
Beatrice
,
Lady
of
the
Eternal
48626373
0
--
Kashtira
Arise
-
Heart
34086406
0
--
Lavalval
Chain
04423206
0
--
M
-
X
-
Saber
Invoker
...
...
@@ -286,7 +286,6 @@
70828912
0
--
Premature
Burial
63789924
0
--
Smoke
Grenade
of
the
Thief
54447022
0
--
Soul
Charge
11110587
0
--
That
Grass
Looks
Greener
42829885
0
--
The
Forceful
Sentry
46060017
0
--
Zoodiac
Barrage
43262273
0
--
Appointer
of
the
Red
Lotus
...
...
@@ -310,46 +309,40 @@
06728559
1
--
Archnemeses
Protos
76794549
1
--
Astrograph
Sorcerer
61901281
1
--
Black
Dragon
Collapserpent
53804307
1
--
Blaster
,
Dragon
Ruler
of
Infernos
33854624
1
--
Bystial
Magnamhut
34124316
1
--
Cyber
Jar
43694650
1
--
Danger
!?
Jackalope
?
99745551
1
--
Danger
!?
Tsuchinoko
?
14536035
1
--
Dark
Grepher
40177746
1
--
Eva
33396948
1
--
Exodia
the
Forbidden
One
63542003
1
--
Keldo
the
Sacred
Protector
83190280
1
--
Lunalight
Tiger
31178212
1
--
Majespecter
Unicorn
-
Kirin
38572779
1
--
Miscellaneousaurus
33508719
1
--
Morphing
Jar
99937011
1
--
Mudora
the
Sword
Oracle
17330916
1
--
Performapal
Monkeyboard
12958919
1
--
Phantom
Skyblaster
38814750
1
--
PSY
-
Framegear
Gamma
26118970
1
--
Red
Rose
Dragon
90411554
1
--
Redox
,
Dragon
Ruler
of
Boulders
65734501
1
--
Rescue
-
ACE
Air
Lifter
09674034
1
--
Snake
-
Eye
Ash
90241276
1
--
Snake
-
Eyes
Poplar
20663556
1
--
Substitoad
37961969
1
--
Tearlaments
Havnis
74078255
1
--
Tearlaments
Merrli
00572850
1
--
Tearlaments
Scheiren
89399912
1
--
Tempest
,
Dragon
Ruler
of
Storms
26400609
1
--
Tidal
,
Dragon
Ruler
of
Waterfalls
41165831
1
--
Unchained
Soul
of
Sharvara
99234526
1
--
White
Dragon
Wyverburster
78872731
1
--
Zoodiac
Ratpier
39512984
1
--
Gem
-
Knight
Master
Diamond
15291624
1
--
Thunder
Dragon
Colossus
73539069
1
--
Striker
Dragon
93896655
1
--
Sunavalon
Dryas
65563871
1
--
Sunvine
Healer
25862681
1
--
Ancient
Fairy
Dragon
65536818
1
--
Denglong
,
First
of
the
Yang
Zing
94677445
1
--
Ib
the
World
Chalice
Justiciar
74586817
1
--
PSY
-
Framelord
Omega
90953320
1
--
T
.
G
.
Hyper
Librarian
27552504
1
--
Beatrice
,
Lady
of
the
Eternal
00581014
1
--
Daigusto
Emeral
75433814
1
--
Number
40
:
Gimmick
Puppet
of
Strings
69170557
1
--
Number
C40
:
Gimmick
Puppet
of
Dark
Strings
44362883
1
--
Branded
Fusion
24224830
1
--
Called
by
the
Grave
72892473
1
--
Card
Destruction
59750328
1
--
Card
of
Demise
...
...
@@ -372,29 +365,235 @@
83764718
1
--
Monster
Reborn
33782437
1
--
One
Day
of
Peace
02295440
1
--
One
for
One
80312545
1
--
Opening
of
the
Spirit
Gates
84211599
1
--
Pot
of
Prosperity
58577036
1
--
Reasoning
32807846
1
--
Reinforcement
of
the
Army
30336082
1
--
Sangen
Summoning
24940422
1
--
Sekka
'
s
Light
73468603
1
--
Set
Rotation
52340444
1
--
Sky
Striker
Mecha
-
Hornet
Drones
71344451
1
--
Slash
Draw
45986603
1
--
Snatch
Steal
73628505
1
--
Terraforming
11110587
1
--
That
Grass
Looks
Greener
58921041
1
--
Anti
-
Spell
Fragrance
53334471
1
--
Gozen
Match
32723153
1
--
Magical
Explosion
03734202
1
--
Naturia
Sacred
Tree
90846359
1
--
Rivalry
of
Warlords
82732705
1
--
Skill
Drain
24207889
1
--
There
Can
Be
Only
One
35316708
1
--
Time
Seal
#semi limit
28985331
2
--
Armageddon
Knight
53804307
2
--
Blaster
,
Dragon
Ruler
of
Infernos
82385847
2
--
Dinowrestler
Pankratops
83190280
2
--
Lunalight
Tiger
90411554
2
--
Redox
,
Dragon
Ruler
of
Boulders
89399912
2
--
Tempest
,
Dragon
Ruler
of
Storms
26400609
2
--
Tidal
,
Dragon
Ruler
of
Waterfalls
15291624
2
--
Thunder
Dragon
Colossus
94677445
2
--
Ib
the
World
Chalice
Justiciar
14532163
2
--
Lightning
Storm
55584558
2
--
Purrely
Delicious
Memory
21347668
2
--
Purrely
Sleepy
Memory
92107604
2
--
Runick
Fountain
!
2024
.
7
#forbidden
91869203
0
--アマゾネスの射手
20663556
0
--イレカエル
44910027
0
--ヴィクトリー・ドラゴン
51858306
0
--エクリプス・ワイバーン
62242678
0
--琰魔竜王 レッド・デーモン・カラミティ
34945480
0
--外神アザトート
95727991
0
--カタパルト・タートル
08903700
0
--儀式魔人リリーサー
11384280
0
--キャノン・ソルジャー
17412721
0
--旧神ノーデン
32909498
0
--クシャトリラ・フェンリル
50588353
0
--水晶機巧-ハリファイバー
62320425
0
--古衛兵アギド
25926710
0
--古尖兵ケルベク
03040496
0
--混沌魔龍 カオス・ルーラー
34124316
0
--サイバーポッド
02563463
0
--流離のグリフォンライダー
88071625
0
--
The
tyrant
NEPTUNE
52653092
0
--
SNo
.
0
ホープ・ゼアル
48905153
0
--十二獣ドランシア
85115440
0
--十二獣ブルホーン
59537380
0
--守護竜アガーペイン
86148577
0
--守護竜エルピィ
88581108
0
--真竜皇
V
.
F
.
D
.
21377582
0
--真竜剣皇マスター
P
27381364
0
--スプライト・エルフ
16923472
0
--ゼンマイハンター
15341821
0
--ダンディライオン
77679716
0
--超重武者装留ブレイク・アーマー
37818794
0
--超魔導竜騎士-ドラグーン・オブ・レッドアイズ
92731385
0
--ティアラメンツ・キトカロス
69015963
0
--デビル・フランケン
79875176
0
--トゥーン・キャノン・ソルジャー
75732622
0
--トーチ・ゴーレム
22593417
0
--トポロジック・ガンブラー・ドラゴン
39064822
0
--トロイメア・ゴブリン
03679218
0
--トロイメア・マーメイド
54719828
0
--
No
.
16
色の支配者ショック・ルーラー
63504681
0
--
No
.
86
H
-
C
ロンゴミアント
58820923
0
--
No
.
95
ギャラクシーアイズ・ダークマター・ドラゴン
78706415
0
--ファイバーポッド
93369354
0
--フィッシュボーグ-ガンナー
23558733
0
--フェニキシアン・クラスター・アマリリス
09929398
0
--
BF
-朧影のゴウフウ
70369116
0
--捕食植物ヴェルテ・アナコンダ
63101919
0
--マジックテンペスター
34206604
0
--魔導サイエンティスト
14702066
0
--メガキャノン・ソルジャー
96782886
0
--メンタルマスター
90809975
0
--餅カエル
83152482
0
--ユニオン・キャリアー
34086406
0
--ラヴァルバル・チェイン
85243784
0
--リンクロス
73356503
0
--烈風の結界像
57421866
0
--レベル・スティーラー
41482598
0
--悪夢の蜃気楼
44763025
0
--いたずら好きな双子悪魔
17375316
0
--押収
35059553
0
--カイザーコロシアム
74191942
0
--苦渋の選択
42829885
0
--強引な番兵
45986603
0
--強奪
55144522
0
--強欲な壺
23557835
0
--次元融合
31423101
0
--神剣-フェニックスブレード
57953380
0
--生還の宝札
54447022
0
--ソウル・チャージ
60682203
0
--大寒波
69243953
0
--蝶の短剣-エルマ
79571449
0
--天使の施し
63789924
0
--盗人の煙玉
70828912
0
--早すぎた埋葬
42703248
0
--ハリケーン
76375976
0
--魔鍾洞
34906152
0
--マスドライバー
46411259
0
--突然変異
85602018
0
--遺言状
27174286
0
--異次元からの帰還
05851097
0
--虚無空間
93016201
0
--王宮の弾圧
61740673
0
--王宮の勅命
03280747
0
--第六感
64697231
0
--ダスト・シュート
80604091
0
--血の代償
32723153
0
--マジカル・エクスプロージョン
17178486
0
--ライフチェンジャー
28566710
0
--ラストバトル!
#limit
76794549
1
--アストログラフ・マジシャン
40177746
1
--イーバ
27552504
1
--永遠の淑女 ベアトリーチェ
29301450
1
--
S
:
P
リトルナイト
07563579
1
--
Em
ヒグルミ
17330916
1
--
EM
モンキーボード
68304193
1
--クシャトリラ・ユニコーン
12289247
1
--クロノグラフ・マジシャン
99937011
1
--剣神官ムドラ
38814750
1
--
PSY
フレームギア・γ
74586817
1
--
PSY
フレームロード・Ω
32731036
1
--深淵の獣ルベリオン
36521307
1
--斬機サーキュラー
78872731
1
--十二獣モルモラット
06602300
1
--重爆撃禽 ボム・フェネクス
63542003
1
--宿神像ケルドウ
09674034
1
--スネークアイ・エクセル
81275020
1
--
SR
ベイゴマックス
13533678
1
--スプライト・ジェット
76145933
1
--スプライト・ブルー
82385847
1
--ダイナレスラー・パンクラトプス
90361010
1
--超重武者装留イワトオシ
04928565
1
--ティアラメンツ・クシャトリラ
00572850
1
--ティアラメンツ・シェイレーン
37961969
1
--ティアラメンツ・ハゥフニス
74078255
1
--ティアラメンツ・メイルゥ
73956664
1
--ティアラメンツ・レイノハート
90953320
1
--
TG
ハイパー・ライブラリアン
75433814
1
--
No
.
40
ギミック・パペット-ヘブンズ・ストリングス
90448279
1
--天霆號アーゼウス
17266660
1
--朱光の宣告者
06637331
1
--深淵の獣ドルイドヴルム
72656408
1
--深淵の獣バルドレイク
33854624
1
--深淵の獣マグナムート
33396948
1
--封印されしエクゾディア
44519536
1
--封印されし者の左足
07902349
1
--封印されし者の左腕
08124921
1
--封印されし者の右足
70903634
1
--封印されし者の右腕
94689206
1
--ブロックドラゴン
24094258
1
--ヘビーメタルフォーゼ・エレクトラム
31178212
1
--マジェスペクター・ユニコーン
04423206
1
--
M
.
X
-セイバー インヴォーカー
33508719
1
--メタモルポット
92746535
1
--竜剣士ラスター
P
77103950
1
--壱世壊=ペルレイノ
33782437
1
--一時休戦
01845204
1
--簡易融合
61292243
1
--
EMERGENCY
!
19613556
1
--大嵐
81439173
1
--おろかな埋葬
84211599
1
--金満で謙虚な壺
23701465
1
--原初の種
80845034
1
--“罪宝狩りの悪魔”
30336082
1
--盃満ちる燦幻荘
83764718
1
--死者蘇生
46060017
1
--十二獣の会局
15443125
1
--スプライト・スターター
52340444
1
--閃刀機-ホーネットビット
32807846
1
--増援
72892473
1
--手札抹殺
73628505
1
--テラ・フォーミング
18144506
1
--ハーピィの羽根帚
21347668
1
--ピュアリィ・スリーピィメモリー
75500286
1
--封印の黄金櫃
52947044
1
--フュージョン・デステニー
07394770
1
--ブリリアント・フュージョン
73468603
1
--盆回し
93600443
1
--マスク・チェンジ・セカンド
65681983
1
--抹殺の指名者
71832012
1
--六世壊=パライゾス
36637374
1
--烙印開幕
44362883
1
--烙印融合
92107604
1
--神碑の泉
27970830
1
--六武の門
02295440
1
--ワン・フォー・ワン
90846359
1
--群雄割拠
23516703
1
--サモンリミッター
82732705
1
--スキルドレイン
24207889
1
--センサー万別
21076084
1
--トリックスター・リンカーネイション
23002292
1
--レッド・リブート
#semi limit
02526224
2
--炎王神獣 キリン
53804307
2
--焔征竜-ブラスター
90411554
2
--巌征竜-レドックス
78080961
2
--
SPYRAL
-ジーニアス
91800273
2
--ディメンション・アトラクター
09411399
2
--
D
-
HERO
ディアボリックガイ
26400609
2
--瀑征竜-タイダル
89399912
2
--嵐征竜-テンペスト
65734501
2
--
R
-
ACE
エアホイスター
35726888
2
--おろかな副葬
85106525
2
--篝火
67723438
2
--緊急テレポート
49238328
2
--強欲で金満な壺
35261759
2
--強欲で貪欲な壺
12580477
2
--サンダー・ボルト
48130397
2
--超融合
11110587
2
--隣の芝刈り
24224830
2
--墓穴の指名者
55584558
2
--ピュアリィ・デリシャスメモリー
56700100
2
--ピュアリィ・マイフレンド
14532163
2
--ライトニング・ストーム
92714517
2
--ビッグウェルカム・ラビュリンス
!
2024
.
4
#forbidden
91869203
0
--アマゾネスの射手
...
...
@@ -7558,6 +7757,206 @@
53582587
2
--激流葬
29401950
2
--奈落の落とし穴
!
2024
.
4
TCG
#forbidden
62320425
0
--
Agido
the
Ancient
Sentinel
20292186
0
--
Artifact
Scythe
73356503
0
--
Barrier
Statue
of
the
Stormwinds
09929398
0
--
Blackwing
-
Gofu
the
Vague
Shadow
94689206
0
--
Block
Dragon
69015963
0
--
Cyber
-
Stein
15341821
0
--
Dandylion
08903700
0
--
Djinn
Releaser
of
Rituals
51858306
0
--
Eclipse
Wyvern
40177746
0
--
Eva
55623480
0
--
Fairy
Tail
-
Snow
78706415
0
--
Fiber
Jar
93369354
0
--
Fishborg
Blaster
67441435
0
--
Glow
-
Up
Bulb
75732622
0
--
Grinder
Golem
25926710
0
--
Kelbek
the
Ancient
Vanguard
57421866
0
--
Level
Eater
34206604
0
--
Magical
Scientist
21377582
0
--
Master
Peace
,
the
True
Dracoslaying
King
36521307
0
--
Mathmech
Circular
23434538
0
--
Maxx
"C"
96782886
0
--
Mind
Master
07563579
0
--
Performage
Plushfire
23558733
0
--
Phoenixian
Cluster
Amaryllis
01357146
0
--
Ronintoadin
91258852
0
--
SPYRAL
Master
Plan
88071625
0
--
The
Tyrant
Neptune
44910027
0
--
Victory
Dragon
17412721
0
--
Elder
Entity
Norden
43387895
0
--
Supreme
King
Dragon
Starving
Venom
92731385
0
--
Tearlaments
Kitkallos
50588353
0
--
Crystron
Halqifibrax
98095162
0
--
Curious
,
the
Lightsworn
Dominion
59537380
0
--
Guardragon
Agarpain
86148577
0
--
Guardragon
Elpy
24094258
0
--
Heavymetalfoes
Electrumite
59934749
0
--
Isolde
,
Two
Tales
of
the
Noble
Knights
39064822
0
--
Knightmare
Goblin
03679218
0
--
Knightmare
Mermaid
85243784
0
--
Linkross
41999284
0
--
Linkuriboh
44097050
0
--
Mecha
Phantom
Beast
Auroradon
25725326
0
--
Prank
-
Kids
Meow
-
Meow
-
Mu
70369116
0
--
Predaplant
Verte
Anaconda
72330894
0
--
Simorgh
,
Bird
of
Sovereignty
27381364
0
--
Spright
Elf
61665245
0
--
Summon
Sorceress
33918636
0
--
Superheavy
Samurai
Scarecrow
22593417
0
--
Topologic
Gumblar
Dragon
83152482
0
--
Union
Carrier
84815190
0
--
Baronne
de
Fleur
27548199
0
--
Borreload
Savage
Dragon
03040496
0
--
Chaos
Ruler
,
the
Chaotic
Magical
Dragon
63101919
0
--
Tempest
Magician
48626373
0
--
Kashtira
Arise
-
Heart
34086406
0
--
Lavalval
Chain
04423206
0
--
M
-
X
-
Saber
Invoker
54719828
0
--
Number
16
:
Shock
Master
10389142
0
--
Number
42
:
Galaxy
Tomahawk
63504681
0
--
Number
86
:
Heroic
Champion
-
Rhongomyniad
95474755
0
--
Number
89
:
Diablosis
the
Mind
Hacker
58820923
0
--
Number
95
:
Galaxy
-
Eyes
Dark
Matter
Dragon
52653092
0
--
Number
S0
:
Utopic
ZEXAL
34945480
0
--
Outer
Entity
Azathot
88581108
0
--
True
King
of
All
Calamities
81122844
0
--
Wind
-
Up
Carrier
Zenmaity
85115440
0
--
Zoodiac
Broadbull
48905153
0
--
Zoodiac
Drident
07394770
0
--
Brilliant
Fusion
69243953
0
--
Butterfly
Dagger
-
Elma
57953380
0
--
Card
of
Safe
Return
60682203
0
--
Cold
Wave
17375316
0
--
Confiscation
44763025
0
--
Delinquent
Duo
23557835
0
--
Dimension
Fusion
42703248
0
--
Giant
Trunade
79571449
0
--
Graceful
Charity
19613556
0
--
Heavy
Storm
35059553
0
--
Kaiser
Colosseum
85602018
0
--
Last
Will
34906152
0
--
Mass
Driver
46411259
0
--
Metamorphosis
41482598
0
--
Mirage
of
Nightmare
76375976
0
--
Mystic
Mine
74191942
0
--
Painful
Choice
55144522
0
--
Pot
of
Greed
70828912
0
--
Premature
Burial
63789924
0
--
Smoke
Grenade
of
the
Thief
54447022
0
--
Soul
Charge
11110587
0
--
That
Grass
Looks
Greener
42829885
0
--
The
Forceful
Sentry
46060017
0
--
Zoodiac
Barrage
43262273
0
--
Appointer
of
the
Red
Lotus
01041278
0
--
Branded
Expulsion
61740673
0
--
Imperial
Order
28566710
0
--
Last
Turn
23002292
0
--
Red
Reboot
27174286
0
--
Return
from
the
Different
Dimension
93016201
0
--
Royal
Oppression
57585212
0
--
Self
-
Destruct
Button
03280747
0
--
Sixth
Sense
23516703
0
--
Summon
Limit
64697231
0
--
Trap
Dustshoot
80604091
0
--
Ultimate
Offering
05851097
0
--
Vanity
'
s
Emptiness
#limit
07902349
1
--
Left
Arm
of
the
Forbidden
One
44519536
1
--
Left
Leg
of
the
Forbidden
One
70903634
1
--
Right
Arm
of
the
Forbidden
One
08124921
1
--
Right
Leg
of
the
Forbidden
One
06728559
1
--
Archnemeses
Protos
76794549
1
--
Astrograph
Sorcerer
61901281
1
--
Black
Dragon
Collapserpent
53804307
1
--
Blaster
,
Dragon
Ruler
of
Infernos
33854624
1
--
Bystial
Magnamhut
34124316
1
--
Cyber
Jar
43694650
1
--
Danger
!?
Jackalope
?
99745551
1
--
Danger
!?
Tsuchinoko
?
14536035
1
--
Dark
Grepher
33396948
1
--
Exodia
the
Forbidden
One
63542003
1
--
Keldo
the
Sacred
Protector
83190280
1
--
Lunalight
Tiger
31178212
1
--
Majespecter
Unicorn
-
Kirin
38572779
1
--
Miscellaneousaurus
33508719
1
--
Morphing
Jar
99937011
1
--
Mudora
the
Sword
Oracle
17330916
1
--
Performapal
Monkeyboard
12958919
1
--
Phantom
Skyblaster
38814750
1
--
PSY
-
Framegear
Gamma
26118970
1
--
Red
Rose
Dragon
90411554
1
--
Redox
,
Dragon
Ruler
of
Boulders
65734501
1
--
Rescue
-
ACE
Air
Lifter
20663556
1
--
Substitoad
37961969
1
--
Tearlaments
Havnis
74078255
1
--
Tearlaments
Merrli
00572850
1
--
Tearlaments
Scheiren
89399912
1
--
Tempest
,
Dragon
Ruler
of
Storms
26400609
1
--
Tidal
,
Dragon
Ruler
of
Waterfalls
41165831
1
--
Unchained
Soul
of
Sharvara
99234526
1
--
White
Dragon
Wyverburster
78872731
1
--
Zoodiac
Ratpier
39512984
1
--
Gem
-
Knight
Master
Diamond
15291624
1
--
Thunder
Dragon
Colossus
73539069
1
--
Striker
Dragon
93896655
1
--
Sunavalon
Dryas
65563871
1
--
Sunvine
Healer
25862681
1
--
Ancient
Fairy
Dragon
65536818
1
--
Denglong
,
First
of
the
Yang
Zing
94677445
1
--
Ib
the
World
Chalice
Justiciar
74586817
1
--
PSY
-
Framelord
Omega
90953320
1
--
T
.
G
.
Hyper
Librarian
27552504
1
--
Beatrice
,
Lady
of
the
Eternal
00581014
1
--
Daigusto
Emeral
24224830
1
--
Called
by
the
Grave
72892473
1
--
Card
Destruction
59750328
1
--
Card
of
Demise
91623717
1
--
Chain
Strike
04031928
1
--
Change
of
Heart
99266988
1
--
Chaos
Space
67616300
1
--
Chicken
Game
15854426
1
--
Divine
Wind
of
Mist
Valley
13035077
1
--
Dragonic
Diagram
95308449
1
--
Final
Countdown
81439173
1
--
Foolish
Burial
27970830
1
--
Gateway
of
the
Six
75500286
1
--
Gold
Sarcophagus
18144506
1
--
Harpie
'
s
Feather
Duster
66957584
1
--
Infernity
Launcher
01845204
1
--
Instant
Fusion
93946239
1
--
Into
the
Void
71650854
1
--
Magical
Mid
-
Breaker
Field
43040603
1
--
Monster
Gate
83764718
1
--
Monster
Reborn
33782437
1
--
One
Day
of
Peace
02295440
1
--
One
for
One
58577036
1
--
Reasoning
32807846
1
--
Reinforcement
of
the
Army
24940422
1
--
Sekka
'
s
Light
73468603
1
--
Set
Rotation
52340444
1
--
Sky
Striker
Mecha
-
Hornet
Drones
71344451
1
--
Slash
Draw
45986603
1
--
Snatch
Steal
73628505
1
--
Terraforming
58921041
1
--
Anti
-
Spell
Fragrance
53334471
1
--
Gozen
Match
32723153
1
--
Magical
Explosion
03734202
1
--
Naturia
Sacred
Tree
90846359
1
--
Rivalry
of
Warlords
24207889
1
--
There
Can
Be
Only
One
35316708
1
--
Time
Seal
#semi limit
28985331
2
--
Armageddon
Knight
82385847
2
--
Dinowrestler
Pankratops
14532163
2
--
Lightning
Storm
55584558
2
--
Purrely
Delicious
Memory
21347668
2
--
Purrely
Sleepy
Memory
92107604
2
--
Runick
Fountain
!
2024
.
1
TCG
#forbidden
62320425
0
--
Agido
the
Ancient
Sentinel
...
...
premake/lua/premake5.lua
View file @
1dcbcb69
...
...
@@ -10,6 +10,9 @@ project "lua"
filter
"not action:vs*"
buildoptions
{
"-x c++"
}
filter
"configurations:Debug"
defines
{
"LUA_USE_APICHECK"
}
filter
"system:bsd"
defines
{
"LUA_USE_POSIX"
}
...
...
strings.conf
View file @
1dcbcb69
...
...
@@ -1238,3 +1238,6 @@
!
setname
0
x1bb
魔瞳 モルガナイト
!
setname
0
x1bc
蓟花 アザミナ
!
setname
0
x1bd
祝台
!
setname
0
x1be
雷火沸动 ライゼオル
!
setname
0
x1bf
码丽丝
M
∀
LICE
!
setname
0
x1c0
龙华 竜華
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