Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-2pick
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
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
MyCard
ygopro-2pick
Commits
75f12dd8
Commit
75f12dd8
authored
Apr 29, 2018
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into server
parents
97c8e3d3
017c2370
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
94 additions
and
26 deletions
+94
-26
gframe/drawing.cpp
gframe/drawing.cpp
+26
-18
gframe/game.cpp
gframe/game.cpp
+38
-0
gframe/game.h
gframe/game.h
+5
-0
gframe/image_manager.cpp
gframe/image_manager.cpp
+23
-6
gframe/image_manager.h
gframe/image_manager.h
+2
-2
No files found.
gframe/drawing.cpp
View file @
75f12dd8
...
...
@@ -773,11 +773,13 @@ void Game::DrawGUI() {
env
->
drawAll
();
}
void
Game
::
DrawSpec
()
{
s32
midx
=
574
+
(
CARD_IMG_WIDTH
*
0.5
);
s32
midy
=
150
+
(
CARD_IMG_HEIGHT
*
0.5
);
if
(
showcard
)
{
switch
(
showcard
)
{
case
1
:
{
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
,
true
),
Resize
(
574
,
150
));
driver
->
draw2DImage
(
imageManager
.
tMask
,
Resize
(
574
,
150
,
574
+
(
showcarddif
>
CARD_IMG_WIDTH
?
CARD_IMG_WIDTH
:
showcarddif
),
150
+
CARD_IMG_HEIGHT
),
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
,
true
,
true
),
ResizeCardHint
(
574
,
150
));
driver
->
draw2DImage
(
imageManager
.
tMask
,
Resize
CardMid
(
574
,
150
,
574
+
(
showcarddif
>
CARD_IMG_WIDTH
?
CARD_IMG_WIDTH
:
showcarddif
),
150
+
CARD_IMG_HEIGHT
,
midx
,
midy
),
recti
(
CARD_IMG_HEIGHT
-
showcarddif
,
0
,
CARD_IMG_HEIGHT
-
(
showcarddif
>
CARD_IMG_WIDTH
?
showcarddif
-
CARD_IMG_WIDTH
:
0
),
CARD_IMG_HEIGHT
),
0
,
0
,
true
);
showcarddif
+=
15
;
if
(
showcarddif
>=
CARD_IMG_HEIGHT
)
{
...
...
@@ -787,8 +789,8 @@ void Game::DrawSpec() {
break
;
}
case
2
:
{
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
,
true
),
Resize
(
574
,
150
));
driver
->
draw2DImage
(
imageManager
.
tMask
,
Resize
(
574
+
showcarddif
,
150
,
574
+
CARD_IMG_WIDTH
,
150
+
CARD_IMG_HEIGHT
),
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
,
true
,
true
),
ResizeCardHint
(
574
,
150
));
driver
->
draw2DImage
(
imageManager
.
tMask
,
Resize
CardMid
(
574
+
showcarddif
,
150
,
574
+
CARD_IMG_WIDTH
,
150
+
CARD_IMG_HEIGHT
,
midx
,
midy
),
recti
(
0
,
0
,
CARD_IMG_WIDTH
-
showcarddif
,
CARD_IMG_HEIGHT
),
0
,
0
,
true
);
showcarddif
+=
15
;
if
(
showcarddif
>=
CARD_IMG_WIDTH
)
{
...
...
@@ -797,8 +799,8 @@ void Game::DrawSpec() {
break
;
}
case
3
:
{
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
,
true
),
Resize
(
574
,
150
));
driver
->
draw2DImage
(
imageManager
.
tNegated
,
Resize
(
536
+
showcarddif
,
141
+
showcarddif
,
792
-
showcarddif
,
397
-
showcarddif
),
recti
(
0
,
0
,
128
,
128
),
0
,
0
,
true
);
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
,
true
,
true
),
ResizeCardHint
(
574
,
150
));
driver
->
draw2DImage
(
imageManager
.
tNegated
,
Resize
CardMid
(
536
+
showcarddif
,
141
+
showcarddif
,
792
-
showcarddif
,
397
-
showcarddif
,
midx
,
midy
),
recti
(
0
,
0
,
128
,
128
),
0
,
0
,
true
);
if
(
showcarddif
<
64
)
showcarddif
+=
4
;
break
;
...
...
@@ -808,8 +810,8 @@ void Game::DrawSpec() {
matManager
.
c2d
[
1
]
=
(
showcarddif
<<
24
)
|
0xffffff
;
matManager
.
c2d
[
2
]
=
(
showcarddif
<<
24
)
|
0xffffff
;
matManager
.
c2d
[
3
]
=
(
showcarddif
<<
24
)
|
0xffffff
;
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
,
true
),
Resize
(
574
,
150
,
574
+
CARD_IMG_WIDTH
,
150
+
CARD_IMG_HEIGHT
),
Resize
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
matManager
.
c2d
,
true
);
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
,
true
,
true
),
ResizeCardHint
(
574
,
150
,
574
+
CARD_IMG_WIDTH
,
150
+
CARD_IMG_HEIGHT
),
Resize
Forced
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
matManager
.
c2d
,
true
);
if
(
showcarddif
<
255
)
showcarddif
+=
17
;
break
;
...
...
@@ -819,28 +821,34 @@ void Game::DrawSpec() {
matManager
.
c2d
[
1
]
=
(
showcarddif
<<
25
)
|
0xffffff
;
matManager
.
c2d
[
2
]
=
(
showcarddif
<<
25
)
|
0xffffff
;
matManager
.
c2d
[
3
]
=
(
showcarddif
<<
25
)
|
0xffffff
;
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
,
true
),
Resize
(
662
-
showcarddif
*
0.69685
f
,
277
-
showcarddif
,
662
+
showcarddif
*
0.69685
f
,
277
+
showcarddif
),
Resize
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
matManager
.
c2d
,
true
);
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
,
true
,
true
),
ResizeCardMid
(
662
-
showcarddif
*
0.69685
f
,
277
-
showcarddif
,
662
+
showcarddif
*
0.69685
f
,
277
+
showcarddif
,
midx
,
midy
),
Resize
Forced
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
matManager
.
c2d
,
true
);
if
(
showcarddif
<
127
)
showcarddif
+=
9
;
break
;
}
case
6
:
{
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
,
true
),
Resize
(
574
,
150
));
driver
->
draw2DImage
(
imageManager
.
tNumber
,
Resize
(
536
+
showcarddif
,
141
+
showcarddif
,
792
-
showcarddif
,
397
-
showcarddif
),
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
,
true
,
true
),
ResizeCardHint
(
574
,
150
));
driver
->
draw2DImage
(
imageManager
.
tNumber
,
Resize
CardMid
(
536
+
showcarddif
,
141
+
showcarddif
,
792
-
showcarddif
,
397
-
showcarddif
,
midx
,
midy
),
recti
((
showcardp
%
5
)
*
64
,
(
showcardp
/
5
)
*
64
,
(
showcardp
%
5
+
1
)
*
64
,
(
showcardp
/
5
+
1
)
*
64
),
0
,
0
,
true
);
if
(
showcarddif
<
64
)
showcarddif
+=
4
;
break
;
}
case
7
:
{
float
mul
=
xScale
;
if
(
xScale
>
yScale
)
mul
=
yScale
;
core
::
position2d
<
s32
>
corner
[
4
];
float
y
=
sin
(
showcarddif
*
3.1415926
f
/
180.0
f
)
*
CARD_IMG_HEIGHT
*
yScale
;
corner
[
0
]
=
core
::
position2d
<
s32
>
(
574
*
xScale
-
(
CARD_IMG_HEIGHT
*
yScale
-
y
)
*
0.3
f
,
404
*
yScale
-
y
);
corner
[
1
]
=
core
::
position2d
<
s32
>
(
751
*
xScale
+
(
CARD_IMG_HEIGHT
*
yScale
-
y
)
*
0.3
f
,
404
*
yScale
-
y
);
corner
[
2
]
=
core
::
position2d
<
s32
>
(
574
*
xScale
,
404
*
yScale
);
corner
[
3
]
=
core
::
position2d
<
s32
>
(
751
*
xScale
,
404
*
yScale
);
irr
::
gui
::
Draw2DImageQuad
(
driver
,
imageManager
.
GetTexture
(
showcardcode
,
true
),
Resize
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
corner
);
float
y
=
sin
(
showcarddif
*
3.1415926
f
/
180.0
f
)
*
CARD_IMG_HEIGHT
*
mul
;
s32
winx
=
midx
*
xScale
+
(
574
-
midx
)
*
mul
;
s32
winx2
=
midx
*
xScale
+
(
751
-
midx
)
*
mul
;
s32
winy
=
midy
*
yScale
+
(
404
-
midy
)
*
mul
;
corner
[
0
]
=
core
::
position2d
<
s32
>
(
winx
-
(
CARD_IMG_HEIGHT
*
mul
-
y
)
*
0.3
f
,
winy
-
y
);
corner
[
1
]
=
core
::
position2d
<
s32
>
(
winx2
+
(
CARD_IMG_HEIGHT
*
mul
-
y
)
*
0.3
f
,
winy
-
y
);
corner
[
2
]
=
core
::
position2d
<
s32
>
(
winx
,
winy
);
corner
[
3
]
=
core
::
position2d
<
s32
>
(
winx2
,
winy
);
irr
::
gui
::
Draw2DImageQuad
(
driver
,
imageManager
.
GetTexture
(
showcardcode
,
true
,
true
),
ResizeForced
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
corner
);
showcardp
++
;
showcarddif
+=
9
;
if
(
showcarddif
>=
90
)
...
...
gframe/game.cpp
View file @
75f12dd8
...
...
@@ -1908,6 +1908,44 @@ recti Game::ResizeCard(s32 x, s32 y, s32 x2, s32 y2) {
y2
=
sy
+
y
;
return
recti
(
x
,
y
,
x2
,
y2
);
}
recti
Game
::
ResizeCardHint
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
)
{
return
ResizeCardMid
(
x
,
y
,
x2
,
y2
,
(
x
+
x2
)
*
0.5
,
(
y
+
y2
)
*
0.5
);
}
position2di
Game
::
ResizeCardHint
(
s32
x
,
s32
y
)
{
return
ResizeCardMid
(
x
,
y
,
x
+
CARD_IMG_WIDTH
*
0.5
,
y
+
CARD_IMG_HEIGHT
*
0.5
);
}
recti
Game
::
ResizeCardMid
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
,
s32
midx
,
s32
midy
)
{
float
mul
=
xScale
;
if
(
xScale
>
yScale
)
mul
=
yScale
;
s32
cx
=
midx
*
xScale
;
s32
cy
=
midy
*
yScale
;
x
=
cx
+
(
x
-
midx
)
*
mul
;
y
=
cy
+
(
y
-
midy
)
*
mul
;
x2
=
cx
+
(
x2
-
midx
)
*
mul
;
y2
=
cy
+
(
y2
-
midy
)
*
mul
;
return
recti
(
x
,
y
,
x2
,
y2
);
}
position2di
Game
::
ResizeCardMid
(
s32
x
,
s32
y
,
s32
midx
,
s32
midy
)
{
float
mul
=
xScale
;
if
(
xScale
>
yScale
)
mul
=
yScale
;
s32
cx
=
midx
*
xScale
;
s32
cy
=
midy
*
yScale
;
x
=
cx
+
(
x
-
midx
)
*
mul
;
y
=
cy
+
(
y
-
midy
)
*
mul
;
return
position2di
(
x
,
y
);
}
recti
Game
::
ResizeForced
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
)
{
float
mul
=
xScale
;
if
(
xScale
>
yScale
)
mul
=
yScale
;
x
=
x
*
mul
;
y
=
y
*
mul
;
x2
=
x2
*
mul
;
y2
=
y2
*
mul
;
return
recti
(
x
,
y
,
x2
,
y2
);
}
void
Game
::
SetWindowsIcon
()
{
#ifdef _WIN32
HINSTANCE
hInstance
=
(
HINSTANCE
)
GetModuleHandleW
(
NULL
);
...
...
gframe/game.h
View file @
75f12dd8
...
...
@@ -178,6 +178,11 @@ public:
recti
ResizeElem
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
);
recti
ResizeWin
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
,
bool
chat
=
false
);
recti
ResizeCard
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
);
recti
ResizeCardHint
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
);
position2di
ResizeCardHint
(
s32
x
,
s32
y
);
recti
ResizeCardMid
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
,
s32
midx
,
s32
midy
);
position2di
ResizeCardMid
(
s32
x
,
s32
y
,
s32
midx
,
s32
midy
);
recti
ResizeForced
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
);
void
SetWindowsIcon
();
void
FlashWindow
();
...
...
gframe/image_manager.cpp
View file @
75f12dd8
...
...
@@ -147,12 +147,17 @@ void ImageManager::ClearTexture() {
if
(
tit
->
second
)
driver
->
removeTexture
(
tit
->
second
);
}
for
(
auto
tit
=
tMap
[
2
].
begin
();
tit
!=
tMap
[
2
].
end
();
++
tit
)
{
if
(
tit
->
second
)
driver
->
removeTexture
(
tit
->
second
);
}
for
(
auto
tit
=
tThumb
.
begin
();
tit
!=
tThumb
.
end
();
++
tit
)
{
if
(
tit
->
second
)
driver
->
removeTexture
(
tit
->
second
);
}
tMap
[
0
].
clear
();
tMap
[
1
].
clear
();
tMap
[
2
].
clear
();
tThumb
.
clear
();
}
void
ImageManager
::
RemoveTexture
(
int
code
)
{
...
...
@@ -168,6 +173,12 @@ void ImageManager::RemoveTexture(int code) {
driver
->
removeTexture
(
tit
->
second
);
tMap
[
1
].
erase
(
tit
);
}
tit
=
tMap
[
2
].
find
(
code
);
if
(
tit
!=
tMap
[
2
].
end
())
{
if
(
tit
->
second
)
driver
->
removeTexture
(
tit
->
second
);
tMap
[
2
].
erase
(
tit
);
}
}
// function by Warr1024, from https://github.com/minetest/minetest/issues/2419 , modified
void
imageScaleNNAA
(
irr
::
video
::
IImage
*
src
,
irr
::
video
::
IImage
*
dest
)
{
...
...
@@ -262,17 +273,23 @@ irr::video::ITexture* ImageManager::GetTextureFromFile(char* file, s32 width, s3
return
driver
->
getTexture
(
file
);
}
}
irr
::
video
::
ITexture
*
ImageManager
::
GetTexture
(
int
code
,
bool
fit
)
{
irr
::
video
::
ITexture
*
ImageManager
::
GetTexture
(
int
code
,
bool
fit
,
bool
forced_fit
)
{
if
(
code
==
0
)
return
tUnknown
;
int
width
=
CARD_IMG_WIDTH
;
int
height
=
CARD_IMG_HEIGHT
;
if
(
fit
)
{
if
(
forced_fit
)
{
float
mul
=
mainGame
->
xScale
;
if
(
mainGame
->
xScale
>
mainGame
->
yScale
)
mul
=
mainGame
->
yScale
;
width
=
width
*
mul
;
height
=
height
*
mul
;
}
else
if
(
fit
)
{
width
=
width
*
mainGame
->
xScale
;
height
=
height
*
mainGame
->
yScale
;
}
auto
tit
=
tMap
[
f
it
?
1
:
0
].
find
(
code
);
if
(
tit
==
tMap
[
f
it
?
1
:
0
].
end
())
{
auto
tit
=
tMap
[
f
orced_fit
?
2
:
(
fit
?
1
:
0
)
].
find
(
code
);
if
(
tit
==
tMap
[
f
orced_fit
?
2
:
(
fit
?
1
:
0
)
].
end
())
{
char
file
[
256
];
sprintf
(
file
,
"expansions/pics/%d.png"
,
code
);
irr
::
video
::
ITexture
*
img
=
GetTextureFromFile
(
file
,
width
,
height
);
...
...
@@ -289,10 +306,10 @@ irr::video::ITexture* ImageManager::GetTexture(int code, bool fit) {
img
=
GetTextureFromFile
(
file
,
width
,
height
);
}
if
(
img
==
NULL
&&
!
mainGame
->
gameConf
.
use_image_scale
)
{
tMap
[
f
it
?
1
:
0
][
code
]
=
NULL
;
tMap
[
f
orced_fit
?
2
:
(
fit
?
1
:
0
)
][
code
]
=
NULL
;
return
GetTextureThumb
(
code
);
}
tMap
[
f
it
?
1
:
0
][
code
]
=
img
;
tMap
[
f
orced_fit
?
2
:
(
fit
?
1
:
0
)
][
code
]
=
img
;
return
(
img
==
NULL
)
?
tUnknown
:
img
;
}
if
(
tit
->
second
)
...
...
gframe/image_manager.h
View file @
75f12dd8
...
...
@@ -19,11 +19,11 @@ public:
void
ClearTexture
();
void
RemoveTexture
(
int
code
);
irr
::
video
::
ITexture
*
GetTextureFromFile
(
char
*
file
,
s32
width
,
s32
height
);
irr
::
video
::
ITexture
*
GetTexture
(
int
code
,
bool
fit
=
false
);
irr
::
video
::
ITexture
*
GetTexture
(
int
code
,
bool
fit
=
false
,
bool
forced_fit
=
false
);
irr
::
video
::
ITexture
*
GetTextureThumb
(
int
code
);
irr
::
video
::
ITexture
*
GetTextureField
(
int
code
);
std
::
unordered_map
<
int
,
irr
::
video
::
ITexture
*>
tMap
[
2
];
std
::
unordered_map
<
int
,
irr
::
video
::
ITexture
*>
tMap
[
3
];
std
::
unordered_map
<
int
,
irr
::
video
::
ITexture
*>
tThumb
;
std
::
unordered_map
<
int
,
irr
::
video
::
ITexture
*>
tFields
;
irr
::
IrrlichtDevice
*
device
;
...
...
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