Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
MyCard
ygopro
Commits
a9787cb8
Commit
a9787cb8
authored
Mar 21, 2014
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
e1ef38bc
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
96 additions
and
92 deletions
+96
-92
gframe/client_field.cpp
gframe/client_field.cpp
+91
-91
ocgcore/card.cpp
ocgcore/card.cpp
+2
-0
ocgcore/field.cpp
ocgcore/field.cpp
+3
-1
No files found.
gframe/client_field.cpp
View file @
a9787cb8
...
...
@@ -549,12 +549,12 @@ void ClientField::GetChainLocation(int controler, int location, int sequence, ir
switch
((
location
&
0x7f
))
{
case
LOCATION_DECK
:
{
if
(
controler
==
0
)
{
t
->
X
=
7.3
f
;
t
->
Y
=
2.9
f
;
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
=
0.6
f
;
t
->
Y
=
-
2.9
f
;
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
=
deck
[
controler
].
size
()
*
0.01
f
+
0.03
f
;
}
break
;
...
...
@@ -573,12 +573,12 @@ void ClientField::GetChainLocation(int controler, int location, int sequence, ir
}
case
LOCATION_MZONE
:
{
if
(
controler
==
0
)
{
t
->
X
=
1.75
f
+
1.1
f
*
sequence
;
t
->
Y
=
1.1
f
;
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
=
6.15
f
-
1.1
f
*
sequence
;
t
->
Y
=
-
1.1
f
;
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.03
f
;
}
break
;
...
...
@@ -586,38 +586,38 @@ void ClientField::GetChainLocation(int controler, int location, int sequence, ir
case
LOCATION_SZONE
:
{
if
(
controler
==
0
)
{
if
(
sequence
<=
4
)
{
t
->
X
=
1.75
f
+
1.1
f
*
sequence
;
t
->
Y
=
2.3
f
;
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
=
0.6
f
;
t
->
Y
=
1.7
f
;
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
=
-
0.4
f
;
t
->
Y
=
1.7
f
;
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
=
8.3
f
;
t
->
Y
=
1.7
f
;
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
=
6.15
f
-
1.1
f
*
sequence
;
t
->
Y
=
-
2.3
f
;
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.03
f
;
}
else
if
(
sequence
==
5
)
{
t
->
X
=
7.3
f
;
t
->
Y
=
-
1.7
f
;
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
=
8.3
f
;
t
->
Y
=
-
1.7
f
;
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
=
-
0.4
f
;
t
->
Y
=
-
1.7
f
;
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
;
}
}
...
...
@@ -625,24 +625,24 @@ void ClientField::GetChainLocation(int controler, int location, int sequence, ir
}
case
LOCATION_GRAVE
:
{
if
(
controler
==
0
)
{
t
->
X
=
7.3
f
;
t
->
Y
=
1.7
f
;
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
->
Z
=
grave
[
controler
].
size
()
*
0.01
f
+
0.03
f
;
}
else
{
t
->
X
=
0.6
f
;
t
->
Y
=
-
1.7
f
;
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
=
7.3
f
;
t
->
Y
=
0.4
f
;
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
->
Z
=
remove
[
controler
].
size
()
*
0.01
f
+
0.03
f
;
}
else
{
t
->
X
=
0.6
f
;
t
->
Y
=
-
0.4
f
;
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
;
...
...
@@ -656,9 +656,9 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
switch
(
location
)
{
case
LOCATION_DECK
:
{
if
(
controler
==
0
)
{
t
->
X
=
matManager
.
vFields
[
0
].
Pos
.
X
-
(
matManager
.
vFields
[
0
].
Pos
.
X
-
matManager
.
vFields
[
1
].
Pos
.
X
)
/
2
;
t
->
Y
=
matManager
.
vFields
[
0
].
Pos
.
Y
-
(
matManager
.
vFields
[
0
].
Pos
.
Y
-
matManager
.
vFields
[
3
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
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
=
0.01
f
+
0.01
f
*
sequence
;
if
(
deck_reversed
==
pcard
->
is_reversed
)
{
r
->
X
=
0.0
f
;
r
->
Y
=
3.1415926
f
;
...
...
@@ -669,8 +669,8 @@ 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
[
68
].
Pos
.
X
-
matManager
.
vFields
[
69
].
Pos
.
X
)
/
2
;
//0.6f
;
t
->
Y
=
matManager
.
vFields
[
68
].
Pos
.
Y
-
(
matManager
.
vFields
[
68
].
Pos
.
Y
-
matManager
.
vFields
[
70
].
Pos
.
Y
)
/
2
;
//-3.0f
;
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
;
...
...
@@ -734,9 +734,9 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
}
case
LOCATION_MZONE
:
{
if
(
controler
==
0
)
{
t
->
X
=
(
matManager
.
vFields
[
16
].
Pos
.
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
[
16
].
Pos
.
Y
-
matManager
.
vFields
[
18
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
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.01
f
;
if
(
pcard
->
position
&
POS_DEFENCE
)
{
r
->
X
=
0.0
f
;
r
->
Z
=
-
3.1415926
f
/
2.0
f
;
...
...
@@ -751,9 +751,9 @@ 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
[
84
].
Pos
.
X
-
matManager
.
vFields
[
85
].
Pos
.
X
)
/
2
)
-
1.1
f
*
sequence
;
t
->
Y
=
matManager
.
vFields
[
84
].
Pos
.
Y
-
(
matManager
.
vFields
[
84
].
Pos
.
Y
-
matManager
.
vFields
[
86
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
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_DEFENCE
)
{
r
->
X
=
0.0
f
;
r
->
Z
=
3.1415926
f
/
2.0
f
;
...
...
@@ -773,21 +773,21 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
case
LOCATION_SZONE
:
{
if
(
controler
==
0
)
{
if
(
sequence
<=
4
)
{
t
->
X
=
(
matManager
.
vFields
[
36
].
Pos
.
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
[
36
].
Pos
.
Y
-
matManager
.
vFields
[
38
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
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
[
56
].
Pos
.
X
-
matManager
.
vFields
[
57
].
Pos
.
X
)
/
2
;
t
->
Y
=
matManager
.
vFields
[
56
].
Pos
.
Y
-
(
matManager
.
vFields
[
56
].
Pos
.
Y
-
matManager
.
vFields
[
58
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
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
[
60
].
Pos
.
X
-
matManager
.
vFields
[
61
].
Pos
.
X
)
/
2
;
t
->
Y
=
matManager
.
vFields
[
60
].
Pos
.
Y
-
(
matManager
.
vFields
[
60
].
Pos
.
Y
-
matManager
.
vFields
[
62
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
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.01
f
;
}
else
{
t
->
X
=
matManager
.
vFields
[
65
].
Pos
.
X
-
(
matManager
.
vFields
[
65
].
Pos
.
X
-
matManager
.
vFields
[
66
].
Pos
.
X
)
/
2
;
t
->
Y
=
matManager
.
vFields
[
65
].
Pos
.
Y
-
(
matManager
.
vFields
[
65
].
Pos
.
Y
-
matManager
.
vFields
[
67
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
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
;
}
r
->
X
=
0.0
f
;
r
->
Z
=
0.0
f
;
...
...
@@ -796,21 +796,21 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
else
r
->
Y
=
0.0
f
;
}
else
{
if
(
sequence
<=
4
)
{
t
->
X
=
(
matManager
.
vFields
[
104
].
Pos
.
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
[
104
].
Pos
.
Y
-
matManager
.
vFields
[
106
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
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
[
124
].
Pos
.
X
-
matManager
.
vFields
[
125
].
Pos
.
X
)
/
2
;
t
->
Y
=
matManager
.
vFields
[
124
].
Pos
.
Y
-
(
matManager
.
vFields
[
124
].
Pos
.
Y
-
matManager
.
vFields
[
126
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
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
[
128
].
Pos
.
X
-
matManager
.
vFields
[
129
].
Pos
.
X
)
/
2
;
t
->
Y
=
matManager
.
vFields
[
128
].
Pos
.
Y
-
(
matManager
.
vFields
[
128
].
Pos
.
Y
-
matManager
.
vFields
[
130
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
;
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
[
132
].
Pos
.
X
-
matManager
.
vFields
[
133
].
Pos
.
X
)
/
2
;
//-0.4f
;
t
->
Y
=
matManager
.
vFields
[
132
].
Pos
.
Y
-
(
matManager
.
vFields
[
132
].
Pos
.
Y
-
matManager
.
vFields
[
134
].
Pos
.
Y
)
/
2
;
//-1.7f
;
t
->
Z
=
0.01
f
;
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
;
...
...
@@ -822,16 +822,16 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
}
case
LOCATION_GRAVE
:
{
if
(
controler
==
0
)
{
t
->
X
=
matManager
.
vFields
[
4
].
Pos
.
X
-
(
matManager
.
vFields
[
4
].
Pos
.
X
-
matManager
.
vFields
[
5
].
Pos
.
X
)
/
2
;
t
->
Y
=
matManager
.
vFields
[
4
].
Pos
.
Y
-
(
matManager
.
vFields
[
4
].
Pos
.
Y
-
matManager
.
vFields
[
6
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
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
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
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
[
72
].
Pos
.
X
-
matManager
.
vFields
[
73
].
Pos
.
X
)
/
2
;
t
->
Y
=
matManager
.
vFields
[
72
].
Pos
.
Y
-
(
matManager
.
vFields
[
72
].
Pos
.
Y
-
matManager
.
vFields
[
74
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
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
;
...
...
@@ -840,9 +840,9 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
}
case
LOCATION_REMOVED
:
{
if
(
controler
==
0
)
{
t
->
X
=
matManager
.
vFields
[
12
].
Pos
.
X
-
(
matManager
.
vFields
[
12
].
Pos
.
X
-
matManager
.
vFields
[
13
].
Pos
.
X
)
/
2
;
t
->
Y
=
matManager
.
vFields
[
12
].
Pos
.
Y
-
(
matManager
.
vFields
[
12
].
Pos
.
Y
-
matManager
.
vFields
[
14
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
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
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
if
(
pcard
->
position
&
POS_FACEUP
)
{
r
->
X
=
0.0
f
;
r
->
Y
=
0.0
f
;
...
...
@@ -853,9 +853,9 @@ 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
[
80
].
Pos
.
X
-
matManager
.
vFields
[
81
].
Pos
.
X
)
/
2
;
t
->
Y
=
matManager
.
vFields
[
80
].
Pos
.
Y
-
(
matManager
.
vFields
[
80
].
Pos
.
Y
-
matManager
.
vFields
[
82
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
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
;
...
...
@@ -870,18 +870,18 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
}
case
LOCATION_EXTRA
:
{
if
(
controler
==
0
)
{
t
->
X
=
matManager
.
vFields
[
8
].
Pos
.
X
-
(
matManager
.
vFields
[
8
].
Pos
.
X
-
matManager
.
vFields
[
9
].
Pos
.
X
)
/
2
;
t
->
Y
=
matManager
.
vFields
[
8
].
Pos
.
Y
-
(
matManager
.
vFields
[
8
].
Pos
.
Y
-
matManager
.
vFields
[
10
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
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
->
Z
=
0.01
f
+
0.01
f
*
sequence
;
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
[
76
].
Pos
.
X
-
matManager
.
vFields
[
77
].
Pos
.
X
)
/
2
;
t
->
Y
=
matManager
.
vFields
[
76
].
Pos
.
Y
-
(
matManager
.
vFields
[
76
].
Pos
.
Y
-
matManager
.
vFields
[
78
].
Pos
.
Y
)
/
2
;
t
->
Z
=
0.01
f
*
sequence
;
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
;
...
...
@@ -896,16 +896,16 @@ void ClientField::GetCardLocation(ClientCard* pcard, irr::core::vector3df* t, ir
}
int
oseq
=
pcard
->
overlayTarget
->
sequence
;
if
(
pcard
->
overlayTarget
->
controler
==
0
)
{
t
->
X
=
(
matManager
.
vFields
[
16
].
Pos
.
X
-
(
matManager
.
vFields
[
16
].
Pos
.
X
-
matManager
.
vFields
[
17
].
Pos
.
X
)
/
2
)
+
1.1
f
*
oseq
-
0.12
f
+
0.06
f
*
sequence
;
//1.75f
+ 1.1f * oseq - 0.12f + 0.06f * sequence;
t
->
Y
=
matManager
.
vFields
[
16
].
Pos
.
Y
-
(
matManager
.
vFields
[
16
].
Pos
.
Y
-
matManager
.
vFields
[
18
].
Pos
.
Y
)
/
2
+
0.05
f
;
//1.1
5f;
t
->
Z
=
0.005
f
+
pcard
->
sequence
*
0.0001
f
;
t
->
X
=
(
matManager
.
vFields
[
16
].
Pos
.
X
+
matManager
.
vFields
[
17
].
Pos
.
X
)
/
2
+
1.1
f
*
oseq
-
0.12
f
+
0.06
f
*
sequence
;
t
->
Y
=
(
matManager
.
vFields
[
16
].
Pos
.
Y
+
matManager
.
vFields
[
18
].
Pos
.
Y
)
/
2
+
0.0
5
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
.
vFields
[
84
].
Pos
.
X
-
(
matManager
.
vFields
[
84
].
Pos
.
X
-
matManager
.
vFields
[
85
].
Pos
.
X
)
/
2
)
-
1.1
f
*
oseq
+
0.12
f
-
0.06
f
*
sequence
;
//6.15f
- 1.1f * oseq + 0.12f - 0.06f * sequence;
t
->
Y
=
matManager
.
vFields
[
84
].
Pos
.
Y
-
(
matManager
.
vFields
[
84
].
Pos
.
Y
-
matManager
.
vFields
[
86
].
Pos
.
Y
)
/
2
-
0.05
f
;
//-1.1
5f;
t
->
Z
=
0.005
f
+
pcard
->
sequence
*
0.0001
f
;
t
->
X
=
(
matManager
.
vFields
[
84
].
Pos
.
X
+
matManager
.
vFields
[
85
].
Pos
.
X
)
/
2
-
1.1
f
*
oseq
+
0.12
f
-
0.06
f
*
sequence
;
t
->
Y
=
(
matManager
.
vFields
[
84
].
Pos
.
Y
+
matManager
.
vFields
[
86
].
Pos
.
Y
)
/
2
-
0.0
5
f
;
t
->
Z
=
0.005
f
+
pcard
->
sequence
*
0.0001
f
;
r
->
X
=
0.0
f
;
r
->
Y
=
0.0
f
;
r
->
Z
=
3.1415926
f
;
...
...
ocgcore/card.cpp
View file @
a9787cb8
...
...
@@ -2072,6 +2072,8 @@ int32 card::is_capable_cost_to_grave(uint8 playerid) {
uint32
dest
=
LOCATION_GRAVE
;
if
(
data
.
type
&
TYPE_TOKEN
)
return
FALSE
;
if
((
data
.
type
&
TYPE_PENDULUM
)
&&
(
current
.
location
&
LOCATION_ONFIELD
))
return
FALSE
;
if
(
current
.
location
==
LOCATION_GRAVE
)
return
FALSE
;
if
(
is_affected_by_effect
(
EFFECT_CANNOT_USE_AS_COST
))
...
...
ocgcore/field.cpp
View file @
a9787cb8
...
...
@@ -143,7 +143,9 @@ void field::add_card(uint8 playerid, card* pcard, uint8 location, uint8 sequence
location
=
LOCATION_EXTRA
;
pcard
->
operation_param
=
(
pcard
->
operation_param
&
0x00ffffff
)
|
(
POS_FACEDOWN_DEFENCE
<<
24
);
}
if
((
pcard
->
data
.
type
&
TYPE_PENDULUM
)
&&
(
location
==
LOCATION_GRAVE
)
&&
(
pcard
->
previous
.
location
&
LOCATION_ONFIELD
)
&&
!
pcard
->
is_status
(
STATUS_SUMMON_DISABLED
))
{
if
((
pcard
->
data
.
type
&
TYPE_PENDULUM
)
&&
(
location
==
LOCATION_GRAVE
)
&&
(((
pcard
->
previous
.
location
&
LOCATION_MZONE
)
&&
!
pcard
->
is_status
(
STATUS_SUMMON_DISABLED
))
||
((
pcard
->
previous
.
location
&
LOCATION_SZONE
)
&&
!
pcard
->
is_status
(
STATUS_ACTIVATE_DISABLED
))))
{
location
=
LOCATION_EXTRA
;
pcard
->
operation_param
=
(
pcard
->
operation_param
&
0x00ffffff
)
|
(
POS_FACEUP_DEFENCE
<<
24
);
}
...
...
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