Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile-Cn-Ko-En
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
fallenstardust
YGOMobile-Cn-Ko-En
Commits
5e515eaa
Commit
5e515eaa
authored
Feb 27, 2025
by
Dark Zane
Committed by
GitHub
Feb 27, 2025
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fallenstardust:master' into master
parents
d9c69731
15a7105b
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
44 additions
and
62 deletions
+44
-62
Classes/gframe/client_field.cpp
Classes/gframe/client_field.cpp
+33
-58
Classes/gframe/client_field.h
Classes/gframe/client_field.h
+1
-0
Classes/gframe/deck_manager.cpp
Classes/gframe/deck_manager.cpp
+4
-3
Classes/gframe/deck_manager.h
Classes/gframe/deck_manager.h
+1
-1
Classes/gframe/materials.h
Classes/gframe/materials.h
+5
-0
No files found.
Classes/gframe/client_field.cpp
View file @
5e515eaa
...
...
@@ -156,6 +156,16 @@ void ClientField::Initial(int player, int deckc, int extrac) {
}
RefreshCardCountDisplay
();
}
void
ClientField
::
ResetSequence
(
std
::
vector
<
ClientCard
*>&
list
,
bool
reset_height
)
{
unsigned
char
seq
=
0
;
for
(
auto
&
pcard
:
list
)
{
pcard
->
sequence
=
seq
++
;
if
(
reset_height
)
{
pcard
->
curPos
.
Z
=
0.01
f
+
0.01
f
*
pcard
->
sequence
;
pcard
->
mTransform
.
setTranslation
(
pcard
->
curPos
);
}
}
}
ClientCard
*
ClientField
::
GetCard
(
int
controler
,
int
location
,
int
sequence
,
int
sub_seq
)
{
std
::
vector
<
ClientCard
*>*
lst
=
0
;
bool
is_xyz
=
(
location
&
LOCATION_OVERLAY
)
!=
0
;
...
...
@@ -207,16 +217,10 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
case
LOCATION_DECK
:
{
if
(
sequence
!=
0
||
deck
[
controler
].
size
()
==
0
)
{
deck
[
controler
].
push_back
(
pcard
);
pcard
->
sequence
=
(
unsigned
char
)(
deck
[
controler
].
size
()
-
1
);
}
else
{
deck
[
controler
].
push_back
(
0
);
for
(
int
i
=
deck
[
controler
].
size
()
-
1
;
i
>
0
;
--
i
)
{
deck
[
controler
][
i
]
=
deck
[
controler
][
i
-
1
];
deck
[
controler
][
i
]
->
sequence
++
;
}
deck
[
controler
][
0
]
=
pcard
;
pcard
->
sequence
=
0
;
deck
[
controler
].
insert
(
deck
[
controler
].
begin
(),
pcard
);
}
ResetSequence
(
deck
[
controler
],
true
);
pcard
->
is_reversed
=
false
;
pcard
->
ClearData
();
pcard
->
ClearTarget
();
...
...
@@ -225,7 +229,7 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
}
case
LOCATION_HAND
:
{
hand
[
controler
].
push_back
(
pcard
);
pcard
->
sequence
=
(
unsigned
char
)(
hand
[
controler
].
size
()
-
1
);
ResetSequence
(
hand
[
controler
],
false
);
break
;
}
case
LOCATION_MZONE
:
{
...
...
@@ -238,30 +242,22 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
}
case
LOCATION_GRAVE
:
{
grave
[
controler
].
push_back
(
pcard
);
pcard
->
sequence
=
(
unsigned
char
)(
grave
[
controler
].
size
()
-
1
);
ResetSequence
(
grave
[
controler
],
false
);
break
;
}
case
LOCATION_REMOVED
:
{
remove
[
controler
].
push_back
(
pcard
);
pcard
->
sequence
=
(
unsigned
char
)(
remove
[
controler
].
size
()
-
1
);
ResetSequence
(
remove
[
controler
],
false
);
break
;
}
case
LOCATION_EXTRA
:
{
if
(
extra_p_count
[
controler
]
==
0
||
(
pcard
->
position
&
POS_FACEUP
))
{
extra
[
controler
].
push_back
(
pcard
);
pcard
->
sequence
=
(
unsigned
char
)(
extra
[
controler
].
size
()
-
1
);
}
else
{
extra
[
controler
].
push_back
(
0
);
int
p
=
extra
[
controler
].
size
()
-
extra_p_count
[
controler
]
-
1
;
for
(
int
i
=
extra
[
controler
].
size
()
-
1
;
i
>
p
;
--
i
)
{
extra
[
controler
][
i
]
=
extra
[
controler
][
i
-
1
];
extra
[
controler
][
i
]
->
sequence
++
;
extra
[
controler
][
i
]
->
curPos
+=
irr
::
core
::
vector3df
(
0
,
0
,
0.01
f
);
extra
[
controler
][
i
]
->
mTransform
.
setTranslation
(
extra
[
controler
][
i
]
->
curPos
);
}
extra
[
controler
][
p
]
=
pcard
;
pcard
->
sequence
=
p
;
size_t
faceup_begin
=
extra
[
controler
].
size
()
-
extra_p_count
[
controler
];
extra
[
controler
].
insert
(
extra
[
controler
].
begin
()
+
faceup_begin
,
pcard
);
}
ResetSequence
(
extra
[
controler
],
true
);
if
(
pcard
->
position
&
POS_FACEUP
)
extra_p_count
[
controler
]
++
;
break
;
...
...
@@ -270,73 +266,52 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
RefreshCardCountDisplay
();
}
ClientCard
*
ClientField
::
RemoveCard
(
int
controler
,
int
location
,
int
sequence
)
{
ClientCard
*
pcard
=
0
;
ClientCard
*
pcard
=
nullptr
;
switch
(
location
)
{
case
LOCATION_DECK
:
{
pcard
=
deck
[
controler
][
sequence
];
for
(
size_t
i
=
sequence
;
i
<
deck
[
controler
].
size
()
-
1
;
++
i
)
{
deck
[
controler
][
i
]
=
deck
[
controler
][
i
+
1
];
deck
[
controler
][
i
]
->
sequence
--
;
deck
[
controler
][
i
]
->
curPos
-=
irr
::
core
::
vector3df
(
0
,
0
,
0.01
f
);
deck
[
controler
][
i
]
->
mTransform
.
setTranslation
(
deck
[
controler
][
i
]
->
curPos
);
}
deck
[
controler
].
erase
(
deck
[
controler
].
end
()
-
1
);
deck
[
controler
].
erase
(
deck
[
controler
].
begin
()
+
sequence
);
ResetSequence
(
deck
[
controler
],
true
);
break
;
}
case
LOCATION_HAND
:
{
pcard
=
hand
[
controler
][
sequence
];
for
(
size_t
i
=
sequence
;
i
<
hand
[
controler
].
size
()
-
1
;
++
i
)
{
hand
[
controler
][
i
]
=
hand
[
controler
][
i
+
1
];
hand
[
controler
][
i
]
->
sequence
--
;
}
hand
[
controler
].
erase
(
hand
[
controler
].
end
()
-
1
);
hand
[
controler
].
erase
(
hand
[
controler
].
begin
()
+
sequence
);
ResetSequence
(
hand
[
controler
],
false
);
break
;
}
case
LOCATION_MZONE
:
{
pcard
=
mzone
[
controler
][
sequence
];
mzone
[
controler
][
sequence
]
=
0
;
mzone
[
controler
][
sequence
]
=
nullptr
;
break
;
}
case
LOCATION_SZONE
:
{
pcard
=
szone
[
controler
][
sequence
];
szone
[
controler
][
sequence
]
=
0
;
szone
[
controler
][
sequence
]
=
nullptr
;
break
;
}
case
LOCATION_GRAVE
:
{
pcard
=
grave
[
controler
][
sequence
];
for
(
size_t
i
=
sequence
;
i
<
grave
[
controler
].
size
()
-
1
;
++
i
)
{
grave
[
controler
][
i
]
=
grave
[
controler
][
i
+
1
];
grave
[
controler
][
i
]
->
sequence
--
;
grave
[
controler
][
i
]
->
curPos
-=
irr
::
core
::
vector3df
(
0
,
0
,
0.01
f
);
grave
[
controler
][
i
]
->
mTransform
.
setTranslation
(
grave
[
controler
][
i
]
->
curPos
);
}
grave
[
controler
].
erase
(
grave
[
controler
].
end
()
-
1
);
grave
[
controler
].
erase
(
grave
[
controler
].
begin
()
+
sequence
);
ResetSequence
(
grave
[
controler
],
true
);
break
;
}
case
LOCATION_REMOVED
:
{
pcard
=
remove
[
controler
][
sequence
];
for
(
size_t
i
=
sequence
;
i
<
remove
[
controler
].
size
()
-
1
;
++
i
)
{
remove
[
controler
][
i
]
=
remove
[
controler
][
i
+
1
];
remove
[
controler
][
i
]
->
sequence
--
;
remove
[
controler
][
i
]
->
curPos
-=
irr
::
core
::
vector3df
(
0
,
0
,
0.01
f
);
remove
[
controler
][
i
]
->
mTransform
.
setTranslation
(
remove
[
controler
][
i
]
->
curPos
);
}
remove
[
controler
].
erase
(
remove
[
controler
].
end
()
-
1
);
remove
[
controler
].
erase
(
remove
[
controler
].
begin
()
+
sequence
);
ResetSequence
(
remove
[
controler
],
true
);
break
;
}
case
LOCATION_EXTRA
:
{
pcard
=
extra
[
controler
][
sequence
];
for
(
size_t
i
=
sequence
;
i
<
extra
[
controler
].
size
()
-
1
;
++
i
)
{
extra
[
controler
][
i
]
=
extra
[
controler
][
i
+
1
];
extra
[
controler
][
i
]
->
sequence
--
;
extra
[
controler
][
i
]
->
curPos
-=
irr
::
core
::
vector3df
(
0
,
0
,
0.01
f
);
extra
[
controler
][
i
]
->
mTransform
.
setTranslation
(
extra
[
controler
][
i
]
->
curPos
);
}
extra
[
controler
].
erase
(
extra
[
controler
].
end
()
-
1
);
extra
[
controler
].
erase
(
extra
[
controler
].
begin
()
+
sequence
);
ResetSequence
(
extra
[
controler
],
true
);
if
(
pcard
->
position
&
POS_FACEUP
)
extra_p_count
[
controler
]
--
;
break
;
}
default:
return
nullptr
;
}
pcard
->
location
=
0
;
RefreshCardCountDisplay
();
...
...
Classes/gframe/client_field.h
View file @
5e515eaa
...
...
@@ -100,6 +100,7 @@ public:
~
ClientField
();
void
Clear
();
void
Initial
(
int
player
,
int
deckc
,
int
extrac
);
void
ResetSequence
(
std
::
vector
<
ClientCard
*>&
list
,
bool
reset_height
);
ClientCard
*
GetCard
(
int
controler
,
int
location
,
int
sequence
,
int
sub_seq
=
0
);
void
AddCard
(
ClientCard
*
pcard
,
int
controler
,
int
location
,
int
sequence
);
ClientCard
*
RemoveCard
(
int
controler
,
int
location
,
int
sequence
);
...
...
Classes/gframe/deck_manager.cpp
View file @
5e515eaa
...
...
@@ -186,11 +186,12 @@ int DeckManager::LoadDeck(Deck& deck, int* dbuf, int mainc, int sidec, bool is_p
return
errorcode
;
}
int
DeckManager
::
LoadDeck
(
Deck
&
deck
,
std
::
istringstream
&
deckStream
,
bool
is_packlist
)
{
int
ct
=
0
,
mainc
=
0
,
sidec
=
0
,
code
=
0
;
size_t
ct
=
0
;
int
mainc
=
0
,
sidec
=
0
,
code
=
0
;
int
cardlist
[
PACK_MAX_SIZE
]{};
bool
is_side
=
false
;
std
::
string
linebuf
;
while
(
std
::
getline
(
deckStream
,
linebuf
,
'\n'
)
&&
ct
<
(
int
)(
sizeof
cardlist
/
sizeof
cardlist
[
0
]))
{
while
(
std
::
getline
(
deckStream
,
linebuf
,
'\n'
)
&&
ct
<
(
sizeof
cardlist
/
sizeof
cardlist
[
0
]))
{
if
(
linebuf
[
0
]
==
'!'
)
{
is_side
=
true
;
continue
;
...
...
@@ -204,7 +205,7 @@ int DeckManager::LoadDeck(Deck& deck, std::istringstream& deckStream, bool is_pa
else
++
mainc
;
}
return
LoadDeck
(
current_
deck
,
cardlist
,
mainc
,
sidec
,
is_packlist
);
return
LoadDeck
(
deck
,
cardlist
,
mainc
,
sidec
,
is_packlist
);
}
bool
DeckManager
::
LoadSide
(
Deck
&
deck
,
int
*
dbuf
,
int
mainc
,
int
sidec
)
{
std
::
unordered_map
<
int
,
int
>
pcount
;
...
...
Classes/gframe/deck_manager.h
View file @
5e515eaa
...
...
@@ -23,7 +23,7 @@ struct Deck {
std
::
vector
<
code_pointer
>
main
;
std
::
vector
<
code_pointer
>
extra
;
std
::
vector
<
code_pointer
>
side
;
Deck
()
{}
Deck
()
=
default
;
Deck
(
const
Deck
&
ndeck
)
{
main
=
ndeck
.
main
;
extra
=
ndeck
.
extra
;
...
...
Classes/gframe/materials.h
View file @
5e515eaa
#ifndef MATERIALS_H
#define MATERIALS_H
#include "config.h"
namespace
ygo
{
...
...
@@ -50,3 +53,5 @@ public:
extern
Materials
matManager
;
}
#endif //MATERIALS_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