Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-2pick
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-2pick
Commits
97b1e996
Commit
97b1e996
authored
Mar 19, 2017
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
extra monster zone
parent
aed821db
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
139 additions
and
104 deletions
+139
-104
gframe/client_field.cpp
gframe/client_field.cpp
+6
-4
gframe/client_field.h
gframe/client_field.h
+1
-0
gframe/drawing.cpp
gframe/drawing.cpp
+49
-50
gframe/duelclient.cpp
gframe/duelclient.cpp
+22
-20
gframe/event_handler.cpp
gframe/event_handler.cpp
+49
-27
gframe/game.h
gframe/game.h
+1
-0
gframe/materials.cpp
gframe/materials.cpp
+5
-1
gframe/materials.h
gframe/materials.h
+1
-1
strings.conf
strings.conf
+5
-1
No files found.
gframe/client_field.cpp
View file @
97b1e996
...
...
@@ -28,11 +28,10 @@ ClientField::ClientField() {
deck_reversed
=
false
;
conti_selecting
=
false
;
for
(
int
p
=
0
;
p
<
2
;
++
p
)
{
for
(
int
i
=
0
;
i
<
5
;
++
i
)
mzone
[
p
].
push_back
(
0
);
for
(
int
i
=
0
;
i
<
8
;
++
i
)
szone
[
p
].
push_back
(
0
);
mzone
[
p
].
resize
(
7
,
0
);
szone
[
p
].
resize
(
8
,
0
);
}
usable_exmzone
=
0
;
}
void
ClientField
::
Clear
()
{
for
(
int
i
=
0
;
i
<
2
;
++
i
)
{
...
...
@@ -67,6 +66,7 @@ void ClientField::Clear() {
overlay_cards
.
clear
();
extra_p_count
[
0
]
=
0
;
extra_p_count
[
1
]
=
0
;
usable_exmzone
=
0
;
chains
.
clear
();
activatable_cards
.
clear
();
summonable_cards
.
clear
();
...
...
@@ -183,6 +183,8 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
}
case
LOCATION_MZONE
:
{
mzone
[
controler
][
sequence
]
=
pcard
;
if
(
!
usable_exmzone
&&
sequence
>=
5
)
usable_exmzone
=
sequence
;
break
;
}
case
LOCATION_SZONE
:
{
...
...
gframe/client_field.h
View file @
97b1e996
...
...
@@ -41,6 +41,7 @@ public:
std
::
vector
<
int
>
select_options
;
std
::
vector
<
ChainInfo
>
chains
;
int
extra_p_count
[
2
];
int
usable_exmzone
;
size_t
selected_option
;
ClientCard
*
attacker
;
...
...
gframe/drawing.cpp
View file @
97b1e996
...
...
@@ -106,7 +106,7 @@ void Game::DrawBackGround() {
if
(
dInfo
.
curMsg
==
MSG_SELECT_PLACE
||
dInfo
.
curMsg
==
MSG_SELECT_DISFIELD
)
{
float
cv
[
4
]
=
{
0.0
f
,
0.0
f
,
1.0
f
,
1.0
f
};
unsigned
int
filter
=
0x1
;
for
(
int
i
=
0
;
i
<
5
;
++
i
,
filter
<<=
1
)
{
for
(
int
i
=
0
;
i
<
7
;
++
i
,
filter
<<=
1
)
{
if
(
dField
.
selectable_field
&
filter
)
DrawSelectionLine
(
matManager
.
vFieldMzone
[
0
][
i
],
!
(
dField
.
selected_field
&
filter
),
2
,
cv
);
}
...
...
@@ -116,7 +116,7 @@ void Game::DrawBackGround() {
DrawSelectionLine
(
matManager
.
vFieldSzone
[
0
][
i
],
!
(
dField
.
selected_field
&
filter
),
2
,
cv
);
}
filter
=
0x10000
;
for
(
int
i
=
0
;
i
<
5
;
++
i
,
filter
<<=
1
)
{
for
(
int
i
=
0
;
i
<
7
;
++
i
,
filter
<<=
1
)
{
if
(
dField
.
selectable_field
&
filter
)
DrawSelectionLine
(
matManager
.
vFieldMzone
[
1
][
i
],
!
(
dField
.
selected_field
&
filter
),
2
,
cv
);
}
...
...
@@ -190,22 +190,22 @@ void Game::DrawBackGround() {
}
void
Game
::
DrawCards
()
{
for
(
int
p
=
0
;
p
<
2
;
++
p
)
{
for
(
int
i
=
0
;
i
<
5
;
++
i
)
if
(
dField
.
mzone
[
p
][
i
]
)
DrawCard
(
dField
.
mzone
[
p
][
i
]
);
for
(
int
i
=
0
;
i
<
8
;
++
i
)
if
(
dField
.
szone
[
p
][
i
]
)
DrawCard
(
dField
.
szone
[
p
][
i
]
);
for
(
size_t
i
=
0
;
i
<
dField
.
deck
[
p
].
size
();
++
i
)
DrawCard
(
dField
.
deck
[
p
][
i
]
);
for
(
size_t
i
=
0
;
i
<
dField
.
hand
[
p
].
size
();
++
i
)
DrawCard
(
dField
.
hand
[
p
][
i
]
);
for
(
size_t
i
=
0
;
i
<
dField
.
grave
[
p
].
size
();
++
i
)
DrawCard
(
dField
.
grave
[
p
][
i
]
);
for
(
size_t
i
=
0
;
i
<
dField
.
remove
[
p
].
size
();
++
i
)
DrawCard
(
dField
.
remove
[
p
][
i
]
);
for
(
size_t
i
=
0
;
i
<
dField
.
extra
[
p
].
size
();
++
i
)
DrawCard
(
dField
.
extra
[
p
][
i
]
);
for
(
auto
it
=
dField
.
mzone
[
p
].
begin
();
it
!=
dField
.
mzone
[
p
].
end
();
++
it
)
if
(
*
it
)
DrawCard
(
*
it
);
for
(
auto
it
=
dField
.
szone
[
p
].
begin
();
it
!=
dField
.
szone
[
p
].
end
();
++
it
)
if
(
*
it
)
DrawCard
(
*
it
);
for
(
auto
it
=
dField
.
deck
[
p
].
begin
();
it
!=
dField
.
deck
[
p
].
end
();
++
it
)
DrawCard
(
*
it
);
for
(
auto
it
=
dField
.
hand
[
p
].
begin
();
it
!=
dField
.
hand
[
p
].
end
();
++
it
)
DrawCard
(
*
it
);
for
(
auto
it
=
dField
.
grave
[
p
].
begin
();
it
!=
dField
.
grave
[
p
].
end
();
++
it
)
DrawCard
(
*
it
);
for
(
auto
it
=
dField
.
remove
[
p
].
begin
();
it
!=
dField
.
remove
[
p
].
end
();
++
it
)
DrawCard
(
*
it
);
for
(
auto
it
=
dField
.
extra
[
p
].
begin
();
it
!=
dField
.
extra
[
p
].
end
();
++
it
)
DrawCard
(
*
it
);
}
for
(
auto
cit
=
dField
.
overlay_cards
.
begin
();
cit
!=
dField
.
overlay_cards
.
end
();
++
cit
)
DrawCard
(
*
cit
);
...
...
@@ -407,42 +407,26 @@ void Game::DrawMisc() {
ClientCard
*
pcard
;
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
pcard
=
dField
.
mzone
[
0
][
i
];
if
(
pcard
&&
pcard
->
code
!=
0
)
{
int
m
=
493
+
i
*
85
;
adFont
->
draw
(
L"/"
,
recti
(
m
-
4
,
416
,
m
+
4
,
436
),
0xff000000
,
true
,
false
,
0
);
adFont
->
draw
(
L"/"
,
recti
(
m
-
3
,
417
,
m
+
5
,
437
),
0xffffffff
,
true
,
false
,
0
);
int
w
=
adFont
->
getDimension
(
pcard
->
atkstring
).
Width
;
adFont
->
draw
(
pcard
->
atkstring
,
recti
(
m
-
5
-
w
,
416
,
m
-
5
,
436
),
0xff000000
,
false
,
false
,
0
);
adFont
->
draw
(
pcard
->
atkstring
,
recti
(
m
-
4
-
w
,
417
,
m
-
4
,
437
),
pcard
->
attack
>
pcard
->
base_attack
?
0xffffff00
:
pcard
->
attack
<
pcard
->
base_attack
?
0xffff2090
:
0xffffffff
,
false
,
false
,
0
);
w
=
adFont
->
getDimension
(
pcard
->
defstring
).
Width
;
adFont
->
draw
(
pcard
->
defstring
,
recti
(
m
+
4
,
416
,
m
+
4
+
w
,
436
),
0xff000000
,
false
,
false
,
0
);
adFont
->
draw
(
pcard
->
defstring
,
recti
(
m
+
5
,
417
,
m
+
5
+
w
,
437
),
pcard
->
defense
>
pcard
->
base_defense
?
0xffffff00
:
pcard
->
defense
<
pcard
->
base_defense
?
0xffff2090
:
0xffffffff
,
false
,
false
,
0
);
adFont
->
draw
(
pcard
->
lvstring
,
recti
(
473
+
i
*
80
,
356
,
475
+
i
*
80
,
366
),
0xff000000
,
false
,
false
,
0
);
adFont
->
draw
(
pcard
->
lvstring
,
recti
(
474
+
i
*
80
,
357
,
476
+
i
*
80
,
367
),
(
pcard
->
type
&
TYPE_XYZ
)
?
0xffff80ff
:
(
pcard
->
type
&
TYPE_TUNER
)
?
0xffffff00
:
0xffffffff
,
false
,
false
,
0
);
}
}
if
(
pcard
&&
pcard
->
code
!=
0
)
DrawStatus
(
pcard
,
493
+
i
*
85
,
416
,
473
+
i
*
80
,
356
);
}
pcard
=
dField
.
mzone
[
0
][
5
];
if
(
pcard
&&
pcard
->
code
!=
0
)
DrawStatus
(
pcard
,
589
,
338
,
563
,
291
);
pcard
=
dField
.
mzone
[
0
][
6
];
if
(
pcard
&&
pcard
->
code
!=
0
)
DrawStatus
(
pcard
,
743
,
338
,
712
,
291
);
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
pcard
=
dField
.
mzone
[
1
][
i
];
if
(
pcard
&&
(
pcard
->
position
&
POS_FACEUP
))
{
int
m
=
803
-
i
*
68
;
adFont
->
draw
(
L"/"
,
recti
(
m
-
4
,
235
,
m
+
4
,
255
),
0xff000000
,
true
,
false
,
0
);
adFont
->
draw
(
L"/"
,
recti
(
m
-
3
,
236
,
m
+
5
,
256
),
0xffffffff
,
true
,
false
,
0
);
int
w
=
adFont
->
getDimension
(
pcard
->
atkstring
).
Width
;
adFont
->
draw
(
pcard
->
atkstring
,
recti
(
m
-
5
-
w
,
235
,
m
-
5
,
255
),
0xff000000
,
false
,
false
,
0
);
adFont
->
draw
(
pcard
->
atkstring
,
recti
(
m
-
4
-
w
,
236
,
m
-
4
,
256
),
pcard
->
attack
>
pcard
->
base_attack
?
0xffffff00
:
pcard
->
attack
<
pcard
->
base_attack
?
0xffff2090
:
0xffffffff
,
false
,
false
,
0
);
w
=
adFont
->
getDimension
(
pcard
->
defstring
).
Width
;
adFont
->
draw
(
pcard
->
defstring
,
recti
(
m
+
4
,
235
,
m
+
4
+
w
,
255
),
0xff000000
,
false
,
false
,
0
);
adFont
->
draw
(
pcard
->
defstring
,
recti
(
m
+
5
,
236
,
m
+
5
+
w
,
256
),
pcard
->
defense
>
pcard
->
base_defense
?
0xffffff00
:
pcard
->
defense
<
pcard
->
base_defense
?
0xffff2090
:
0xffffffff
,
false
,
false
,
0
);
adFont
->
draw
(
pcard
->
lvstring
,
recti
(
779
-
i
*
71
,
272
,
800
-
i
*
71
,
292
),
0xff000000
,
false
,
false
,
0
);
adFont
->
draw
(
pcard
->
lvstring
,
recti
(
780
-
i
*
71
,
273
,
800
-
i
*
71
,
293
),
(
pcard
->
type
&
TYPE_XYZ
)
?
0xffff80ff
:
(
pcard
->
type
&
TYPE_TUNER
)
?
0xffffff00
:
0xffffffff
,
false
,
false
,
0
);
}
}
if
(
pcard
&&
(
pcard
->
position
&
POS_FACEUP
))
DrawStatus
(
pcard
,
803
-
i
*
68
,
235
,
779
-
i
*
71
,
272
);
}
pcard
=
dField
.
mzone
[
1
][
5
];
if
(
pcard
&&
(
pcard
->
position
&
POS_FACEUP
))
DrawStatus
(
pcard
,
743
,
338
,
712
,
291
);
pcard
=
dField
.
mzone
[
1
][
6
];
if
(
pcard
&&
(
pcard
->
position
&
POS_FACEUP
))
DrawStatus
(
pcard
,
589
,
338
,
563
,
291
);
pcard
=
dField
.
szone
[
0
][
6
];
if
(
pcard
)
{
adFont
->
draw
(
pcard
->
lscstring
,
recti
(
426
,
394
,
438
,
414
),
0xff000000
,
true
,
false
,
0
);
...
...
@@ -502,6 +486,21 @@ void Game::DrawMisc() {
numFont
->
draw
(
dataManager
.
GetNumString
(
dField
.
remove
[
1
].
size
()),
recti
(
300
,
311
,
445
,
341
),
0xffffff00
,
true
,
false
,
0
);
}
}
void
Game
::
DrawStatus
(
ClientCard
*
pcard
,
int
x1
,
int
y1
,
int
x2
,
int
y2
)
{
adFont
->
draw
(
L"/"
,
recti
(
x1
-
4
,
y1
,
x1
+
4
,
y1
+
20
),
0xff000000
,
true
,
false
,
0
);
adFont
->
draw
(
L"/"
,
recti
(
x1
-
3
,
y1
+
1
,
x1
+
5
,
y1
+
21
),
0xffffffff
,
true
,
false
,
0
);
int
w
=
adFont
->
getDimension
(
pcard
->
atkstring
).
Width
;
adFont
->
draw
(
pcard
->
atkstring
,
recti
(
x1
-
5
-
w
,
y1
,
x1
-
5
,
y1
+
20
),
0xff000000
,
false
,
false
,
0
);
adFont
->
draw
(
pcard
->
atkstring
,
recti
(
x1
-
4
-
w
,
y1
+
1
,
x1
-
4
,
y1
+
21
),
pcard
->
attack
>
pcard
->
base_attack
?
0xffffff00
:
pcard
->
attack
<
pcard
->
base_attack
?
0xffff2090
:
0xffffffff
,
false
,
false
,
0
);
w
=
adFont
->
getDimension
(
pcard
->
defstring
).
Width
;
adFont
->
draw
(
pcard
->
defstring
,
recti
(
x1
+
4
,
y1
,
x1
+
4
+
w
,
y1
+
20
),
0xff000000
,
false
,
false
,
0
);
adFont
->
draw
(
pcard
->
defstring
,
recti
(
x1
+
5
,
y1
+
1
,
x1
+
5
+
w
,
y1
+
21
),
pcard
->
defense
>
pcard
->
base_defense
?
0xffffff00
:
pcard
->
defense
<
pcard
->
base_defense
?
0xffff2090
:
0xffffffff
,
false
,
false
,
0
);
adFont
->
draw
(
pcard
->
lvstring
,
recti
(
x2
,
y2
,
x2
+
2
,
y2
+
20
),
0xff000000
,
false
,
false
,
0
);
adFont
->
draw
(
pcard
->
lvstring
,
recti
(
x2
+
1
,
y2
,
x2
+
3
,
y2
+
21
),
(
pcard
->
type
&
TYPE_XYZ
)
?
0xffff80ff
:
(
pcard
->
type
&
TYPE_TUNER
)
?
0xffffff00
:
0xffffffff
,
false
,
false
,
0
);
}
void
Game
::
DrawGUI
()
{
if
(
imageLoading
.
size
())
{
std
::
map
<
irr
::
gui
::
CGUIImageButton
*
,
int
>::
iterator
mit
;
...
...
gframe/duelclient.cpp
View file @
97b1e996
...
...
@@ -1296,40 +1296,42 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
stHintMsg
->
setVisible
(
true
);
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_PLACE
&&
mainGame
->
chkAutoPos
->
isChecked
())
{
unsigned
int
filter
;
if
(
mainGame
->
dField
.
selectable_field
&
0x
1
f
)
{
respbuf
[
0
]
=
mainGame
->
dInfo
.
isFirst
?
0
:
1
;
respbuf
[
1
]
=
0x4
;
filter
=
mainGame
->
dField
.
selectable_field
&
0x
1
f
;
if
(
mainGame
->
dField
.
selectable_field
&
0x
7
f
)
{
respbuf
[
0
]
=
mainGame
->
LocalPlayer
(
0
)
;
respbuf
[
1
]
=
LOCATION_MZONE
;
filter
=
mainGame
->
dField
.
selectable_field
&
0x
7
f
;
}
else
if
(
mainGame
->
dField
.
selectable_field
&
0x1f00
)
{
respbuf
[
0
]
=
mainGame
->
dInfo
.
isFirst
?
0
:
1
;
respbuf
[
1
]
=
0x8
;
respbuf
[
0
]
=
mainGame
->
LocalPlayer
(
0
)
;
respbuf
[
1
]
=
LOCATION_SZONE
;
filter
=
(
mainGame
->
dField
.
selectable_field
>>
8
)
&
0x1f
;
}
else
if
(
mainGame
->
dField
.
selectable_field
&
0xc000
)
{
respbuf
[
0
]
=
mainGame
->
dInfo
.
isFirst
?
0
:
1
;
respbuf
[
1
]
=
0x8
;
respbuf
[
0
]
=
mainGame
->
LocalPlayer
(
0
)
;
respbuf
[
1
]
=
LOCATION_SZONE
;
filter
=
(
mainGame
->
dField
.
selectable_field
>>
14
)
&
0x3
;
pzone
=
1
;
}
else
if
(
mainGame
->
dField
.
selectable_field
&
0x
1
f0000
)
{
respbuf
[
0
]
=
mainGame
->
dInfo
.
isFirst
?
1
:
0
;
respbuf
[
1
]
=
0x4
;
filter
=
(
mainGame
->
dField
.
selectable_field
>>
16
)
&
0x
1
f
;
}
else
if
(
mainGame
->
dField
.
selectable_field
&
0x
7
f0000
)
{
respbuf
[
0
]
=
mainGame
->
LocalPlayer
(
1
)
;
respbuf
[
1
]
=
LOCATION_MZONE
;
filter
=
(
mainGame
->
dField
.
selectable_field
>>
16
)
&
0x
7
f
;
}
else
if
(
mainGame
->
dField
.
selectable_field
&
0x1f000000
)
{
respbuf
[
0
]
=
mainGame
->
dInfo
.
isFirst
?
1
:
0
;
respbuf
[
1
]
=
0x8
;
respbuf
[
0
]
=
mainGame
->
LocalPlayer
(
1
)
;
respbuf
[
1
]
=
LOCATION_SZONE
;
filter
=
(
mainGame
->
dField
.
selectable_field
>>
24
)
&
0x1f
;
}
else
{
respbuf
[
0
]
=
mainGame
->
dInfo
.
isFirst
?
1
:
0
;
respbuf
[
1
]
=
0x8
;
respbuf
[
0
]
=
mainGame
->
LocalPlayer
(
1
)
;
respbuf
[
1
]
=
LOCATION_SZONE
;
filter
=
(
mainGame
->
dField
.
selectable_field
>>
30
)
&
0x3
;
pzone
=
1
;
}
if
(
!
pzone
)
{
if
(
mainGame
->
chkRandomPos
->
isChecked
())
{
respbuf
[
2
]
=
rnd
.
real
()
*
5
;
while
(
!
(
filter
&
(
1
<<
respbuf
[
2
])))
respbuf
[
2
]
=
rnd
.
real
()
*
5
;
do
{
respbuf
[
2
]
=
rnd
.
real
()
*
7
;
}
while
(
!
(
filter
&
(
1
<<
respbuf
[
2
])))
;
}
else
{
if
(
filter
&
0x4
)
respbuf
[
2
]
=
2
;
if
(
filter
&
0x40
)
respbuf
[
2
]
=
6
;
else
if
(
filter
&
0x20
)
respbuf
[
2
]
=
5
;
else
if
(
filter
&
0x4
)
respbuf
[
2
]
=
2
;
else
if
(
filter
&
0x2
)
respbuf
[
2
]
=
1
;
else
if
(
filter
&
0x8
)
respbuf
[
2
]
=
3
;
else
if
(
filter
&
0x1
)
respbuf
[
2
]
=
0
;
...
...
gframe/event_handler.cpp
View file @
97b1e996
...
...
@@ -1346,7 +1346,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
case
MSG_SELECT_PLACE
:
case
MSG_SELECT_DISFIELD
:
{
if
(
!
(
hovered_location
&
LOCATION_ONFIELD
)
||
hovered_sequence
==
5
)
if
(
!
(
hovered_location
&
LOCATION_ONFIELD
))
break
;
unsigned
int
flag
=
1
<<
(
hovered_sequence
+
(
hovered_controler
<<
4
)
+
((
hovered_location
==
LOCATION_MZONE
)
?
0
:
8
));
if
(
flag
&
selectable_field
)
{
...
...
@@ -1360,10 +1360,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
unsigned
char
respbuf
[
80
];
int
filter
=
1
;
int
p
=
0
;
for
(
int
i
=
0
;
i
<
5
;
++
i
,
filter
<<=
1
)
{
for
(
int
i
=
0
;
i
<
7
;
++
i
,
filter
<<=
1
)
{
if
(
selected_field
&
filter
)
{
respbuf
[
p
]
=
mainGame
->
LocalPlayer
(
0
);
respbuf
[
p
+
1
]
=
0x4
;
respbuf
[
p
+
1
]
=
LOCATION_MZONE
;
respbuf
[
p
+
2
]
=
i
;
p
+=
3
;
}
...
...
@@ -1372,16 +1372,16 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
for
(
int
i
=
0
;
i
<
8
;
++
i
,
filter
<<=
1
)
{
if
(
selected_field
&
filter
)
{
respbuf
[
p
]
=
mainGame
->
LocalPlayer
(
0
);
respbuf
[
p
+
1
]
=
0x8
;
respbuf
[
p
+
1
]
=
LOCATION_SZONE
;
respbuf
[
p
+
2
]
=
i
;
p
+=
3
;
}
}
filter
=
0x10000
;
for
(
int
i
=
0
;
i
<
5
;
++
i
,
filter
<<=
1
)
{
for
(
int
i
=
0
;
i
<
7
;
++
i
,
filter
<<=
1
)
{
if
(
selected_field
&
filter
)
{
respbuf
[
p
]
=
mainGame
->
LocalPlayer
(
1
);
respbuf
[
p
+
1
]
=
0x4
;
respbuf
[
p
+
1
]
=
LOCATION_MZONE
;
respbuf
[
p
+
2
]
=
i
;
p
+=
3
;
}
...
...
@@ -1390,7 +1390,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
for
(
int
i
=
0
;
i
<
8
;
++
i
,
filter
<<=
1
)
{
if
(
selected_field
&
filter
)
{
respbuf
[
p
]
=
mainGame
->
LocalPlayer
(
1
);
respbuf
[
p
+
1
]
=
0x8
;
respbuf
[
p
+
1
]
=
LOCATION_SZONE
;
respbuf
[
p
+
2
]
=
i
;
p
+=
3
;
}
...
...
@@ -1916,49 +1916,49 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
switch
(
event
.
KeyInput
.
Key
)
{
case
irr
:
:
KEY_F1
:
loc_id
=
1004
;
for
(
int32
i
=
(
int32
)
grave
[
0
].
size
()
-
1
;
i
>=
0
;
--
i
)
display_cards
.
push_back
(
grave
[
0
][
i
]
);
for
(
auto
it
=
grave
[
0
].
rbegin
();
it
!=
grave
[
0
].
rend
();
++
it
)
display_cards
.
push_back
(
*
it
);
break
;
case
irr
:
:
KEY_F2
:
loc_id
=
1005
;
for
(
int32
i
=
(
int32
)
remove
[
0
].
size
()
-
1
;
i
>=
0
;
--
i
)
display_cards
.
push_back
(
remove
[
0
][
i
]
);
for
(
auto
it
=
remove
[
0
].
rbegin
();
it
!=
remove
[
0
].
rend
();
++
it
)
display_cards
.
push_back
(
*
it
);
break
;
case
irr
:
:
KEY_F3
:
loc_id
=
1006
;
for
(
int32
i
=
(
int32
)
extra
[
0
].
size
()
-
1
;
i
>=
0
;
--
i
)
display_cards
.
push_back
(
extra
[
0
][
i
]
);
for
(
auto
it
=
extra
[
0
].
rbegin
();
it
!=
extra
[
0
].
rend
();
++
it
)
display_cards
.
push_back
(
*
it
);
break
;
case
irr
:
:
KEY_F4
:
loc_id
=
1007
;
for
(
int32
i
=
0
;
i
<=
4
;
++
i
)
{
if
(
mzone
[
0
][
i
]
&&
mzone
[
0
][
i
]
->
overlayed
.
size
()
)
{
for
(
int32
j
=
0
;
j
<=
(
int32
)
mzone
[
0
][
i
]
->
overlayed
.
size
()
-
1
;
++
j
)
display_cards
.
push_back
(
mzone
[
0
][
i
]
->
overlayed
[
j
]
);
for
(
auto
it
=
mzone
[
0
].
begin
();
it
!=
mzone
[
0
].
end
();
++
it
)
{
if
(
*
it
)
{
for
(
auto
oit
=
(
*
it
)
->
overlayed
.
begin
();
oit
!=
(
*
it
)
->
overlayed
.
end
();
++
oit
)
display_cards
.
push_back
(
*
oit
);
}
}
break
;
case
irr
:
:
KEY_F5
:
loc_id
=
1004
;
for
(
int32
i
=
(
int32
)
grave
[
1
].
size
()
-
1
;
i
>=
0
;
--
i
)
display_cards
.
push_back
(
grave
[
1
][
i
]
);
for
(
auto
it
=
grave
[
1
].
rbegin
();
it
!=
grave
[
1
].
rend
();
++
it
)
display_cards
.
push_back
(
*
it
);
break
;
case
irr
:
:
KEY_F6
:
loc_id
=
1005
;
for
(
int32
i
=
(
int32
)
remove
[
1
].
size
()
-
1
;
i
>=
0
;
--
i
)
display_cards
.
push_back
(
remove
[
1
][
i
]
);
for
(
auto
it
=
remove
[
1
].
rbegin
();
it
!=
remove
[
1
].
rend
();
++
it
)
display_cards
.
push_back
(
*
it
);
break
;
case
irr
:
:
KEY_F7
:
loc_id
=
1006
;
for
(
int32
i
=
(
int32
)
extra
[
1
].
size
()
-
1
;
i
>=
0
;
--
i
)
display_cards
.
push_back
(
extra
[
1
][
i
]
);
for
(
auto
it
=
extra
[
1
].
rbegin
();
it
!=
extra
[
1
].
rend
();
++
it
)
display_cards
.
push_back
(
*
it
);
break
;
case
irr
:
:
KEY_F8
:
loc_id
=
1007
;
for
(
int32
i
=
0
;
i
<=
4
;
++
i
)
{
if
(
mzone
[
1
][
i
]
&&
mzone
[
1
][
i
]
->
overlayed
.
size
()
)
{
for
(
int32
j
=
0
;
j
<=
(
int32
)
mzone
[
1
][
i
]
->
overlayed
.
size
()
-
1
;
++
j
)
display_cards
.
push_back
(
mzone
[
1
][
i
]
->
overlayed
[
j
]
);
for
(
auto
it
=
mzone
[
1
].
begin
();
it
!=
mzone
[
1
].
end
();
++
it
)
{
if
(
*
it
)
{
for
(
auto
oit
=
(
*
it
)
->
overlayed
.
begin
();
oit
!=
(
*
it
)
->
overlayed
.
end
();
++
oit
)
display_cards
.
push_back
(
*
oit
);
}
}
break
;
...
...
@@ -2128,6 +2128,28 @@ void ClientField::GetHoverField(int x, int y) {
hovered_controler
=
0
;
hovered_location
=
LOCATION_MZONE
;
hovered_sequence
=
sequence
;
}
else
if
(
boardy
>=
matManager
.
vFieldMzone
[
0
][
5
][
0
].
Pos
.
Y
&&
boardy
<=
matManager
.
vFieldMzone
[
0
][
5
][
2
].
Pos
.
Y
)
{
if
(
sequence
==
1
)
{
if
(
usable_exmzone
!=
6
)
{
hovered_controler
=
0
;
hovered_location
=
LOCATION_MZONE
;
hovered_sequence
=
5
;
}
else
{
hovered_controler
=
1
;
hovered_location
=
LOCATION_MZONE
;
hovered_sequence
=
6
;
}
}
else
if
(
sequence
==
3
)
{
if
(
usable_exmzone
!=
5
)
{
hovered_controler
=
0
;
hovered_location
=
LOCATION_MZONE
;
hovered_sequence
=
6
;
}
else
{
hovered_controler
=
1
;
hovered_location
=
LOCATION_MZONE
;
hovered_sequence
=
5
;
}
}
}
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
;
...
...
gframe/game.h
View file @
97b1e996
...
...
@@ -91,6 +91,7 @@ public:
void
DrawCards
();
void
DrawCard
(
ClientCard
*
pcard
);
void
DrawMisc
();
void
DrawStatus
(
ClientCard
*
pcard
,
int
x1
,
int
y1
,
int
x2
,
int
y2
);
void
DrawGUI
();
void
DrawSpec
();
void
ShowElement
(
irr
::
gui
::
IGUIElement
*
element
,
int
autoframe
=
0
);
...
...
gframe/materials.cpp
View file @
97b1e996
...
...
@@ -17,7 +17,7 @@ Materials::Materials() {
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
(
vNegate
,
-
0.25
f
,
-
0.28
f
,
0.25
f
,
0.22
f
,
0
.01
f
,
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
);
...
...
@@ -188,6 +188,8 @@ Materials::Materials() {
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
);
SetS3DVertex
(
vFieldMzone
[
0
][
5
],
2.3
f
,
-
0.6
f
,
3.4
f
,
0.6
f
,
0
,
1
,
0
,
0
,
0
,
0
);
SetS3DVertex
(
vFieldMzone
[
0
][
6
],
4.5
f
,
-
0.6
f
,
5.6
f
,
0.6
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
...
...
@@ -203,6 +205,8 @@ Materials::Materials() {
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
);
SetS3DVertex
(
vFieldMzone
[
1
][
5
],
5.6
f
,
0.6
f
,
4.5
f
,
-
0.6
f
,
0
,
1
,
0
,
0
,
0
,
0
);
SetS3DVertex
(
vFieldMzone
[
1
][
6
],
3.4
f
,
0.6
f
,
2.3
f
,
-
0.6
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
...
...
gframe/materials.h
View file @
97b1e996
...
...
@@ -24,7 +24,7 @@ public:
S3DVertex
vFieldGrave
[
2
][
4
];
S3DVertex
vFieldExtra
[
2
][
4
];
S3DVertex
vFieldRemove
[
2
][
4
];
S3DVertex
vFieldMzone
[
2
][
5
][
4
];
S3DVertex
vFieldMzone
[
2
][
7
][
4
];
S3DVertex
vFieldSzone
[
2
][
8
][
4
];
irr
::
core
::
vector3df
vFieldContiAct
[
4
];
S3DVertex
vArrow
[
40
];
...
...
strings.conf
View file @
97b1e996
...
...
@@ -263,7 +263,7 @@
!
system
1233
每回合抽卡:
!
system
1234
主机名称:
!
system
1235
主机密码:
!
system
1236
旧规则(先攻抽卡、起动效果优先权等)
!
system
1236
规则:
!
system
1237
每回合时间:
!
system
1240
OCG
!
system
1241
TCG
...
...
@@ -278,6 +278,10 @@
!
system
1253
当前观战人数:
!
system
1254
卡组选择:
!
system
1255
准备完毕!
!
system
1260
大师规则
!
system
1261
大师规则2
!
system
1262
大师规则3
!
system
1263
大师规则4
!
system
1270
卡片信息
!
system
1271
消息记录
!
system
1272
清除记录
...
...
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