Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile-Cn-Ko-En
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fallenstardust
YGOMobile-Cn-Ko-En
Commits
7330ba83
Commit
7330ba83
authored
Apr 22, 2020
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
drag 宣言卡名与卡牌选择列表
可在准备界面刷新黑块
parent
824588e0
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
193 additions
and
10 deletions
+193
-10
Classes/gframe/client_field.cpp
Classes/gframe/client_field.cpp
+6
-2
Classes/gframe/client_field.h
Classes/gframe/client_field.h
+7
-3
Classes/gframe/event_handler.cpp
Classes/gframe/event_handler.cpp
+179
-4
Classes/gframe/game.cpp
Classes/gframe/game.cpp
+1
-1
No files found.
Classes/gframe/client_field.cpp
View file @
7330ba83
...
...
@@ -15,13 +15,17 @@ ClientField::ClientField() {
//drag cardtext and lists
is_dragging_cardtext
=
false
;
is_dragging_lstLog
=
false
;
is_dragging_tabHelper
=
false
;
is_dragging_tabSystem
=
false
;
is_dragging_lstReplayList
=
false
;
is_dragging_lstSinglePlayList
=
false
;
is_dragging_lstBotList
=
false
;
is_dragging_lstDecks
=
false
;
is_dragging_lstANCard
=
false
;
is_dragging_CardSelect
=
false
;
is_dragging_CardDisplay
=
false
;
is_dragging_tabHelper
=
false
;
is_dragging_tabSystem
=
false
;
dragging_tab_start_pos
=
0
;
dragging_tab_start_x
=
0
;
dragging_tab_start_y
=
0
;
hovered_card
=
0
;
...
...
Classes/gframe/client_field.h
View file @
7330ba83
...
...
@@ -120,13 +120,17 @@ public:
irr
::
gui
::
IGUIElement
*
panel
;
bool
is_dragging_cardtext
;
bool
is_dragging_lstLog
;
bool
is_dragging_tabHelper
;
bool
is_dragging_tabSystem
;
bool
is_dragging_lstReplayList
;
bool
is_dragging_lstSinglePlayList
;
bool
is_dragging_lstBotList
;
bool
is_dragging_lstDecks
;
int
dragging_tab_start_pos
;
bool
is_dragging_lstANCard
;
bool
is_dragging_CardSelect
;
bool
is_dragging_CardDisplay
;
bool
is_dragging_tabHelper
;
bool
is_dragging_tabSystem
;
int
dragging_tab_start_pos
;
int
dragging_tab_start_x
;
int
dragging_tab_start_y
;
std
::
vector
<
int
>
ancard
;
int
hovered_controler
;
...
...
Classes/gframe/event_handler.cpp
View file @
7330ba83
...
...
@@ -1978,6 +1978,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
position2di
mousepos
=
position2di
(
event
.
MouseInput
.
X
,
event
.
MouseInput
.
Y
);
switch
(
event
.
MouseInput
.
Event
)
{
case
irr
:
:
EMIE_LMOUSE_PRESSED_DOWN
:
{
//vertical scrollbar
if
(
root
->
getElementFromPoint
(
mousepos
)
==
mainGame
->
stText
)
{
if
(
!
mainGame
->
scrCardText
->
isVisible
())
{
break
;
...
...
@@ -2032,7 +2033,15 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
dragging_tab_start_y
=
event
.
MouseInput
.
Y
;
return
true
;
}
if
(
root
->
getElementFromPoint
(
mousepos
)
==
mainGame
->
lstANCard
)
{
if
(
!
mainGame
->
lstANCard
->
getVerticalScrollBar
()
->
isVisible
())
{
break
;
}
is_dragging_lstANCard
=
true
;
dragging_tab_start_pos
=
mainGame
->
lstANCard
->
getVerticalScrollBar
()
->
getPos
();
dragging_tab_start_y
=
event
.
MouseInput
.
Y
;
return
true
;
}
if
(
root
->
getElementFromPoint
(
mousepos
)
==
mainGame
->
tabHelper
){
if
(
!
mainGame
->
scrTabHelper
->
isVisible
())
{
break
;
...
...
@@ -2050,28 +2059,56 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
dragging_tab_start_pos
=
mainGame
->
scrTabSystem
->
getPos
();
dragging_tab_start_y
=
event
.
MouseInput
.
Y
;
return
true
;
}
//horizontal scollbar
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
if
(
root
->
getElementFromPoint
(
mousepos
)
==
mainGame
->
btnCardSelect
[
i
]
||
root
->
getElementFromPoint
(
mousepos
)
==
mainGame
->
stCardPos
[
i
])
{
if
(
!
mainGame
->
scrCardList
->
isVisible
())
{
break
;
}
is_dragging_CardSelect
=
true
;
dragging_tab_start_pos
=
mainGame
->
scrCardList
->
getPos
();
dragging_tab_start_x
=
event
.
MouseInput
.
X
;
return
true
;
}
if
(
root
->
getElementFromPoint
(
mousepos
)
==
mainGame
->
btnCardDisplay
[
i
]
||
root
->
getElementFromPoint
(
mousepos
)
==
mainGame
->
stDisplayPos
[
i
])
{
if
(
!
mainGame
->
scrDisplayList
->
isVisible
())
{
break
;
}
is_dragging_CardDisplay
=
true
;
dragging_tab_start_pos
=
mainGame
->
scrDisplayList
->
getPos
();
dragging_tab_start_x
=
event
.
MouseInput
.
X
;
return
true
;
}
}
break
;
}
case
irr
:
:
EMIE_LMOUSE_LEFT_UP
:
{
if
(
root
->
getElementFromPoint
(
mousepos
)
==
mainGame
->
stText
)
{
if
(
root
->
getElementFromPoint
(
mousepos
)
==
mainGame
->
stText
||
root
->
getElementFromPoint
(
mousepos
)
==
mainGame
->
wHostPrepare
)
{
mainGame
->
gMutex
.
lock
();
mainGame
->
textFont
->
setTransparency
(
true
);
mainGame
->
ClearChatMsg
();
mainGame
->
gMutex
.
unlock
();
break
;
}
//touch the
pic of detail
to refresh textfonts
}
//touch the
target place
to refresh textfonts
is_dragging_cardtext
=
false
;
is_dragging_lstLog
=
false
;
is_dragging_lstReplayList
=
false
;
is_dragging_lstSinglePlayList
=
false
;
is_dragging_lstBotList
=
false
;
is_dragging_lstDecks
=
false
;
is_dragging_lstANCard
=
false
;
is_dragging_CardSelect
=
false
;
is_dragging_CardDisplay
=
false
;
is_dragging_tabHelper
=
false
;
is_dragging_tabSystem
=
false
;
break
;
}
case
irr
:
:
EMIE_MOUSE_MOVED
:
{
//vertical scrollbar
if
(
is_dragging_cardtext
)
{
if
(
!
mainGame
->
scrCardText
->
isVisible
())
{
is_dragging_cardtext
=
false
;
...
...
@@ -2149,6 +2186,19 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
if
(
pos
>
max
)
pos
=
max
;
mainGame
->
lstDecks
->
getVerticalScrollBar
()
->
setPos
(
pos
);
mainGame
->
lstDecks
->
getItemAt
(
lstDeckspos
.
UpperLeftCorner
.
X
,
mainGame
->
lstDecks
->
getVerticalScrollBar
()
->
getPos
());
}
if
(
is_dragging_lstANCard
)
{
if
(
!
mainGame
->
lstANCard
->
getVerticalScrollBar
()
->
isVisible
())
{
is_dragging_lstANCard
=
false
;
break
;
}
rect
<
s32
>
lstANCardpos
=
mainGame
->
lstANCard
->
getRelativePosition
();
int
pos
=
dragging_tab_start_pos
+
((
dragging_tab_start_y
-
event
.
MouseInput
.
Y
));
int
max
=
mainGame
->
lstANCard
->
getVerticalScrollBar
()
->
getMax
();
if
(
pos
<
0
)
pos
=
0
;
if
(
pos
>
max
)
pos
=
max
;
mainGame
->
lstANCard
->
getVerticalScrollBar
()
->
setPos
(
pos
);
mainGame
->
lstANCard
->
getItemAt
(
lstANCardpos
.
UpperLeftCorner
.
X
,
mainGame
->
lstANCard
->
getVerticalScrollBar
()
->
getPos
());
}
if
(
is_dragging_tabHelper
)
{
if
(
!
mainGame
->
scrTabHelper
->
isVisible
())
{
...
...
@@ -2176,7 +2226,132 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
mainGame
->
scrTabSystem
->
setPos
(
pos
);
mainGame
->
tabSystem
->
setRelativePosition
(
recti
(
0
,
mainGame
->
scrTabSystem
->
getPos
()
*
-
1
,
tabSystempos
.
LowerRightCorner
.
X
,
tabSystempos
.
LowerRightCorner
.
Y
));
}
break
;
//horizontal scrollbar
if
(
is_dragging_CardSelect
)
{
if
(
!
mainGame
->
scrCardList
->
isVisible
())
{
is_dragging_CardSelect
=
false
;
break
;
}
int
spos
=
dragging_tab_start_pos
+
((
dragging_tab_start_x
-
event
.
MouseInput
.
X
));
int
max
=
mainGame
->
scrCardList
->
getMax
();
if
(
spos
<
0
)
spos
=
0
;
if
(
spos
>
max
)
spos
=
max
;
mainGame
->
scrCardList
->
setPos
(
spos
);
int
pos
=
mainGame
->
scrCardList
->
getPos
()
/
10
;
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
// draw selectable_cards[i + pos] in btnCardSelect[i]
mainGame
->
stCardPos
[
i
]
->
enableOverrideColor
(
false
);
// image
if
(
selectable_cards
[
i
+
pos
]
->
code
)
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
GetTexture
(
selectable_cards
[
i
+
pos
]
->
code
));
else
if
(
conti_selecting
)
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
GetTexture
(
selectable_cards
[
i
+
pos
]
->
chain_code
));
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
[
selectable_cards
[
i
+
pos
]
->
controler
]);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
((
30
+
i
*
125
)
*
mainGame
->
xScale
,
55
*
mainGame
->
yScale
,
(
30
+
120
+
i
*
125
)
*
mainGame
->
xScale
,
225
*
mainGame
->
yScale
));
// text
wchar_t
formatBuffer
[
2048
];
if
(
sort_list
.
size
())
{
if
(
sort_list
[
pos
+
i
]
>
0
)
myswprintf
(
formatBuffer
,
L"%d"
,
sort_list
[
pos
+
i
]);
else
myswprintf
(
formatBuffer
,
L""
);
}
else
{
if
(
conti_selecting
)
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
else
if
(
selectable_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
location
,
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
),
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
+
1
,
selectable_cards
[
i
+
pos
]
->
sequence
+
1
);
else
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
+
pos
]
->
location
,
selectable_cards
[
i
+
pos
]
->
sequence
),
selectable_cards
[
i
+
pos
]
->
sequence
+
1
);
}
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
// color
if
(
conti_selecting
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff56649f
);
else
if
(
selectable_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
{
if
(
selectable_cards
[
i
+
pos
]
->
owner
!=
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
if
(
selectable_cards
[
i
+
pos
]
->
is_selected
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0x6011113d
);
else
if
(
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff5a5a5a
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff56649f
);
}
else
if
(
selectable_cards
[
i
+
pos
]
->
location
==
LOCATION_DECK
||
selectable_cards
[
i
+
pos
]
->
location
==
LOCATION_EXTRA
||
selectable_cards
[
i
+
pos
]
->
location
==
LOCATION_REMOVED
)
{
if
(
selectable_cards
[
i
+
pos
]
->
position
&
POS_FACEDOWN
)
mainGame
->
stCardPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
if
(
selectable_cards
[
i
+
pos
]
->
is_selected
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0x6011113d
);
else
if
(
selectable_cards
[
i
+
pos
]
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff5a5a5a
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff56649f
);
}
else
{
if
(
selectable_cards
[
i
+
pos
]
->
is_selected
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0x6011113d
);
else
if
(
selectable_cards
[
i
+
pos
]
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff5a5a5a
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff56649f
);
}
}
break
;
}
if
(
is_dragging_CardDisplay
)
{
if
(
!
mainGame
->
scrDisplayList
->
isVisible
())
{
is_dragging_CardDisplay
=
false
;
break
;
}
int
dpos
=
dragging_tab_start_pos
+
((
dragging_tab_start_x
-
event
.
MouseInput
.
X
));
int
max
=
mainGame
->
scrDisplayList
->
getMax
();
if
(
dpos
<
0
)
dpos
=
0
;
if
(
dpos
>
max
)
dpos
=
max
;
mainGame
->
scrDisplayList
->
setPos
(
dpos
);
int
pos
=
mainGame
->
scrDisplayList
->
getPos
()
/
10
;
for
(
int
i
=
0
;
i
<
5
;
++
i
)
{
// draw display_cards[i + pos] in btnCardDisplay[i]
mainGame
->
stDisplayPos
[
i
]
->
enableOverrideColor
(
false
);
if
(
display_cards
[
i
+
pos
]
->
code
)
mainGame
->
btnCardDisplay
[
i
]
->
setImage
(
imageManager
.
GetTexture
(
display_cards
[
i
+
pos
]
->
code
));
else
mainGame
->
btnCardDisplay
[
i
]
->
setImage
(
imageManager
.
tCover
[
display_cards
[
i
+
pos
]
->
controler
]);
mainGame
->
btnCardDisplay
[
i
]
->
setRelativePosition
(
rect
<
s32
>
((
30
+
i
*
125
)
*
mainGame
->
xScale
,
55
*
mainGame
->
yScale
,
(
30
+
120
+
i
*
125
)
*
mainGame
->
xScale
,
225
*
mainGame
->
yScale
));
wchar_t
formatBuffer
[
2048
];
if
(
display_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
{
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
dataManager
.
FormatLocation
(
display_cards
[
i
+
pos
]
->
overlayTarget
->
location
,
display_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
),
display_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
+
1
,
display_cards
[
i
+
pos
]
->
sequence
+
1
);
}
else
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
display_cards
[
i
+
pos
]
->
location
,
display_cards
[
i
+
pos
]
->
sequence
),
display_cards
[
i
+
pos
]
->
sequence
+
1
);
mainGame
->
stDisplayPos
[
i
]
->
setText
(
formatBuffer
);
if
(
display_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
{
if
(
display_cards
[
i
+
pos
]
->
owner
!=
display_cards
[
i
+
pos
]
->
overlayTarget
->
controler
)
mainGame
->
stDisplayPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
// BackgroundColor: controller of the xyz monster
if
(
display_cards
[
i
+
pos
]
->
overlayTarget
->
controler
)
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xff5a5a5a
);
else
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xff56649f
);
}
else
if
(
display_cards
[
i
+
pos
]
->
location
==
LOCATION_EXTRA
||
display_cards
[
i
+
pos
]
->
location
==
LOCATION_REMOVED
)
{
if
(
display_cards
[
i
+
pos
]
->
position
&
POS_FACEDOWN
)
mainGame
->
stDisplayPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
if
(
display_cards
[
i
+
pos
]
->
controler
)
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xff5a5a5a
);
else
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xff56649f
);
}
else
{
if
(
display_cards
[
i
+
pos
]
->
controler
)
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xff5a5a5a
);
else
mainGame
->
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xff56649f
);
}
}
break
;
}
}
default:
break
;
}
...
...
Classes/gframe/game.cpp
View file @
7330ba83
...
...
@@ -893,7 +893,7 @@ bool Game::Initialize() {
chkBotHand
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
360
*
xScale
,
140
*
yScale
,
560
*
xScale
,
170
*
yScale
),
tabBot
,
-
1
,
dataManager
.
GetSysString
(
1384
));
chkBotNoCheckDeck
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
360
*
xScale
,
180
*
yScale
,
560
*
xScale
,
210
*
yScale
),
tabBot
,
-
1
,
dataManager
.
GetSysString
(
1229
));
chkBotNoShuffleDeck
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
360
*
xScale
,
220
*
yScale
,
560
*
xScale
,
250
*
yScale
),
tabBot
,
-
1
,
dataManager
.
GetSysString
(
1230
));
}
else
{
// avoid null
pointer
}
else
{
// avoid null
object reference
btnStartBot
=
env
->
addButton
(
rect
<
s32
>
(
0
,
0
,
0
,
0
),
wSinglePlay
);
btnBotCancel
=
env
->
addButton
(
rect
<
s32
>
(
0
,
0
,
0
,
0
),
wSinglePlay
);
btnStartBot
->
setVisible
(
false
);
...
...
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