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
nanahira
ygopro
Commits
0f5444d2
Commit
0f5444d2
authored
Mar 18, 2017
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update vField
parent
89b00401
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
179 additions
and
432 deletions
+179
-432
gframe/client_field.cpp
gframe/client_field.cpp
+43
-150
gframe/drawing.cpp
gframe/drawing.cpp
+40
-43
gframe/event_handler.cpp
gframe/event_handler.cpp
+31
-36
gframe/materials.cpp
gframe/materials.cpp
+56
-200
gframe/materials.h
gframe/materials.h
+9
-3
No files found.
gframe/client_field.cpp
View file @
0f5444d2
...
...
@@ -15,6 +15,9 @@ ClientField::ClientField() {
hovered_card
=
0
;
clicked_card
=
0
;
highlighting_card
=
0
;
hovered_controler
=
0
;
hovered_location
=
0
;
hovered_sequence
=
0
;
deck_act
=
false
;
grave_act
=
false
;
remove_act
=
false
;
...
...
@@ -716,15 +719,9 @@ void ClientField::GetChainLocation(int controler, int location, int sequence, ir
t
->
Z
=
0
;
switch
((
location
&
0x7f
))
{
case
LOCATION_DECK
:
{
if
(
controler
==
0
)
{
t
->
X
=
(
matManager
.
vFields
[
0
].
Pos
.
X
+
matManager
.
vFields
[
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
0
].
Pos
.
Y
+
matManager
.
vFields
[
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
deck
[
controler
].
size
()
*
0.01
f
+
0.03
f
;
}
else
{
t
->
X
=
(
matManager
.
vFields
[
68
].
Pos
.
X
+
matManager
.
vFields
[
69
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
68
].
Pos
.
Y
+
matManager
.
vFields
[
70
].
Pos
.
Y
)
/
2
;
t
->
X
=
(
matManager
.
vFieldDeck
[
controler
][
0
].
Pos
.
X
+
matManager
.
vFieldDeck
[
controler
][
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFieldDeck
[
controler
][
0
].
Pos
.
Y
+
matManager
.
vFieldDeck
[
controler
][
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
deck
[
controler
].
size
()
*
0.01
f
+
0.03
f
;
}
break
;
}
case
LOCATION_HAND
:
{
...
...
@@ -740,91 +737,33 @@ void ClientField::GetChainLocation(int controler, int location, int sequence, ir
break
;
}
case
LOCATION_MZONE
:
{
if
(
controler
==
0
)
{
t
->
X
=
(
matManager
.
vFields
[
16
].
Pos
.
X
+
matManager
.
vFields
[
17
].
Pos
.
X
)
/
2
+
1.1
f
*
sequence
;
t
->
Y
=
(
matManager
.
vFields
[
16
].
Pos
.
Y
+
matManager
.
vFields
[
18
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.03
f
;
}
else
{
t
->
X
=
(
matManager
.
vFields
[
84
].
Pos
.
X
+
matManager
.
vFields
[
85
].
Pos
.
X
)
/
2
-
1.1
f
*
sequence
;
t
->
Y
=
(
matManager
.
vFields
[
84
].
Pos
.
Y
+
matManager
.
vFields
[
86
].
Pos
.
Y
)
/
2
;
t
->
X
=
(
matManager
.
vFieldMzone
[
controler
][
sequence
][
0
].
Pos
.
X
+
matManager
.
vFieldMzone
[
controler
][
sequence
][
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFieldMzone
[
controler
][
sequence
][
0
].
Pos
.
Y
+
matManager
.
vFieldMzone
[
controler
][
sequence
][
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.03
f
;
}
break
;
}
case
LOCATION_SZONE
:
{
if
(
controler
==
0
)
{
if
(
sequence
<=
4
)
{
t
->
X
=
(
matManager
.
vFields
[
36
].
Pos
.
X
+
matManager
.
vFields
[
37
].
Pos
.
X
)
/
2
+
1.1
f
*
sequence
;
t
->
Y
=
(
matManager
.
vFields
[
36
].
Pos
.
Y
+
matManager
.
vFields
[
38
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.03
f
;
}
else
if
(
sequence
==
5
)
{
t
->
X
=
(
matManager
.
vFields
[
56
].
Pos
.
X
+
matManager
.
vFields
[
57
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
56
].
Pos
.
Y
+
matManager
.
vFields
[
58
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.03
f
;
}
else
if
(
sequence
==
6
)
{
t
->
X
=
(
matManager
.
vFields
[
60
].
Pos
.
X
+
matManager
.
vFields
[
61
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
60
].
Pos
.
Y
+
matManager
.
vFields
[
62
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.03
f
;
}
else
{
t
->
X
=
(
matManager
.
vFields
[
64
].
Pos
.
X
+
matManager
.
vFields
[
65
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
64
].
Pos
.
Y
+
matManager
.
vFields
[
66
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.03
f
;
}
}
else
{
if
(
sequence
<=
4
)
{
t
->
X
=
(
matManager
.
vFields
[
104
].
Pos
.
X
+
matManager
.
vFields
[
105
].
Pos
.
X
)
/
2
-
1.1
f
*
sequence
;
t
->
Y
=
(
matManager
.
vFields
[
104
].
Pos
.
Y
+
matManager
.
vFields
[
106
].
Pos
.
Y
)
/
2
;
t
->
X
=
(
matManager
.
vFieldSzone
[
controler
][
sequence
][
0
].
Pos
.
X
+
matManager
.
vFieldSzone
[
controler
][
sequence
][
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFieldSzone
[
controler
][
sequence
][
0
].
Pos
.
Y
+
matManager
.
vFieldSzone
[
controler
][
sequence
][
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.03
f
;
}
else
if
(
sequence
==
5
)
{
t
->
X
=
(
matManager
.
vFields
[
124
].
Pos
.
X
+
matManager
.
vFields
[
125
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
124
].
Pos
.
Y
+
matManager
.
vFields
[
126
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.03
f
;
}
else
if
(
sequence
==
6
)
{
t
->
X
=
(
matManager
.
vFields
[
128
].
Pos
.
X
+
matManager
.
vFields
[
129
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
128
].
Pos
.
Y
+
matManager
.
vFields
[
130
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.03
f
;
}
else
{
t
->
X
=
(
matManager
.
vFields
[
132
].
Pos
.
X
+
matManager
.
vFields
[
133
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
132
].
Pos
.
Y
+
matManager
.
vFields
[
134
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.03
f
;
}
}
break
;
}
case
LOCATION_GRAVE
:
{
if
(
controler
==
0
)
{
t
->
X
=
(
matManager
.
vFields
[
4
].
Pos
.
X
+
matManager
.
vFields
[
5
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
4
].
Pos
.
Y
+
matManager
.
vFields
[
6
].
Pos
.
Y
)
/
2
;
t
->
X
=
(
matManager
.
vFieldGrave
[
controler
][
0
].
Pos
.
X
+
matManager
.
vFieldGrave
[
controler
][
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFieldGrave
[
controler
][
0
].
Pos
.
Y
+
matManager
.
vFieldGrave
[
controler
][
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
grave
[
controler
].
size
()
*
0.01
f
+
0.03
f
;
}
else
{
t
->
X
=
(
matManager
.
vFields
[
72
].
Pos
.
X
+
matManager
.
vFields
[
73
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
72
].
Pos
.
Y
+
matManager
.
vFields
[
74
].
Pos
.
Y
)
/
2
;
t
->
Z
=
grave
[
controler
].
size
()
*
0.01
f
+
0.03
f
;
}
break
;
}
case
LOCATION_REMOVED
:
{
if
(
controler
==
0
)
{
t
->
X
=
(
matManager
.
vFields
[
12
].
Pos
.
X
+
matManager
.
vFields
[
13
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
12
].
Pos
.
Y
+
matManager
.
vFields
[
14
].
Pos
.
Y
)
/
2
;
t
->
X
=
(
matManager
.
vFieldRemove
[
controler
][
0
].
Pos
.
X
+
matManager
.
vFieldRemove
[
controler
][
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFieldRemove
[
controler
][
0
].
Pos
.
Y
+
matManager
.
vFieldRemove
[
controler
][
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
remove
[
controler
].
size
()
*
0.01
f
+
0.03
f
;
}
else
{
t
->
X
=
(
matManager
.
vFields
[
80
].
Pos
.
X
+
matManager
.
vFields
[
81
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
80
].
Pos
.
Y
+
matManager
.
vFields
[
82
].
Pos
.
Y
)
/
2
;
t
->
Z
=
remove
[
controler
].
size
()
*
0.01
f
+
0.03
f
;
}
break
;
}
case
LOCATION_EXTRA
:
{
if
(
controler
==
0
)
{
t
->
X
=
(
matManager
.
vFields
[
8
].
Pos
.
X
+
matManager
.
vFields
[
9
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
8
].
Pos
.
Y
+
matManager
.
vFields
[
10
].
Pos
.
Y
)
/
2
;
t
->
X
=
(
matManager
.
vFieldExtra
[
controler
][
0
].
Pos
.
X
+
matManager
.
vFieldExtra
[
controler
][
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFieldExtra
[
controler
][
0
].
Pos
.
Y
+
matManager
.
vFieldExtra
[
controler
][
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
extra
[
controler
].
size
()
*
0.01
f
+
0.03
f
;
}
else
{
t
->
X
=
(
matManager
.
vFields
[
76
].
Pos
.
X
+
matManager
.
vFields
[
77
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
76
].
Pos
.
Y
+
matManager
.
vFields
[
78
].
Pos
.
Y
)
/
2
;
t
->
Z
=
extra
[
controler
].
size
()
*
0.01
f
+
0.03
f
;
}
break
;
}
}
...
...
@@ -835,10 +774,10 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
int
location
=
pcard
->
location
;
switch
(
location
)
{
case
LOCATION_DECK
:
{
if
(
controler
==
0
)
{
t
->
X
=
(
matManager
.
vFields
[
0
].
Pos
.
X
+
matManager
.
vFields
[
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
0
].
Pos
.
Y
+
matManager
.
vFields
[
2
].
Pos
.
Y
)
/
2
;
t
->
X
=
(
matManager
.
vFieldDeck
[
controler
][
0
].
Pos
.
X
+
matManager
.
vFieldDeck
[
controler
][
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFieldDeck
[
controler
][
0
].
Pos
.
Y
+
matManager
.
vFieldDeck
[
controler
][
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
if
(
controler
==
0
)
{
if
(
deck_reversed
==
pcard
->
is_reversed
)
{
r
->
X
=
0.0
f
;
r
->
Y
=
3.1415926
f
;
...
...
@@ -849,9 +788,6 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
r
->
Z
=
0.0
f
;
}
}
else
{
t
->
X
=
(
matManager
.
vFields
[
68
].
Pos
.
X
+
matManager
.
vFields
[
69
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
68
].
Pos
.
Y
+
matManager
.
vFields
[
70
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
if
(
deck_reversed
==
pcard
->
is_reversed
)
{
r
->
X
=
0.0
f
;
r
->
Y
=
3.1415926
f
;
...
...
@@ -913,10 +849,10 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
break
;
}
case
LOCATION_MZONE
:
{
if
(
controler
==
0
)
{
t
->
X
=
(
matManager
.
vFields
[
16
].
Pos
.
X
+
matManager
.
vFields
[
17
].
Pos
.
X
)
/
2
+
1.1
f
*
sequence
;
t
->
Y
=
(
matManager
.
vFields
[
16
].
Pos
.
Y
+
matManager
.
vFields
[
18
].
Pos
.
Y
)
/
2
;
t
->
X
=
(
matManager
.
vFieldMzone
[
controler
][
sequence
][
0
].
Pos
.
X
+
matManager
.
vFieldMzone
[
controler
][
sequence
][
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFieldMzone
[
controler
][
sequence
][
0
].
Pos
.
Y
+
matManager
.
vFieldMzone
[
controler
][
sequence
][
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
if
(
controler
==
0
)
{
if
(
pcard
->
position
&
POS_DEFENSE
)
{
r
->
X
=
0.0
f
;
r
->
Z
=
-
3.1415926
f
/
2.0
f
;
...
...
@@ -931,9 +867,6 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
else
r
->
Y
=
0.0
f
;
}
}
else
{
t
->
X
=
(
matManager
.
vFields
[
84
].
Pos
.
X
+
matManager
.
vFields
[
85
].
Pos
.
X
)
/
2
-
1.1
f
*
sequence
;
t
->
Y
=
(
matManager
.
vFields
[
84
].
Pos
.
Y
+
matManager
.
vFields
[
86
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
if
(
pcard
->
position
&
POS_DEFENSE
)
{
r
->
X
=
0.0
f
;
r
->
Z
=
3.1415926
f
/
2.0
f
;
...
...
@@ -951,47 +884,16 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
break
;
}
case
LOCATION_SZONE
:
{
if
(
controler
==
0
)
{
if
(
sequence
<=
4
)
{
t
->
X
=
(
matManager
.
vFields
[
36
].
Pos
.
X
+
matManager
.
vFields
[
37
].
Pos
.
X
)
/
2
+
1.1
f
*
sequence
;
t
->
Y
=
(
matManager
.
vFields
[
36
].
Pos
.
Y
+
matManager
.
vFields
[
38
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
}
else
if
(
sequence
==
5
)
{
t
->
X
=
(
matManager
.
vFields
[
56
].
Pos
.
X
+
matManager
.
vFields
[
57
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
56
].
Pos
.
Y
+
matManager
.
vFields
[
58
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
}
else
if
(
sequence
==
6
)
{
t
->
X
=
(
matManager
.
vFields
[
60
].
Pos
.
X
+
matManager
.
vFields
[
61
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
60
].
Pos
.
Y
+
matManager
.
vFields
[
62
].
Pos
.
Y
)
/
2
;
t
->
X
=
(
matManager
.
vFieldSzone
[
controler
][
sequence
][
0
].
Pos
.
X
+
matManager
.
vFieldSzone
[
controler
][
sequence
][
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFieldSzone
[
controler
][
sequence
][
0
].
Pos
.
Y
+
matManager
.
vFieldSzone
[
controler
][
sequence
][
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
}
else
{
t
->
X
=
(
matManager
.
vFields
[
64
].
Pos
.
X
+
matManager
.
vFields
[
65
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
64
].
Pos
.
Y
+
matManager
.
vFields
[
66
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
}
if
(
controler
==
0
)
{
r
->
X
=
0.0
f
;
r
->
Z
=
0.0
f
;
if
(
pcard
->
position
&
POS_FACEDOWN
)
r
->
Y
=
3.1415926
f
;
else
r
->
Y
=
0.0
f
;
}
else
{
if
(
sequence
<=
4
)
{
t
->
X
=
(
matManager
.
vFields
[
104
].
Pos
.
X
+
matManager
.
vFields
[
105
].
Pos
.
X
)
/
2
-
1.1
f
*
sequence
;
t
->
Y
=
(
matManager
.
vFields
[
104
].
Pos
.
Y
+
matManager
.
vFields
[
106
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
}
else
if
(
sequence
==
5
)
{
t
->
X
=
(
matManager
.
vFields
[
124
].
Pos
.
X
+
matManager
.
vFields
[
125
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
124
].
Pos
.
Y
+
matManager
.
vFields
[
126
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
}
else
if
(
sequence
==
6
)
{
t
->
X
=
(
matManager
.
vFields
[
128
].
Pos
.
X
+
matManager
.
vFields
[
129
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
128
].
Pos
.
Y
+
matManager
.
vFields
[
130
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
}
else
{
t
->
X
=
(
matManager
.
vFields
[
132
].
Pos
.
X
+
matManager
.
vFields
[
133
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
132
].
Pos
.
Y
+
matManager
.
vFields
[
134
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
}
r
->
X
=
0.0
f
;
r
->
Z
=
3.1415926
f
;
if
(
pcard
->
position
&
POS_FACEDOWN
)
...
...
@@ -1001,17 +903,14 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
break
;
}
case
LOCATION_GRAVE
:
{
if
(
controler
==
0
)
{
t
->
X
=
(
matManager
.
vFields
[
4
].
Pos
.
X
+
matManager
.
vFields
[
5
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
4
].
Pos
.
Y
+
matManager
.
vFields
[
6
].
Pos
.
Y
)
/
2
;
t
->
X
=
(
matManager
.
vFieldGrave
[
controler
][
0
].
Pos
.
X
+
matManager
.
vFieldGrave
[
controler
][
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFieldGrave
[
controler
][
0
].
Pos
.
Y
+
matManager
.
vFieldGrave
[
controler
][
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
if
(
controler
==
0
)
{
r
->
X
=
0.0
f
;
r
->
Y
=
0.0
f
;
r
->
Z
=
0.0
f
;
}
else
{
t
->
X
=
(
matManager
.
vFields
[
72
].
Pos
.
X
+
matManager
.
vFields
[
73
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
72
].
Pos
.
Y
+
matManager
.
vFields
[
74
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
r
->
X
=
0.0
f
;
r
->
Y
=
0.0
f
;
r
->
Z
=
3.1415926
f
;
...
...
@@ -1019,10 +918,10 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
break
;
}
case
LOCATION_REMOVED
:
{
if
(
controler
==
0
)
{
t
->
X
=
(
matManager
.
vFields
[
12
].
Pos
.
X
+
matManager
.
vFields
[
13
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
12
].
Pos
.
Y
+
matManager
.
vFields
[
14
].
Pos
.
Y
)
/
2
;
t
->
X
=
(
matManager
.
vFieldRemove
[
controler
][
0
].
Pos
.
X
+
matManager
.
vFieldRemove
[
controler
][
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFieldRemove
[
controler
][
0
].
Pos
.
Y
+
matManager
.
vFieldRemove
[
controler
][
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
if
(
controler
==
0
)
{
if
(
pcard
->
position
&
POS_FACEUP
)
{
r
->
X
=
0.0
f
;
r
->
Y
=
0.0
f
;
...
...
@@ -1033,9 +932,6 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
r
->
Z
=
0.0
f
;
}
}
else
{
t
->
X
=
(
matManager
.
vFields
[
80
].
Pos
.
X
+
matManager
.
vFields
[
81
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
80
].
Pos
.
Y
+
matManager
.
vFields
[
82
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
if
(
pcard
->
position
&
POS_FACEUP
)
{
r
->
X
=
0.0
f
;
r
->
Y
=
0.0
f
;
...
...
@@ -1049,19 +945,16 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
break
;
}
case
LOCATION_EXTRA
:
{
if
(
controler
==
0
)
{
t
->
X
=
(
matManager
.
vFields
[
8
].
Pos
.
X
+
matManager
.
vFields
[
9
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
8
].
Pos
.
Y
+
matManager
.
vFields
[
10
].
Pos
.
Y
)
/
2
;
t
->
X
=
(
matManager
.
vFieldExtra
[
controler
][
0
].
Pos
.
X
+
matManager
.
vFieldExtra
[
controler
][
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFieldExtra
[
controler
][
0
].
Pos
.
Y
+
matManager
.
vFieldExtra
[
controler
][
2
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
if
(
controler
==
0
)
{
r
->
X
=
0.0
f
;
if
(
pcard
->
position
&
POS_FACEUP
)
r
->
Y
=
0.0
f
;
else
r
->
Y
=
3.1415926
f
;
r
->
Z
=
0.0
f
;
}
else
{
t
->
X
=
(
matManager
.
vFields
[
76
].
Pos
.
X
+
matManager
.
vFields
[
77
].
Pos
.
X
)
/
2
;
t
->
Y
=
(
matManager
.
vFields
[
76
].
Pos
.
Y
+
matManager
.
vFields
[
78
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
*
sequence
;
r
->
X
=
0.0
f
;
if
(
pcard
->
position
&
POS_FACEUP
)
r
->
Y
=
0.0
f
;
...
...
@@ -1076,15 +969,15 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
}
int
oseq
=
pcard
->
overlayTarget
->
sequence
;
if
(
pcard
->
overlayTarget
->
controler
==
0
)
{
t
->
X
=
(
matManager
.
vField
s
[
16
].
Pos
.
X
+
matManager
.
vFields
[
17
].
Pos
.
X
)
/
2
+
1.1
f
*
oseq
-
0.12
f
+
0.06
f
*
sequence
;
t
->
Y
=
(
matManager
.
vField
s
[
16
].
Pos
.
Y
+
matManager
.
vFields
[
18
].
Pos
.
Y
)
/
2
+
0.05
f
;
t
->
X
=
(
matManager
.
vField
Mzone
[
0
][
oseq
][
0
].
Pos
.
X
+
matManager
.
vFieldMzone
[
0
][
oseq
][
1
].
Pos
.
X
)
/
2
-
0.12
f
+
0.06
f
*
sequence
;
t
->
Y
=
(
matManager
.
vField
Mzone
[
0
][
oseq
][
0
].
Pos
.
Y
+
matManager
.
vFieldMzone
[
0
][
oseq
][
2
].
Pos
.
Y
)
/
2
+
0.05
f
;
t
->
Z
=
0.005
f
+
pcard
->
sequence
*
0.0001
f
;
r
->
X
=
0.0
f
;
r
->
Y
=
0.0
f
;
r
->
Z
=
0.0
f
;
}
else
{
t
->
X
=
(
matManager
.
vField
s
[
84
].
Pos
.
X
+
matManager
.
vFields
[
85
].
Pos
.
X
)
/
2
-
1.1
f
*
oseq
+
0.12
f
-
0.06
f
*
sequence
;
t
->
Y
=
(
matManager
.
vField
s
[
84
].
Pos
.
Y
+
matManager
.
vFields
[
86
].
Pos
.
Y
)
/
2
-
0.05
f
;
t
->
X
=
(
matManager
.
vField
Mzone
[
1
][
oseq
][
0
].
Pos
.
X
+
matManager
.
vFieldMzone
[
1
][
oseq
][
1
].
Pos
.
X
)
/
2
+
0.12
f
-
0.06
f
*
sequence
;
t
->
Y
=
(
matManager
.
vField
Mzone
[
1
][
oseq
][
0
].
Pos
.
Y
+
matManager
.
vFieldMzone
[
1
][
oseq
][
2
].
Pos
.
Y
)
/
2
-
0.05
f
;
t
->
Z
=
0.005
f
+
pcard
->
sequence
*
0.0001
f
;
r
->
X
=
0.0
f
;
r
->
Y
=
0.0
f
;
...
...
gframe/drawing.cpp
View file @
0f5444d2
...
...
@@ -108,22 +108,22 @@ void Game::DrawBackGround() {
unsigned
int
filter
=
0x1
;
for
(
int
i
=
0
;
i
<
5
;
++
i
,
filter
<<=
1
)
{
if
(
dField
.
selectable_field
&
filter
)
DrawSelectionLine
(
&
matManager
.
vFields
[
16
+
i
*
4
],
!
(
dField
.
selected_field
&
filter
),
2
,
cv
);
DrawSelectionLine
(
matManager
.
vFieldMzone
[
0
][
i
],
!
(
dField
.
selected_field
&
filter
),
2
,
cv
);
}
filter
=
0x100
;
for
(
int
i
=
0
;
i
<
8
;
++
i
,
filter
<<=
1
)
{
if
(
dField
.
selectable_field
&
filter
)
DrawSelectionLine
(
&
matManager
.
vFields
[
36
+
i
*
4
],
!
(
dField
.
selected_field
&
filter
),
2
,
cv
);
DrawSelectionLine
(
matManager
.
vFieldSzone
[
0
][
i
],
!
(
dField
.
selected_field
&
filter
),
2
,
cv
);
}
filter
=
0x10000
;
for
(
int
i
=
0
;
i
<
5
;
++
i
,
filter
<<=
1
)
{
if
(
dField
.
selectable_field
&
filter
)
DrawSelectionLine
(
&
matManager
.
vFields
[
84
+
i
*
4
],
!
(
dField
.
selected_field
&
filter
),
2
,
cv
);
DrawSelectionLine
(
matManager
.
vFieldMzone
[
1
][
i
],
!
(
dField
.
selected_field
&
filter
),
2
,
cv
);
}
filter
=
0x1000000
;
for
(
int
i
=
0
;
i
<
8
;
++
i
,
filter
<<=
1
)
{
if
(
dField
.
selectable_field
&
filter
)
DrawSelectionLine
(
&
matManager
.
vFields
[
104
+
i
*
4
],
!
(
dField
.
selected_field
&
filter
),
2
,
cv
);
DrawSelectionLine
(
matManager
.
vFieldSzone
[
1
][
i
],
!
(
dField
.
selected_field
&
filter
),
2
,
cv
);
}
}
//disabled field
...
...
@@ -132,50 +132,47 @@ void Game::DrawBackGround() {
unsigned
int
filter
=
0x1
;
for
(
int
i
=
0
;
i
<
5
;
++
i
,
filter
<<=
1
)
{
if
(
dField
.
disabled_field
&
filter
)
{
driver
->
draw3DLine
(
matManager
.
vField
s
[
16
+
i
*
4
].
Pos
,
matManager
.
vFields
[
16
+
i
*
4
+
3
].
Pos
,
0xffffffff
);
driver
->
draw3DLine
(
matManager
.
vField
s
[
16
+
i
*
4
+
1
].
Pos
,
matManager
.
vFields
[
16
+
i
*
4
+
2
].
Pos
,
0xffffffff
);
driver
->
draw3DLine
(
matManager
.
vField
Mzone
[
0
][
i
][
0
].
Pos
,
matManager
.
vFieldMzone
[
0
][
i
][
3
].
Pos
,
0xffffffff
);
driver
->
draw3DLine
(
matManager
.
vField
Mzone
[
0
][
i
][
1
].
Pos
,
matManager
.
vFieldMzone
[
0
][
i
][
2
].
Pos
,
0xffffffff
);
}
}
filter
=
0x100
;
for
(
int
i
=
0
;
i
<
8
;
++
i
,
filter
<<=
1
)
{
if
(
dField
.
disabled_field
&
filter
)
{
driver
->
draw3DLine
(
matManager
.
vField
s
[
36
+
i
*
4
].
Pos
,
matManager
.
vFields
[
36
+
i
*
4
+
3
].
Pos
,
0xffffffff
);
driver
->
draw3DLine
(
matManager
.
vField
s
[
36
+
i
*
4
+
1
].
Pos
,
matManager
.
vFields
[
36
+
i
*
4
+
2
].
Pos
,
0xffffffff
);
driver
->
draw3DLine
(
matManager
.
vField
Szone
[
0
][
i
][
0
].
Pos
,
matManager
.
vFieldSzone
[
0
][
i
][
3
].
Pos
,
0xffffffff
);
driver
->
draw3DLine
(
matManager
.
vField
Szone
[
0
][
i
][
1
].
Pos
,
matManager
.
vFieldSzone
[
0
][
i
][
2
].
Pos
,
0xffffffff
);
}
}
filter
=
0x10000
;
for
(
int
i
=
0
;
i
<
5
;
++
i
,
filter
<<=
1
)
{
if
(
dField
.
disabled_field
&
filter
)
{
driver
->
draw3DLine
(
matManager
.
vField
s
[
84
+
i
*
4
].
Pos
,
matManager
.
vFields
[
84
+
i
*
4
+
3
].
Pos
,
0xffffffff
);
driver
->
draw3DLine
(
matManager
.
vField
s
[
84
+
i
*
4
+
1
].
Pos
,
matManager
.
vFields
[
84
+
i
*
4
+
2
].
Pos
,
0xffffffff
);
driver
->
draw3DLine
(
matManager
.
vField
Mzone
[
1
][
i
][
0
].
Pos
,
matManager
.
vFieldMzone
[
1
][
i
][
3
].
Pos
,
0xffffffff
);
driver
->
draw3DLine
(
matManager
.
vField
Mzone
[
1
][
i
][
1
].
Pos
,
matManager
.
vFieldMzone
[
1
][
i
][
2
].
Pos
,
0xffffffff
);
}
}
filter
=
0x1000000
;
for
(
int
i
=
0
;
i
<
8
;
++
i
,
filter
<<=
1
)
{
if
(
dField
.
disabled_field
&
filter
)
{
driver
->
draw3DLine
(
matManager
.
vField
s
[
104
+
i
*
4
].
Pos
,
matManager
.
vFields
[
104
+
i
*
4
+
3
].
Pos
,
0xffffffff
);
driver
->
draw3DLine
(
matManager
.
vField
s
[
104
+
i
*
4
+
1
].
Pos
,
matManager
.
vFields
[
104
+
i
*
4
+
2
].
Pos
,
0xffffffff
);
driver
->
draw3DLine
(
matManager
.
vField
Szone
[
1
][
i
][
0
].
Pos
,
matManager
.
vFieldSzone
[
1
][
i
][
3
].
Pos
,
0xffffffff
);
driver
->
draw3DLine
(
matManager
.
vField
Szone
[
1
][
i
][
1
].
Pos
,
matManager
.
vFieldSzone
[
1
][
i
][
2
].
Pos
,
0xffffffff
);
}
}
}
//current sel
if
(
dField
.
hovered_location
!=
0
&&
dField
.
hovered_location
!=
2
&&
dField
.
hovered_location
!=
POSITION_HINT
)
{
int
index
=
0
;
if
(
dField
.
hovered_controler
==
0
)
{
if
(
dField
.
hovered_location
==
LOCATION_DECK
)
index
=
0
;
else
if
(
dField
.
hovered_location
==
LOCATION_MZONE
)
index
=
16
+
dField
.
hovered_sequence
*
4
;
else
if
(
dField
.
hovered_location
==
LOCATION_SZONE
)
index
=
36
+
dField
.
hovered_sequence
*
4
;
else
if
(
dField
.
hovered_location
==
LOCATION_GRAVE
)
index
=
4
;
else
if
(
dField
.
hovered_location
==
LOCATION_REMOVED
)
index
=
12
;
else
if
(
dField
.
hovered_location
==
LOCATION_EXTRA
)
index
=
8
;
}
else
{
if
(
dField
.
hovered_location
==
LOCATION_DECK
)
index
=
68
;
else
if
(
dField
.
hovered_location
==
LOCATION_MZONE
)
index
=
84
+
dField
.
hovered_sequence
*
4
;
else
if
(
dField
.
hovered_location
==
LOCATION_SZONE
)
index
=
104
+
dField
.
hovered_sequence
*
4
;
else
if
(
dField
.
hovered_location
==
LOCATION_GRAVE
)
index
=
72
;
else
if
(
dField
.
hovered_location
==
LOCATION_REMOVED
)
index
=
80
;
else
if
(
dField
.
hovered_location
==
LOCATION_EXTRA
)
index
=
76
;
}
S3DVertex
*
vertex
=
0
;
if
(
dField
.
hovered_location
==
LOCATION_DECK
)
vertex
=
matManager
.
vFieldDeck
[
dField
.
hovered_controler
];
else
if
(
dField
.
hovered_location
==
LOCATION_MZONE
)
vertex
=
matManager
.
vFieldMzone
[
dField
.
hovered_controler
][
dField
.
hovered_sequence
];
else
if
(
dField
.
hovered_location
==
LOCATION_SZONE
)
vertex
=
matManager
.
vFieldSzone
[
dField
.
hovered_controler
][
dField
.
hovered_sequence
];
else
if
(
dField
.
hovered_location
==
LOCATION_GRAVE
)
vertex
=
matManager
.
vFieldGrave
[
dField
.
hovered_controler
];
else
if
(
dField
.
hovered_location
==
LOCATION_REMOVED
)
vertex
=
matManager
.
vFieldRemove
[
dField
.
hovered_controler
];
else
if
(
dField
.
hovered_location
==
LOCATION_EXTRA
)
vertex
=
matManager
.
vFieldExtra
[
dField
.
hovered_controler
];
selFieldAlpha
+=
selFieldDAlpha
;
if
(
selFieldAlpha
<=
5
)
{
selFieldAlpha
=
5
;
...
...
@@ -188,7 +185,7 @@ void Game::DrawBackGround() {
matManager
.
mSelField
.
AmbientColor
=
0xffffffff
;
matManager
.
mSelField
.
DiffuseColor
=
selFieldAlpha
<<
24
;
driver
->
setMaterial
(
matManager
.
mSelField
);
driver
->
drawVertexPrimitiveList
(
&
matManager
.
vFields
[
index
]
,
4
,
matManager
.
iRectangle
,
2
);
driver
->
drawVertexPrimitiveList
(
vertex
,
4
,
matManager
.
iRectangle
,
2
);
}
}
void
Game
::
DrawCards
()
{
...
...
@@ -286,44 +283,44 @@ void Game::DrawMisc() {
matManager
.
mTexture
.
setTexture
(
0
,
imageManager
.
tAct
);
driver
->
setMaterial
(
matManager
.
mTexture
);
if
(
dField
.
deck_act
)
{
im
.
setTranslation
(
vector3df
(
matManager
.
vFields
[
0
].
Pos
.
X
-
(
matManager
.
vFields
[
0
].
Pos
.
X
-
matManager
.
vFields
[
1
].
Pos
.
X
)
/
2
,
matManager
.
vFields
[
0
].
Pos
.
Y
-
(
matManager
.
vFields
[
0
].
Pos
.
Y
-
matManager
.
vFields
[
3
].
Pos
.
Y
)
/
2
,
dField
.
deck
[
0
].
size
()
*
0.01
f
+
0.02
f
));
im
.
setTranslation
(
vector3df
(
(
matManager
.
vFieldDeck
[
0
][
0
].
Pos
.
X
+
matManager
.
vFieldDeck
[
0
][
1
].
Pos
.
X
)
/
2
,
(
matManager
.
vFieldDeck
[
0
][
0
].
Pos
.
Y
+
matManager
.
vFieldDeck
[
0
][
2
].
Pos
.
Y
)
/
2
,
dField
.
deck
[
0
].
size
()
*
0.01
f
+
0.02
f
));
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
dField
.
grave_act
)
{
im
.
setTranslation
(
vector3df
(
matManager
.
vFields
[
4
].
Pos
.
X
-
(
matManager
.
vFields
[
4
].
Pos
.
X
-
matManager
.
vFields
[
5
].
Pos
.
X
)
/
2
,
matManager
.
vFields
[
4
].
Pos
.
Y
-
(
matManager
.
vFields
[
4
].
Pos
.
Y
-
matManager
.
vFields
[
6
].
Pos
.
Y
)
/
2
,
dField
.
grave
[
0
].
size
()
*
0.01
f
+
0.02
f
));
im
.
setTranslation
(
vector3df
(
(
matManager
.
vFieldGrave
[
0
][
0
].
Pos
.
X
+
matManager
.
vFieldGrave
[
0
][
1
].
Pos
.
X
)
/
2
,
(
matManager
.
vFieldGrave
[
0
][
0
].
Pos
.
Y
+
matManager
.
vFieldGrave
[
0
][
2
].
Pos
.
Y
)
/
2
,
dField
.
grave
[
0
].
size
()
*
0.01
f
+
0.02
f
));
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
dField
.
remove_act
)
{
im
.
setTranslation
(
vector3df
(
matManager
.
vFields
[
12
].
Pos
.
X
-
(
matManager
.
vFields
[
12
].
Pos
.
X
-
matManager
.
vFields
[
13
].
Pos
.
X
)
/
2
,
matManager
.
vFields
[
12
].
Pos
.
Y
-
(
matManager
.
vFields
[
12
].
Pos
.
Y
-
matManager
.
vFields
[
14
].
Pos
.
Y
)
/
2
,
dField
.
remove
[
0
].
size
()
*
0.01
f
+
0.02
f
));
im
.
setTranslation
(
vector3df
(
(
matManager
.
vFieldRemove
[
0
][
0
].
Pos
.
X
+
matManager
.
vFieldRemove
[
0
][
1
].
Pos
.
X
)
/
2
,
(
matManager
.
vFieldRemove
[
0
][
0
].
Pos
.
Y
+
matManager
.
vFieldRemove
[
0
][
2
].
Pos
.
Y
)
/
2
,
dField
.
remove
[
0
].
size
()
*
0.01
f
+
0.02
f
));
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
dField
.
extra_act
)
{
im
.
setTranslation
(
vector3df
(
matManager
.
vFields
[
8
].
Pos
.
X
-
(
matManager
.
vFields
[
8
].
Pos
.
X
-
matManager
.
vFields
[
9
].
Pos
.
X
)
/
2
,
matManager
.
vFields
[
8
].
Pos
.
Y
-
(
matManager
.
vFields
[
8
].
Pos
.
Y
-
matManager
.
vFields
[
10
].
Pos
.
Y
)
/
2
,
dField
.
extra
[
0
].
size
()
*
0.01
f
+
0.02
f
));
im
.
setTranslation
(
vector3df
(
(
matManager
.
vFieldExtra
[
0
][
0
].
Pos
.
X
+
matManager
.
vFieldExtra
[
0
][
1
].
Pos
.
X
)
/
2
,
(
matManager
.
vFieldExtra
[
0
][
0
].
Pos
.
Y
+
matManager
.
vFieldExtra
[
0
][
2
].
Pos
.
Y
)
/
2
,
dField
.
extra
[
0
].
size
()
*
0.01
f
+
0.02
f
));
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
dField
.
pzone_act
[
0
])
{
im
.
setTranslation
(
vector3df
(
matManager
.
vFields
[
60
].
Pos
.
X
-
(
matManager
.
vFields
[
60
].
Pos
.
X
-
matManager
.
vFields
[
61
].
Pos
.
X
)
/
2
,
matManager
.
vFields
[
60
].
Pos
.
Y
-
(
matManager
.
vFields
[
60
].
Pos
.
Y
-
matManager
.
vFields
[
62
].
Pos
.
Y
)
/
2
,
0.03
f
));
im
.
setTranslation
(
vector3df
(
(
matManager
.
vFieldSzone
[
0
][
6
][
0
].
Pos
.
X
+
matManager
.
vFieldSzone
[
0
][
6
][
0
].
Pos
.
X
)
/
2
,
(
matManager
.
vFieldSzone
[
0
][
6
][
0
].
Pos
.
Y
+
matManager
.
vFieldSzone
[
0
][
6
][
2
].
Pos
.
Y
)
/
2
,
0.03
f
));
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
dField
.
pzone_act
[
1
])
{
im
.
setTranslation
(
vector3df
(
matManager
.
vFields
[
128
].
Pos
.
X
-
(
matManager
.
vFields
[
128
].
Pos
.
X
-
matManager
.
vFields
[
129
].
Pos
.
X
)
/
2
,
matManager
.
vFields
[
128
].
Pos
.
Y
-
(
matManager
.
vFields
[
128
].
Pos
.
Y
-
matManager
.
vFields
[
130
].
Pos
.
Y
)
/
2
,
0.03
f
));
im
.
setTranslation
(
vector3df
(
(
matManager
.
vFieldSzone
[
0
][
7
][
0
].
Pos
.
X
+
matManager
.
vFieldSzone
[
0
][
7
][
0
].
Pos
.
X
)
/
2
,
(
matManager
.
vFieldSzone
[
0
][
7
][
0
].
Pos
.
Y
+
matManager
.
vFieldSzone
[
0
][
7
][
2
].
Pos
.
Y
)
/
2
,
0.03
f
));
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
if
(
dField
.
conti_act
)
{
im
.
setTranslation
(
vector3df
(
matManager
.
vFields
[
136
].
Pos
.
X
-
(
matManager
.
vFields
[
136
].
Pos
.
X
-
matManager
.
vFields
[
137
].
Pos
.
X
)
/
2
,
matManager
.
vFields
[
136
].
Pos
.
Y
-
(
matManager
.
vFields
[
136
].
Pos
.
Y
-
matManager
.
vFields
[
138
].
Pos
.
Y
)
/
2
,
0.03
f
));
im
.
setTranslation
(
vector3df
(
(
matManager
.
vFieldContiAct
[
0
].
X
+
matManager
.
vFieldContiAct
[
1
].
X
)
/
2
,
(
matManager
.
vFieldContiAct
[
0
].
Y
+
matManager
.
vFieldContiAct
[
2
].
Y
)
/
2
,
0.03
f
));
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
...
...
gframe/event_handler.cpp
View file @
0f5444d2
...
...
@@ -2057,90 +2057,85 @@ void ClientField::GetHoverField(int x, int y) {
double
boardx
=
4.2
+
7.8
*
screenx
/
vlen
/
cos
(
angle
);
double
boardy
=
8.0
-
7.8
*
tan
(
angle
);
hovered_location
=
0
;
if
(
boardx
>=
matManager
.
vField
s
[
8
].
Pos
.
X
&&
boardx
<=
matManager
.
vFields
[
9
].
Pos
.
X
)
{
if
(
boardy
>=
matManager
.
vField
s
[
8
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
10
].
Pos
.
Y
)
{
if
(
boardx
>=
matManager
.
vField
Extra
[
0
][
0
].
Pos
.
X
&&
boardx
<=
matManager
.
vFieldExtra
[
0
][
1
].
Pos
.
X
)
{
if
(
boardy
>=
matManager
.
vField
Extra
[
0
][
0
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldExtra
[
0
][
2
].
Pos
.
Y
)
{
hovered_controler
=
0
;
hovered_location
=
LOCATION_EXTRA
;
}
else
if
(
boardy
>=
matManager
.
vField
s
[
56
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
58
].
Pos
.
Y
)
{
//field
}
else
if
(
boardy
>=
matManager
.
vField
Szone
[
0
][
5
][
0
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldSzone
[
0
][
5
][
2
].
Pos
.
Y
)
{
//field
hovered_controler
=
0
;
hovered_location
=
LOCATION_SZONE
;
hovered_sequence
=
5
;
}
else
if
(
boardy
>=
matManager
.
vField
s
[
60
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
6
2
].
Pos
.
Y
)
{
}
else
if
(
boardy
>=
matManager
.
vField
Szone
[
0
][
6
][
0
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldSzone
[
0
][
6
][
2
].
Pos
.
Y
)
{
hovered_controler
=
0
;
hovered_location
=
LOCATION_SZONE
;
hovered_sequence
=
6
;
}
else
if
(
boardy
>=
matManager
.
vField
s
[
134
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
132
].
Pos
.
Y
)
{
}
else
if
(
boardy
>=
matManager
.
vField
Szone
[
1
][
7
][
2
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldSzone
[
1
][
7
][
0
].
Pos
.
Y
)
{
hovered_controler
=
1
;
hovered_location
=
LOCATION_SZONE
;
hovered_sequence
=
7
;
}
else
if
(
boardy
>=
matManager
.
vField
s
[
74
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
72
].
Pos
.
Y
)
{
}
else
if
(
boardy
>=
matManager
.
vField
Grave
[
1
][
2
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldGrave
[
1
][
0
].
Pos
.
Y
)
{
hovered_controler
=
1
;
hovered_location
=
LOCATION_GRAVE
;
}
else
if
(
boardy
>=
matManager
.
vField
s
[
70
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
68
].
Pos
.
Y
)
{
}
else
if
(
boardy
>=
matManager
.
vField
Deck
[
1
][
2
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldDeck
[
1
][
0
].
Pos
.
Y
)
{
hovered_controler
=
1
;
hovered_location
=
LOCATION_DECK
;
}
}
else
if
(
boardx
>=
matManager
.
vField
s
[
81
].
Pos
.
X
&&
boardx
<=
matManager
.
vFields
[
8
0
].
Pos
.
X
)
{
if
(
boardy
>=
matManager
.
vField
s
[
82
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
8
0
].
Pos
.
Y
)
{
}
else
if
(
boardx
>=
matManager
.
vField
Remove
[
1
][
1
].
Pos
.
X
&&
boardx
<=
matManager
.
vFieldRemove
[
1
][
0
].
Pos
.
X
)
{
if
(
boardy
>=
matManager
.
vField
Remove
[
1
][
2
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldRemove
[
1
][
0
].
Pos
.
Y
)
{
hovered_controler
=
1
;
hovered_location
=
LOCATION_REMOVED
;
}
else
if
(
boardy
>=
matManager
.
vField
s
[
136
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
138
].
Pos
.
Y
)
{
}
else
if
(
boardy
>=
matManager
.
vField
ContiAct
[
0
].
Y
&&
boardy
<=
matManager
.
vFieldContiAct
[
2
]
.
Y
)
{
hovered_controler
=
0
;
hovered_location
=
POSITION_HINT
;
}
}
else
if
(
boardx
>=
matManager
.
vField
s
[
0
].
Pos
.
X
&&
boardx
<=
matManager
.
vFields
[
1
].
Pos
.
X
)
{
if
(
boardy
>=
matManager
.
vField
s
[
0
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
2
].
Pos
.
Y
)
{
}
else
if
(
boardx
>=
matManager
.
vField
Deck
[
0
][
0
].
Pos
.
X
&&
boardx
<=
matManager
.
vFieldDeck
[
0
]
[
1
].
Pos
.
X
)
{
if
(
boardy
>=
matManager
.
vField
Deck
[
0
][
0
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldDeck
[
0
]
[
2
].
Pos
.
Y
)
{
hovered_controler
=
0
;
hovered_location
=
LOCATION_DECK
;
}
else
if
(
boardy
>=
matManager
.
vField
s
[
4
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
6
].
Pos
.
Y
)
{
}
else
if
(
boardy
>=
matManager
.
vField
Grave
[
0
][
0
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldGrave
[
0
][
2
].
Pos
.
Y
)
{
hovered_controler
=
0
;
hovered_location
=
LOCATION_GRAVE
;
}
else
if
(
boardy
>=
matManager
.
vField
s
[
130
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
128
].
Pos
.
Y
)
{
}
else
if
(
boardy
>=
matManager
.
vField
Szone
[
1
][
6
][
2
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldSzone
[
1
][
6
][
0
].
Pos
.
Y
)
{
hovered_controler
=
1
;
hovered_location
=
LOCATION_SZONE
;
hovered_sequence
=
6
;
}
else
if
(
boardy
>=
matManager
.
vField
s
[
64
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
66
].
Pos
.
Y
)
{
}
else
if
(
boardy
>=
matManager
.
vField
Szone
[
0
][
7
][
0
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldSzone
[
0
][
7
][
2
].
Pos
.
Y
)
{
hovered_controler
=
0
;
hovered_location
=
LOCATION_SZONE
;
hovered_sequence
=
7
;
}
else
if
(
boardy
>=
matManager
.
vField
s
[
126
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
124
].
Pos
.
Y
)
{
}
else
if
(
boardy
>=
matManager
.
vField
Szone
[
1
][
5
][
2
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldSzone
[
1
][
5
][
0
].
Pos
.
Y
)
{
hovered_controler
=
1
;
hovered_location
=
LOCATION_SZONE
;
hovered_sequence
=
5
;
}
else
if
(
boardy
>=
matManager
.
vField
s
[
78
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
76
].
Pos
.
Y
)
{
}
else
if
(
boardy
>=
matManager
.
vField
Extra
[
1
][
2
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldExtra
[
1
][
0
].
Pos
.
Y
)
{
hovered_controler
=
1
;
hovered_location
=
LOCATION_EXTRA
;
}
}
else
if
(
boardx
>=
matManager
.
vField
s
[
12
].
Pos
.
X
&&
boardx
<=
matManager
.
vFields
[
13
].
Pos
.
X
)
{
if
(
boardy
>=
matManager
.
vField
s
[
12
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
14
].
Pos
.
Y
)
{
}
else
if
(
boardx
>=
matManager
.
vField
Remove
[
0
][
0
].
Pos
.
X
&&
boardx
<=
matManager
.
vFieldRemove
[
0
][
1
].
Pos
.
X
)
{
if
(
boardy
>=
matManager
.
vField
Remove
[
0
][
0
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldRemove
[
0
][
2
].
Pos
.
Y
)
{
hovered_controler
=
0
;
hovered_location
=
LOCATION_REMOVED
;
}
}
else
if
(
boardx
>=
matManager
.
vFields
[
36
].
Pos
.
X
&&
boardx
<=
matManager
.
vFields
[
55
].
Pos
.
X
)
{
if
(
boardy
>
matManager
.
vFields
[
36
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
38
].
Pos
.
Y
)
{
}
else
if
(
boardx
>=
matManager
.
vFieldMzone
[
0
][
0
][
0
].
Pos
.
X
&&
boardx
<=
matManager
.
vFieldMzone
[
0
][
4
][
1
].
Pos
.
X
)
{
int
sequence
=
(
boardx
-
matManager
.
vFieldMzone
[
0
][
0
][
0
].
Pos
.
X
)
/
(
matManager
.
vFieldMzone
[
0
][
0
][
1
].
Pos
.
X
-
matManager
.
vFieldMzone
[
0
][
0
][
0
].
Pos
.
X
);
if
(
sequence
>
4
)
sequence
=
4
;
if
(
boardy
>
matManager
.
vFieldSzone
[
0
][
0
][
0
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldSzone
[
0
][
0
][
2
].
Pos
.
Y
)
{
hovered_controler
=
0
;
hovered_location
=
LOCATION_SZONE
;
hovered_sequence
=
(
boardx
-
1.2
)
/
1.1
;
if
(
hovered_sequence
>
4
)
hovered_sequence
=
4
;
}
else
if
(
boardy
>=
matManager
.
vFields
[
16
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
35
].
Pos
.
Y
)
{
hovered_sequence
=
sequence
;
}
else
if
(
boardy
>=
matManager
.
vFieldMzone
[
0
][
0
][
0
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldMzone
[
0
][
0
][
2
].
Pos
.
Y
)
{
hovered_controler
=
0
;
hovered_location
=
LOCATION_MZONE
;
hovered_sequence
=
(
boardx
-
1.2
)
/
1.1
;
if
(
hovered_sequence
>
4
)
hovered_sequence
=
4
;
}
else
if
(
boardy
>=
matManager
.
vFields
[
103
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFields
[
84
].
Pos
.
Y
)
{
hovered_sequence
=
sequence
;
}
else
if
(
boardy
>=
matManager
.
vFieldMzone
[
1
][
0
][
2
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldMzone
[
1
][
0
][
0
].
Pos
.
Y
)
{
hovered_controler
=
1
;
hovered_location
=
LOCATION_MZONE
;
hovered_sequence
=
4
-
(
int
)((
boardx
-
1.2
)
/
1.1
);
if
(
hovered_sequence
<
0
)
hovered_sequence
=
0
;
}
else
if
(
boardy
>=
matManager
.
vFields
[
123
].
Pos
.
Y
&&
boardy
<
matManager
.
vFields
[
104
].
Pos
.
Y
)
{
hovered_sequence
=
4
-
sequence
;
}
else
if
(
boardy
>=
matManager
.
vFieldSzone
[
1
][
0
][
2
].
Pos
.
Y
&&
boardy
<
matManager
.
vFieldSzone
[
1
][
0
][
0
].
Pos
.
Y
)
{
hovered_controler
=
1
;
hovered_location
=
LOCATION_SZONE
;
hovered_sequence
=
4
-
(
int
)((
boardx
-
1.2
)
/
1.1
);
if
(
hovered_sequence
<
0
)
hovered_sequence
=
0
;
hovered_sequence
=
4
-
sequence
;
}
}
}
...
...
gframe/materials.cpp
View file @
0f5444d2
...
...
@@ -4,55 +4,28 @@ namespace ygo {
Materials
matManager
;
inline
void
SetS3DVertex
(
S3DVertex
*
v
,
f32
x1
,
f32
y1
,
f32
x2
,
f32
y2
,
f32
z
,
f32
nz
,
f32
tu1
,
f32
tv1
,
f32
tu2
,
f32
tv2
)
{
v
[
0
]
=
S3DVertex
(
x1
,
y1
,
z
,
0
,
0
,
nz
,
SColor
(
255
,
255
,
255
,
255
),
tu1
,
tv1
);
v
[
1
]
=
S3DVertex
(
x2
,
y1
,
z
,
0
,
0
,
nz
,
SColor
(
255
,
255
,
255
,
255
),
tu2
,
tv1
);
v
[
2
]
=
S3DVertex
(
x1
,
y2
,
z
,
0
,
0
,
nz
,
SColor
(
255
,
255
,
255
,
255
),
tu1
,
tv2
);
v
[
3
]
=
S3DVertex
(
x2
,
y2
,
z
,
0
,
0
,
nz
,
SColor
(
255
,
255
,
255
,
255
),
tu2
,
tv2
);
}
Materials
::
Materials
()
{
vCardFront
[
0
]
=
S3DVertex
(
vector3df
(
-
0.35
f
,
-
0.5
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vCardFront
[
1
]
=
S3DVertex
(
vector3df
(
0.35
f
,
-
0.5
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0
));
vCardFront
[
2
]
=
S3DVertex
(
vector3df
(
-
0.35
f
,
0.5
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
1
));
vCardFront
[
3
]
=
S3DVertex
(
vector3df
(
0.35
f
,
0.5
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
1
));
vCardOutline
[
0
]
=
S3DVertex
(
vector3df
(
-
0.375
f
,
-
0.54
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vCardOutline
[
1
]
=
S3DVertex
(
vector3df
(
0.37
f
,
-
0.54
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0
));
vCardOutline
[
2
]
=
S3DVertex
(
vector3df
(
-
0.375
f
,
0.54
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
1
));
vCardOutline
[
3
]
=
S3DVertex
(
vector3df
(
0.37
f
,
0.54
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
1
));
vCardOutliner
[
0
]
=
S3DVertex
(
vector3df
(
0.37
f
,
-
0.54
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vCardOutliner
[
1
]
=
S3DVertex
(
vector3df
(
-
0.375
f
,
-
0.54
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0
));
vCardOutliner
[
2
]
=
S3DVertex
(
vector3df
(
0.37
f
,
0.54
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
1
));
vCardOutliner
[
3
]
=
S3DVertex
(
vector3df
(
-
0.375
f
,
0.54
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
1
));
vCardBack
[
0
]
=
S3DVertex
(
vector3df
(
0.35
f
,
-
0.5
f
,
0
),
vector3df
(
0
,
0
,
-
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vCardBack
[
1
]
=
S3DVertex
(
vector3df
(
-
0.35
f
,
-
0.5
f
,
0
),
vector3df
(
0
,
0
,
-
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0
));
vCardBack
[
2
]
=
S3DVertex
(
vector3df
(
0.35
f
,
0.5
f
,
0
),
vector3df
(
0
,
0
,
-
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
1
));
vCardBack
[
3
]
=
S3DVertex
(
vector3df
(
-
0.35
f
,
0.5
f
,
0
),
vector3df
(
0
,
0
,
-
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
1
));
vSymbol
[
0
]
=
S3DVertex
(
vector3df
(
-
0.35
f
,
-
0.35
f
,
0.01
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vSymbol
[
1
]
=
S3DVertex
(
vector3df
(
0.35
f
,
-
0.35
f
,
0.01
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0
));
vSymbol
[
2
]
=
S3DVertex
(
vector3df
(
-
0.35
f
,
0.35
f
,
0.01
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
1
));
vSymbol
[
3
]
=
S3DVertex
(
vector3df
(
0.35
f
,
0.35
f
,
0.01
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
1
));
vNegate
[
0
]
=
S3DVertex
(
vector3df
(
-
0.25
f
,
-
0.28
f
,
0.01
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vNegate
[
1
]
=
S3DVertex
(
vector3df
(
0.25
f
,
-
0.28
f
,
0.01
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0
));
vNegate
[
2
]
=
S3DVertex
(
vector3df
(
-
0.25
f
,
0.22
f
,
0.01
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
1
));
vNegate
[
3
]
=
S3DVertex
(
vector3df
(
0.25
f
,
0.22
f
,
0.01
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
1
));
vChainNum
[
0
]
=
S3DVertex
(
vector3df
(
-
0.35
f
,
-
0.35
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vChainNum
[
1
]
=
S3DVertex
(
vector3df
(
0.35
f
,
-
0.35
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0.19375
f
,
0
));
vChainNum
[
2
]
=
S3DVertex
(
vector3df
(
-
0.35
f
,
0.35
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0.2421875
f
));
vChainNum
[
3
]
=
S3DVertex
(
vector3df
(
0.35
f
,
0.35
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0.19375
f
,
0.2421875
f
));
vActivate
[
0
]
=
S3DVertex
(
vector3df
(
-
0.5
f
,
-
0.5
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vActivate
[
1
]
=
S3DVertex
(
vector3df
(
0.5
f
,
-
0.5
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0
));
vActivate
[
2
]
=
S3DVertex
(
vector3df
(
-
0.5
f
,
0.5
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
1
));
vActivate
[
3
]
=
S3DVertex
(
vector3df
(
0.5
f
,
0.5
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
1
));
vField
[
0
]
=
S3DVertex
(
vector3df
(
-
1.0
f
,
-
4.0
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vField
[
1
]
=
S3DVertex
(
vector3df
(
9.0
f
,
-
4.0
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0
));
vField
[
2
]
=
S3DVertex
(
vector3df
(
-
1.0
f
,
4.0
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
1
));
vField
[
3
]
=
S3DVertex
(
vector3df
(
9.0
f
,
4.0
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
1
));
vFieldSpell
[
0
]
=
S3DVertex
(
vector3df
(
1.2
f
,
-
3.2
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFieldSpell
[
1
]
=
S3DVertex
(
vector3df
(
6.7
f
,
-
3.2
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0
));
vFieldSpell
[
2
]
=
S3DVertex
(
vector3df
(
1.2
f
,
3.2
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
1
));
vFieldSpell
[
3
]
=
S3DVertex
(
vector3df
(
6.7
f
,
3.2
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
1
));
vFieldSpell1
[
0
]
=
S3DVertex
(
vector3df
(
1.2
f
,
0.8
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0.2
f
));
vFieldSpell1
[
1
]
=
S3DVertex
(
vector3df
(
6.7
f
,
0.8
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0.2
f
));
vFieldSpell1
[
2
]
=
S3DVertex
(
vector3df
(
1.2
f
,
3.2
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0.63636
f
));
vFieldSpell1
[
3
]
=
S3DVertex
(
vector3df
(
6.7
f
,
3.2
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0.63636
f
));
vFieldSpell2
[
0
]
=
S3DVertex
(
vector3df
(
1.2
f
,
-
3.2
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0.63636
f
));
vFieldSpell2
[
1
]
=
S3DVertex
(
vector3df
(
6.7
f
,
-
3.2
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0.63636
f
));
vFieldSpell2
[
2
]
=
S3DVertex
(
vector3df
(
1.2
f
,
-
0.8
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
1
,
0.2
f
));
vFieldSpell2
[
3
]
=
S3DVertex
(
vector3df
(
6.7
f
,
-
0.8
f
,
0
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0.2
f
));
SetS3DVertex
(
vCardFront
,
-
0.35
f
,
-
0.5
f
,
0.35
f
,
0.5
f
,
0
,
1
,
0
,
0
,
1
,
1
);
SetS3DVertex
(
vCardOutline
,
-
0.375
f
,
-
0.54
f
,
0.37
f
,
0.54
f
,
0
,
1
,
0
,
0
,
1
,
1
);
SetS3DVertex
(
vCardOutliner
,
0.37
f
,
-
0.54
f
,
-
0.375
f
,
0.54
f
,
0
,
1
,
0
,
0
,
1
,
1
);
SetS3DVertex
(
vCardBack
,
0.35
f
,
-
0.5
f
,
-
0.35
f
,
0.5
f
,
0
,
-
1
,
0
,
0
,
1
,
1
);
SetS3DVertex
(
vSymbol
,
-
0.35
f
,
-
0.35
f
,
0.35
f
,
0.35
f
,
0.01
f
,
1
,
0
,
0
,
1
,
1
);
SetS3DVertex
(
vNegate
,
-
0.25
f
,
-
0.28
f
,
0.25
f
,
0.22
f
,
0
,
1
,
0
,
0
,
1
,
1
);
SetS3DVertex
(
vChainNum
,
-
0.35
f
,
-
0.35
f
,
0.35
f
,
0.35
f
,
0
,
1
,
0
,
0
,
0.19375
f
,
0.2421875
f
);
SetS3DVertex
(
vActivate
,
-
0.5
f
,
-
0.5
f
,
0.5
f
,
0.5
f
,
0
,
1
,
0
,
0
,
1
,
1
);
SetS3DVertex
(
vField
,
-
1.0
f
,
-
4.0
f
,
9.0
f
,
4.0
f
,
0
,
1
,
0
,
0
,
1
,
1
);
SetS3DVertex
(
vFieldSpell
,
1.2
f
,
-
3.2
f
,
6.7
f
,
3.2
f
,
0
,
1
,
0
,
0
,
1
,
1
);
SetS3DVertex
(
vFieldSpell1
,
1.2
f
,
0.8
f
,
6.7
f
,
3.2
f
,
0
,
1
,
0
,
0.2
f
,
1
,
0.63636
f
);
SetS3DVertex
(
vFieldSpell2
,
1.2
f
,
-
3.2
f
,
6.7
f
,
-
0.8
f
,
0
,
1
,
0
,
0.63636
f
,
1
,
0.2
f
);
/*
//background grids
for (int i = 0; i < 6; ++i) {
vBackLine[i * 6 + 0] = S3DVertex(vector3df(1.2f + i * 1.1f, 0.5f, -0.01f), vector3df(0, 0, 1), SColor(255, 255, 255, 255), vector2df(0, 0));
...
...
@@ -200,6 +173,7 @@ Materials::Materials() {
iBackLine[113] = 75;
iBackLine[114] = 74;
iBackLine[115] = 75;
*/
iRectangle
[
0
]
=
0
;
iRectangle
[
1
]
=
1
;
...
...
@@ -208,159 +182,41 @@ Materials::Materials() {
iRectangle
[
4
]
=
1
;
iRectangle
[
5
]
=
3
;
//deck0
vFields
[
0
]
=
S3DVertex
(
vector3df
(
6.9
f
,
2.7
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
1
]
=
S3DVertex
(
vector3df
(
7.7
f
,
2.7
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
2
]
=
S3DVertex
(
vector3df
(
6.9
f
,
3.9
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
3
]
=
S3DVertex
(
vector3df
(
7.7
f
,
3.9
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//grave0
vFields
[
4
]
=
S3DVertex
(
vector3df
(
6.9
f
,
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
5
]
=
S3DVertex
(
vector3df
(
7.7
f
,
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
6
]
=
S3DVertex
(
vector3df
(
6.9
f
,
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
7
]
=
S3DVertex
(
vector3df
(
7.7
f
,
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//extra0
vFields
[
8
]
=
S3DVertex
(
vector3df
(
0.2
f
,
2.7
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
9
]
=
S3DVertex
(
vector3df
(
1.0
f
,
2.7
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
10
]
=
S3DVertex
(
vector3df
(
0.2
f
,
3.9
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
11
]
=
S3DVertex
(
vector3df
(
1.0
f
,
3.9
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//remove0
vFields
[
12
]
=
S3DVertex
(
vector3df
(
7.9
f
,
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
13
]
=
S3DVertex
(
vector3df
(
8.7
f
,
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
14
]
=
S3DVertex
(
vector3df
(
7.9
f
,
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
15
]
=
S3DVertex
(
vector3df
(
8.7
f
,
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//mzone0
vFields
[
16
]
=
S3DVertex
(
vector3df
(
1.2
f
,
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
17
]
=
S3DVertex
(
vector3df
(
2.3
f
,
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
18
]
=
S3DVertex
(
vector3df
(
1.2
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
19
]
=
S3DVertex
(
vector3df
(
2.3
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
20
]
=
S3DVertex
(
vector3df
(
2.3
f
,
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
21
]
=
S3DVertex
(
vector3df
(
3.4
f
,
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
22
]
=
S3DVertex
(
vector3df
(
2.3
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
23
]
=
S3DVertex
(
vector3df
(
3.4
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
24
]
=
S3DVertex
(
vector3df
(
3.4
f
,
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
25
]
=
S3DVertex
(
vector3df
(
4.5
f
,
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
26
]
=
S3DVertex
(
vector3df
(
3.4
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
27
]
=
S3DVertex
(
vector3df
(
4.5
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
28
]
=
S3DVertex
(
vector3df
(
4.5
f
,
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
29
]
=
S3DVertex
(
vector3df
(
5.6
f
,
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
30
]
=
S3DVertex
(
vector3df
(
4.5
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
31
]
=
S3DVertex
(
vector3df
(
5.6
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
32
]
=
S3DVertex
(
vector3df
(
5.6
f
,
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
33
]
=
S3DVertex
(
vector3df
(
6.7
f
,
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
34
]
=
S3DVertex
(
vector3df
(
5.6
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
35
]
=
S3DVertex
(
vector3df
(
6.7
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//szone0
vFields
[
36
]
=
S3DVertex
(
vector3df
(
1.2
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
37
]
=
S3DVertex
(
vector3df
(
2.3
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
38
]
=
S3DVertex
(
vector3df
(
1.2
f
,
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
39
]
=
S3DVertex
(
vector3df
(
2.3
f
,
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
40
]
=
S3DVertex
(
vector3df
(
2.3
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
41
]
=
S3DVertex
(
vector3df
(
3.4
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
42
]
=
S3DVertex
(
vector3df
(
2.3
f
,
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
43
]
=
S3DVertex
(
vector3df
(
3.4
f
,
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
44
]
=
S3DVertex
(
vector3df
(
3.4
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
45
]
=
S3DVertex
(
vector3df
(
4.5
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
46
]
=
S3DVertex
(
vector3df
(
3.4
f
,
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
47
]
=
S3DVertex
(
vector3df
(
4.5
f
,
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
48
]
=
S3DVertex
(
vector3df
(
4.5
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
49
]
=
S3DVertex
(
vector3df
(
5.6
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
50
]
=
S3DVertex
(
vector3df
(
4.5
f
,
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
51
]
=
S3DVertex
(
vector3df
(
5.6
f
,
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
52
]
=
S3DVertex
(
vector3df
(
5.6
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
53
]
=
S3DVertex
(
vector3df
(
6.7
f
,
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
54
]
=
S3DVertex
(
vector3df
(
5.6
f
,
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
55
]
=
S3DVertex
(
vector3df
(
6.7
f
,
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
56
]
=
S3DVertex
(
vector3df
(
0.2
f
,
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//field
vFields
[
57
]
=
S3DVertex
(
vector3df
(
1.0
f
,
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
58
]
=
S3DVertex
(
vector3df
(
0.2
f
,
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
59
]
=
S3DVertex
(
vector3df
(
1.0
f
,
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
60
]
=
S3DVertex
(
vector3df
(
0.2
f
,
1.4
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//LScale
vFields
[
61
]
=
S3DVertex
(
vector3df
(
1.0
f
,
1.4
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
62
]
=
S3DVertex
(
vector3df
(
0.2
f
,
2.6
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
63
]
=
S3DVertex
(
vector3df
(
1.0
f
,
2.6
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
64
]
=
S3DVertex
(
vector3df
(
6.9
f
,
1.4
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//RScale
vFields
[
65
]
=
S3DVertex
(
vector3df
(
7.7
f
,
1.4
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
66
]
=
S3DVertex
(
vector3df
(
6.9
f
,
2.6
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
67
]
=
S3DVertex
(
vector3df
(
7.7
f
,
2.6
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//deck1
vFields
[
68
]
=
S3DVertex
(
vector3df
(
1.0
f
,
-
2.7
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
69
]
=
S3DVertex
(
vector3df
(
0.2
f
,
-
2.7
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
70
]
=
S3DVertex
(
vector3df
(
1.0
f
,
-
3.9
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
71
]
=
S3DVertex
(
vector3df
(
0.2
f
,
-
3.9
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//grave1
vFields
[
72
]
=
S3DVertex
(
vector3df
(
1.0
f
,
-
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
73
]
=
S3DVertex
(
vector3df
(
0.2
f
,
-
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
74
]
=
S3DVertex
(
vector3df
(
1.0
f
,
-
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
75
]
=
S3DVertex
(
vector3df
(
0.2
f
,
-
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//extra1
vFields
[
76
]
=
S3DVertex
(
vector3df
(
7.7
f
,
-
2.7
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
77
]
=
S3DVertex
(
vector3df
(
6.9
f
,
-
2.7
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
78
]
=
S3DVertex
(
vector3df
(
7.7
f
,
-
3.9
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
79
]
=
S3DVertex
(
vector3df
(
6.9
f
,
-
3.9
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//remove1
vFields
[
80
]
=
S3DVertex
(
vector3df
(
0.0
f
,
-
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
81
]
=
S3DVertex
(
vector3df
(
-
0.8
f
,
-
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
82
]
=
S3DVertex
(
vector3df
(
0.0
f
,
-
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
83
]
=
S3DVertex
(
vector3df
(
-
0.8
f
,
-
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//mzone1
vFields
[
84
]
=
S3DVertex
(
vector3df
(
6.7
f
,
-
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
85
]
=
S3DVertex
(
vector3df
(
5.6
f
,
-
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
86
]
=
S3DVertex
(
vector3df
(
6.7
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
87
]
=
S3DVertex
(
vector3df
(
5.6
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
88
]
=
S3DVertex
(
vector3df
(
5.6
f
,
-
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
89
]
=
S3DVertex
(
vector3df
(
4.5
f
,
-
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
90
]
=
S3DVertex
(
vector3df
(
5.6
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
91
]
=
S3DVertex
(
vector3df
(
4.5
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
92
]
=
S3DVertex
(
vector3df
(
4.5
f
,
-
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
93
]
=
S3DVertex
(
vector3df
(
3.4
f
,
-
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
94
]
=
S3DVertex
(
vector3df
(
4.5
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
95
]
=
S3DVertex
(
vector3df
(
3.4
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
96
]
=
S3DVertex
(
vector3df
(
3.4
f
,
-
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
97
]
=
S3DVertex
(
vector3df
(
2.3
f
,
-
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
98
]
=
S3DVertex
(
vector3df
(
3.4
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
99
]
=
S3DVertex
(
vector3df
(
2.3
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
100
]
=
S3DVertex
(
vector3df
(
2.3
f
,
-
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
101
]
=
S3DVertex
(
vector3df
(
1.2
f
,
-
0.8
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
102
]
=
S3DVertex
(
vector3df
(
2.3
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
103
]
=
S3DVertex
(
vector3df
(
1.2
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//szone1
vFields
[
104
]
=
S3DVertex
(
vector3df
(
6.7
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
105
]
=
S3DVertex
(
vector3df
(
5.6
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
106
]
=
S3DVertex
(
vector3df
(
6.7
f
,
-
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
107
]
=
S3DVertex
(
vector3df
(
5.6
f
,
-
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
108
]
=
S3DVertex
(
vector3df
(
5.6
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
109
]
=
S3DVertex
(
vector3df
(
4.5
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
110
]
=
S3DVertex
(
vector3df
(
5.6
f
,
-
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
111
]
=
S3DVertex
(
vector3df
(
4.5
f
,
-
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
112
]
=
S3DVertex
(
vector3df
(
4.5
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
113
]
=
S3DVertex
(
vector3df
(
3.4
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
114
]
=
S3DVertex
(
vector3df
(
4.5
f
,
-
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
115
]
=
S3DVertex
(
vector3df
(
3.4
f
,
-
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
116
]
=
S3DVertex
(
vector3df
(
3.4
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
117
]
=
S3DVertex
(
vector3df
(
2.3
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
118
]
=
S3DVertex
(
vector3df
(
3.4
f
,
-
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
119
]
=
S3DVertex
(
vector3df
(
2.3
f
,
-
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
120
]
=
S3DVertex
(
vector3df
(
2.3
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
121
]
=
S3DVertex
(
vector3df
(
1.2
f
,
-
2.0
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
122
]
=
S3DVertex
(
vector3df
(
2.3
f
,
-
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
123
]
=
S3DVertex
(
vector3df
(
1.2
f
,
-
3.2
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
124
]
=
S3DVertex
(
vector3df
(
7.7
f
,
-
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//field
vFields
[
125
]
=
S3DVertex
(
vector3df
(
6.9
f
,
-
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
126
]
=
S3DVertex
(
vector3df
(
7.7
f
,
-
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
127
]
=
S3DVertex
(
vector3df
(
6.9
f
,
-
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
128
]
=
S3DVertex
(
vector3df
(
7.7
f
,
-
1.4
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//lscale
vFields
[
129
]
=
S3DVertex
(
vector3df
(
6.9
f
,
-
1.4
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
130
]
=
S3DVertex
(
vector3df
(
7.7
f
,
-
2.6
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
131
]
=
S3DVertex
(
vector3df
(
6.9
f
,
-
2.6
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
132
]
=
S3DVertex
(
vector3df
(
1.0
f
,
-
1.4
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
//rscale
vFields
[
133
]
=
S3DVertex
(
vector3df
(
0.2
f
,
-
1.4
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
134
]
=
S3DVertex
(
vector3df
(
1.0
f
,
-
2.6
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
vFields
[
135
]
=
S3DVertex
(
vector3df
(
0.2
f
,
-
2.6
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
));
SetS3DVertex
(
vFieldDeck
[
0
],
6.9
f
,
2.7
f
,
7.7
f
,
3.9
f
,
0
,
1
,
0
,
0
,
0
,
0
);
SetS3DVertex
(
vFieldGrave
[
0
],
6.9
f
,
0.1
f
,
7.7
f
,
1.3
f
,
0
,
1
,
0
,
0
,
0
,
0
);
SetS3DVertex
(
vFieldExtra
[
0
],
0.2
f
,
2.7
f
,
1.0
f
,
3.9
f
,
0
,
1
,
0
,
0
,
0
,
0
);
SetS3DVertex
(
vFieldRemove
[
0
],
7.9
f
,
0.1
f
,
8.7
f
,
1.3
f
,
0
,
1
,
0
,
0
,
0
,
0
);
for
(
int
i
=
0
;
i
<
5
;
++
i
)
SetS3DVertex
(
vFieldMzone
[
0
][
i
],
1.2
f
+
i
*
1.1
f
,
0.8
f
,
2.3
f
+
i
*
1.1
f
,
2.0
f
,
0
,
1
,
0
,
0
,
0
,
0
);
for
(
int
i
=
0
;
i
<
5
;
++
i
)
SetS3DVertex
(
vFieldSzone
[
0
][
i
],
1.2
f
+
i
*
1.1
f
,
2.0
f
,
2.3
f
+
i
*
1.1
f
,
3.2
f
,
0
,
1
,
0
,
0
,
0
,
0
);
//field
SetS3DVertex
(
vFieldSzone
[
0
][
5
],
0.2
f
,
0.1
f
,
1.0
f
,
1.3
f
,
0
,
1
,
0
,
0
,
0
,
0
);
//LScale
SetS3DVertex
(
vFieldSzone
[
0
][
6
],
0.2
f
,
1.4
f
,
1.0
f
,
2.6
f
,
0
,
1
,
0
,
0
,
0
,
0
);
//RScale
SetS3DVertex
(
vFieldSzone
[
0
][
7
],
6.9
f
,
1.4
f
,
7.7
f
,
2.6
f
,
0
,
1
,
0
,
0
,
0
,
0
);
SetS3DVertex
(
vFieldDeck
[
1
],
1.0
f
,
-
2.7
f
,
0.2
f
,
-
3.9
f
,
0
,
1
,
0
,
0
,
0
,
0
);
SetS3DVertex
(
vFieldGrave
[
1
],
1.0
f
,
-
0.1
f
,
0.2
f
,
-
1.3
f
,
0
,
1
,
0
,
0
,
0
,
0
);
SetS3DVertex
(
vFieldExtra
[
1
],
7.7
f
,
-
2.7
f
,
6.9
f
,
-
3.9
f
,
0
,
1
,
0
,
0
,
0
,
0
);
SetS3DVertex
(
vFieldRemove
[
1
],
0.0
f
,
-
0.1
f
,
-
0.8
f
,
-
1.3
f
,
0
,
1
,
0
,
0
,
0
,
0
);
for
(
int
i
=
0
;
i
<
5
;
++
i
)
SetS3DVertex
(
vFieldMzone
[
1
][
i
],
6.7
f
-
i
*
1.1
f
,
-
0.8
f
,
5.6
f
-
i
*
1.1
f
,
-
2.0
f
,
0
,
1
,
0
,
0
,
0
,
0
);
for
(
int
i
=
0
;
i
<
5
;
++
i
)
SetS3DVertex
(
vFieldSzone
[
1
][
i
],
6.7
f
-
i
*
1.1
f
,
-
2.0
f
,
5.6
f
-
i
*
1.1
f
,
-
3.2
f
,
0
,
1
,
0
,
0
,
0
,
0
);
//field
SetS3DVertex
(
vFieldSzone
[
1
][
5
],
7.7
f
,
-
0.1
f
,
6.9
f
,
-
1.3
f
,
0
,
1
,
0
,
0
,
0
,
0
);
//LScale
SetS3DVertex
(
vFieldSzone
[
1
][
6
],
7.7
f
,
-
1.4
f
,
6.9
f
,
-
2.6
f
,
0
,
1
,
0
,
0
,
0
,
0
);
//RScale
SetS3DVertex
(
vFieldSzone
[
1
][
7
],
1.0
f
,
-
1.4
f
,
0.2
f
,
-
2.6
f
,
0
,
1
,
0
,
0
,
0
,
0
);
//conti_act
vField
s
[
136
]
=
S3DVertex
(
vector3df
(
-
0.8
f
,
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
)
);
vField
s
[
137
]
=
S3DVertex
(
vector3df
(
0.0
f
,
0.1
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
)
);
vField
s
[
138
]
=
S3DVertex
(
vector3df
(
-
0.8
f
,
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
)
);
vField
s
[
139
]
=
S3DVertex
(
vector3df
(
0.0
f
,
1.3
f
,
0.0
f
),
vector3df
(
0
,
0
,
1
),
SColor
(
255
,
255
,
255
,
255
),
vector2df
(
0
,
0
)
);
vField
ContiAct
[
0
]
=
vector3df
(
-
0.8
f
,
0.1
f
,
0.0
f
);
vField
ContiAct
[
1
]
=
vector3df
(
0.0
f
,
0.1
f
,
0.0
f
);
vField
ContiAct
[
2
]
=
vector3df
(
-
0.8
f
,
1.3
f
,
0.0
f
);
vField
ContiAct
[
3
]
=
vector3df
(
0.0
f
,
1.3
f
,
0.0
f
);
for
(
int
i
=
0
;
i
<
40
;
++
i
)
...
...
gframe/materials.h
View file @
0f5444d2
...
...
@@ -19,12 +19,18 @@ public:
S3DVertex
vFieldSpell
[
4
];
S3DVertex
vFieldSpell1
[
4
];
S3DVertex
vFieldSpell2
[
4
];
S3DVertex
vBackLine
[
76
];
S3DVertex
vFields
[
140
];
//S3DVertex vBackLine[76];
S3DVertex
vFieldDeck
[
2
][
4
];
S3DVertex
vFieldGrave
[
2
][
4
];
S3DVertex
vFieldExtra
[
2
][
4
];
S3DVertex
vFieldRemove
[
2
][
4
];
S3DVertex
vFieldMzone
[
2
][
5
][
4
];
S3DVertex
vFieldSzone
[
2
][
8
][
4
];
irr
::
core
::
vector3df
vFieldContiAct
[
4
];
S3DVertex
vArrow
[
40
];
SColor
c2d
[
4
];
u16
iRectangle
[
6
];
u16
iBackLine
[
116
];
//
u16 iBackLine[116];
u16
iArrow
[
40
];
irr
::
video
::
SMaterial
mCard
;
irr
::
video
::
SMaterial
mTexture
;
...
...
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