Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile-Cn-Ko-En
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fallenstardust
YGOMobile-Cn-Ko-En
Commits
1be54d6f
Commit
1be54d6f
authored
May 11, 2024
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
change side chat drawing
parent
d6da1e2f
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
140 additions
and
93 deletions
+140
-93
Classes/gframe/CGUITTFont.cpp
Classes/gframe/CGUITTFont.cpp
+19
-20
Classes/gframe/deck_con.cpp
Classes/gframe/deck_con.cpp
+1
-0
Classes/gframe/drawing.cpp
Classes/gframe/drawing.cpp
+98
-67
Classes/gframe/duelclient.cpp
Classes/gframe/duelclient.cpp
+5
-0
Classes/gframe/event_handler.cpp
Classes/gframe/event_handler.cpp
+1
-1
Classes/gframe/game.cpp
Classes/gframe/game.cpp
+13
-4
Classes/gframe/game.h
Classes/gframe/game.h
+3
-1
No files found.
Classes/gframe/CGUITTFont.cpp
View file @
1be54d6f
...
...
@@ -527,29 +527,28 @@ void CGUITTFont::draw(const core::stringw& text, const core::rect<s32>& position
core
::
ustring
::
const_iterator
iter
(
utext
);
while
(
!
iter
.
atEnd
())
{
uchar32_t
currentChar
=
*
iter
;
n
=
getGlyphIndexByChar
(
currentChar
);
bool
visible
=
(
Invisible
.
findFirst
(
currentChar
)
==
-
1
);
if
(
n
>
0
&&
visible
)
{
bool
lineBreak
=
false
;
if
(
currentChar
==
L'\r'
)
{
// Mac or Windows breaks
lineBreak
=
true
;
if
(
*
(
iter
+
1
)
==
(
uchar32_t
)
'\n'
)
// Windows line breaks.
if
(
*
(
iter
+
1
)
==
L
'\n'
)
// Windows line breaks.
currentChar
=
*
(
++
iter
);
}
else
if
(
currentChar
==
(
uchar32_t
)
'\n'
)
{
// Unix breaks
}
else
if
(
currentChar
==
L
'\n'
)
{
// Unix breaks
lineBreak
=
true
;
}
if
(
lineBreak
)
{
previousChar
=
0
;
offset
.
Y
+=
supposed_line_height
;
//font_metrics.ascender / 64;
offset
.
X
=
position
.
UpperLeftCorner
.
X
;
if
(
hcenter
)
offset
.
X
+=
(
position
.
getWidth
()
-
textDimension
.
Width
)
>>
1
;
++
iter
;
continue
;
}
n
=
getGlyphIndexByChar
(
currentChar
);
bool
visible
=
(
Invisible
.
findFirst
(
currentChar
)
==
-
1
);
if
(
n
>
0
&&
visible
)
{
// Calculate the glyph offset.
s32
offx
=
Glyphs
[
n
-
1
].
offset
.
X
;
s32
offy
=
(
font_metrics
.
ascender
/
64
)
-
Glyphs
[
n
-
1
].
offset
.
Y
;
...
...
Classes/gframe/deck_con.cpp
View file @
1be54d6f
...
...
@@ -114,6 +114,7 @@ void DeckBuilder::Terminate() {
mainGame
->
btnShuffleDeck
->
setVisible
(
false
);
mainGame
->
btnSortDeck
->
setVisible
(
false
);
mainGame
->
btnClearDeck
->
setVisible
(
false
);
mainGame
->
ResizeChatInputWindow
();
mainGame
->
imgChat
->
setVisible
(
true
);
mainGame
->
imgQuickAnimation
->
setVisible
(
true
);
mainGame
->
wSettings
->
setVisible
(
false
);
...
...
Classes/gframe/drawing.cpp
View file @
1be54d6f
...
...
@@ -1024,19 +1024,40 @@ void Game::DrawSpec() {
showChat
=
false
;
hideChatTimer
--
;
}
int
chatRectY
=
0
;
for
(
int
i
=
0
;
i
<
8
;
++
i
)
{
static
unsigned
int
chatColor
[]
=
{
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xffffffff
,
0xff8080ff
,
0xffff4040
,
0xffff4040
,
0xffff4040
,
0xff40ff40
,
0xff4040ff
,
0xff40ffff
,
0xffff40ff
,
0xffffff40
,
0xffffffff
,
0xff808080
,
0xff404040
};
if
(
chatTiming
[
i
])
{
chatTiming
[
i
]
--
;
if
(
mainGame
->
dInfo
.
isStarted
&&
i
>=
5
)
if
(
!
is_building
)
{
if
(
dInfo
.
isStarted
&&
i
>=
5
)
continue
;
if
(
!
showChat
&&
i
>
2
)
continue
;
int
w
=
guiFont
->
getDimension
(
chatMsg
[
i
].
c_str
()).
Width
;
driver
->
draw2DRectangle
(
recti
(
305
*
mainGame
->
xScale
,
(
596
-
20
*
i
)
*
mainGame
->
yScale
,
307
*
mainGame
->
xScale
+
w
,
(
616
-
20
*
i
)
*
mainGame
->
yScale
),
0xa0000000
,
0xa0000000
,
0xa0000000
,
0xa0000000
);
guiFont
->
draw
(
chatMsg
[
i
].
c_str
(),
rect
<
s32
>
(
305
*
mainGame
->
xScale
,
(
595
-
20
*
i
)
*
mainGame
->
yScale
,
1020
*
mainGame
->
xScale
,
(
615
-
20
*
i
)
*
mainGame
->
yScale
),
0xff000000
,
false
,
false
);
guiFont
->
draw
(
chatMsg
[
i
].
c_str
(),
rect
<
s32
>
(
306
*
mainGame
->
xScale
,
(
596
-
20
*
i
)
*
mainGame
->
yScale
,
1021
*
mainGame
->
xScale
,
(
616
-
20
*
i
)
*
mainGame
->
yScale
),
chatColor
[
chatType
[
i
]],
false
,
false
);
}
int
x
=
wChat
->
getRelativePosition
().
UpperLeftCorner
.
X
;
int
y
=
(
GAME_HEIGHT
-
25
)
*
mainGame
->
yScale
;
int
maxwidth
=
705
*
xScale
;
if
(
is_building
)
{
x
=
810
*
xScale
;
maxwidth
=
205
*
xScale
;
}
std
::
wstring
msg
=
SetStaticText
(
nullptr
,
maxwidth
,
guiFont
,
chatMsg
[
i
].
c_str
());
int
w
=
guiFont
->
getDimension
(
msg
).
Width
;
int
h
=
guiFont
->
getDimension
(
msg
).
Height
+
2
;
recti
rectloc
(
x
,
y
-
chatRectY
-
h
,
x
+
2
+
w
,
y
-
chatRectY
);
recti
msgloc
(
x
,
y
-
chatRectY
-
h
,
x
-
4
,
y
-
chatRectY
);
recti
shadowloc
=
msgloc
+
position2di
(
1
,
1
);
driver
->
draw2DRectangle
(
rectloc
,
0xa0000000
,
0xa0000000
,
0xa0000000
,
0xa0000000
);
guiFont
->
draw
(
msg
.
c_str
(),
msgloc
,
0xff000000
,
false
,
false
);
guiFont
->
draw
(
msg
.
c_str
(),
shadowloc
,
chatColor
[
chatType
[
i
]],
false
,
false
);
chatRectY
+=
h
;
}
}
}
...
...
@@ -1298,70 +1319,80 @@ void Game::DrawDeckBd() {
driver
->
draw2DRectangleOutline
(
recti
((
313
+
i
*
dx
)
*
mainGame
->
xScale
,
563
*
mainGame
->
yScale
,
(
359
+
i
*
dx
)
*
mainGame
->
xScale
,
629
*
mainGame
->
yScale
));
}
}
if
(
is_siding
)
{
// side chat background
driver
->
draw2DRectangle
(
recti
(
805
*
mainGame
->
xScale
,
10
*
mainGame
->
yScale
,
1020
*
mainGame
->
xScale
,
630
*
mainGame
->
yScale
),
0x400000ff
,
0x400000ff
,
0x40000000
,
0x40000000
);
driver
->
draw2DRectangleOutline
(
recti
(
804
*
mainGame
->
xScale
,
9
*
mainGame
->
yScale
,
1020
*
mainGame
->
xScale
,
630
*
mainGame
->
yScale
));
}
else
{
//search result
driver
->
draw2DRectangle
(
recti
(
805
*
mainGame
->
xScale
,
137
*
mainGame
->
yScale
,
930
*
mainGame
->
xScale
,
157
*
mainGame
->
yScale
),
0x400000ff
,
0x400000ff
,
0x40000000
,
0x40000000
);
driver
->
draw2DRectangleOutline
(
recti
(
805
*
mainGame
->
xScale
,
136
*
mainGame
->
yScale
,
930
*
mainGame
->
xScale
,
157
*
mainGame
->
yScale
));
DrawShadowText
(
guiFont
,
dataManager
.
GetSysString
(
1333
),
recti
(
795
*
mainGame
->
xScale
,
136
*
mainGame
->
yScale
,
930
*
mainGame
->
xScale
,
156
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
true
,
false
);
DrawShadowText
(
numFont
,
deckBuilder
.
result_string
,
recti
(
865
*
mainGame
->
xScale
,
136
*
mainGame
->
yScale
,
930
*
mainGame
->
xScale
,
156
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
true
,
false
);
driver
->
draw2DRectangle
(
recti
(
805
*
mainGame
->
xScale
,
160
*
mainGame
->
yScale
,
1020
*
mainGame
->
xScale
,
630
*
mainGame
->
yScale
),
0x400000ff
,
0x400000ff
,
0x40000000
,
0x40000000
);
driver
->
draw2DRectangleOutline
(
recti
(
804
*
mainGame
->
xScale
,
159
*
mainGame
->
yScale
,
1020
*
mainGame
->
xScale
,
630
*
mainGame
->
yScale
));
driver
->
draw2DRectangle
(
recti
(
805
*
mainGame
->
xScale
,
137
*
mainGame
->
yScale
,
930
*
mainGame
->
xScale
,
157
*
mainGame
->
yScale
),
0x400000ff
,
0x400000ff
,
0x40000000
,
0x40000000
);
driver
->
draw2DRectangleOutline
(
recti
(
805
*
mainGame
->
xScale
,
136
*
mainGame
->
yScale
,
930
*
mainGame
->
xScale
,
157
*
mainGame
->
yScale
));
DrawShadowText
(
guiFont
,
dataManager
.
GetSysString
(
1333
),
recti
(
795
*
mainGame
->
xScale
,
136
*
mainGame
->
yScale
,
930
*
mainGame
->
xScale
,
156
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
true
,
false
);
DrawShadowText
(
numFont
,
deckBuilder
.
result_string
,
recti
(
865
*
mainGame
->
xScale
,
136
*
mainGame
->
yScale
,
930
*
mainGame
->
xScale
,
156
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
true
,
false
);
driver
->
draw2DRectangle
(
recti
(
805
*
mainGame
->
xScale
,
160
*
mainGame
->
yScale
,
1020
*
mainGame
->
xScale
,
630
*
mainGame
->
yScale
),
0x400000ff
,
0x400000ff
,
0x40000000
,
0x40000000
);
driver
->
draw2DRectangleOutline
(
recti
(
804
*
mainGame
->
xScale
,
159
*
mainGame
->
yScale
,
1020
*
mainGame
->
xScale
,
630
*
mainGame
->
yScale
));
#ifdef _IRR_ANDROID_PLATFORM_
for
(
size_t
i
=
0
;
i
<
7
&&
i
+
scrFilter
->
getPos
()
<
deckBuilder
.
results
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
7
&&
i
+
scrFilter
->
getPos
()
<
deckBuilder
.
results
.
size
();
++
i
)
{
code_pointer
ptr
=
deckBuilder
.
results
[
i
+
scrFilter
->
getPos
()];
if
(
deckBuilder
.
hovered_pos
==
4
&&
deckBuilder
.
hovered_seq
==
(
int
)
i
)
driver
->
draw2DRectangle
(
0x80000000
,
recti
(
806
*
mainGame
->
xScale
,
(
164
+
i
*
66
)
*
mainGame
->
yScale
,
1019
*
mainGame
->
xScale
,
(
230
+
i
*
66
)
*
mainGame
->
yScale
));
DrawThumb
(
ptr
,
position2di
(
805
*
mainGame
->
xScale
,
(
165
+
i
*
66
)
*
mainGame
->
yScale
),
deckBuilder
.
filterList
);
if
(
ptr
->
second
.
type
&
TYPE_MONSTER
)
{
if
(
deckBuilder
.
hovered_pos
==
4
&&
deckBuilder
.
hovered_seq
==
(
int
)
i
)
driver
->
draw2DRectangle
(
0x80000000
,
recti
(
806
*
mainGame
->
xScale
,(
164
+
i
*
66
)
*
mainGame
->
yScale
,
1019
*
mainGame
->
xScale
,
(
230
+
i
*
66
)
*
mainGame
->
yScale
));
DrawThumb
(
ptr
,
position2di
(
805
*
mainGame
->
xScale
,
(
165
+
i
*
66
)
*
mainGame
->
yScale
),
deckBuilder
.
filterList
);
if
(
ptr
->
second
.
type
&
TYPE_MONSTER
)
{
myswprintf
(
textBuffer
,
L"%ls"
,
dataManager
.
GetName
(
ptr
->
first
));
DrawShadowText
(
guiFont
,
textBuffer
,
recti
(
850
*
mainGame
->
xScale
,
(
164
+
i
*
66
)
*
mainGame
->
yScale
,
1000
*
mainGame
->
xScale
,
(
185
+
i
*
66
)
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
false
,
false
);
if
(
!
(
ptr
->
second
.
type
&
TYPE_LINK
))
{
const
wchar_t
*
form
=
L"\u2605"
;
if
(
ptr
->
second
.
type
&
TYPE_XYZ
)
form
=
L"\u2606"
;
myswprintf
(
textBuffer
,
L"%ls/%ls %ls%d"
,
dataManager
.
FormatAttribute
(
ptr
->
second
.
attribute
),
dataManager
.
FormatRace
(
ptr
->
second
.
race
),
form
,
ptr
->
second
.
level
);
DrawShadowText
(
guiFont
,
textBuffer
,
recti
(
850
*
mainGame
->
xScale
,
(
186
+
i
*
66
)
*
mainGame
->
yScale
,
1000
*
mainGame
->
xScale
,
(
207
+
i
*
66
)
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
false
,
false
);
if
(
ptr
->
second
.
attack
<
0
&&
ptr
->
second
.
defense
<
0
)
DrawShadowText
(
guiFont
,
textBuffer
,
recti
(
850
*
mainGame
->
xScale
,
(
164
+
i
*
66
)
*
mainGame
->
yScale
,
1000
*
mainGame
->
xScale
,
(
185
+
i
*
66
)
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
false
,
false
);
if
(
!
(
ptr
->
second
.
type
&
TYPE_LINK
))
{
const
wchar_t
*
form
=
L"\u2605"
;
if
(
ptr
->
second
.
type
&
TYPE_XYZ
)
form
=
L"\u2606"
;
myswprintf
(
textBuffer
,
L"%ls/%ls %ls%d"
,
dataManager
.
FormatAttribute
(
ptr
->
second
.
attribute
),
dataManager
.
FormatRace
(
ptr
->
second
.
race
),
form
,
ptr
->
second
.
level
);
DrawShadowText
(
guiFont
,
textBuffer
,
recti
(
850
*
mainGame
->
xScale
,
(
186
+
i
*
66
)
*
mainGame
->
yScale
,
1000
*
mainGame
->
xScale
,(
207
+
i
*
66
)
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
false
,
false
);
if
(
ptr
->
second
.
attack
<
0
&&
ptr
->
second
.
defense
<
0
)
myswprintf
(
textBuffer
,
L"?/?"
);
else
if
(
ptr
->
second
.
attack
<
0
)
else
if
(
ptr
->
second
.
attack
<
0
)
myswprintf
(
textBuffer
,
L"?/%d"
,
ptr
->
second
.
defense
);
else
if
(
ptr
->
second
.
defense
<
0
)
else
if
(
ptr
->
second
.
defense
<
0
)
myswprintf
(
textBuffer
,
L"%d/?"
,
ptr
->
second
.
attack
);
else
myswprintf
(
textBuffer
,
L"%d/%d"
,
ptr
->
second
.
attack
,
ptr
->
second
.
defense
);
else
myswprintf
(
textBuffer
,
L"%d/%d"
,
ptr
->
second
.
attack
,
ptr
->
second
.
defense
);
}
else
{
myswprintf
(
textBuffer
,
L"%ls/%ls LINK-%d"
,
dataManager
.
FormatAttribute
(
ptr
->
second
.
attribute
),
dataManager
.
FormatRace
(
ptr
->
second
.
race
),
ptr
->
second
.
level
);
DrawShadowText
(
guiFont
,
textBuffer
,
recti
(
850
*
mainGame
->
xScale
,
(
186
+
i
*
66
)
*
mainGame
->
yScale
,
1000
*
mainGame
->
xScale
,
(
207
+
i
*
66
)
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
false
,
false
);
if
(
ptr
->
second
.
attack
<
0
)
myswprintf
(
textBuffer
,
L"%ls/%ls LINK-%d"
,
dataManager
.
FormatAttribute
(
ptr
->
second
.
attribute
),
dataManager
.
FormatRace
(
ptr
->
second
.
race
),
ptr
->
second
.
level
);
DrawShadowText
(
guiFont
,
textBuffer
,
recti
(
850
*
mainGame
->
xScale
,
(
186
+
i
*
66
)
*
mainGame
->
yScale
,
1000
*
mainGame
->
xScale
,(
207
+
i
*
66
)
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
false
,
false
);
if
(
ptr
->
second
.
attack
<
0
)
myswprintf
(
textBuffer
,
L"?/-"
);
else
myswprintf
(
textBuffer
,
L"%d/-"
,
ptr
->
second
.
attack
);
else
myswprintf
(
textBuffer
,
L"%d/-"
,
ptr
->
second
.
attack
);
}
if
(
ptr
->
second
.
type
&
TYPE_PENDULUM
)
{
if
(
ptr
->
second
.
type
&
TYPE_PENDULUM
)
{
wchar_t
scaleBuffer
[
16
];
myswprintf
(
scaleBuffer
,
L" %d/%d"
,
ptr
->
second
.
lscale
,
ptr
->
second
.
rscale
);
wcscat
(
textBuffer
,
scaleBuffer
);
}
if
((
ptr
->
second
.
ot
&
AVAIL_OCGTCG
)
==
AVAIL_OCG
)
if
((
ptr
->
second
.
ot
&
AVAIL_OCGTCG
)
==
AVAIL_OCG
)
wcscat
(
textBuffer
,
L" [OCG]"
);
else
if
((
ptr
->
second
.
ot
&
AVAIL_OCGTCG
)
==
AVAIL_TCG
)
else
if
((
ptr
->
second
.
ot
&
AVAIL_OCGTCG
)
==
AVAIL_TCG
)
wcscat
(
textBuffer
,
L" [TCG]"
);
else
if
((
ptr
->
second
.
ot
&
AVAIL_CUSTOM
)
==
AVAIL_CUSTOM
)
else
if
((
ptr
->
second
.
ot
&
AVAIL_CUSTOM
)
==
AVAIL_CUSTOM
)
wcscat
(
textBuffer
,
L" [Custom]"
);
DrawShadowText
(
guiFont
,
textBuffer
,
recti
(
850
*
mainGame
->
xScale
,
(
209
+
i
*
66
)
*
mainGame
->
yScale
,
1000
*
mainGame
->
xScale
,
(
230
+
i
*
66
)
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
false
,
false
);
DrawShadowText
(
guiFont
,
textBuffer
,
recti
(
850
*
mainGame
->
xScale
,
(
209
+
i
*
66
)
*
mainGame
->
yScale
,
1000
*
mainGame
->
xScale
,
(
230
+
i
*
66
)
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
false
,
false
);
}
else
{
myswprintf
(
textBuffer
,
L"%ls"
,
dataManager
.
GetName
(
ptr
->
first
));
DrawShadowText
(
guiFont
,
textBuffer
,
recti
(
850
*
mainGame
->
xScale
,
(
164
+
i
*
66
)
*
mainGame
->
yScale
,
1000
*
mainGame
->
xScale
,
(
185
+
i
*
66
)
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
false
,
false
);
const
wchar_t
*
ptype
=
dataManager
.
FormatType
(
ptr
->
second
.
type
);
DrawShadowText
(
guiFont
,
ptype
,
recti
(
850
*
mainGame
->
xScale
,
(
186
+
i
*
66
)
*
mainGame
->
yScale
,
1000
*
mainGame
->
xScale
,
(
207
+
i
*
66
)
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
false
,
false
);
DrawShadowText
(
guiFont
,
textBuffer
,
recti
(
850
*
mainGame
->
xScale
,
(
164
+
i
*
66
)
*
mainGame
->
yScale
,
1000
*
mainGame
->
xScale
,
(
185
+
i
*
66
)
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
false
,
false
);
const
wchar_t
*
ptype
=
dataManager
.
FormatType
(
ptr
->
second
.
type
);
DrawShadowText
(
guiFont
,
ptype
,
recti
(
850
*
mainGame
->
xScale
,
(
186
+
i
*
66
)
*
mainGame
->
yScale
,
1000
*
mainGame
->
xScale
,
(
207
+
i
*
66
)
*
mainGame
->
yScale
),
recti
(
0
,
1
*
mainGame
->
yScale
,
2
*
mainGame
->
xScale
,
0
),
0xffffffff
,
0xff000000
,
false
,
false
);
textBuffer
[
0
]
=
0
;
if
((
ptr
->
second
.
ot
&
AVAIL_OCGTCG
)
==
AVAIL_OCG
)
if
((
ptr
->
second
.
ot
&
AVAIL_OCGTCG
)
==
AVAIL_OCG
)
wcscat
(
textBuffer
,
L"[OCG]"
);
else
if
((
ptr
->
second
.
ot
&
AVAIL_OCGTCG
)
==
AVAIL_TCG
)
else
if
((
ptr
->
second
.
ot
&
AVAIL_OCGTCG
)
==
AVAIL_TCG
)
wcscat
(
textBuffer
,
L"[TCG]"
);
else
if
((
ptr
->
second
.
ot
&
AVAIL_CUSTOM
)
==
AVAIL_CUSTOM
)
else
if
((
ptr
->
second
.
ot
&
AVAIL_CUSTOM
)
==
AVAIL_CUSTOM
)
wcscat
(
textBuffer
,
L"[Custom]"
);
}
}
#endif
if
(
deckBuilder
.
is_draging
)
{
DrawThumb
(
deckBuilder
.
draging_pointer
,
position2di
(
deckBuilder
.
dragx
-
22
,
deckBuilder
.
dragy
-
32
),
deckBuilder
.
filterList
);
if
(
deckBuilder
.
is_draging
)
{
DrawThumb
(
deckBuilder
.
draging_pointer
,
position2di
(
deckBuilder
.
dragx
-
22
,
deckBuilder
.
dragy
-
32
),
deckBuilder
.
filterList
);
}
}
}
}
Classes/gframe/duelclient.cpp
View file @
1be54d6f
...
...
@@ -215,6 +215,7 @@ void DuelClient::ClientEvent(bufferevent *bev, short events, void *ctx) {
mainGame
->
dInfo
.
isInDuel
=
false
;
mainGame
->
dInfo
.
isFinished
=
false
;
mainGame
->
is_building
=
false
;
mainGame
->
ResizeChatInputWindow
();
mainGame
->
device
->
setEventReceiver
(
&
mainGame
->
menuHandler
);
if
(
bot_mode
)
mainGame
->
ShowElement
(
mainGame
->
wSinglePlay
);
...
...
@@ -381,6 +382,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
mainGame
->
is_building
=
true
;
mainGame
->
is_siding
=
true
;
mainGame
->
CloseGameWindow
();
mainGame
->
ResizeChatInputWindow
();
mainGame
->
wChat
->
setVisible
(
false
);
mainGame
->
imgChat
->
setVisible
(
false
);
mainGame
->
wDeckEdit
->
setVisible
(
false
);
...
...
@@ -500,6 +502,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
mainGame
->
HideElement
(
mainGame
->
wLanWindow
);
mainGame
->
HideElement
(
mainGame
->
wSinglePlay
);
mainGame
->
ShowElement
(
mainGame
->
wHostPrepare
);
mainGame
->
ResizeChatInputWindow
();
mainGame
->
deckBuilder
.
prev_category
=
mainGame
->
cbCategorySelect
->
getSelected
();
mainGame
->
deckBuilder
.
prev_deck
=
mainGame
->
cbDeckSelect
->
getSelected
();
wchar_t
cate
[
256
];
...
...
@@ -624,6 +627,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
mainGame
->
btnM2
->
setVisible
(
false
);
mainGame
->
btnEP
->
setVisible
(
false
);
mainGame
->
btnShuffle
->
setVisible
(
false
);
mainGame
->
ResizeChatInputWindow
();
if
(
!
mainGame
->
chkIgnore1
->
isChecked
())
mainGame
->
wChat
->
setVisible
(
true
);
if
(
mainGame
->
chkDefaultShowChain
->
isChecked
())
{
...
...
@@ -696,6 +700,7 @@ void DuelClient::HandleSTOCPacketLan(unsigned char* data, unsigned int len) {
mainGame
->
btnStartBot
->
setEnabled
(
true
);
mainGame
->
btnBotCancel
->
setEnabled
(
true
);
mainGame
->
stTip
->
setVisible
(
false
);
mainGame
->
ResizeChatInputWindow
();
mainGame
->
device
->
setEventReceiver
(
&
mainGame
->
menuHandler
);
if
(
bot_mode
)
mainGame
->
ShowElement
(
mainGame
->
wSinglePlay
);
...
...
Classes/gframe/event_handler.cpp
View file @
1be54d6f
...
...
@@ -2011,7 +2011,7 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
mainGame
->
imgChat
->
setImage
(
imageManager
.
tShut
);
}
mainGame
->
chkIgnore1
->
setChecked
(
mainGame
->
gameConf
.
chkIgnore1
);
bool
show
=
(
!
mainGame
->
dInfo
.
isStarted
||
mainGame
->
is_buil
ding
)
?
false
:
!
mainGame
->
chkIgnore1
->
isChecked
();
bool
show
=
(
mainGame
->
is_building
&&
!
mainGame
->
is_si
ding
)
?
false
:
!
mainGame
->
chkIgnore1
->
isChecked
();
mainGame
->
wChat
->
setVisible
(
show
);
if
(
!
show
)
mainGame
->
ClearChatMsg
();
...
...
Classes/gframe/game.cpp
View file @
1be54d6f
...
...
@@ -964,7 +964,7 @@ bool Game::Initialize(ANDROID_APP app, android::InitOptions *options) {
btnShuffleDeck
->
setVisible
(
false
);
btnSortDeck
->
setVisible
(
false
);
btnClearDeck
->
setVisible
(
false
);
btnSideOK
=
env
->
addButton
(
rect
<
s32
>
(
510
*
xScale
,
40
*
yScale
,
82
0
*
xScale
,
80
*
yScale
),
0
,
BUTTON_SIDE_OK
,
dataManager
.
GetSysString
(
1334
));
btnSideOK
=
env
->
addButton
(
rect
<
s32
>
(
400
*
xScale
,
40
*
yScale
,
71
0
*
xScale
,
80
*
yScale
),
0
,
BUTTON_SIDE_OK
,
dataManager
.
GetSysString
(
1334
));
ChangeToIGUIImageButton
(
btnSideOK
,
imageManager
.
tButton_L
,
imageManager
.
tButton_L_pressed
);
btnSideOK
->
setVisible
(
false
);
btnSideShuffle
=
env
->
addButton
(
rect
<
s32
>
(
310
*
xScale
,
100
*
yScale
,
370
*
xScale
,
130
*
yScale
),
0
,
BUTTON_SHUFFLE_DECK
,
dataManager
.
GetSysString
(
1307
));
...
...
@@ -1582,7 +1582,7 @@ std::wstring Game::SetStaticText(irr::gui::IGUIStaticText* pControl, u32 cWidth,
strBuffer
[
pbuffer
++
]
=
c
;
}
strBuffer
[
pbuffer
]
=
0
;
pControl
->
setText
(
strBuffer
);
if
(
pControl
)
pControl
->
setText
(
strBuffer
);
ret
.
assign
(
strBuffer
);
return
ret
;
}
...
...
@@ -1777,10 +1777,10 @@ void Game::LoadConfig() {
gameConf
.
gamename
[
0
]
=
0
;
BufferIO
::
DecodeUTF8
(
android
::
getLastCategory
(
appMain
).
c_str
(),
wstr
);;
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
lastcategory
,
64
);
//irr:os::Printer::log("getLastCategory", android::getLastCategory(appMain).c_str());
BufferIO
::
DecodeUTF8
(
android
::
getLastDeck
(
appMain
).
c_str
(),
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
lastdeck
,
64
);
//os::Printer::log(android::getFontPath(appMain).c_str());
BufferIO
::
DecodeUTF8
(
android
::
getFontPath
(
appMain
).
c_str
(),
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
numfont
,
256
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
textfont
,
256
);
...
...
@@ -2128,6 +2128,7 @@ void Game::CloseDuelWindow() {
lstHostList
->
clear
();
DuelClient
::
hosts
.
clear
();
ClearTextures
();
ResizeChatInputWindow
();
closeDoneSignal
.
Set
();
}
int
Game
::
LocalPlayer
(
int
player
)
const
{
...
...
@@ -2171,6 +2172,14 @@ int Game::ChatLocalPlayer(int player) {
const
wchar_t
*
Game
::
LocalName
(
int
local_player
)
{
return
local_player
==
0
?
dInfo
.
hostname
:
dInfo
.
clientname
;
}
void
Game
::
ResizeChatInputWindow
()
{
s32
x
=
305
*
xScale
;
if
(
is_building
)
x
=
802
*
xScale
;
//305 * xScale, 610 * yScale, 1020 * xScale, 640 * yScale
wChat
->
setRelativePosition
(
recti
(
x
,
(
GAME_HEIGHT
-
30
)
*
xScale
,
GAME_WIDTH
*
xScale
,
GAME_HEIGHT
*
yScale
));
//3 * xScale, 2 * yScale, 710 * xScale, 28 * yScale
ebChatInput
->
setRelativePosition
(
recti
(
3
*
xScale
,
2
*
yScale
,
(
GAME_WIDTH
-
6
)
*
xScale
-
wChat
->
getRelativePosition
().
UpperLeftCorner
.
X
,
28
*
xScale
));
}
void
Game
::
ChangeToIGUIImageWindow
(
irr
::
gui
::
IGUIWindow
*
window
,
irr
::
gui
::
IGUIImage
**
pWindowBackground
,
irr
::
video
::
ITexture
*
image
)
{
window
->
setDrawBackground
(
false
);
recti
pos
=
window
->
getRelativePosition
();
...
...
Classes/gframe/game.h
View file @
1be54d6f
...
...
@@ -210,7 +210,7 @@ public:
editbox
->
setText
(
text
.
c_str
());
}
void
ResizeChatInputWindow
();
template
<
typename
T
>
static
std
::
vector
<
T
>
TokenizeString
(
T
input
,
const
T
&
token
);
...
...
@@ -262,6 +262,8 @@ public:
bool
is_building
;
bool
is_siding
;
irr
::
core
::
dimension2d
<
irr
::
u32
>
window_size
;
ClientField
dField
;
DeckBuilder
deckBuilder
;
MenuHandler
menuHandler
;
...
...
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