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
3c0f01d5
Commit
3c0f01d5
authored
May 06, 2019
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
revert deckmanager
parent
e324ad8d
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
235 additions
and
867 deletions
+235
-867
Classes/gframe/deck_con.cpp
Classes/gframe/deck_con.cpp
+75
-566
Classes/gframe/deck_con.h
Classes/gframe/deck_con.h
+0
-2
Classes/gframe/deck_manager.cpp
Classes/gframe/deck_manager.cpp
+39
-71
Classes/gframe/deck_manager.h
Classes/gframe/deck_manager.h
+5
-10
Classes/gframe/duelclient.cpp
Classes/gframe/duelclient.cpp
+1
-3
Classes/gframe/game.cpp
Classes/gframe/game.cpp
+75
-101
Classes/gframe/game.h
Classes/gframe/game.h
+37
-84
Classes/gframe/myfilesystem.h
Classes/gframe/myfilesystem.h
+1
-27
Classes/gframe/premake4.lua
Classes/gframe/premake4.lua
+2
-3
No files found.
Classes/gframe/deck_con.cpp
View file @
3c0f01d5
...
@@ -3,7 +3,6 @@
...
@@ -3,7 +3,6 @@
#include "data_manager.h"
#include "data_manager.h"
#include "deck_manager.h"
#include "deck_manager.h"
#include "image_manager.h"
#include "image_manager.h"
#include "myfilesystem.h"
#include "game.h"
#include "game.h"
#include "duelclient.h"
#include "duelclient.h"
#include <algorithm>
#include <algorithm>
...
@@ -60,68 +59,6 @@ static bool check_set_code(const CardDataC& data, int set_code) {
...
@@ -60,68 +59,6 @@ static bool check_set_code(const CardDataC& data, int set_code) {
return
res
;
return
res
;
}
}
inline
bool
havePopupWindow
()
{
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
)
{
mainGame
->
deckBuilder
.
readonly
=
catesel
<
2
;
mainGame
->
btnSaveDeck
->
setEnabled
(
!
mainGame
->
deckBuilder
.
readonly
);
mainGame
->
btnDeleteDeck
->
setEnabled
(
!
mainGame
->
deckBuilder
.
readonly
);
mainGame
->
btnRenameCategory
->
setEnabled
(
catesel
>
3
);
mainGame
->
btnDeleteCategory
->
setEnabled
(
catesel
>
3
);
mainGame
->
btnNewDeck
->
setEnabled
(
!
mainGame
->
deckBuilder
.
readonly
);
mainGame
->
btnRenameDeck
->
setEnabled
(
!
mainGame
->
deckBuilder
.
readonly
);
mainGame
->
btnDMDeleteDeck
->
setEnabled
(
!
mainGame
->
deckBuilder
.
readonly
);
mainGame
->
btnMoveDeck
->
setEnabled
(
!
mainGame
->
deckBuilder
.
readonly
);
}
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
);
refreshReadonly
(
mainGame
->
deckBuilder
.
prev_category
);
refreshDeckList
();
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
;
...
@@ -138,7 +75,7 @@ void DeckBuilder::Initialize() {
...
@@ -138,7 +75,7 @@ void DeckBuilder::Initialize() {
mainGame
->
btnSideSort
->
setVisible
(
false
);
mainGame
->
btnSideSort
->
setVisible
(
false
);
mainGame
->
btnSideReload
->
setVisible
(
false
);
mainGame
->
btnSideReload
->
setVisible
(
false
);
filterList
=
deckManager
.
_lfList
[
0
].
content
;
filterList
=
deckManager
.
_lfList
[
0
].
content
;
mainGame
->
cbLFList
->
setSelected
(
0
);
mainGame
->
cb
DB
LFList
->
setSelected
(
0
);
ClearSearch
();
ClearSearch
();
mouse_pos
.
set
(
0
,
0
);
mouse_pos
.
set
(
0
,
0
);
hovered_code
=
0
;
hovered_code
=
0
;
...
@@ -148,10 +85,6 @@ void DeckBuilder::Initialize() {
...
@@ -148,10 +85,6 @@ void DeckBuilder::Initialize() {
is_draging
=
false
;
is_draging
=
false
;
is_starting_dragging
=
false
;
is_starting_dragging
=
false
;
prev_deck
=
mainGame
->
cbDBDecks
->
getSelected
();
prev_deck
=
mainGame
->
cbDBDecks
->
getSelected
();
prev_category
=
mainGame
->
cbDBCategory
->
getSelected
();
readonly
=
prev_category
<
2
;
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
;
...
@@ -171,16 +104,15 @@ void DeckBuilder::Terminate() {
...
@@ -171,16 +104,15 @@ void DeckBuilder::Terminate() {
mainGame
->
device
->
setEventReceiver
(
&
mainGame
->
menuHandler
);
mainGame
->
device
->
setEventReceiver
(
&
mainGame
->
menuHandler
);
mainGame
->
wACMessage
->
setVisible
(
false
);
mainGame
->
wACMessage
->
setVisible
(
false
);
mainGame
->
ClearTextures
();
mainGame
->
ClearTextures
();
mainGame
->
SaveConfig
();
mainGame
->
scrFilter
->
setVisible
(
false
);
mainGame
->
scrFilter
->
setVisible
(
false
);
int
catesel
=
mainGame
->
cbDBCategory
->
getSelected
();
int
sel
=
mainGame
->
cbDBDecks
->
getSelected
();
if
(
catesel
>=
0
)
if
(
sel
>=
0
){
BufferIO
::
CopyWStr
(
mainGame
->
cbDBCategory
->
getItem
(
catesel
),
mainGame
->
gameConf
.
lastcategory
,
64
);
BufferIO
::
CopyWStr
(
mainGame
->
cbDBDecks
->
getItem
(
sel
),
mainGame
->
gameConf
.
lastdeck
,
64
);
int
decksel
=
mainGame
->
cbDBDecks
->
getSelected
();
char
linebuf
[
256
];
char
linebuf
[
256
];
if
(
decksel
>=
0
)
BufferIO
::
EncodeUTF8
(
mainGame
->
gameConf
.
lastdeck
,
linebuf
);
BufferIO
::
EncodeUTF8
(
mainGame
->
gameConf
.
lastdeck
,
linebuf
);
android
::
setLastDeck
(
mainGame
->
appMain
,
linebuf
);
android
::
setLastDeck
(
mainGame
->
appMain
,
linebuf
);
}
mainGame
->
SaveConfig
();
if
(
exit_on_return
)
if
(
exit_on_return
)
mainGame
->
device
->
closeDevice
();
mainGame
->
device
->
closeDevice
();
}
}
...
@@ -196,25 +128,13 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -196,25 +128,13 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
switch
(
event
.
EventType
)
{
switch
(
event
.
EventType
)
{
case
irr
:
:
EET_GUI_EVENT
:
{
case
irr
:
:
EET_GUI_EVENT
:
{
s32
id
=
event
.
GUIEvent
.
Caller
->
getID
();
s32
id
=
event
.
GUIEvent
.
Caller
->
getID
();
if
(((
mainGame
->
wCategories
->
isVisible
()
&&
id
!=
BUTTON_CATEGORY_OK
)
||
if
(
mainGame
->
wCategories
->
isVisible
()
&&
id
!=
BUTTON_CATEGORY_OK
)
(
mainGame
->
wQuery
->
isVisible
()
&&
id
!=
BUTTON_YES
&&
id
!=
BUTTON_NO
)
||
(
mainGame
->
wLinkMarks
->
isVisible
()
&&
id
!=
BUTTON_MARKERS_OK
)
||
(
mainGame
->
wDMQuery
->
isVisible
()
&&
id
!=
BUTTON_DM_OK
&&
id
!=
BUTTON_DM_CANCEL
)
||
(
mainGame
->
wDeckManage
->
isVisible
()
&&
!
(
id
>=
WINDOW_DECK_MANAGE
&&
id
<=
COMBOBOX_LFLIST
)))
&&
event
.
GUIEvent
.
EventType
!=
irr
::
gui
::
EGET_LISTBOX_CHANGED
&&
event
.
GUIEvent
.
EventType
!=
irr
::
gui
::
EGET_COMBO_BOX_CHANGED
)
{
if
(
mainGame
->
wDMQuery
->
isVisible
())
mainGame
->
wDMQuery
->
getParent
()
->
bringToFront
(
mainGame
->
wDMQuery
);
break
;
break
;
}
if
(
mainGame
->
wQuery
->
isVisible
()
&&
id
!=
BUTTON_YES
&&
id
!=
BUTTON_NO
)
switch
(
event
.
GUIEvent
.
EventType
)
{
case
irr
:
:
gui
::
EGET_ELEMENT_CLOSED
:
{
if
(
id
==
WINDOW_DECK_MANAGE
)
{
mainGame
->
HideElement
(
mainGame
->
wDeckManage
);
return
true
;
break
;
break
;
}
if
(
mainGame
->
wLinkMarks
->
isVisible
()
&&
id
!=
BUTTON_MARKERS_OK
)
}
break
;
switch
(
event
.
GUIEvent
.
EventType
)
{
case
irr
:
:
gui
::
EGET_BUTTON_CLICKED
:
{
case
irr
:
:
gui
::
EGET_BUTTON_CLICKED
:
{
switch
(
id
)
{
switch
(
id
)
{
case
BUTTON_CLEAR_DECK
:
{
case
BUTTON_CLEAR_DECK
:
{
...
@@ -240,11 +160,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -240,11 +160,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
}
}
case
BUTTON_SAVE_DECK
:
{
case
BUTTON_SAVE_DECK
:
{
int
sel
=
mainGame
->
cbDBDecks
->
getSelected
();
int
sel
=
mainGame
->
cbDBDecks
->
getSelected
();
if
(
sel
==
-
1
)
if
(
sel
>=
0
&&
deckManager
.
SaveDeck
(
deckManager
.
current_deck
,
mainGame
->
cbDBDecks
->
getItem
(
sel
)))
{
break
;
wchar_t
filepath
[
256
];
deckManager
.
GetDeckFile
(
filepath
,
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
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
;
...
@@ -269,11 +185,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -269,11 +185,7 @@ 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
);
}
}
wchar_t
catepath
[
256
];
if
(
deckManager
.
SaveDeck
(
deckManager
.
current_deck
,
dname
))
{
deckManager
.
GetCategoryPath
(
catepath
,
mainGame
->
cbDBCategory
->
getSelected
(),
mainGame
->
cbDBCategory
->
getText
());
wchar_t
filepath
[
256
];
myswprintf
(
filepath
,
L"%ls/%ls.ydk"
,
catepath
,
dname
);
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
;
...
@@ -281,6 +193,49 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -281,6 +193,49 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
}
}
break
;
break
;
}
}
case
BUTTON_RENAME_DECK
:
{
mainGame
->
soundEffectPlayer
->
doPressButton
();
int
sel
=
mainGame
->
cbDBDecks
->
getSelected
();
if
(
sel
==
-
1
)
break
;
mainGame
->
gMutex
.
Lock
();
mainGame
->
wRenameDeck
->
setText
(
dataManager
.
GetSysString
(
1362
));
mainGame
->
ebREName
->
setText
(
mainGame
->
cbDBDecks
->
getItem
(
sel
));
mainGame
->
PopupElement
(
mainGame
->
wRenameDeck
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
prev_sel
=
sel
;
break
;
}
case
BUTTON_RENAME_DECK_SAVE
:
{
mainGame
->
soundEffectPlayer
->
doSaveDeck
();
mainGame
->
HideElement
(
mainGame
->
wRenameDeck
);
if
(
prev_operation
==
BUTTON_RENAME_DECK
)
{
wchar_t
newname
[
256
];
BufferIO
::
CopyWStr
(
mainGame
->
ebREName
->
getText
(),
newname
,
256
);
if
(
wcsncasecmp
(
newname
+
wcslen
(
newname
)
-
4
,
L""
,
4
))
{
myswprintf
(
newname
,
L"%ls"
,
mainGame
->
ebREName
->
getText
());
}
if
(
DeckManager
::
RenameDeck
(
mainGame
->
cbDBDecks
->
getItem
(
prev_sel
),
newname
))
{
mainGame
->
RefreshDeck
(
mainGame
->
cbDBDecks
);
deckManager
.
LoadDeck
(
mainGame
->
cbDBDecks
->
getItem
(
prev_sel
));
mainGame
->
cbDBDecks
->
setSelected
(
prev_sel
);
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1335
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
}
else
{
mainGame
->
env
->
addMessageBox
(
L""
,
dataManager
.
GetSysString
(
1365
));
}
}
prev_operation
=
0
;
prev_sel
=
-
1
;
break
;
}
case
BUTTON_RENAME_DECK_CANCEL
:
{
mainGame
->
HideElement
(
mainGame
->
wRenameDeck
);
prev_operation
=
0
;
prev_sel
=
-
1
;
break
;
}
case
BUTTON_DELETE_DECK
:
{
case
BUTTON_DELETE_DECK
:
{
int
sel
=
mainGame
->
cbDBDecks
->
getSelected
();
int
sel
=
mainGame
->
cbDBDecks
->
getSelected
();
if
(
sel
==
-
1
)
if
(
sel
==
-
1
)
...
@@ -297,7 +252,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -297,7 +252,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
break
;
break
;
}
}
case
BUTTON_LEAVE_GAME
:
{
case
BUTTON_LEAVE_GAME
:
{
if
(
is_modified
&&
!
readonly
&&
!
mainGame
->
chkIgnoreDeckChanges
->
isChecked
())
{
if
(
is_modified
&&
!
mainGame
->
chkIgnoreDeckChanges
->
isChecked
())
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
370
*
mainGame
->
xScale
,
mainGame
->
textFont
,
dataManager
.
GetSysString
(
1356
));
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
370
*
mainGame
->
xScale
,
mainGame
->
textFont
,
dataManager
.
GetSysString
(
1356
));
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
...
@@ -337,373 +292,6 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -337,373 +292,6 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
InstantSearch
();
InstantSearch
();
break
;
break
;
}
}
case
BUTTON_MANAGE_DECK
:
{
if
(
is_modified
&&
!
readonly
&&
!
mainGame
->
chkIgnoreDeckChanges
->
isChecked
())
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
370
*
mainGame
->
xScale
,
mainGame
->
guiFont
,
dataManager
.
GetSysString
(
1356
));
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
break
;
}
showDeckManage
();
break
;
}
case
BUTTON_NEW_CATEGORY
:
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
stDMMessage
->
setText
(
dataManager
.
GetSysString
(
1469
));
mainGame
->
ebDMName
->
setVisible
(
true
);
mainGame
->
ebDMName
->
setText
(
L""
);
mainGame
->
PopupElement
(
mainGame
->
wDMQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
break
;
}
case
BUTTON_RENAME_CATEGORY
:
{
if
(
mainGame
->
lstCategories
->
getSelected
()
<
4
)
break
;
mainGame
->
gMutex
.
Lock
();
mainGame
->
stDMMessage
->
setText
(
dataManager
.
GetSysString
(
1469
));
mainGame
->
ebDMName
->
setVisible
(
true
);
mainGame
->
ebDMName
->
setText
(
L""
);
mainGame
->
PopupElement
(
mainGame
->
wDMQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
break
;
}
case
BUTTON_DELETE_CATEGORY
:
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
stDMMessage
->
setText
(
dataManager
.
GetSysString
(
1470
));
mainGame
->
stDMMessage2
->
setVisible
(
true
);
mainGame
->
stDMMessage2
->
setText
(
mainGame
->
lstCategories
->
getListItem
(
mainGame
->
lstCategories
->
getSelected
()));
mainGame
->
PopupElement
(
mainGame
->
wDMQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
break
;
}
case
BUTTON_NEW_DECK
:
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
stDMMessage
->
setText
(
dataManager
.
GetSysString
(
1471
));
mainGame
->
ebDMName
->
setVisible
(
true
);
mainGame
->
ebDMName
->
setText
(
L""
);
mainGame
->
PopupElement
(
mainGame
->
wDMQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
break
;
}
case
BUTTON_RENAME_DECK
:
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
stDMMessage
->
setText
(
dataManager
.
GetSysString
(
1471
));
mainGame
->
ebDMName
->
setVisible
(
true
);
mainGame
->
ebDMName
->
setText
(
L""
);
mainGame
->
PopupElement
(
mainGame
->
wDMQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
break
;
}
case
BUTTON_DELETE_DECK_DM
:
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
stDMMessage
->
setText
(
dataManager
.
GetSysString
(
1337
));
mainGame
->
stDMMessage2
->
setVisible
(
true
);
mainGame
->
stDMMessage2
->
setText
(
mainGame
->
lstDecks
->
getListItem
(
mainGame
->
lstDecks
->
getSelected
()));
mainGame
->
PopupElement
(
mainGame
->
wDMQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
break
;
}
case
BUTTON_MOVE_DECK
:
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
stDMMessage
->
setText
(
dataManager
.
GetSysString
(
1472
));
mainGame
->
cbDMCategory
->
setVisible
(
true
);
mainGame
->
cbDMCategory
->
clear
();
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
if
(
catesel
!=
2
)
mainGame
->
cbDMCategory
->
addItem
(
dataManager
.
GetSysString
(
1452
));
for
(
int
i
=
4
;
i
<
mainGame
->
lstCategories
->
getItemCount
();
i
++
)
{
if
(
i
!=
catesel
)
mainGame
->
cbDMCategory
->
addItem
(
mainGame
->
lstCategories
->
getListItem
(
i
));
}
mainGame
->
PopupElement
(
mainGame
->
wDMQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
break
;
}
case
BUTTON_COPY_DECK
:
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
stDMMessage
->
setText
(
dataManager
.
GetSysString
(
1473
));
mainGame
->
cbDMCategory
->
setVisible
(
true
);
mainGame
->
cbDMCategory
->
clear
();
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
if
(
catesel
!=
2
)
mainGame
->
cbDMCategory
->
addItem
(
dataManager
.
GetSysString
(
1452
));
for
(
int
i
=
4
;
i
<
mainGame
->
lstCategories
->
getItemCount
();
i
++
)
{
if
(
i
!=
catesel
)
mainGame
->
cbDMCategory
->
addItem
(
mainGame
->
lstCategories
->
getListItem
(
i
));
}
mainGame
->
PopupElement
(
mainGame
->
wDMQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
break
;
}
case
BUTTON_DM_OK
:
{
switch
(
prev_operation
)
{
case
BUTTON_NEW_CATEGORY
:
{
int
catesel
=
0
;
const
wchar_t
*
catename
=
mainGame
->
ebDMName
->
getText
();
if
(
deckManager
.
CreateCategory
(
catename
))
{
mainGame
->
cbDBCategory
->
addItem
(
catename
);
mainGame
->
lstCategories
->
addItem
(
catename
);
catesel
=
mainGame
->
lstCategories
->
getItemCount
()
-
1
;
}
else
{
for
(
int
i
=
3
;
i
<
mainGame
->
lstCategories
->
getItemCount
();
i
++
)
{
if
(
!
wcsncasecmp
(
mainGame
->
lstCategories
->
getListItem
(
i
),
catename
,
256
))
{
catesel
=
i
;
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1474
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
break
;
}
}
}
if
(
catesel
>
0
)
{
mainGame
->
lstCategories
->
setSelected
(
catesel
);
refreshDeckList
();
mainGame
->
lstDecks
->
setSelected
(
0
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
changeCategory
(
catesel
);
}
break
;
}
case
BUTTON_RENAME_CATEGORY
:
{
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
const
wchar_t
*
oldcatename
=
mainGame
->
lstCategories
->
getListItem
(
catesel
);
const
wchar_t
*
newcatename
=
mainGame
->
ebDMName
->
getText
();
if
(
deckManager
.
RenameCategory
(
oldcatename
,
newcatename
))
{
mainGame
->
cbDBCategory
->
removeItem
(
catesel
);
mainGame
->
cbDBCategory
->
addItem
(
newcatename
);
mainGame
->
lstCategories
->
removeItem
(
catesel
);
mainGame
->
lstCategories
->
addItem
(
newcatename
);
catesel
=
mainGame
->
lstCategories
->
getItemCount
()
-
1
;
}
else
{
catesel
=
0
;
for
(
int
i
=
3
;
i
<
mainGame
->
lstCategories
->
getItemCount
();
i
++
)
{
if
(
!
wcsncasecmp
(
mainGame
->
lstCategories
->
getListItem
(
i
),
newcatename
,
256
))
{
catesel
=
i
;
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1474
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
break
;
}
}
}
if
(
catesel
>
0
)
{
mainGame
->
lstCategories
->
setSelected
(
catesel
);
refreshDeckList
();
mainGame
->
lstDecks
->
setSelected
(
0
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
changeCategory
(
catesel
);
}
break
;
}
case
BUTTON_DELETE_CATEGORY
:
{
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
const
wchar_t
*
catename
=
mainGame
->
lstCategories
->
getListItem
(
catesel
);
if
(
deckManager
.
DeleteCategory
(
catename
))
{
mainGame
->
cbDBCategory
->
removeItem
(
catesel
);
mainGame
->
lstCategories
->
removeItem
(
catesel
);
catesel
=
2
;
mainGame
->
lstCategories
->
setSelected
(
catesel
);
refreshDeckList
();
mainGame
->
lstDecks
->
setSelected
(
0
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
changeCategory
(
catesel
);
}
else
{
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1476
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
}
break
;
}
case
BUTTON_NEW_DECK
:
{
const
wchar_t
*
deckname
=
mainGame
->
ebDMName
->
getText
();
wchar_t
catepath
[
256
];
deckManager
.
GetCategoryPath
(
catepath
,
mainGame
->
cbDBCategory
->
getSelected
(),
mainGame
->
cbDBCategory
->
getText
());
wchar_t
filepath
[
256
];
myswprintf
(
filepath
,
L"%ls/%ls.ydk"
,
catepath
,
deckname
);
bool
res
=
false
;
if
(
!
FileSystem
::
IsFileExists
(
filepath
))
{
deckManager
.
current_deck
.
main
.
clear
();
deckManager
.
current_deck
.
extra
.
clear
();
deckManager
.
current_deck
.
side
.
clear
();
res
=
deckManager
.
SaveDeck
(
deckManager
.
current_deck
,
filepath
);
refreshDeckList
();
changeCategory
(
mainGame
->
lstCategories
->
getSelected
());
}
for
(
int
i
=
0
;
i
<
mainGame
->
lstDecks
->
getItemCount
();
i
++
)
{
if
(
!
wcsncasecmp
(
mainGame
->
lstDecks
->
getListItem
(
i
),
deckname
,
256
))
{
deckManager
.
LoadDeck
(
filepath
);
prev_deck
=
i
;
mainGame
->
cbDBDecks
->
setSelected
(
prev_deck
);
mainGame
->
lstDecks
->
setSelected
(
prev_deck
);
if
(
!
res
)
{
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1475
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
}
break
;
}
}
break
;
}
case
BUTTON_RENAME_DECK
:
{
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
int
decksel
=
mainGame
->
lstDecks
->
getSelected
();
const
wchar_t
*
catename
=
mainGame
->
lstCategories
->
getListItem
(
catesel
);
wchar_t
oldfilepath
[
256
];
deckManager
.
GetDeckFile
(
oldfilepath
,
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
const
wchar_t
*
newdeckname
=
mainGame
->
ebDMName
->
getText
();
wchar_t
newfilepath
[
256
];
if
(
catesel
==
2
)
{
myswprintf
(
newfilepath
,
L"./deck/%ls.ydk"
,
newdeckname
);
}
else
{
myswprintf
(
newfilepath
,
L"./deck/%ls/%ls.ydk"
,
catename
,
newdeckname
);
}
bool
res
=
false
;
if
(
!
FileSystem
::
IsFileExists
(
newfilepath
))
{
res
=
FileSystem
::
Rename
(
oldfilepath
,
newfilepath
);
}
refreshDeckList
();
changeCategory
(
catesel
);
for
(
int
i
=
0
;
i
<
mainGame
->
lstDecks
->
getItemCount
();
i
++
)
{
if
(
!
wcsncasecmp
(
mainGame
->
lstDecks
->
getListItem
(
i
),
newdeckname
,
256
))
{
deckManager
.
LoadDeck
(
newfilepath
);
prev_deck
=
i
;
mainGame
->
cbDBDecks
->
setSelected
(
prev_deck
);
mainGame
->
lstDecks
->
setSelected
(
prev_deck
);
if
(
!
res
)
{
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1475
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
}
break
;
}
}
break
;
}
case
BUTTON_DELETE_DECK_DM
:
{
int
decksel
=
mainGame
->
lstDecks
->
getSelected
();
wchar_t
filepath
[
256
];
deckManager
.
GetDeckFile
(
filepath
,
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
if
(
deckManager
.
DeleteDeck
(
filepath
))
{
mainGame
->
lstDecks
->
removeItem
(
decksel
);
mainGame
->
cbDBDecks
->
removeItem
(
decksel
);
decksel
--
;
if
(
decksel
==
-
1
)
{
decksel
=
mainGame
->
lstDecks
->
getItemCount
()
-
1
;
}
if
(
decksel
!=
-
1
)
{
mainGame
->
lstDecks
->
setSelected
(
decksel
);
mainGame
->
cbDBDecks
->
setSelected
(
decksel
);
deckManager
.
LoadDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
}
prev_deck
=
decksel
;
}
else
{
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1476
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
}
break
;
}
case
BUTTON_MOVE_DECK
:
{
int
oldcatesel
=
mainGame
->
lstCategories
->
getSelected
();
int
newcatesel
=
mainGame
->
cbDMCategory
->
getSelected
();
int
decksel
=
mainGame
->
lstDecks
->
getSelected
();
const
wchar_t
*
newcatename
=
mainGame
->
cbDMCategory
->
getText
();
const
wchar_t
*
olddeckname
=
mainGame
->
lstDecks
->
getListItem
(
decksel
);
wchar_t
deckname
[
256
];
BufferIO
::
CopyWStr
(
olddeckname
,
deckname
,
256
);
wchar_t
oldfilepath
[
256
];
deckManager
.
GetDeckFile
(
oldfilepath
,
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
wchar_t
newfilepath
[
256
];
if
(
oldcatesel
!=
2
&&
newcatesel
==
0
)
{
myswprintf
(
newfilepath
,
L"./deck/%ls.ydk"
,
deckname
);
}
else
{
myswprintf
(
newfilepath
,
L"./deck/%ls/%ls.ydk"
,
newcatename
,
deckname
);
}
bool
res
=
false
;
if
(
!
FileSystem
::
IsFileExists
(
newfilepath
))
{
res
=
FileSystem
::
Rename
(
oldfilepath
,
newfilepath
);
}
mainGame
->
lstCategories
->
setSelected
(
newcatename
);
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
refreshDeckList
();
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
changeCategory
(
catesel
);
for
(
int
i
=
0
;
i
<
mainGame
->
lstDecks
->
getItemCount
();
i
++
)
{
if
(
!
wcsncasecmp
(
mainGame
->
lstDecks
->
getListItem
(
i
),
deckname
,
256
))
{
deckManager
.
LoadDeck
(
newfilepath
);
prev_deck
=
i
;
mainGame
->
cbDBDecks
->
setSelected
(
prev_deck
);
mainGame
->
lstDecks
->
setSelected
(
prev_deck
);
if
(
!
res
)
{
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1475
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
}
break
;
}
}
break
;
}
case
BUTTON_COPY_DECK
:
{
int
oldcatesel
=
mainGame
->
lstCategories
->
getSelected
();
int
newcatesel
=
mainGame
->
cbDMCategory
->
getSelected
();
int
decksel
=
mainGame
->
lstDecks
->
getSelected
();
const
wchar_t
*
newcatename
=
mainGame
->
cbDMCategory
->
getText
();
const
wchar_t
*
olddeckname
=
mainGame
->
lstDecks
->
getListItem
(
decksel
);
wchar_t
deckname
[
256
];
BufferIO
::
CopyWStr
(
olddeckname
,
deckname
,
256
);
wchar_t
newfilepath
[
256
];
if
(
oldcatesel
!=
2
&&
newcatesel
==
0
)
{
myswprintf
(
newfilepath
,
L"./deck/%ls.ydk"
,
deckname
);
}
else
{
myswprintf
(
newfilepath
,
L"./deck/%ls/%ls.ydk"
,
newcatename
,
deckname
);
}
bool
res
=
false
;
if
(
!
FileSystem
::
IsFileExists
(
newfilepath
))
{
res
=
deckManager
.
SaveDeck
(
deckManager
.
current_deck
,
newfilepath
);
}
mainGame
->
lstCategories
->
setSelected
(
newcatename
);
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
refreshDeckList
();
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
changeCategory
(
catesel
);
for
(
int
i
=
0
;
i
<
mainGame
->
lstDecks
->
getItemCount
();
i
++
)
{
if
(
!
wcsncasecmp
(
mainGame
->
lstDecks
->
getListItem
(
i
),
deckname
,
256
))
{
deckManager
.
LoadDeck
(
newfilepath
);
prev_deck
=
i
;
mainGame
->
cbDBDecks
->
setSelected
(
prev_deck
);
mainGame
->
lstDecks
->
setSelected
(
prev_deck
);
if
(
!
res
)
{
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1475
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
}
break
;
}
}
break
;
}
default:
break
;
}
prev_operation
=
0
;
mainGame
->
HideElement
(
mainGame
->
wDMQuery
);
mainGame
->
stDMMessage2
->
setVisible
(
false
);
mainGame
->
ebDMName
->
setVisible
(
false
);
mainGame
->
cbDMCategory
->
setVisible
(
false
);
break
;
}
case
BUTTON_DM_CANCEL
:
{
mainGame
->
HideElement
(
mainGame
->
wDMQuery
);
mainGame
->
stDMMessage2
->
setVisible
(
false
);
mainGame
->
ebDMName
->
setVisible
(
false
);
mainGame
->
cbDMCategory
->
setVisible
(
false
);
break
;
}
case
BUTTON_SIDE_OK
:
{
case
BUTTON_SIDE_OK
:
{
mainGame
->
soundEffectPlayer
->
doPressButton
();
mainGame
->
soundEffectPlayer
->
doPressButton
();
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
...
@@ -726,7 +314,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -726,7 +314,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
break
;
break
;
}
}
case
BUTTON_SIDE_RELOAD
:
{
case
BUTTON_SIDE_RELOAD
:
{
deckManager
.
LoadDeck
(
mainGame
->
cb
CategorySelect
,
mainGame
->
cbDeckSelect
);
deckManager
.
LoadDeck
(
mainGame
->
cb
DeckSelect
->
getItem
(
mainGame
->
cbDeckSelect
->
getSelected
())
);
break
;
break
;
}
}
case
BUTTON_MSG_OK
:
{
case
BUTTON_MSG_OK
:
{
...
@@ -745,17 +333,14 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -745,17 +333,14 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
deckManager
.
current_deck
.
side
.
clear
();
deckManager
.
current_deck
.
side
.
clear
();
}
else
if
(
prev_operation
==
BUTTON_DELETE_DECK
)
{
}
else
if
(
prev_operation
==
BUTTON_DELETE_DECK
)
{
int
sel
=
prev_sel
;
int
sel
=
prev_sel
;
mainGame
->
cbDBDecks
->
setSelected
(
sel
);
if
(
deckManager
.
DeleteDeck
(
deckManager
.
current_deck
,
mainGame
->
cbDBDecks
->
getItem
(
sel
)))
{
wchar_t
filepath
[
256
];
deckManager
.
GetDeckFile
(
filepath
,
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
if
(
deckManager
.
DeleteDeck
(
filepath
))
{
mainGame
->
cbDBDecks
->
removeItem
(
sel
);
mainGame
->
cbDBDecks
->
removeItem
(
sel
);
int
count
=
mainGame
->
cbDBDecks
->
getItemCount
();
int
count
=
mainGame
->
cbDBDecks
->
getItemCount
();
if
(
sel
>=
count
)
if
(
sel
>=
count
)
sel
=
count
-
1
;
sel
=
count
-
1
;
mainGame
->
cbDBDecks
->
setSelected
(
sel
);
mainGame
->
cbDBDecks
->
setSelected
(
sel
);
if
(
sel
!=
-
1
)
if
(
sel
!=
-
1
)
deckManager
.
LoadDeck
(
mainGame
->
cbDB
Category
,
mainGame
->
cbDBDecks
);
deckManager
.
LoadDeck
(
mainGame
->
cbDB
Decks
->
getItem
(
sel
)
);
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1338
));
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1338
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
prev_deck
=
sel
;
prev_deck
=
sel
;
...
@@ -764,16 +349,11 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -764,16 +349,11 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
prev_sel
=
-
1
;
prev_sel
=
-
1
;
}
else
if
(
prev_operation
==
BUTTON_LEAVE_GAME
)
{
}
else
if
(
prev_operation
==
BUTTON_LEAVE_GAME
)
{
Terminate
();
Terminate
();
}
else
if
(
prev_operation
==
COMBOBOX_DBCATEGORY
)
{
int
catesel
=
mainGame
->
cbDBCategory
->
getSelected
();
changeCategory
(
catesel
);
}
else
if
(
prev_operation
==
COMBOBOX_DBDECKS
)
{
}
else
if
(
prev_operation
==
COMBOBOX_DBDECKS
)
{
int
deck
sel
=
mainGame
->
cbDBDecks
->
getSelected
();
int
sel
=
mainGame
->
cbDBDecks
->
getSelected
();
deckManager
.
LoadDeck
(
mainGame
->
cbDB
Category
,
mainGame
->
cbDBDecks
);
deckManager
.
LoadDeck
(
mainGame
->
cbDB
Decks
->
getItem
(
sel
)
);
prev_deck
=
deck
sel
;
prev_deck
=
sel
;
is_modified
=
false
;
is_modified
=
false
;
}
else
if
(
prev_operation
==
BUTTON_MANAGE_DECK
)
{
showDeckManage
();
}
}
prev_operation
=
0
;
prev_operation
=
0
;
break
;
break
;
...
@@ -781,10 +361,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -781,10 +361,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
case
BUTTON_NO
:
{
case
BUTTON_NO
:
{
mainGame
->
soundEffectPlayer
->
doPressButton
();
mainGame
->
soundEffectPlayer
->
doPressButton
();
mainGame
->
HideElement
(
mainGame
->
wQuery
);
mainGame
->
HideElement
(
mainGame
->
wQuery
);
if
(
prev_operation
==
COMBOBOX_DBCATEGORY
)
{
if
(
prev_operation
==
COMBOBOX_DBDECKS
)
{
mainGame
->
cbDBCategory
->
setSelected
(
prev_category
);
}
else
if
(
prev_operation
==
COMBOBOX_DBDECKS
)
{
mainGame
->
cbDBDecks
->
setSelected
(
prev_deck
);
mainGame
->
cbDBDecks
->
setSelected
(
prev_deck
);
}
}
prev_operation
=
0
;
prev_operation
=
0
;
...
@@ -849,39 +426,12 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -849,39 +426,12 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
}
}
case
irr
:
:
gui
::
EGET_COMBO_BOX_CHANGED
:
{
case
irr
:
:
gui
::
EGET_COMBO_BOX_CHANGED
:
{
switch
(
id
)
{
switch
(
id
)
{
case
COMBOBOX_LFLIST
:
{
case
COMBOBOX_DBLFLIST
:
{
filterList
=
deckManager
.
_lfList
[
mainGame
->
cbLFList
->
getSelected
()].
content
;
filterList
=
deckManager
.
_lfList
[
mainGame
->
cbDBLFList
->
getSelected
()].
content
;
break
;
}
case
COMBOBOX_DBCATEGORY
:
{
if
(
havePopupWindow
())
{
mainGame
->
cbDBCategory
->
setSelected
(
prev_category
);
break
;
}
int
catesel
=
mainGame
->
cbDBCategory
->
getSelected
();
if
(
catesel
==
3
)
{
catesel
=
2
;
mainGame
->
cbDBCategory
->
setSelected
(
2
);
if
(
prev_category
==
2
)
break
;
}
if
(
is_modified
&&
!
readonly
&&
!
mainGame
->
chkIgnoreDeckChanges
->
isChecked
())
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
370
*
mainGame
->
xScale
,
mainGame
->
guiFont
,
dataManager
.
GetSysString
(
1356
));
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
mainGame
->
gMutex
.
Unlock
();
prev_operation
=
id
;
break
;
}
changeCategory
(
catesel
);
break
;
break
;
}
}
case
COMBOBOX_DBDECKS
:
{
case
COMBOBOX_DBDECKS
:
{
if
(
havePopupWindow
())
{
if
(
is_modified
&&
!
mainGame
->
chkIgnoreDeckChanges
->
isChecked
())
{
mainGame
->
cbDBDecks
->
setSelected
(
prev_deck
);
break
;
}
if
(
is_modified
&&
!
readonly
&&
!
mainGame
->
chkIgnoreDeckChanges
->
isChecked
())
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
370
*
mainGame
->
xScale
,
mainGame
->
textFont
,
dataManager
.
GetSysString
(
1356
));
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
370
*
mainGame
->
xScale
,
mainGame
->
textFont
,
dataManager
.
GetSysString
(
1356
));
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
...
@@ -889,11 +439,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -889,11 +439,10 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
prev_operation
=
id
;
prev_operation
=
id
;
break
;
break
;
}
}
int
decksel
=
mainGame
->
cbDBDecks
->
getSelected
();
int
sel
=
mainGame
->
cbDBDecks
->
getSelected
();
if
(
decksel
>=
0
)
{
if
(
sel
>=
0
)
deckManager
.
LoadDeck
(
mainGame
->
cbDBCategory
,
mainGame
->
cbDBDecks
);
deckManager
.
LoadDeck
(
mainGame
->
cbDBDecks
->
getItem
(
sel
));
}
prev_deck
=
sel
;
prev_deck
=
decksel
;
is_modified
=
false
;
is_modified
=
false
;
break
;
break
;
}
}
...
@@ -1013,46 +562,6 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -1013,46 +562,6 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
InstantSearch
();
InstantSearch
();
}
}
}
}
case
irr
:
:
gui
::
EGET_LISTBOX_CHANGED
:
{
switch
(
id
)
{
case
LISTBOX_CATEGORIES
:
{
if
(
mainGame
->
wDMQuery
->
isVisible
())
{
mainGame
->
lstCategories
->
setSelected
(
prev_category
);
break
;
}
int
catesel
=
mainGame
->
lstCategories
->
getSelected
();
if
(
catesel
==
3
)
{
catesel
=
2
;
mainGame
->
lstCategories
->
setSelected
(
catesel
);
if
(
prev_category
==
catesel
)
break
;
}
refreshDeckList
();
mainGame
->
lstDecks
->
setSelected
(
0
);
mainGame
->
cbDBCategory
->
setSelected
(
catesel
);
changeCategory
(
catesel
);
break
;
}
case
LISTBOX_DECKS
:
{
if
(
mainGame
->
wDMQuery
->
isVisible
())
{
mainGame
->
lstDecks
->
setSelected
(
prev_deck
);
break
;
}
int
decksel
=
mainGame
->
lstDecks
->
getSelected
();
mainGame
->
cbDBDecks
->
setSelected
(
decksel
);
if
(
decksel
==
-
1
)
break
;
wchar_t
filepath
[
256
];
wchar_t
catepath
[
256
];
deckManager
.
GetCategoryPath
(
catepath
,
mainGame
->
lstCategories
->
getSelected
(),
mainGame
->
lstCategories
->
getListItem
(
mainGame
->
lstCategories
->
getSelected
()));
myswprintf
(
filepath
,
L"%ls/%ls.ydk"
,
catepath
,
mainGame
->
lstDecks
->
getListItem
(
decksel
));
deckManager
.
LoadDeck
(
filepath
);
prev_deck
=
decksel
;
break
;
}
}
break
;
}
default:
break
;
default:
break
;
}
}
break
;
break
;
...
@@ -1063,7 +572,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -1063,7 +572,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
irr
::
gui
::
IGUIElement
*
root
=
mainGame
->
env
->
getRootGUIElement
();
irr
::
gui
::
IGUIElement
*
root
=
mainGame
->
env
->
getRootGUIElement
();
if
(
root
->
getElementFromPoint
(
mouse_pos
)
!=
root
)
if
(
root
->
getElementFromPoint
(
mouse_pos
)
!=
root
)
break
;
break
;
if
(
havePopupWindow
())
if
(
mainGame
->
wCategories
->
isVisible
()
||
mainGame
->
wQuery
->
isVisible
())
break
;
break
;
if
(
hovered_pos
==
0
||
hovered_seq
==
-
1
)
if
(
hovered_pos
==
0
||
hovered_seq
==
-
1
)
break
;
break
;
...
@@ -1125,7 +634,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -1125,7 +634,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
}
}
break
;
break
;
}
}
if
(
havePopupWindow
())
if
(
mainGame
->
wCategories
->
isVisible
()
||
mainGame
->
wQuery
->
isVisible
())
break
;
break
;
if
(
!
is_draging
)
{
if
(
!
is_draging
)
{
if
(
hovered_pos
==
0
||
hovered_seq
==
-
1
)
if
(
hovered_pos
==
0
||
hovered_seq
==
-
1
)
...
@@ -1163,7 +672,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -1163,7 +672,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
case
irr
:
:
EMIE_MMOUSE_LEFT_UP
:
{
case
irr
:
:
EMIE_MMOUSE_LEFT_UP
:
{
if
(
mainGame
->
is_siding
)
if
(
mainGame
->
is_siding
)
break
;
break
;
if
(
havePopupWindow
())
if
(
mainGame
->
wCategories
->
isVisible
()
||
mainGame
->
wQuery
->
isVisible
())
break
;
break
;
if
(
hovered_pos
==
0
||
hovered_seq
==
-
1
)
if
(
hovered_pos
==
0
||
hovered_seq
==
-
1
)
break
;
break
;
...
...
Classes/gframe/deck_con.h
View file @
3c0f01d5
...
@@ -66,12 +66,10 @@ public:
...
@@ -66,12 +66,10 @@ public:
size_t
pre_extrac
;
size_t
pre_extrac
;
size_t
pre_sidec
;
size_t
pre_sidec
;
code_pointer
draging_pointer
;
code_pointer
draging_pointer
;
int
prev_category
;
int
prev_deck
;
int
prev_deck
;
s32
prev_operation
;
s32
prev_operation
;
int
prev_sel
;
int
prev_sel
;
bool
is_modified
;
bool
is_modified
;
bool
readonly
;
std
::
unordered_map
<
int
,
int
>*
filterList
;
std
::
unordered_map
<
int
,
int
>*
filterList
;
std
::
vector
<
code_pointer
>
results
;
std
::
vector
<
code_pointer
>
results
;
...
...
Classes/gframe/deck_manager.cpp
View file @
3c0f01d5
...
@@ -8,7 +8,7 @@ namespace ygo {
...
@@ -8,7 +8,7 @@ namespace ygo {
DeckManager
deckManager
;
DeckManager
deckManager
;
void
DeckManager
::
LoadLFList
Single
(
const
char
*
path
)
{
void
DeckManager
::
LoadLFList
(
const
char
*
path
,
bool
load_none
)
{
LFList
*
cur
=
NULL
;
LFList
*
cur
=
NULL
;
FILE
*
fp
=
fopen
(
path
,
"r"
);
FILE
*
fp
=
fopen
(
path
,
"r"
);
char
linebuf
[
256
];
char
linebuf
[
256
];
...
@@ -24,7 +24,7 @@ void DeckManager::LoadLFListSingle(const char* path) {
...
@@ -24,7 +24,7 @@ void DeckManager::LoadLFListSingle(const char* path) {
LFList
newlist
;
LFList
newlist
;
_lfList
.
push_back
(
newlist
);
_lfList
.
push_back
(
newlist
);
cur
=
&
_lfList
[
_lfList
.
size
()
-
1
];
cur
=
&
_lfList
[
_lfList
.
size
()
-
1
];
memcpy
(
cur
->
listName
,
(
const
void
*
)
strBuffer
,
20
*
sizeof
(
wchar_t
)
);
memcpy
(
cur
->
listName
,
(
const
void
*
)
strBuffer
,
40
);
cur
->
listName
[
sa
]
=
0
;
cur
->
listName
[
sa
]
=
0
;
cur
->
content
=
new
std
::
unordered_map
<
int
,
int
>
;
cur
->
content
=
new
std
::
unordered_map
<
int
,
int
>
;
cur
->
hash
=
0x7dfcee6a
;
cur
->
hash
=
0x7dfcee6a
;
...
@@ -48,16 +48,31 @@ void DeckManager::LoadLFListSingle(const char* path) {
...
@@ -48,16 +48,31 @@ void DeckManager::LoadLFListSingle(const char* path) {
}
}
fclose
(
fp
);
fclose
(
fp
);
}
}
}
if
(
!
load_none
)
void
DeckManager
::
LoadLFList
()
{
return
;
LoadLFListSingle
(
"expansions/lflist.conf"
);
LoadLFListSingle
(
"lflist.conf"
);
LFList
nolimit
;
LFList
nolimit
;
myswprintf
(
nolimit
.
listName
,
L"N/A"
);
myswprintf
(
nolimit
.
listName
,
L"N/A"
);
nolimit
.
hash
=
0
;
nolimit
.
hash
=
0
;
nolimit
.
content
=
new
std
::
unordered_map
<
int
,
int
>
;
nolimit
.
content
=
new
std
::
unordered_map
<
int
,
int
>
;
_lfList
.
push_back
(
nolimit
);
_lfList
.
push_back
(
nolimit
);
}
}
bool
DeckManager
::
RenameDeck
(
const
wchar_t
*
oldname
,
const
wchar_t
*
newname
)
{
wchar_t
oldfname
[
256
];
wchar_t
newfname
[
256
];
myswprintf
(
oldfname
,
L"./deck/%ls.ydk"
,
oldname
);
myswprintf
(
newfname
,
L"./deck/%ls.ydk"
,
newname
);
#ifdef WIN32
BOOL
result
=
MoveFileW
(
oldfname
,
newfname
);
return
!!
result
;
#else
char
oldfilefn
[
256
];
char
newfilefn
[
256
];
BufferIO
::
EncodeUTF8
(
oldfname
,
oldfilefn
);
BufferIO
::
EncodeUTF8
(
newfname
,
newfilefn
);
int
result
=
rename
(
oldfilefn
,
newfilefn
);
return
result
==
0
;
#endif
}
wchar_t
*
DeckManager
::
GetLFListName
(
int
lfhash
)
{
wchar_t
*
DeckManager
::
GetLFListName
(
int
lfhash
)
{
for
(
size_t
i
=
0
;
i
<
_lfList
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
_lfList
.
size
();
++
i
)
{
if
(
_lfList
[
i
].
hash
==
(
unsigned
int
)
lfhash
)
{
if
(
_lfList
[
i
].
hash
==
(
unsigned
int
)
lfhash
)
{
...
@@ -191,37 +206,6 @@ bool DeckManager::LoadSide(Deck& deck, int* dbuf, int mainc, int sidec) {
...
@@ -191,37 +206,6 @@ bool DeckManager::LoadSide(Deck& deck, int* dbuf, int mainc, int sidec) {
deck
=
ndeck
;
deck
=
ndeck
;
return
true
;
return
true
;
}
}
void
DeckManager
::
GetCategoryPath
(
wchar_t
*
ret
,
int
index
,
const
wchar_t
*
text
)
{
wchar_t
catepath
[
256
];
switch
(
index
)
{
case
0
:
myswprintf
(
catepath
,
L"./pack"
);
break
;
case
1
:
myswprintf
(
catepath
,
mainGame
->
gameConf
.
bot_deck_path
);
break
;
case
-
1
:
case
2
:
case
3
:
myswprintf
(
catepath
,
L"./deck"
);
break
;
default:
myswprintf
(
catepath
,
L"./deck/%ls"
,
text
);
}
BufferIO
::
CopyWStr
(
catepath
,
ret
,
256
);
}
void
DeckManager
::
GetDeckFile
(
wchar_t
*
ret
,
irr
::
gui
::
IGUIComboBox
*
cbCategory
,
irr
::
gui
::
IGUIComboBox
*
cbDeck
)
{
wchar_t
filepath
[
256
];
wchar_t
catepath
[
256
];
GetCategoryPath
(
catepath
,
cbCategory
->
getSelected
(),
cbCategory
->
getText
());
myswprintf
(
filepath
,
L"%ls/%ls.ydk"
,
catepath
,
cbDeck
->
getItem
(
cbDeck
->
getSelected
()));
BufferIO
::
CopyWStr
(
filepath
,
ret
,
256
);
}
bool
DeckManager
::
LoadDeck
(
irr
::
gui
::
IGUIComboBox
*
cbCategory
,
irr
::
gui
::
IGUIComboBox
*
cbDeck
)
{
wchar_t
filepath
[
256
];
GetDeckFile
(
filepath
,
cbCategory
,
cbDeck
);
return
LoadDeck
(
filepath
);
}
FILE
*
DeckManager
::
OpenDeckFile
(
const
wchar_t
*
file
,
const
char
*
mode
)
{
FILE
*
DeckManager
::
OpenDeckFile
(
const
wchar_t
*
file
,
const
char
*
mode
)
{
#ifdef WIN32
#ifdef WIN32
FILE
*
fp
=
_wfopen
(
file
,
(
wchar_t
*
)
mode
);
FILE
*
fp
=
_wfopen
(
file
,
(
wchar_t
*
)
mode
);
...
@@ -234,11 +218,11 @@ FILE* DeckManager::OpenDeckFile(const wchar_t* file, const char* mode) {
...
@@ -234,11 +218,11 @@ FILE* DeckManager::OpenDeckFile(const wchar_t* file, const char* mode) {
}
}
bool
DeckManager
::
LoadDeck
(
const
wchar_t
*
file
)
{
bool
DeckManager
::
LoadDeck
(
const
wchar_t
*
file
)
{
int
sp
=
0
,
ct
=
0
,
mainc
=
0
,
sidec
=
0
,
code
;
int
sp
=
0
,
ct
=
0
,
mainc
=
0
,
sidec
=
0
,
code
;
FILE
*
fp
=
OpenDeckFile
(
file
,
"r"
);
if
(
!
fp
)
{
wchar_t
localfile
[
64
];
wchar_t
localfile
[
64
];
myswprintf
(
localfile
,
L"./deck/%ls.ydk"
,
file
);
myswprintf
(
localfile
,
L"./deck/%ls.ydk"
,
file
);
fp
=
OpenDeckFile
(
localfile
,
"r"
);
FILE
*
fp
=
OpenDeckFile
(
localfile
,
"r"
);
if
(
!
fp
)
{
fp
=
OpenDeckFile
(
file
,
"r"
);
}
}
if
(
!
fp
)
if
(
!
fp
)
return
false
;
return
false
;
...
@@ -264,9 +248,9 @@ bool DeckManager::LoadDeck(const wchar_t* file) {
...
@@ -264,9 +248,9 @@ bool DeckManager::LoadDeck(const wchar_t* file) {
LoadDeck
(
current_deck
,
cardlist
,
mainc
,
sidec
);
LoadDeck
(
current_deck
,
cardlist
,
mainc
,
sidec
);
return
true
;
return
true
;
}
}
bool
DeckManager
::
SaveDeck
(
Deck
&
deck
,
const
wchar_t
*
fil
e
)
{
bool
DeckManager
::
SaveDeck
(
Deck
&
deck
,
const
wchar_t
*
nam
e
)
{
if
(
!
FileSystem
::
IsDirExists
(
L"./deck"
)
&&
!
FileSystem
::
MakeDir
(
L"./deck"
))
wchar_t
file
[
64
];
return
false
;
myswprintf
(
file
,
L"./deck/%ls.ydk"
,
name
)
;
FILE
*
fp
=
OpenDeckFile
(
file
,
"w"
);
FILE
*
fp
=
OpenDeckFile
(
file
,
"w"
);
if
(
!
fp
)
if
(
!
fp
)
return
false
;
return
false
;
...
@@ -282,7 +266,9 @@ bool DeckManager::SaveDeck(Deck& deck, const wchar_t* file) {
...
@@ -282,7 +266,9 @@ bool DeckManager::SaveDeck(Deck& deck, const wchar_t* file) {
fclose
(
fp
);
fclose
(
fp
);
return
true
;
return
true
;
}
}
bool
DeckManager
::
DeleteDeck
(
const
wchar_t
*
file
)
{
bool
DeckManager
::
DeleteDeck
(
Deck
&
deck
,
const
wchar_t
*
name
)
{
wchar_t
file
[
64
];
myswprintf
(
file
,
L"./deck/%ls.ydk"
,
name
);
#ifdef WIN32
#ifdef WIN32
BOOL
result
=
DeleteFileW
(
file
);
BOOL
result
=
DeleteFileW
(
file
);
return
!!
result
;
return
!!
result
;
...
@@ -293,31 +279,13 @@ bool DeckManager::DeleteDeck(const wchar_t* file) {
...
@@ -293,31 +279,13 @@ bool DeckManager::DeleteDeck(const wchar_t* file) {
return
result
==
0
;
return
result
==
0
;
#endif
#endif
}
}
bool
DeckManager
::
CreateCategory
(
const
wchar_t
*
name
)
{
int
DeckManager
::
TypeCount
(
std
::
vector
<
code_pointer
>
list
,
unsigned
int
ctype
)
{
if
(
!
FileSystem
::
IsDirExists
(
L"./deck"
)
&&
!
FileSystem
::
MakeDir
(
L"./deck"
))
int
res
=
0
;
return
false
;
for
(
size_t
i
=
0
;
i
<
list
.
size
();
++
i
)
{
if
(
name
[
0
]
==
0
)
code_pointer
cur
=
list
[
i
];
return
false
;
if
(
cur
->
second
.
type
&
ctype
)
wchar_t
localname
[
256
];
res
++
;
myswprintf
(
localname
,
L"./deck/%ls"
,
name
);
}
return
FileSystem
::
MakeDir
(
localname
);
return
res
;
}
bool
DeckManager
::
RenameCategory
(
const
wchar_t
*
oldname
,
const
wchar_t
*
newname
)
{
if
(
!
FileSystem
::
IsDirExists
(
L"./deck"
)
&&
!
FileSystem
::
MakeDir
(
L"./deck"
))
return
false
;
if
(
newname
[
0
]
==
0
)
return
false
;
wchar_t
oldlocalname
[
256
];
wchar_t
newlocalname
[
256
];
myswprintf
(
oldlocalname
,
L"./deck/%ls"
,
oldname
);
myswprintf
(
newlocalname
,
L"./deck/%ls"
,
newname
);
return
FileSystem
::
Rename
(
oldlocalname
,
newlocalname
);
}
bool
DeckManager
::
DeleteCategory
(
const
wchar_t
*
name
)
{
wchar_t
localname
[
256
];
myswprintf
(
localname
,
L"./deck/%ls"
,
name
);
if
(
!
FileSystem
::
IsDirExists
(
localname
))
return
false
;
return
FileSystem
::
DeleteDir
(
localname
);
}
}
}
}
Classes/gframe/deck_manager.h
View file @
3c0f01d5
...
@@ -35,22 +35,17 @@ public:
...
@@ -35,22 +35,17 @@ public:
Deck
current_deck
;
Deck
current_deck
;
std
::
vector
<
LFList
>
_lfList
;
std
::
vector
<
LFList
>
_lfList
;
void
LoadLFListSingle
(
const
char
*
path
);
void
LoadLFList
(
const
char
*
path
,
bool
load_none
);
void
LoadLFList
();
wchar_t
*
GetLFListName
(
int
lfhash
);
wchar_t
*
GetLFListName
(
int
lfhash
);
int
CheckDeck
(
Deck
&
deck
,
int
lfhash
,
bool
allow_ocg
,
bool
allow_tcg
);
int
CheckDeck
(
Deck
&
deck
,
int
lfhash
,
bool
allow_ocg
,
bool
allow_tcg
);
int
LoadDeck
(
Deck
&
deck
,
int
*
dbuf
,
int
mainc
,
int
sidec
);
int
LoadDeck
(
Deck
&
deck
,
int
*
dbuf
,
int
mainc
,
int
sidec
);
bool
LoadSide
(
Deck
&
deck
,
int
*
dbuf
,
int
mainc
,
int
sidec
);
bool
LoadSide
(
Deck
&
deck
,
int
*
dbuf
,
int
mainc
,
int
sidec
);
void
GetCategoryPath
(
wchar_t
*
ret
,
int
index
,
const
wchar_t
*
text
);
void
GetDeckFile
(
wchar_t
*
ret
,
irr
::
gui
::
IGUIComboBox
*
cbCategory
,
irr
::
gui
::
IGUIComboBox
*
cbDeck
);
bool
LoadDeck
(
irr
::
gui
::
IGUIComboBox
*
cbCategory
,
irr
::
gui
::
IGUIComboBox
*
cbDeck
);
FILE
*
OpenDeckFile
(
const
wchar_t
*
file
,
const
char
*
mode
);
FILE
*
OpenDeckFile
(
const
wchar_t
*
file
,
const
char
*
mode
);
bool
LoadDeck
(
const
wchar_t
*
file
);
bool
LoadDeck
(
const
wchar_t
*
file
);
bool
SaveDeck
(
Deck
&
deck
,
const
wchar_t
*
file
);
bool
SaveDeck
(
Deck
&
deck
,
const
wchar_t
*
name
);
bool
DeleteDeck
(
const
wchar_t
*
file
);
bool
DeleteDeck
(
Deck
&
deck
,
const
wchar_t
*
name
);
bool
CreateCategory
(
const
wchar_t
*
name
);
static
bool
RenameDeck
(
const
wchar_t
*
oldname
,
const
wchar_t
*
newname
);
bool
RenameCategory
(
const
wchar_t
*
oldname
,
const
wchar_t
*
newname
);
int
TypeCount
(
std
::
vector
<
code_pointer
>
list
,
unsigned
int
ctype
);
bool
DeleteCategory
(
const
wchar_t
*
name
);
};
};
extern
DeckManager
deckManager
;
extern
DeckManager
deckManager
;
...
...
Classes/gframe/duelclient.cpp
View file @
3c0f01d5
...
@@ -304,7 +304,6 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
...
@@ -304,7 +304,6 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
}
}
}
}
mainGame
->
env
->
addMessageBox
(
L""
,
msgbuf
);
mainGame
->
env
->
addMessageBox
(
L""
,
msgbuf
);
mainGame
->
cbCategorySelect
->
setEnabled
(
true
);
mainGame
->
cbDeckSelect
->
setEnabled
(
true
);
mainGame
->
cbDeckSelect
->
setEnabled
(
true
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
gMutex
.
Unlock
();
break
;
break
;
...
@@ -468,8 +467,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
...
@@ -468,8 +467,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
stHostPrepDuelist
[
3
]
->
setText
(
L""
);
mainGame
->
stHostPrepDuelist
[
3
]
->
setText
(
L""
);
mainGame
->
stHostPrepOB
->
setText
(
L""
);
mainGame
->
stHostPrepOB
->
setText
(
L""
);
mainGame
->
SetStaticText
(
mainGame
->
stHostPrepRule
,
180
*
mainGame
->
xScale
,
mainGame
->
guiFont
,
str
.
c_str
());
mainGame
->
SetStaticText
(
mainGame
->
stHostPrepRule
,
180
*
mainGame
->
xScale
,
mainGame
->
guiFont
,
str
.
c_str
());
mainGame
->
RefreshCategoryDeck
(
mainGame
->
cbCategorySelect
,
mainGame
->
cbDeckSelect
);
mainGame
->
RefreshDeck
(
mainGame
->
cbDeckSelect
);
mainGame
->
cbCategorySelect
->
setEnabled
(
true
);
mainGame
->
cbDeckSelect
->
setEnabled
(
true
);
mainGame
->
cbDeckSelect
->
setEnabled
(
true
);
if
(
mainGame
->
wCreateHost
->
isVisible
())
if
(
mainGame
->
wCreateHost
->
isVisible
())
mainGame
->
HideElement
(
mainGame
->
wCreateHost
);
mainGame
->
HideElement
(
mainGame
->
wCreateHost
);
...
...
Classes/gframe/game.cpp
View file @
3c0f01d5
...
@@ -337,23 +337,50 @@ bool Game::Initialize() {
...
@@ -337,23 +337,50 @@ bool Game::Initialize() {
chkHostPrepReady
[
i
]
->
setEnabled
(
false
);
chkHostPrepReady
[
i
]
->
setEnabled
(
false
);
}
}
for
(
int
i
=
2
;
i
<
4
;
++
i
)
{
for
(
int
i
=
2
;
i
<
4
;
++
i
)
{
stHostPrepDuelist
[
i
]
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
60
*
xScale
,
(
145
+
i
*
45
)
*
yScale
,
260
*
xScale
,
(
185
+
i
*
45
)
*
yScale
),
true
,
false
,
wHostPrepare
);
stHostPrepDuelist
[
i
]
=
env
->
addStaticText
(
L""
,
btnHostPrepKick
[
i
]
=
env
->
addButton
(
rect
<
s32
>
(
10
*
xScale
,
(
145
+
i
*
45
)
*
yScale
,
50
*
xScale
,
(
185
+
i
*
45
)
*
yScale
),
wHostPrepare
,
BUTTON_HP_KICK
,
L"X"
);
rect
<
s32
>
(
60
*
xScale
,
(
145
+
i
*
45
)
*
yScale
,
260
*
xScale
,
chkHostPrepReady
[
i
]
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
270
*
xScale
,
(
145
+
i
*
45
)
*
yScale
,
310
*
xScale
,
(
185
+
i
*
45
)
*
yScale
),
wHostPrepare
,
CHECKBOX_HP_READY
,
L""
);
(
185
+
i
*
45
)
*
yScale
),
true
,
false
,
wHostPrepare
);
stHostPrepDuelist
[
i
]
->
setTextAlignment
(
EGUIA_CENTER
,
EGUIA_CENTER
);
btnHostPrepKick
[
i
]
=
env
->
addButton
(
rect
<
s32
>
(
10
*
xScale
,
(
145
+
i
*
45
)
*
yScale
,
50
*
xScale
,
(
185
+
i
*
45
)
*
yScale
),
wHostPrepare
,
BUTTON_HP_KICK
,
L"X"
);
chkHostPrepReady
[
i
]
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
270
*
xScale
,
(
145
+
i
*
45
)
*
yScale
,
310
*
xScale
,
(
185
+
i
*
45
)
*
yScale
),
wHostPrepare
,
CHECKBOX_HP_READY
,
L""
);
chkHostPrepReady
[
i
]
->
setEnabled
(
false
);
chkHostPrepReady
[
i
]
->
setEnabled
(
false
);
}
}
btnHostPrepOB
=
env
->
addButton
(
rect
<
s32
>
(
10
*
xScale
,
180
*
yScale
,
110
*
xScale
,
205
*
yScale
),
wHostPrepare
,
BUTTON_HP_OBSERVER
,
dataManager
.
GetSysString
(
1252
));
btnHostPrepOB
=
env
->
addButton
(
myswprintf
(
dataManager
.
strBuffer
,
L"%ls%d"
,
dataManager
.
GetSysString
(
1253
),
0
);
rect
<
s32
>
(
10
*
xScale
,
180
*
yScale
,
110
*
xScale
,
205
*
yScale
),
stHostPrepOB
=
env
->
addStaticText
(
dataManager
.
strBuffer
,
rect
<
s32
>
(
10
*
xScale
,
210
*
yScale
,
270
*
xScale
,
230
*
yScale
),
false
,
false
,
wHostPrepare
);
wHostPrepare
,
BUTTON_HP_OBSERVER
,
dataManager
.
GetSysString
(
1252
));
stHostPrepRule
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
300
*
xScale
,
30
*
yScale
,
460
*
xScale
,
230
*
yScale
),
false
,
true
,
wHostPrepare
);
myswprintf
(
dataManager
.
strBuffer
,
L"%ls%d"
,
dataManager
.
GetSysString
(
1253
),
env
->
addStaticText
(
dataManager
.
GetSysString
(
1254
),
rect
<
s32
>
(
10
*
xScale
,
385
*
yScale
,
110
*
xScale
,
410
*
yScale
),
false
,
false
,
wHostPrepare
);
0
);
stHostPrepOB
=
env
->
addStaticText
(
dataManager
.
strBuffer
,
rect
<
s32
>
(
10
*
xScale
,
210
*
yScale
,
270
*
xScale
,
230
*
yScale
),
false
,
false
,
wHostPrepare
);
stHostPrepRule
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
300
*
xScale
,
30
*
yScale
,
460
*
xScale
,
230
*
yScale
),
false
,
true
,
wHostPrepare
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1254
),
rect
<
s32
>
(
10
*
xScale
,
385
*
yScale
,
110
*
xScale
,
410
*
yScale
),
false
,
false
,
wHostPrepare
);
cbDeckSelect
=
CAndroidGUIComboBox
::
addAndroidComboBox
(
env
,
rect
<
s32
>
(
120
*
xScale
,
380
*
yScale
,
270
*
xScale
,
405
*
yScale
),
wHostPrepare
);
cbDeckSelect
=
CAndroidGUIComboBox
::
addAndroidComboBox
(
env
,
rect
<
s32
>
(
120
*
xScale
,
380
*
yScale
,
270
*
xScale
,
405
*
yScale
),
wHostPrepare
);
btnHostPrepReady
=
env
->
addButton
(
rect
<
s32
>
(
170
*
xScale
,
180
*
yScale
,
280
*
xScale
,
205
*
yScale
),
wHostPrepare
,
BUTTON_HP_READY
,
dataManager
.
GetSysString
(
1218
));
btnHostPrepReady
=
env
->
addButton
(
btnHostPrepNotReady
=
env
->
addButton
(
rect
<
s32
>
(
170
*
xScale
,
180
*
yScale
,
280
*
xScale
,
205
*
yScale
),
wHostPrepare
,
BUTTON_HP_NOTREADY
,
dataManager
.
GetSysString
(
1219
));
rect
<
s32
>
(
170
*
xScale
,
180
*
yScale
,
280
*
xScale
,
205
*
yScale
),
wHostPrepare
,
BUTTON_HP_READY
,
dataManager
.
GetSysString
(
1218
));
btnHostPrepNotReady
=
env
->
addButton
(
rect
<
s32
>
(
170
*
xScale
,
180
*
yScale
,
280
*
xScale
,
205
*
yScale
),
wHostPrepare
,
BUTTON_HP_NOTREADY
,
dataManager
.
GetSysString
(
1219
));
btnHostPrepNotReady
->
setVisible
(
false
);
btnHostPrepNotReady
->
setVisible
(
false
);
btnHostPrepStart
=
env
->
addButton
(
rect
<
s32
>
(
280
*
xScale
,
380
*
yScale
,
390
*
xScale
,
405
*
yScale
),
wHostPrepare
,
BUTTON_HP_START
,
dataManager
.
GetSysString
(
1215
));
btnHostPrepStart
=
env
->
addButton
(
btnHostPrepCancel
=
env
->
addButton
(
rect
<
s32
>
(
400
*
xScale
,
380
*
yScale
,
510
*
xScale
,
405
*
yScale
),
wHostPrepare
,
BUTTON_HP_CANCEL
,
dataManager
.
GetSysString
(
1210
));
rect
<
s32
>
(
280
*
xScale
,
380
*
yScale
,
390
*
xScale
,
405
*
yScale
),
wHostPrepare
,
BUTTON_HP_START
,
dataManager
.
GetSysString
(
1215
));
btnHostPrepCancel
=
env
->
addButton
(
rect
<
s32
>
(
400
*
xScale
,
380
*
yScale
,
510
*
xScale
,
405
*
yScale
),
wHostPrepare
,
BUTTON_HP_CANCEL
,
dataManager
.
GetSysString
(
1210
));
#endif
#endif
//img
//img
wCardImg
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
1
*
xScale
,
1
*
yScale
,
(
1
+
CARD_IMG_WIDTH
+
20
)
*
xScale
,
(
1
+
CARD_IMG_HEIGHT
+
18
)
*
yScale
),
true
,
false
,
0
,
-
1
,
true
);
wCardImg
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
1
*
xScale
,
1
*
yScale
,
(
1
+
CARD_IMG_WIDTH
+
20
)
*
xScale
,
(
1
+
CARD_IMG_HEIGHT
+
18
)
*
yScale
),
true
,
false
,
0
,
-
1
,
true
);
wCardImg
->
setBackgroundColor
(
0x6011113d
);
wCardImg
->
setBackgroundColor
(
0x6011113d
);
...
@@ -640,6 +667,7 @@ bool Game::Initialize() {
...
@@ -640,6 +667,7 @@ bool Game::Initialize() {
wCmdMenu
->
setDrawTitlebar
(
false
);
wCmdMenu
->
setDrawTitlebar
(
false
);
wCmdMenu
->
setVisible
(
false
);
wCmdMenu
->
setVisible
(
false
);
wCmdMenu
->
getCloseButton
()
->
setVisible
(
false
);
wCmdMenu
->
getCloseButton
()
->
setVisible
(
false
);
#ifdef _IRR_ANDROID_PLATFORM_
btnActivate
=
env
->
addButton
(
rect
<
s32
>
(
1
*
xScale
,
1
*
yScale
,
105
*
xScale
,
51
*
yScale
),
wCmdMenu
,
BUTTON_CMD_ACTIVATE
,
dataManager
.
GetSysString
(
1150
));
btnActivate
=
env
->
addButton
(
rect
<
s32
>
(
1
*
xScale
,
1
*
yScale
,
105
*
xScale
,
51
*
yScale
),
wCmdMenu
,
BUTTON_CMD_ACTIVATE
,
dataManager
.
GetSysString
(
1150
));
btnSummon
=
env
->
addButton
(
rect
<
s32
>
(
1
*
xScale
,
52
*
yScale
,
105
*
xScale
,
102
*
yScale
),
wCmdMenu
,
BUTTON_CMD_SUMMON
,
dataManager
.
GetSysString
(
1151
));
btnSummon
=
env
->
addButton
(
rect
<
s32
>
(
1
*
xScale
,
52
*
yScale
,
105
*
xScale
,
102
*
yScale
),
wCmdMenu
,
BUTTON_CMD_SUMMON
,
dataManager
.
GetSysString
(
1151
));
btnSPSummon
=
env
->
addButton
(
rect
<
s32
>
(
1
*
xScale
,
103
*
yScale
,
105
*
xScale
,
153
*
yScale
),
wCmdMenu
,
BUTTON_CMD_SPSUMMON
,
dataManager
.
GetSysString
(
1152
));
btnSPSummon
=
env
->
addButton
(
rect
<
s32
>
(
1
*
xScale
,
103
*
yScale
,
105
*
xScale
,
153
*
yScale
),
wCmdMenu
,
BUTTON_CMD_SPSUMMON
,
dataManager
.
GetSysString
(
1152
));
...
@@ -650,61 +678,28 @@ bool Game::Initialize() {
...
@@ -650,61 +678,28 @@ bool Game::Initialize() {
btnShowList
=
env
->
addButton
(
rect
<
s32
>
(
1
*
xScale
,
358
*
yScale
,
105
*
xScale
,
408
*
yScale
),
wCmdMenu
,
BUTTON_CMD_SHOWLIST
,
dataManager
.
GetSysString
(
1158
));
btnShowList
=
env
->
addButton
(
rect
<
s32
>
(
1
*
xScale
,
358
*
yScale
,
105
*
xScale
,
408
*
yScale
),
wCmdMenu
,
BUTTON_CMD_SHOWLIST
,
dataManager
.
GetSysString
(
1158
));
btnOperation
=
env
->
addButton
(
rect
<
s32
>
(
1
*
xScale
,
409
*
yScale
,
105
*
xScale
,
459
*
yScale
),
wCmdMenu
,
BUTTON_CMD_ACTIVATE
,
dataManager
.
GetSysString
(
1161
));
btnOperation
=
env
->
addButton
(
rect
<
s32
>
(
1
*
xScale
,
409
*
yScale
,
105
*
xScale
,
459
*
yScale
),
wCmdMenu
,
BUTTON_CMD_ACTIVATE
,
dataManager
.
GetSysString
(
1161
));
btnReset
=
env
->
addButton
(
rect
<
s32
>
(
1
*
xScale
,
460
*
yScale
,
105
*
xScale
,
510
*
yScale
),
wCmdMenu
,
BUTTON_CMD_RESET
,
dataManager
.
GetSysString
(
1162
));
btnReset
=
env
->
addButton
(
rect
<
s32
>
(
1
*
xScale
,
460
*
yScale
,
105
*
xScale
,
510
*
yScale
),
wCmdMenu
,
BUTTON_CMD_RESET
,
dataManager
.
GetSysString
(
1162
));
#endif
//deck edit
//deck edit
wDeckEdit
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
309
*
xScale
,
8
*
yScale
,
605
*
xScale
,
130
*
yScale
),
true
,
false
,
0
,
-
1
,
true
);
wDeckEdit
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
309
*
xScale
,
8
*
yScale
,
605
*
xScale
,
130
*
yScale
),
true
,
false
,
0
,
-
1
,
true
);
wDeckEdit
->
setVisible
(
false
);
wDeckEdit
->
setVisible
(
false
);
btnManageDeck
=
env
->
addButton
(
rect
<
s32
>
(
225
*
xScale
,
5
*
yScale
,
290
*
xScale
,
30
*
yScale
),
wDeckEdit
,
BUTTON_MANAGE_DECK
,
dataManager
.
GetSysString
(
1328
));
env
->
addStaticText
(
dataManager
.
GetSysString
(
1300
),
rect
<
s32
>
(
10
*
xScale
,
9
*
yScale
,
100
*
xScale
,
29
*
yScale
),
false
,
false
,
wDeckEdit
);
//deck manage
#ifdef _IRR_ANDROID_PLATFORM_
wDeckManage
=
env
->
addWindow
(
rect
<
s32
>
(
310
*
xScale
,
135
*
yScale
,
800
*
xScale
,
465
*
yScale
),
false
,
dataManager
.
GetSysString
(
1460
),
0
,
WINDOW_DECK_MANAGE
);
cbDBLFList
=
CAndroidGUIComboBox
::
addAndroidComboBox
(
env
,
rect
<
s32
>
(
80
*
xScale
,
5
*
yScale
,
220
*
xScale
,
30
*
yScale
),
wDeckEdit
,
COMBOBOX_DBLFLIST
);
wDeckManage
->
setVisible
(
false
);
#else
lstCategories
=
env
->
addListBox
(
rect
<
s32
>
(
10
*
xScale
,
30
*
yScale
,
140
*
xScale
,
320
*
yScale
),
wDeckManage
,
LISTBOX_CATEGORIES
,
true
);
cbDBLFList
=
env
->
addComboBox
(
rect
<
s32
>
(
80
*
xScale
,
5
*
yScale
,
220
*
xScale
,
30
*
yScale
),
wDeckEdit
,
COMBOBOX_DBLFLIST
);
lstDecks
=
env
->
addListBox
(
rect
<
s32
>
(
150
*
xScale
,
30
*
yScale
,
340
*
xScale
,
320
*
yScale
),
wDeckManage
,
LISTBOX_DECKS
,
true
);
#endif
posY
=
30
;
env
->
addStaticText
(
dataManager
.
GetSysString
(
1301
),
rect
<
s32
>
(
10
*
xScale
,
39
*
yScale
,
100
*
xScale
,
59
*
yScale
),
false
,
false
,
wDeckEdit
);
btnNewCategory
=
env
->
addButton
(
rect
<
s32
>
(
350
*
xScale
,
posY
*
yScale
,
480
*
xScale
,
(
posY
+
25
)
*
yScale
),
wDeckManage
,
BUTTON_NEW_CATEGORY
,
dataManager
.
GetSysString
(
1461
));
#ifdef _IRR_ANDROID_PLATFORM_
posY
+=
60
;
cbDBDecks
=
CAndroidGUIComboBox
::
addAndroidComboBox
(
env
,
rect
<
s32
>
(
80
*
xScale
,
35
*
yScale
,
220
*
xScale
,
60
*
yScale
),
wDeckEdit
,
COMBOBOX_DBDECKS
);
btnRenameCategory
=
env
->
addButton
(
rect
<
s32
>
(
350
*
xScale
,
posY
*
yScale
,
480
*
xScale
,
(
posY
+
25
)
*
yScale
),
wDeckManage
,
BUTTON_RENAME_CATEGORY
,
dataManager
.
GetSysString
(
1462
));
#else
posY
+=
60
;
cbDBDecks
=
env
->
addComboBox
(
rect
<
s32
>
(
80
*
xScale
,
35
*
yScale
,
220
*
xScale
,
60
*
yScale
),
wDeckEdit
,
COMBOBOX_DBDECKS
);
btnDeleteCategory
=
env
->
addButton
(
rect
<
s32
>
(
350
*
xScale
,
posY
*
yScale
,
480
*
xScale
,
(
posY
+
25
)
*
yScale
),
wDeckManage
,
BUTTON_DELETE_CATEGORY
,
dataManager
.
GetSysString
(
1463
));
#endif
posY
+=
60
;
btnNewDeck
=
env
->
addButton
(
rect
<
s32
>
(
350
*
xScale
,
posY
*
yScale
,
480
*
xScale
,
(
posY
+
25
)
*
yScale
),
wDeckManage
,
BUTTON_NEW_DECK
,
dataManager
.
GetSysString
(
1464
));
posY
+=
60
;
btnRenameDeck
=
env
->
addButton
(
rect
<
s32
>
(
350
*
xScale
,
posY
*
yScale
,
480
*
xScale
,
(
posY
+
25
)
*
yScale
),
wDeckManage
,
BUTTON_RENAME_DECK
,
dataManager
.
GetSysString
(
1465
));
posY
+=
60
;
btnDMDeleteDeck
=
env
->
addButton
(
rect
<
s32
>
(
350
*
xScale
,
posY
*
yScale
,
480
*
xScale
,
(
posY
+
25
)
*
yScale
),
wDeckManage
,
BUTTON_DELETE_DECK_DM
,
dataManager
.
GetSysString
(
1466
));
posY
+=
60
;
btnMoveDeck
=
env
->
addButton
(
rect
<
s32
>
(
350
*
xScale
,
posY
*
yScale
,
480
*
xScale
,
(
posY
+
25
)
*
yScale
),
wDeckManage
,
BUTTON_MOVE_DECK
,
dataManager
.
GetSysString
(
1467
));
posY
+=
60
;
btnCopyDeck
=
env
->
addButton
(
rect
<
s32
>
(
350
*
xScale
,
posY
*
yScale
,
480
*
xScale
,
(
posY
+
25
)
*
yScale
),
wDeckManage
,
BUTTON_COPY_DECK
,
dataManager
.
GetSysString
(
1468
));
posY
+=
85
;
cbLFList
=
CAndroidGUIComboBox
::
addAndroidComboBox
(
rect
<
s32
>
(
350
*
xScale
,
posY
*
yScale
,
480
*
xScale
,
(
posY
+
25
)
*
yScale
),
wDeckManage
,
COMBOBOX_LFLIST
);
cbLFList
->
setMaxSelectionRows
(
10
);
for
(
unsigned
int
i
=
0
;
i
<
deckManager
.
_lfList
.
size
();
++
i
)
for
(
unsigned
int
i
=
0
;
i
<
deckManager
.
_lfList
.
size
();
++
i
)
cbLFList
->
addItem
(
deckManager
.
_lfList
[
i
].
listName
);
cbDBLFList
->
addItem
(
deckManager
.
_lfList
[
i
].
listName
);
//deck manage query
wDMQuery
=
env
->
addWindow
(
rect
<
s32
>
(
400
,
200
,
710
,
320
),
false
,
dataManager
.
GetSysString
(
1460
));
wDMQuery
->
getCloseButton
()
->
setVisible
(
false
);
wDMQuery
->
setVisible
(
false
);
stDMMessage
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
20
,
25
*
yScale
,
290
,
45
*
yScale
),
false
,
false
,
wDMQuery
);
stDMMessage2
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
20
,
50
*
yScale
,
290
,
70
*
yScale
),
false
,
false
,
wDMQuery
,
-
1
,
true
);
stDMMessage2
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
ebDMName
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
20
,
50
*
yScale
,
290
,
70
*
yScale
),
true
,
wDMQuery
,
-
1
);
ebDMName
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
cbDMCategory
=
CAndroidGUIComboBox
::
addAndroidComboBox
(
rect
<
s32
>
(
20
*
xScale
,
50
*
yScale
,
290
*
xScale
,
70
*
yScale
),
wDMQuery
,
-
1
);
stDMMessage2
->
setVisible
(
false
);
ebDMName
->
setVisible
(
false
);
cbDMCategory
->
setVisible
(
false
);
cbDMCategory
->
setMaxSelectionRows
(
10
);
btnDMOK
=
env
->
addButton
(
rect
<
s32
>
(
70
*
xScale
,
80
*
yScale
,
140
*
xScale
,
105
*
yScale
),
wDMQuery
,
BUTTON_DM_OK
,
dataManager
.
GetSysString
(
1211
));
btnDMCancel
=
env
->
addButton
(
rect
<
s32
>
(
170
*
xScale
,
80
*
yScale
,
240
*
xScale
,
105
*
yScale
),
wDMQuery
,
BUTTON_DM_CANCEL
,
dataManager
.
GetSysString
(
1212
));
stDBCategory
=
env
->
addStaticText
(
dataManager
.
GetSysString
(
1300
),
rect
<
s32
>
(
10
*
xScale
,
9
*
yScale
,
100
*
xScale
,
29
*
yScale
),
false
,
false
,
wDeckEdit
);
cbDBCategory
=
CAndroidGUIComboBox
::
addAndroidComboBox
(
rect
<
s32
>
(
80
*
xScale
,
5
*
yScale
,
220
*
xScale
,
30
*
yScale
),
wDeckEdit
,
COMBOBOX_DBCATEGORY
);
cbDBCategory
->
setMaxSelectionRows
(
15
);
stDeck
=
env
->
addStaticText
(
dataManager
.
GetSysString
(
1301
),
rect
<
s32
>
(
10
*
xScale
,
39
*
yScale
,
100
*
xScale
,
59
*
yScale
),
false
,
false
,
wDeckEdit
);
cbDBDecks
=
CAndroidGUIComboBox
::
addAndroidComboBox
(
rect
<
s32
>
(
80
*
xScale
,
35
*
yScale
,
220
*
xScale
,
60
*
yScale
),
wDeckEdit
,
COMBOBOX_DBDECKS
);
cbDBDecks
->
setMaxSelectionRows
(
15
);
btnSaveDeck
=
env
->
addButton
(
rect
<
s32
>
(
225
*
xScale
,
35
*
yScale
,
290
*
xScale
,
60
*
yScale
),
wDeckEdit
,
BUTTON_SAVE_DECK
,
dataManager
.
GetSysString
(
1302
));
btnSaveDeck
=
env
->
addButton
(
rect
<
s32
>
(
225
*
xScale
,
35
*
yScale
,
290
*
xScale
,
60
*
yScale
),
wDeckEdit
,
BUTTON_SAVE_DECK
,
dataManager
.
GetSysString
(
1302
));
ebDeckname
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
80
*
xScale
,
65
*
yScale
,
220
*
xScale
,
90
*
yScale
),
true
,
wDeckEdit
,
-
1
);
#ifdef _IRR_ANDROID_PLATFORM_
ebDeckname
=
CAndroidGUIEditBox
::
addAndroidEditBox
(
L""
,
true
,
env
,
rect
<
s32
>
(
80
*
xScale
,
65
*
yScale
,
220
*
xScale
,
90
*
yScale
),
wDeckEdit
,
-
1
);
#endif
ebDeckname
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
ebDeckname
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
btnSaveDeckAs
=
env
->
addButton
(
rect
<
s32
>
(
225
*
xScale
,
65
*
yScale
,
290
*
xScale
,
90
*
yScale
),
wDeckEdit
,
BUTTON_SAVE_DECK_AS
,
dataManager
.
GetSysString
(
1303
));
btnSaveDeckAs
=
env
->
addButton
(
rect
<
s32
>
(
225
*
xScale
,
65
*
yScale
,
290
*
xScale
,
90
*
yScale
),
wDeckEdit
,
BUTTON_SAVE_DECK_AS
,
dataManager
.
GetSysString
(
1303
));
btnDeleteDeck
=
env
->
addButton
(
rect
<
s32
>
(
10
*
xScale
,
95
*
yScale
,
70
*
xScale
,
116
*
yScale
),
wDeckEdit
,
BUTTON_DELETE_DECK
,
dataManager
.
GetSysString
(
1308
));
btnDeleteDeck
=
env
->
addButton
(
rect
<
s32
>
(
10
*
xScale
,
95
*
yScale
,
70
*
xScale
,
116
*
yScale
),
wDeckEdit
,
BUTTON_DELETE_DECK
,
dataManager
.
GetSysString
(
1308
));
...
@@ -719,11 +714,21 @@ bool Game::Initialize() {
...
@@ -719,11 +714,21 @@ bool Game::Initialize() {
btnSideSort
->
setVisible
(
false
);
btnSideSort
->
setVisible
(
false
);
btnSideReload
=
env
->
addButton
(
rect
<
s32
>
(
440
*
xScale
,
100
*
yScale
,
500
*
xScale
,
130
*
yScale
),
0
,
BUTTON_SIDE_RELOAD
,
dataManager
.
GetSysString
(
1309
));
btnSideReload
=
env
->
addButton
(
rect
<
s32
>
(
440
*
xScale
,
100
*
yScale
,
500
*
xScale
,
130
*
yScale
),
0
,
BUTTON_SIDE_RELOAD
,
dataManager
.
GetSysString
(
1309
));
btnSideReload
->
setVisible
(
false
);
btnSideReload
->
setVisible
(
false
);
btnRenameDeck
=
env
->
addButton
(
rect
<
s32
>
(
75
*
xScale
,
95
*
yScale
,
125
*
xScale
,
116
*
yScale
),
wDeckEdit
,
BUTTON_RENAME_DECK
,
dataManager
.
GetSysString
(
1362
));
//
//
scrFilter
=
env
->
addScrollBar
(
false
,
recti
(
999
*
xScale
,
161
*
yScale
,
1019
*
xScale
,
629
*
yScale
),
0
,
SCROLL_FILTER
);
scrFilter
=
env
->
addScrollBar
(
false
,
recti
(
999
*
xScale
,
161
*
yScale
,
1019
*
xScale
,
629
*
yScale
),
0
,
SCROLL_FILTER
);
scrFilter
->
setLargeStep
(
10
);
scrFilter
->
setLargeStep
(
10
);
scrFilter
->
setSmallStep
(
1
);
scrFilter
->
setSmallStep
(
1
);
scrFilter
->
setVisible
(
false
);
scrFilter
->
setVisible
(
false
);
//rename deck
wRenameDeck
=
env
->
addWindow
(
rect
<
s32
>
(
490
*
xScale
,
180
*
yScale
,
840
*
xScale
,
340
*
yScale
),
false
,
dataManager
.
GetSysString
(
1367
));
wRenameDeck
->
getCloseButton
()
->
setVisible
(
false
);
wRenameDeck
->
setVisible
(
false
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1280
),
rect
<
s32
>
(
20
*
xScale
,
25
*
yScale
,
290
*
xScale
,
45
*
yScale
),
false
,
false
,
wRenameDeck
);
ebREName
=
CAndroidGUIEditBox
::
addAndroidEditBox
(
L""
,
true
,
env
,
rect
<
s32
>
(
20
*
xScale
,
50
*
yScale
,
330
*
xScale
,
90
*
yScale
),
wRenameDeck
,
-
1
);
ebREName
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
btnREYes
=
env
->
addButton
(
rect
<
s32
>
(
70
*
xScale
,
100
*
yScale
,
160
*
xScale
,
150
*
yScale
),
wRenameDeck
,
BUTTON_RENAME_DECK_SAVE
,
dataManager
.
GetSysString
(
1341
));
btnRENo
=
env
->
addButton
(
rect
<
s32
>
(
180
*
xScale
,
100
*
yScale
,
270
*
xScale
,
150
*
yScale
),
wRenameDeck
,
BUTTON_RENAME_DECK_CANCEL
,
dataManager
.
GetSysString
(
1212
));
//sort type
//sort type
wSort
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
930
*
xScale
,
132
*
yScale
,
1020
*
xScale
,
156
*
yScale
),
true
,
false
,
0
,
-
1
,
true
);
wSort
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
930
*
xScale
,
132
*
yScale
,
1020
*
xScale
,
156
*
yScale
),
true
,
false
,
0
,
-
1
,
true
);
cbSortType
=
env
->
addComboBox
(
rect
<
s32
>
(
10
*
xScale
,
2
*
yScale
,
85
*
xScale
,
22
*
yScale
),
wSort
,
COMBOBOX_SORTTYPE
);
cbSortType
=
env
->
addComboBox
(
rect
<
s32
>
(
10
*
xScale
,
2
*
yScale
,
85
*
xScale
,
22
*
yScale
),
wSort
,
COMBOBOX_SORTTYPE
);
...
@@ -1299,44 +1304,9 @@ void Game::LoadExpansions() {
...
@@ -1299,44 +1304,9 @@ void Game::LoadExpansions() {
}
}
}
}
}
}
void
Game
::
RefreshCategoryDeck
(
irr
::
gui
::
IGUIComboBox
*
cbCategory
,
irr
::
gui
::
IGUIComboBox
*
cbDeck
,
bool
selectlastused
)
{
void
Game
::
RefreshDeck
(
irr
::
gui
::
IGUIComboBox
*
cbDeck
)
{
cbCategory
->
clear
();
cbCategory
->
addItem
(
dataManager
.
GetSysString
(
1450
));
cbCategory
->
addItem
(
dataManager
.
GetSysString
(
1451
));
cbCategory
->
addItem
(
dataManager
.
GetSysString
(
1452
));
cbCategory
->
addItem
(
dataManager
.
GetSysString
(
1453
));
FileSystem
::
TraversalDir
(
L"./deck"
,
[
cbCategory
](
const
wchar_t
*
name
,
bool
isdir
)
{
if
(
isdir
)
{
cbCategory
->
addItem
(
name
);
}
});
cbCategory
->
setSelected
(
2
);
if
(
selectlastused
)
{
for
(
size_t
i
=
0
;
i
<
cbCategory
->
getItemCount
();
++
i
)
{
if
(
!
wcscmp
(
cbCategory
->
getItem
(
i
),
gameConf
.
lastcategory
))
{
cbCategory
->
setSelected
(
i
);
break
;
}
}
}
RefreshDeck
(
cbCategory
,
cbDeck
);
if
(
selectlastused
)
{
for
(
size_t
i
=
0
;
i
<
cbDeck
->
getItemCount
();
++
i
)
{
if
(
!
wcscmp
(
cbDeck
->
getItem
(
i
),
gameConf
.
lastdeck
))
{
cbDeck
->
setSelected
(
i
);
break
;
}
}
}
}
void
Game
::
RefreshDeck
(
irr
::
gui
::
IGUIComboBox
*
cbCategory
,
irr
::
gui
::
IGUIComboBox
*
cbDeck
)
{
wchar_t
catepath
[
256
];
deckManager
.
GetCategoryPath
(
catepath
,
cbCategory
->
getSelected
(),
cbCategory
->
getText
());
RefreshDeck
(
catepath
,
cbDeck
);
}
void
Game
::
RefreshDeck
(
const
wchar_t
*
deckpath
,
irr
::
gui
::
IGUIComboBox
*
cbDeck
)
{
cbDeck
->
clear
();
cbDeck
->
clear
();
FileSystem
::
TraversalDir
(
deckpath
,
[
cbDeck
](
const
wchar_t
*
name
,
bool
isdir
)
{
FileSystem
::
TraversalDir
(
L"./deck"
,
[
cbDeck
](
const
wchar_t
*
name
,
bool
isdir
)
{
if
(
!
isdir
&&
wcsrchr
(
name
,
'.'
)
&&
!
wcsncasecmp
(
wcsrchr
(
name
,
'.'
),
L".ydk"
,
4
))
{
if
(
!
isdir
&&
wcsrchr
(
name
,
'.'
)
&&
!
wcsncasecmp
(
wcsrchr
(
name
,
'.'
),
L".ydk"
,
4
))
{
size_t
len
=
wcslen
(
name
);
size_t
len
=
wcslen
(
name
);
wchar_t
deckname
[
256
];
wchar_t
deckname
[
256
];
...
@@ -1345,6 +1315,12 @@ void Game::RefreshDeck(const wchar_t* deckpath, irr::gui::IGUIComboBox* cbDeck)
...
@@ -1345,6 +1315,12 @@ void Game::RefreshDeck(const wchar_t* deckpath, irr::gui::IGUIComboBox* cbDeck)
cbDeck
->
addItem
(
deckname
);
cbDeck
->
addItem
(
deckname
);
}
}
});
});
for
(
size_t
i
=
0
;
i
<
cbDeck
->
getItemCount
();
++
i
)
{
if
(
!
wcscmp
(
cbDeck
->
getItem
(
i
),
gameConf
.
lastdeck
))
{
cbDeck
->
setSelected
(
i
);
break
;
}
}
}
}
void
Game
::
RefreshReplay
()
{
void
Game
::
RefreshReplay
()
{
lstReplayList
->
clear
();
lstReplayList
->
clear
();
...
@@ -1410,8 +1386,6 @@ void Game::LoadConfig() {
...
@@ -1410,8 +1386,6 @@ void Game::LoadConfig() {
gameConf
.
textfontsize
=
16
;
gameConf
.
textfontsize
=
16
;
gameConf
.
nickname
[
0
]
=
0
;
gameConf
.
nickname
[
0
]
=
0
;
gameConf
.
gamename
[
0
]
=
0
;
gameConf
.
gamename
[
0
]
=
0
;
gameConf
.
bot_deck_path
[
0
]
=
0
;
gameConf
.
lastcategory
[
0
]
=
0
;
BufferIO
::
DecodeUTF8
(
android
::
getLastDeck
(
appMain
).
c_str
(),
wstr
);
BufferIO
::
DecodeUTF8
(
android
::
getLastDeck
(
appMain
).
c_str
(),
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
lastdeck
,
64
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
lastdeck
,
64
);
irr:
os
::
Printer
::
log
(
android
::
getFontPath
(
appMain
).
c_str
());
irr:
os
::
Printer
::
log
(
android
::
getFontPath
(
appMain
).
c_str
());
...
...
Classes/gframe/game.h
View file @
3c0f01d5
...
@@ -23,12 +23,10 @@ struct Config {
...
@@ -23,12 +23,10 @@ struct Config {
wchar_t
lastport
[
10
];
wchar_t
lastport
[
10
];
wchar_t
nickname
[
20
];
wchar_t
nickname
[
20
];
wchar_t
gamename
[
20
];
wchar_t
gamename
[
20
];
wchar_t
lastcategory
[
64
];
wchar_t
lastdeck
[
64
];
wchar_t
lastdeck
[
64
];
wchar_t
textfont
[
256
];
wchar_t
textfont
[
256
];
wchar_t
numfont
[
256
];
wchar_t
numfont
[
256
];
wchar_t
roompass
[
20
];
wchar_t
roompass
[
20
];
wchar_t
bot_deck_path
[
64
];
//settings
//settings
int
chkMAutoPos
;
int
chkMAutoPos
;
int
chkSTAutoPos
;
int
chkSTAutoPos
;
...
@@ -121,9 +119,7 @@ public:
...
@@ -121,9 +119,7 @@ public:
void
InitStaticText
(
irr
::
gui
::
IGUIStaticText
*
pControl
,
u32
cWidth
,
u32
cHeight
,
irr
::
gui
::
CGUITTFont
*
font
,
const
wchar_t
*
text
);
void
InitStaticText
(
irr
::
gui
::
IGUIStaticText
*
pControl
,
u32
cWidth
,
u32
cHeight
,
irr
::
gui
::
CGUITTFont
*
font
,
const
wchar_t
*
text
);
void
SetStaticText
(
irr
::
gui
::
IGUIStaticText
*
pControl
,
u32
cWidth
,
irr
::
gui
::
CGUITTFont
*
font
,
const
wchar_t
*
text
,
u32
pos
=
0
);
void
SetStaticText
(
irr
::
gui
::
IGUIStaticText
*
pControl
,
u32
cWidth
,
irr
::
gui
::
CGUITTFont
*
font
,
const
wchar_t
*
text
,
u32
pos
=
0
);
void
LoadExpansions
();
void
LoadExpansions
();
void
RefreshCategoryDeck
(
irr
::
gui
::
IGUIComboBox
*
cbCategory
,
irr
::
gui
::
IGUIComboBox
*
cbDeck
,
bool
selectlastused
=
true
);
void
RefreshDeck
(
irr
::
gui
::
IGUIComboBox
*
cbDeck
);
void
RefreshDeck
(
irr
::
gui
::
IGUIComboBox
*
cbCategory
,
irr
::
gui
::
IGUIComboBox
*
cbDeck
);
void
RefreshDeck
(
const
wchar_t
*
deckpath
,
irr
::
gui
::
IGUIComboBox
*
cbDeck
);
void
RefreshReplay
();
void
RefreshReplay
();
void
RefreshSingleplay
();
void
RefreshSingleplay
();
void
RefreshBot
();
void
RefreshBot
();
...
@@ -255,12 +251,12 @@ public:
...
@@ -255,12 +251,12 @@ public:
irr
::
gui
::
IGUICheckBox
*
chkRandomPos
;
irr
::
gui
::
IGUICheckBox
*
chkRandomPos
;
irr
::
gui
::
IGUICheckBox
*
chkAutoChain
;
irr
::
gui
::
IGUICheckBox
*
chkAutoChain
;
irr
::
gui
::
IGUICheckBox
*
chkWaitChain
;
irr
::
gui
::
IGUICheckBox
*
chkWaitChain
;
irr
::
gui
::
IGUICheckBox
*
chkQuickAnimation
;
irr
::
gui
::
IGUICheckBox
*
chkAutoSaveReplay
;
irr
::
gui
::
IGUIWindow
*
tabSystem
;
irr
::
gui
::
IGUIWindow
*
tabSystem
;
irr
::
gui
::
IGUIElement
*
elmTabSystemLast
;
irr
::
gui
::
IGUIElement
*
elmTabSystemLast
;
irr
::
gui
::
IGUIScrollBar
*
scrTabSystem
;
irr
::
gui
::
IGUIScrollBar
*
scrTabSystem
;
irr
::
gui
::
IGUICheckBox
*
chkDrawFieldSpell
;
irr
::
gui
::
IGUICheckBox
*
chkDrawFieldSpell
;
irr
::
gui
::
IGUICheckBox
*
chkQuickAnimation
;
irr
::
gui
::
IGUICheckBox
*
chkAutoSaveReplay
;
irr
::
gui
::
IGUICheckBox
*
chkIgnoreDeckChanges
;
irr
::
gui
::
IGUICheckBox
*
chkIgnoreDeckChanges
;
irr
::
gui
::
IGUICheckBox
*
chkAutoSearch
;
irr
::
gui
::
IGUICheckBox
*
chkAutoSearch
;
irr
::
gui
::
IGUICheckBox
*
chkMultiKeywords
;
irr
::
gui
::
IGUICheckBox
*
chkMultiKeywords
;
...
@@ -307,7 +303,6 @@ public:
...
@@ -307,7 +303,6 @@ public:
irr
::
gui
::
IGUIStaticText
*
stHostPrepDuelist
[
4
];
irr
::
gui
::
IGUIStaticText
*
stHostPrepDuelist
[
4
];
irr
::
gui
::
IGUICheckBox
*
chkHostPrepReady
[
4
];
irr
::
gui
::
IGUICheckBox
*
chkHostPrepReady
[
4
];
irr
::
gui
::
IGUIButton
*
btnHostPrepKick
[
4
];
irr
::
gui
::
IGUIButton
*
btnHostPrepKick
[
4
];
irr
::
gui
::
IGUIComboBox
*
cbCategorySelect
;
irr
::
gui
::
IGUIComboBox
*
cbDeckSelect
;
irr
::
gui
::
IGUIComboBox
*
cbDeckSelect
;
irr
::
gui
::
IGUIStaticText
*
stHostPrepRule
;
irr
::
gui
::
IGUIStaticText
*
stHostPrepRule
;
irr
::
gui
::
IGUIStaticText
*
stHostPrepOB
;
irr
::
gui
::
IGUIStaticText
*
stHostPrepOB
;
...
@@ -427,9 +422,8 @@ public:
...
@@ -427,9 +422,8 @@ public:
irr
::
gui
::
IGUIButton
*
btnEP
;
irr
::
gui
::
IGUIButton
*
btnEP
;
//deck edit
//deck edit
irr
::
gui
::
IGUIStaticText
*
wDeckEdit
;
irr
::
gui
::
IGUIStaticText
*
wDeckEdit
;
irr
::
gui
::
IGUIComboBox
*
cbDB
Category
;
irr
::
gui
::
IGUIComboBox
*
cbDB
LFList
;
irr
::
gui
::
IGUIComboBox
*
cbDBDecks
;
irr
::
gui
::
IGUIComboBox
*
cbDBDecks
;
irr
::
gui
::
IGUIButton
*
btnManageDeck
;
irr
::
gui
::
IGUIButton
*
btnClearDeck
;
irr
::
gui
::
IGUIButton
*
btnClearDeck
;
irr
::
gui
::
IGUIButton
*
btnSortDeck
;
irr
::
gui
::
IGUIButton
*
btnSortDeck
;
irr
::
gui
::
IGUIButton
*
btnShuffleDeck
;
irr
::
gui
::
IGUIButton
*
btnShuffleDeck
;
...
@@ -441,37 +435,12 @@ public:
...
@@ -441,37 +435,12 @@ public:
irr
::
gui
::
IGUIButton
*
btnSideSort
;
irr
::
gui
::
IGUIButton
*
btnSideSort
;
irr
::
gui
::
IGUIButton
*
btnSideReload
;
irr
::
gui
::
IGUIButton
*
btnSideReload
;
irr
::
gui
::
IGUIEditBox
*
ebDeckname
;
irr
::
gui
::
IGUIEditBox
*
ebDeckname
;
irr
::
gui
::
IGUIStaticText
*
stDBCategory
;
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
;
//deck manage
irr
::
gui
::
IGUIWindow
*
wDeckManage
;
irr
::
gui
::
IGUIListBox
*
lstCategories
;
irr
::
gui
::
IGUIListBox
*
lstDecks
;
irr
::
gui
::
IGUIButton
*
btnNewCategory
;
irr
::
gui
::
IGUIButton
*
btnRenameCategory
;
irr
::
gui
::
IGUIButton
*
btnDeleteCategory
;
irr
::
gui
::
IGUIButton
*
btnNewDeck
;
irr
::
gui
::
IGUIButton
*
btnRenameDeck
;
irr
::
gui
::
IGUIButton
*
btnRenameDeck
;
irr
::
gui
::
IGUIButton
*
btnDMDeleteDeck
;
//deck rename
irr
::
gui
::
IGUIButton
*
btnMoveDeck
;
irr
::
gui
::
IGUIWindow
*
wRenameDeck
;
irr
::
gui
::
IGUIButton
*
btnCopyDeck
;
irr
::
gui
::
IGUIEditBox
*
ebREName
;
irr
::
gui
::
IGUIWindow
*
wDMQuery
;
irr
::
gui
::
IGUIButton
*
btnREYes
;
irr
::
gui
::
IGUIStaticText
*
stDMMessage
;
irr
::
gui
::
IGUIButton
*
btnRENo
;
irr
::
gui
::
IGUIStaticText
*
stDMMessage2
;
irr
::
gui
::
IGUIEditBox
*
ebDMName
;
irr
::
gui
::
IGUIComboBox
*
cbDMCategory
;
irr
::
gui
::
IGUIButton
*
btnDMOK
;
irr
::
gui
::
IGUIButton
*
btnDMCancel
;
irr
::
gui
::
IGUIComboBox
*
cbLFList
;
//filter
//filter
irr
::
gui
::
IGUIStaticText
*
wFilter
;
irr
::
gui
::
IGUIStaticText
*
wFilter
;
irr
::
gui
::
IGUIScrollBar
*
scrFilter
;
irr
::
gui
::
IGUIScrollBar
*
scrFilter
;
...
@@ -583,28 +552,12 @@ extern Game* mainGame;
...
@@ -583,28 +552,12 @@ extern Game* mainGame;
#define CHECKBOX_HP_READY 125
#define CHECKBOX_HP_READY 125
#define BUTTON_HP_READY 126
#define BUTTON_HP_READY 126
#define BUTTON_HP_NOTREADY 127
#define BUTTON_HP_NOTREADY 127
#define COMBOBOX_HP_CATEGORY 128
#define LISTBOX_REPLAY_LIST 130
#define LISTBOX_REPLAY_LIST 130
#define BUTTON_LOAD_REPLAY 131
#define BUTTON_LOAD_REPLAY 131
#define BUTTON_CANCEL_REPLAY 132
#define BUTTON_CANCEL_REPLAY 132
#define BUTTON_DELETE_REPLAY 133
#define BUTTON_DELETE_REPLAY 133
#define BUTTON_RENAME_REPLAY 134
#define BUTTON_RENAME_REPLAY 134
#define BUTTON_REPLAY_START 140
#define EDITBOX_CHAT 140
#define BUTTON_REPLAY_PAUSE 141
#define BUTTON_REPLAY_STEP 142
#define BUTTON_REPLAY_UNDO 143
#define BUTTON_REPLAY_EXIT 144
#define BUTTON_REPLAY_SWAP 145
#define BUTTON_REPLAY_SAVE 146
#define BUTTON_REPLAY_CANCEL 147
#define LISTBOX_SINGLEPLAY_LIST 150
#define BUTTON_LOAD_SINGLEPLAY 151
#define BUTTON_CANCEL_SINGLEPLAY 152
#define LISTBOX_BOT_LIST 153
#define BUTTON_BOT_START 154
#define CHECKBOX_BOT_OLD_RULE 155
#define EDITBOX_CHAT 199
#define BUTTON_MSG_OK 200
#define BUTTON_MSG_OK 200
#define BUTTON_YES 201
#define BUTTON_YES 201
#define BUTTON_NO 202
#define BUTTON_NO 202
...
@@ -669,8 +622,8 @@ extern Game* mainGame;
...
@@ -669,8 +622,8 @@ extern Game* mainGame;
#define BUTTON_DISPLAY_4 294
#define BUTTON_DISPLAY_4 294
#define SCROLL_CARD_DISPLAY 295
#define SCROLL_CARD_DISPLAY 295
#define BUTTON_CARD_DISP_OK 296
#define BUTTON_CARD_DISP_OK 296
#define BUTTON_
MANAGE_DEC
K 300
#define BUTTON_
CATEGORY_O
K 300
#define COMBOBOX_DB
CATEGORY
301
#define COMBOBOX_DB
LFLIST
301
#define COMBOBOX_DBDECKS 302
#define COMBOBOX_DBDECKS 302
#define BUTTON_CLEAR_DECK 303
#define BUTTON_CLEAR_DECK 303
#define BUTTON_SAVE_DECK 304
#define BUTTON_SAVE_DECK 304
...
@@ -689,37 +642,37 @@ extern Game* mainGame;
...
@@ -689,37 +642,37 @@ extern Game* mainGame;
#define BUTTON_CLEAR_FILTER 317
#define BUTTON_CLEAR_FILTER 317
#define COMBOBOX_ATTRIBUTE 318
#define COMBOBOX_ATTRIBUTE 318
#define COMBOBOX_RACE 319
#define COMBOBOX_RACE 319
#define COMBOBOX_LIMIT 320
#define BUTTON_REPLAY_START 320
#define BUTTON_CATEGORY_OK 321
#define BUTTON_REPLAY_PAUSE 321
#define BUTTON_MARKS_FILTER 322
#define BUTTON_REPLAY_STEP 322
#define BUTTON_MARKERS_OK 323
#define BUTTON_REPLAY_UNDO 323
#define COMBOBOX_SORTTYPE 324
#define BUTTON_REPLAY_EXIT 324
#define BUTTON_REPLAY_SWAP 325
#define WINDOW_DECK_MANAGE 330
#define BUTTON_REPLAY_SAVE 330
#define BUTTON_NEW_CATEGORY 331
#define BUTTON_REPLAY_CANCEL 331
#define BUTTON_RENAME_CATEGORY 332
#define BUTTON_BOT_START 340
#define BUTTON_DELETE_CATEGORY 333
#define LISTBOX_BOT_LIST 341
#define BUTTON_NEW_DECK 334
#define CHECKBOX_BOT_OLD_RULE 342
#define BUTTON_RENAME_DECK 335
#define LISTBOX_SINGLEPLAY_LIST 343
#define BUTTON_DELETE_DECK_DM 336
#define BUTTON_LOAD_SINGLEPLAY 344
#define BUTTON_MOVE_DECK 337
#define BUTTON_CANCEL_SINGLEPLAY 345
#define BUTTON_COPY_DECK 338
#define SCROLL_TAB_HELPER 350
#define LISTBOX_CATEGORIES 339
#define SCROLL_TAB_SYSTEM 351
#define LISTBOX_DECKS 340
#define BUTTON_DM_OK 341
#define BUTTON_DM_CANCEL 342
#define COMBOBOX_LFLIST 349
#define CHECKBOX_AUTO_SEARCH 360
#define CHECKBOX_AUTO_SEARCH 360
#define CHECKBOX_MULTI_KEYWORDS 372
#define CHECKBOX_MULTI_KEYWORDS 372
#define CHECKBOX_PREFER_EXPANSION 373
#define CHECKBOX_PREFER_EXPANSION 373
#define CHECKBOX_DISABLE_CHAT 364
#define CHECKBOX_DISABLE_CHAT 364
#define CHECKBOX_DRAW_FIELD_SPELL 368
#define CHECKBOX_DRAW_FIELD_SPELL 368
#define CHECKBOX_QUICK_ANIMATION 369
#define CHECKBOX_QUICK_ANIMATION 369
#define SCROLL_TAB_HELPER 370
#define COMBOBOX_SORTTYPE 370
#define SCROLL_TAB_SYSTEM 371
#define COMBOBOX_LIMIT 371
#define CHECKBOX_MULTI_KEYWORDS 372
#define CHECKBOX_PREFER_EXPANSION 373
#define BUTTON_MARKS_FILTER 380
#define BUTTON_MARKERS_OK 381
#define BUTTON_RENAME_DECK 386
#define BUTTON_RENAME_DECK_SAVE 387
#define BUTTON_RENAME_DECK_CANCEL 388
#define DEFAULT_DUEL_RULE 4
#define DEFAULT_DUEL_RULE 4
...
...
Classes/gframe/myfilesystem.h
View file @
3c0f01d5
...
@@ -50,31 +50,6 @@ public:
...
@@ -50,31 +50,6 @@ public:
return
MakeDir
(
wdir
);
return
MakeDir
(
wdir
);
}
}
static
bool
Rename
(
const
wchar_t
*
woldname
,
const
wchar_t
*
wnewname
)
{
return
MoveFileW
(
woldname
,
wnewname
);
}
static
bool
Rename
(
const
char
*
oldname
,
const
char
*
newname
)
{
wchar_t
woldname
[
1024
];
wchar_t
wnewname
[
1024
];
BufferIO
::
DecodeUTF8
(
oldname
,
woldname
);
BufferIO
::
DecodeUTF8
(
newname
,
wnewname
);
return
Rename
(
woldname
,
wnewname
);
}
static
bool
DeleteDir
(
const
wchar_t
*
wdir
)
{
wchar_t
pdir
[
256
];
BufferIO
::
CopyWStr
(
wdir
,
pdir
,
256
);
pdir
[
wcslen
(
wdir
)
+
1
]
=
0
;
SHFILEOPSTRUCTW
lpFileOp
;
lpFileOp
.
hwnd
=
NULL
;
lpFileOp
.
wFunc
=
FO_DELETE
;
lpFileOp
.
pFrom
=
pdir
;
lpFileOp
.
pTo
=
0
;
lpFileOp
.
fFlags
=
FOF_ALLOWUNDO
|
FOF_NOCONFIRMATION
|
FOF_NOERRORUI
|
FOF_SILENT
;
return
SHFileOperationW
(
&
lpFileOp
)
==
0
;
}
static
void
TraversalDir
(
const
wchar_t
*
wpath
,
const
std
::
function
<
void
(
const
wchar_t
*
,
bool
)
>&
cb
)
{
static
void
TraversalDir
(
const
wchar_t
*
wpath
,
const
std
::
function
<
void
(
const
wchar_t
*
,
bool
)
>&
cb
)
{
wchar_t
findstr
[
1024
];
wchar_t
findstr
[
1024
];
wcscpy
(
findstr
,
wpath
);
wcscpy
(
findstr
,
wpath
);
...
@@ -84,7 +59,6 @@ public:
...
@@ -84,7 +59,6 @@ public:
if
(
fh
==
INVALID_HANDLE_VALUE
)
if
(
fh
==
INVALID_HANDLE_VALUE
)
return
;
return
;
do
{
do
{
if
(
mywcsncasecmp
(
fdataw
.
cFileName
,
L"."
,
1
)
&&
mywcsncasecmp
(
fdataw
.
cFileName
,
L".."
,
2
))
cb
(
fdataw
.
cFileName
,
(
fdataw
.
dwFileAttributes
&
FILE_ATTRIBUTE_DIRECTORY
));
cb
(
fdataw
.
cFileName
,
(
fdataw
.
dwFileAttributes
&
FILE_ATTRIBUTE_DIRECTORY
));
}
while
(
FindNextFileW
(
fh
,
&
fdataw
));
}
while
(
FindNextFileW
(
fh
,
&
fdataw
));
FindClose
(
fh
);
FindClose
(
fh
);
...
...
Classes/gframe/premake4.lua
View file @
3c0f01d5
include
"lzma/."
include
"lzma/."
include
"spmemvfs/."
project
"ygopro"
project
"ygopro"
kind
"WindowedApp"
kind
"WindowedApp"
files
{
"**.cpp"
,
"**.cc"
,
"**.c"
,
"**.h"
}
files
{
"**.cpp"
,
"**.cc"
,
"**.c"
,
"**.h"
}
excludes
{
"lzma/**"
,
"spmemvfs/**"
}
excludes
"lzma/**"
includedirs
{
"../ocgcore"
}
includedirs
{
"../ocgcore"
}
links
{
"ocgcore"
,
"clzma"
,
"
cspmemvfs"
,
"
Irrlicht"
,
"freetype"
,
"sqlite3"
,
"lua"
,
"event"
}
links
{
"ocgcore"
,
"clzma"
,
"Irrlicht"
,
"freetype"
,
"sqlite3"
,
"lua"
,
"event"
}
configuration
"windows"
configuration
"windows"
files
"ygopro.rc"
files
"ygopro.rc"
...
...
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