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
REIKAI
ygopro
Commits
87e96921
Commit
87e96921
authored
Mar 26, 2019
by
mercury233
Committed by
GitHub
Mar 26, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add window resize (#2123)
parent
1dd2fa99
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
864 additions
and
359 deletions
+864
-359
gframe/client_field.cpp
gframe/client_field.cpp
+3
-3
gframe/deck_con.cpp
gframe/deck_con.cpp
+10
-8
gframe/drawing.cpp
gframe/drawing.cpp
+191
-209
gframe/duelclient.cpp
gframe/duelclient.cpp
+8
-8
gframe/event_handler.cpp
gframe/event_handler.cpp
+80
-38
gframe/game.cpp
gframe/game.cpp
+406
-43
gframe/game.h
gframe/game.h
+57
-5
gframe/image_manager.cpp
gframe/image_manager.cpp
+96
-40
gframe/image_manager.h
gframe/image_manager.h
+6
-3
gframe/menu_handler.cpp
gframe/menu_handler.cpp
+1
-1
gframe/single_mode.cpp
gframe/single_mode.cpp
+1
-1
strings.conf
strings.conf
+5
-0
No files found.
gframe/client_field.cpp
View file @
87e96921
...
...
@@ -399,7 +399,7 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
else
if
(
conti_selecting
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
chain_code
));
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
[
selectable_cards
[
i
]
->
controler
]);
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
[
selectable_cards
[
i
]
->
controler
+
2
]);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
...
...
@@ -483,7 +483,7 @@ void ClientField::ShowChainCard() {
if
(
selectable_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardSelect
[
i
],
selectable_cards
[
i
]
->
code
));
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
[
selectable_cards
[
i
]
->
controler
]);
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
imageManager
.
tCover
[
selectable_cards
[
i
]
->
controler
+
2
]);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
...
...
@@ -538,7 +538,7 @@ void ClientField::ShowLocationCard() {
if
(
display_cards
[
i
]
->
code
)
mainGame
->
imageLoading
.
insert
(
std
::
make_pair
(
mainGame
->
btnCardDisplay
[
i
],
display_cards
[
i
]
->
code
));
else
mainGame
->
btnCardDisplay
[
i
]
->
setImage
(
imageManager
.
tCover
[
display_cards
[
i
]
->
controler
]);
mainGame
->
btnCardDisplay
[
i
]
->
setImage
(
imageManager
.
tCover
[
display_cards
[
i
]
->
controler
+
2
]);
mainGame
->
btnCardDisplay
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
startpos
+
i
*
125
,
55
,
startpos
+
120
+
i
*
125
,
225
));
mainGame
->
btnCardDisplay
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardDisplay
[
i
]
->
setVisible
(
true
);
...
...
gframe/deck_con.cpp
View file @
87e96921
...
...
@@ -104,6 +104,7 @@ void DeckBuilder::Terminate() {
mainGame
->
device
->
setEventReceiver
(
&
mainGame
->
menuHandler
);
mainGame
->
wACMessage
->
setVisible
(
false
);
mainGame
->
ClearTextures
();
mainGame
->
showingcode
=
0
;
mainGame
->
scrFilter
->
setVisible
(
false
);
int
sel
=
mainGame
->
cbDBDecks
->
getSelected
();
if
(
sel
>=
0
)
...
...
@@ -129,7 +130,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
switch
(
id
)
{
case
BUTTON_CLEAR_DECK
:
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
text
Font
,
dataManager
.
GetSysString
(
1339
));
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
gui
Font
,
dataManager
.
GetSysString
(
1339
));
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
...
...
@@ -185,7 +186,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame
->
gMutex
.
Lock
();
wchar_t
textBuffer
[
256
];
myswprintf
(
textBuffer
,
L"%ls
\n
%ls"
,
mainGame
->
cbDBDecks
->
getItem
(
sel
),
dataManager
.
GetSysString
(
1337
));
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
text
Font
,
textBuffer
);
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
gui
Font
,
textBuffer
);
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
...
...
@@ -195,7 +196,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
case
BUTTON_LEAVE_GAME
:
{
if
(
is_modified
&&
!
mainGame
->
chkIgnoreDeckChanges
->
isChecked
())
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
text
Font
,
dataManager
.
GetSysString
(
1356
));
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
gui
Font
,
dataManager
.
GetSysString
(
1356
));
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
...
...
@@ -362,7 +363,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
case
COMBOBOX_DBDECKS
:
{
if
(
is_modified
&&
!
mainGame
->
chkIgnoreDeckChanges
->
isChecked
())
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
text
Font
,
dataManager
.
GetSysString
(
1356
));
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
gui
Font
,
dataManager
.
GetSysString
(
1356
));
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
...
...
@@ -682,8 +683,9 @@ void DeckBuilder::GetHoveredCard() {
irr
::
gui
::
IGUIElement
*
root
=
mainGame
->
env
->
getRootGUIElement
();
if
(
root
->
getElementFromPoint
(
mouse_pos
)
!=
root
)
return
;
int
x
=
mouse_pos
.
X
;
int
y
=
mouse_pos
.
Y
;
position2di
pos
=
mainGame
->
ResizeReverse
(
mouse_pos
.
X
,
mouse_pos
.
Y
);
int
x
=
pos
.
X
;
int
y
=
pos
.
Y
;
is_lastcard
=
0
;
if
(
x
>=
314
&&
x
<=
794
)
{
if
(
y
>=
164
&&
y
<=
435
)
{
...
...
@@ -749,8 +751,8 @@ void DeckBuilder::GetHoveredCard() {
}
}
if
(
is_draging
)
{
dragx
=
x
;
dragy
=
y
;
dragx
=
mouse_pos
.
X
;
dragy
=
mouse_pos
.
Y
;
}
if
(
!
is_draging
&&
pre_code
!=
hovered_code
)
{
if
(
hovered_code
)
...
...
gframe/drawing.cpp
View file @
87e96921
This diff is collapsed.
Click to expand it.
gframe/duelclient.cpp
View file @
87e96921
...
...
@@ -940,7 +940,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
lstLog
->
addItem
(
textBuffer
);
mainGame
->
logParam
.
push_back
(
0
);
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
text
Font
,
textBuffer
);
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
gui
Font
,
textBuffer
);
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
WaitFrameSignal
(
40
);
...
...
@@ -958,7 +958,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
lstLog
->
addItem
(
textBuffer
);
mainGame
->
logParam
.
push_back
(
0
);
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
text
Font
,
textBuffer
);
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
gui
Font
,
textBuffer
);
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
WaitFrameSignal
(
40
);
...
...
@@ -969,7 +969,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
lstLog
->
addItem
(
textBuffer
);
mainGame
->
logParam
.
push_back
(
0
);
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
text
Font
,
textBuffer
);
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
gui
Font
,
textBuffer
);
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
WaitFrameSignal
(
40
);
...
...
@@ -980,7 +980,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
lstLog
->
addItem
(
textBuffer
);
mainGame
->
logParam
.
push_back
(
data
);
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
text
Font
,
textBuffer
);
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
gui
Font
,
textBuffer
);
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
WaitFrameSignal
(
40
);
...
...
@@ -991,7 +991,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
lstLog
->
addItem
(
textBuffer
);
mainGame
->
logParam
.
push_back
(
0
);
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
text
Font
,
textBuffer
);
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
gui
Font
,
textBuffer
);
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
WaitFrameSignal
(
40
);
...
...
@@ -1315,7 +1315,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
myswprintf
(
textBuffer
,
dataManager
.
GetDesc
(
desc
),
dataManager
.
GetName
(
code
));
}
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
text
Font
,
textBuffer
);
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
gui
Font
,
textBuffer
);
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
mainGame
->
gMutex
.
Unlock
();
return
false
;
...
...
@@ -1325,7 +1325,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int
desc
=
BufferIO
::
ReadInt32
(
pbuf
);
mainGame
->
dField
.
highlighting_card
=
0
;
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
text
Font
,
dataManager
.
GetDesc
(
desc
));
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
gui
Font
,
dataManager
.
GetDesc
(
desc
));
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
mainGame
->
gMutex
.
Unlock
();
return
false
;
...
...
@@ -1569,7 +1569,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
myswprintf
(
textBuffer
,
L"%ls
\n
%ls
\n
%ls"
,
event_string
,
dataManager
.
GetSysString
(
222
),
dataManager
.
GetSysString
(
223
));
else
myswprintf
(
textBuffer
,
L"%ls
\n
%ls"
,
event_string
,
dataManager
.
GetSysString
(
203
));
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
text
Font
,
textBuffer
);
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
gui
Font
,
textBuffer
);
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
}
}
...
...
gframe/event_handler.cpp
View file @
87e96921
This diff is collapsed.
Click to expand it.
gframe/game.cpp
View file @
87e96921
This diff is collapsed.
Click to expand it.
gframe/game.h
View file @
87e96921
...
...
@@ -51,6 +51,10 @@ struct Config {
double
sound_volume
;
double
music_volume
;
int
music_mode
;
bool
window_maximized
;
int
window_width
;
int
window_height
;
bool
resize_popup_menu
;
};
struct
DuelInfo
{
...
...
@@ -120,6 +124,7 @@ public:
void
CheckMutual
(
ClientCard
*
pcard
,
int
mark
);
void
DrawCards
();
void
DrawCard
(
ClientCard
*
pcard
);
void
DrawShadowText
(
irr
::
gui
::
CGUITTFont
*
font
,
const
core
::
stringw
&
text
,
const
core
::
rect
<
s32
>&
position
,
const
core
::
rect
<
s32
>&
padding
,
video
::
SColor
color
=
0xffffffff
,
video
::
SColor
shadowcolor
=
0xff000000
,
bool
hcenter
=
false
,
bool
vcenter
=
false
,
const
core
::
rect
<
s32
>*
clip
=
0
);
void
DrawMisc
();
void
DrawStatus
(
ClientCard
*
pcard
,
int
x1
,
int
y1
,
int
x2
,
int
y2
);
void
DrawGUI
();
...
...
@@ -129,11 +134,11 @@ public:
void
HideElement
(
irr
::
gui
::
IGUIElement
*
element
,
bool
set_action
=
false
);
void
PopupElement
(
irr
::
gui
::
IGUIElement
*
element
,
int
hideframe
=
0
);
void
WaitFrameSignal
(
int
frame
);
void
DrawThumb
(
code_pointer
cp
,
position2di
pos
,
std
::
unordered_map
<
int
,
int
>*
lflist
);
void
DrawThumb
(
code_pointer
cp
,
position2di
pos
,
std
::
unordered_map
<
int
,
int
>*
lflist
,
bool
drag
=
false
);
void
DrawDeckBd
();
void
LoadConfig
();
void
SaveConfig
();
void
ShowCardInfo
(
int
code
);
void
ShowCardInfo
(
int
code
,
bool
resize
=
false
);
void
ClearCardInfo
(
int
player
=
0
);
void
AddChatMsg
(
const
wchar_t
*
msg
,
int
player
);
void
ClearChatMsg
();
...
...
@@ -150,7 +155,22 @@ public:
return
focus
&&
focus
->
hasType
(
type
);
}
void
OnResize
();
recti
Resize
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
);
recti
Resize
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
,
s32
dx
,
s32
dy
,
s32
dx2
,
s32
dy2
);
position2di
Resize
(
s32
x
,
s32
y
);
position2di
ResizeReverse
(
s32
x
,
s32
y
);
recti
ResizePhaseHint
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
,
s32
width
);
recti
ResizeWin
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
);
recti
ResizeCardImgWin
(
s32
x
,
s32
y
,
s32
mx
,
s32
my
);
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
ResizeFit
(
s32
x
,
s32
y
,
s32
x2
,
s32
y2
);
void
SetWindowsIcon
();
void
SetWindowsScale
(
float
scale
);
void
FlashWindow
();
void
SetCursor
(
ECURSOR_ICON
icon
);
...
...
@@ -179,6 +199,7 @@ public:
int
waitFrame
;
int
signalFrame
;
int
actionParam
;
int
showingcode
;
const
wchar_t
*
showingtext
;
int
showcard
;
int
showcardcode
;
...
...
@@ -201,6 +222,10 @@ public:
bool
is_building
;
bool
is_siding
;
irr
::
core
::
dimension2d
<
irr
::
u32
>
window_size
;
float
xScale
;
float
yScale
;
ClientField
dField
;
DeckBuilder
deckBuilder
;
MenuHandler
menuHandler
;
...
...
@@ -239,6 +264,9 @@ public:
irr
::
gui
::
IGUIListBox
*
lstLog
;
irr
::
gui
::
IGUIButton
*
btnClearLog
;
irr
::
gui
::
IGUIButton
*
btnSaveLog
;
irr
::
gui
::
IGUIWindow
*
tabHelper
;
irr
::
gui
::
IGUIElement
*
elmTabHelperLast
;
irr
::
gui
::
IGUIScrollBar
*
scrTabHelper
;
irr
::
gui
::
IGUICheckBox
*
chkMAutoPos
;
irr
::
gui
::
IGUICheckBox
*
chkSTAutoPos
;
irr
::
gui
::
IGUICheckBox
*
chkRandomPos
;
...
...
@@ -246,6 +274,9 @@ public:
irr
::
gui
::
IGUICheckBox
*
chkWaitChain
;
irr
::
gui
::
IGUICheckBox
*
chkQuickAnimation
;
irr
::
gui
::
IGUICheckBox
*
chkAutoSaveReplay
;
irr
::
gui
::
IGUIWindow
*
tabSystem
;
irr
::
gui
::
IGUIElement
*
elmTabSystemLast
;
irr
::
gui
::
IGUIScrollBar
*
scrTabSystem
;
irr
::
gui
::
IGUICheckBox
*
chkIgnoreDeckChanges
;
irr
::
gui
::
IGUICheckBox
*
chkAutoSearch
;
irr
::
gui
::
IGUICheckBox
*
chkMultiKeywords
;
...
...
@@ -255,6 +286,10 @@ public:
irr
::
gui
::
IGUIScrollBar
*
scrSoundVolume
;
irr
::
gui
::
IGUIScrollBar
*
scrMusicVolume
;
irr
::
gui
::
IGUICheckBox
*
chkMusicMode
;
irr
::
gui
::
IGUIButton
*
btnWinResizeS
;
irr
::
gui
::
IGUIButton
*
btnWinResizeM
;
irr
::
gui
::
IGUIButton
*
btnWinResizeL
;
irr
::
gui
::
IGUIButton
*
btnWinResizeXL
;
//main menu
irr
::
gui
::
IGUIWindow
*
wMainMenu
;
irr
::
gui
::
IGUIButton
*
btnLanMode
;
...
...
@@ -426,6 +461,17 @@ public:
irr
::
gui
::
IGUIButton
*
btnSideSort
;
irr
::
gui
::
IGUIButton
*
btnSideReload
;
irr
::
gui
::
IGUIEditBox
*
ebDeckname
;
irr
::
gui
::
IGUIStaticText
*
stBanlist
;
irr
::
gui
::
IGUIStaticText
*
stDeck
;
irr
::
gui
::
IGUIStaticText
*
stCategory
;
irr
::
gui
::
IGUIStaticText
*
stLimit
;
irr
::
gui
::
IGUIStaticText
*
stAttribute
;
irr
::
gui
::
IGUIStaticText
*
stRace
;
irr
::
gui
::
IGUIStaticText
*
stAttack
;
irr
::
gui
::
IGUIStaticText
*
stDefense
;
irr
::
gui
::
IGUIStaticText
*
stStar
;
irr
::
gui
::
IGUIStaticText
*
stSearch
;
irr
::
gui
::
IGUIStaticText
*
stScale
;
//filter
irr
::
gui
::
IGUIStaticText
*
wFilter
;
irr
::
gui
::
IGUIScrollBar
*
scrFilter
;
...
...
@@ -623,9 +669,11 @@ extern Game* mainGame;
#define BUTTON_BOT_START 340
#define LISTBOX_BOT_LIST 341
#define CHECKBOX_BOT_OLD_RULE 342
#define LISTBOX_SINGLEPLAY_LIST 350
#define BUTTON_LOAD_SINGLEPLAY 351
#define BUTTON_CANCEL_SINGLEPLAY 352
#define LISTBOX_SINGLEPLAY_LIST 343
#define BUTTON_LOAD_SINGLEPLAY 344
#define BUTTON_CANCEL_SINGLEPLAY 345
#define SCROLL_TAB_HELPER 350
#define SCROLL_TAB_SYSTEM 351
#define CHECKBOX_AUTO_SEARCH 360
#define CHECKBOX_MULTI_KEYWORDS 372
#define CHECKBOX_PREFER_EXPANSION 373
...
...
@@ -633,6 +681,10 @@ extern Game* mainGame;
#define CHECKBOX_ENABLE_MUSIC 362
#define SCROLL_VOLUME 363
#define CHECKBOX_DISABLE_CHAT 364
#define BUTTON_WINDOW_RESIZE_S 365
#define BUTTON_WINDOW_RESIZE_M 366
#define BUTTON_WINDOW_RESIZE_L 367
#define BUTTON_WINDOW_RESIZE_XL 368
#define CHECKBOX_QUICK_ANIMATION 369
#define COMBOBOX_SORTTYPE 370
...
...
gframe/image_manager.cpp
View file @
87e96921
...
...
@@ -6,11 +6,15 @@ namespace ygo {
ImageManager
imageManager
;
bool
ImageManager
::
Initial
()
{
tCover
[
0
]
=
driver
->
getTexture
(
"textures/cover.jpg"
);
tCover
[
1
]
=
driver
->
getTexture
(
"textures/cover2.jpg"
);
if
(
!
tCover
[
1
])
tCover
[
1
]
=
tCover
[
0
];
tUnknown
=
driver
->
getTexture
(
"textures/unknown.jpg"
);
tCover
[
0
]
=
NULL
;
tCover
[
1
]
=
NULL
;
tCover
[
2
]
=
GetTextureFromFile
(
"textures/cover.jpg"
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
);
tCover
[
3
]
=
GetTextureFromFile
(
"textures/cover2.jpg"
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
);
if
(
!
tCover
[
3
])
tCover
[
3
]
=
tCover
[
2
];
tUnknown
=
NULL
;
tUnknownFit
=
NULL
;
tUnknownThumb
=
NULL
;
tAct
=
driver
->
getTexture
(
"textures/act.png"
);
tAttack
=
driver
->
getTexture
(
"textures/attack.png"
);
tChain
=
driver
->
getTexture
(
"textures/chain.png"
);
...
...
@@ -27,17 +31,14 @@ bool ImageManager::Initial() {
tHand
[
0
]
=
driver
->
getTexture
(
"textures/f1.jpg"
);
tHand
[
1
]
=
driver
->
getTexture
(
"textures/f2.jpg"
);
tHand
[
2
]
=
driver
->
getTexture
(
"textures/f3.jpg"
);
tBackGround
=
driver
->
getTexture
(
"textures/bg.jpg"
);
tBackGround_menu
=
driver
->
getTexture
(
"textures/bg_menu.jpg"
);
if
(
!
tBackGround_menu
)
tBackGround_menu
=
tBackGround
;
tBackGround_deck
=
driver
->
getTexture
(
"textures/bg_deck.jpg"
);
if
(
!
tBackGround_deck
)
tBackGround_deck
=
tBackGround
;
tBackGround
=
NULL
;
tBackGround_menu
=
NULL
;
tBackGround_deck
=
NULL
;
tField
[
0
]
=
driver
->
getTexture
(
"textures/field2.png"
);
tFieldTransparent
[
0
]
=
driver
->
getTexture
(
"textures/field-transparent2.png"
);
tField
[
1
]
=
driver
->
getTexture
(
"textures/field3.png"
);
tFieldTransparent
[
1
]
=
driver
->
getTexture
(
"textures/field-transparent3.png"
);
ResizeTexture
();
return
true
;
}
void
ImageManager
::
SetDevice
(
irr
::
IrrlichtDevice
*
dev
)
{
...
...
@@ -45,7 +46,11 @@ void ImageManager::SetDevice(irr::IrrlichtDevice* dev) {
driver
=
dev
->
getVideoDriver
();
}
void
ImageManager
::
ClearTexture
()
{
for
(
auto
tit
=
tMap
.
begin
();
tit
!=
tMap
.
end
();
++
tit
)
{
for
(
auto
tit
=
tMap
[
0
].
begin
();
tit
!=
tMap
[
0
].
end
();
++
tit
)
{
if
(
tit
->
second
)
driver
->
removeTexture
(
tit
->
second
);
}
for
(
auto
tit
=
tMap
[
1
].
begin
();
tit
!=
tMap
[
1
].
end
();
++
tit
)
{
if
(
tit
->
second
)
driver
->
removeTexture
(
tit
->
second
);
}
...
...
@@ -53,20 +58,60 @@ void ImageManager::ClearTexture() {
if
(
tit
->
second
)
driver
->
removeTexture
(
tit
->
second
);
}
tMap
.
clear
();
tMap
[
0
].
clear
();
tMap
[
1
].
clear
();
tThumb
.
clear
();
tFields
.
clear
();
}
void
ImageManager
::
RemoveTexture
(
int
code
)
{
auto
tit
=
tMap
.
find
(
code
);
if
(
tit
!=
tMap
.
end
())
{
auto
tit
=
tMap
[
0
].
find
(
code
);
if
(
tit
!=
tMap
[
0
].
end
())
{
if
(
tit
->
second
)
driver
->
removeTexture
(
tit
->
second
);
tMap
[
0
].
erase
(
tit
);
}
tit
=
tMap
[
1
].
find
(
code
);
if
(
tit
!=
tMap
[
1
].
end
())
{
if
(
tit
->
second
)
driver
->
removeTexture
(
tit
->
second
);
tMap
.
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
imgWidthThumb
=
CARD_THUMB_WIDTH
*
mainGame
->
xScale
;
irr
::
s32
imgHeightThumb
=
CARD_THUMB_HEIGHT
*
mainGame
->
yScale
;
float
mul
=
(
mainGame
->
xScale
>
mainGame
->
yScale
)
?
mainGame
->
yScale
:
mainGame
->
xScale
;
irr
::
s32
imgWidthFit
=
CARD_IMG_WIDTH
*
mul
;
irr
::
s32
imgHeightFit
=
CARD_IMG_HEIGHT
*
mul
;
irr
::
s32
bgWidth
=
1024
*
mainGame
->
xScale
;
irr
::
s32
bgHeight
=
640
*
mainGame
->
yScale
;
driver
->
removeTexture
(
tCover
[
0
]);
driver
->
removeTexture
(
tCover
[
1
]);
tCover
[
0
]
=
GetTextureFromFile
(
"textures/cover.jpg"
,
imgWidth
,
imgHeight
);
tCover
[
1
]
=
GetTextureFromFile
(
"textures/cover2.jpg"
,
imgWidth
,
imgHeight
);
if
(
!
tCover
[
1
])
tCover
[
1
]
=
tCover
[
0
];
driver
->
removeTexture
(
tUnknown
);
driver
->
removeTexture
(
tUnknownFit
);
driver
->
removeTexture
(
tUnknownThumb
);
tUnknown
=
GetTextureFromFile
(
"textures/unknown.jpg"
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
);
tUnknownFit
=
GetTextureFromFile
(
"textures/unknown.jpg"
,
imgWidthFit
,
imgHeightFit
);
tUnknownThumb
=
GetTextureFromFile
(
"textures/unknown.jpg"
,
imgWidthThumb
,
imgHeightThumb
);
driver
->
removeTexture
(
tBackGround
);
tBackGround
=
GetTextureFromFile
(
"textures/bg.jpg"
,
bgWidth
,
bgHeight
);
driver
->
removeTexture
(
tBackGround_menu
);
tBackGround_menu
=
GetTextureFromFile
(
"textures/bg_menu.jpg"
,
bgWidth
,
bgHeight
);
if
(
!
tBackGround_menu
)
tBackGround_menu
=
tBackGround
;
driver
->
removeTexture
(
tBackGround_deck
);
tBackGround_deck
=
GetTextureFromFile
(
"textures/bg_deck.jpg"
,
bgWidth
,
bgHeight
);
if
(
!
tBackGround_deck
)
tBackGround_deck
=
tBackGround
;
}
// 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
;
u32
dy
,
dx
;
irr
::
video
::
SColor
pxl
;
...
...
@@ -158,57 +203,68 @@ irr::video::ITexture* ImageManager::GetTextureFromFile(char* file, s32 width, s3
return
driver
->
getTexture
(
file
);
}
}
irr
::
video
::
ITexture
*
ImageManager
::
GetTexture
(
int
code
)
{
irr
::
video
::
ITexture
*
ImageManager
::
GetTexture
(
int
code
,
bool
fit
)
{
if
(
code
==
0
)
return
tUnknown
;
auto
tit
=
tMap
.
find
(
code
);
if
(
tit
==
tMap
.
end
())
{
return
fit
?
tUnknownFit
:
tUnknown
;
int
width
=
CARD_IMG_WIDTH
;
int
height
=
CARD_IMG_HEIGHT
;
if
(
fit
)
{
float
mul
=
mainGame
->
xScale
;
if
(
mainGame
->
xScale
>
mainGame
->
yScale
)
mul
=
mainGame
->
yScale
;
width
=
width
*
mul
;
height
=
height
*
mul
;
}
auto
tit
=
tMap
[
fit
?
1
:
0
].
find
(
code
);
if
(
tit
==
tMap
[
fit
?
1
:
0
].
end
())
{
char
file
[
256
];
sprintf
(
file
,
"expansions/pics/%d.jpg"
,
code
);
irr
::
video
::
ITexture
*
img
=
GetTextureFromFile
(
file
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
);
irr
::
video
::
ITexture
*
img
=
GetTextureFromFile
(
file
,
width
,
height
);
if
(
img
==
NULL
)
{
sprintf
(
file
,
"pics/%d.jpg"
,
code
);
img
=
GetTextureFromFile
(
file
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
);
img
=
GetTextureFromFile
(
file
,
width
,
height
);
}
if
(
img
==
NULL
&&
!
mainGame
->
gameConf
.
use_image_scale
)
{
tMap
[
code
]
=
NULL
;
tMap
[
fit
?
1
:
0
][
code
]
=
NULL
;
return
GetTextureThumb
(
code
);
}
tMap
[
code
]
=
img
;
return
(
img
==
NULL
)
?
tUnknown
:
img
;
tMap
[
fit
?
1
:
0
][
code
]
=
img
;
return
(
img
==
NULL
)
?
(
fit
?
tUnknownFit
:
tUnknown
)
:
img
;
}
if
(
tit
->
second
)
return
tit
->
second
;
else
return
mainGame
->
gameConf
.
use_image_scale
?
tUnknown
:
GetTextureThumb
(
code
);
return
mainGame
->
gameConf
.
use_image_scale
?
(
fit
?
tUnknownFit
:
tUnknown
)
:
GetTextureThumb
(
code
);
}
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureThumb
(
int
code
)
{
if
(
code
==
0
)
return
tUnknown
;
return
tUnknown
Thumb
;
auto
tit
=
tThumb
.
find
(
code
);
int
width
=
CARD_THUMB_WIDTH
*
mainGame
->
xScale
;
int
height
=
CARD_THUMB_HEIGHT
*
mainGame
->
yScale
;
if
(
tit
==
tThumb
.
end
())
{
char
file
[
256
];
sprintf
(
file
,
"expansions/pics/thumbnail/%d.jpg"
,
code
);
irr
::
video
::
ITexture
*
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
irr
::
video
::
ITexture
*
img
=
GetTextureFromFile
(
file
,
width
,
height
);
if
(
img
==
NULL
)
{
sprintf
(
file
,
"pics/thumbnail/%d.jpg"
,
code
);
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
img
=
GetTextureFromFile
(
file
,
width
,
height
);
}
if
(
img
==
NULL
&&
mainGame
->
gameConf
.
use_image_scale
)
{
sprintf
(
file
,
"expansions/pics/%d.jpg"
,
code
);
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
img
=
GetTextureFromFile
(
file
,
width
,
height
);
if
(
img
==
NULL
)
{
sprintf
(
file
,
"pics/%d.jpg"
,
code
);
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
img
=
GetTextureFromFile
(
file
,
width
,
height
);
}
}
tThumb
[
code
]
=
img
;
return
(
img
==
NULL
)
?
tUnknown
:
img
;
return
(
img
==
NULL
)
?
tUnknown
Thumb
:
img
;
}
if
(
tit
->
second
)
return
tit
->
second
;
else
return
tUnknown
;
return
tUnknown
Thumb
;
}
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureField
(
int
code
)
{
if
(
code
==
0
)
...
...
@@ -217,18 +273,18 @@ irr::video::ITexture* ImageManager::GetTextureField(int code) {
if
(
tit
==
tFields
.
end
())
{
char
file
[
256
];
sprintf
(
file
,
"expansions/pics/field/%d.png"
,
code
);
irr
::
video
::
ITexture
*
img
=
GetTextureFromFile
(
file
,
512
,
512
);
irr
::
video
::
ITexture
*
img
=
GetTextureFromFile
(
file
,
512
*
mainGame
->
xScale
,
512
*
mainGame
->
yScale
);
if
(
img
==
NULL
)
{
sprintf
(
file
,
"expansions/pics/field/%d.jpg"
,
code
);
img
=
GetTextureFromFile
(
file
,
512
,
512
);
img
=
GetTextureFromFile
(
file
,
512
*
mainGame
->
xScale
,
512
*
mainGame
->
yScale
);
}
if
(
img
==
NULL
)
{
sprintf
(
file
,
"pics/field/%d.png"
,
code
);
img
=
GetTextureFromFile
(
file
,
512
,
512
);
img
=
GetTextureFromFile
(
file
,
512
*
mainGame
->
xScale
,
512
*
mainGame
->
yScale
);
}
if
(
img
==
NULL
)
{
sprintf
(
file
,
"pics/field/%d.jpg"
,
code
);
img
=
GetTextureFromFile
(
file
,
512
,
512
);
img
=
GetTextureFromFile
(
file
,
512
*
mainGame
->
xScale
,
512
*
mainGame
->
yScale
);
if
(
img
==
NULL
)
{
tFields
[
code
]
=
NULL
;
return
NULL
;
...
...
gframe/image_manager.h
View file @
87e96921
...
...
@@ -13,18 +13,21 @@ public:
void
SetDevice
(
irr
::
IrrlichtDevice
*
dev
);
void
ClearTexture
();
void
RemoveTexture
(
int
code
);
void
ResizeTexture
();
irr
::
video
::
ITexture
*
GetTextureFromFile
(
char
*
file
,
s32
width
,
s32
height
);
irr
::
video
::
ITexture
*
GetTexture
(
int
code
);
irr
::
video
::
ITexture
*
GetTexture
(
int
code
,
bool
fit
=
false
);
irr
::
video
::
ITexture
*
GetTextureThumb
(
int
code
);
irr
::
video
::
ITexture
*
GetTextureField
(
int
code
);
std
::
unordered_map
<
int
,
irr
::
video
::
ITexture
*>
tMap
;
std
::
unordered_map
<
int
,
irr
::
video
::
ITexture
*>
tMap
[
2
]
;
std
::
unordered_map
<
int
,
irr
::
video
::
ITexture
*>
tThumb
;
std
::
unordered_map
<
int
,
irr
::
video
::
ITexture
*>
tFields
;
irr
::
IrrlichtDevice
*
device
;
irr
::
video
::
IVideoDriver
*
driver
;
irr
::
video
::
ITexture
*
tCover
[
2
];
irr
::
video
::
ITexture
*
tCover
[
4
];
irr
::
video
::
ITexture
*
tUnknown
;
irr
::
video
::
ITexture
*
tUnknownFit
;
irr
::
video
::
ITexture
*
tUnknownThumb
;
irr
::
video
::
ITexture
*
tAct
;
irr
::
video
::
ITexture
*
tAttack
;
irr
::
video
::
ITexture
*
tNegated
;
...
...
gframe/menu_handler.cpp
View file @
87e96921
...
...
@@ -248,7 +248,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame
->
gMutex
.
Lock
();
wchar_t
textBuffer
[
256
];
myswprintf
(
textBuffer
,
L"%ls
\n
%ls"
,
mainGame
->
lstReplayList
->
getListItem
(
sel
),
dataManager
.
GetSysString
(
1363
));
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
text
Font
,
textBuffer
);
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
gui
Font
,
textBuffer
);
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
...
...
gframe/single_mode.cpp
View file @
87e96921
...
...
@@ -767,7 +767,7 @@ bool SingleMode::SinglePlayAnalyze(char* msg, unsigned int len) {
memcpy
(
msgbuf
,
begin
,
len
+
1
);
BufferIO
::
DecodeUTF8
(
msgbuf
,
msg
);
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stMessage
,
310
,
mainGame
->
text
Font
,
msg
);
mainGame
->
SetStaticText
(
mainGame
->
stMessage
,
310
,
mainGame
->
gui
Font
,
msg
);
mainGame
->
PopupElement
(
mainGame
->
wMessage
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
actionSignal
.
Reset
();
...
...
strings.conf
View file @
87e96921
...
...
@@ -322,6 +322,11 @@
!
system
1279
开启音效
!
system
1280
开启音乐
!
system
1281
按场景切换音乐
!
system
1282
窗口大小
!
system
1283
小
!
system
1284
中
!
system
1285
大
!
system
1286
特大
!
system
1290
禁用聊天功能
!
system
1291
忽略观战者发言
!
system
1292
忽略时点
...
...
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