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
e5bcb58e
Commit
e5bcb58e
authored
Nov 11, 2013
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
f9979a9f
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
143 additions
and
128 deletions
+143
-128
gframe/bufferio.h
gframe/bufferio.h
+1
-1
gframe/deck_con.cpp
gframe/deck_con.cpp
+13
-3
gframe/drawing.cpp
gframe/drawing.cpp
+12
-21
gframe/duelclient.cpp
gframe/duelclient.cpp
+29
-54
gframe/event_handler.cpp
gframe/event_handler.cpp
+13
-5
gframe/game.cpp
gframe/game.cpp
+45
-14
gframe/game.h
gframe/game.h
+6
-2
gframe/menu_handler.cpp
gframe/menu_handler.cpp
+23
-28
gframe/single_mode.cpp
gframe/single_mode.cpp
+1
-0
No files found.
gframe/bufferio.h
View file @
e5bcb58e
...
@@ -82,7 +82,7 @@ public:
...
@@ -82,7 +82,7 @@ public:
return
str
-
pstr
;
return
str
-
pstr
;
}
}
static
int
DecodeUTF8
(
const
char
*
src
,
wchar_t
*
wstr
)
{
static
int
DecodeUTF8
(
const
char
*
src
,
wchar_t
*
wstr
)
{
c
har
*
p
=
(
char
*
)
src
;
c
onst
char
*
p
=
src
;
wchar_t
*
wp
=
wstr
;
wchar_t
*
wp
=
wstr
;
while
(
*
p
!=
0
)
{
while
(
*
p
!=
0
)
{
if
((
*
p
&
0x80
)
==
0
)
{
if
((
*
p
&
0x80
)
==
0
)
{
...
...
gframe/deck_con.cpp
View file @
e5bcb58e
...
@@ -214,9 +214,19 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -214,9 +214,19 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
}
}
break
;
break
;
}
}
case
irr
:
:
gui
::
EGET_SCROLL_BAR_CHANGED
:
{
switch
(
id
)
{
case
SCROLL_CARDTEXT
:
{
u32
pos
=
mainGame
->
scrCardText
->
getPos
();
mainGame
->
SetStaticText
(
mainGame
->
stText
,
mainGame
->
stText
->
getRelativePosition
().
getWidth
()
-
25
,
mainGame
->
textFont
,
mainGame
->
showingtext
,
pos
);
break
;
}
break
;
}
}
case
irr
:
:
gui
::
EGET_EDITBOX_ENTER
:
{
case
irr
:
:
gui
::
EGET_EDITBOX_ENTER
:
{
switch
(
id
)
{
switch
(
id
)
{
case
SCROLL
_KEYWORD
:
{
case
EDITBOX
_KEYWORD
:
{
irr
::
SEvent
me
;
irr
::
SEvent
me
;
me
.
EventType
=
irr
::
EET_GUI_EVENT
;
me
.
EventType
=
irr
::
EET_GUI_EVENT
;
me
.
GUIEvent
.
EventType
=
irr
::
gui
::
EGET_BUTTON_CLICKED
;
me
.
GUIEvent
.
EventType
=
irr
::
gui
::
EGET_BUTTON_CLICKED
;
...
@@ -639,8 +649,8 @@ void DeckBuilder::FilterCards() {
...
@@ -639,8 +649,8 @@ void DeckBuilder::FilterCards() {
pstr
=
0
;
pstr
=
0
;
auto
strpointer
=
dataManager
.
_strings
.
begin
();
auto
strpointer
=
dataManager
.
_strings
.
begin
();
for
(
code_pointer
ptr
=
dataManager
.
_datas
.
begin
();
ptr
!=
dataManager
.
_datas
.
end
();
++
ptr
,
++
strpointer
)
{
for
(
code_pointer
ptr
=
dataManager
.
_datas
.
begin
();
ptr
!=
dataManager
.
_datas
.
end
();
++
ptr
,
++
strpointer
)
{
CardDataC
&
data
=
ptr
->
second
;
const
CardDataC
&
data
=
ptr
->
second
;
CardString
&
text
=
strpointer
->
second
;
const
CardString
&
text
=
strpointer
->
second
;
if
(
data
.
type
&
TYPE_TOKEN
)
if
(
data
.
type
&
TYPE_TOKEN
)
continue
;
continue
;
switch
(
filter_type
)
{
switch
(
filter_type
)
{
...
...
gframe/drawing.cpp
View file @
e5bcb58e
...
@@ -305,7 +305,7 @@ void Game::DrawMisc() {
...
@@ -305,7 +305,7 @@ void Game::DrawMisc() {
else
driver
->
draw2DImage
(
imageManager
.
tLPBar
,
recti
(
335
,
12
,
335
+
290
*
dInfo
.
lp
[
0
]
/
8000
,
28
),
recti
(
0
,
0
,
16
,
16
),
0
,
0
,
true
);
else
driver
->
draw2DImage
(
imageManager
.
tLPBar
,
recti
(
335
,
12
,
335
+
290
*
dInfo
.
lp
[
0
]
/
8000
,
28
),
recti
(
0
,
0
,
16
,
16
),
0
,
0
,
true
);
if
(
dInfo
.
lp
[
1
]
>=
8000
)
if
(
dInfo
.
lp
[
1
]
>=
8000
)
driver
->
draw2DImage
(
imageManager
.
tLPBar
,
recti
(
696
,
12
,
986
,
28
),
recti
(
0
,
0
,
16
,
16
),
0
,
0
,
true
);
driver
->
draw2DImage
(
imageManager
.
tLPBar
,
recti
(
696
,
12
,
986
,
28
),
recti
(
0
,
0
,
16
,
16
),
0
,
0
,
true
);
else
driver
->
draw2DImage
(
imageManager
.
tLPBar
,
recti
(
986
-
290
*
dInfo
.
lp
[
1
]
/
8000
,
12
,
986
,
28
),
recti
(
0
,
0
,
16
,
16
),
0
,
0
,
true
);
else
driver
->
draw2DImage
(
imageManager
.
tLPBar
,
recti
(
986
-
290
*
dInfo
.
lp
[
1
]
/
8000
,
12
,
986
,
28
),
recti
(
0
,
0
,
16
,
16
),
0
,
0
,
true
);
if
(
lpframe
)
{
if
(
lpframe
)
{
dInfo
.
lp
[
lpplayer
]
-=
lpd
;
dInfo
.
lp
[
lpplayer
]
-=
lpd
;
myswprintf
(
dInfo
.
strLP
[
lpplayer
],
L"%d"
,
dInfo
.
lp
[
lpplayer
]);
myswprintf
(
dInfo
.
strLP
[
lpplayer
],
L"%d"
,
dInfo
.
lp
[
lpplayer
]);
...
@@ -666,31 +666,22 @@ void Game::DrawSpec() {
...
@@ -666,31 +666,22 @@ void Game::DrawSpec() {
if
(
attack_sv
>
28
)
if
(
attack_sv
>
28
)
attack_sv
=
0
;
attack_sv
=
0
;
}
}
bool
showChat
=
true
;
if
(
hideChat
)
{
bool
showChat
=
true
;
showChat
=
false
;
if
(
hideChat
)
{
showChat
=
false
;
hideChatTimer
=
10
;
hideChatTimer
=
10
;
}
}
else
if
(
hideChatTimer
>
0
)
{
else
if
(
hideChatTimer
>
0
)
showChat
=
false
;
{
showChat
=
false
;
hideChatTimer
--
;
hideChatTimer
--
;
}
}
int
maxChatLines
=
mainGame
->
dInfo
.
isStarted
?
5
:
8
;
int
maxChatLines
=
mainGame
->
dInfo
.
isStarted
?
5
:
8
;
for
(
int
i
=
0
;
i
<
maxChatLines
;
++
i
)
{
for
(
int
i
=
0
;
i
<
maxChatLines
;
++
i
)
{
static
unsigned
int
chatColor
[]
=
{
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xff8080ff
,
0xffff4040
,
0xffff4040
,
static
unsigned
int
chatColor
[]
=
{
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xff8080ff
,
0xffff4040
,
0xffff4040
,
0xffff4040
,
0xff40ff40
,
0xff4040ff
,
0xff40ffff
,
0xffff40ff
,
0xffffff40
,
0xffffffff
,
0xff808080
,
0xff404040
};
0xffff4040
,
0xff40ff40
,
0xff4040ff
,
0xff40ffff
,
0xffff40ff
,
0xffffff40
,
0xffffffff
,
0xff808080
,
0xff404040
};
if
(
chatTiming
[
i
])
{
if
(
chatTiming
[
i
])
{
chatTiming
[
i
]
--
;
chatTiming
[
i
]
--
;
if
(
!
showChat
&&
i
>
2
)
if
(
!
showChat
&&
i
>
2
)
continue
;
continue
;
int
w
=
textFont
->
getDimension
(
chatMsg
[
i
].
c_str
()).
Width
;
int
w
=
textFont
->
getDimension
(
chatMsg
[
i
].
c_str
()).
Width
;
driver
->
draw2DRectangle
(
recti
(
305
,
596
-
20
*
i
,
307
+
w
,
616
-
20
*
i
),
0xa0000000
,
0xa0000000
,
0xa0000000
,
0xa0000000
);
driver
->
draw2DRectangle
(
recti
(
305
,
596
-
20
*
i
,
307
+
w
,
616
-
20
*
i
),
0xa0000000
,
0xa0000000
,
0xa0000000
,
0xa0000000
);
textFont
->
draw
(
chatMsg
[
i
].
c_str
(),
rect
<
s32
>
(
305
,
595
-
20
*
i
,
1020
,
615
-
20
*
i
),
0xff000000
,
false
,
false
);
textFont
->
draw
(
chatMsg
[
i
].
c_str
(),
rect
<
s32
>
(
305
,
595
-
20
*
i
,
1020
,
615
-
20
*
i
),
0xff000000
,
false
,
false
);
...
@@ -797,7 +788,7 @@ void Game::DrawThumb(code_pointer cp, position2di pos, std::unordered_map<int, i
...
@@ -797,7 +788,7 @@ void Game::DrawThumb(code_pointer cp, position2di pos, std::unordered_map<int, i
}
}
}
}
void
Game
::
DrawDeckBd
()
{
void
Game
::
DrawDeckBd
()
{
wchar_t
textBuffer
[
32
];
wchar_t
textBuffer
[
64
];
//main deck
//main deck
driver
->
draw2DRectangle
(
recti
(
310
,
137
,
410
,
157
),
0x400000ff
,
0x400000ff
,
0x40000000
,
0x40000000
);
driver
->
draw2DRectangle
(
recti
(
310
,
137
,
410
,
157
),
0x400000ff
,
0x400000ff
,
0x40000000
,
0x40000000
);
driver
->
draw2DRectangleOutline
(
recti
(
309
,
136
,
410
,
157
));
driver
->
draw2DRectangleOutline
(
recti
(
309
,
136
,
410
,
157
));
...
...
gframe/duelclient.cpp
View file @
e5bcb58e
...
@@ -548,68 +548,43 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
...
@@ -548,68 +548,43 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
}
}
case
STOC_CHAT
:
{
case
STOC_CHAT
:
{
STOC_Chat
*
pkt
=
(
STOC_Chat
*
)
pdata
;
STOC_Chat
*
pkt
=
(
STOC_Chat
*
)
pdata
;
wchar_t
msg
[
256
]
;
int
player
=
pkt
->
player
;
if
(
p
kt
->
p
layer
<
4
)
{
if
(
player
<
4
)
{
if
(
mainGame
->
chkIgnore1
->
isChecked
())
if
(
mainGame
->
chkIgnore1
->
isChecked
())
break
;
break
;
BufferIO
::
CopyWStr
(
pkt
->
msg
,
msg
,
256
);
msg
[(
len
-
3
)
/
2
]
=
0
;
mainGame
->
gMutex
.
Lock
();
if
(
!
mainGame
->
dInfo
.
isTag
)
{
if
(
!
mainGame
->
dInfo
.
isTag
)
{
if
(
mainGame
->
dInfo
.
isStarted
)
if
(
mainGame
->
dInfo
.
isStarted
)
mainGame
->
AddChatMsg
(
msg
,
mainGame
->
LocalPlayer
(
pkt
->
player
));
player
=
mainGame
->
LocalPlayer
(
player
);
else
mainGame
->
AddChatMsg
(
msg
,
pkt
->
player
);
}
else
{
}
else
{
if
(
mainGame
->
dInfo
.
isFirst
||
!
mainGame
->
dInfo
.
isStarted
)
{
if
(
mainGame
->
dInfo
.
isStarted
&&
!
mainGame
->
dInfo
.
isFirst
)
if
(
pkt
->
player
==
0
)
player
^=
2
;
mainGame
->
AddChatMsg
(
msg
,
0
);
if
(
player
==
0
)
else
if
(
pkt
->
player
==
1
)
player
=
0
;
mainGame
->
AddChatMsg
(
msg
,
2
);
else
if
(
player
==
1
)
else
if
(
pkt
->
player
==
2
)
player
=
2
;
mainGame
->
AddChatMsg
(
msg
,
1
);
else
if
(
player
==
2
)
else
if
(
pkt
->
player
==
3
)
player
=
1
;
mainGame
->
AddChatMsg
(
msg
,
3
);
else
if
(
player
==
3
)
else
player
=
3
;
mainGame
->
AddChatMsg
(
msg
,
10
);
else
}
else
{
player
=
10
;
if
(
pkt
->
player
==
0
)
mainGame
->
AddChatMsg
(
msg
,
1
);
else
if
(
pkt
->
player
==
1
)
mainGame
->
AddChatMsg
(
msg
,
3
);
else
if
(
pkt
->
player
==
2
)
mainGame
->
AddChatMsg
(
msg
,
0
);
else
if
(
pkt
->
player
==
3
)
mainGame
->
AddChatMsg
(
msg
,
2
);
else
mainGame
->
AddChatMsg
(
msg
,
10
);
}
}
}
mainGame
->
gMutex
.
Unlock
();
}
else
if
(
pkt
->
player
==
8
)
{
//system custom message.
if
(
mainGame
->
chkIgnore1
->
isChecked
())
break
;
BufferIO
::
CopyWStr
(
pkt
->
msg
,
msg
,
256
);
msg
[(
len
-
3
)
/
2
]
=
0
;
mainGame
->
gMutex
.
Lock
();
mainGame
->
AddChatMsg
(
msg
,
8
);
mainGame
->
gMutex
.
Unlock
();
}
else
if
(
pkt
->
player
>=
11
&&
pkt
->
player
<=
19
)
{
//system custom message.
BufferIO
::
CopyWStr
(
pkt
->
msg
,
msg
,
256
);
msg
[(
len
-
3
)
/
2
]
=
0
;
mainGame
->
gMutex
.
Lock
();
mainGame
->
AddChatMsg
(
msg
,
pkt
->
player
);
mainGame
->
gMutex
.
Unlock
();
}
else
{
}
else
{
if
(
mainGame
->
chkIgnore2
->
isChecked
())
if
(
player
==
8
)
{
//system custom message.
break
;
if
(
mainGame
->
chkIgnore1
->
isChecked
())
BufferIO
::
CopyWStr
(
pkt
->
msg
,
msg
,
256
);
break
;
msg
[(
len
-
3
)
/
2
]
=
0
;
}
else
if
(
player
<
11
||
player
>
19
)
{
mainGame
->
gMutex
.
Lock
();
if
(
mainGame
->
chkIgnore2
->
isChecked
())
mainGame
->
AddChatMsg
(
msg
,
10
);
break
;
mainGame
->
gMutex
.
Unlock
();
player
=
10
;
}
}
}
wchar_t
msg
[
256
];
BufferIO
::
CopyWStr
(
pkt
->
msg
,
msg
,
256
);
msg
[(
len
-
3
)
/
2
]
=
0
;
mainGame
->
gMutex
.
Lock
();
mainGame
->
AddChatMsg
(
msg
,
player
);
mainGame
->
gMutex
.
Unlock
();
break
;
break
;
}
}
case
STOC_HS_PLAYER_ENTER
:
{
case
STOC_HS_PLAYER_ENTER
:
{
...
...
gframe/event_handler.cpp
View file @
e5bcb58e
...
@@ -726,6 +726,11 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -726,6 +726,11 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
break
;
break
;
}
}
case
SCROLL_CARDTEXT
:
{
u32
pos
=
mainGame
->
scrCardText
->
getPos
();
mainGame
->
SetStaticText
(
mainGame
->
stText
,
mainGame
->
stText
->
getRelativePosition
().
getWidth
()
-
25
,
mainGame
->
textFont
,
mainGame
->
showingtext
,
pos
);
break
;
}
break
;
break
;
}
}
}
}
...
@@ -822,6 +827,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -822,6 +827,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
scrCardText
->
setVisible
(
false
);
}
}
}
}
break
;
break
;
...
@@ -1304,8 +1310,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1304,8 +1310,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
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
)
{
hovered_card
->
is_hovered
=
false
;
hovered_card
->
is_hovered
=
false
;
MoveCard
(
hovered_card
,
5
);
MoveCard
(
hovered_card
,
5
);
if
(
hovered_controler
==
0
)
if
(
hovered_controler
==
0
)
mainGame
->
hideChat
=
false
;
mainGame
->
hideChat
=
false
;
}
}
if
(
hovered_card
->
equipTarget
)
if
(
hovered_card
->
equipTarget
)
hovered_card
->
equipTarget
->
is_showequip
=
false
;
hovered_card
->
equipTarget
->
is_showequip
=
false
;
...
@@ -1325,8 +1331,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1325,8 +1331,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if
(
hovered_location
==
LOCATION_HAND
)
{
if
(
hovered_location
==
LOCATION_HAND
)
{
mcard
->
is_hovered
=
true
;
mcard
->
is_hovered
=
true
;
MoveCard
(
mcard
,
5
);
MoveCard
(
mcard
,
5
);
if
(
hovered_controler
==
0
)
if
(
hovered_controler
==
0
)
mainGame
->
hideChat
=
true
;
mainGame
->
hideChat
=
true
;
}
}
if
(
mcard
->
equipTarget
)
if
(
mcard
->
equipTarget
)
mcard
->
equipTarget
->
is_showequip
=
true
;
mcard
->
equipTarget
->
is_showequip
=
true
;
...
@@ -1346,7 +1352,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1346,7 +1352,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if
(
mcard
->
type
&
TYPE_MONSTER
)
{
if
(
mcard
->
type
&
TYPE_MONSTER
)
{
myswprintf
(
formatBuffer
,
L"%ls"
,
dataManager
.
GetName
(
mcard
->
code
));
myswprintf
(
formatBuffer
,
L"%ls"
,
dataManager
.
GetName
(
mcard
->
code
));
str
.
append
(
formatBuffer
);
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
)))
{
myswprintf
(
formatBuffer
,
L"
\n
(%ls)"
,
dataManager
.
GetName
(
mcard
->
alias
));
myswprintf
(
formatBuffer
,
L"
\n
(%ls)"
,
dataManager
.
GetName
(
mcard
->
alias
));
str
.
append
(
formatBuffer
);
str
.
append
(
formatBuffer
);
}
}
...
@@ -1420,6 +1427,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1420,6 +1427,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
scrCardText
->
setVisible
(
false
);
}
}
}
else
{
}
else
{
mainGame
->
stTip
->
setVisible
(
false
);
mainGame
->
stTip
->
setVisible
(
false
);
...
...
gframe/game.cpp
View file @
e5bcb58e
...
@@ -206,7 +206,11 @@ bool Game::Initialize() {
...
@@ -206,7 +206,11 @@ bool Game::Initialize() {
stInfo
->
setOverrideColor
(
SColor
(
255
,
0
,
0
,
255
));
stInfo
->
setOverrideColor
(
SColor
(
255
,
0
,
0
,
255
));
stDataInfo
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
15
,
60
,
296
,
83
),
false
,
true
,
tabInfo
,
-
1
,
false
);
stDataInfo
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
15
,
60
,
296
,
83
),
false
,
true
,
tabInfo
,
-
1
,
false
);
stDataInfo
->
setOverrideColor
(
SColor
(
255
,
0
,
0
,
255
));
stDataInfo
->
setOverrideColor
(
SColor
(
255
,
0
,
0
,
255
));
stText
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
15
,
83
,
296
,
324
),
false
,
true
,
tabInfo
,
-
1
,
false
);
stText
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
15
,
83
,
287
,
324
),
false
,
true
,
tabInfo
,
-
1
,
false
);
scrCardText
=
env
->
addScrollBar
(
false
,
rect
<
s32
>
(
267
,
83
,
287
,
324
),
tabInfo
,
SCROLL_CARDTEXT
);
scrCardText
->
setLargeStep
(
1
);
scrCardText
->
setSmallStep
(
1
);
scrCardText
->
setVisible
(
false
);
//log
//log
irr
::
gui
::
IGUITab
*
tabLog
=
wInfos
->
addTab
(
dataManager
.
GetSysString
(
1271
));
irr
::
gui
::
IGUITab
*
tabLog
=
wInfos
->
addTab
(
dataManager
.
GetSysString
(
1271
));
lstLog
=
env
->
addListBox
(
rect
<
s32
>
(
10
,
10
,
290
,
290
),
tabLog
,
LISTBOX_LOG
,
false
);
lstLog
=
env
->
addListBox
(
rect
<
s32
>
(
10
,
10
,
290
,
290
),
tabLog
,
LISTBOX_LOG
,
false
);
...
@@ -409,7 +413,7 @@ bool Game::Initialize() {
...
@@ -409,7 +413,7 @@ bool Game::Initialize() {
ebStar
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
60
,
72
,
140
,
92
),
true
,
wFilter
);
ebStar
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
60
,
72
,
140
,
92
),
true
,
wFilter
);
ebStar
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
ebStar
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1325
),
rect
<
s32
>
(
205
,
74
,
280
,
94
),
false
,
false
,
wFilter
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1325
),
rect
<
s32
>
(
205
,
74
,
280
,
94
),
false
,
false
,
wFilter
);
ebCardName
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
260
,
72
,
390
,
92
),
true
,
wFilter
,
SCROLL
_KEYWORD
);
ebCardName
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
260
,
72
,
390
,
92
),
true
,
wFilter
,
EDITBOX
_KEYWORD
);
ebCardName
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
ebCardName
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
btnEffectFilter
=
env
->
addButton
(
rect
<
s32
>
(
345
,
28
,
390
,
69
),
wFilter
,
BUTTON_EFFECT_FILTER
,
dataManager
.
GetSysString
(
1326
));
btnEffectFilter
=
env
->
addButton
(
rect
<
s32
>
(
345
,
28
,
390
,
69
),
wFilter
,
BUTTON_EFFECT_FILTER
,
dataManager
.
GetSysString
(
1326
));
btnStartFilter
=
env
->
addButton
(
rect
<
s32
>
(
210
,
96
,
390
,
118
),
wFilter
,
BUTTON_START_FILTER
,
dataManager
.
GetSysString
(
1327
));
btnStartFilter
=
env
->
addButton
(
rect
<
s32
>
(
210
,
96
,
390
,
118
),
wFilter
,
BUTTON_START_FILTER
,
dataManager
.
GetSysString
(
1327
));
...
@@ -484,8 +488,8 @@ bool Game::Initialize() {
...
@@ -484,8 +488,8 @@ bool Game::Initialize() {
col
.
setAlpha
(
224
);
col
.
setAlpha
(
224
);
env
->
getSkin
()
->
setColor
((
EGUI_DEFAULT_COLOR
)
i
,
col
);
env
->
getSkin
()
->
setColor
((
EGUI_DEFAULT_COLOR
)
i
,
col
);
}
}
hideChat
=
false
;
hideChat
=
false
;
hideChatTimer
=
0
;
hideChatTimer
=
0
;
return
true
;
return
true
;
}
}
void
Game
::
MainLoop
()
{
void
Game
::
MainLoop
()
{
...
@@ -588,16 +592,38 @@ void Game::BuildProjectionMatrix(irr::core::matrix4& mProjection, f32 left, f32
...
@@ -588,16 +592,38 @@ void Game::BuildProjectionMatrix(irr::core::matrix4& mProjection, f32 left, f32
mProjection
[
11
]
=
1.0
f
;
mProjection
[
11
]
=
1.0
f
;
mProjection
[
14
]
=
znear
*
zfar
/
(
znear
-
zfar
);
mProjection
[
14
]
=
znear
*
zfar
/
(
znear
-
zfar
);
}
}
void
Game
::
SetStaticText
(
irr
::
gui
::
IGUIStaticText
*
pControl
,
u32
cWidth
,
irr
::
gui
::
CGUITTFont
*
font
,
wchar_t
*
text
)
{
void
Game
::
InitStaticText
(
irr
::
gui
::
IGUIStaticText
*
pControl
,
u32
cWidth
,
u32
cHeight
,
irr
::
gui
::
CGUITTFont
*
font
,
const
wchar_t
*
text
)
{
SetStaticText
(
pControl
,
cWidth
,
font
,
text
);
if
(
font
->
getDimension
(
dataManager
.
strBuffer
).
Height
<=
cHeight
)
{
scrCardText
->
setVisible
(
false
);
return
;
}
SetStaticText
(
pControl
,
cWidth
-
25
,
font
,
text
);
u32
fontheight
=
font
->
getDimension
(
L"A"
).
Height
+
font
->
getKerningHeight
();
u32
step
=
(
font
->
getDimension
(
dataManager
.
strBuffer
).
Height
-
cHeight
)
/
fontheight
+
1
;
scrCardText
->
setVisible
(
true
);
scrCardText
->
setMin
(
0
);
scrCardText
->
setMax
(
step
);
scrCardText
->
setPos
(
0
);
}
void
Game
::
SetStaticText
(
irr
::
gui
::
IGUIStaticText
*
pControl
,
u32
cWidth
,
irr
::
gui
::
CGUITTFont
*
font
,
const
wchar_t
*
text
,
u32
pos
)
{
int
pbuffer
=
0
;
int
pbuffer
=
0
;
u
nsigned
int
_width
=
0
,
w
=
0
;
u
32
_width
=
0
,
_height
=
0
;
for
(
int
i
=
0
;
text
[
i
]
!=
0
&&
i
<
1023
;
++
i
)
{
for
(
int
i
=
0
;
text
[
i
]
!=
0
&&
i
<
1023
;
++
i
)
{
w
=
font
->
getCharDimension
(
text
[
i
]).
Width
;
u32
w
=
font
->
getCharDimension
(
text
[
i
]).
Width
;
if
(
text
[
i
]
==
L'\n'
)
if
(
text
[
i
]
==
L'\n'
)
{
dataManager
.
strBuffer
[
pbuffer
++
]
=
L'\n'
;
_width
=
0
;
_width
=
0
;
else
if
(
_width
>
0
&&
_width
+
w
>
cWidth
)
{
_height
++
;
if
(
_height
==
pos
)
pbuffer
=
0
;
continue
;
}
else
if
(
_width
>
0
&&
_width
+
w
>
cWidth
)
{
dataManager
.
strBuffer
[
pbuffer
++
]
=
L'\n'
;
dataManager
.
strBuffer
[
pbuffer
++
]
=
L'\n'
;
_width
=
0
;
_width
=
0
;
_height
++
;
if
(
_height
==
pos
)
pbuffer
=
0
;
}
}
_width
+=
w
;
_width
+=
w
;
dataManager
.
strBuffer
[
pbuffer
++
]
=
text
[
i
];
dataManager
.
strBuffer
[
pbuffer
++
]
=
text
[
i
];
...
@@ -817,14 +843,18 @@ void Game::ShowCardInfo(int code) {
...
@@ -817,14 +843,18 @@ void Game::ShowCardInfo(int code) {
else
else
myswprintf
(
&
formatBuffer
[
cd
.
level
+
3
],
L"%d/%d"
,
cd
.
attack
,
cd
.
defence
);
myswprintf
(
&
formatBuffer
[
cd
.
level
+
3
],
L"%d/%d"
,
cd
.
attack
,
cd
.
defence
);
stDataInfo
->
setText
(
formatBuffer
);
stDataInfo
->
setText
(
formatBuffer
);
stText
->
setRelativePosition
(
irr
::
core
::
position2di
(
15
,
83
));
stText
->
setRelativePosition
(
rect
<
s32
>
(
15
,
83
,
287
,
324
));
scrCardText
->
setRelativePosition
(
rect
<
s32
>
(
267
,
83
,
287
,
324
));
}
else
{
}
else
{
myswprintf
(
formatBuffer
,
L"[%ls]"
,
dataManager
.
FormatType
(
cd
.
type
));
myswprintf
(
formatBuffer
,
L"[%ls]"
,
dataManager
.
FormatType
(
cd
.
type
));
stInfo
->
setText
(
formatBuffer
);
stInfo
->
setText
(
formatBuffer
);
stDataInfo
->
setText
(
L""
);
stDataInfo
->
setText
(
L""
);
stText
->
setRelativePosition
(
irr
::
core
::
position2di
(
15
,
60
));
stText
->
setRelativePosition
(
rect
<
s32
>
(
15
,
60
,
287
,
324
));
scrCardText
->
setRelativePosition
(
rect
<
s32
>
(
267
,
60
,
287
,
324
));
}
}
SetStaticText
(
stText
,
270
,
textFont
,
(
wchar_t
*
)
dataManager
.
GetText
(
code
));
showingtext
=
dataManager
.
GetText
(
code
);
const
auto
&
tsize
=
stText
->
getRelativePosition
();
InitStaticText
(
stText
,
tsize
.
getWidth
(),
tsize
.
getHeight
(),
textFont
,
showingtext
);
}
}
void
Game
::
AddChatMsg
(
wchar_t
*
msg
,
int
player
)
{
void
Game
::
AddChatMsg
(
wchar_t
*
msg
,
int
player
)
{
for
(
int
i
=
7
;
i
>
0
;
--
i
)
{
for
(
int
i
=
7
;
i
>
0
;
--
i
)
{
...
@@ -835,7 +865,7 @@ void Game::AddChatMsg(wchar_t* msg, int player) {
...
@@ -835,7 +865,7 @@ void Game::AddChatMsg(wchar_t* msg, int player) {
chatMsg
[
0
].
clear
();
chatMsg
[
0
].
clear
();
chatTiming
[
0
]
=
1200
;
chatTiming
[
0
]
=
1200
;
chatType
[
0
]
=
player
;
chatType
[
0
]
=
player
;
if
(
player
<
11
||
player
>
19
)
switch
(
player
)
{
switch
(
player
)
{
case
0
:
//from host
case
0
:
//from host
chatMsg
[
0
].
append
(
dInfo
.
hostname
);
chatMsg
[
0
].
append
(
dInfo
.
hostname
);
chatMsg
[
0
].
append
(
L": "
);
chatMsg
[
0
].
append
(
L": "
);
...
@@ -863,7 +893,8 @@ void Game::AddChatMsg(wchar_t* msg, int player) {
...
@@ -863,7 +893,8 @@ void Game::AddChatMsg(wchar_t* msg, int player) {
chatMsg
[
0
].
append
(
L"[Script error:] "
);
chatMsg
[
0
].
append
(
L"[Script error:] "
);
break
;
break
;
default:
//from watcher or unknown
default:
//from watcher or unknown
chatMsg
[
0
].
append
(
L"[---]: "
);
if
(
player
<
11
||
player
>
19
)
chatMsg
[
0
].
append
(
L"[---]: "
);
}
}
chatMsg
[
0
].
append
(
msg
);
chatMsg
[
0
].
append
(
msg
);
}
}
...
...
gframe/game.h
View file @
e5bcb58e
...
@@ -69,7 +69,8 @@ public:
...
@@ -69,7 +69,8 @@ public:
bool
Initialize
();
bool
Initialize
();
void
MainLoop
();
void
MainLoop
();
void
BuildProjectionMatrix
(
irr
::
core
::
matrix4
&
mProjection
,
f32
left
,
f32
right
,
f32
bottom
,
f32
top
,
f32
znear
,
f32
zfar
);
void
BuildProjectionMatrix
(
irr
::
core
::
matrix4
&
mProjection
,
f32
left
,
f32
right
,
f32
bottom
,
f32
top
,
f32
znear
,
f32
zfar
);
void
SetStaticText
(
irr
::
gui
::
IGUIStaticText
*
pControl
,
u32
cWidth
,
irr
::
gui
::
CGUITTFont
*
font
,
wchar_t
*
text
);
void
InitStaticText
(
irr
::
gui
::
IGUIStaticText
*
pControl
,
u32
cWidth
,
u32
cHeight
,
irr
::
gui
::
CGUITTFont
*
font
,
const
wchar_t
*
text
);
void
SetStaticText
(
irr
::
gui
::
IGUIStaticText
*
pControl
,
u32
cWidth
,
irr
::
gui
::
CGUITTFont
*
font
,
const
wchar_t
*
text
,
u32
pos
=
0
);
void
RefreshDeck
(
irr
::
gui
::
IGUIComboBox
*
cbDeck
);
void
RefreshDeck
(
irr
::
gui
::
IGUIComboBox
*
cbDeck
);
void
RefreshReplay
();
void
RefreshReplay
();
void
RefreshSingleplay
();
void
RefreshSingleplay
();
...
@@ -119,6 +120,7 @@ public:
...
@@ -119,6 +120,7 @@ public:
int
waitFrame
;
int
waitFrame
;
int
signalFrame
;
int
signalFrame
;
int
actionParam
;
int
actionParam
;
const
wchar_t
*
showingtext
;
int
showcard
;
int
showcard
;
int
showcardcode
;
int
showcardcode
;
int
showcarddif
;
int
showcarddif
;
...
@@ -166,6 +168,7 @@ public:
...
@@ -166,6 +168,7 @@ public:
irr
::
gui
::
IGUIStaticText
*
stInfo
;
irr
::
gui
::
IGUIStaticText
*
stInfo
;
irr
::
gui
::
IGUIStaticText
*
stDataInfo
;
irr
::
gui
::
IGUIStaticText
*
stDataInfo
;
irr
::
gui
::
IGUIStaticText
*
stText
;
irr
::
gui
::
IGUIStaticText
*
stText
;
irr
::
gui
::
IGUIScrollBar
*
scrCardText
;
irr
::
gui
::
IGUICheckBox
*
chkAutoPos
;
irr
::
gui
::
IGUICheckBox
*
chkAutoPos
;
irr
::
gui
::
IGUICheckBox
*
chkRandomPos
;
irr
::
gui
::
IGUICheckBox
*
chkRandomPos
;
irr
::
gui
::
IGUICheckBox
*
chkAutoChain
;
irr
::
gui
::
IGUICheckBox
*
chkAutoChain
;
...
@@ -436,6 +439,7 @@ extern Game* mainGame;
...
@@ -436,6 +439,7 @@ extern Game* mainGame;
#define BUTTON_LEAVE_GAME 263
#define BUTTON_LEAVE_GAME 263
#define BUTTON_CLEAR_LOG 270
#define BUTTON_CLEAR_LOG 270
#define LISTBOX_LOG 271
#define LISTBOX_LOG 271
#define SCROLL_CARDTEXT 280
#define BUTTON_CATEGORY_OK 300
#define BUTTON_CATEGORY_OK 300
#define COMBOBOX_DBLFLIST 301
#define COMBOBOX_DBLFLIST 301
#define COMBOBOX_DBDECKS 302
#define COMBOBOX_DBDECKS 302
...
@@ -450,7 +454,7 @@ extern Game* mainGame;
...
@@ -450,7 +454,7 @@ extern Game* mainGame;
#define BUTTON_EFFECT_FILTER 311
#define BUTTON_EFFECT_FILTER 311
#define BUTTON_START_FILTER 312
#define BUTTON_START_FILTER 312
#define SCROLL_FILTER 314
#define SCROLL_FILTER 314
#define
SCROLL
_KEYWORD 315
#define
EDITBOX
_KEYWORD 315
#define BUTTON_REPLAY_START 320
#define BUTTON_REPLAY_START 320
#define BUTTON_REPLAY_PAUSE 321
#define BUTTON_REPLAY_PAUSE 321
#define BUTTON_REPLAY_STEP 322
#define BUTTON_REPLAY_STEP 322
...
...
gframe/menu_handler.cpp
View file @
e5bcb58e
...
@@ -31,36 +31,30 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
...
@@ -31,36 +31,30 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
break
;
break
;
}
}
case
BUTTON_JOIN_HOST
:
{
case
BUTTON_JOIN_HOST
:
{
struct
addrinfo
hints
,
*
servinfo
;
memset
(
&
hints
,
0
,
sizeof
(
struct
addrinfo
));
hints
.
ai_family
=
AF_INET
;
/* Allow IPv4 or IPv6 */
hints
.
ai_socktype
=
SOCK_STREAM
;
/* Datagram socket */
hints
.
ai_flags
=
AI_PASSIVE
;
/* For wildcard IP address */
hints
.
ai_protocol
=
0
;
/* Any protocol */
hints
.
ai_canonname
=
NULL
;
hints
.
ai_addr
=
NULL
;
hints
.
ai_next
=
NULL
;
int
status
;
char
hostname
[
100
];
char
ip
[
20
];
char
ip
[
20
];
int
i
=
0
;
const
wchar_t
*
pstr
=
mainGame
->
ebJoinIP
->
getText
();
wchar_t
*
pstr
=
(
wchar_t
*
)
mainGame
->
ebJoinIP
->
getText
();
BufferIO
::
CopyWStr
(
pstr
,
hostname
,
100
);
while
(
*
pstr
&&
i
<
16
)
if
((
status
=
getaddrinfo
(
hostname
,
NULL
,
&
hints
,
&
servinfo
))
==
-
1
)
{
ip
[
i
++
]
=
*
pstr
++
;
//fprintf(stderr, "getaddrinfo error: %s\n", gai_strerror(status));
ip
[
i
]
=
0
;
//error handling
BufferIO
::
CopyWStr
(
pstr
,
ip
,
16
);
struct
addrinfo
hints
,
*
servinfo
;
}
else
memset
(
&
hints
,
0
,
sizeof
(
struct
addrinfo
));
inet_ntop
(
AF_INET
,
&
(((
struct
sockaddr_in
*
)
servinfo
->
ai_addr
)
->
sin_addr
),
ip
,
20
);
hints
.
ai_family
=
AF_INET
;
/* Allow IPv4 or IPv6 */
freeaddrinfo
(
servinfo
);
hints
.
ai_socktype
=
SOCK_STREAM
;
/* Datagram socket */
unsigned
int
remote_addr
=
htonl
(
inet_addr
(
ip
));
hints
.
ai_flags
=
AI_PASSIVE
;
/* For wildcard IP address */
hints
.
ai_protocol
=
0
;
/* Any protocol */
hints
.
ai_canonname
=
NULL
;
hints
.
ai_addr
=
NULL
;
hints
.
ai_next
=
NULL
;
int
status
;
char
hostname
[
100
];
BufferIO
::
CopyWStr
((
wchar_t
*
)
mainGame
->
ebJoinIP
->
getText
(),
hostname
,
100
);
if
((
status
=
getaddrinfo
(
hostname
,
NULL
,
&
hints
,
&
servinfo
))
==
-
1
)
{
//fprintf(stderr, "getaddrinfo error: %s\n", gai_strerror(status));
//error handling
}
else
{
inet_ntop
(
AF_INET
,
&
(((
struct
sockaddr_in
*
)
servinfo
->
ai_addr
)
->
sin_addr
),
ip
,
20
);
}
unsigned
int
remote_addr
=
htonl
(
inet_addr
(
ip
));
unsigned
int
remote_port
=
_wtoi
(
mainGame
->
ebJoinPort
->
getText
());
unsigned
int
remote_port
=
_wtoi
(
mainGame
->
ebJoinPort
->
getText
());
BufferIO
::
CopyWStr
(
mainGame
->
ebJoinIP
->
getText
()
,
mainGame
->
gameConf
.
lastip
,
20
);
BufferIO
::
CopyWStr
(
pstr
,
mainGame
->
gameConf
.
lastip
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
ebJoinPort
->
getText
(),
mainGame
->
gameConf
.
lastport
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
ebJoinPort
->
getText
(),
mainGame
->
gameConf
.
lastport
,
20
);
if
(
DuelClient
::
StartClient
(
remote_addr
,
remote_port
,
false
))
{
if
(
DuelClient
::
StartClient
(
remote_addr
,
remote_port
,
false
))
{
mainGame
->
btnCreateHost
->
setEnabled
(
false
);
mainGame
->
btnCreateHost
->
setEnabled
(
false
);
...
@@ -170,6 +164,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
...
@@ -170,6 +164,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
scrCardText
->
setVisible
(
false
);
mainGame
->
wReplayControl
->
setVisible
(
true
);
mainGame
->
wReplayControl
->
setVisible
(
true
);
mainGame
->
btnReplayStart
->
setVisible
(
false
);
mainGame
->
btnReplayStart
->
setVisible
(
false
);
mainGame
->
btnReplayPause
->
setVisible
(
true
);
mainGame
->
btnReplayPause
->
setVisible
(
true
);
...
...
gframe/single_mode.cpp
View file @
e5bcb58e
...
@@ -63,6 +63,7 @@ int SingleMode::SinglePlayThread(void* param) {
...
@@ -63,6 +63,7 @@ int SingleMode::SinglePlayThread(void* param) {
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
scrCardText
->
setVisible
(
false
);
mainGame
->
wPhase
->
setVisible
(
true
);
mainGame
->
wPhase
->
setVisible
(
true
);
mainGame
->
dField
.
panel
=
0
;
mainGame
->
dField
.
panel
=
0
;
mainGame
->
dField
.
hovered_card
=
0
;
mainGame
->
dField
.
hovered_card
=
0
;
...
...
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