Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile
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
Commits
34e9abd9
Commit
34e9abd9
authored
May 02, 2021
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update gframe
parent
8a717caf
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
299 additions
and
236 deletions
+299
-236
Classes/gframe/client_field.cpp
Classes/gframe/client_field.cpp
+41
-22
Classes/gframe/client_field.h
Classes/gframe/client_field.h
+4
-0
Classes/gframe/deck_con.cpp
Classes/gframe/deck_con.cpp
+126
-116
Classes/gframe/deck_con.h
Classes/gframe/deck_con.h
+5
-0
Classes/gframe/event_handler.cpp
Classes/gframe/event_handler.cpp
+52
-27
Classes/gframe/menu_handler.cpp
Classes/gframe/menu_handler.cpp
+28
-27
Classes/gframe/myfilesystem.h
Classes/gframe/myfilesystem.h
+43
-44
No files found.
Classes/gframe/client_field.cpp
View file @
34e9abd9
...
@@ -27,6 +27,7 @@ ClientField::ClientField() {
...
@@ -27,6 +27,7 @@ ClientField::ClientField() {
hovered_card
=
0
;
hovered_card
=
0
;
clicked_card
=
0
;
clicked_card
=
0
;
highlighting_card
=
0
;
highlighting_card
=
0
;
menu_card
=
0
;
hovered_controler
=
0
;
hovered_controler
=
0
;
hovered_location
=
0
;
hovered_location
=
0
;
hovered_sequence
=
0
;
hovered_sequence
=
0
;
...
@@ -41,6 +42,7 @@ ClientField::ClientField() {
...
@@ -41,6 +42,7 @@ ClientField::ClientField() {
conti_act
=
false
;
conti_act
=
false
;
deck_reversed
=
false
;
deck_reversed
=
false
;
conti_selecting
=
false
;
conti_selecting
=
false
;
cant_check_grave
=
false
;
for
(
int
p
=
0
;
p
<
2
;
++
p
)
{
for
(
int
p
=
0
;
p
<
2
;
++
p
)
{
mzone
[
p
].
resize
(
7
,
0
);
mzone
[
p
].
resize
(
7
,
0
);
szone
[
p
].
resize
(
8
,
0
);
szone
[
p
].
resize
(
8
,
0
);
...
@@ -94,6 +96,7 @@ void ClientField::Clear() {
...
@@ -94,6 +96,7 @@ void ClientField::Clear() {
hovered_card
=
0
;
hovered_card
=
0
;
clicked_card
=
0
;
clicked_card
=
0
;
highlighting_card
=
0
;
highlighting_card
=
0
;
menu_card
=
0
;
hovered_controler
=
0
;
hovered_controler
=
0
;
hovered_location
=
0
;
hovered_location
=
0
;
hovered_sequence
=
0
;
hovered_sequence
=
0
;
...
@@ -105,7 +108,7 @@ void ClientField::Clear() {
...
@@ -105,7 +108,7 @@ void ClientField::Clear() {
pzone_act
[
1
]
=
false
;
pzone_act
[
1
]
=
false
;
conti_act
=
false
;
conti_act
=
false
;
deck_reversed
=
false
;
deck_reversed
=
false
;
RefreshCardCountDisplay
()
;
cant_check_grave
=
false
;
}
}
void
ClientField
::
Initial
(
int
player
,
int
deckc
,
int
extrac
)
{
void
ClientField
::
Initial
(
int
player
,
int
deckc
,
int
extrac
)
{
ClientCard
*
pcard
;
ClientCard
*
pcard
;
...
@@ -402,6 +405,18 @@ void ClientField::ClearChainSelect() {
...
@@ -402,6 +405,18 @@ void ClientField::ClearChainSelect() {
}
}
// needs to be synchronized with EGET_SCROLL_BAR_CHANGED
// needs to be synchronized with EGET_SCROLL_BAR_CHANGED
void
ClientField
::
ShowSelectCard
(
bool
buttonok
,
bool
chain
)
{
void
ClientField
::
ShowSelectCard
(
bool
buttonok
,
bool
chain
)
{
if
(
cant_check_grave
)
{
bool
has_card_in_grave
=
false
;
for
(
size_t
i
=
0
;
i
<
selectable_cards
.
size
();
++
i
)
{
if
(
selectable_cards
[
i
]
->
location
==
LOCATION_GRAVE
)
{
has_card_in_grave
=
true
;
break
;
}
}
if
(
has_card_in_grave
)
{
std
::
random_shuffle
(
selectable_cards
.
begin
(),
selectable_cards
.
end
());
}
}
int
startpos
;
int
startpos
;
size_t
ct
;
size_t
ct
;
if
(
selectable_cards
.
size
()
<=
5
)
{
if
(
selectable_cards
.
size
()
<=
5
)
{
...
@@ -428,6 +443,8 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
...
@@ -428,6 +443,8 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
wchar_t
formatBuffer
[
2048
];
wchar_t
formatBuffer
[
2048
];
if
(
conti_selecting
)
if
(
conti_selecting
)
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
else
if
(
cant_check_grave
&&
selectable_cards
[
i
]
->
location
==
LOCATION_GRAVE
)
myswprintf
(
formatBuffer
,
L"%ls"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
0
));
else
if
(
selectable_cards
[
i
]
->
location
==
LOCATION_OVERLAY
)
else
if
(
selectable_cards
[
i
]
->
location
==
LOCATION_OVERLAY
)
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
overlayTarget
->
location
,
selectable_cards
[
i
]
->
overlayTarget
->
sequence
),
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
overlayTarget
->
location
,
selectable_cards
[
i
]
->
overlayTarget
->
sequence
),
...
@@ -447,7 +464,8 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
...
@@ -447,7 +464,8 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
mainGame
->
stCardPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
mainGame
->
stCardPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
if
(
selectable_cards
[
i
]
->
overlayTarget
->
controler
)
if
(
selectable_cards
[
i
]
->
overlayTarget
->
controler
)
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff5a5a5a
);
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff5a5a5a
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff56649f
);
else
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff56649f
);
}
else
if
(
selectable_cards
[
i
]
->
location
==
LOCATION_DECK
||
selectable_cards
[
i
]
->
location
==
LOCATION_EXTRA
||
selectable_cards
[
i
]
->
location
==
LOCATION_REMOVED
)
{
}
else
if
(
selectable_cards
[
i
]
->
location
==
LOCATION_DECK
||
selectable_cards
[
i
]
->
location
==
LOCATION_EXTRA
||
selectable_cards
[
i
]
->
location
==
LOCATION_REMOVED
)
{
if
(
selectable_cards
[
i
]
->
position
&
POS_FACEDOWN
)
if
(
selectable_cards
[
i
]
->
position
&
POS_FACEDOWN
)
mainGame
->
stCardPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
mainGame
->
stCardPos
[
i
]
->
setOverrideColor
(
0xff0000ff
);
...
@@ -467,7 +485,8 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
...
@@ -467,7 +485,8 @@ void ClientField::ShowSelectCard(bool buttonok, bool chain) {
wchar_t
formatBuffer
[
2048
];
wchar_t
formatBuffer
[
2048
];
myswprintf
(
formatBuffer
,
L"%d"
,
sort_list
[
i
]);
myswprintf
(
formatBuffer
,
L"%d"
,
sort_list
[
i
]);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
}
else
mainGame
->
stCardPos
[
i
]
->
setText
(
L""
);
}
else
mainGame
->
stCardPos
[
i
]
->
setText
(
L""
);
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff56649f
);
mainGame
->
stCardPos
[
i
]
->
setBackgroundColor
(
0xff56649f
);
}
}
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);
...
@@ -648,12 +667,12 @@ void ClientField::ShowSelectOption(int select_hint) {
...
@@ -648,12 +667,12 @@ void ClientField::ShowSelectOption(int select_hint) {
mainGame
->
wOptions
->
setRelativePosition
(
pos
);
mainGame
->
wOptions
->
setRelativePosition
(
pos
);
mainGame
->
bgOptions
->
setRelativePosition
(
rect
<
s32
>
(
0
,
0
,
(
scrollbar
?
405
:
390
)
*
mainGame
->
xScale
,
pos
.
LowerRightCorner
.
Y
-
pos
.
UpperLeftCorner
.
Y
));
mainGame
->
bgOptions
->
setRelativePosition
(
rect
<
s32
>
(
0
,
0
,
(
scrollbar
?
405
:
390
)
*
mainGame
->
xScale
,
pos
.
LowerRightCorner
.
Y
-
pos
.
UpperLeftCorner
.
Y
));
}
else
{
}
else
{
mainGame
->
SetStaticText
(
mainGame
->
stOptions
,
350
*
mainGame
->
xScale
,
mainGame
->
guiFont
,(
wchar_t
*
)
dataManager
.
GetDesc
(
select_options
[
0
]));
mainGame
->
SetStaticText
(
mainGame
->
stOptions
,
350
*
mainGame
->
xScale
,
mainGame
->
guiFont
,
(
wchar_t
*
)
dataManager
.
GetDesc
(
select_options
[
0
]));
mainGame
->
stOptions
->
setVisible
(
true
);
mainGame
->
stOptions
->
setVisible
(
true
);
mainGame
->
btnOptionp
->
setVisible
(
false
);
mainGame
->
btnOptionp
->
setVisible
(
false
);
mainGame
->
btnOptionn
->
setVisible
(
count
>
1
);
mainGame
->
btnOptionn
->
setVisible
(
count
>
1
);
mainGame
->
btnOptionOK
->
setVisible
(
true
);
mainGame
->
btnOptionOK
->
setVisible
(
true
);
mainGame
->
scrOption
->
setVisible
(
false
);
for
(
int
i
=
0
;
i
<
5
;
i
++
)
for
(
int
i
=
0
;
i
<
5
;
i
++
)
mainGame
->
btnOption
[
i
]
->
setVisible
(
false
);
mainGame
->
btnOption
[
i
]
->
setVisible
(
false
);
recti
pos
=
mainGame
->
wOptions
->
getRelativePosition
();
recti
pos
=
mainGame
->
wOptions
->
getRelativePosition
();
...
...
Classes/gframe/client_field.h
View file @
34e9abd9
...
@@ -46,6 +46,7 @@ public:
...
@@ -46,6 +46,7 @@ public:
std
::
vector
<
ClientCard
*>
conti_cards
;
std
::
vector
<
ClientCard
*>
conti_cards
;
std
::
vector
<
std
::
pair
<
int
,
int
>>
activatable_descs
;
std
::
vector
<
std
::
pair
<
int
,
int
>>
activatable_descs
;
std
::
vector
<
int
>
select_options
;
std
::
vector
<
int
>
select_options
;
std
::
vector
<
int
>
select_options_index
;
std
::
vector
<
ChainInfo
>
chains
;
std
::
vector
<
ChainInfo
>
chains
;
int
extra_p_count
[
2
];
int
extra_p_count
[
2
];
...
@@ -85,6 +86,7 @@ public:
...
@@ -85,6 +86,7 @@ public:
bool
last_chain
;
bool
last_chain
;
bool
deck_reversed
;
bool
deck_reversed
;
bool
conti_selecting
;
bool
conti_selecting
;
bool
cant_check_grave
;
ClientField
();
ClientField
();
void
Clear
();
void
Clear
();
...
@@ -145,6 +147,7 @@ public:
...
@@ -145,6 +147,7 @@ public:
ClientCard
*
clicked_card
;
ClientCard
*
clicked_card
;
ClientCard
*
command_card
;
ClientCard
*
command_card
;
ClientCard
*
highlighting_card
;
ClientCard
*
highlighting_card
;
ClientCard
*
menu_card
;
int
list_command
;
int
list_command
;
virtual
bool
OnEvent
(
const
irr
::
SEvent
&
event
);
virtual
bool
OnEvent
(
const
irr
::
SEvent
&
event
);
...
@@ -165,5 +168,6 @@ public:
...
@@ -165,5 +168,6 @@ public:
//special cards
//special cards
#define CARD_MARINE_DOLPHIN 78734254
#define CARD_MARINE_DOLPHIN 78734254
#define CARD_TWINKLE_MOSS 13857930
#define CARD_TWINKLE_MOSS 13857930
#define CARD_QUESTION 38723936
#endif //CLIENT_FIELD_H
#endif //CLIENT_FIELD_H
Classes/gframe/deck_con.cpp
View file @
34e9abd9
...
@@ -59,69 +59,10 @@ static bool check_set_code(const CardDataC& data, int set_code) {
...
@@ -59,69 +59,10 @@ static bool check_set_code(const CardDataC& data, int set_code) {
return
res
;
return
res
;
}
}
inline
bool
havePopupWindow
()
{
static
inline
bool
havePopupWindow
()
{
return
mainGame
->
wQuery
->
isVisible
()
||
mainGame
->
wCategories
->
isVisible
()
||
mainGame
->
wLinkMarks
->
isVisible
()
||
mainGame
->
wDeckManage
->
isVisible
()
||
mainGame
->
wDMQuery
->
isVisible
();
return
mainGame
->
wQuery
->
isVisible
()
||
mainGame
->
wCategories
->
isVisible
()
||
mainGame
->
wLinkMarks
->
isVisible
()
||
mainGame
->
wDeckManage
->
isVisible
()
||
mainGame
->
wDMQuery
->
isVisible
();
}
}
inline
void
refreshDeckList
()
{
irr
::
gui
::
IGUIListBox
*
lstCategories
=
mainGame
->
lstCategories
;
irr
::
gui
::
IGUIListBox
*
lstDecks
=
mainGame
->
lstDecks
;
wchar_t
catepath
[
256
];
deckManager
.
GetCategoryPath
(
catepath
,
lstCategories
->
getSelected
(),
lstCategories
->
getListItem
(
lstCategories
->
getSelected
()));
lstDecks
->
clear
();
FileSystem
::
TraversalDir
(
catepath
,
[
lstDecks
](
const
wchar_t
*
name
,
bool
isdir
)
{
if
(
!
isdir
&&
wcsrchr
(
name
,
'.'
)
&&
!
wcsncasecmp
(
wcsrchr
(
name
,
'.'
),
L".ydk"
,
4
))
{
size_t
len
=
wcslen
(
name
);
wchar_t
deckname
[
256
];
wcsncpy
(
deckname
,
name
,
len
-
4
);
deckname
[
len
-
4
]
=
0
;
lstDecks
->
addItem
(
deckname
);
}
});
}
inline
void
refreshReadonly
(
int
catesel
)
{
bool
hasDeck
=
mainGame
->
lstDecks
->
getItemCount
()
!=
0
;
mainGame
->
deckBuilder
.
readonly
=
catesel
<
2
;
mainGame
->
btnSaveDeck
->
setEnabled
(
!
mainGame
->
deckBuilder
.
readonly
);
mainGame
->
btnDeleteDeck
->
setEnabled
(
hasDeck
&&
!
mainGame
->
deckBuilder
.
readonly
);
mainGame
->
btnRenameCategory
->
setEnabled
(
catesel
>
3
);
mainGame
->
btnDeleteCategory
->
setEnabled
(
catesel
>
3
);
mainGame
->
btnNewDeck
->
setEnabled
(
!
mainGame
->
deckBuilder
.
readonly
);
mainGame
->
btnRenameDeck
->
setEnabled
(
hasDeck
&&
!
mainGame
->
deckBuilder
.
readonly
);
mainGame
->
btnDMDeleteDeck
->
setEnabled
(
hasDeck
&&
!
mainGame
->
deckBuilder
.
readonly
);
mainGame
->
btnMoveDeck
->
setEnabled
(
hasDeck
&&
!
mainGame
->
deckBuilder
.
readonly
);
mainGame
->
btnCopyDeck
->
setEnabled
(
hasDeck
);
}
inline
void
changeCategory
(
int
catesel
)
{
refreshReadonly
(
catesel
);
mainGame
->
RefreshDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
mainGame
->
cbDBDecks
->
setSelected
(
0
);
deckManager
.
LoadDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
mainGame
->
deckBuilder
.
is_modified
=
false
;
mainGame
->
deckBuilder
.
prev_category
=
catesel
;
mainGame
->
deckBuilder
.
prev_deck
=
0
;
}
inline
void
showDeckManage
()
{
mainGame
->
RefreshCategoryDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
,
false
);
mainGame
->
cbDBCategory
->
setSelected
(
mainGame
->
deckBuilder
.
prev_category
);
mainGame
->
RefreshDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
mainGame
->
cbDBDecks
->
setSelected
(
mainGame
->
deckBuilder
.
prev_deck
);
irr
::
gui
::
IGUIListBox
*
lstCategories
=
mainGame
->
lstCategories
;
lstCategories
->
clear
();
lstCategories
->
addItem
(
dataManager
.
GetSysString
(
1450
));
lstCategories
->
addItem
(
dataManager
.
GetSysString
(
1451
));
lstCategories
->
addItem
(
dataManager
.
GetSysString
(
1452
));
lstCategories
->
addItem
(
dataManager
.
GetSysString
(
1453
));
FileSystem
::
TraversalDir
(
L"./deck"
,
[
lstCategories
](
const
wchar_t
*
name
,
bool
isdir
)
{
if
(
isdir
)
{
lstCategories
->
addItem
(
name
);
}
});
lstCategories
->
setSelected
(
mainGame
->
deckBuilder
.
prev_category
);
refreshDeckList
();
refreshReadonly
(
mainGame
->
deckBuilder
.
prev_category
);
mainGame
->
lstDecks
->
setSelected
(
mainGame
->
deckBuilder
.
prev_deck
);
mainGame
->
PopupElement
(
mainGame
->
wDeckManage
);
}
void
DeckBuilder
::
Initialize
()
{
void
DeckBuilder
::
Initialize
()
{
mainGame
->
is_building
=
true
;
mainGame
->
is_building
=
true
;
mainGame
->
is_siding
=
false
;
mainGame
->
is_siding
=
false
;
...
@@ -151,9 +92,7 @@ void DeckBuilder::Initialize() {
...
@@ -151,9 +92,7 @@ void DeckBuilder::Initialize() {
is_starting_dragging
=
false
;
is_starting_dragging
=
false
;
prev_deck
=
mainGame
->
cbDBDecks
->
getSelected
();
prev_deck
=
mainGame
->
cbDBDecks
->
getSelected
();
prev_category
=
mainGame
->
cbDBCategory
->
getSelected
();
prev_category
=
mainGame
->
cbDBCategory
->
getSelected
();
readonly
=
prev_category
<
2
;
RefreshReadonly
(
prev_category
);
mainGame
->
btnSaveDeck
->
setEnabled
(
!
readonly
);
mainGame
->
btnDeleteDeck
->
setEnabled
(
!
readonly
);
prev_operation
=
0
;
prev_operation
=
0
;
prev_sel
=
-
1
;
prev_sel
=
-
1
;
is_modified
=
false
;
is_modified
=
false
;
...
@@ -211,7 +150,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -211,7 +150,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
(
mainGame
->
wQuery
->
isVisible
()
&&
id
!=
BUTTON_YES
&&
id
!=
BUTTON_NO
)
||
(
mainGame
->
wQuery
->
isVisible
()
&&
id
!=
BUTTON_YES
&&
id
!=
BUTTON_NO
)
||
(
mainGame
->
wLinkMarks
->
isVisible
()
&&
id
!=
BUTTON_MARKERS_OK
)
||
(
mainGame
->
wLinkMarks
->
isVisible
()
&&
id
!=
BUTTON_MARKERS_OK
)
||
(
mainGame
->
wDMQuery
->
isVisible
()
&&
id
!=
BUTTON_DM_OK
&&
id
!=
BUTTON_DM_CANCEL
)
||
(
mainGame
->
wDMQuery
->
isVisible
()
&&
id
!=
BUTTON_DM_OK
&&
id
!=
BUTTON_DM_CANCEL
)
||
(
mainGame
->
wDeckManage
->
isVisible
()
&&
!
(
id
>=
WINDOW_DECK_MANAGE
&&
id
<
=
COMBOBOX_LFLIST
)))
(
mainGame
->
wDeckManage
->
isVisible
()
&&
!
(
id
>=
WINDOW_DECK_MANAGE
&&
id
<
COMBOBOX_LFLIST
)))
&&
event
.
GUIEvent
.
EventType
!=
irr
::
gui
::
EGET_LISTBOX_CHANGED
&&
event
.
GUIEvent
.
EventType
!=
irr
::
gui
::
EGET_LISTBOX_CHANGED
&&
event
.
GUIEvent
.
EventType
!=
irr
::
gui
::
EGET_COMBO_BOX_CHANGED
)
{
&&
event
.
GUIEvent
.
EventType
!=
irr
::
gui
::
EGET_COMBO_BOX_CHANGED
)
{
if
(
mainGame
->
wDMQuery
->
isVisible
())
if
(
mainGame
->
wDMQuery
->
isVisible
())
...
@@ -277,14 +216,24 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -277,14 +216,24 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame
->
cbDBDecks
->
addItem
(
dname
);
mainGame
->
cbDBDecks
->
addItem
(
dname
);
mainGame
->
cbDBDecks
->
setSelected
(
mainGame
->
cbDBDecks
->
getItemCount
()
-
1
);
mainGame
->
cbDBDecks
->
setSelected
(
mainGame
->
cbDBDecks
->
getItemCount
()
-
1
);
}
}
int
catesel
=
mainGame
->
cbDBCategory
->
getSelected
();
wchar_t
catepath
[
256
];
wchar_t
catepath
[
256
];
deckManager
.
GetCategoryPath
(
catepath
,
mainGame
->
cbDBCategory
->
getSelected
()
,
mainGame
->
cbDBCategory
->
getText
());
deckManager
.
GetCategoryPath
(
catepath
,
catesel
,
mainGame
->
cbDBCategory
->
getText
());
wchar_t
filepath
[
256
];
wchar_t
filepath
[
256
];
myswprintf
(
filepath
,
L"%ls/%ls.ydk"
,
catepath
,
dname
);
myswprintf
(
filepath
,
L"%ls/%ls.ydk"
,
catepath
,
dname
);
if
(
deckManager
.
SaveDeck
(
deckManager
.
current_deck
,
filepath
))
{
if
(
deckManager
.
SaveDeck
(
deckManager
.
current_deck
,
filepath
))
{
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1335
));
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1335
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
is_modified
=
false
;
is_modified
=
false
;
if
(
catesel
==
-
1
)
{
catesel
=
2
;
prev_category
=
catesel
;
RefreshReadonly
(
catesel
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
mainGame
->
btnManageDeck
->
setEnabled
(
true
);
mainGame
->
cbDBCategory
->
setEnabled
(
true
);
mainGame
->
cbDBDecks
->
setEnabled
(
true
);
}
}
}
break
;
break
;
}
}
...
@@ -395,7 +344,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -395,7 +344,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
prev_operation
=
id
;
prev_operation
=
id
;
break
;
break
;
}
}
s
howDeckManage
();
S
howDeckManage
();
break
;
break
;
}
}
case
BUTTON_NEW_CATEGORY
:
{
case
BUTTON_NEW_CATEGORY
:
{
...
@@ -414,7 +363,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -414,7 +363,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame
->
gMutex
.
lock
();
mainGame
->
gMutex
.
lock
();
mainGame
->
stDMMessage
->
setText
(
dataManager
.
GetSysString
(
1469
));
mainGame
->
stDMMessage
->
setText
(
dataManager
.
GetSysString
(
1469
));
mainGame
->
ebDMName
->
setVisible
(
true
);
mainGame
->
ebDMName
->
setVisible
(
true
);
mainGame
->
ebDMName
->
setText
(
L""
);
mainGame
->
ebDMName
->
setText
(
mainGame
->
lstCategories
->
getListItem
(
mainGame
->
lstCategories
->
getSelected
())
);
mainGame
->
PopupElement
(
mainGame
->
wDMQuery
);
mainGame
->
PopupElement
(
mainGame
->
wDMQuery
);
mainGame
->
gMutex
.
unlock
();
mainGame
->
gMutex
.
unlock
();
prev_operation
=
id
;
prev_operation
=
id
;
...
@@ -444,7 +393,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -444,7 +393,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame
->
gMutex
.
lock
();
mainGame
->
gMutex
.
lock
();
mainGame
->
stDMMessage
->
setText
(
dataManager
.
GetSysString
(
1471
));
mainGame
->
stDMMessage
->
setText
(
dataManager
.
GetSysString
(
1471
));
mainGame
->
ebDMName
->
setVisible
(
true
);
mainGame
->
ebDMName
->
setVisible
(
true
);
mainGame
->
ebDMName
->
setText
(
L""
);
mainGame
->
ebDMName
->
setText
(
mainGame
->
lstDecks
->
getListItem
(
mainGame
->
lstDecks
->
getSelected
())
);
mainGame
->
PopupElement
(
mainGame
->
wDMQuery
);
mainGame
->
PopupElement
(
mainGame
->
wDMQuery
);
mainGame
->
gMutex
.
unlock
();
mainGame
->
gMutex
.
unlock
();
prev_operation
=
id
;
prev_operation
=
id
;
...
@@ -468,7 +417,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -468,7 +417,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
if
(
catesel
!=
2
)
if
(
catesel
!=
2
)
mainGame
->
cbDMCategory
->
addItem
(
dataManager
.
GetSysString
(
1452
));
mainGame
->
cbDMCategory
->
addItem
(
dataManager
.
GetSysString
(
1452
));
for
(
int
i
=
4
;
i
<
mainGame
->
lstCategories
->
getItemCount
();
i
++
)
{
for
(
int
i
=
4
;
i
<
mainGame
->
lstCategories
->
getItemCount
();
i
++
)
{
if
(
i
!=
catesel
)
if
(
i
!=
catesel
)
mainGame
->
cbDMCategory
->
addItem
(
mainGame
->
lstCategories
->
getListItem
(
i
));
mainGame
->
cbDMCategory
->
addItem
(
mainGame
->
lstCategories
->
getListItem
(
i
));
}
}
...
@@ -485,7 +434,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -485,7 +434,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
if
(
catesel
!=
2
)
if
(
catesel
!=
2
)
mainGame
->
cbDMCategory
->
addItem
(
dataManager
.
GetSysString
(
1452
));
mainGame
->
cbDMCategory
->
addItem
(
dataManager
.
GetSysString
(
1452
));
for
(
int
i
=
4
;
i
<
mainGame
->
lstCategories
->
getItemCount
();
i
++
)
{
for
(
int
i
=
4
;
i
<
mainGame
->
lstCategories
->
getItemCount
();
i
++
)
{
if
(
i
!=
catesel
)
if
(
i
!=
catesel
)
mainGame
->
cbDMCategory
->
addItem
(
mainGame
->
lstCategories
->
getListItem
(
i
));
mainGame
->
cbDMCategory
->
addItem
(
mainGame
->
lstCategories
->
getListItem
(
i
));
}
}
...
@@ -503,9 +452,8 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -503,9 +452,8 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame
->
cbDBCategory
->
addItem
(
catename
);
mainGame
->
cbDBCategory
->
addItem
(
catename
);
mainGame
->
lstCategories
->
addItem
(
catename
);
mainGame
->
lstCategories
->
addItem
(
catename
);
catesel
=
mainGame
->
lstCategories
->
getItemCount
()
-
1
;
catesel
=
mainGame
->
lstCategories
->
getItemCount
()
-
1
;
}
}
else
{
else
{
for
(
int
i
=
3
;
i
<
mainGame
->
lstCategories
->
getItemCount
();
i
++
)
{
for
(
int
i
=
3
;
i
<
mainGame
->
lstCategories
->
getItemCount
();
i
++
)
{
if
(
!
wcsncasecmp
(
mainGame
->
lstCategories
->
getListItem
(
i
),
catename
,
256
))
{
if
(
!
wcsncasecmp
(
mainGame
->
lstCategories
->
getListItem
(
i
),
catename
,
256
))
{
catesel
=
i
;
catesel
=
i
;
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1474
));
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1474
));
...
@@ -516,10 +464,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -516,10 +464,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
}
}
if
(
catesel
>
0
)
{
if
(
catesel
>
0
)
{
mainGame
->
lstCategories
->
setSelected
(
catesel
);
mainGame
->
lstCategories
->
setSelected
(
catesel
);
r
efreshDeckList
();
R
efreshDeckList
();
mainGame
->
lstDecks
->
setSelected
(
0
);
mainGame
->
lstDecks
->
setSelected
(
0
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
c
hangeCategory
(
catesel
);
C
hangeCategory
(
catesel
);
}
}
break
;
break
;
}
}
...
@@ -535,7 +483,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -535,7 +483,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
catesel
=
mainGame
->
lstCategories
->
getItemCount
()
-
1
;
catesel
=
mainGame
->
lstCategories
->
getItemCount
()
-
1
;
}
else
{
}
else
{
catesel
=
0
;
catesel
=
0
;
for
(
int
i
=
3
;
i
<
mainGame
->
lstCategories
->
getItemCount
();
i
++
)
{
for
(
int
i
=
3
;
i
<
mainGame
->
lstCategories
->
getItemCount
();
i
++
)
{
if
(
!
wcsncasecmp
(
mainGame
->
lstCategories
->
getListItem
(
i
),
newcatename
,
256
))
{
if
(
!
wcsncasecmp
(
mainGame
->
lstCategories
->
getListItem
(
i
),
newcatename
,
256
))
{
catesel
=
i
;
catesel
=
i
;
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1474
));
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1474
));
...
@@ -546,10 +494,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -546,10 +494,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
}
}
if
(
catesel
>
0
)
{
if
(
catesel
>
0
)
{
mainGame
->
lstCategories
->
setSelected
(
catesel
);
mainGame
->
lstCategories
->
setSelected
(
catesel
);
r
efreshDeckList
();
R
efreshDeckList
();
mainGame
->
lstDecks
->
setSelected
(
0
);
mainGame
->
lstDecks
->
setSelected
(
0
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
c
hangeCategory
(
catesel
);
C
hangeCategory
(
catesel
);
}
}
break
;
break
;
}
}
...
@@ -561,10 +509,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -561,10 +509,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame
->
lstCategories
->
removeItem
(
catesel
);
mainGame
->
lstCategories
->
removeItem
(
catesel
);
catesel
=
2
;
catesel
=
2
;
mainGame
->
lstCategories
->
setSelected
(
catesel
);
mainGame
->
lstCategories
->
setSelected
(
catesel
);
r
efreshDeckList
();
R
efreshDeckList
();
mainGame
->
lstDecks
->
setSelected
(
0
);
mainGame
->
lstDecks
->
setSelected
(
0
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
c
hangeCategory
(
catesel
);
C
hangeCategory
(
catesel
);
}
else
{
}
else
{
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1476
));
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1476
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
...
@@ -583,10 +531,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -583,10 +531,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
deckManager
.
current_deck
.
extra
.
clear
();
deckManager
.
current_deck
.
extra
.
clear
();
deckManager
.
current_deck
.
side
.
clear
();
deckManager
.
current_deck
.
side
.
clear
();
res
=
deckManager
.
SaveDeck
(
deckManager
.
current_deck
,
filepath
);
res
=
deckManager
.
SaveDeck
(
deckManager
.
current_deck
,
filepath
);
r
efreshDeckList
();
R
efreshDeckList
();
c
hangeCategory
(
mainGame
->
lstCategories
->
getSelected
());
C
hangeCategory
(
mainGame
->
lstCategories
->
getSelected
());
}
}
for
(
int
i
=
0
;
i
<
mainGame
->
lstDecks
->
getItemCount
();
i
++
)
{
for
(
int
i
=
0
;
i
<
mainGame
->
lstDecks
->
getItemCount
();
i
++
)
{
if
(
!
wcsncasecmp
(
mainGame
->
lstDecks
->
getListItem
(
i
),
deckname
,
256
))
{
if
(
!
wcsncasecmp
(
mainGame
->
lstDecks
->
getListItem
(
i
),
deckname
,
256
))
{
deckManager
.
LoadDeck
(
filepath
);
deckManager
.
LoadDeck
(
filepath
);
prev_deck
=
i
;
prev_deck
=
i
;
...
@@ -618,9 +566,9 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -618,9 +566,9 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
if
(
!
FileSystem
::
IsFileExists
(
newfilepath
))
{
if
(
!
FileSystem
::
IsFileExists
(
newfilepath
))
{
res
=
FileSystem
::
Rename
(
oldfilepath
,
newfilepath
);
res
=
FileSystem
::
Rename
(
oldfilepath
,
newfilepath
);
}
}
r
efreshDeckList
();
R
efreshDeckList
();
c
hangeCategory
(
catesel
);
C
hangeCategory
(
catesel
);
for
(
int
i
=
0
;
i
<
mainGame
->
lstDecks
->
getItemCount
();
i
++
)
{
for
(
int
i
=
0
;
i
<
mainGame
->
lstDecks
->
getItemCount
();
i
++
)
{
if
(
!
wcsncasecmp
(
mainGame
->
lstDecks
->
getListItem
(
i
),
newdeckname
,
256
))
{
if
(
!
wcsncasecmp
(
mainGame
->
lstDecks
->
getListItem
(
i
),
newdeckname
,
256
))
{
deckManager
.
LoadDeck
(
newfilepath
);
deckManager
.
LoadDeck
(
newfilepath
);
prev_deck
=
i
;
prev_deck
=
i
;
...
@@ -651,7 +599,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -651,7 +599,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame
->
cbDBDecks
->
setSelected
(
decksel
);
mainGame
->
cbDBDecks
->
setSelected
(
decksel
);
deckManager
.
LoadDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
deckManager
.
LoadDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
}
}
r
efreshReadonly
(
prev_category
);
R
efreshReadonly
(
prev_category
);
prev_deck
=
decksel
;
prev_deck
=
decksel
;
}
else
{
}
else
{
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1476
));
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1476
));
...
@@ -681,10 +629,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -681,10 +629,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
}
}
mainGame
->
lstCategories
->
setSelected
(
newcatename
);
mainGame
->
lstCategories
->
setSelected
(
newcatename
);
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
r
efreshDeckList
();
R
efreshDeckList
();
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
c
hangeCategory
(
catesel
);
C
hangeCategory
(
catesel
);
for
(
int
i
=
0
;
i
<
mainGame
->
lstDecks
->
getItemCount
();
i
++
)
{
for
(
int
i
=
0
;
i
<
mainGame
->
lstDecks
->
getItemCount
();
i
++
)
{
if
(
!
wcsncasecmp
(
mainGame
->
lstDecks
->
getListItem
(
i
),
deckname
,
256
))
{
if
(
!
wcsncasecmp
(
mainGame
->
lstDecks
->
getListItem
(
i
),
deckname
,
256
))
{
deckManager
.
LoadDeck
(
newfilepath
);
deckManager
.
LoadDeck
(
newfilepath
);
prev_deck
=
i
;
prev_deck
=
i
;
...
@@ -719,10 +667,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -719,10 +667,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
}
}
mainGame
->
lstCategories
->
setSelected
(
newcatename
);
mainGame
->
lstCategories
->
setSelected
(
newcatename
);
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
r
efreshDeckList
();
R
efreshDeckList
();
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
c
hangeCategory
(
catesel
);
C
hangeCategory
(
catesel
);
for
(
int
i
=
0
;
i
<
mainGame
->
lstDecks
->
getItemCount
();
i
++
)
{
for
(
int
i
=
0
;
i
<
mainGame
->
lstDecks
->
getItemCount
();
i
++
)
{
if
(
!
wcsncasecmp
(
mainGame
->
lstDecks
->
getListItem
(
i
),
deckname
,
256
))
{
if
(
!
wcsncasecmp
(
mainGame
->
lstDecks
->
getListItem
(
i
),
deckname
,
256
))
{
deckManager
.
LoadDeck
(
newfilepath
);
deckManager
.
LoadDeck
(
newfilepath
);
prev_deck
=
i
;
prev_deck
=
i
;
...
@@ -759,7 +707,8 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -759,7 +707,8 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
break
;
break
;
}
}
case
BUTTON_SIDE_OK
:
{
case
BUTTON_SIDE_OK
:
{
if
(
deckManager
.
current_deck
.
main
.
size
()
!=
pre_mainc
||
deckManager
.
current_deck
.
extra
.
size
()
!=
pre_extrac
if
(
deckManager
.
current_deck
.
main
.
size
()
!=
pre_mainc
||
deckManager
.
current_deck
.
extra
.
size
()
!=
pre_extrac
||
deckManager
.
current_deck
.
side
.
size
()
!=
pre_sidec
)
{
||
deckManager
.
current_deck
.
side
.
size
()
!=
pre_sidec
)
{
mainGame
->
soundManager
->
PlaySoundEffect
(
SoundManager
::
SFX
::
INFO
);
mainGame
->
soundManager
->
PlaySoundEffect
(
SoundManager
::
SFX
::
INFO
);
mainGame
->
env
->
addMessageBox
(
L""
,
dataManager
.
GetSysString
(
1410
));
mainGame
->
env
->
addMessageBox
(
L""
,
dataManager
.
GetSysString
(
1410
));
...
@@ -820,14 +769,14 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -820,14 +769,14 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
Terminate
();
Terminate
();
}
else
if
(
prev_operation
==
COMBOBOX_DBCATEGORY
)
{
}
else
if
(
prev_operation
==
COMBOBOX_DBCATEGORY
)
{
int
catesel
=
mainGame
->
cbDBCategory
->
getSelected
();
int
catesel
=
mainGame
->
cbDBCategory
->
getSelected
();
c
hangeCategory
(
catesel
);
C
hangeCategory
(
catesel
);
}
else
if
(
prev_operation
==
COMBOBOX_DBDECKS
)
{
}
else
if
(
prev_operation
==
COMBOBOX_DBDECKS
)
{
int
decksel
=
mainGame
->
cbDBDecks
->
getSelected
();
int
decksel
=
mainGame
->
cbDBDecks
->
getSelected
();
deckManager
.
LoadDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
deckManager
.
LoadDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
prev_deck
=
decksel
;
prev_deck
=
decksel
;
is_modified
=
false
;
is_modified
=
false
;
}
else
if
(
prev_operation
==
BUTTON_MANAGE_DECK
)
{
}
else
if
(
prev_operation
==
BUTTON_MANAGE_DECK
)
{
s
howDeckManage
();
S
howDeckManage
();
}
}
prev_operation
=
0
;
prev_operation
=
0
;
break
;
break
;
...
@@ -836,8 +785,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -836,8 +785,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame
->
HideElement
(
mainGame
->
wQuery
);
mainGame
->
HideElement
(
mainGame
->
wQuery
);
if
(
prev_operation
==
COMBOBOX_DBCATEGORY
)
{
if
(
prev_operation
==
COMBOBOX_DBCATEGORY
)
{
mainGame
->
cbDBCategory
->
setSelected
(
prev_category
);
mainGame
->
cbDBCategory
->
setSelected
(
prev_category
);
}
}
else
if
(
prev_operation
==
COMBOBOX_DBDECKS
)
{
else
if
(
prev_operation
==
COMBOBOX_DBDECKS
)
{
mainGame
->
cbDBDecks
->
setSelected
(
prev_deck
);
mainGame
->
cbDBDecks
->
setSelected
(
prev_deck
);
}
}
prev_operation
=
0
;
prev_operation
=
0
;
...
@@ -927,7 +875,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -927,7 +875,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
prev_operation
=
id
;
prev_operation
=
id
;
break
;
break
;
}
}
c
hangeCategory
(
catesel
);
C
hangeCategory
(
catesel
);
break
;
break
;
}
}
case
COMBOBOX_DBDECKS
:
{
case
COMBOBOX_DBDECKS
:
{
...
@@ -1068,6 +1016,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -1068,6 +1016,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
case
COMBOBOX_LIMIT
:
case
COMBOBOX_LIMIT
:
mainGame
->
env
->
setFocus
(
0
);
mainGame
->
env
->
setFocus
(
0
);
InstantSearch
();
InstantSearch
();
break
;
}
}
}
}
case
irr
:
:
gui
::
EGET_LISTBOX_CHANGED
:
{
case
irr
:
:
gui
::
EGET_LISTBOX_CHANGED
:
{
...
@@ -1084,10 +1033,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -1084,10 +1033,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
if
(
prev_category
==
catesel
)
if
(
prev_category
==
catesel
)
break
;
break
;
}
}
r
efreshDeckList
();
R
efreshDeckList
();
mainGame
->
lstDecks
->
setSelected
(
0
);
mainGame
->
lstDecks
->
setSelected
(
0
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
c
hangeCategory
(
catesel
);
C
hangeCategory
(
catesel
);
break
;
break
;
}
}
case
LISTBOX_DECKS
:
{
case
LISTBOX_DECKS
:
{
...
@@ -1533,7 +1482,7 @@ void DeckBuilder::FilterCards() {
...
@@ -1533,7 +1482,7 @@ void DeckBuilder::FilterCards() {
}
}
if
(
filter_effect
&&
!
(
data
.
category
&
filter_effect
))
if
(
filter_effect
&&
!
(
data
.
category
&
filter_effect
))
continue
;
continue
;
if
(
filter_marks
&&
(
data
.
link_marker
&
filter_marks
)
!=
filter_marks
)
if
(
filter_marks
&&
(
data
.
link_marker
&
filter_marks
)
!=
filter_marks
)
continue
;
continue
;
if
(
filter_lm
)
{
if
(
filter_lm
)
{
if
(
filter_lm
<=
3
&&
(
!
filterList
->
count
(
ptr
->
first
)
||
(
*
filterList
).
at
(
ptr
->
first
)
!=
filter_lm
-
1
))
if
(
filter_lm
<=
3
&&
(
!
filterList
->
count
(
ptr
->
first
)
||
(
*
filterList
).
at
(
ptr
->
first
)
!=
filter_lm
-
1
))
...
@@ -1650,6 +1599,68 @@ void DeckBuilder::SortList() {
...
@@ -1650,6 +1599,68 @@ void DeckBuilder::SortList() {
break
;
break
;
}
}
}
}
void
DeckBuilder
::
RefreshDeckList
()
{
irr
::
gui
::
IGUIListBox
*
lstCategories
=
mainGame
->
lstCategories
;
irr
::
gui
::
IGUIListBox
*
lstDecks
=
mainGame
->
lstDecks
;
wchar_t
catepath
[
256
];
deckManager
.
GetCategoryPath
(
catepath
,
lstCategories
->
getSelected
(),
lstCategories
->
getListItem
(
lstCategories
->
getSelected
()));
lstDecks
->
clear
();
FileSystem
::
TraversalDir
(
catepath
,
[
lstDecks
](
const
wchar_t
*
name
,
bool
isdir
)
{
if
(
!
isdir
&&
wcsrchr
(
name
,
'.'
)
&&
!
wcsncasecmp
(
wcsrchr
(
name
,
'.'
),
L".ydk"
,
4
))
{
size_t
len
=
wcslen
(
name
);
wchar_t
deckname
[
256
];
wcsncpy
(
deckname
,
name
,
len
-
4
);
deckname
[
len
-
4
]
=
0
;
lstDecks
->
addItem
(
deckname
);
}
});
}
void
DeckBuilder
::
RefreshReadonly
(
int
catesel
)
{
bool
hasDeck
=
mainGame
->
cbDBDecks
->
getItemCount
()
!=
0
;
readonly
=
catesel
<
2
;
mainGame
->
btnSaveDeck
->
setEnabled
(
!
readonly
);
mainGame
->
btnSaveDeckAs
->
setEnabled
(
!
readonly
);
mainGame
->
btnDeleteDeck
->
setEnabled
(
hasDeck
&&
!
readonly
);
mainGame
->
btnRenameCategory
->
setEnabled
(
catesel
>
3
);
mainGame
->
btnDeleteCategory
->
setEnabled
(
catesel
>
3
);
mainGame
->
btnNewDeck
->
setEnabled
(
!
readonly
);
mainGame
->
btnRenameDeck
->
setEnabled
(
hasDeck
&&
!
readonly
);
mainGame
->
btnDMDeleteDeck
->
setEnabled
(
hasDeck
&&
!
readonly
);
mainGame
->
btnMoveDeck
->
setEnabled
(
hasDeck
&&
!
readonly
);
mainGame
->
btnCopyDeck
->
setEnabled
(
hasDeck
);
}
void
DeckBuilder
::
ChangeCategory
(
int
catesel
)
{
mainGame
->
RefreshDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
mainGame
->
cbDBDecks
->
setSelected
(
0
);
deckManager
.
LoadDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
RefreshReadonly
(
catesel
);
is_modified
=
false
;
prev_category
=
catesel
;
prev_deck
=
0
;
}
void
DeckBuilder
::
ShowDeckManage
()
{
mainGame
->
RefreshCategoryDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
,
false
);
mainGame
->
cbDBCategory
->
setSelected
(
prev_category
);
mainGame
->
RefreshDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
mainGame
->
cbDBDecks
->
setSelected
(
prev_deck
);
irr
::
gui
::
IGUIListBox
*
lstCategories
=
mainGame
->
lstCategories
;
lstCategories
->
clear
();
lstCategories
->
addItem
(
dataManager
.
GetSysString
(
1450
));
lstCategories
->
addItem
(
dataManager
.
GetSysString
(
1451
));
lstCategories
->
addItem
(
dataManager
.
GetSysString
(
1452
));
lstCategories
->
addItem
(
dataManager
.
GetSysString
(
1453
));
FileSystem
::
TraversalDir
(
L"./deck"
,
[
lstCategories
](
const
wchar_t
*
name
,
bool
isdir
)
{
if
(
isdir
)
{
lstCategories
->
addItem
(
name
);
}
});
lstCategories
->
setSelected
(
prev_category
);
RefreshDeckList
();
RefreshReadonly
(
prev_category
);
mainGame
->
lstDecks
->
setSelected
(
prev_deck
);
mainGame
->
PopupElement
(
mainGame
->
wDeckManage
);
}
static
inline
wchar_t
NormalizeChar
(
wchar_t
c
)
{
static
inline
wchar_t
NormalizeChar
(
wchar_t
c
)
{
/*
/*
// Convert all symbols and punctuations to space.
// Convert all symbols and punctuations to space.
...
@@ -1670,22 +1681,21 @@ static inline wchar_t NormalizeChar(wchar_t c) {
...
@@ -1670,22 +1681,21 @@ static inline wchar_t NormalizeChar(wchar_t c) {
}
}
return
c
;
return
c
;
}
}
bool
DeckBuilder
::
CardNameContains
(
const
wchar_t
*
haystack
,
const
wchar_t
*
needle
)
bool
DeckBuilder
::
CardNameContains
(
const
wchar_t
*
haystack
,
const
wchar_t
*
needle
)
{
{
if
(
!
needle
[
0
])
{
if
(
!
needle
[
0
])
{
return
true
;
return
true
;
}
}
if
(
!
haystack
)
{
if
(
!
haystack
)
{
return
false
;
return
false
;
}
}
int
i
=
0
;
int
i
=
0
;
int
j
=
0
;
int
j
=
0
;
while
(
haystack
[
i
])
{
while
(
haystack
[
i
])
{
wchar_t
ca
=
NormalizeChar
(
haystack
[
i
]);
wchar_t
ca
=
NormalizeChar
(
haystack
[
i
]);
wchar_t
cb
=
NormalizeChar
(
needle
[
j
]);
wchar_t
cb
=
NormalizeChar
(
needle
[
j
]);
if
(
ca
==
cb
)
{
if
(
ca
==
cb
)
{
j
++
;
j
++
;
if
(
!
needle
[
j
])
{
if
(
!
needle
[
j
])
{
return
true
;
return
true
;
}
}
}
else
{
}
else
{
...
...
Classes/gframe/deck_con.h
View file @
34e9abd9
...
@@ -27,6 +27,11 @@ public:
...
@@ -27,6 +27,11 @@ public:
void
ClearSearch
();
void
ClearSearch
();
void
SortList
();
void
SortList
();
void
RefreshDeckList
();
void
RefreshReadonly
(
int
catesel
);
void
ChangeCategory
(
int
catesel
);
void
ShowDeckManage
();
bool
CardNameContains
(
const
wchar_t
*
haystack
,
const
wchar_t
*
needle
);
bool
CardNameContains
(
const
wchar_t
*
haystack
,
const
wchar_t
*
needle
);
bool
push_main
(
code_pointer
pointer
,
int
seq
=
-
1
);
bool
push_main
(
code_pointer
pointer
,
int
seq
=
-
1
);
...
...
Classes/gframe/event_handler.cpp
View file @
34e9abd9
...
@@ -374,11 +374,13 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -374,11 +374,13 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
int
step
=
mainGame
->
scrOption
->
isVisible
()
?
mainGame
->
scrOption
->
getPos
()
:
0
;
int
step
=
mainGame
->
scrOption
->
isVisible
()
?
mainGame
->
scrOption
->
getPos
()
:
0
;
selected_option
=
id
-
BUTTON_OPTION_0
+
step
;
selected_option
=
id
-
BUTTON_OPTION_0
+
step
;
SetResponseSelectedOption
();
SetResponseSelectedOption
();
ShowCancelOrFinishButton
(
0
);
break
;
break
;
}
}
case
BUTTON_OPTION_OK
:
{
case
BUTTON_OPTION_OK
:
{
mainGame
->
soundManager
->
PlaySoundEffect
(
SoundManager
::
SFX
::
BUTTON
);
mainGame
->
soundManager
->
PlaySoundEffect
(
SoundManager
::
SFX
::
BUTTON
);
SetResponseSelectedOption
();
SetResponseSelectedOption
();
ShowCancelOrFinishButton
(
0
);
break
;
break
;
}
}
case
BUTTON_ANNUMBER_1
:
case
BUTTON_ANNUMBER_1
:
...
@@ -432,22 +434,25 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -432,22 +434,25 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
mainGame
->
wCmdMenu
->
setVisible
(
false
);
mainGame
->
wCmdMenu
->
setVisible
(
false
);
ShowCancelOrFinishButton
(
0
);
ShowCancelOrFinishButton
(
0
);
if
(
!
list_command
)
{
if
(
!
list_command
)
{
int
index
=
-
1
;
if
(
!
menu_card
)
break
;
select_options
.
clear
();
select_options
.
clear
();
select_options_index
.
clear
();
for
(
size_t
i
=
0
;
i
<
activatable_cards
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
activatable_cards
.
size
();
++
i
)
{
if
(
activatable_cards
[
i
]
==
clicked
_card
)
{
if
(
activatable_cards
[
i
]
==
menu
_card
)
{
if
(
activatable_descs
[
i
].
second
==
EDESC_OPERATION
)
if
(
activatable_descs
[
i
].
second
==
EDESC_OPERATION
)
continue
;
continue
;
if
(
activatable_descs
[
i
].
second
==
EDESC_RESET
)
{
else
if
(
activatable_descs
[
i
].
second
==
EDESC_RESET
)
{
if
(
id
==
BUTTON_CMD_ACTIVATE
)
continue
;
if
(
id
==
BUTTON_CMD_ACTIVATE
)
continue
;
}
else
{
}
else
{
if
(
id
==
BUTTON_CMD_RESET
)
continue
;
if
(
id
==
BUTTON_CMD_RESET
)
continue
;
}
}
select_options
.
push_back
(
activatable_descs
[
i
].
first
);
select_options
.
push_back
(
activatable_descs
[
i
].
first
);
if
(
index
==
-
1
)
index
=
i
;
select_options_index
.
push_back
(
i
)
;
}
}
}
}
if
(
select_options
.
size
()
==
1
)
{
if
(
select_options
.
size
()
==
1
)
{
int
index
=
select_options_index
[
0
];
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_IDLECMD
)
{
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_IDLECMD
)
{
DuelClient
::
SetResponseI
((
index
<<
16
)
+
5
);
DuelClient
::
SetResponseI
((
index
<<
16
)
+
5
);
}
else
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_BATTLECMD
)
{
}
else
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_BATTLECMD
)
{
...
@@ -457,8 +462,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -457,8 +462,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
DuelClient
::
SendResponse
();
DuelClient
::
SendResponse
();
}
else
{
}
else
{
command_card
=
clicked
_card
;
command_card
=
menu
_card
;
ShowSelectOption
();
ShowSelectOption
();
select_ready
=
false
;
ShowCancelOrFinishButton
(
1
);
}
}
}
else
{
}
else
{
selectable_cards
.
clear
();
selectable_cards
.
clear
();
...
@@ -511,10 +518,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -511,10 +518,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
case
BUTTON_CMD_SUMMON
:
{
case
BUTTON_CMD_SUMMON
:
{
mainGame
->
wCmdMenu
->
setVisible
(
false
);
mainGame
->
wCmdMenu
->
setVisible
(
false
);
if
(
!
clicked
_card
)
if
(
!
menu
_card
)
break
;
break
;
for
(
size_t
i
=
0
;
i
<
summonable_cards
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
summonable_cards
.
size
();
++
i
)
{
if
(
summonable_cards
[
i
]
==
clicked
_card
)
{
if
(
summonable_cards
[
i
]
==
menu
_card
)
{
ClearCommandFlag
();
ClearCommandFlag
();
DuelClient
::
SetResponseI
(
i
<<
16
);
DuelClient
::
SetResponseI
(
i
<<
16
);
DuelClient
::
SendResponse
();
DuelClient
::
SendResponse
();
...
@@ -526,10 +533,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -526,10 +533,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case
BUTTON_CMD_SPSUMMON
:
{
case
BUTTON_CMD_SPSUMMON
:
{
mainGame
->
wCmdMenu
->
setVisible
(
false
);
mainGame
->
wCmdMenu
->
setVisible
(
false
);
if
(
!
list_command
)
{
if
(
!
list_command
)
{
if
(
!
clicked
_card
)
if
(
!
menu
_card
)
break
;
break
;
for
(
size_t
i
=
0
;
i
<
spsummonable_cards
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
spsummonable_cards
.
size
();
++
i
)
{
if
(
spsummonable_cards
[
i
]
==
clicked
_card
)
{
if
(
spsummonable_cards
[
i
]
==
menu
_card
)
{
ClearCommandFlag
();
ClearCommandFlag
();
DuelClient
::
SetResponseI
((
i
<<
16
)
+
1
);
DuelClient
::
SetResponseI
((
i
<<
16
)
+
1
);
DuelClient
::
SendResponse
();
DuelClient
::
SendResponse
();
...
@@ -568,10 +575,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -568,10 +575,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
case
BUTTON_CMD_MSET
:
{
case
BUTTON_CMD_MSET
:
{
mainGame
->
wCmdMenu
->
setVisible
(
false
);
mainGame
->
wCmdMenu
->
setVisible
(
false
);
if
(
!
clicked
_card
)
if
(
!
menu
_card
)
break
;
break
;
for
(
size_t
i
=
0
;
i
<
msetable_cards
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
msetable_cards
.
size
();
++
i
)
{
if
(
msetable_cards
[
i
]
==
clicked
_card
)
{
if
(
msetable_cards
[
i
]
==
menu
_card
)
{
DuelClient
::
SetResponseI
((
i
<<
16
)
+
3
);
DuelClient
::
SetResponseI
((
i
<<
16
)
+
3
);
DuelClient
::
SendResponse
();
DuelClient
::
SendResponse
();
break
;
break
;
...
@@ -581,10 +588,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -581,10 +588,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
case
BUTTON_CMD_SSET
:
{
case
BUTTON_CMD_SSET
:
{
mainGame
->
wCmdMenu
->
setVisible
(
false
);
mainGame
->
wCmdMenu
->
setVisible
(
false
);
if
(
!
clicked
_card
)
if
(
!
menu
_card
)
break
;
break
;
for
(
size_t
i
=
0
;
i
<
ssetable_cards
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
ssetable_cards
.
size
();
++
i
)
{
if
(
ssetable_cards
[
i
]
==
clicked
_card
)
{
if
(
ssetable_cards
[
i
]
==
menu
_card
)
{
DuelClient
::
SetResponseI
((
i
<<
16
)
+
4
);
DuelClient
::
SetResponseI
((
i
<<
16
)
+
4
);
DuelClient
::
SendResponse
();
DuelClient
::
SendResponse
();
break
;
break
;
...
@@ -594,10 +601,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -594,10 +601,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
case
BUTTON_CMD_REPOS
:
{
case
BUTTON_CMD_REPOS
:
{
mainGame
->
wCmdMenu
->
setVisible
(
false
);
mainGame
->
wCmdMenu
->
setVisible
(
false
);
if
(
!
clicked
_card
)
if
(
!
menu
_card
)
break
;
break
;
for
(
size_t
i
=
0
;
i
<
reposable_cards
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
reposable_cards
.
size
();
++
i
)
{
if
(
reposable_cards
[
i
]
==
clicked
_card
)
{
if
(
reposable_cards
[
i
]
==
menu
_card
)
{
DuelClient
::
SetResponseI
((
i
<<
16
)
+
2
);
DuelClient
::
SetResponseI
((
i
<<
16
)
+
2
);
DuelClient
::
SendResponse
();
DuelClient
::
SendResponse
();
break
;
break
;
...
@@ -607,10 +614,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -607,10 +614,10 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
case
BUTTON_CMD_ATTACK
:
{
case
BUTTON_CMD_ATTACK
:
{
mainGame
->
wCmdMenu
->
setVisible
(
false
);
mainGame
->
wCmdMenu
->
setVisible
(
false
);
if
(
!
clicked
_card
)
if
(
!
menu
_card
)
break
;
break
;
for
(
size_t
i
=
0
;
i
<
attackable_cards
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
attackable_cards
.
size
();
++
i
)
{
if
(
attackable_cards
[
i
]
==
clicked
_card
)
{
if
(
attackable_cards
[
i
]
==
menu
_card
)
{
DuelClient
::
SetResponseI
((
i
<<
16
)
+
1
);
DuelClient
::
SetResponseI
((
i
<<
16
)
+
1
);
DuelClient
::
SendResponse
();
DuelClient
::
SendResponse
();
break
;
break
;
...
@@ -717,9 +724,9 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -717,9 +724,9 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
break
;
}
}
if
(
list_command
==
COMMAND_ACTIVATE
||
list_command
==
COMMAND_OPERATION
)
{
if
(
list_command
==
COMMAND_ACTIVATE
||
list_command
==
COMMAND_OPERATION
)
{
int
index
=
-
1
;
command_card
=
selectable_cards
[
id
-
BUTTON_CARD_0
+
mainGame
->
scrCardList
->
getPos
()
/
10
];
command_card
=
selectable_cards
[
id
-
BUTTON_CARD_0
+
mainGame
->
scrCardList
->
getPos
()
/
10
];
select_options
.
clear
();
select_options
.
clear
();
select_options_index
.
clear
();
for
(
size_t
i
=
0
;
i
<
activatable_cards
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
activatable_cards
.
size
();
++
i
)
{
if
(
activatable_cards
[
i
]
==
command_card
)
{
if
(
activatable_cards
[
i
]
==
command_card
)
{
if
(
activatable_descs
[
i
].
second
==
EDESC_OPERATION
)
{
if
(
activatable_descs
[
i
].
second
==
EDESC_OPERATION
)
{
...
@@ -728,10 +735,11 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -728,10 +735,11 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if
(
list_command
==
COMMAND_OPERATION
)
continue
;
if
(
list_command
==
COMMAND_OPERATION
)
continue
;
}
}
select_options
.
push_back
(
activatable_descs
[
i
].
first
);
select_options
.
push_back
(
activatable_descs
[
i
].
first
);
if
(
index
==
-
1
)
index
=
i
;
select_options_index
.
push_back
(
i
)
;
}
}
}
}
if
(
select_options
.
size
()
==
1
)
{
if
(
select_options
.
size
()
==
1
)
{
int
index
=
select_options_index
[
0
];
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_IDLECMD
)
{
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_IDLECMD
)
{
DuelClient
::
SetResponseI
((
index
<<
16
)
+
5
);
DuelClient
::
SetResponseI
((
index
<<
16
)
+
5
);
}
else
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_BATTLECMD
)
{
}
else
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_BATTLECMD
)
{
...
@@ -959,6 +967,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -959,6 +967,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
else
{
}
else
{
if
(
conti_selecting
)
if
(
conti_selecting
)
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
myswprintf
(
formatBuffer
,
L"%ls"
,
DataManager
::
unknown_string
);
else
if
(
cant_check_grave
&&
selectable_cards
[
i
]
->
location
==
LOCATION_GRAVE
)
myswprintf
(
formatBuffer
,
L"%ls"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
0
));
else
if
(
selectable_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
else
if
(
selectable_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
location
,
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
),
dataManager
.
FormatLocation
(
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
location
,
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
),
...
@@ -1258,6 +1268,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1258,6 +1268,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case
LOCATION_GRAVE
:
{
case
LOCATION_GRAVE
:
{
if
(
grave
[
hovered_controler
].
size
()
==
0
)
if
(
grave
[
hovered_controler
].
size
()
==
0
)
break
;
break
;
if
(
cant_check_grave
)
break
;
ShowMenu
(
COMMAND_LIST
,
x
,
y
);
ShowMenu
(
COMMAND_LIST
,
x
,
y
);
break
;
break
;
}
}
...
@@ -1308,6 +1320,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1308,6 +1320,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
int
command_flag
=
0
;
int
command_flag
=
0
;
if
(
grave
[
hovered_controler
].
size
()
==
0
)
if
(
grave
[
hovered_controler
].
size
()
==
0
)
break
;
break
;
if
(
cant_check_grave
)
break
;
for
(
size_t
i
=
0
;
i
<
grave
[
hovered_controler
].
size
();
++
i
)
for
(
size_t
i
=
0
;
i
<
grave
[
hovered_controler
].
size
();
++
i
)
command_flag
|=
grave
[
hovered_controler
][
i
]
->
cmdFlag
;
command_flag
|=
grave
[
hovered_controler
][
i
]
->
cmdFlag
;
command_flag
|=
COMMAND_LIST
;
command_flag
|=
COMMAND_LIST
;
...
@@ -1404,6 +1418,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1404,6 +1418,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
selected_field
=
0
;
selected_field
=
0
;
DuelClient
::
SetResponseB
(
respbuf
,
p
);
DuelClient
::
SetResponseB
(
respbuf
,
p
);
DuelClient
::
SendResponse
();
DuelClient
::
SendResponse
();
ShowCancelOrFinishButton
(
0
);
}
}
}
}
}
}
...
@@ -1615,7 +1630,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1615,7 +1630,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
SetShowMark
(
hovered_card
,
false
);
SetShowMark
(
hovered_card
,
false
);
}
}
if
(
mcard
)
{
if
(
mcard
)
{
if
(
mcard
!=
clicked
_card
)
if
(
mcard
!=
menu
_card
)
mainGame
->
wCmdMenu
->
setVisible
(
false
);
mainGame
->
wCmdMenu
->
setVisible
(
false
);
if
(
hovered_location
==
LOCATION_HAND
)
{
if
(
hovered_location
==
LOCATION_HAND
)
{
mcard
->
is_hovered
=
true
;
mcard
->
is_hovered
=
true
;
...
@@ -1753,6 +1768,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1753,6 +1768,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case
LOCATION_GRAVE
:
{
case
LOCATION_GRAVE
:
{
if
(
grave
[
hovered_controler
].
size
()
==
0
)
if
(
grave
[
hovered_controler
].
size
()
==
0
)
break
;
break
;
if
(
cant_check_grave
)
break
;
loc_id
=
1004
;
loc_id
=
1004
;
for
(
auto
it
=
grave
[
hovered_controler
].
rbegin
();
it
!=
grave
[
hovered_controler
].
rend
();
++
it
)
for
(
auto
it
=
grave
[
hovered_controler
].
rbegin
();
it
!=
grave
[
hovered_controler
].
rend
();
++
it
)
display_cards
.
push_back
(
*
it
);
display_cards
.
push_back
(
*
it
);
...
@@ -1843,6 +1860,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1843,6 +1860,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
display_cards
.
clear
();
display_cards
.
clear
();
switch
(
event
.
KeyInput
.
Key
)
{
switch
(
event
.
KeyInput
.
Key
)
{
case
irr
:
:
KEY_F1
:
case
irr
:
:
KEY_F1
:
if
(
cant_check_grave
)
break
;
loc_id
=
1004
;
loc_id
=
1004
;
for
(
auto
it
=
grave
[
0
].
rbegin
();
it
!=
grave
[
0
].
rend
();
++
it
)
for
(
auto
it
=
grave
[
0
].
rbegin
();
it
!=
grave
[
0
].
rend
();
++
it
)
display_cards
.
push_back
(
*
it
);
display_cards
.
push_back
(
*
it
);
...
@@ -1867,6 +1886,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1867,6 +1886,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
break
;
break
;
case
irr
:
:
KEY_F5
:
case
irr
:
:
KEY_F5
:
if
(
cant_check_grave
)
break
;
loc_id
=
1004
;
loc_id
=
1004
;
for
(
auto
it
=
grave
[
1
].
rbegin
();
it
!=
grave
[
1
].
rend
();
++
it
)
for
(
auto
it
=
grave
[
1
].
rbegin
();
it
!=
grave
[
1
].
rend
();
++
it
)
display_cards
.
push_back
(
*
it
);
display_cards
.
push_back
(
*
it
);
...
@@ -2077,15 +2098,19 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
...
@@ -2077,15 +2098,19 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
switch
(
event
.
KeyInput
.
Key
)
{
switch
(
event
.
KeyInput
.
Key
)
{
case
irr
:
:
KEY_KEY_R
:
{
case
irr
:
:
KEY_KEY_R
:
{
if
(
mainGame
->
gameConf
.
control_mode
==
0
if
(
mainGame
->
gameConf
.
control_mode
==
0
&&
!
event
.
KeyInput
.
PressedDown
&&
!
mainGame
->
HasFocus
(
EGUIET_EDIT_BOX
))
&&
!
event
.
KeyInput
.
PressedDown
&&
!
mainGame
->
HasFocus
(
EGUIET_EDIT_BOX
))
{
mainGame
->
textFont
->
setTransparency
(
true
);
mainGame
->
textFont
->
setTransparency
(
true
);
mainGame
->
guiFont
->
setTransparency
(
true
);
}
return
true
;
return
true
;
break
;
break
;
}
}
case
irr
:
:
KEY_F9
:
{
case
irr
:
:
KEY_F9
:
{
if
(
mainGame
->
gameConf
.
control_mode
==
1
if
(
mainGame
->
gameConf
.
control_mode
==
1
&&
!
event
.
KeyInput
.
PressedDown
&&
!
mainGame
->
HasFocus
(
EGUIET_EDIT_BOX
))
&&
!
event
.
KeyInput
.
PressedDown
&&
!
mainGame
->
HasFocus
(
EGUIET_EDIT_BOX
))
{
mainGame
->
textFont
->
setTransparency
(
true
);
mainGame
->
textFont
->
setTransparency
(
true
);
mainGame
->
guiFont
->
setTransparency
(
true
);
}
return
true
;
return
true
;
break
;
break
;
}
}
...
@@ -2499,6 +2524,7 @@ void ClientField::ShowMenu(int flag, int x, int y) {
...
@@ -2499,6 +2524,7 @@ void ClientField::ShowMenu(int flag, int x, int y) {
mainGame
->
wCmdMenu
->
setVisible
(
false
);
mainGame
->
wCmdMenu
->
setVisible
(
false
);
return
;
return
;
}
}
menu_card
=
clicked_card
;
int
height
=
0
;
int
height
=
0
;
if
(
flag
&
COMMAND_ACTIVATE
)
{
if
(
flag
&
COMMAND_ACTIVATE
)
{
mainGame
->
btnActivate
->
setVisible
(
true
);
mainGame
->
btnActivate
->
setVisible
(
true
);
...
@@ -2684,8 +2710,7 @@ void ClientField::SetResponseSelectedOption() const {
...
@@ -2684,8 +2710,7 @@ void ClientField::SetResponseSelectedOption() const {
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_OPTION
)
{
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_OPTION
)
{
DuelClient
::
SetResponseI
(
selected_option
);
DuelClient
::
SetResponseI
(
selected_option
);
}
else
{
}
else
{
int
index
=
0
;
int
index
=
select_options_index
[
selected_option
];
while
(
activatable_cards
[
index
]
!=
command_card
||
activatable_descs
[
index
].
first
!=
select_options
[
selected_option
])
index
++
;
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_IDLECMD
)
{
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_IDLECMD
)
{
DuelClient
::
SetResponseI
((
index
<<
16
)
+
5
);
DuelClient
::
SetResponseI
((
index
<<
16
)
+
5
);
}
else
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_BATTLECMD
)
{
}
else
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_BATTLECMD
)
{
...
...
Classes/gframe/menu_handler.cpp
View file @
34e9abd9
...
@@ -157,6 +157,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
...
@@ -157,6 +157,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
break
;
break
;
}
}
case
BUTTON_HP_DUELIST
:
{
case
BUTTON_HP_DUELIST
:
{
mainGame
->
cbCategorySelect
->
setEnabled
(
true
);
mainGame
->
cbDeckSelect
->
setEnabled
(
true
);
mainGame
->
cbDeckSelect
->
setEnabled
(
true
);
DuelClient
::
SendPacketToServer
(
CTOS_HS_TODUELIST
);
DuelClient
::
SendPacketToServer
(
CTOS_HS_TODUELIST
);
break
;
break
;
...
@@ -604,6 +605,32 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
...
@@ -604,6 +605,32 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
}
}
break
;
break
;
}
}
case
irr
:
:
gui
::
EGET_CHECKBOX_CHANGED
:
{
switch
(
id
)
{
case
CHECKBOX_HP_READY
:
{
if
(
!
caller
->
isEnabled
())
break
;
mainGame
->
env
->
setFocus
(
mainGame
->
wHostPrepare
);
if
(
static_cast
<
irr
::
gui
::
IGUICheckBox
*>
(
caller
)
->
isChecked
())
{
if
(
mainGame
->
cbCategorySelect
->
getSelected
()
==
-
1
||
mainGame
->
cbDeckSelect
->
getSelected
()
==
-
1
||
!
deckManager
.
LoadDeck
(
mainGame
->
cbCategorySelect
,
mainGame
->
cbDeckSelect
))
{
static_cast
<
irr
::
gui
::
IGUICheckBox
*>
(
caller
)
->
setChecked
(
false
);
break
;
}
UpdateDeck
();
DuelClient
::
SendPacketToServer
(
CTOS_HS_READY
);
mainGame
->
cbCategorySelect
->
setEnabled
(
false
);
mainGame
->
cbDeckSelect
->
setEnabled
(
false
);
}
else
{
DuelClient
::
SendPacketToServer
(
CTOS_HS_NOTREADY
);
mainGame
->
cbCategorySelect
->
setEnabled
(
true
);
mainGame
->
cbDeckSelect
->
setEnabled
(
true
);
}
break
;
}
}
break
;
}
case
irr
:
:
gui
::
EGET_COMBO_BOX_CHANGED
:
{
case
irr
:
:
gui
::
EGET_COMBO_BOX_CHANGED
:
{
switch
(
id
)
{
switch
(
id
)
{
case
COMBOBOX_BOT_RULE
:
{
case
COMBOBOX_BOT_RULE
:
{
...
@@ -637,32 +664,6 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
...
@@ -637,32 +664,6 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
}
}
break
;
break
;
}
}
case
irr
:
:
gui
::
EGET_CHECKBOX_CHANGED
:
{
switch
(
id
)
{
case
CHECKBOX_HP_READY
:
{
if
(
!
caller
->
isEnabled
())
break
;
mainGame
->
env
->
setFocus
(
mainGame
->
wHostPrepare
);
if
(
static_cast
<
irr
::
gui
::
IGUICheckBox
*>
(
caller
)
->
isChecked
())
{
if
(
mainGame
->
cbCategorySelect
->
getSelected
()
==
-
1
||
mainGame
->
cbDeckSelect
->
getSelected
()
==
-
1
||
!
deckManager
.
LoadDeck
(
mainGame
->
cbCategorySelect
,
mainGame
->
cbDeckSelect
))
{
static_cast
<
irr
::
gui
::
IGUICheckBox
*>
(
caller
)
->
setChecked
(
false
);
break
;
}
UpdateDeck
();
DuelClient
::
SendPacketToServer
(
CTOS_HS_READY
);
mainGame
->
cbCategorySelect
->
setEnabled
(
false
);
mainGame
->
cbDeckSelect
->
setEnabled
(
false
);
}
else
{
DuelClient
::
SendPacketToServer
(
CTOS_HS_NOTREADY
);
mainGame
->
cbCategorySelect
->
setEnabled
(
true
);
mainGame
->
cbDeckSelect
->
setEnabled
(
true
);
}
break
;
}
}
break
;
}
default:
break
;
default:
break
;
}
}
break
;
break
;
...
...
Classes/gframe/myfilesystem.h
View file @
34e9abd9
...
@@ -182,7 +182,6 @@ public:
...
@@ -182,7 +182,6 @@ public:
return
success
;
return
success
;
}
}
struct
file_unit
{
struct
file_unit
{
std
::
string
filename
;
std
::
string
filename
;
bool
is_dir
;
bool
is_dir
;
...
...
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