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
YGOPRO-520DIY
ygopro
Commits
e7b0c400
Commit
e7b0c400
authored
Aug 19, 2016
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add MSG_PLAYER_HINT
parent
e825a8f7
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
144 additions
and
99 deletions
+144
-99
gframe/client_field.cpp
gframe/client_field.cpp
+4
-0
gframe/client_field.h
gframe/client_field.h
+2
-1
gframe/duelclient.cpp
gframe/duelclient.cpp
+14
-0
gframe/event_handler.cpp
gframe/event_handler.cpp
+94
-77
gframe/event_handler.h
gframe/event_handler.h
+0
-19
gframe/replay_mode.cpp
gframe/replay_mode.cpp
+5
-0
gframe/single_duel.cpp
gframe/single_duel.cpp
+8
-0
gframe/single_mode.cpp
gframe/single_mode.cpp
+5
-0
gframe/tag_duel.cpp
gframe/tag_duel.cpp
+10
-0
ocgcore
ocgcore
+1
-1
script
script
+1
-1
No files found.
gframe/client_field.cpp
View file @
e7b0c400
...
@@ -380,6 +380,7 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
...
@@ -380,6 +380,7 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
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
)
{
wchar_t
formatBuffer
[
2048
];
if
(
chain
&&
selectable_cards
[
i
]
->
is_conti
&&
!
selectable_cards
[
i
]
->
code
)
if
(
chain
&&
selectable_cards
[
i
]
->
is_conti
&&
!
selectable_cards
[
i
]
->
code
)
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
else
if
(
selectable_cards
[
i
]
->
location
==
LOCATION_OVERLAY
)
else
if
(
selectable_cards
[
i
]
->
location
==
LOCATION_OVERLAY
)
...
@@ -403,6 +404,7 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
...
@@ -403,6 +404,7 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
}
}
}
else
{
}
else
{
if
(
sort_list
[
i
])
{
if
(
sort_list
[
i
])
{
wchar_t
formatBuffer
[
2048
];
myswprintf
(
formatBuffer
,
L"%d"
,
sort_list
[
i
]);
myswprintf
(
formatBuffer
,
L"%d"
,
sort_list
[
i
]);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
}
else
mainGame
->
stCardPos
[
i
]
->
setText
(
L""
);
}
else
mainGame
->
stCardPos
[
i
]
->
setText
(
L""
);
...
@@ -447,6 +449,7 @@ void ClientField::ShowChainCard() {
...
@@ -447,6 +449,7 @@ void ClientField::ShowChainCard() {
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
);
wchar_t
formatBuffer
[
2048
];
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
selectable_cards
[
i
]
->
sequence
),
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
selectable_cards
[
i
]
->
sequence
),
selectable_cards
[
i
]
->
sequence
+
1
);
selectable_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
...
@@ -501,6 +504,7 @@ void ClientField::ShowLocationCard() {
...
@@ -501,6 +504,7 @@ void ClientField::ShowLocationCard() {
mainGame
->
btnCardDisplay
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardDisplay
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardDisplay
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardDisplay
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardDisplay
[
i
]
->
setVisible
(
true
);
mainGame
->
btnCardDisplay
[
i
]
->
setVisible
(
true
);
wchar_t
formatBuffer
[
2048
];
if
(
display_cards
[
i
]
->
location
==
LOCATION_OVERLAY
)
if
(
display_cards
[
i
]
->
location
==
LOCATION_OVERLAY
)
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
dataManager
.
FormatLocation
(
display_cards
[
i
]
->
overlayTarget
->
location
,
display_cards
[
i
]
->
overlayTarget
->
sequence
),
dataManager
.
FormatLocation
(
display_cards
[
i
]
->
overlayTarget
->
location
,
display_cards
[
i
]
->
overlayTarget
->
sequence
),
...
...
gframe/client_field.h
View file @
e7b0c400
...
@@ -65,6 +65,7 @@ public:
...
@@ -65,6 +65,7 @@ public:
std
::
vector
<
ClientCard
*>
selectsum_all
;
std
::
vector
<
ClientCard
*>
selectsum_all
;
std
::
vector
<
ClientCard
*>
display_cards
;
std
::
vector
<
ClientCard
*>
display_cards
;
std
::
vector
<
int
>
sort_list
;
std
::
vector
<
int
>
sort_list
;
std
::
map
<
int
,
int
>
player_desc_hints
[
2
];
bool
grave_act
;
bool
grave_act
;
bool
remove_act
;
bool
remove_act
;
bool
deck_act
;
bool
deck_act
;
...
@@ -114,11 +115,11 @@ public:
...
@@ -114,11 +115,11 @@ public:
int
command_location
;
int
command_location
;
size_t
command_sequence
;
size_t
command_sequence
;
ClientCard
*
hovered_card
;
ClientCard
*
hovered_card
;
int
hovered_player
;
ClientCard
*
clicked_card
;
ClientCard
*
clicked_card
;
ClientCard
*
command_card
;
ClientCard
*
command_card
;
ClientCard
*
highlighting_card
;
ClientCard
*
highlighting_card
;
int
list_command
;
int
list_command
;
wchar_t
formatBuffer
[
2048
];
virtual
bool
OnEvent
(
const
irr
::
SEvent
&
event
);
virtual
bool
OnEvent
(
const
irr
::
SEvent
&
event
);
void
GetHoverField
(
int
x
,
int
y
);
void
GetHoverField
(
int
x
,
int
y
);
...
...
gframe/duelclient.cpp
View file @
e7b0c400
...
@@ -2977,6 +2977,20 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
...
@@ -2977,6 +2977,20 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
}
return
true
;
return
true
;
}
}
case
MSG_PLAYER_HINT
:
{
int
player
=
mainGame
->
LocalPlayer
(
BufferIO
::
ReadInt8
(
pbuf
));
int
chtype
=
BufferIO
::
ReadInt8
(
pbuf
);
int
value
=
BufferIO
::
ReadInt32
(
pbuf
);
auto
&
player_desc_hints
=
mainGame
->
dField
.
player_desc_hints
[
player
];
if
(
chtype
==
PHINT_DESC_ADD
)
{
player_desc_hints
[
value
]
++
;
}
else
if
(
chtype
==
PHINT_DESC_REMOVE
)
{
player_desc_hints
[
value
]
--
;
if
(
player_desc_hints
[
value
]
==
0
)
player_desc_hints
.
erase
(
value
);
}
return
true
;
}
case
MSG_MATCH_KILL
:
{
case
MSG_MATCH_KILL
:
{
match_kill
=
BufferIO
::
ReadInt32
(
pbuf
);
match_kill
=
BufferIO
::
ReadInt32
(
pbuf
);
return
true
;
return
true
;
...
...
gframe/event_handler.cpp
View file @
e7b0c400
...
@@ -456,6 +456,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -456,6 +456,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case
BUTTON_CMD_SHOWLIST
:
{
case
BUTTON_CMD_SHOWLIST
:
{
mainGame
->
wCmdMenu
->
setVisible
(
false
);
mainGame
->
wCmdMenu
->
setVisible
(
false
);
selectable_cards
.
clear
();
selectable_cards
.
clear
();
wchar_t
formatBuffer
[
2048
];
switch
(
command_location
)
{
switch
(
command_location
)
{
case
LOCATION_DECK
:
{
case
LOCATION_DECK
:
{
for
(
int32
i
=
(
int32
)
deck
[
command_controler
].
size
()
-
1
;
i
>=
0
;
--
i
)
for
(
int32
i
=
(
int32
)
deck
[
command_controler
].
size
()
-
1
;
i
>=
0
;
--
i
)
...
@@ -612,6 +613,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -612,6 +613,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case
MSG_SORT_CARD
:
{
case
MSG_SORT_CARD
:
{
int
offset
=
mainGame
->
scrCardList
->
getPos
()
/
10
;
int
offset
=
mainGame
->
scrCardList
->
getPos
()
/
10
;
int
sel_seq
=
id
-
BUTTON_CARD_0
+
offset
;
int
sel_seq
=
id
-
BUTTON_CARD_0
+
offset
;
wchar_t
formatBuffer
[
2048
];
if
(
sort_list
[
sel_seq
])
{
if
(
sort_list
[
sel_seq
])
{
select_min
--
;
select_min
--
;
int
sel
=
sort_list
[
sel_seq
];
int
sel
=
sort_list
[
sel_seq
];
...
@@ -742,6 +744,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -742,6 +744,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
else
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
[
0
]);
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
[
0
]);
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
));
wchar_t
formatBuffer
[
2048
];
if
(
sort_list
.
size
())
{
if
(
sort_list
.
size
())
{
if
(
sort_list
[
pos
+
i
]
>
0
)
if
(
sort_list
[
pos
+
i
]
>
0
)
myswprintf
(
formatBuffer
,
L"%d"
,
sort_list
[
pos
+
i
]);
myswprintf
(
formatBuffer
,
L"%d"
,
sort_list
[
pos
+
i
]);
...
@@ -786,6 +789,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -786,6 +789,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
else
else
mainGame
->
btnCardDisplay
[
i
]
->
setImage
(
imageManager
.
tCover
[
0
]);
mainGame
->
btnCardDisplay
[
i
]
->
setImage
(
imageManager
.
tCover
[
0
]);
mainGame
->
btnCardDisplay
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
30
+
i
*
125
,
55
,
30
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardDisplay
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
30
+
i
*
125
,
55
,
30
+
120
+
i
*
125
,
225
));
wchar_t
formatBuffer
[
2048
];
if
(
display_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
{
if
(
display_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
{
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
dataManager
.
FormatLocation
(
display_cards
[
i
+
pos
]
->
overlayTarget
->
location
,
display_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
),
dataManager
.
FormatLocation
(
display_cards
[
i
+
pos
]
->
overlayTarget
->
location
,
display_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
),
...
@@ -919,6 +923,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -919,6 +923,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if
(
hovered_location
&
0xe
)
if
(
hovered_location
&
0xe
)
clicked_card
=
GetCard
(
hovered_controler
,
hovered_location
,
hovered_sequence
);
clicked_card
=
GetCard
(
hovered_controler
,
hovered_location
,
hovered_sequence
);
else
clicked_card
=
0
;
else
clicked_card
=
0
;
wchar_t
formatBuffer
[
2048
];
if
(
mainGame
->
dInfo
.
isReplay
)
{
if
(
mainGame
->
dInfo
.
isReplay
)
{
if
(
mainGame
->
wCardSelect
->
isVisible
())
if
(
mainGame
->
wCardSelect
->
isVisible
())
break
;
break
;
...
@@ -1222,6 +1227,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1222,6 +1227,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
DuelClient
::
SetResponseB
(
respbuf
,
selectable_cards
.
size
());
DuelClient
::
SetResponseB
(
respbuf
,
selectable_cards
.
size
());
DuelClient
::
SendResponse
();
DuelClient
::
SendResponse
();
}
else
{
}
else
{
wchar_t
formatBuffer
[
2048
];
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
204
),
select_counter_count
,
dataManager
.
GetCounterName
(
select_counter_type
));
myswprintf
(
formatBuffer
,
dataManager
.
GetSysString
(
204
),
select_counter_count
,
dataManager
.
GetCounterName
(
select_counter_type
));
mainGame
->
stHintMsg
->
setText
(
formatBuffer
);
mainGame
->
stHintMsg
->
setText
(
formatBuffer
);
}
}
...
@@ -1378,22 +1384,40 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1378,22 +1384,40 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if
(
x
<
300
)
if
(
x
<
300
)
break
;
break
;
ClientCard
*
mcard
=
0
;
ClientCard
*
mcard
=
0
;
int
mplayer
=
-
1
;
if
(
!
panel
||
!
panel
->
isVisible
()
||
!
panel
->
getRelativePosition
().
isPointInside
(
pos
))
{
if
(
!
panel
||
!
panel
->
isVisible
()
||
!
panel
->
getRelativePosition
().
isPointInside
(
pos
))
{
GetHoverField
(
x
,
y
);
GetHoverField
(
x
,
y
);
if
(
hovered_location
&
0xe
)
if
(
hovered_location
&
0xe
)
mcard
=
GetCard
(
hovered_controler
,
hovered_location
,
hovered_sequence
);
mcard
=
GetCard
(
hovered_controler
,
hovered_location
,
hovered_sequence
);
else
if
(
hovered_location
==
LOCATION_GRAVE
&&
grave
[
hovered_controler
].
size
())
else
if
(
hovered_location
==
LOCATION_GRAVE
)
{
mcard
=
*
(
grave
[
hovered_controler
].
rbegin
());
if
(
grave
[
hovered_controler
].
size
())
else
if
(
hovered_location
==
LOCATION_REMOVED
&&
remove
[
hovered_controler
].
size
())
{
mcard
=
grave
[
hovered_controler
].
back
();
mcard
=
*
(
remove
[
hovered_controler
].
rbegin
());
}
else
if
(
hovered_location
==
LOCATION_REMOVED
)
{
if
(
mcard
->
position
&
POS_FACEDOWN
)
if
(
remove
[
hovered_controler
].
size
())
{
mcard
=
0
;
mcard
=
remove
[
hovered_controler
].
back
();
}
else
if
(
hovered_location
==
LOCATION_DECK
&&
deck
[
hovered_controler
].
size
())
if
(
mcard
->
position
&
POS_FACEDOWN
)
mcard
=
*
(
deck
[
hovered_controler
].
rbegin
());
mcard
=
0
;
else
mcard
=
0
;
}
}
else
if
(
hovered_location
==
LOCATION_DECK
)
{
if
(
deck
[
hovered_controler
].
size
())
mcard
=
deck
[
hovered_controler
].
back
();
}
else
{
if
(
irr
::
core
::
recti
(
327
,
8
,
630
,
51
).
isPointInside
(
pos
))
mplayer
=
0
;
else
if
(
irr
::
core
::
recti
(
689
,
8
,
991
,
51
).
isPointInside
(
pos
))
mplayer
=
1
;
}
}
}
if
(
hovered_location
==
LOCATION_HAND
&&
(
mainGame
->
dInfo
.
is_shuffling
||
mainGame
->
dInfo
.
curMsg
==
MSG_SHUFFLE_HAND
))
if
(
hovered_location
==
LOCATION_HAND
&&
(
mainGame
->
dInfo
.
is_shuffling
||
mainGame
->
dInfo
.
curMsg
==
MSG_SHUFFLE_HAND
))
mcard
=
0
;
mcard
=
0
;
if
(
mcard
==
0
&&
mplayer
<
0
)
mainGame
->
stTip
->
setVisible
(
false
);
else
if
(
mcard
==
hovered_card
&&
mplayer
==
hovered_player
)
{
if
(
mainGame
->
stTip
->
isVisible
())
{
irr
::
core
::
recti
tpos
=
mainGame
->
stTip
->
getRelativePosition
();
mainGame
->
stTip
->
setRelativePosition
(
irr
::
core
::
position2di
(
x
-
tpos
.
getWidth
()
-
10
,
mcard
?
y
-
tpos
.
getHeight
()
-
10
:
y
+
10
));
}
}
if
(
mcard
!=
hovered_card
)
{
if
(
mcard
!=
hovered_card
)
{
if
(
hovered_card
)
{
if
(
hovered_card
)
{
if
(
hovered_card
->
location
==
LOCATION_HAND
&&
!
mainGame
->
dInfo
.
is_shuffling
&&
mainGame
->
dInfo
.
curMsg
!=
MSG_SHUFFLE_HAND
)
{
if
(
hovered_card
->
location
==
LOCATION_HAND
&&
!
mainGame
->
dInfo
.
is_shuffling
&&
mainGame
->
dInfo
.
curMsg
!=
MSG_SHUFFLE_HAND
)
{
...
@@ -1425,22 +1449,20 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1425,22 +1449,20 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
if
(
mcard
->
equipTarget
)
if
(
mcard
->
equipTarget
)
mcard
->
equipTarget
->
is_showequip
=
true
;
mcard
->
equipTarget
->
is_showequip
=
true
;
if
(
mcard
->
equipped
.
size
())
for
(
auto
cit
=
mcard
->
equipped
.
begin
();
cit
!=
mcard
->
equipped
.
end
();
++
cit
)
for
(
auto
cit
=
mcard
->
equipped
.
begin
();
cit
!=
mcard
->
equipped
.
end
();
++
cit
)
(
*
cit
)
->
is_showequip
=
true
;
(
*
cit
)
->
is_showequip
=
true
;
for
(
auto
cit
=
mcard
->
cardTarget
.
begin
();
cit
!=
mcard
->
cardTarget
.
end
();
++
cit
)
if
(
mcard
->
cardTarget
.
size
())
(
*
cit
)
->
is_showtarget
=
true
;
for
(
auto
cit
=
mcard
->
cardTarget
.
begin
();
cit
!=
mcard
->
cardTarget
.
end
();
++
cit
)
for
(
auto
cit
=
mcard
->
ownerTarget
.
begin
();
cit
!=
mcard
->
ownerTarget
.
end
();
++
cit
)
(
*
cit
)
->
is_showtarget
=
true
;
(
*
cit
)
->
is_showtarget
=
true
;
if
(
mcard
->
ownerTarget
.
size
())
for
(
auto
cit
=
mcard
->
ownerTarget
.
begin
();
cit
!=
mcard
->
ownerTarget
.
end
();
++
cit
)
(
*
cit
)
->
is_showtarget
=
true
;
if
(
mcard
->
code
)
{
if
(
mcard
->
code
)
{
mainGame
->
ShowCardInfo
(
mcard
->
code
);
mainGame
->
ShowCardInfo
(
mcard
->
code
);
if
(
mcard
->
location
&
0xe
)
{
if
(
mcard
->
location
&
0xe
)
{
std
::
wstring
str
;
std
::
wstring
str
;
wchar_t
formatBuffer
[
2048
];
myswprintf
(
formatBuffer
,
L"%ls"
,
dataManager
.
GetName
(
mcard
->
code
));
str
.
append
(
formatBuffer
);
if
(
mcard
->
type
&
TYPE_MONSTER
)
{
if
(
mcard
->
type
&
TYPE_MONSTER
)
{
myswprintf
(
formatBuffer
,
L"%ls"
,
dataManager
.
GetName
(
mcard
->
code
));
str
.
append
(
formatBuffer
);
if
(
mcard
->
alias
&&
(
mcard
->
alias
<
mcard
->
code
-
10
||
mcard
->
alias
>
mcard
->
code
+
10
)
if
(
mcard
->
alias
&&
(
mcard
->
alias
<
mcard
->
code
-
10
||
mcard
->
alias
>
mcard
->
code
+
10
)
&&
wcscmp
(
dataManager
.
GetName
(
mcard
->
code
),
dataManager
.
GetName
(
mcard
->
alias
)))
{
&&
wcscmp
(
dataManager
.
GetName
(
mcard
->
code
),
dataManager
.
GetName
(
mcard
->
alias
)))
{
myswprintf
(
formatBuffer
,
L"
\n
(%ls)"
,
dataManager
.
GetName
(
mcard
->
alias
));
myswprintf
(
formatBuffer
,
L"
\n
(%ls)"
,
dataManager
.
GetName
(
mcard
->
alias
));
...
@@ -1456,32 +1478,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1456,32 +1478,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
myswprintf
(
formatBuffer
,
L"
\n
%d/%d"
,
mcard
->
lscale
,
mcard
->
rscale
);
myswprintf
(
formatBuffer
,
L"
\n
%d/%d"
,
mcard
->
lscale
,
mcard
->
rscale
);
str
.
append
(
formatBuffer
);
str
.
append
(
formatBuffer
);
}
}
if
(
mcard
->
counters
.
size
())
{
for
(
std
::
map
<
int
,
int
>::
iterator
ctit
=
mcard
->
counters
.
begin
();
ctit
!=
mcard
->
counters
.
end
();
++
ctit
)
{
myswprintf
(
formatBuffer
,
L"
\n
[%ls]: %d"
,
dataManager
.
GetCounterName
(
ctit
->
first
),
ctit
->
second
);
str
.
append
(
formatBuffer
);
}
}
if
(
mcard
->
cHint
&&
mcard
->
chValue
&&
(
mcard
->
location
&
LOCATION_ONFIELD
))
{
if
(
mcard
->
cHint
==
CHINT_TURN
)
myswprintf
(
formatBuffer
,
L"
\n
%ls%d"
,
dataManager
.
GetSysString
(
211
),
mcard
->
chValue
);
else
if
(
mcard
->
cHint
==
CHINT_CARD
)
myswprintf
(
formatBuffer
,
L"
\n
%ls%ls"
,
dataManager
.
GetSysString
(
212
),
dataManager
.
GetName
(
mcard
->
chValue
));
else
if
(
mcard
->
cHint
==
CHINT_RACE
)
myswprintf
(
formatBuffer
,
L"
\n
%ls%ls"
,
dataManager
.
GetSysString
(
213
),
dataManager
.
FormatRace
(
mcard
->
chValue
));
else
if
(
mcard
->
cHint
==
CHINT_ATTRIBUTE
)
myswprintf
(
formatBuffer
,
L"
\n
%ls%ls"
,
dataManager
.
GetSysString
(
214
),
dataManager
.
FormatAttribute
(
mcard
->
chValue
));
else
if
(
mcard
->
cHint
==
CHINT_NUMBER
)
myswprintf
(
formatBuffer
,
L"
\n
%ls%d"
,
dataManager
.
GetSysString
(
215
),
mcard
->
chValue
);
str
.
append
(
formatBuffer
);
}
for
(
auto
iter
=
mcard
->
desc_hints
.
begin
();
iter
!=
mcard
->
desc_hints
.
end
();
++
iter
)
{
myswprintf
(
formatBuffer
,
L"
\n
*%ls"
,
dataManager
.
GetDesc
(
iter
->
first
));
str
.
append
(
formatBuffer
);
}
}
else
{
}
else
{
myswprintf
(
formatBuffer
,
L"%ls"
,
dataManager
.
GetName
(
mcard
->
code
));
str
.
append
(
formatBuffer
);
if
(
mcard
->
alias
&&
(
mcard
->
alias
<
mcard
->
code
-
10
||
mcard
->
alias
>
mcard
->
code
+
10
))
{
if
(
mcard
->
alias
&&
(
mcard
->
alias
<
mcard
->
code
-
10
||
mcard
->
alias
>
mcard
->
code
+
10
))
{
myswprintf
(
formatBuffer
,
L"
\n
(%ls)"
,
dataManager
.
GetName
(
mcard
->
alias
));
myswprintf
(
formatBuffer
,
L"
\n
(%ls)"
,
dataManager
.
GetName
(
mcard
->
alias
));
str
.
append
(
formatBuffer
);
str
.
append
(
formatBuffer
);
...
@@ -1490,33 +1487,31 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1490,33 +1487,31 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
myswprintf
(
formatBuffer
,
L"
\n
%d/%d"
,
mcard
->
lscale
,
mcard
->
rscale
);
myswprintf
(
formatBuffer
,
L"
\n
%d/%d"
,
mcard
->
lscale
,
mcard
->
rscale
);
str
.
append
(
formatBuffer
);
str
.
append
(
formatBuffer
);
}
}
if
(
mcard
->
counters
.
size
())
{
}
for
(
std
::
map
<
int
,
int
>::
iterator
ctit
=
mcard
->
counters
.
begin
();
ctit
!=
mcard
->
counters
.
end
();
++
ctit
)
{
for
(
std
::
map
<
int
,
int
>::
iterator
ctit
=
mcard
->
counters
.
begin
();
ctit
!=
mcard
->
counters
.
end
();
++
ctit
)
{
myswprintf
(
formatBuffer
,
L"
\n
[%ls]: %d"
,
dataManager
.
GetCounterName
(
ctit
->
first
),
ctit
->
second
);
myswprintf
(
formatBuffer
,
L"
\n
[%ls]: %d"
,
dataManager
.
GetCounterName
(
ctit
->
first
),
ctit
->
second
);
str
.
append
(
formatBuffer
);
str
.
append
(
formatBuffer
);
}
}
}
if
(
mcard
->
cHint
&&
mcard
->
chValue
&&
(
mcard
->
location
&
LOCATION_ONFIELD
))
{
if
(
mcard
->
cHint
&&
mcard
->
chValue
&&
(
mcard
->
location
&
LOCATION_ONFIELD
))
{
if
(
mcard
->
cHint
==
CHINT_TURN
)
if
(
mcard
->
cHint
==
CHINT_TURN
)
myswprintf
(
formatBuffer
,
L"
\n
%ls%d"
,
dataManager
.
GetSysString
(
211
),
mcard
->
chValue
);
myswprintf
(
formatBuffer
,
L"
\n
%ls%d"
,
dataManager
.
GetSysString
(
211
),
mcard
->
chValue
);
else
if
(
mcard
->
cHint
==
CHINT_CARD
)
else
if
(
mcard
->
cHint
==
CHINT_CARD
)
myswprintf
(
formatBuffer
,
L"
\n
%ls%ls"
,
dataManager
.
GetSysString
(
212
),
dataManager
.
GetName
(
mcard
->
chValue
));
myswprintf
(
formatBuffer
,
L"
\n
%ls%ls"
,
dataManager
.
GetSysString
(
212
),
dataManager
.
GetName
(
mcard
->
chValue
));
else
if
(
mcard
->
cHint
==
CHINT_RACE
)
else
if
(
mcard
->
cHint
==
CHINT_RACE
)
myswprintf
(
formatBuffer
,
L"
\n
%ls%ls"
,
dataManager
.
GetSysString
(
213
),
dataManager
.
FormatRace
(
mcard
->
chValue
));
myswprintf
(
formatBuffer
,
L"
\n
%ls%ls"
,
dataManager
.
GetSysString
(
213
),
dataManager
.
FormatRace
(
mcard
->
chValue
));
else
if
(
mcard
->
cHint
==
CHINT_ATTRIBUTE
)
else
if
(
mcard
->
cHint
==
CHINT_ATTRIBUTE
)
myswprintf
(
formatBuffer
,
L"
\n
%ls%ls"
,
dataManager
.
GetSysString
(
214
),
dataManager
.
FormatAttribute
(
mcard
->
chValue
));
myswprintf
(
formatBuffer
,
L"
\n
%ls%ls"
,
dataManager
.
GetSysString
(
214
),
dataManager
.
FormatAttribute
(
mcard
->
chValue
));
else
if
(
mcard
->
cHint
==
CHINT_NUMBER
)
else
if
(
mcard
->
cHint
==
CHINT_NUMBER
)
myswprintf
(
formatBuffer
,
L"
\n
%ls%d"
,
dataManager
.
GetSysString
(
215
),
mcard
->
chValue
);
myswprintf
(
formatBuffer
,
L"
\n
%ls%d"
,
dataManager
.
GetSysString
(
215
),
mcard
->
chValue
);
str
.
append
(
formatBuffer
);
str
.
append
(
formatBuffer
);
}
}
for
(
auto
iter
=
mcard
->
desc_hints
.
begin
();
iter
!=
mcard
->
desc_hints
.
end
();
++
iter
)
{
for
(
auto
iter
=
mcard
->
desc_hints
.
begin
();
iter
!=
mcard
->
desc_hints
.
end
();
++
iter
)
{
myswprintf
(
formatBuffer
,
L"
\n
*%ls"
,
dataManager
.
GetDesc
(
iter
->
first
));
myswprintf
(
formatBuffer
,
L"
\n
*%ls"
,
dataManager
.
GetDesc
(
iter
->
first
));
str
.
append
(
formatBuffer
);
str
.
append
(
formatBuffer
);
}
}
}
mainGame
->
stTip
->
setVisible
(
true
);
mainGame
->
stTip
->
setVisible
(
true
);
irr
::
core
::
dimension2d
<
unsigned
int
>
dtip
=
mainGame
->
textFont
->
getDimension
(
str
.
c_str
());
irr
::
core
::
dimension2d
<
unsigned
int
>
dtip
=
mainGame
->
textFont
->
getDimension
(
str
.
c_str
())
+
irr
::
core
::
dimension2d
<
unsigned
int
>
(
10
,
10
)
;
mainGame
->
stTip
->
setRelativePosition
(
recti
(
x
-
10
-
dtip
.
Width
,
y
-
10
-
dtip
.
Height
,
x
,
y
));
mainGame
->
stTip
->
setRelativePosition
(
recti
(
x
-
10
-
dtip
.
Width
,
y
-
10
-
dtip
.
Height
,
x
-
10
,
y
-
10
));
mainGame
->
stTip
->
setText
(
str
.
c_str
());
mainGame
->
stTip
->
setText
(
str
.
c_str
());
}
}
}
else
{
}
else
{
...
@@ -1529,15 +1524,36 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1529,15 +1524,36 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
scrCardText
->
setVisible
(
false
);
mainGame
->
scrCardText
->
setVisible
(
false
);
}
}
}
else
{
mainGame
->
stTip
->
setVisible
(
false
);
}
}
hovered_card
=
mcard
;
hovered_card
=
mcard
;
}
else
{
}
if
(
mainGame
->
stTip
->
isVisible
())
{
if
(
mplayer
!=
hovered_player
)
{
irr
::
core
::
recti
tpos
=
mainGame
->
stTip
->
getRelativePosition
();
if
(
mplayer
>=
0
)
{
mainGame
->
stTip
->
setRelativePosition
(
irr
::
core
::
position2di
(
x
-
tpos
.
getWidth
()
-
10
,
y
-
tpos
.
getHeight
()
-
10
));
const
wchar_t
*
player_name
;
if
(
mplayer
==
0
)
{
if
(
!
mainGame
->
dInfo
.
isTag
||
!
mainGame
->
dInfo
.
tag_player
[
0
])
player_name
=
mainGame
->
dInfo
.
hostname
;
else
player_name
=
mainGame
->
dInfo
.
hostname_tag
;
}
else
{
if
(
!
mainGame
->
dInfo
.
isTag
||
!
mainGame
->
dInfo
.
tag_player
[
1
])
player_name
=
mainGame
->
dInfo
.
clientname
;
else
player_name
=
mainGame
->
dInfo
.
clientname_tag
;
}
std
::
wstring
str
(
player_name
);
wchar_t
formatBuffer
[
2048
];
const
auto
&
player_desc_hints
=
mainGame
->
dField
.
player_desc_hints
[
mplayer
];
for
(
auto
iter
=
player_desc_hints
.
begin
();
iter
!=
player_desc_hints
.
end
();
++
iter
)
{
myswprintf
(
formatBuffer
,
L"
\n
*%ls"
,
dataManager
.
GetDesc
(
iter
->
first
));
str
.
append
(
formatBuffer
);
}
mainGame
->
stTip
->
setVisible
(
true
);
irr
::
core
::
dimension2d
<
unsigned
int
>
dtip
=
mainGame
->
textFont
->
getDimension
(
str
.
c_str
())
+
irr
::
core
::
dimension2d
<
unsigned
int
>
(
10
,
10
);
mainGame
->
stTip
->
setRelativePosition
(
recti
(
x
-
10
-
dtip
.
Width
,
y
+
10
,
x
-
10
,
y
+
10
+
dtip
.
Height
));
mainGame
->
stTip
->
setText
(
str
.
c_str
());
}
}
hovered_player
=
mplayer
;
}
}
break
;
break
;
}
}
...
@@ -1669,6 +1685,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1669,6 +1685,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
break
;
}
}
if
(
display_cards
.
size
())
{
if
(
display_cards
.
size
())
{
wchar_t
formatBuffer
[
2048
];
myswprintf
(
formatBuffer
,
L"%ls(%d)"
,
dataManager
.
GetSysString
(
loc_id
),
display_cards
.
size
());
myswprintf
(
formatBuffer
,
L"%ls(%d)"
,
dataManager
.
GetSysString
(
loc_id
),
display_cards
.
size
());
mainGame
->
wCardDisplay
->
setText
(
formatBuffer
);
mainGame
->
wCardDisplay
->
setText
(
formatBuffer
);
ShowLocationCard
();
ShowLocationCard
();
...
@@ -1844,7 +1861,7 @@ void ClientField::GetHoverField(int x, int y) {
...
@@ -1844,7 +1861,7 @@ void ClientField::GetHoverField(int x, int y) {
hovered_sequence
=
0
;
hovered_sequence
=
0
;
}
}
}
}
}
}
}
}
void
ClientField
::
ShowMenu
(
int
flag
,
int
x
,
int
y
)
{
void
ClientField
::
ShowMenu
(
int
flag
,
int
x
,
int
y
)
{
if
(
!
flag
)
{
if
(
!
flag
)
{
...
...
gframe/event_handler.h
View file @
e7b0c400
...
@@ -5,23 +5,4 @@
...
@@ -5,23 +5,4 @@
#include "game.h"
#include "game.h"
#include "client_card.h"
#include "client_card.h"
namespace
ygo
{
class
EventHandler
:
public
irr
::
IEventReceiver
{
public:
virtual
bool
OnEvent
(
const
irr
::
SEvent
&
event
);
void
GetHoverField
(
int
x
,
int
y
);
void
ShowMenu
(
int
flag
,
int
x
,
int
y
);
irr
::
gui
::
IGUIElement
*
panel
;
int
hovered_controler
;
int
hovered_location
;
int
hovered_sequence
;
ClientCard
*
hovered_card
;
ClientCard
*
clicked_card
;
wchar_t
formatBuffer
[
256
];
};
}
#endif //EVENT_HANDLER_H
#endif //EVENT_HANDLER_H
gframe/replay_mode.cpp
View file @
e7b0c400
...
@@ -765,6 +765,11 @@ bool ReplayMode::ReplayAnalyze(char* msg, unsigned int len) {
...
@@ -765,6 +765,11 @@ bool ReplayMode::ReplayAnalyze(char* msg, unsigned int len) {
DuelClient
::
ClientAnalyze
(
offset
,
pbuf
-
offset
);
DuelClient
::
ClientAnalyze
(
offset
,
pbuf
-
offset
);
break
;
break
;
}
}
case
MSG_PLAYER_HINT
:
{
pbuf
+=
6
;
DuelClient
::
ClientAnalyze
(
offset
,
pbuf
-
offset
);
break
;
}
case
MSG_MATCH_KILL
:
{
case
MSG_MATCH_KILL
:
{
pbuf
+=
4
;
pbuf
+=
4
;
break
;
break
;
...
...
gframe/single_duel.cpp
View file @
e7b0c400
...
@@ -1289,6 +1289,14 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
...
@@ -1289,6 +1289,14 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
NetServer
::
ReSendToPlayer
(
*
oit
);
NetServer
::
ReSendToPlayer
(
*
oit
);
break
;
break
;
}
}
case
MSG_PLAYER_HINT
:
{
pbuf
+=
6
;
NetServer
::
SendBufferToPlayer
(
players
[
0
],
STOC_GAME_MSG
,
offset
,
pbuf
-
offset
);
NetServer
::
ReSendToPlayer
(
players
[
1
]);
for
(
auto
oit
=
observers
.
begin
();
oit
!=
observers
.
end
();
++
oit
)
NetServer
::
ReSendToPlayer
(
*
oit
);
break
;
}
case
MSG_MATCH_KILL
:
{
case
MSG_MATCH_KILL
:
{
int
code
=
BufferIO
::
ReadInt32
(
pbuf
);
int
code
=
BufferIO
::
ReadInt32
(
pbuf
);
if
(
match_mode
)
{
if
(
match_mode
)
{
...
...
gframe/single_mode.cpp
View file @
e7b0c400
...
@@ -601,6 +601,11 @@ bool SingleMode::SinglePlayAnalyze(char* msg, unsigned int len) {
...
@@ -601,6 +601,11 @@ bool SingleMode::SinglePlayAnalyze(char* msg, unsigned int len) {
DuelClient
::
ClientAnalyze
(
offset
,
pbuf
-
offset
);
DuelClient
::
ClientAnalyze
(
offset
,
pbuf
-
offset
);
break
;
break
;
}
}
case
MSG_PLAYER_HINT
:
{
pbuf
+=
6
;
DuelClient
::
ClientAnalyze
(
offset
,
pbuf
-
offset
);
break
;
}
case
MSG_TAG_SWAP
:
{
case
MSG_TAG_SWAP
:
{
player
=
pbuf
[
0
];
player
=
pbuf
[
0
];
pbuf
+=
pbuf
[
2
]
*
4
+
pbuf
[
4
]
*
4
+
9
;
pbuf
+=
pbuf
[
2
]
*
4
+
pbuf
[
4
]
*
4
+
9
;
...
...
gframe/tag_duel.cpp
View file @
e7b0c400
...
@@ -1330,6 +1330,16 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
...
@@ -1330,6 +1330,16 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
NetServer
::
ReSendToPlayer
(
*
oit
);
NetServer
::
ReSendToPlayer
(
*
oit
);
break
;
break
;
}
}
case
MSG_PLAYER_HINT
:
{
pbuf
+=
6
;
NetServer
::
SendBufferToPlayer
(
players
[
0
],
STOC_GAME_MSG
,
offset
,
pbuf
-
offset
);
NetServer
::
ReSendToPlayer
(
players
[
1
]);
NetServer
::
ReSendToPlayer
(
players
[
2
]);
NetServer
::
ReSendToPlayer
(
players
[
3
]);
for
(
auto
oit
=
observers
.
begin
();
oit
!=
observers
.
end
();
++
oit
)
NetServer
::
ReSendToPlayer
(
*
oit
);
break
;
}
case
MSG_TAG_SWAP
:
{
case
MSG_TAG_SWAP
:
{
player
=
BufferIO
::
ReadInt8
(
pbuf
);
player
=
BufferIO
::
ReadInt8
(
pbuf
);
/*int mcount = */
BufferIO
::
ReadInt8
(
pbuf
);
/*int mcount = */
BufferIO
::
ReadInt8
(
pbuf
);
...
...
ocgcore
@
0c58f35e
Subproject commit
42c1de39dc2562d7485a962cef4cf494e36b900d
Subproject commit
0c58f35e90a3baa10af009776235a53e11eae620
script
@
4de8d409
Subproject commit
7362fd18381b3fadd0682ae97388dee3cfc79794
Subproject commit
4de8d4093e5767d90696c8abdd2f1d75215d6adb
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