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
1d2a19f2
Commit
1d2a19f2
authored
Jun 11, 2015
by
salix5
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MSG_SELECT_CHAIN
parent
4fb0de1b
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
59 additions
and
21 deletions
+59
-21
gframe/client_card.cpp
gframe/client_card.cpp
+2
-0
gframe/client_card.h
gframe/client_card.h
+2
-0
gframe/client_field.cpp
gframe/client_field.cpp
+18
-5
gframe/client_field.h
gframe/client_field.h
+2
-1
gframe/duelclient.cpp
gframe/duelclient.cpp
+18
-8
gframe/event_handler.cpp
gframe/event_handler.cpp
+8
-3
ocgcore/playerop.cpp
ocgcore/playerop.cpp
+4
-1
script/c93108433.lua
script/c93108433.lua
+5
-3
No files found.
gframe/client_card.cpp
View file @
1d2a19f2
...
@@ -18,8 +18,10 @@ ClientCard::ClientCard() {
...
@@ -18,8 +18,10 @@ ClientCard::ClientCard() {
is_highlighting
=
false
;
is_highlighting
=
false
;
is_disabled
=
false
;
is_disabled
=
false
;
is_reversed
=
false
;
is_reversed
=
false
;
is_conti
=
false
;
cmdFlag
=
0
;
cmdFlag
=
0
;
code
=
0
;
code
=
0
;
conti_code
=
0
;
type
=
0
;
type
=
0
;
alias
=
0
;
alias
=
0
;
level
=
0
;
level
=
0
;
...
...
gframe/client_card.h
View file @
1d2a19f2
...
@@ -63,7 +63,9 @@ public:
...
@@ -63,7 +63,9 @@ public:
bool
is_showtarget
;
bool
is_showtarget
;
bool
is_highlighting
;
bool
is_highlighting
;
bool
is_reversed
;
bool
is_reversed
;
bool
is_conti
;
u32
code
;
u32
code
;
u32
conti_code
;
u32
alias
;
u32
alias
;
u32
type
;
u32
type
;
u32
level
;
u32
level
;
...
...
gframe/client_field.cpp
View file @
1d2a19f2
...
@@ -333,26 +333,34 @@ void ClientField::ClearChainSelect() {
...
@@ -333,26 +333,34 @@ void ClientField::ClearChainSelect() {
std
::
vector
<
ClientCard
*>::
iterator
cit
;
std
::
vector
<
ClientCard
*>::
iterator
cit
;
for
(
cit
=
activatable_cards
.
begin
();
cit
!=
activatable_cards
.
end
();
++
cit
)
{
for
(
cit
=
activatable_cards
.
begin
();
cit
!=
activatable_cards
.
end
();
++
cit
)
{
(
*
cit
)
->
cmdFlag
=
0
;
(
*
cit
)
->
cmdFlag
=
0
;
(
*
cit
)
->
conti_code
=
0
;
(
*
cit
)
->
is_selectable
=
false
;
(
*
cit
)
->
is_selectable
=
false
;
(
*
cit
)
->
is_selected
=
false
;
(
*
cit
)
->
is_selected
=
false
;
(
*
cit
)
->
is_conti
=
false
;
}
}
grave_act
=
false
;
grave_act
=
false
;
remove_act
=
false
;
remove_act
=
false
;
extra_act
=
false
;
}
}
void
ClientField
::
ShowSelectCard
(
bool
buttonok
)
{
void
ClientField
::
ShowSelectCard
(
bool
buttonok
,
bool
chain
)
{
if
(
selectable_cards
.
size
()
<=
5
)
{
if
(
selectable_cards
.
size
()
<=
5
)
{
int
startpos
=
30
+
125
*
(
5
-
selectable_cards
.
size
())
/
2
;
int
startpos
=
30
+
125
*
(
5
-
selectable_cards
.
size
())
/
2
;
for
(
size_t
i
=
0
;
i
<
selectable_cards
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
selectable_cards
.
size
();
++
i
)
{
if
(
selectable_cards
[
i
]
->
code
)
if
(
selectable_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
code
));
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
code
));
else
if
(
chain
&&
selectable_cards
[
i
]
->
is_conti
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
conti_code
));
else
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
if
(
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CHAIN
&&
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CARD
)
{
if
(
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CHAIN
&&
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CARD
)
{
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
selectable_cards
[
i
]
->
sequence
),
if
(
chain
&&
selectable_cards
[
i
]
->
is_conti
)
selectable_cards
[
i
]
->
sequence
+
1
);
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
else
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
selectable_cards
[
i
]
->
sequence
),
selectable_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);;
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);;
if
(
selectable_cards
[
i
]
->
controler
)
if
(
selectable_cards
[
i
]
->
controler
)
...
@@ -377,14 +385,19 @@ void ClientField::ShowSelectCard(bool buttonok) {
...
@@ -377,14 +385,19 @@ void ClientField::ShowSelectCard(bool buttonok) {
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
if
(
selectable_cards
[
i
]
->
code
)
if
(
selectable_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
code
));
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
code
));
else
if
(
chain
&&
selectable_cards
[
i
]
->
is_conti
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
conti_code
));
else
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
30
+
i
*
125
,
55
,
30
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
30
+
i
*
125
,
55
,
30
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
if
(
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CHAIN
&&
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CARD
)
{
if
(
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CHAIN
&&
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CARD
)
{
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
selectable_cards
[
i
]
->
sequence
),
if
(
chain
&&
selectable_cards
[
i
]
->
is_conti
)
selectable_cards
[
i
]
->
sequence
+
1
);
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
else
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
selectable_cards
[
i
]
->
sequence
),
selectable_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);
if
(
selectable_cards
[
i
]
->
controler
)
if
(
selectable_cards
[
i
]
->
controler
)
...
...
gframe/client_field.h
View file @
1d2a19f2
...
@@ -36,6 +36,7 @@ public:
...
@@ -36,6 +36,7 @@ public:
std
::
vector
<
ClientCard
*>
reposable_cards
;
std
::
vector
<
ClientCard
*>
reposable_cards
;
std
::
vector
<
ClientCard
*>
activatable_cards
;
std
::
vector
<
ClientCard
*>
activatable_cards
;
std
::
vector
<
ClientCard
*>
attackable_cards
;
std
::
vector
<
ClientCard
*>
attackable_cards
;
std
::
vector
<
ClientCard
*>
conti_cards
;
std
::
vector
<
int
>
activatable_descs
;
std
::
vector
<
int
>
activatable_descs
;
std
::
vector
<
int
>
select_options
;
std
::
vector
<
int
>
select_options
;
std
::
vector
<
ChainInfo
>
chains
;
std
::
vector
<
ChainInfo
>
chains
;
...
@@ -81,7 +82,7 @@ public:
...
@@ -81,7 +82,7 @@ public:
void
ClearCommandFlag
();
void
ClearCommandFlag
();
void
ClearSelect
();
void
ClearSelect
();
void
ClearChainSelect
();
void
ClearChainSelect
();
void
ShowSelectCard
(
bool
buttonok
=
false
);
void
ShowSelectCard
(
bool
buttonok
=
false
,
bool
chain
=
false
);
void
ShowChainCard
();
void
ShowChainCard
();
void
ReplaySwap
();
void
ReplaySwap
();
void
RefreshAllCards
();
void
RefreshAllCards
();
...
...
gframe/duelclient.cpp
View file @
1d2a19f2
...
@@ -1160,14 +1160,14 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
...
@@ -1160,14 +1160,14 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int
forced
=
BufferIO
::
ReadInt8
(
pbuf
);
int
forced
=
BufferIO
::
ReadInt8
(
pbuf
);
/*int hint0 = */
BufferIO
::
ReadInt32
(
pbuf
);
/*int hint0 = */
BufferIO
::
ReadInt32
(
pbuf
);
/*int hint1 = */
BufferIO
::
ReadInt32
(
pbuf
);
/*int hint1 = */
BufferIO
::
ReadInt32
(
pbuf
);
int
c
,
l
,
s
,
ss
,
desc
;
int
c
ode
,
c
,
l
,
s
,
ss
,
desc
;
ClientCard
*
pcard
;
ClientCard
*
pcard
;
bool
panelmode
=
false
;
bool
panelmode
=
false
;
mainGame
->
dField
.
chain_forced
=
(
forced
!=
0
);
mainGame
->
dField
.
chain_forced
=
(
forced
!=
0
);
mainGame
->
dField
.
activatable_cards
.
clear
();
mainGame
->
dField
.
activatable_cards
.
clear
();
mainGame
->
dField
.
activatable_descs
.
clear
();
mainGame
->
dField
.
activatable_descs
.
clear
();
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
/*code = */
BufferIO
::
ReadInt32
(
pbuf
);
code
=
BufferIO
::
ReadInt32
(
pbuf
);
c
=
mainGame
->
LocalPlayer
(
BufferIO
::
ReadInt8
(
pbuf
));
c
=
mainGame
->
LocalPlayer
(
BufferIO
::
ReadInt8
(
pbuf
));
l
=
BufferIO
::
ReadInt8
(
pbuf
);
l
=
BufferIO
::
ReadInt8
(
pbuf
);
s
=
BufferIO
::
ReadInt8
(
pbuf
);
s
=
BufferIO
::
ReadInt8
(
pbuf
);
...
@@ -1178,13 +1178,23 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
...
@@ -1178,13 +1178,23 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
dField
.
activatable_descs
.
push_back
(
desc
);
mainGame
->
dField
.
activatable_descs
.
push_back
(
desc
);
pcard
->
is_selectable
=
true
;
pcard
->
is_selectable
=
true
;
pcard
->
is_selected
=
false
;
pcard
->
is_selected
=
false
;
pcard
->
cmdFlag
|=
COMMAND_ACTIVATE
;
if
(
code
)
{
if
(
l
==
LOCATION_GRAVE
)
pcard
->
is_conti
=
true
;
mainGame
->
dField
.
grave_act
=
tru
e
;
pcard
->
conti_code
=
cod
e
;
if
(
l
==
LOCATION_REMOVED
)
mainGame
->
dField
.
conti_cards
.
push_back
(
pcard
);
mainGame
->
dField
.
remove_act
=
true
;
mainGame
->
dField
.
remove_act
=
true
;
if
(
l
&
0xc1
)
}
panelmode
=
true
;
else
{
pcard
->
cmdFlag
|=
COMMAND_ACTIVATE
;
if
(
l
==
LOCATION_GRAVE
)
mainGame
->
dField
.
grave_act
=
true
;
if
(
l
==
LOCATION_REMOVED
)
mainGame
->
dField
.
remove_act
=
true
;
if
(
l
==
LOCATION_EXTRA
)
mainGame
->
dField
.
extra_act
=
true
;
if
(
l
==
LOCATION_OVERLAY
)
panelmode
=
true
;
}
}
}
if
(
!
forced
&&
(
mainGame
->
ignore_chain
||
((
count
==
0
||
specount
==
0
)
&&
!
mainGame
->
always_chain
)))
{
if
(
!
forced
&&
(
mainGame
->
ignore_chain
||
((
count
==
0
||
specount
==
0
)
&&
!
mainGame
->
always_chain
)))
{
SetResponseI
(
-
1
);
SetResponseI
(
-
1
);
...
...
gframe/event_handler.cpp
View file @
1d2a19f2
...
@@ -303,6 +303,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -303,6 +303,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
for
(
size_t
i
=
0
;
i
<
remove
[
command_controler
].
size
();
++
i
)
for
(
size_t
i
=
0
;
i
<
remove
[
command_controler
].
size
();
++
i
)
if
(
remove
[
command_controler
][
i
]
->
cmdFlag
&
COMMAND_ACTIVATE
)
if
(
remove
[
command_controler
][
i
]
->
cmdFlag
&
COMMAND_ACTIVATE
)
selectable_cards
.
push_back
(
remove
[
command_controler
][
i
]);
selectable_cards
.
push_back
(
remove
[
command_controler
][
i
]);
selectable_cards
.
reserve
(
selectable_cards
.
size
()
+
conti_cards
.
size
());
selectable_cards
.
insert
(
selectable_cards
.
end
(),
conti_cards
.
begin
(),
conti_cards
.
end
());
break
;
break
;
}
}
case
LOCATION_EXTRA
:
{
case
LOCATION_EXTRA
:
{
...
@@ -314,7 +316,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -314,7 +316,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
mainGame
->
wCardSelect
->
setText
(
dataManager
.
GetSysString
(
566
));
mainGame
->
wCardSelect
->
setText
(
dataManager
.
GetSysString
(
566
));
list_command
=
COMMAND_ACTIVATE
;
list_command
=
COMMAND_ACTIVATE
;
ShowSelectCard
();
ShowSelectCard
(
true
,
true
);
}
}
break
;
break
;
}
}
...
@@ -1023,11 +1025,14 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1023,11 +1025,14 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
case
LOCATION_REMOVED
:
{
case
LOCATION_REMOVED
:
{
int
command_flag
=
0
;
int
command_flag
=
0
;
if
(
remove
[
hovered_controler
].
size
()
==
0
)
if
(
remove
[
hovered_controler
].
size
()
==
0
&&
conti_cards
.
size
()
==
0
)
break
;
break
;
for
(
size_t
i
=
0
;
i
<
remove
[
hovered_controler
].
size
();
++
i
)
for
(
size_t
i
=
0
;
i
<
remove
[
hovered_controler
].
size
();
++
i
)
command_flag
|=
remove
[
hovered_controler
][
i
]
->
cmdFlag
;
command_flag
|=
remove
[
hovered_controler
][
i
]
->
cmdFlag
;
command_flag
|=
COMMAND_LIST
;
if
(
conti_cards
.
size
())
command_flag
|=
COMMAND_ACTIVATE
;
if
(
remove
[
hovered_controler
].
size
())
command_flag
|=
COMMAND_LIST
;
list_command
=
1
;
list_command
=
1
;
ShowMenu
(
command_flag
,
x
,
y
);
ShowMenu
(
command_flag
,
x
,
y
);
break
;
break
;
...
...
ocgcore/playerop.cpp
View file @
1d2a19f2
...
@@ -317,7 +317,10 @@ int32 field::select_chain(uint16 step, uint8 playerid, uint8 spe_count, uint8 fo
...
@@ -317,7 +317,10 @@ int32 field::select_chain(uint16 step, uint8 playerid, uint8 spe_count, uint8 fo
for
(
uint32
i
=
0
;
i
<
core
.
select_chains
.
size
();
++
i
)
{
for
(
uint32
i
=
0
;
i
<
core
.
select_chains
.
size
();
++
i
)
{
effect
*
peffect
=
core
.
select_chains
[
i
].
triggering_effect
;
effect
*
peffect
=
core
.
select_chains
[
i
].
triggering_effect
;
card
*
pcard
=
peffect
->
handler
;
card
*
pcard
=
peffect
->
handler
;
pduel
->
write_buffer32
(
pcard
->
data
.
code
);
if
(
peffect
->
flag
&
EFFECT_FLAG_FIELD_ONLY
)
pduel
->
write_buffer32
(
pcard
->
data
.
code
);
else
pduel
->
write_buffer32
(
0
);
pduel
->
write_buffer32
(
pcard
->
get_info_location
());
pduel
->
write_buffer32
(
pcard
->
get_info_location
());
pduel
->
write_buffer32
(
peffect
->
description
);
pduel
->
write_buffer32
(
peffect
->
description
);
}
}
...
...
script/c93108433.lua
View file @
1d2a19f2
...
@@ -33,11 +33,13 @@ function c93108433.activate(e,tp,eg,ep,ev,re,r,rp)
...
@@ -33,11 +33,13 @@ function c93108433.activate(e,tp,eg,ep,ev,re,r,rp)
local
tc
=
Duel
.
GetFirstTarget
()
local
tc
=
Duel
.
GetFirstTarget
()
local
g
=
Duel
.
GetFieldGroup
(
tp
,
LOCATION_HAND
,
0
)
local
g
=
Duel
.
GetFieldGroup
(
tp
,
LOCATION_HAND
,
0
)
local
ct
=
g
:
GetCount
()
local
ct
=
g
:
GetCount
()
if
ct
>
0
and
tc
:
IsRelateToEffect
(
e
)
then
if
tc
:
IsRelateToEffect
(
e
)
then
g
:
AddCard
(
tc
)
g
:
AddCard
(
tc
)
Duel
.
SendtoDeck
(
g
,
nil
,
2
,
REASON_EFFECT
)
Duel
.
SendtoDeck
(
g
,
nil
,
2
,
REASON_EFFECT
)
Duel
.
ShuffleDeck
(
tp
)
Duel
.
ShuffleDeck
(
tp
)
Duel
.
BreakEffect
()
if
ct
>
0
then
Duel
.
Draw
(
tp
,
ct
,
REASON_EFFECT
)
Duel
.
BreakEffect
()
Duel
.
Draw
(
tp
,
ct
,
REASON_EFFECT
)
end
end
end
end
end
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