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
nanahira
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