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
51983cf5
Commit
51983cf5
authored
Sep 02, 2021
by
mercury233
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert "add CCG support"
This reverts commit
db332d1b
.
parent
773a37c2
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
41 additions
and
50 deletions
+41
-50
gframe/deck_con.cpp
gframe/deck_con.cpp
+3
-5
gframe/deck_manager.cpp
gframe/deck_manager.cpp
+13
-27
gframe/deck_manager.h
gframe/deck_manager.h
+1
-2
gframe/drawing.cpp
gframe/drawing.cpp
+16
-9
gframe/duelclient.cpp
gframe/duelclient.cpp
+1
-1
gframe/game.cpp
gframe/game.cpp
+0
-2
gframe/netserver.cpp
gframe/netserver.cpp
+1
-1
gframe/single_duel.cpp
gframe/single_duel.cpp
+3
-1
gframe/tag_duel.cpp
gframe/tag_duel.cpp
+3
-1
strings.conf
strings.conf
+0
-1
textures/ot.png
textures/ot.png
+0
-0
No files found.
gframe/deck_con.cpp
View file @
51983cf5
...
...
@@ -1448,16 +1448,14 @@ void DeckBuilder::FilterCards() {
if
(
filter_lm
)
{
if
(
filter_lm
<=
3
&&
(
!
filterList
->
count
(
ptr
->
first
)
||
(
*
filterList
).
at
(
ptr
->
first
)
!=
filter_lm
-
1
))
continue
;
if
(
filter_lm
==
4
&&
(
data
.
ot
&
0x3
)
!=
1
)
if
(
filter_lm
==
4
&&
data
.
ot
!=
1
)
continue
;
if
(
filter_lm
==
5
&&
(
data
.
ot
&
0x3
)
!=
2
)
if
(
filter_lm
==
5
&&
data
.
ot
!=
2
)
continue
;
if
(
filter_lm
==
6
&&
(
data
.
ot
&
0x3
)
!=
3
)
if
(
filter_lm
==
6
&&
data
.
ot
!=
3
)
continue
;
if
(
filter_lm
==
7
&&
data
.
ot
!=
4
)
continue
;
if
(
filter_lm
==
8
&&
!
(
data
.
ot
&
0x8
))
continue
;
}
bool
is_target
=
true
;
for
(
auto
elements_iterator
=
query_elements
.
begin
();
elements_iterator
!=
query_elements
.
end
();
++
elements_iterator
)
{
...
...
gframe/deck_manager.cpp
View file @
51983cf5
...
...
@@ -71,24 +71,7 @@ const std::unordered_map<int, int>* DeckManager::GetLFListContent(int lfhash) {
return
&
lit
->
content
;
return
nullptr
;
}
int
DeckManager
::
IsGameRuleDisallowed
(
unsigned
char
hostInfoRule
,
unsigned
int
cardOt
)
{
bool
allow_ocg
=
hostInfoRule
==
0
||
hostInfoRule
==
2
;
// OCG can be used in OCG and OT duels
bool
allow_tcg
=
hostInfoRule
==
1
||
hostInfoRule
==
2
;
// TCG can be used in TCG and OT duels
bool
allow_ccg
=
hostInfoRule
==
0
||
hostInfoRule
==
4
||
hostInfoRule
==
2
;
// CCG can be used in OCG, CCG and OT duels
if
(
!
allow_ocg
&&
(
cardOt
&
0x3
==
0x1
))
return
DECKERROR_OCGONLY
;
if
(
!
allow_tcg
&&
(
cardOt
&
0x3
==
0x2
))
return
DECKERROR_TCGONLY
;
if
(
hostInfoRule
==
4
&&
!
(
cardOt
&
0x8
)
&&
(
cardOt
&
0x3
))
{
// in CCG duels, cards labeled with ither OCG or TCG, but not CCG, would not be allowed.
if
(
cardOt
&
0x3
==
0x2
)
{
return
DECKERROR_TCGONLY
;
}
else
{
return
DECKERROR_OCGONLY
;
}
}
return
0
;
}
int
DeckManager
::
CheckDeck
(
Deck
&
deck
,
int
lfhash
,
unsigned
char
hostInfoRule
)
{
int
DeckManager
::
CheckDeck
(
Deck
&
deck
,
int
lfhash
,
bool
allow_ocg
,
bool
allow_tcg
)
{
std
::
unordered_map
<
int
,
int
>
ccount
;
auto
list
=
GetLFListContent
(
lfhash
);
if
(
!
list
)
...
...
@@ -103,9 +86,10 @@ int DeckManager::CheckDeck(Deck& deck, int lfhash, unsigned char hostInfoRule) {
for
(
size_t
i
=
0
;
i
<
deck
.
main
.
size
();
++
i
)
{
code_pointer
cit
=
deck
.
main
[
i
];
const
int
gameruleDeckError
=
IsGameRuleDisallowed
(
hostInfoRule
,
cit
->
second
.
ot
);
if
(
gameruleDeckError
)
return
(
gameruleDeckError
<<
28
)
+
cit
->
first
;
if
(
!
allow_ocg
&&
(
cit
->
second
.
ot
==
0x1
))
return
(
DECKERROR_OCGONLY
<<
28
)
+
cit
->
first
;
if
(
!
allow_tcg
&&
(
cit
->
second
.
ot
==
0x2
))
return
(
DECKERROR_TCGONLY
<<
28
)
+
cit
->
first
;
if
(
cit
->
second
.
type
&
(
TYPE_FUSION
|
TYPE_SYNCHRO
|
TYPE_XYZ
|
TYPE_TOKEN
|
TYPE_LINK
))
return
(
DECKERROR_EXTRACOUNT
<<
28
);
int
code
=
cit
->
second
.
alias
?
cit
->
second
.
alias
:
cit
->
first
;
...
...
@@ -119,9 +103,10 @@ int DeckManager::CheckDeck(Deck& deck, int lfhash, unsigned char hostInfoRule) {
}
for
(
size_t
i
=
0
;
i
<
deck
.
extra
.
size
();
++
i
)
{
code_pointer
cit
=
deck
.
extra
[
i
];
const
int
gameruleDeckError
=
IsGameRuleDisallowed
(
hostInfoRule
,
cit
->
second
.
ot
);
if
(
gameruleDeckError
)
return
(
gameruleDeckError
<<
28
)
+
cit
->
first
;
if
(
!
allow_ocg
&&
(
cit
->
second
.
ot
==
0x1
))
return
(
DECKERROR_OCGONLY
<<
28
)
+
cit
->
first
;
if
(
!
allow_tcg
&&
(
cit
->
second
.
ot
==
0x2
))
return
(
DECKERROR_TCGONLY
<<
28
)
+
cit
->
first
;
int
code
=
cit
->
second
.
alias
?
cit
->
second
.
alias
:
cit
->
first
;
ccount
[
code
]
++
;
dc
=
ccount
[
code
];
...
...
@@ -133,9 +118,10 @@ int DeckManager::CheckDeck(Deck& deck, int lfhash, unsigned char hostInfoRule) {
}
for
(
size_t
i
=
0
;
i
<
deck
.
side
.
size
();
++
i
)
{
code_pointer
cit
=
deck
.
side
[
i
];
const
int
gameruleDeckError
=
IsGameRuleDisallowed
(
hostInfoRule
,
cit
->
second
.
ot
);
if
(
gameruleDeckError
)
return
(
gameruleDeckError
<<
28
)
+
cit
->
first
;
if
(
!
allow_ocg
&&
(
cit
->
second
.
ot
==
0x1
))
return
(
DECKERROR_OCGONLY
<<
28
)
+
cit
->
first
;
if
(
!
allow_tcg
&&
(
cit
->
second
.
ot
==
0x2
))
return
(
DECKERROR_TCGONLY
<<
28
)
+
cit
->
first
;
int
code
=
cit
->
second
.
alias
?
cit
->
second
.
alias
:
cit
->
first
;
ccount
[
code
]
++
;
dc
=
ccount
[
code
];
...
...
gframe/deck_manager.h
View file @
51983cf5
...
...
@@ -39,8 +39,7 @@ public:
void
LoadLFList
();
const
wchar_t
*
GetLFListName
(
int
lfhash
);
const
std
::
unordered_map
<
int
,
int
>*
GetLFListContent
(
int
lfhash
);
int
IsGameRuleDisallowed
(
unsigned
char
hostInfoRule
,
unsigned
int
cardOt
);
int
CheckDeck
(
Deck
&
deck
,
int
lfhash
,
unsigned
char
hostInfoRule
);
int
CheckDeck
(
Deck
&
deck
,
int
lfhash
,
bool
allow_ocg
,
bool
allow_tcg
);
int
LoadDeck
(
Deck
&
deck
,
int
*
dbuf
,
int
mainc
,
int
sidec
);
bool
LoadSide
(
Deck
&
deck
,
int
*
dbuf
,
int
mainc
,
int
sidec
);
#ifndef YGOPRO_SERVER_MODE
...
...
gframe/drawing.cpp
View file @
51983cf5
...
...
@@ -1105,17 +1105,24 @@ void Game::DrawThumb(code_pointer cp, position2di pos, const std::unordered_map<
break
;
}
}
if
(
cbLimit
->
getSelected
()
>=
4
&&
((
cp
->
second
.
ot
&
0x8
)
||
cp
->
second
.
ot
&
0x3
&&
(
cp
->
second
.
ot
&
0x3
)
!=
0x3
))
{
int
xOffset
=
0
,
yOffset
=
0
;
if
(
cp
->
second
.
ot
&
0x8
)
xOffset
+=
128
;
else
if
((
cp
->
second
.
ot
&
0x3
)
==
0x2
)
{
yOffset
+=
64
;
if
(
cbLimit
->
getSelected
()
>=
4
&&
(
cp
->
second
.
ot
&
gameConf
.
defaultOT
))
{
switch
(
cp
->
second
.
ot
)
{
case
1
:
driver
->
draw2DImage
(
imageManager
.
tOT
,
otloc
,
recti
(
0
,
128
,
128
,
192
),
0
,
0
,
true
);
break
;
case
2
:
driver
->
draw2DImage
(
imageManager
.
tOT
,
otloc
,
recti
(
0
,
192
,
128
,
256
),
0
,
0
,
true
);
break
;
}
if
(
!
deckManager
.
IsGameRuleDisallowed
(
gameConf
.
defaultOT
,
cp
->
second
.
ot
))
{
yOffset
+=
128
;
}
else
if
(
cbLimit
->
getSelected
()
>=
4
||
!
(
cp
->
second
.
ot
&
gameConf
.
defaultOT
))
{
switch
(
cp
->
second
.
ot
)
{
case
1
:
driver
->
draw2DImage
(
imageManager
.
tOT
,
otloc
,
recti
(
0
,
0
,
128
,
64
),
0
,
0
,
true
);
break
;
case
2
:
driver
->
draw2DImage
(
imageManager
.
tOT
,
otloc
,
recti
(
0
,
64
,
128
,
128
),
0
,
0
,
true
);
break
;
}
driver
->
draw2DImage
(
imageManager
.
tOT
,
otloc
,
recti
(
xOffset
,
yOffset
,
128
+
xOffset
,
64
+
yOffset
),
0
,
0
,
true
);
}
}
void
Game
::
DrawDeckBd
()
{
...
...
gframe/duelclient.cpp
View file @
51983cf5
...
...
@@ -421,7 +421,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
wchar_t
msgbuf
[
256
];
myswprintf
(
msgbuf
,
L"%ls%ls
\n
"
,
dataManager
.
GetSysString
(
1226
),
deckManager
.
GetLFListName
(
pkt
->
info
.
lflist
));
str
.
append
(
msgbuf
);
myswprintf
(
msgbuf
,
L"%ls%ls
\n
"
,
dataManager
.
GetSysString
(
1225
),
dataManager
.
GetSysString
(
pkt
->
info
.
rule
==
4
?
1249
:
1240
+
pkt
->
info
.
rule
));
myswprintf
(
msgbuf
,
L"%ls%ls
\n
"
,
dataManager
.
GetSysString
(
1225
),
dataManager
.
GetSysString
(
1240
+
pkt
->
info
.
rule
));
str
.
append
(
msgbuf
);
myswprintf
(
msgbuf
,
L"%ls%ls
\n
"
,
dataManager
.
GetSysString
(
1227
),
dataManager
.
GetSysString
(
1244
+
pkt
->
info
.
mode
));
str
.
append
(
msgbuf
);
...
...
gframe/game.cpp
View file @
51983cf5
...
...
@@ -224,7 +224,6 @@ bool Game::Initialize() {
cbRule
->
addItem
(
dataManager
.
GetSysString
(
1241
));
cbRule
->
addItem
(
dataManager
.
GetSysString
(
1242
));
cbRule
->
addItem
(
dataManager
.
GetSysString
(
1243
));
cbRule
->
addItem
(
dataManager
.
GetSysString
(
1249
));
cbRule
->
setSelected
(
gameConf
.
defaultOT
-
1
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1227
),
rect
<
s32
>
(
20
,
90
,
220
,
110
),
false
,
false
,
wCreateHost
);
cbMatchMode
=
env
->
addComboBox
(
rect
<
s32
>
(
140
,
85
,
300
,
110
),
wCreateHost
);
...
...
@@ -706,7 +705,6 @@ bool Game::Initialize() {
cbLimit
->
addItem
(
dataManager
.
GetSysString
(
1241
));
cbLimit
->
addItem
(
dataManager
.
GetSysString
(
1242
));
cbLimit
->
addItem
(
dataManager
.
GetSysString
(
1243
));
cbLimit
->
addItem
(
dataManager
.
GetSysString
(
1249
));
stAttribute
=
env
->
addStaticText
(
dataManager
.
GetSysString
(
1319
),
rect
<
s32
>
(
10
,
22
+
50
/
6
,
70
,
42
+
50
/
6
),
false
,
false
,
wFilter
);
cbAttribute
=
env
->
addComboBox
(
rect
<
s32
>
(
60
,
20
+
50
/
6
,
190
,
40
+
50
/
6
),
wFilter
,
COMBOBOX_ATTRIBUTE
);
cbAttribute
->
setMaxSelectionRows
(
10
);
...
...
gframe/netserver.cpp
View file @
51983cf5
...
...
@@ -295,7 +295,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, char* data, unsigned int len) {
duel_mode
=
new
TagDuel
();
duel_mode
->
etimer
=
event_new
(
net_evbase
,
0
,
EV_TIMEOUT
|
EV_PERSIST
,
TagDuel
::
TagTimer
,
duel_mode
);
}
if
(
pkt
->
info
.
rule
>
4
)
if
(
pkt
->
info
.
rule
>
3
)
pkt
->
info
.
rule
=
0
;
if
(
pkt
->
info
.
mode
>
2
)
pkt
->
info
.
mode
=
0
;
...
...
gframe/single_duel.cpp
View file @
51983cf5
...
...
@@ -357,7 +357,9 @@ void SingleDuel::PlayerReady(DuelPlayer* dp, bool is_ready) {
if
(
deck_error
[
dp
->
type
])
{
deckerror
=
(
DECKERROR_UNKNOWNCARD
<<
28
)
+
deck_error
[
dp
->
type
];
}
else
{
deckerror
=
deckManager
.
CheckDeck
(
pdeck
[
dp
->
type
],
host_info
.
lflist
,
host_info
.
rule
);
bool
allow_ocg
=
host_info
.
rule
==
0
||
host_info
.
rule
==
2
;
bool
allow_tcg
=
host_info
.
rule
==
1
||
host_info
.
rule
==
2
;
deckerror
=
deckManager
.
CheckDeck
(
pdeck
[
dp
->
type
],
host_info
.
lflist
,
allow_ocg
,
allow_tcg
);
}
}
if
(
deckerror
)
{
...
...
gframe/tag_duel.cpp
View file @
51983cf5
...
...
@@ -335,7 +335,9 @@ void TagDuel::PlayerReady(DuelPlayer* dp, bool is_ready) {
if
(
deck_error
[
dp
->
type
])
{
deckerror
=
(
DECKERROR_UNKNOWNCARD
<<
28
)
+
deck_error
[
dp
->
type
];
}
else
{
deckerror
=
deckManager
.
CheckDeck
(
pdeck
[
dp
->
type
],
host_info
.
lflist
,
host_info
.
rule
);
bool
allow_ocg
=
host_info
.
rule
==
0
||
host_info
.
rule
==
2
;
bool
allow_tcg
=
host_info
.
rule
==
1
||
host_info
.
rule
==
2
;
deckerror
=
deckManager
.
CheckDeck
(
pdeck
[
dp
->
type
],
host_info
.
lflist
,
allow_ocg
,
allow_tcg
);
}
}
if
(
deckerror
)
{
...
...
strings.conf
View file @
51983cf5
...
...
@@ -307,7 +307,6 @@
!
system
1246
TAG
!
system
1247
标准对战
!
system
1248
自定义
!
system
1249
简体中文
!
system
1250
决斗准备
!
system
1251
→决斗者
!
system
1252
→观战
...
...
textures/ot.png
View replaced file @
773a37c2
View file @
51983cf5
9.92 KB
|
W:
|
H:
8.26 KB
|
W:
|
H:
2-up
Swipe
Onion skin
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