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
a2e522d9
Commit
a2e522d9
authored
Aug 16, 2020
by
mercury233
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/Fluorohydride/ygopro
into server
parents
c35538d3
5da55d59
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
202 additions
and
5 deletions
+202
-5
gframe/deck_con.cpp
gframe/deck_con.cpp
+92
-1
gframe/deck_con.h
gframe/deck_con.h
+2
-0
gframe/drawing.cpp
gframe/drawing.cpp
+14
-2
gframe/event_handler.cpp
gframe/event_handler.cpp
+5
-1
gframe/game.cpp
gframe/game.cpp
+22
-0
gframe/game.h
gframe/game.h
+11
-0
gframe/image_manager.cpp
gframe/image_manager.cpp
+36
-0
gframe/image_manager.h
gframe/image_manager.h
+2
-0
strings.conf
strings.conf
+18
-1
No files found.
gframe/deck_con.cpp
View file @
a2e522d9
...
@@ -58,6 +58,52 @@ static bool check_set_code(const CardDataC& data, int set_code) {
...
@@ -58,6 +58,52 @@ static bool check_set_code(const CardDataC& data, int set_code) {
return
res
;
return
res
;
}
}
inline
void
ShowBigCard
(
int
code
,
float
zoom
)
{
mainGame
->
deckBuilder
.
bigcard_code
=
code
;
mainGame
->
deckBuilder
.
bigcard_zoom
=
zoom
;
ITexture
*
img
=
imageManager
.
GetBigPicture
(
code
,
zoom
);
mainGame
->
imgBigCard
->
setImage
(
img
);
auto
size
=
img
->
getSize
();
s32
left
=
mainGame
->
window_size
.
Width
/
2
-
size
.
Width
/
2
;
s32
top
=
mainGame
->
window_size
.
Height
/
2
-
size
.
Height
/
2
;
mainGame
->
imgBigCard
->
setRelativePosition
(
recti
(
0
,
0
,
size
.
Width
,
size
.
Height
));
mainGame
->
wBigCard
->
setRelativePosition
(
recti
(
left
,
top
,
left
+
size
.
Width
,
top
+
size
.
Height
));
mainGame
->
gMutex
.
lock
();
mainGame
->
btnBigCardOriginalSize
->
setVisible
(
true
);
mainGame
->
btnBigCardZoomIn
->
setVisible
(
true
);
mainGame
->
btnBigCardZoomOut
->
setVisible
(
true
);
mainGame
->
btnBigCardClose
->
setVisible
(
true
);
mainGame
->
ShowElement
(
mainGame
->
wBigCard
);
mainGame
->
env
->
getRootGUIElement
()
->
bringToFront
(
mainGame
->
wBigCard
);
mainGame
->
gMutex
.
unlock
();
}
inline
void
ZoomBigCard
(
s32
centerx
=
-
1
,
s32
centery
=
-
1
)
{
if
(
mainGame
->
deckBuilder
.
bigcard_zoom
>=
4
)
mainGame
->
deckBuilder
.
bigcard_zoom
=
4
;
if
(
mainGame
->
deckBuilder
.
bigcard_zoom
<=
0.2
)
mainGame
->
deckBuilder
.
bigcard_zoom
=
0.2
;
ITexture
*
img
=
imageManager
.
GetBigPicture
(
mainGame
->
deckBuilder
.
bigcard_code
,
mainGame
->
deckBuilder
.
bigcard_zoom
);
mainGame
->
imgBigCard
->
setImage
(
img
);
auto
size
=
img
->
getSize
();
auto
pos
=
mainGame
->
wBigCard
->
getRelativePosition
();
if
(
centerx
==
-
1
)
{
centerx
=
pos
.
UpperLeftCorner
.
X
+
pos
.
getWidth
()
/
2
;
centery
=
pos
.
UpperLeftCorner
.
Y
+
pos
.
getHeight
()
*
0.444
f
;
}
float
posx
=
(
float
)(
centerx
-
pos
.
UpperLeftCorner
.
X
)
/
pos
.
getWidth
();
float
posy
=
(
float
)(
centery
-
pos
.
UpperLeftCorner
.
Y
)
/
pos
.
getHeight
();
s32
left
=
centerx
-
size
.
Width
*
posx
;
s32
top
=
centery
-
size
.
Height
*
posy
;
mainGame
->
imgBigCard
->
setRelativePosition
(
recti
(
0
,
0
,
size
.
Width
,
size
.
Height
));
mainGame
->
wBigCard
->
setRelativePosition
(
recti
(
left
,
top
,
left
+
size
.
Width
,
top
+
size
.
Height
));
}
inline
void
CloseBigCard
()
{
mainGame
->
HideElement
(
mainGame
->
wBigCard
);
mainGame
->
btnBigCardOriginalSize
->
setVisible
(
false
);
mainGame
->
btnBigCardZoomIn
->
setVisible
(
false
);
mainGame
->
btnBigCardZoomOut
->
setVisible
(
false
);
mainGame
->
btnBigCardClose
->
setVisible
(
false
);
}
void
DeckBuilder
::
Initialize
()
{
void
DeckBuilder
::
Initialize
()
{
mainGame
->
is_building
=
true
;
mainGame
->
is_building
=
true
;
mainGame
->
is_siding
=
false
;
mainGame
->
is_siding
=
false
;
...
@@ -99,6 +145,11 @@ void DeckBuilder::Terminate() {
...
@@ -99,6 +145,11 @@ void DeckBuilder::Terminate() {
mainGame
->
wCardImg
->
setVisible
(
false
);
mainGame
->
wCardImg
->
setVisible
(
false
);
mainGame
->
wInfos
->
setVisible
(
false
);
mainGame
->
wInfos
->
setVisible
(
false
);
mainGame
->
btnLeaveGame
->
setVisible
(
false
);
mainGame
->
btnLeaveGame
->
setVisible
(
false
);
mainGame
->
wBigCard
->
setVisible
(
false
);
mainGame
->
btnBigCardOriginalSize
->
setVisible
(
false
);
mainGame
->
btnBigCardZoomIn
->
setVisible
(
false
);
mainGame
->
btnBigCardZoomOut
->
setVisible
(
false
);
mainGame
->
btnBigCardClose
->
setVisible
(
false
);
mainGame
->
PopupElement
(
mainGame
->
wMainMenu
);
mainGame
->
PopupElement
(
mainGame
->
wMainMenu
);
mainGame
->
device
->
setEventReceiver
(
&
mainGame
->
menuHandler
);
mainGame
->
device
->
setEventReceiver
(
&
mainGame
->
menuHandler
);
mainGame
->
wACMessage
->
setVisible
(
false
);
mainGame
->
wACMessage
->
setVisible
(
false
);
...
@@ -254,6 +305,24 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -254,6 +305,24 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
deckManager
.
LoadDeck
(
mainGame
->
cbDeckSelect
->
getItem
(
mainGame
->
cbDeckSelect
->
getSelected
()));
deckManager
.
LoadDeck
(
mainGame
->
cbDeckSelect
->
getItem
(
mainGame
->
cbDeckSelect
->
getSelected
()));
break
;
break
;
}
}
case
BUTTON_BIG_CARD_ORIG_SIZE
:
{
ShowBigCard
(
bigcard_code
,
1
);
break
;
}
case
BUTTON_BIG_CARD_ZOOM_IN
:
{
bigcard_zoom
+=
0.2
;
ZoomBigCard
();
break
;
}
case
BUTTON_BIG_CARD_ZOOM_OUT
:
{
bigcard_zoom
-=
0.2
;
ZoomBigCard
();
break
;
}
case
BUTTON_BIG_CARD_CLOSE
:
{
CloseBigCard
();
break
;
}
case
BUTTON_MSG_OK
:
{
case
BUTTON_MSG_OK
:
{
mainGame
->
HideElement
(
mainGame
->
wMessage
);
mainGame
->
HideElement
(
mainGame
->
wMessage
);
mainGame
->
actionSignal
.
Set
();
mainGame
->
actionSignal
.
Set
();
...
@@ -531,6 +600,11 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -531,6 +600,11 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
}
}
case
irr
:
:
EMIE_LMOUSE_LEFT_UP
:
{
case
irr
:
:
EMIE_LMOUSE_LEFT_UP
:
{
is_starting_dragging
=
false
;
is_starting_dragging
=
false
;
irr
::
gui
::
IGUIElement
*
root
=
mainGame
->
env
->
getRootGUIElement
();
if
(
!
is_draging
&&
!
mainGame
->
is_siding
&&
root
->
getElementFromPoint
(
mouse_pos
)
==
mainGame
->
imgCard
)
{
ShowBigCard
(
mainGame
->
showingcode
,
1
);
break
;
}
if
(
!
is_draging
)
if
(
!
is_draging
)
break
;
break
;
soundManager
.
PlaySoundEffect
(
SOUND_CARD_DROP
);
soundManager
.
PlaySoundEffect
(
SOUND_CARD_DROP
);
...
@@ -554,6 +628,14 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -554,6 +628,14 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
is_draging
=
false
;
is_draging
=
false
;
break
;
break
;
}
}
case
irr
:
:
EMIE_LMOUSE_DOUBLE_CLICK
:
{
irr
::
gui
::
IGUIElement
*
root
=
mainGame
->
env
->
getRootGUIElement
();
if
(
!
is_draging
&&
!
mainGame
->
is_siding
&&
root
->
getElementFromPoint
(
mouse_pos
)
==
root
&&
hovered_code
)
{
ShowBigCard
(
hovered_code
,
1
);
break
;
}
break
;
}
case
irr
:
:
EMIE_RMOUSE_LEFT_UP
:
{
case
irr
:
:
EMIE_RMOUSE_LEFT_UP
:
{
if
(
mainGame
->
is_siding
)
{
if
(
mainGame
->
is_siding
)
{
if
(
is_draging
)
if
(
is_draging
)
...
@@ -576,6 +658,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -576,6 +658,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
}
}
break
;
break
;
}
}
if
(
mainGame
->
wBigCard
->
isVisible
())
{
CloseBigCard
();
break
;
}
if
(
mainGame
->
wCategories
->
isVisible
()
||
mainGame
->
wQuery
->
isVisible
())
if
(
mainGame
->
wCategories
->
isVisible
()
||
mainGame
->
wQuery
->
isVisible
())
break
;
break
;
if
(
!
is_draging
)
{
if
(
!
is_draging
)
{
...
@@ -658,11 +744,16 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -658,11 +744,16 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
break
;
break
;
}
}
case
irr
:
:
EMIE_MOUSE_WHEEL
:
{
case
irr
:
:
EMIE_MOUSE_WHEEL
:
{
irr
::
gui
::
IGUIElement
*
root
=
mainGame
->
env
->
getRootGUIElement
();
if
(
root
->
getElementFromPoint
(
mouse_pos
)
==
mainGame
->
imgBigCard
)
{
bigcard_zoom
+=
0.1
f
*
event
.
MouseInput
.
Wheel
;
ZoomBigCard
(
mouse_pos
.
X
,
mouse_pos
.
Y
);
break
;
}
if
(
!
mainGame
->
scrFilter
->
isVisible
())
if
(
!
mainGame
->
scrFilter
->
isVisible
())
break
;
break
;
if
(
mainGame
->
env
->
hasFocus
(
mainGame
->
scrFilter
))
if
(
mainGame
->
env
->
hasFocus
(
mainGame
->
scrFilter
))
break
;
break
;
irr
::
gui
::
IGUIElement
*
root
=
mainGame
->
env
->
getRootGUIElement
();
if
(
root
->
getElementFromPoint
(
mouse_pos
)
!=
root
)
if
(
root
->
getElementFromPoint
(
mouse_pos
)
!=
root
)
break
;
break
;
if
(
event
.
MouseInput
.
Wheel
<
0
)
{
if
(
event
.
MouseInput
.
Wheel
<
0
)
{
...
...
gframe/deck_con.h
View file @
a2e522d9
...
@@ -56,6 +56,8 @@ public:
...
@@ -56,6 +56,8 @@ public:
bool
is_starting_dragging
;
bool
is_starting_dragging
;
int
dragx
;
int
dragx
;
int
dragy
;
int
dragy
;
int
bigcard_code
;
float
bigcard_zoom
;
size_t
pre_mainc
;
size_t
pre_mainc
;
size_t
pre_extrac
;
size_t
pre_extrac
;
size_t
pre_sidec
;
size_t
pre_sidec
;
...
...
gframe/drawing.cpp
View file @
a2e522d9
...
@@ -452,9 +452,21 @@ void Game::DrawMisc() {
...
@@ -452,9 +452,21 @@ void Game::DrawMisc() {
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
}
if
(
dField
.
conti_act
)
{
if
(
dField
.
conti_act
)
{
im
.
setTranslation
(
vector3df
((
matManager
.
vFieldContiAct
[
0
].
X
+
matManager
.
vFieldContiAct
[
1
].
X
)
/
2
,
irr
::
core
::
vector3df
pos
=
vector3df
((
matManager
.
vFieldContiAct
[
0
].
X
+
matManager
.
vFieldContiAct
[
1
].
X
)
/
2
,
(
matManager
.
vFieldContiAct
[
0
].
Y
+
matManager
.
vFieldContiAct
[
2
].
Y
)
/
2
,
0.03
f
));
(
matManager
.
vFieldContiAct
[
0
].
Y
+
matManager
.
vFieldContiAct
[
2
].
Y
)
/
2
,
0
);
im
.
setRotationRadians
(
irr
::
core
::
vector3df
(
0
,
0
,
0
));
for
(
auto
cit
=
dField
.
conti_cards
.
begin
();
cit
!=
dField
.
conti_cards
.
end
();
++
cit
)
{
im
.
setTranslation
(
pos
);
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
matManager
.
mCard
.
setTexture
(
0
,
imageManager
.
GetTexture
((
*
cit
)
->
code
));
driver
->
setMaterial
(
matManager
.
mCard
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vCardFront
,
4
,
matManager
.
iRectangle
,
2
);
pos
.
Z
+=
0.03
f
;
}
im
.
setTranslation
(
pos
);
im
.
setRotationRadians
(
act_rot
);
driver
->
setTransform
(
irr
::
video
::
ETS_WORLD
,
im
);
driver
->
setMaterial
(
matManager
.
mTexture
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vActivate
,
4
,
matManager
.
iRectangle
,
2
);
}
}
if
(
dField
.
chains
.
size
()
>
1
||
mainGame
->
gameConf
.
draw_single_chain
)
{
if
(
dField
.
chains
.
size
()
>
1
||
mainGame
->
gameConf
.
draw_single_chain
)
{
...
...
gframe/event_handler.cpp
View file @
a2e522d9
...
@@ -1794,10 +1794,14 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
...
@@ -1794,10 +1794,14 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
mainGame
->
SetCursor
(
event
.
GUIEvent
.
Caller
->
isEnabled
()
?
ECI_IBEAM
:
ECI_NORMAL
);
mainGame
->
SetCursor
(
event
.
GUIEvent
.
Caller
->
isEnabled
()
?
ECI_IBEAM
:
ECI_NORMAL
);
return
true
;
return
true
;
}
}
if
(
event
.
GUIEvent
.
Caller
==
mainGame
->
imgCard
&&
mainGame
->
is_building
&&
!
mainGame
->
is_siding
)
{
mainGame
->
SetCursor
(
ECI_HAND
);
return
true
;
}
break
;
break
;
}
}
case
irr
:
:
gui
::
EGET_ELEMENT_LEFT
:
{
case
irr
:
:
gui
::
EGET_ELEMENT_LEFT
:
{
if
(
event
.
GUIEvent
.
Caller
->
getType
()
==
EGUIET_EDIT_BOX
)
{
if
(
event
.
GUIEvent
.
Caller
->
getType
()
==
EGUIET_EDIT_BOX
||
event
.
GUIEvent
.
Caller
==
mainGame
->
imgCard
)
{
mainGame
->
SetCursor
(
ECI_NORMAL
);
mainGame
->
SetCursor
(
ECI_NORMAL
);
return
true
;
return
true
;
}
}
...
...
gframe/game.cpp
View file @
a2e522d9
...
@@ -758,6 +758,23 @@ bool Game::Initialize() {
...
@@ -758,6 +758,23 @@ bool Game::Initialize() {
//cancel or finish
//cancel or finish
btnCancelOrFinish
=
env
->
addButton
(
rect
<
s32
>
(
205
,
230
,
295
,
265
),
0
,
BUTTON_CANCEL_OR_FINISH
,
dataManager
.
GetSysString
(
1295
));
btnCancelOrFinish
=
env
->
addButton
(
rect
<
s32
>
(
205
,
230
,
295
,
265
),
0
,
BUTTON_CANCEL_OR_FINISH
,
dataManager
.
GetSysString
(
1295
));
btnCancelOrFinish
->
setVisible
(
false
);
btnCancelOrFinish
->
setVisible
(
false
);
//big picture
wBigCard
=
env
->
addWindow
(
rect
<
s32
>
(
0
,
0
,
0
,
0
),
false
,
L""
);
wBigCard
->
getCloseButton
()
->
setVisible
(
false
);
wBigCard
->
setDrawTitlebar
(
false
);
wBigCard
->
setDrawBackground
(
false
);
wBigCard
->
setVisible
(
false
);
imgBigCard
=
env
->
addImage
(
rect
<
s32
>
(
0
,
0
,
0
,
0
),
wBigCard
);
imgBigCard
->
setScaleImage
(
false
);
imgBigCard
->
setUseAlphaChannel
(
true
);
btnBigCardOriginalSize
=
env
->
addButton
(
rect
<
s32
>
(
205
,
100
,
295
,
135
),
0
,
BUTTON_BIG_CARD_ORIG_SIZE
,
dataManager
.
GetSysString
(
1443
));
btnBigCardZoomIn
=
env
->
addButton
(
rect
<
s32
>
(
205
,
140
,
295
,
175
),
0
,
BUTTON_BIG_CARD_ZOOM_IN
,
dataManager
.
GetSysString
(
1441
));
btnBigCardZoomOut
=
env
->
addButton
(
rect
<
s32
>
(
205
,
180
,
295
,
215
),
0
,
BUTTON_BIG_CARD_ZOOM_OUT
,
dataManager
.
GetSysString
(
1442
));
btnBigCardClose
=
env
->
addButton
(
rect
<
s32
>
(
205
,
230
,
295
,
265
),
0
,
BUTTON_BIG_CARD_CLOSE
,
dataManager
.
GetSysString
(
1440
));
btnBigCardOriginalSize
->
setVisible
(
false
);
btnBigCardZoomIn
->
setVisible
(
false
);
btnBigCardZoomOut
->
setVisible
(
false
);
btnBigCardClose
->
setVisible
(
false
);
//leave/surrender/exit
//leave/surrender/exit
btnLeaveGame
=
env
->
addButton
(
rect
<
s32
>
(
205
,
5
,
295
,
80
),
0
,
BUTTON_LEAVE_GAME
,
L""
);
btnLeaveGame
=
env
->
addButton
(
rect
<
s32
>
(
205
,
5
,
295
,
80
),
0
,
BUTTON_LEAVE_GAME
,
L""
);
btnLeaveGame
->
setVisible
(
false
);
btnLeaveGame
->
setVisible
(
false
);
...
@@ -1762,6 +1779,11 @@ void Game::OnResize() {
...
@@ -1762,6 +1779,11 @@ 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
));
btnBigCardOriginalSize
->
setRelativePosition
(
Resize
(
205
,
100
,
295
,
135
));
btnBigCardZoomIn
->
setRelativePosition
(
Resize
(
205
,
140
,
295
,
175
));
btnBigCardZoomOut
->
setRelativePosition
(
Resize
(
205
,
180
,
295
,
215
));
btnBigCardClose
->
setRelativePosition
(
Resize
(
205
,
230
,
295
,
265
));
}
}
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/game.h
View file @
a2e522d9
...
@@ -553,6 +553,13 @@ public:
...
@@ -553,6 +553,13 @@ public:
irr
::
gui
::
IGUIButton
*
btnChainWhenAvail
;
irr
::
gui
::
IGUIButton
*
btnChainWhenAvail
;
//cancel or finish
//cancel or finish
irr
::
gui
::
IGUIButton
*
btnCancelOrFinish
;
irr
::
gui
::
IGUIButton
*
btnCancelOrFinish
;
//big picture
irr
::
gui
::
IGUIWindow
*
wBigCard
;
irr
::
gui
::
IGUIImage
*
imgBigCard
;
irr
::
gui
::
IGUIButton
*
btnBigCardOriginalSize
;
irr
::
gui
::
IGUIButton
*
btnBigCardZoomIn
;
irr
::
gui
::
IGUIButton
*
btnBigCardZoomOut
;
irr
::
gui
::
IGUIButton
*
btnBigCardClose
;
#endif //YGOPRO_SERVER_MODE
#endif //YGOPRO_SERVER_MODE
};
};
...
@@ -747,6 +754,10 @@ extern time_t pre_seed[3];
...
@@ -747,6 +754,10 @@ extern time_t pre_seed[3];
#define CHECKBOX_MULTI_KEYWORDS 372
#define CHECKBOX_MULTI_KEYWORDS 372
#define CHECKBOX_PREFER_EXPANSION 373
#define CHECKBOX_PREFER_EXPANSION 373
#define CHECKBOX_DRAW_SINGLE_CHAIN 374
#define CHECKBOX_DRAW_SINGLE_CHAIN 374
#define BUTTON_BIG_CARD_CLOSE 380
#define BUTTON_BIG_CARD_ZOOM_IN 381
#define BUTTON_BIG_CARD_ZOOM_OUT 382
#define BUTTON_BIG_CARD_ORIG_SIZE 383
#define DEFAULT_DUEL_RULE 5
#define DEFAULT_DUEL_RULE 5
...
...
gframe/image_manager.cpp
View file @
a2e522d9
...
@@ -15,6 +15,7 @@ bool ImageManager::Initial() {
...
@@ -15,6 +15,7 @@ bool ImageManager::Initial() {
tUnknown
=
NULL
;
tUnknown
=
NULL
;
tUnknownFit
=
NULL
;
tUnknownFit
=
NULL
;
tUnknownThumb
=
NULL
;
tUnknownThumb
=
NULL
;
tBigPicture
=
NULL
;
tLoading
=
NULL
;
tLoading
=
NULL
;
tThumbLoadingThreadRunning
=
false
;
tThumbLoadingThreadRunning
=
false
;
tAct
=
driver
->
getTexture
(
"textures/act.png"
);
tAct
=
driver
->
getTexture
(
"textures/act.png"
);
...
@@ -60,6 +61,10 @@ void ImageManager::ClearTexture() {
...
@@ -60,6 +61,10 @@ void ImageManager::ClearTexture() {
if
(
tit
->
second
&&
tit
->
second
!=
tLoading
)
if
(
tit
->
second
&&
tit
->
second
!=
tLoading
)
driver
->
removeTexture
(
tit
->
second
);
driver
->
removeTexture
(
tit
->
second
);
}
}
if
(
tBigPicture
!=
NULL
)
{
driver
->
removeTexture
(
tBigPicture
);
tBigPicture
=
NULL
;
}
tMap
[
0
].
clear
();
tMap
[
0
].
clear
();
tMap
[
1
].
clear
();
tMap
[
1
].
clear
();
tThumb
.
clear
();
tThumb
.
clear
();
...
@@ -246,6 +251,37 @@ irr::video::ITexture* ImageManager::GetTexture(int code, bool fit) {
...
@@ -246,6 +251,37 @@ irr::video::ITexture* ImageManager::GetTexture(int code, bool fit) {
else
else
return
mainGame
->
gameConf
.
use_image_scale
?
(
fit
?
tUnknownFit
:
tUnknown
)
:
GetTextureThumb
(
code
);
return
mainGame
->
gameConf
.
use_image_scale
?
(
fit
?
tUnknownFit
:
tUnknown
)
:
GetTextureThumb
(
code
);
}
}
irr
::
video
::
ITexture
*
ImageManager
::
GetBigPicture
(
int
code
,
float
zoom
)
{
if
(
code
==
0
)
return
tUnknown
;
if
(
tBigPicture
!=
NULL
)
{
driver
->
removeTexture
(
tBigPicture
);
tBigPicture
=
NULL
;
}
irr
::
video
::
ITexture
*
texture
;
char
file
[
256
];
sprintf
(
file
,
"expansions/pics/%d.jpg"
,
code
);
irr
::
video
::
IImage
*
srcimg
=
driver
->
createImageFromFile
(
file
);
if
(
srcimg
==
NULL
)
{
sprintf
(
file
,
"pics/%d.jpg"
,
code
);
srcimg
=
driver
->
createImageFromFile
(
file
);
}
if
(
srcimg
==
NULL
)
{
return
tUnknown
;
}
if
(
zoom
==
1
)
{
texture
=
driver
->
addTexture
(
file
,
srcimg
);
}
else
{
auto
origsize
=
srcimg
->
getDimension
();
video
::
IImage
*
destimg
=
driver
->
createImage
(
srcimg
->
getColorFormat
(),
irr
::
core
::
dimension2d
<
u32
>
(
origsize
.
Width
*
zoom
,
origsize
.
Height
*
zoom
));
imageScaleNNAA
(
srcimg
,
destimg
);
texture
=
driver
->
addTexture
(
file
,
destimg
);
destimg
->
drop
();
}
srcimg
->
drop
();
tBigPicture
=
texture
;
return
texture
;
}
int
ImageManager
::
LoadThumbThread
()
{
int
ImageManager
::
LoadThumbThread
()
{
while
(
true
)
{
while
(
true
)
{
imageManager
.
tThumbLoadingMutex
.
lock
();
imageManager
.
tThumbLoadingMutex
.
lock
();
...
...
gframe/image_manager.h
View file @
a2e522d9
...
@@ -17,6 +17,7 @@ public:
...
@@ -17,6 +17,7 @@ public:
void
ResizeTexture
();
void
ResizeTexture
();
irr
::
video
::
ITexture
*
GetTextureFromFile
(
const
char
*
file
,
s32
width
,
s32
height
);
irr
::
video
::
ITexture
*
GetTextureFromFile
(
const
char
*
file
,
s32
width
,
s32
height
);
irr
::
video
::
ITexture
*
GetTexture
(
int
code
,
bool
fit
=
false
);
irr
::
video
::
ITexture
*
GetTexture
(
int
code
,
bool
fit
=
false
);
irr
::
video
::
ITexture
*
GetBigPicture
(
int
code
,
float
zoom
);
irr
::
video
::
ITexture
*
GetTextureThumb
(
int
code
);
irr
::
video
::
ITexture
*
GetTextureThumb
(
int
code
);
irr
::
video
::
ITexture
*
GetTextureField
(
int
code
);
irr
::
video
::
ITexture
*
GetTextureField
(
int
code
);
static
int
LoadThumbThread
();
static
int
LoadThumbThread
();
...
@@ -34,6 +35,7 @@ public:
...
@@ -34,6 +35,7 @@ public:
irr
::
video
::
ITexture
*
tUnknown
;
irr
::
video
::
ITexture
*
tUnknown
;
irr
::
video
::
ITexture
*
tUnknownFit
;
irr
::
video
::
ITexture
*
tUnknownFit
;
irr
::
video
::
ITexture
*
tUnknownThumb
;
irr
::
video
::
ITexture
*
tUnknownThumb
;
irr
::
video
::
ITexture
*
tBigPicture
;
irr
::
video
::
ITexture
*
tLoading
;
irr
::
video
::
ITexture
*
tLoading
;
irr
::
video
::
ITexture
*
tAct
;
irr
::
video
::
ITexture
*
tAct
;
irr
::
video
::
ITexture
*
tAttack
;
irr
::
video
::
ITexture
*
tAttack
;
...
...
strings.conf
View file @
a2e522d9
...
@@ -456,6 +456,10 @@
...
@@ -456,6 +456,10 @@
!
system
1429
选择的位置不符合条件。
!
system
1429
选择的位置不符合条件。
!
system
1430
选择的表示形式不符合条件。
!
system
1430
选择的表示形式不符合条件。
!
system
1431
选择的指示物不符合条件。
!
system
1431
选择的指示物不符合条件。
!
system
1440
关闭大图
!
system
1441
放大
!
system
1442
缩小
!
system
1443
原始尺寸
!
system
1500
决斗结束。
!
system
1500
决斗结束。
!
system
1501
录像结束。
!
system
1501
录像结束。
!
system
1502
连接已断开。
!
system
1502
连接已断开。
...
@@ -595,6 +599,7 @@
...
@@ -595,6 +599,7 @@
!
counter
0
x55
指示物(隐居者的大釜)
!
counter
0
x55
指示物(隐居者的大釜)
!
counter
0
x56
炎星指示物
!
counter
0
x56
炎星指示物
!
counter
0
x57
幻魔指示物
!
counter
0
x57
幻魔指示物
!
counter
0
x58
指示物(祢须三破鸣比)
#setnames, using tab for comment
#setnames, using tab for comment
!
setname
0
x1
正义盟军
A
・
O
・
J
!
setname
0
x1
正义盟军
A
・
O
・
J
!
setname
0
x2
次世代 ジェネクス
!
setname
0
x2
次世代 ジェネクス
...
@@ -856,7 +861,8 @@
...
@@ -856,7 +861,8 @@
!
setname
0
xbd
暗黑骑士 盖亚 暗黒騎士ガイア
!
setname
0
xbd
暗黑骑士 盖亚 暗黒騎士ガイア
!
setname
0
xbe
帝王 帝王
!
setname
0
xbe
帝王 帝王
!
setname
0
xbf
灵使 霊使い
!
setname
0
xbf
灵使 霊使い
!
setname
0
xc0
凭依装着 憑依装着
!
setname
0
xc0
凭依 憑依
!
setname
0
x10c0
凭依装着 憑依装着
!
setname
0
xc1
PSY
骨架
PSY
フレーム
!
setname
0
xc1
PSY
骨架
PSY
フレーム
!
setname
0
x10c1
PSY
骨架装备
PSY
フレームギア
!
setname
0
x10c1
PSY
骨架装备
PSY
フレームギア
!
setname
0
xc2
动力工具 パワー・ツール
!
setname
0
xc2
动力工具 パワー・ツール
...
@@ -1018,3 +1024,14 @@
...
@@ -1018,3 +1024,14 @@
!
setname
0
x14a
源数 ヌメロン
!
setname
0
x14a
源数 ヌメロン
!
setname
0
x114a
源数之门 ゲート・オブ・ヌメロン
!
setname
0
x114a
源数之门 ゲート・オブ・ヌメロン
!
setname
0
x14b
机块 機塊
!
setname
0
x14b
机块 機塊
#setname 0x14c 灵术 霊術
!
setname
0
x314c
地灵术 地霊術
!
setname
0
x514c
水灵术 水霊術
!
setname
0
x614c
火灵术 火霊術
!
setname
0
x914c
风灵术 風霊術
#setname 0xa14c 光灵术 光霊術
#setname 0xc14c 暗灵术 闇霊術
!
setname
0
x14d
铁兽 トライブリゲード
!
setname
0
x14e
电脑堺 電脳堺
!
setname
0
x114e
电脑堺门 電脳堺門
!
setname
0
x14f
双天
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