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
0642152d
Commit
0642152d
authored
Jul 03, 2018
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into server
parents
f710e8f8
fd5f1af5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
88 additions
and
43 deletions
+88
-43
gframe/game.cpp
gframe/game.cpp
+13
-10
gframe/image_manager.cpp
gframe/image_manager.cpp
+72
-33
gframe/image_manager.h
gframe/image_manager.h
+3
-0
No files found.
gframe/game.cpp
View file @
0642152d
...
@@ -129,6 +129,8 @@ bool Game::Initialize() {
...
@@ -129,6 +129,8 @@ bool Game::Initialize() {
skinSystem
->
applySkin
(
skins
[
index
].
c_str
());
skinSystem
->
applySkin
(
skins
[
index
].
c_str
());
}
}
}
}
xScale
=
1
;
yScale
=
1
;
linePatternD3D
=
0
;
linePatternD3D
=
0
;
linePatternGL
=
0x0f0f
;
linePatternGL
=
0x0f0f
;
waitFrame
=
0
;
waitFrame
=
0
;
...
@@ -1554,15 +1556,15 @@ void Game::ShowCardInfo(int code, bool resize) {
...
@@ -1554,15 +1556,15 @@ void Game::ShowCardInfo(int code, bool resize) {
wcscat
(
formatBuffer
,
scaleBuffer
);
wcscat
(
formatBuffer
,
scaleBuffer
);
}
}
stDataInfo
->
setText
(
formatBuffer
);
stDataInfo
->
setText
(
formatBuffer
);
int
offset_
sayuri
=
0
;
int
offset_
arrows
=
0
;
if
(
cd
.
type
&
TYPE_LINK
&&
cd
.
level
>
5
&&
window_size
.
Width
<
1220.0
)
if
(
cd
.
type
&
TYPE_LINK
&&
cd
.
level
>
5
&&
window_size
.
Width
<
1220.0
)
offset_
sayuri
=
15
;
offset_
arrows
=
15
;
stDataInfo
->
setRelativePosition
(
rect
<
s32
>
(
15
,
60
,
300
*
xScale
-
13
,
(
83
+
offset_
sayuri
)));
stDataInfo
->
setRelativePosition
(
rect
<
s32
>
(
15
,
60
,
300
*
xScale
-
13
,
(
83
+
offset_
arrows
)));
//stSetName->setRelativePosition(rect<s32>(15, (83 + offset_
sayuri) * yScale, 296 * xScale, (83 + offset_sayuri
) * yScale + offset));
//stSetName->setRelativePosition(rect<s32>(15, (83 + offset_
arrows) * yScale, 296 * xScale, (83 + offset_arrows
) * yScale + offset));
//stText->setRelativePosition(rect<s32>(15, (83 + offset_
sayuri
) * yScale + offset, 287 * xScale, 324 * yScale));
//stText->setRelativePosition(rect<s32>(15, (83 + offset_
arrows
) * yScale + offset, 287 * xScale, 324 * yScale));
stSetName
->
setRelativePosition
(
rect
<
s32
>
(
15
,
(
83
+
offset_
sayuri
),
296
*
xScale
,
(
83
+
offset_sayuri
)
+
offset
));
stSetName
->
setRelativePosition
(
rect
<
s32
>
(
15
,
(
83
+
offset_
arrows
),
296
*
xScale
,
(
83
+
offset_arrows
)
+
offset
));
stText
->
setRelativePosition
(
rect
<
s32
>
(
15
,
(
83
+
offset_
sayuri
)
+
offset
,
287
*
xScale
,
324
*
yScale
));
stText
->
setRelativePosition
(
rect
<
s32
>
(
15
,
(
83
+
offset_
arrows
)
+
offset
,
287
*
xScale
,
324
*
yScale
));
scrCardText
->
setRelativePosition
(
rect
<
s32
>
(
287
*
xScale
-
20
,
(
83
+
offset_
sayuri
)
+
offset
,
287
*
xScale
,
324
*
yScale
));
scrCardText
->
setRelativePosition
(
rect
<
s32
>
(
287
*
xScale
-
20
,
(
83
+
offset_
arrows
)
+
offset
,
287
*
xScale
,
324
*
yScale
));
}
else
{
}
else
{
myswprintf
(
formatBuffer
,
L"[%ls]"
,
dataManager
.
FormatType
(
cd
.
type
));
myswprintf
(
formatBuffer
,
L"[%ls]"
,
dataManager
.
FormatType
(
cd
.
type
));
stInfo
->
setText
(
formatBuffer
);
stInfo
->
setText
(
formatBuffer
);
...
@@ -1818,6 +1820,9 @@ void Game::OnResize() {
...
@@ -1818,6 +1820,9 @@ void Game::OnResize() {
//old_guiFont->drop();
//old_guiFont->drop();
old_textFont
->
drop
();
old_textFont
->
drop
();
imageManager
.
ClearTexture
();
imageManager
.
ResizeTexture
();
wMainMenu
->
setRelativePosition
(
ResizeWin
(
370
,
200
,
650
,
415
));
wMainMenu
->
setRelativePosition
(
ResizeWin
(
370
,
200
,
650
,
415
));
wDeckEdit
->
setRelativePosition
(
Resize
(
309
,
5
,
605
,
130
));
wDeckEdit
->
setRelativePosition
(
Resize
(
309
,
5
,
605
,
130
));
cbDBLFList
->
setRelativePosition
(
Resize
(
80
,
5
,
220
,
30
));
cbDBLFList
->
setRelativePosition
(
Resize
(
80
,
5
,
220
,
30
));
...
@@ -1948,8 +1953,6 @@ void Game::OnResize() {
...
@@ -1948,8 +1953,6 @@ void Game::OnResize() {
btnChainWhenAvail
->
setRelativePosition
(
Resize
(
205
,
180
,
295
,
215
));
btnChainWhenAvail
->
setRelativePosition
(
Resize
(
205
,
180
,
295
,
215
));
btnShuffle
->
setRelativePosition
(
Resize
(
205
,
230
,
295
,
265
));
btnShuffle
->
setRelativePosition
(
Resize
(
205
,
230
,
295
,
265
));
btnCancelOrFinish
->
setRelativePosition
(
Resize
(
205
,
230
,
295
,
265
));
btnCancelOrFinish
->
setRelativePosition
(
Resize
(
205
,
230
,
295
,
265
));
imageManager
.
ClearTexture
();
}
}
recti
Game
::
Resize
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
)
{
recti
Game
::
Resize
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
)
{
x
=
x
*
xScale
;
x
=
x
*
xScale
;
...
...
gframe/image_manager.cpp
View file @
0642152d
...
@@ -11,17 +11,9 @@ ImageManager imageManager;
...
@@ -11,17 +11,9 @@ ImageManager imageManager;
bool
ImageManager
::
Initial
()
{
bool
ImageManager
::
Initial
()
{
RefreshRandomImageList
();
RefreshRandomImageList
();
tCover
[
0
]
=
GetRandomImage
(
TEXTURE_COVER_S
);
tCover
[
0
]
=
NULL
;
if
(
!
tCover
[
0
])
tCover
[
1
]
=
NULL
;
tCover
[
0
]
=
driver
->
getTexture
(
"textures/cover.jpg"
);
//tUnknown = NULL;
tCover
[
1
]
=
GetRandomImage
(
TEXTURE_COVER_O
);
if
(
!
tCover
[
1
])
tCover
[
1
]
=
driver
->
getTexture
(
"textures/cover2.jpg"
);
if
(
!
tCover
[
1
])
tCover
[
1
]
=
GetRandomImage
(
TEXTURE_COVER_S
);
if
(
!
tCover
[
1
])
tCover
[
1
]
=
tCover
[
0
];
//tUnknown = driver->getTexture("textures/unknown.jpg");
tUnknown
[
0
]
=
NULL
;
tUnknown
[
0
]
=
NULL
;
tUnknown
[
1
]
=
NULL
;
tUnknown
[
1
]
=
NULL
;
tUnknown
[
2
]
=
NULL
;
tUnknown
[
2
]
=
NULL
;
...
@@ -45,25 +37,9 @@ bool ImageManager::Initial() {
...
@@ -45,25 +37,9 @@ bool ImageManager::Initial() {
tHand
[
0
]
=
driver
->
getTexture
(
"textures/f1.jpg"
);
tHand
[
0
]
=
driver
->
getTexture
(
"textures/f1.jpg"
);
tHand
[
1
]
=
driver
->
getTexture
(
"textures/f2.jpg"
);
tHand
[
1
]
=
driver
->
getTexture
(
"textures/f2.jpg"
);
tHand
[
2
]
=
driver
->
getTexture
(
"textures/f3.jpg"
);
tHand
[
2
]
=
driver
->
getTexture
(
"textures/f3.jpg"
);
tBackGround
=
GetRandomImage
(
TEXTURE_DUEL
);
tBackGround
=
NULL
;
if
(
!
tBackGround
)
tBackGround_menu
=
NULL
;
tBackGround
=
driver
->
getTexture
(
"textures/bg.jpg"
);
tBackGround_deck
=
NULL
;
if
(
!
tBackGround
)
tBackGround
=
driver
->
getTexture
(
"textures/bg_duel.jpg"
);
tBackGround_menu
=
GetRandomImage
(
TEXTURE_MENU
);
if
(
!
tBackGround_menu
)
tBackGround_menu
=
driver
->
getTexture
(
"textures/bg_menu.jpg"
);
if
(
!
tBackGround_menu
)
tBackGround_menu
=
GetRandomImage
(
TEXTURE_DUEL
);
if
(
!
tBackGround_menu
)
tBackGround_menu
=
tBackGround
;
tBackGround_deck
=
GetRandomImage
(
TEXTURE_DECK
);
if
(
!
tBackGround_deck
)
tBackGround_deck
=
driver
->
getTexture
(
"textures/bg_deck.jpg"
);
if
(
!
tBackGround_deck
)
tBackGround_deck
=
GetRandomImage
(
TEXTURE_DUEL
);
if
(
!
tBackGround_deck
)
tBackGround_deck
=
tBackGround
;
tField
[
0
]
=
driver
->
getTexture
(
"textures/field2.png"
);
tField
[
0
]
=
driver
->
getTexture
(
"textures/field2.png"
);
tFieldTransparent
[
0
]
=
driver
->
getTexture
(
"textures/field-transparent2.png"
);
tFieldTransparent
[
0
]
=
driver
->
getTexture
(
"textures/field-transparent2.png"
);
tField
[
1
]
=
driver
->
getTexture
(
"textures/field3.png"
);
tField
[
1
]
=
driver
->
getTexture
(
"textures/field3.png"
);
...
@@ -78,20 +54,37 @@ bool ImageManager::Initial() {
...
@@ -78,20 +54,37 @@ bool ImageManager::Initial() {
tLScale
[
i
]
=
driver
->
getTexture
(
buff
);
tLScale
[
i
]
=
driver
->
getTexture
(
buff
);
}
}
tClock
=
driver
->
getTexture
(
"textures/clock.png"
);
tClock
=
driver
->
getTexture
(
"textures/clock.png"
);
ResizeTexture
();
return
true
;
return
true
;
}
}
irr
::
video
::
ITexture
*
ImageManager
::
GetRandomImage
(
int
image_type
)
{
irr
::
video
::
ITexture
*
ImageManager
::
GetRandomImage
(
int
image_type
)
{
int
count
=
ImageList
[
image_type
].
size
();
int
count
=
ImageList
[
image_type
].
size
();
if
(
count
<=
0
)
if
(
count
<=
0
)
return
0
;
return
NULL
;
char
ImageName
[
1024
];
char
ImageName
[
1024
];
wchar_t
fname
[
1024
];
wchar_t
fname
[
1024
];
int
image_id
=
rand
()
%
count
;
if
(
saved_image_id
[
image_type
]
==
-
1
)
saved_image_id
[
image_type
]
=
rand
()
%
count
;
int
image_id
=
saved_image_id
[
image_type
];
auto
name
=
ImageList
[
image_type
][
image_id
].
c_str
();
auto
name
=
ImageList
[
image_type
][
image_id
].
c_str
();
myswprintf
(
fname
,
L"./textures/%ls"
,
name
);
myswprintf
(
fname
,
L"./textures/%ls"
,
name
);
BufferIO
::
EncodeUTF8
(
fname
,
ImageName
);
BufferIO
::
EncodeUTF8
(
fname
,
ImageName
);
return
driver
->
getTexture
(
ImageName
);
return
driver
->
getTexture
(
ImageName
);
}
}
irr
::
video
::
ITexture
*
ImageManager
::
GetRandomImage
(
int
image_type
,
s32
width
,
s32
height
)
{
int
count
=
ImageList
[
image_type
].
size
();
if
(
count
<=
0
)
return
NULL
;
char
ImageName
[
1024
];
wchar_t
fname
[
1024
];
if
(
saved_image_id
[
image_type
]
==
-
1
)
saved_image_id
[
image_type
]
=
rand
()
%
count
;
int
image_id
=
saved_image_id
[
image_type
];
auto
name
=
ImageList
[
image_type
][
image_id
].
c_str
();
myswprintf
(
fname
,
L"./textures/%ls"
,
name
);
BufferIO
::
EncodeUTF8
(
fname
,
ImageName
);
return
GetTextureFromFile
(
ImageName
,
width
,
height
);
}
void
ImageManager
::
RefreshRandomImageList
()
{
void
ImageManager
::
RefreshRandomImageList
()
{
RefreshImageDir
(
L"bg/"
,
TEXTURE_DUEL
);
RefreshImageDir
(
L"bg/"
,
TEXTURE_DUEL
);
RefreshImageDir
(
L"bg_duel/"
,
TEXTURE_DUEL
);
RefreshImageDir
(
L"bg_duel/"
,
TEXTURE_DUEL
);
...
@@ -101,6 +94,10 @@ void ImageManager::RefreshRandomImageList() {
...
@@ -101,6 +94,10 @@ void ImageManager::RefreshRandomImageList() {
RefreshImageDir
(
L"cover2/"
,
TEXTURE_COVER_O
);
RefreshImageDir
(
L"cover2/"
,
TEXTURE_COVER_O
);
RefreshImageDir
(
L"attack/"
,
TEXTURE_ATTACK
);
RefreshImageDir
(
L"attack/"
,
TEXTURE_ATTACK
);
RefreshImageDir
(
L"act/"
,
TEXTURE_ACTIVATE
);
RefreshImageDir
(
L"act/"
,
TEXTURE_ACTIVATE
);
for
(
int
i
=
0
;
i
<
7
;
++
i
)
{
saved_image_id
[
i
]
=
-
1
;
}
}
}
void
ImageManager
::
RefreshImageDir
(
std
::
wstring
path
,
int
image_type
)
{
void
ImageManager
::
RefreshImageDir
(
std
::
wstring
path
,
int
image_type
)
{
#ifdef _WIN32
#ifdef _WIN32
...
@@ -158,7 +155,7 @@ void ImageManager::ClearTexture() {
...
@@ -158,7 +155,7 @@ void ImageManager::ClearTexture() {
tMap
[
0
].
clear
();
tMap
[
0
].
clear
();
tMap
[
1
].
clear
();
tMap
[
1
].
clear
();
tThumb
.
clear
();
tThumb
.
clear
();
t
Thumb
.
clear
();
t
Fields
.
clear
();
for
(
int
i
=
0
;
i
<
3
;
++
i
)
for
(
int
i
=
0
;
i
<
3
;
++
i
)
if
(
tUnknown
[
i
]
!=
NULL
)
{
if
(
tUnknown
[
i
]
!=
NULL
)
{
driver
->
removeTexture
(
tUnknown
[
i
]);
driver
->
removeTexture
(
tUnknown
[
i
]);
...
@@ -179,6 +176,48 @@ void ImageManager::RemoveTexture(int code) {
...
@@ -179,6 +176,48 @@ void ImageManager::RemoveTexture(int code) {
tMap
[
1
].
erase
(
tit
);
tMap
[
1
].
erase
(
tit
);
}
}
}
}
void
ImageManager
::
ResizeTexture
()
{
irr
::
s32
imgWidth
=
CARD_IMG_WIDTH
*
mainGame
->
xScale
;
irr
::
s32
imgHeight
=
CARD_IMG_HEIGHT
*
mainGame
->
yScale
;
irr
::
s32
bgWidth
=
1024
*
mainGame
->
xScale
;
irr
::
s32
bgHeight
=
640
*
mainGame
->
yScale
;
driver
->
removeTexture
(
tCover
[
0
]);
driver
->
removeTexture
(
tCover
[
1
]);
tCover
[
0
]
=
GetRandomImage
(
TEXTURE_COVER_S
,
imgWidth
,
imgHeight
);
if
(
!
tCover
[
0
])
tCover
[
0
]
=
GetTextureFromFile
(
"textures/cover.jpg"
,
imgWidth
,
imgHeight
);
tCover
[
1
]
=
GetRandomImage
(
TEXTURE_COVER_O
,
imgWidth
,
imgHeight
);
if
(
!
tCover
[
1
])
tCover
[
1
]
=
GetTextureFromFile
(
"textures/cover2.jpg"
,
imgWidth
,
imgHeight
);
if
(
!
tCover
[
1
])
tCover
[
1
]
=
GetRandomImage
(
TEXTURE_COVER_S
,
imgWidth
,
imgHeight
);
if
(
!
tCover
[
1
])
tCover
[
1
]
=
tCover
[
0
];
//driver->removeTexture(tUnknown);
//tUnknown = GetTextureFromFile("textures/unknown.jpg", imgWidth, imgHeight);
driver
->
removeTexture
(
tBackGround
);
tBackGround
=
GetRandomImage
(
TEXTURE_DUEL
,
bgWidth
,
bgHeight
);
if
(
!
tBackGround
)
tBackGround
=
GetTextureFromFile
(
"textures/bg.jpg"
,
bgWidth
,
bgHeight
);
if
(
!
tBackGround
)
tBackGround
=
GetTextureFromFile
(
"textures/bg_duel.jpg"
,
bgWidth
,
bgHeight
);
driver
->
removeTexture
(
tBackGround_menu
);
tBackGround_menu
=
GetRandomImage
(
TEXTURE_MENU
,
bgWidth
,
bgHeight
);
if
(
!
tBackGround_menu
)
tBackGround_menu
=
GetTextureFromFile
(
"textures/bg_menu.jpg"
,
bgWidth
,
bgHeight
);
if
(
!
tBackGround_menu
)
tBackGround_menu
=
GetRandomImage
(
TEXTURE_DUEL
,
bgWidth
,
bgHeight
);
if
(
!
tBackGround_menu
)
tBackGround_menu
=
tBackGround
;
driver
->
removeTexture
(
tBackGround_deck
);
tBackGround_deck
=
GetRandomImage
(
TEXTURE_DECK
,
bgWidth
,
bgHeight
);
if
(
!
tBackGround_deck
)
tBackGround_deck
=
GetTextureFromFile
(
"textures/bg_deck.jpg"
,
bgWidth
,
bgHeight
);
if
(
!
tBackGround_deck
)
tBackGround_deck
=
GetRandomImage
(
TEXTURE_DUEL
,
bgWidth
,
bgHeight
);
if
(
!
tBackGround_deck
)
tBackGround_deck
=
tBackGround
;
}
// function by Warr1024, from https://github.com/minetest/minetest/issues/2419 , modified
// function by Warr1024, from https://github.com/minetest/minetest/issues/2419 , modified
void
imageScaleNNAA
(
irr
::
video
::
IImage
*
src
,
irr
::
video
::
IImage
*
dest
)
{
void
imageScaleNNAA
(
irr
::
video
::
IImage
*
src
,
irr
::
video
::
IImage
*
dest
)
{
double
sx
,
sy
,
minsx
,
maxsx
,
minsy
,
maxsy
,
area
,
ra
,
ga
,
ba
,
aa
,
pw
,
ph
,
pa
;
double
sx
,
sy
,
minsx
,
maxsx
,
minsy
,
maxsy
,
area
,
ra
,
ga
,
ba
,
aa
,
pw
,
ph
,
pa
;
...
...
gframe/image_manager.h
View file @
0642152d
...
@@ -10,14 +10,17 @@ namespace ygo {
...
@@ -10,14 +10,17 @@ namespace ygo {
class
ImageManager
{
class
ImageManager
{
public:
public:
std
::
vector
<
std
::
wstring
>
ImageList
[
7
];
std
::
vector
<
std
::
wstring
>
ImageList
[
7
];
int
saved_image_id
[
7
];
bool
Initial
();
bool
Initial
();
//random image
//random image
irr
::
video
::
ITexture
*
GetRandomImage
(
int
image_type
);
irr
::
video
::
ITexture
*
GetRandomImage
(
int
image_type
);
irr
::
video
::
ITexture
*
GetRandomImage
(
int
image_type
,
s32
width
,
s32
height
);
void
RefreshRandomImageList
();
void
RefreshRandomImageList
();
void
RefreshImageDir
(
std
::
wstring
path
,
int
image_type
);
void
RefreshImageDir
(
std
::
wstring
path
,
int
image_type
);
void
SetDevice
(
irr
::
IrrlichtDevice
*
dev
);
void
SetDevice
(
irr
::
IrrlichtDevice
*
dev
);
void
ClearTexture
();
void
ClearTexture
();
void
RemoveTexture
(
int
code
);
void
RemoveTexture
(
int
code
);
void
ResizeTexture
();
irr
::
video
::
ITexture
*
GetTextureFromFile
(
char
*
file
,
s32
width
,
s32
height
);
irr
::
video
::
ITexture
*
GetTextureFromFile
(
char
*
file
,
s32
width
,
s32
height
);
irr
::
video
::
ITexture
*
GetTextureUnknown
(
s32
width
,
s32
height
,
int
index
);
irr
::
video
::
ITexture
*
GetTextureUnknown
(
s32
width
,
s32
height
,
int
index
);
irr
::
video
::
ITexture
*
GetTexture
(
int
code
,
bool
fit
=
false
);
irr
::
video
::
ITexture
*
GetTexture
(
int
code
,
bool
fit
=
false
);
...
...
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