Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile
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
Commits
080e39db
Commit
080e39db
authored
Apr 20, 2021
by
mercury233
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add DrawSelField
parent
4bcf5d73
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
84 additions
and
54 deletions
+84
-54
Classes/gframe/drawing.cpp
Classes/gframe/drawing.cpp
+70
-54
Classes/gframe/game.h
Classes/gframe/game.h
+1
-0
Classes/gframe/image_manager.cpp
Classes/gframe/image_manager.cpp
+9
-0
Classes/gframe/image_manager.h
Classes/gframe/image_manager.h
+2
-0
Classes/gframe/materials.cpp
Classes/gframe/materials.cpp
+1
-0
Classes/gframe/materials.h
Classes/gframe/materials.h
+1
-0
mobile/assets/data/textures/link_marker_on_1.png
mobile/assets/data/textures/link_marker_on_1.png
+0
-0
mobile/assets/data/textures/link_marker_on_2.png
mobile/assets/data/textures/link_marker_on_2.png
+0
-0
mobile/assets/data/textures/link_marker_on_3.png
mobile/assets/data/textures/link_marker_on_3.png
+0
-0
mobile/assets/data/textures/link_marker_on_4.png
mobile/assets/data/textures/link_marker_on_4.png
+0
-0
mobile/assets/data/textures/link_marker_on_6.png
mobile/assets/data/textures/link_marker_on_6.png
+0
-0
mobile/assets/data/textures/link_marker_on_7.png
mobile/assets/data/textures/link_marker_on_7.png
+0
-0
mobile/assets/data/textures/link_marker_on_8.png
mobile/assets/data/textures/link_marker_on_8.png
+0
-0
mobile/assets/data/textures/link_marker_on_9.png
mobile/assets/data/textures/link_marker_on_9.png
+0
-0
mobile/assets/data/textures/selfield.png
mobile/assets/data/textures/selfield.png
+0
-0
No files found.
Classes/gframe/drawing.cpp
View file @
080e39db
...
...
@@ -240,6 +240,15 @@ void Game::DrawBackGround() {
if
(
dField
.
hovered_location
!=
0
&&
dField
.
hovered_location
!=
2
&&
dField
.
hovered_location
!=
POSITION_HINT
&&
!
(
dInfo
.
duel_rule
<
4
&&
dField
.
hovered_location
==
LOCATION_MZONE
&&
dField
.
hovered_sequence
>
4
)
&&
!
(
dInfo
.
duel_rule
>=
4
&&
dField
.
hovered_location
==
LOCATION_SZONE
&&
dField
.
hovered_sequence
>
5
))
{
#ifdef _IRR_ANDROID_PLATFORM_
if
(
dField
.
hovered_location
==
LOCATION_MZONE
)
{
ClientCard
*
pcard
=
mainGame
->
dField
.
mzone
[
dField
.
hovered_controler
][
dField
.
hovered_sequence
];
if
(
pcard
&&
pcard
->
type
&
TYPE_LINK
)
{
DrawLinkedZones
(
pcard
);
}
}
DrawSelField
(
dField
.
hovered_controler
,
dField
.
hovered_location
,
dField
.
hovered_sequence
,
imageManager
.
tSelField
,
false
,
true
);
#else
S3DVertex
*
vertex
=
0
;
if
(
dField
.
hovered_location
==
LOCATION_DECK
)
vertex
=
matManager
.
vFieldDeck
[
dField
.
hovered_controler
];
...
...
@@ -272,70 +281,77 @@ void Game::DrawBackGround() {
matManager
.
mSelField
.
DiffuseColor
=
selFieldAlpha
<<
24
;
driver
->
setMaterial
(
matManager
.
mSelField
);
driver
->
drawVertexPrimitiveList
(
v2
,
4
,
matManager
.
iRectangle
,
2
);
#endif
}
}
void
Game
::
DrawSelField
(
int
player
,
int
loc
,
size_t
seq
,
irr
::
video
::
ITexture
*
texture
,
bool
reverse
,
bool
spin
)
{
static
irr
::
core
::
vector3df
act_rot
(
0
,
0
,
0
);
irr
::
core
::
vector3df
t
;
irr
::
core
::
matrix4
im
;
dField
.
GetChainLocation
(
player
,
loc
,
seq
,
&
t
);
t
.
Z
=
spin
?
0.002
f
:
0.001
f
;
im
.
setTranslation
(
t
);
if
(
spin
)
{
act_rot
.
Z
+=
0.02
f
;
im
.
setRotationRadians
(
act_rot
);
}
if
(
reverse
)
{
im
.
setRotationRadians
(
vector3df
(
0
,
0
,
3.1415926
f
));
}
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
matManager
.
mTexture
.
setTexture
(
0
,
texture
);
driver
->
setMaterial
(
matManager
.
mTexture
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vSelField
,
4
,
matManager
.
iRectangle
,
2
);
}
void
Game
::
DrawLinkedZones
(
ClientCard
*
pcard
)
{
int
mark
=
pcard
->
link_marker
;
S3DVertex
*
vertex
=
0
;
S3DVertex
vSelField
[
4
];
matManager
.
mSelField
.
AmbientColor
=
0xff0261a2
;
driver
->
setMaterial
(
matManager
.
mSelField
);
if
(
dField
.
hovered_sequence
<
5
)
{
if
(
mark
&
LINK_MARKER_LEFT
&&
dField
.
hovered_sequence
>
0
)
{
vertex
=
matManager
.
vFieldMzone
[
dField
.
hovered_controler
][
dField
.
hovered_sequence
-
1
];
SetS3DVertex
(
vSelField
,
vertex
[
0
].
Pos
.
X
,
vertex
[
1
].
Pos
.
Y
,
vertex
[
3
].
Pos
.
X
,
vertex
[
2
].
Pos
.
Y
,
0.01
f
,
1
,
0
,
0
,
0
,
0
);
driver
->
drawVertexPrimitiveList
(
vSelField
,
4
,
matManager
.
iRectangle
,
2
);
//ClientCard* pcard2;
int
player
=
dField
.
hovered_controler
;
//int loc = dField.hovered_location;
size_t
seq
=
dField
.
hovered_sequence
;
bool
reverse
=
player
==
1
;
if
(
seq
<
5
)
{
if
(
mark
&
LINK_MARKER_LEFT
&&
seq
>
0
)
{
DrawSelField
(
player
,
LOCATION_MZONE
,
seq
-
1
,
imageManager
.
tSelFieldLinkArrows
[
4
],
reverse
);
//pcard2 = dField.mzone[player][seq - 1];
//if (pcard2 && pcard2->link_marker & LINK_MARKER_RIGHT)
// DrawSelField(player, LOCATION_MZONE, seq, imageManager.tSelFieldLinkArrows[6], reverse);
}
if
(
mark
&
LINK_MARKER_RIGHT
&&
seq
<
4
)
{
DrawSelField
(
player
,
LOCATION_MZONE
,
seq
+
1
,
imageManager
.
tSelFieldLinkArrows
[
6
],
reverse
);
//pcard2 = dField.mzone[player][seq + 1];
//if (pcard2 && pcard2->link_marker & LINK_MARKER_LEFT)
// DrawSelField(player, LOCATION_MZONE, seq, imageManager.tSelFieldLinkArrows[4], reverse);
}
if
(
mark
&
LINK_MARKER_RIGHT
&&
dField
.
hovered_sequence
<
4
)
{
vertex
=
matManager
.
vFieldMzone
[
dField
.
hovered_controler
][
dField
.
hovered_sequence
+
1
];
SetS3DVertex
(
vSelField
,
vertex
[
0
].
Pos
.
X
,
vertex
[
1
].
Pos
.
Y
,
vertex
[
3
].
Pos
.
X
,
vertex
[
2
].
Pos
.
Y
,
0.01
f
,
1
,
0
,
0
,
0
,
0
);
driver
->
drawVertexPrimitiveList
(
vSelField
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
dInfo
.
duel_rule
>=
4
)
{
if
((
mark
&
LINK_MARKER_TOP_LEFT
&&
dField
.
hovered_sequence
==
2
)
||
(
mark
&
LINK_MARKER_TOP
&&
dField
.
hovered_sequence
==
1
)
||
(
mark
&
LINK_MARKER_TOP_RIGHT
&&
dField
.
hovered_sequence
==
0
))
{
vertex
=
matManager
.
vFieldMzone
[
dField
.
hovered_controler
][
5
];
SetS3DVertex
(
vSelField
,
vertex
[
0
].
Pos
.
X
,
vertex
[
1
].
Pos
.
Y
,
vertex
[
3
].
Pos
.
X
,
vertex
[
2
].
Pos
.
Y
,
0.01
f
,
1
,
0
,
0
,
0
,
0
);
driver
->
drawVertexPrimitiveList
(
vSelField
,
4
,
matManager
.
iRectangle
,
2
);
}
if
((
mark
&
LINK_MARKER_TOP_LEFT
&&
dField
.
hovered_sequence
==
4
)
||
(
mark
&
LINK_MARKER_TOP
&&
dField
.
hovered_sequence
==
3
)
||
(
mark
&
LINK_MARKER_TOP_RIGHT
&&
dField
.
hovered_sequence
==
2
))
{
vertex
=
matManager
.
vFieldMzone
[
dField
.
hovered_controler
][
6
];
SetS3DVertex
(
vSelField
,
vertex
[
0
].
Pos
.
X
,
vertex
[
1
].
Pos
.
Y
,
vertex
[
3
].
Pos
.
X
,
vertex
[
2
].
Pos
.
Y
,
0.01
f
,
1
,
0
,
0
,
0
,
0
);
driver
->
drawVertexPrimitiveList
(
vSelField
,
4
,
matManager
.
iRectangle
,
2
);
if
(
mark
&
LINK_MARKER_TOP_RIGHT
&&
seq
==
0
)
DrawSelField
(
player
,
LOCATION_MZONE
,
5
,
imageManager
.
tSelFieldLinkArrows
[
9
],
reverse
);
if
(
mark
&
LINK_MARKER_TOP
&&
seq
==
1
)
DrawSelField
(
player
,
LOCATION_MZONE
,
5
,
imageManager
.
tSelFieldLinkArrows
[
8
],
reverse
);
if
(
mark
&
LINK_MARKER_TOP_LEFT
&&
seq
==
2
)
DrawSelField
(
player
,
LOCATION_MZONE
,
5
,
imageManager
.
tSelFieldLinkArrows
[
7
],
reverse
);
if
(
mark
&
LINK_MARKER_TOP_RIGHT
&&
seq
==
2
)
DrawSelField
(
player
,
LOCATION_MZONE
,
6
,
imageManager
.
tSelFieldLinkArrows
[
9
],
reverse
);
if
(
mark
&
LINK_MARKER_TOP
&&
seq
==
3
)
DrawSelField
(
player
,
LOCATION_MZONE
,
6
,
imageManager
.
tSelFieldLinkArrows
[
8
],
reverse
);
if
(
mark
&
LINK_MARKER_TOP_LEFT
&&
seq
==
4
)
DrawSelField
(
player
,
LOCATION_MZONE
,
6
,
imageManager
.
tSelFieldLinkArrows
[
7
],
reverse
);
}
}
}
else
{
int
swap
=
(
dField
.
hovered_sequence
==
5
)
?
0
:
2
;
if
(
mark
&
LINK_MARKER_BOTTOM_LEFT
)
{
vertex
=
matManager
.
vFieldMzone
[
dField
.
hovered_controler
][
0
+
swap
];
SetS3DVertex
(
vSelField
,
vertex
[
0
].
Pos
.
X
,
vertex
[
1
].
Pos
.
Y
,
vertex
[
3
].
Pos
.
X
,
vertex
[
2
].
Pos
.
Y
,
0.01
f
,
1
,
0
,
0
,
0
,
0
);
driver
->
drawVertexPrimitiveList
(
vSelField
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
mark
&
LINK_MARKER_BOTTOM
)
{
vertex
=
matManager
.
vFieldMzone
[
dField
.
hovered_controler
][
1
+
swap
];
SetS3DVertex
(
vSelField
,
vertex
[
0
].
Pos
.
X
,
vertex
[
1
].
Pos
.
Y
,
vertex
[
3
].
Pos
.
X
,
vertex
[
2
].
Pos
.
Y
,
0.01
f
,
1
,
0
,
0
,
0
,
0
);
driver
->
drawVertexPrimitiveList
(
vSelField
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
mark
&
LINK_MARKER_BOTTOM_RIGHT
)
{
vertex
=
matManager
.
vFieldMzone
[
dField
.
hovered_controler
][
2
+
swap
];
SetS3DVertex
(
vSelField
,
vertex
[
0
].
Pos
.
X
,
vertex
[
1
].
Pos
.
Y
,
vertex
[
3
].
Pos
.
X
,
vertex
[
2
].
Pos
.
Y
,
0.01
f
,
1
,
0
,
0
,
0
,
0
);
driver
->
drawVertexPrimitiveList
(
vSelField
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
mark
&
LINK_MARKER_TOP_LEFT
)
{
vertex
=
matManager
.
vFieldMzone
[
1
-
dField
.
hovered_controler
][
4
-
swap
];
SetS3DVertex
(
vSelField
,
vertex
[
0
].
Pos
.
X
,
vertex
[
1
].
Pos
.
Y
,
vertex
[
3
].
Pos
.
X
,
vertex
[
2
].
Pos
.
Y
,
0.01
f
,
1
,
0
,
0
,
0
,
0
);
driver
->
drawVertexPrimitiveList
(
vSelField
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
mark
&
LINK_MARKER_TOP
)
{
vertex
=
matManager
.
vFieldMzone
[
1
-
dField
.
hovered_controler
][
3
-
swap
];
SetS3DVertex
(
vSelField
,
vertex
[
0
].
Pos
.
X
,
vertex
[
1
].
Pos
.
Y
,
vertex
[
3
].
Pos
.
X
,
vertex
[
2
].
Pos
.
Y
,
0.01
f
,
1
,
0
,
0
,
0
,
0
);
driver
->
drawVertexPrimitiveList
(
vSelField
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
mark
&
LINK_MARKER_TOP_RIGHT
)
{
vertex
=
matManager
.
vFieldMzone
[
1
-
dField
.
hovered_controler
][
2
-
swap
];
SetS3DVertex
(
vSelField
,
vertex
[
0
].
Pos
.
X
,
vertex
[
1
].
Pos
.
Y
,
vertex
[
3
].
Pos
.
X
,
vertex
[
2
].
Pos
.
Y
,
0.01
f
,
1
,
0
,
0
,
0
,
0
);
driver
->
drawVertexPrimitiveList
(
vSelField
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
mark
&
LINK_MARKER_BOTTOM_LEFT
)
DrawSelField
(
player
,
LOCATION_MZONE
,
0
+
swap
,
imageManager
.
tSelFieldLinkArrows
[
1
],
reverse
);
if
(
mark
&
LINK_MARKER_BOTTOM
)
DrawSelField
(
player
,
LOCATION_MZONE
,
1
+
swap
,
imageManager
.
tSelFieldLinkArrows
[
2
],
reverse
);
if
(
mark
&
LINK_MARKER_BOTTOM_RIGHT
)
DrawSelField
(
player
,
LOCATION_MZONE
,
2
+
swap
,
imageManager
.
tSelFieldLinkArrows
[
3
],
reverse
);
if
(
mark
&
LINK_MARKER_TOP_LEFT
)
DrawSelField
(
1
-
player
,
LOCATION_MZONE
,
4
-
swap
,
imageManager
.
tSelFieldLinkArrows
[
7
],
reverse
);
if
(
mark
&
LINK_MARKER_TOP
)
DrawSelField
(
1
-
player
,
LOCATION_MZONE
,
3
-
swap
,
imageManager
.
tSelFieldLinkArrows
[
8
],
reverse
);
if
(
mark
&
LINK_MARKER_TOP_RIGHT
)
DrawSelField
(
1
-
player
,
LOCATION_MZONE
,
2
-
swap
,
imageManager
.
tSelFieldLinkArrows
[
9
],
reverse
);
}
}
...
...
Classes/gframe/game.h
View file @
080e39db
...
...
@@ -140,6 +140,7 @@ public:
void
DrawSelectionLine
(
irr
::
video
::
S3DVertex
*
vec
,
bool
strip
,
int
width
,
float
*
cv
);
void
DrawSelectionLine
(
irr
::
gui
::
IGUIElement
*
element
,
int
width
,
irr
::
video
::
SColor
color
);
void
DrawBackGround
();
void
DrawSelField
(
int
player
,
int
loc
,
size_t
seq
,
irr
::
video
::
ITexture
*
texture
,
bool
reverse
=
false
,
bool
spin
=
false
);
void
DrawLinkedZones
(
ClientCard
*
pcard
);
void
CheckMutual
(
ClientCard
*
pcard
,
int
mark
);
void
DrawCards
();
...
...
Classes/gframe/image_manager.cpp
View file @
080e39db
...
...
@@ -17,6 +17,15 @@ bool ImageManager::Initial(const path dir) {
tTotalAtk
=
driver
->
getTexture
((
dir
+
path
(
"/textures/totalAtk.png"
)).
c_str
());
tChain
=
driver
->
getTexture
((
dir
+
path
(
"/textures/chain.png"
)).
c_str
());
tNegated
=
driver
->
getTexture
((
dir
+
path
(
"/textures/negated.png"
)).
c_str
());
tSelField
=
driver
->
getTexture
((
dir
+
path
(
"/textures/selfield.png"
)).
c_str
());
tSelFieldLinkArrows
[
1
]
=
driver
->
getTexture
((
dir
+
path
(
"/textures/link_marker_on_1.png"
)).
c_str
());
tSelFieldLinkArrows
[
2
]
=
driver
->
getTexture
((
dir
+
path
(
"/textures/link_marker_on_2.png"
)).
c_str
());
tSelFieldLinkArrows
[
3
]
=
driver
->
getTexture
((
dir
+
path
(
"/textures/link_marker_on_3.png"
)).
c_str
());
tSelFieldLinkArrows
[
4
]
=
driver
->
getTexture
((
dir
+
path
(
"/textures/link_marker_on_4.png"
)).
c_str
());
tSelFieldLinkArrows
[
6
]
=
driver
->
getTexture
((
dir
+
path
(
"/textures/link_marker_on_6.png"
)).
c_str
());
tSelFieldLinkArrows
[
7
]
=
driver
->
getTexture
((
dir
+
path
(
"/textures/link_marker_on_7.png"
)).
c_str
());
tSelFieldLinkArrows
[
8
]
=
driver
->
getTexture
((
dir
+
path
(
"/textures/link_marker_on_8.png"
)).
c_str
());
tSelFieldLinkArrows
[
9
]
=
driver
->
getTexture
((
dir
+
path
(
"/textures/link_marker_on_9.png"
)).
c_str
());
tNumber
=
driver
->
getTexture
((
dir
+
path
(
"/textures/number.png"
)).
c_str
());
tLPBar
=
driver
->
getTexture
((
dir
+
path
(
"/textures/lp2.png"
)).
c_str
());
tLPFrame
=
driver
->
getTexture
((
dir
+
path
(
"/textures/lpf.png"
)).
c_str
());
...
...
Classes/gframe/image_manager.h
View file @
080e39db
...
...
@@ -36,6 +36,8 @@ public:
irr
::
video
::
ITexture
*
tTotalAtk
;
irr
::
video
::
ITexture
*
tNegated
;
irr
::
video
::
ITexture
*
tChain
;
irr
::
video
::
ITexture
*
tSelField
;
irr
::
video
::
ITexture
*
tSelFieldLinkArrows
[
10
];
irr
::
video
::
ITexture
*
tNumber
;
irr
::
video
::
ITexture
*
tLPFrame
;
irr
::
video
::
ITexture
*
tLPBar
;
...
...
Classes/gframe/materials.cpp
View file @
080e39db
...
...
@@ -29,6 +29,7 @@ Materials::Materials() {
SetS3DVertex
(
vTotalAtkop
,
6.4
f
,
-
0.1
f
,
7.4
f
,
0.65
f
,
1
,
1
,
0
,
0
,
1
,
1
);
SetS3DVertex
(
vTotalAtkmeT
,
2.5
f
,
0.95
f
,
3.5
f
,
1.65
f
,
1
,
1
,
0
,
0
,
1
,
1
);
SetS3DVertex
(
vTotalAtkopT
,
4.45
f
,
0.4
f
,
5.45
f
,
1.1
f
,
1
,
1
,
0
,
0
,
1
,
1
);
SetS3DVertex
(
vSelField
,
-
0.5
f
,
-
0.5
f
,
0.5
f
,
0.5
f
,
0
,
1
,
0
,
0
,
1
,
1
);
/*
//background grids
...
...
Classes/gframe/materials.h
View file @
080e39db
...
...
@@ -24,6 +24,7 @@ public:
S3DVertex
vFieldSpell
[
4
];
S3DVertex
vFieldSpell1
[
4
];
S3DVertex
vFieldSpell2
[
4
];
S3DVertex
vSelField
[
4
];
//S3DVertex vBackLine[76];
S3DVertex
vFieldDeck
[
2
][
4
];
S3DVertex
vFieldGrave
[
2
][
2
][
4
];
...
...
mobile/assets/data/textures/link_marker_on_1.png
0 → 100644
View file @
080e39db
15.4 KB
mobile/assets/data/textures/link_marker_on_2.png
0 → 100644
View file @
080e39db
16.2 KB
mobile/assets/data/textures/link_marker_on_3.png
0 → 100644
View file @
080e39db
15.2 KB
mobile/assets/data/textures/link_marker_on_4.png
0 → 100644
View file @
080e39db
16.2 KB
mobile/assets/data/textures/link_marker_on_6.png
0 → 100644
View file @
080e39db
16.3 KB
mobile/assets/data/textures/link_marker_on_7.png
0 → 100644
View file @
080e39db
15.3 KB
mobile/assets/data/textures/link_marker_on_8.png
0 → 100644
View file @
080e39db
15.9 KB
mobile/assets/data/textures/link_marker_on_9.png
0 → 100644
View file @
080e39db
15.4 KB
mobile/assets/data/textures/selfield.png
0 → 100644
View file @
080e39db
71.9 KB
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