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
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
YGOPRO-520DIY
ygopro
Commits
0ae64a2d
Commit
0ae64a2d
authored
Dec 10, 2019
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
custom deck count
parent
63fa4417
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
59 additions
and
4 deletions
+59
-4
gframe/deck_manager.cpp
gframe/deck_manager.cpp
+27
-2
gframe/deck_manager.h
gframe/deck_manager.h
+20
-0
gframe/premake4.lua
gframe/premake4.lua
+12
-2
No files found.
gframe/deck_manager.cpp
View file @
0ae64a2d
...
@@ -79,12 +79,21 @@ int DeckManager::CheckDeck(Deck& deck, int lfhash, bool allow_ocg, bool allow_tc
...
@@ -79,12 +79,21 @@ int DeckManager::CheckDeck(Deck& deck, int lfhash, bool allow_ocg, bool allow_tc
if
(
!
list
)
if
(
!
list
)
return
0
;
return
0
;
int
dc
=
0
;
int
dc
=
0
;
#ifdef YGOPRO_SERVER_MODE
if
(
deck
.
main
.
size
()
<
DECKCOUNT_MAIN_MIN
||
deck
.
main
.
size
()
>
DECKCOUNT_MAIN_MAX
)
return
(
DECKERROR_MAINCOUNT
<<
28
)
+
deck
.
main
.
size
();
if
(
deck
.
extra
.
size
()
>
DECKCOUNT_SIDE
)
return
(
DECKERROR_EXTRACOUNT
<<
28
)
+
deck
.
extra
.
size
();
if
(
deck
.
side
.
size
()
>
DECKCOUNT_EXTRA
)
return
(
DECKERROR_SIDECOUNT
<<
28
)
+
deck
.
side
.
size
();
#else
if
(
deck
.
main
.
size
()
<
40
||
deck
.
main
.
size
()
>
60
)
if
(
deck
.
main
.
size
()
<
40
||
deck
.
main
.
size
()
>
60
)
return
(
DECKERROR_MAINCOUNT
<<
28
)
+
deck
.
main
.
size
();
return
(
DECKERROR_MAINCOUNT
<<
28
)
+
deck
.
main
.
size
();
if
(
deck
.
extra
.
size
()
>
15
)
if
(
deck
.
extra
.
size
()
>
15
)
return
(
DECKERROR_EXTRACOUNT
<<
28
)
+
deck
.
extra
.
size
();
return
(
DECKERROR_EXTRACOUNT
<<
28
)
+
deck
.
extra
.
size
();
if
(
deck
.
side
.
size
()
>
15
)
if
(
deck
.
side
.
size
()
>
15
)
return
(
DECKERROR_SIDECOUNT
<<
28
)
+
deck
.
side
.
size
();
return
(
DECKERROR_SIDECOUNT
<<
28
)
+
deck
.
side
.
size
();
#endif
for
(
size_t
i
=
0
;
i
<
deck
.
main
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
deck
.
main
.
size
();
++
i
)
{
code_pointer
cit
=
deck
.
main
[
i
];
code_pointer
cit
=
deck
.
main
[
i
];
...
@@ -148,9 +157,21 @@ int DeckManager::LoadDeck(Deck& deck, int* dbuf, int mainc, int sidec) {
...
@@ -148,9 +157,21 @@ int DeckManager::LoadDeck(Deck& deck, int* dbuf, int mainc, int sidec) {
}
}
if
(
cd
.
type
&
TYPE_TOKEN
)
if
(
cd
.
type
&
TYPE_TOKEN
)
continue
;
continue
;
else
if
(
cd
.
type
&
(
TYPE_FUSION
|
TYPE_SYNCHRO
|
TYPE_XYZ
|
TYPE_LINK
)
&&
deck
.
extra
.
size
()
<
15
)
{
else
if
(
cd
.
type
&
(
TYPE_FUSION
|
TYPE_SYNCHRO
|
TYPE_XYZ
|
TYPE_LINK
)
&&
#ifdef YGOPRO_SERVER_MODE
deck
.
extra
.
size
()
<
DECKCOUNT_EXTRA
#else
deck
.
extra
.
size
()
<
15
#endif
)
{
deck
.
extra
.
push_back
(
dataManager
.
GetCodePointer
(
code
));
//verified by GetData()
deck
.
extra
.
push_back
(
dataManager
.
GetCodePointer
(
code
));
//verified by GetData()
}
else
if
(
deck
.
main
.
size
()
<
60
)
{
}
else
#ifdef YGOPRO_SERVER_MODE
if
(
deck
.
main
.
size
()
<
DECKCOUNT_MAIN_MAX
)
#else
if
(
deck
.
main
.
size
()
<
60
)
#endif
{
deck
.
main
.
push_back
(
dataManager
.
GetCodePointer
(
code
));
deck
.
main
.
push_back
(
dataManager
.
GetCodePointer
(
code
));
}
}
}
}
...
@@ -162,7 +183,11 @@ int DeckManager::LoadDeck(Deck& deck, int* dbuf, int mainc, int sidec) {
...
@@ -162,7 +183,11 @@ int DeckManager::LoadDeck(Deck& deck, int* dbuf, int mainc, int sidec) {
}
}
if
(
cd
.
type
&
TYPE_TOKEN
)
if
(
cd
.
type
&
TYPE_TOKEN
)
continue
;
continue
;
#ifdef YGOPRO_SERVER_MODE
if
(
deck
.
side
.
size
()
<
DECKCOUNT_SIDE
)
#else
if
(
deck
.
side
.
size
()
<
15
)
if
(
deck
.
side
.
size
()
<
15
)
#endif
deck
.
side
.
push_back
(
dataManager
.
GetCodePointer
(
code
));
//verified by GetData()
deck
.
side
.
push_back
(
dataManager
.
GetCodePointer
(
code
));
//verified by GetData()
}
}
return
errorcode
;
return
errorcode
;
...
...
gframe/deck_manager.h
View file @
0ae64a2d
...
@@ -64,4 +64,24 @@ extern DeckManager deckManager;
...
@@ -64,4 +64,24 @@ extern DeckManager deckManager;
}
}
#ifdef YGOPRO_SERVER_MODE
#ifndef DECKCOUNT_MAIN_MIN
#define DECKCOUNT_MAIN_MIN 40
#endif
#ifndef DECKCOUNT_MAIN_MAX
#define DECKCOUNT_MAIN_MAX 60
#endif
#ifndef DECKCOUNT_SIDE
#define DECKCOUNT_SIDE 15
#endif
#ifndef DECKCOUNT_EXTRA
#define DECKCOUNT_EXTRA 15
#endif
#endif //YGOPRO_SERVER_MODE
#endif //DECKMANAGER_H
#endif //DECKMANAGER_H
gframe/premake4.lua
View file @
0ae64a2d
...
@@ -3,8 +3,18 @@ include "lzma/."
...
@@ -3,8 +3,18 @@ include "lzma/."
project
"ygopro"
project
"ygopro"
kind
"ConsoleApp"
kind
"ConsoleApp"
local
mr
=
os.getenv
(
"YGOPRO_DEFAULT_DUEL_RULE"
)
local
params
=
{
if
mr
and
tonumber
(
mr
)
then
defines
{
"DEFAULT_DUEL_RULE="
..
tonumber
(
mr
)
}
end
"DEFAULT_DUEL_RULE"
,
"DECKCOUNT_MAIN_MIN"
,
"DECKCOUNT_MAIN_MAX"
,
"DECKCOUNT_SIDE"
,
"DECKCOUNT_EXTRA"
,
}
for
_
,
param
in
ipairs
(
params
)
do
local
val
=
os.getenv
(
"YGOPRO_"
..
param
)
if
val
and
tonumber
(
val
)
then
defines
{
param
..
"="
..
tonumber
(
val
)
}
end
end
files
{
"gframe.cpp"
,
"config.h"
,
files
{
"gframe.cpp"
,
"config.h"
,
"game.cpp"
,
"game.h"
,
"myfilesystem.h"
,
"game.cpp"
,
"game.h"
,
"myfilesystem.h"
,
...
...
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