Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
R
rd-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
苍蓝
rd-ygopro
Commits
61477d92
Commit
61477d92
authored
May 21, 2024
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into server-develop
parents
6f64705a
893b83b3
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
51 additions
and
41 deletions
+51
-41
gframe/client_card.h
gframe/client_card.h
+8
-0
gframe/client_field.cpp
gframe/client_field.cpp
+1
-2
gframe/data_manager.cpp
gframe/data_manager.cpp
+16
-6
gframe/data_manager.h
gframe/data_manager.h
+1
-1
gframe/deck_con.cpp
gframe/deck_con.cpp
+6
-6
gframe/deck_manager.cpp
gframe/deck_manager.cpp
+1
-1
gframe/replay.cpp
gframe/replay.cpp
+4
-8
gframe/replay.h
gframe/replay.h
+14
-17
No files found.
gframe/client_card.h
View file @
61477d92
...
@@ -14,6 +14,14 @@ using CardData = card_data;
...
@@ -14,6 +14,14 @@ using CardData = card_data;
struct
CardDataC
:
card_data
{
struct
CardDataC
:
card_data
{
unsigned
int
ot
{};
unsigned
int
ot
{};
unsigned
int
category
{};
unsigned
int
category
{};
bool
is_setcodes
(
std
::
vector
<
uint32
>
values
)
const
{
for
(
auto
&
value
:
values
)
{
if
(
is_setcode
(
value
))
return
true
;
}
return
false
;
}
};
};
struct
CardString
{
struct
CardString
{
std
::
wstring
name
;
std
::
wstring
name
;
...
...
gframe/client_field.cpp
View file @
61477d92
...
@@ -693,8 +693,7 @@ void ClientField::ShowSelectOption(int select_hint) {
...
@@ -693,8 +693,7 @@ void ClientField::ShowSelectOption(int select_hint) {
pos
.
LowerRightCorner
.
Y
=
pos
.
UpperLeftCorner
.
Y
+
newheight
;
pos
.
LowerRightCorner
.
Y
=
pos
.
UpperLeftCorner
.
Y
+
newheight
;
mainGame
->
wOptions
->
setRelativePosition
(
pos
);
mainGame
->
wOptions
->
setRelativePosition
(
pos
);
}
else
{
}
else
{
mainGame
->
SetStaticText
(
mainGame
->
stOptions
,
310
,
mainGame
->
guiFont
,
mainGame
->
SetStaticText
(
mainGame
->
stOptions
,
310
,
mainGame
->
guiFont
,
dataManager
.
GetDesc
(
select_options
[
0
]));
(
wchar_t
*
)
dataManager
.
GetDesc
(
select_options
[
0
]));
mainGame
->
stOptions
->
setVisible
(
true
);
mainGame
->
stOptions
->
setVisible
(
true
);
mainGame
->
btnOptionp
->
setVisible
(
false
);
mainGame
->
btnOptionp
->
setVisible
(
false
);
mainGame
->
btnOptionn
->
setVisible
(
count
>
1
);
mainGame
->
btnOptionn
->
setVisible
(
count
>
1
);
...
...
gframe/data_manager.cpp
View file @
61477d92
...
@@ -308,17 +308,27 @@ const wchar_t* DataManager::GetSetName(int code) {
...
@@ -308,17 +308,27 @@ const wchar_t* DataManager::GetSetName(int code) {
return
NULL
;
return
NULL
;
return
csit
->
second
.
c_str
();
return
csit
->
second
.
c_str
();
}
}
unsigned
int
DataManager
::
GetSetCode
(
const
wchar_t
*
setname
)
{
std
::
vector
<
unsigned
int
>
DataManager
::
GetSetCodes
(
std
::
wstring
setname
)
{
std
::
vector
<
unsigned
int
>
matchingCodes
;
for
(
auto
csit
=
_setnameStrings
.
begin
();
csit
!=
_setnameStrings
.
end
();
++
csit
)
{
for
(
auto
csit
=
_setnameStrings
.
begin
();
csit
!=
_setnameStrings
.
end
();
++
csit
)
{
auto
xpos
=
csit
->
second
.
find_first_of
(
L'|'
);
//setname|another setname or extra info
auto
xpos
=
csit
->
second
.
find_first_of
(
L'|'
);
//setname|another setname or extra info
if
(
csit
->
second
.
compare
(
0
,
xpos
,
setname
)
==
0
||
csit
->
second
.
compare
(
xpos
+
1
,
csit
->
second
.
length
(),
setname
)
==
0
#ifndef YGOPRO_SERVER_MODE
#ifndef YGOPRO_SERVER_MODE
||
mainGame
->
CheckRegEx
(
csit
->
second
,
setname
,
true
)
if
(
mainGame
->
CheckRegEx
(
csit
->
second
,
setname
,
true
))
{
matchingCodes
.
push_back
(
csit
->
first
);
}
else
#endif
#endif
)
if
(
setname
.
size
()
<
2
)
{
return
csit
->
first
;
if
(
csit
->
second
.
compare
(
0
,
xpos
,
setname
)
==
0
||
csit
->
second
.
compare
(
xpos
+
1
,
csit
->
second
.
length
(),
setname
)
==
0
)
matchingCodes
.
push_back
(
csit
->
first
);
}
else
{
if
(
csit
->
second
.
substr
(
0
,
xpos
).
find
(
setname
)
!=
std
::
wstring
::
npos
||
csit
->
second
.
substr
(
xpos
+
1
).
find
(
setname
)
!=
std
::
wstring
::
npos
)
{
matchingCodes
.
push_back
(
csit
->
first
);
}
}
}
}
return
0
;
return
matchingCodes
;
}
}
const
wchar_t
*
DataManager
::
GetNumString
(
int
num
,
bool
bracket
)
{
const
wchar_t
*
DataManager
::
GetNumString
(
int
num
,
bool
bracket
)
{
if
(
!
bracket
)
if
(
!
bracket
)
...
...
gframe/data_manager.h
View file @
61477d92
...
@@ -38,7 +38,7 @@ public:
...
@@ -38,7 +38,7 @@ public:
const
wchar_t
*
GetVictoryString
(
int
code
);
const
wchar_t
*
GetVictoryString
(
int
code
);
const
wchar_t
*
GetCounterName
(
int
code
);
const
wchar_t
*
GetCounterName
(
int
code
);
const
wchar_t
*
GetSetName
(
int
code
);
const
wchar_t
*
GetSetName
(
int
code
);
unsigned
int
GetSetCode
(
const
wchar_t
*
setname
);
std
::
vector
<
unsigned
int
>
GetSetCodes
(
std
::
wstring
setname
);
const
wchar_t
*
GetNumString
(
int
num
,
bool
bracket
=
false
);
const
wchar_t
*
GetNumString
(
int
num
,
bool
bracket
=
false
);
const
wchar_t
*
FormatLocation
(
int
location
,
int
sequence
);
const
wchar_t
*
FormatLocation
(
int
location
,
int
sequence
);
const
wchar_t
*
FormatAttribute
(
int
attribute
);
const
wchar_t
*
FormatAttribute
(
int
attribute
);
...
...
gframe/deck_con.cpp
View file @
61477d92
...
@@ -1380,14 +1380,14 @@ void DeckBuilder::FilterCards() {
...
@@ -1380,14 +1380,14 @@ void DeckBuilder::FilterCards() {
results
.
clear
();
results
.
clear
();
struct
element_t
{
struct
element_t
{
std
::
wstring
keyword
;
std
::
wstring
keyword
;
unsigned
int
setcode
;
std
::
vector
<
unsigned
int
>
setcodes
;
enum
class
type_t
{
enum
class
type_t
{
all
,
all
,
name
,
name
,
setcode
setcode
}
type
;
}
type
;
bool
exclude
;
bool
exclude
;
element_t
()
:
setcode
(
0
),
type
(
type_t
::
all
),
exclude
(
false
)
{}
element_t
()
:
type
(
type_t
::
all
),
exclude
(
false
)
{}
};
};
const
wchar_t
*
pstr
=
mainGame
->
ebCardName
->
getText
();
const
wchar_t
*
pstr
=
mainGame
->
ebCardName
->
getText
();
std
::
wstring
str
=
std
::
wstring
(
pstr
);
std
::
wstring
str
=
std
::
wstring
(
pstr
);
...
@@ -1428,7 +1428,7 @@ void DeckBuilder::FilterCards() {
...
@@ -1428,7 +1428,7 @@ void DeckBuilder::FilterCards() {
element
.
keyword
=
str
.
substr
(
element_start
,
length
);
element
.
keyword
=
str
.
substr
(
element_start
,
length
);
}
else
}
else
element
.
keyword
=
str
.
substr
(
element_start
);
element
.
keyword
=
str
.
substr
(
element_start
);
element
.
setcode
=
dataManager
.
GetSetCode
(
element
.
keyword
.
c_str
()
);
element
.
setcode
s
=
dataManager
.
GetSetCodes
(
element
.
keyword
);
query_elements
.
push_back
(
element
);
query_elements
.
push_back
(
element
);
if
(
element_end
==
std
::
wstring
::
npos
)
if
(
element_end
==
std
::
wstring
::
npos
)
break
;
break
;
...
@@ -1446,7 +1446,7 @@ void DeckBuilder::FilterCards() {
...
@@ -1446,7 +1446,7 @@ void DeckBuilder::FilterCards() {
}
}
if
(
element_start
<
str
.
size
())
{
if
(
element_start
<
str
.
size
())
{
element
.
keyword
=
str
.
substr
(
element_start
);
element
.
keyword
=
str
.
substr
(
element_start
);
element
.
setcode
=
dataManager
.
GetSetCode
(
element
.
keyword
.
c_str
()
);
element
.
setcode
s
=
dataManager
.
GetSetCodes
(
element
.
keyword
);
query_elements
.
push_back
(
element
);
query_elements
.
push_back
(
element
);
}
}
}
}
...
@@ -1533,7 +1533,7 @@ void DeckBuilder::FilterCards() {
...
@@ -1533,7 +1533,7 @@ void DeckBuilder::FilterCards() {
if
(
elements_iterator
->
type
==
element_t
::
type_t
::
name
)
{
if
(
elements_iterator
->
type
==
element_t
::
type_t
::
name
)
{
match
=
CardNameContains
(
text
.
name
.
c_str
(),
elements_iterator
->
keyword
.
c_str
());
match
=
CardNameContains
(
text
.
name
.
c_str
(),
elements_iterator
->
keyword
.
c_str
());
}
else
if
(
elements_iterator
->
type
==
element_t
::
type_t
::
setcode
)
{
}
else
if
(
elements_iterator
->
type
==
element_t
::
type_t
::
setcode
)
{
match
=
elements_iterator
->
setcode
&&
data
.
is_setcode
(
elements_iterator
->
setcode
);
match
=
data
.
is_setcodes
(
elements_iterator
->
setcodes
);
}
else
{
}
else
{
int
trycode
=
BufferIO
::
GetVal
(
elements_iterator
->
keyword
.
c_str
());
int
trycode
=
BufferIO
::
GetVal
(
elements_iterator
->
keyword
.
c_str
());
bool
tryresult
=
dataManager
.
GetData
(
trycode
,
0
);
bool
tryresult
=
dataManager
.
GetData
(
trycode
,
0
);
...
@@ -1541,7 +1541,7 @@ void DeckBuilder::FilterCards() {
...
@@ -1541,7 +1541,7 @@ void DeckBuilder::FilterCards() {
match
=
CardNameContains
(
text
.
name
.
c_str
(),
elements_iterator
->
keyword
.
c_str
())
match
=
CardNameContains
(
text
.
name
.
c_str
(),
elements_iterator
->
keyword
.
c_str
())
||
text
.
text
.
find
(
elements_iterator
->
keyword
)
!=
std
::
wstring
::
npos
||
text
.
text
.
find
(
elements_iterator
->
keyword
)
!=
std
::
wstring
::
npos
||
mainGame
->
CheckRegEx
(
text
.
text
,
elements_iterator
->
keyword
)
||
mainGame
->
CheckRegEx
(
text
.
text
,
elements_iterator
->
keyword
)
||
(
elements_iterator
->
setcode
&&
data
.
is_setcode
(
elements_iterator
->
setcode
)
);
||
data
.
is_setcodes
(
elements_iterator
->
setcodes
);
}
else
{
}
else
{
match
=
data
.
code
==
trycode
||
data
.
alias
==
trycode
;
match
=
data
.
code
==
trycode
||
data
.
alias
==
trycode
;
}
}
...
...
gframe/deck_manager.cpp
View file @
61477d92
...
@@ -238,7 +238,7 @@ void DeckManager::GetCategoryPath(wchar_t* ret, int index, const wchar_t* text)
...
@@ -238,7 +238,7 @@ void DeckManager::GetCategoryPath(wchar_t* ret, int index, const wchar_t* text)
void
DeckManager
::
GetDeckFile
(
wchar_t
*
ret
,
irr
::
gui
::
IGUIComboBox
*
cbCategory
,
irr
::
gui
::
IGUIComboBox
*
cbDeck
)
{
void
DeckManager
::
GetDeckFile
(
wchar_t
*
ret
,
irr
::
gui
::
IGUIComboBox
*
cbCategory
,
irr
::
gui
::
IGUIComboBox
*
cbDeck
)
{
wchar_t
filepath
[
256
];
wchar_t
filepath
[
256
];
wchar_t
catepath
[
256
];
wchar_t
catepath
[
256
];
wchar_t
*
deckname
=
(
wchar_t
*
)
cbDeck
->
getItem
(
cbDeck
->
getSelected
());
const
wchar_t
*
deckname
=
cbDeck
->
getItem
(
cbDeck
->
getSelected
());
if
(
deckname
!=
NULL
)
{
if
(
deckname
!=
NULL
)
{
GetCategoryPath
(
catepath
,
cbCategory
->
getSelected
(),
cbCategory
->
getText
());
GetCategoryPath
(
catepath
,
cbCategory
->
getSelected
(),
cbCategory
->
getText
());
myswprintf
(
filepath
,
L"%ls/%ls.ydk"
,
catepath
,
deckname
);
myswprintf
(
filepath
,
L"%ls/%ls.ydk"
,
catepath
,
deckname
);
...
...
gframe/replay.cpp
View file @
61477d92
...
@@ -2,16 +2,12 @@
...
@@ -2,16 +2,12 @@
#include "lzma/LzmaLib.h"
#include "lzma/LzmaLib.h"
namespace
ygo
{
namespace
ygo
{
#ifdef YGOPRO_SERVER_MODE
#ifdef YGOPRO_SERVER_MODE
extern
unsigned
short
server_port
;
extern
unsigned
short
server_port
;
extern
unsigned
short
replay_mode
;
extern
unsigned
short
replay_mode
;
#endif
#endif
Replay
::
Replay
()
Replay
::
Replay
()
{
:
fp
(
nullptr
),
pheader
(),
pdata
(
nullptr
),
replay_size
(
0
),
comp_size
(
0
),
is_recording
(
false
),
is_replaying
(
false
)
{
#ifdef _WIN32
recording_fp
=
nullptr
;
#endif
replay_data
=
new
unsigned
char
[
MAX_REPLAY_SIZE
];
replay_data
=
new
unsigned
char
[
MAX_REPLAY_SIZE
];
comp_data
=
new
unsigned
char
[
MAX_COMP_SIZE
];
comp_data
=
new
unsigned
char
[
MAX_COMP_SIZE
];
}
}
...
@@ -188,8 +184,8 @@ void Replay::EndRecord() {
...
@@ -188,8 +184,8 @@ void Replay::EndRecord() {
comp_size
=
MAX_COMP_SIZE
;
comp_size
=
MAX_COMP_SIZE
;
int
ret
=
LzmaCompress
(
comp_data
,
&
comp_size
,
replay_data
,
replay_size
,
pheader
.
props
,
&
propsize
,
5
,
1
<<
24
,
3
,
0
,
2
,
32
,
1
);
int
ret
=
LzmaCompress
(
comp_data
,
&
comp_size
,
replay_data
,
replay_size
,
pheader
.
props
,
&
propsize
,
5
,
1
<<
24
,
3
,
0
,
2
,
32
,
1
);
if
(
ret
!=
SZ_OK
)
{
if
(
ret
!=
SZ_OK
)
{
*
((
int
*
)(
comp_data
))
=
ret
;
std
::
memcpy
(
comp_data
,
&
ret
,
sizeof
ret
)
;
comp_size
=
sizeof
(
ret
)
;
comp_size
=
sizeof
ret
;
}
}
is_recording
=
false
;
is_recording
=
false
;
}
}
...
...
gframe/replay.h
View file @
61477d92
...
@@ -23,16 +23,13 @@ namespace ygo {
...
@@ -23,16 +23,13 @@ namespace ygo {
#endif // YGOPRO_SERVER_MODE
#endif // YGOPRO_SERVER_MODE
struct
ReplayHeader
{
struct
ReplayHeader
{
unsigned
int
id
;
unsigned
int
id
{};
unsigned
int
version
;
unsigned
int
version
{};
unsigned
int
flag
;
unsigned
int
flag
{};
unsigned
int
seed
;
unsigned
int
seed
{};
unsigned
int
datasize
;
unsigned
int
datasize
{};
unsigned
int
start_time
;
unsigned
int
start_time
{};
unsigned
char
props
[
8
];
unsigned
char
props
[
8
]{};
ReplayHeader
()
:
id
(
0
),
version
(
0
),
flag
(
0
),
seed
(
0
),
datasize
(
0
),
start_time
(
0
),
props
{
0
}
{}
};
};
class
Replay
{
class
Replay
{
...
@@ -65,21 +62,21 @@ public:
...
@@ -65,21 +62,21 @@ public:
char
ReadInt8
();
char
ReadInt8
();
void
Rewind
();
void
Rewind
();
FILE
*
fp
;
FILE
*
fp
{
nullptr
}
;
#ifdef _WIN32
#ifdef _WIN32
HANDLE
recording_fp
;
HANDLE
recording_fp
{
nullptr
}
;
#endif
#endif
ReplayHeader
pheader
;
ReplayHeader
pheader
;
unsigned
char
*
replay_data
;
unsigned
char
*
replay_data
;
unsigned
char
*
comp_data
;
unsigned
char
*
comp_data
;
size_t
replay_size
;
size_t
replay_size
{}
;
size_t
comp_size
;
size_t
comp_size
{}
;
private:
private:
unsigned
char
*
pdata
;
unsigned
char
*
pdata
{
nullptr
}
;
bool
is_recording
;
bool
is_recording
{}
;
bool
is_replaying
;
bool
is_replaying
{}
;
};
};
}
}
...
...
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