Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
ygopro
Commits
652f36ba
Commit
652f36ba
authored
Jan 05, 2012
by
argon.sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
recon
parent
96299d3a
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
395 additions
and
442 deletions
+395
-442
gframe/client_field.h
gframe/client_field.h
+0
-1
gframe/data_manager.cpp
gframe/data_manager.cpp
+5
-9
gframe/data_manager.h
gframe/data_manager.h
+2
-2
gframe/deck_con.cpp
gframe/deck_con.cpp
+10
-7
gframe/deck_con.h
gframe/deck_con.h
+0
-1
gframe/deck_manager.cpp
gframe/deck_manager.cpp
+15
-11
gframe/deck_manager.h
gframe/deck_manager.h
+1
-0
gframe/drawing.cpp
gframe/drawing.cpp
+5
-1
gframe/event_handler.cpp
gframe/event_handler.cpp
+7
-160
gframe/event_handler.h
gframe/event_handler.h
+0
-2
gframe/game.cpp
gframe/game.cpp
+180
-112
gframe/game.h
gframe/game.h
+101
-83
gframe/message.cpp
gframe/message.cpp
+0
-10
gframe/network.cpp
gframe/network.cpp
+2
-37
strings.conf
strings.conf
+59
-0
system.conf
system.conf
+8
-6
No files found.
gframe/client_field.h
View file @
652f36ba
...
@@ -95,7 +95,6 @@ public:
...
@@ -95,7 +95,6 @@ public:
void
check_sel_sum_t
(
std
::
set
<
ClientCard
*>&
left
,
int
acc
);
void
check_sel_sum_t
(
std
::
set
<
ClientCard
*>&
left
,
int
acc
);
bool
check_sum
(
std
::
set
<
ClientCard
*>&
testlist
,
std
::
set
<
ClientCard
*>::
iterator
index
,
int
acc
,
int
count
);
bool
check_sum
(
std
::
set
<
ClientCard
*>&
testlist
,
std
::
set
<
ClientCard
*>::
iterator
index
,
int
acc
,
int
count
);
irr
::
IrrlichtDevice
*
device
;
irr
::
gui
::
IGUIElement
*
panel
;
irr
::
gui
::
IGUIElement
*
panel
;
std
::
vector
<
int
>
ancard
;
std
::
vector
<
int
>
ancard
;
int
hovered_controler
;
int
hovered_controler
;
...
...
gframe/data_manager.cpp
View file @
652f36ba
...
@@ -2,12 +2,7 @@
...
@@ -2,12 +2,7 @@
#include <stdio.h>
#include <stdio.h>
namespace
ygo
{
namespace
ygo
{
const
wchar_t
*
DataManager
::
unknown_string
=
L"???"
;
const
wchar_t
*
DataManager
::
unknown_string
=
L"???"
;
const
wchar_t
*
DataManager
::
effect_strings
[]
=
{
L"魔陷破坏"
,
L"怪兽破坏"
,
L"卡片除外"
,
L"送去墓地"
,
L"返回手牌"
,
L"返回卡组"
,
L"手牌破坏"
,
L"卡组破坏"
,
L"抽卡辅助"
,
L"卡组检索"
,
L"卡片回收"
,
L"表示形式"
,
L"控制权 "
,
L"攻守变化"
,
L"穿刺伤害"
,
L"多次攻击"
,
L"攻击限制"
,
L"直接攻击"
,
L"特殊召唤"
,
L"衍生物 "
,
L"种族相关"
,
L"属性相关"
,
L"LP伤害 "
,
L"LP回复 "
,
L"破坏耐性"
,
L"效果耐性"
,
L"指示物 "
,
L"幸运 "
,
L"融合相关"
,
L"同调相关"
,
L"超量相关"
,
L"效果无效"
};
wchar_t
DataManager
::
strBuffer
[
2048
];
wchar_t
DataManager
::
strBuffer
[
2048
];
bool
DataManager
::
LoadDates
(
const
char
*
file
)
{
bool
DataManager
::
LoadDates
(
const
char
*
file
)
{
...
@@ -18,6 +13,8 @@ bool DataManager::LoadDates(const char* file) {
...
@@ -18,6 +13,8 @@ bool DataManager::LoadDates(const char* file) {
const
char
*
sql
=
"select * from datas,texts where datas.id=texts.id"
;
const
char
*
sql
=
"select * from datas,texts where datas.id=texts.id"
;
if
(
sqlite3_prepare_v2
(
pDB
,
sql
,
-
1
,
&
pStmt
,
0
)
!=
SQLITE_OK
)
if
(
sqlite3_prepare_v2
(
pDB
,
sql
,
-
1
,
&
pStmt
,
0
)
!=
SQLITE_OK
)
return
Error
(
pDB
);
return
Error
(
pDB
);
for
(
int
i
=
0
;
i
<
2048
;
++
i
)
_sysStrings
[
i
]
=
0
;
CardDataC
cd
;
CardDataC
cd
;
CardString
cs
;
CardString
cs
;
for
(
int
i
=
0
;
i
<
16
;
++
i
)
cs
.
desc
[
i
]
=
0
;
for
(
int
i
=
0
;
i
<
16
;
++
i
)
cs
.
desc
[
i
]
=
0
;
...
@@ -160,10 +157,9 @@ const wchar_t* DataManager::GetDesc(int strCode) {
...
@@ -160,10 +157,9 @@ const wchar_t* DataManager::GetDesc(int strCode) {
return
unknown_string
;
return
unknown_string
;
}
}
const
wchar_t
*
DataManager
::
GetSysString
(
int
code
)
{
const
wchar_t
*
DataManager
::
GetSysString
(
int
code
)
{
auto
csit
=
_sysStrings
.
find
(
code
);
if
(
code
<
0
||
code
>=
2048
||
_sysStrings
[
code
]
==
0
)
if
(
csit
==
_sysStrings
.
end
())
return
unknown_string
;
return
unknown_string
;
return
csit
->
second
;
return
_sysStrings
[
code
]
;
}
}
const
wchar_t
*
DataManager
::
GetVictoryString
(
int
code
)
{
const
wchar_t
*
DataManager
::
GetVictoryString
(
int
code
)
{
auto
csit
=
_victoryStrings
.
find
(
code
);
auto
csit
=
_victoryStrings
.
find
(
code
);
...
...
gframe/data_manager.h
View file @
652f36ba
...
@@ -37,9 +37,10 @@ public:
...
@@ -37,9 +37,10 @@ public:
std
::
unordered_map
<
unsigned
int
,
CardDataC
>
_datas
;
std
::
unordered_map
<
unsigned
int
,
CardDataC
>
_datas
;
std
::
unordered_map
<
unsigned
int
,
CardString
>
_strings
;
std
::
unordered_map
<
unsigned
int
,
CardString
>
_strings
;
std
::
unordered_map
<
unsigned
int
,
wchar_t
*>
_sysStrings
;
std
::
unordered_map
<
unsigned
int
,
wchar_t
*>
_counterStrings
;
std
::
unordered_map
<
unsigned
int
,
wchar_t
*>
_counterStrings
;
std
::
unordered_map
<
unsigned
int
,
wchar_t
*>
_victoryStrings
;
std
::
unordered_map
<
unsigned
int
,
wchar_t
*>
_victoryStrings
;
wchar_t
*
_sysStrings
[
2048
];
wchar_t
numStrings
[
256
][
4
];
wchar_t
numStrings
[
256
][
4
];
wchar_t
attBuffer
[
128
];
wchar_t
attBuffer
[
128
];
wchar_t
racBuffer
[
128
];
wchar_t
racBuffer
[
128
];
...
@@ -47,7 +48,6 @@ public:
...
@@ -47,7 +48,6 @@ public:
static
wchar_t
strBuffer
[
2048
];
static
wchar_t
strBuffer
[
2048
];
static
const
wchar_t
*
unknown_string
;
static
const
wchar_t
*
unknown_string
;
static
const
wchar_t
*
effect_strings
[];
};
};
}
}
...
...
gframe/deck_con.cpp
View file @
652f36ba
...
@@ -9,7 +9,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -9,7 +9,7 @@ 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
();
irr
::
gui
::
IGUIEnvironment
*
env
=
device
->
getGUIEnvironment
();
irr
::
gui
::
IGUIEnvironment
*
env
=
mainGame
->
device
->
getGUIEnvironment
();
switch
(
event
.
GUIEvent
.
EventType
)
{
switch
(
event
.
GUIEvent
.
EventType
)
{
case
irr
:
:
gui
::
EGET_BUTTON_CLICKED
:
{
case
irr
:
:
gui
::
EGET_BUTTON_CLICKED
:
{
switch
(
id
)
{
switch
(
id
)
{
...
@@ -62,11 +62,14 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -62,11 +62,14 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame
->
wFilter
->
setVisible
(
false
);
mainGame
->
wFilter
->
setVisible
(
false
);
mainGame
->
wCardImg
->
setVisible
(
false
);
mainGame
->
wCardImg
->
setVisible
(
false
);
mainGame
->
wInfos
->
setVisible
(
false
);
mainGame
->
wInfos
->
setVisible
(
false
);
mainGame
->
cbDeckSel
->
setSelected
(
mainGame
->
cbDBDecks
->
getSelected
());
mainGame
->
PopupElement
(
mainGame
->
wMainMenu
);
mainGame
->
PopupElement
(
mainGame
->
wModeSelection
);
mainGame
->
device
->
setEventReceiver
(
&
mainGame
->
menuHandler
);
mainGame
->
device
->
setEventReceiver
(
&
mainGame
->
dField
);
mainGame
->
imageManager
.
ClearTexture
();
mainGame
->
imageManager
.
ClearTexture
();
mainGame
->
scrFilter
->
setVisible
(
false
);
mainGame
->
scrFilter
->
setVisible
(
false
);
wchar_t
*
p
=
mainGame
->
gameConf
.
lastdeck
;
if
(
mainGame
->
cbDBDecks
->
getSelected
()
!=
-
1
)
{
DataManager
::
CopyStr
(
mainGame
->
cbDBDecks
->
getItem
(
mainGame
->
cbDBDecks
->
getSelected
()),
p
,
63
);
}
break
;
break
;
}
}
case
BUTTON_EFFECT_FILTER
:
{
case
BUTTON_EFFECT_FILTER
:
{
...
@@ -289,7 +292,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -289,7 +292,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
me
.
GUIEvent
.
EventType
=
irr
::
gui
::
EGET_BUTTON_CLICKED
;
me
.
GUIEvent
.
EventType
=
irr
::
gui
::
EGET_BUTTON_CLICKED
;
me
.
GUIEvent
.
Caller
=
mainGame
->
btnStartFilter
;
me
.
GUIEvent
.
Caller
=
mainGame
->
btnStartFilter
;
me
.
GUIEvent
.
Element
=
mainGame
->
btnStartFilter
;
me
.
GUIEvent
.
Element
=
mainGame
->
btnStartFilter
;
device
->
postEventFromUser
(
me
);
mainGame
->
device
->
postEventFromUser
(
me
);
break
;
break
;
}
}
}
}
...
@@ -590,7 +593,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -590,7 +593,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
}
}
SEvent
e
=
event
;
SEvent
e
=
event
;
e
.
MouseInput
.
Event
=
irr
::
EMIE_MOUSE_MOVED
;
e
.
MouseInput
.
Event
=
irr
::
EMIE_MOUSE_MOVED
;
device
->
postEventFromUser
(
e
);
mainGame
->
device
->
postEventFromUser
(
e
);
break
;
break
;
}
}
}
}
...
@@ -604,7 +607,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -604,7 +607,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
break
;
break
;
}
}
case
irr
:
:
KEY_ESCAPE
:
{
case
irr
:
:
KEY_ESCAPE
:
{
device
->
minimizeWindow
();
mainGame
->
device
->
minimizeWindow
();
break
;
break
;
}
}
}
}
...
...
gframe/deck_con.h
View file @
652f36ba
...
@@ -35,7 +35,6 @@ public:
...
@@ -35,7 +35,6 @@ public:
int
dragy
;
int
dragy
;
code_pointer
draging_pointer
;
code_pointer
draging_pointer
;
irr
::
IrrlichtDevice
*
device
;
std
::
unordered_map
<
int
,
int
>*
filterList
;
std
::
unordered_map
<
int
,
int
>*
filterList
;
std
::
vector
<
code_pointer
>
results
;
std
::
vector
<
code_pointer
>
results
;
wchar_t
result_string
[
8
];
wchar_t
result_string
[
8
];
...
...
gframe/deck_manager.cpp
View file @
652f36ba
...
@@ -6,8 +6,7 @@
...
@@ -6,8 +6,7 @@
namespace
ygo
{
namespace
ygo
{
void
DeckManager
::
LoadLFList
()
{
void
DeckManager
::
LoadLFList
()
{
LFList
cur
;
LFList
*
cur
;
std
::
unordered_map
<
int
,
int
>*
curMap
=
0
;
FILE
*
fp
=
fopen
(
"lflist.conf"
,
"r"
);
FILE
*
fp
=
fopen
(
"lflist.conf"
,
"r"
);
char
linebuf
[
256
];
char
linebuf
[
256
];
wchar_t
strBuffer
[
256
];
wchar_t
strBuffer
[
256
];
...
@@ -24,11 +23,13 @@ void DeckManager::LoadLFList() {
...
@@ -24,11 +23,13 @@ void DeckManager::LoadLFList() {
if
(
linebuf
[
0
]
==
'!'
)
{
if
(
linebuf
[
0
]
==
'!'
)
{
sa
=
DataManager
::
DecodeUTF8
((
const
char
*
)(
&
linebuf
[
1
]),
strBuffer
);
sa
=
DataManager
::
DecodeUTF8
((
const
char
*
)(
&
linebuf
[
1
]),
strBuffer
);
while
(
strBuffer
[
sa
-
1
]
==
L'\r'
||
strBuffer
[
sa
-
1
]
==
L'\n'
)
sa
--
;
while
(
strBuffer
[
sa
-
1
]
==
L'\r'
||
strBuffer
[
sa
-
1
]
==
L'\n'
)
sa
--
;
memcpy
(
cur
.
listName
,
(
const
void
*
)
strBuffer
,
40
);
LFList
newlist
;
cur
.
listName
[
sa
]
=
0
;
_lfList
.
push_back
(
newlist
);
curMap
=
new
std
::
unordered_map
<
int
,
int
>
;
cur
=
&
_lfList
[
_lfList
.
size
()
-
1
];
cur
.
content
=
curMap
;
memcpy
(
cur
->
listName
,
(
const
void
*
)
strBuffer
,
40
);
_lfList
.
push_back
(
cur
);
cur
->
listName
[
sa
]
=
0
;
cur
->
content
=
new
std
::
unordered_map
<
int
,
int
>
;
cur
->
hash
=
0x7dfcee6a
;
continue
;
continue
;
}
}
while
(
linebuf
[
p
]
!=
' '
&&
linebuf
[
p
]
!=
'\t'
&&
linebuf
[
p
]
!=
0
)
p
++
;
while
(
linebuf
[
p
]
!=
' '
&&
linebuf
[
p
]
!=
'\t'
&&
linebuf
[
p
]
!=
0
)
p
++
;
...
@@ -43,13 +44,16 @@ void DeckManager::LoadLFList() {
...
@@ -43,13 +44,16 @@ void DeckManager::LoadLFList() {
while
(
linebuf
[
p
]
!=
' '
&&
linebuf
[
p
]
!=
'\t'
&&
linebuf
[
p
]
!=
0
)
p
++
;
while
(
linebuf
[
p
]
!=
' '
&&
linebuf
[
p
]
!=
'\t'
&&
linebuf
[
p
]
!=
0
)
p
++
;
linebuf
[
p
]
=
0
;
linebuf
[
p
]
=
0
;
count
=
atoi
(
&
linebuf
[
sa
]);
count
=
atoi
(
&
linebuf
[
sa
]);
(
*
curMap
)[
code
]
=
count
;
(
*
cur
->
content
)[
code
]
=
count
;
cur
->
hash
=
cur
->
hash
^
((
code
<<
18
)
|
(
code
>>
14
))
^
((
code
<<
(
27
+
count
))
|
(
code
>>
(
5
-
count
)));
}
}
fclose
(
fp
);
fclose
(
fp
);
}
}
myswprintf
(
cur
.
listName
,
L"无限制"
);
LFList
nolimit
;
cur
.
content
=
new
std
::
unordered_map
<
int
,
int
>
;
myswprintf
(
nolimit
.
listName
,
L"无限制"
);
_lfList
.
push_back
(
cur
);
nolimit
.
hash
=
0
;
nolimit
.
content
=
new
std
::
unordered_map
<
int
,
int
>
;
_lfList
.
push_back
(
nolimit
);
}
}
bool
DeckManager
::
CheckLFList
(
Deck
&
deck
,
int
lfindex
)
{
bool
DeckManager
::
CheckLFList
(
Deck
&
deck
,
int
lfindex
)
{
std
::
unordered_map
<
int
,
int
>
ccount
;
std
::
unordered_map
<
int
,
int
>
ccount
;
...
...
gframe/deck_manager.h
View file @
652f36ba
...
@@ -9,6 +9,7 @@
...
@@ -9,6 +9,7 @@
namespace
ygo
{
namespace
ygo
{
struct
LFList
{
struct
LFList
{
unsigned
int
hash
;
wchar_t
listName
[
20
];
wchar_t
listName
[
20
];
std
::
unordered_map
<
int
,
int
>*
content
;
std
::
unordered_map
<
int
,
int
>*
content
;
};
};
...
...
gframe/drawing.cpp
View file @
652f36ba
...
@@ -404,6 +404,7 @@ void Game::DrawGUI() {
...
@@ -404,6 +404,7 @@ void Game::DrawGUI() {
for
(
int
i
=
0
;
i
<
5
;
++
i
)
for
(
int
i
=
0
;
i
<
5
;
++
i
)
btnCardSelect
[
i
]
->
setDrawImage
(
true
);
btnCardSelect
[
i
]
->
setDrawImage
(
true
);
}
}
env
->
setFocus
(
guiFading
);
}
else
}
else
guiFading
->
setRelativePosition
(
irr
::
core
::
recti
(
fadingUL
,
fadingLR
));
guiFading
->
setRelativePosition
(
irr
::
core
::
recti
(
fadingUL
,
fadingLR
));
}
}
...
@@ -430,6 +431,8 @@ void Game::DrawGUI() {
...
@@ -430,6 +431,8 @@ void Game::DrawGUI() {
for
(
int
i
=
0
;
i
<
5
;
++
i
)
for
(
int
i
=
0
;
i
<
5
;
++
i
)
btnCardSelect
[
i
]
->
setDrawImage
(
true
);
btnCardSelect
[
i
]
->
setDrawImage
(
true
);
}
}
if
(
guiNext
)
ShowElement
(
guiNext
);
}
else
}
else
guiFading
->
setRelativePosition
(
irr
::
core
::
recti
(
fadingUL
,
fadingLR
));
guiFading
->
setRelativePosition
(
irr
::
core
::
recti
(
fadingUL
,
fadingLR
));
}
}
...
@@ -547,7 +550,7 @@ void Game::ShowElement(irr::gui::IGUIElement * win, int autoframe) {
...
@@ -547,7 +550,7 @@ void Game::ShowElement(irr::gui::IGUIElement * win, int autoframe) {
win
->
setRelativePosition
(
irr
::
core
::
recti
(
center
.
X
,
center
.
Y
,
0
,
0
));
win
->
setRelativePosition
(
irr
::
core
::
recti
(
center
.
X
,
center
.
Y
,
0
,
0
));
win
->
setVisible
(
true
);
win
->
setVisible
(
true
);
}
}
void
Game
::
HideElement
(
irr
::
gui
::
IGUIElement
*
win
,
bool
set_action
)
{
void
Game
::
HideElement
(
irr
::
gui
::
IGUIElement
*
win
,
bool
set_action
,
irr
::
gui
::
IGUIElement
*
next
)
{
if
(
fadingFrame
||
!
win
->
isVisible
())
if
(
fadingFrame
||
!
win
->
isVisible
())
return
;
return
;
fadingSize
=
win
->
getRelativePosition
();
fadingSize
=
win
->
getRelativePosition
();
...
@@ -560,6 +563,7 @@ void Game::HideElement(irr::gui::IGUIElement * win, bool set_action) {
...
@@ -560,6 +563,7 @@ void Game::HideElement(irr::gui::IGUIElement * win, bool set_action) {
fadingFrame
=
10
;
fadingFrame
=
10
;
autoFadeoutFrame
=
0
;
autoFadeoutFrame
=
0
;
signalAction
=
set_action
;
signalAction
=
set_action
;
guiNext
=
next
;
if
(
win
==
wPosSelect
)
{
if
(
win
==
wPosSelect
)
{
btnPSAU
->
setDrawImage
(
false
);
btnPSAU
->
setDrawImage
(
false
);
btnPSAD
->
setDrawImage
(
false
);
btnPSAD
->
setDrawImage
(
false
);
...
...
gframe/event_handler.cpp
View file @
652f36ba
...
@@ -10,131 +10,15 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -10,131 +10,15 @@ bool ClientField::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
();
irr
::
gui
::
IGUIEnvironment
*
env
=
device
->
getGUIEnvironment
();
irr
::
gui
::
IGUIEnvironment
*
env
=
mainGame
->
device
->
getGUIEnvironment
();
switch
(
event
.
GUIEvent
.
EventType
)
{
switch
(
event
.
GUIEvent
.
EventType
)
{
case
irr
:
:
gui
::
EGET_BUTTON_CLICKED
:
{
case
irr
:
:
gui
::
EGET_BUTTON_CLICKED
:
{
switch
(
id
)
{
switch
(
id
)
{
case
BUTTON_CLEAR_LOG
:
{
case
BUTTON_CLEAR_LOG
:
{
mainGame
->
lstLog
->
clear
();
mainGame
->
lstLog
->
clear
();
mainGame
->
logParam
.
clear
();
mainGame
->
logParam
.
clear
();
break
;
break
;
}
}
case
BUTTON_MODE_EXIT
:
{
mainGame
->
netManager
.
CancelHost
();
mainGame
->
device
->
closeDevice
();
break
;
}
case
BUTTON_LAN_START_SERVER
:
{
if
(
mainGame
->
cbDeckSel
->
getSelected
()
==
-
1
)
break
;
if
(
!
mainGame
->
deckManager
.
LoadDeck
(
mainGame
->
cbDeckSel
->
getItem
(
mainGame
->
cbDeckSel
->
getSelected
())))
{
mainGame
->
stModeStatus
->
setText
(
L"无效卡组"
);
break
;
}
if
(
!
mainGame
->
chkNoCheckDeck
->
isChecked
()
&&
!
mainGame
->
deckManager
.
CheckLFList
(
mainGame
->
deckManager
.
deckhost
,
mainGame
->
cbLFlist
->
getSelected
()))
{
mainGame
->
stModeStatus
->
setText
(
L"无效卡组或者卡组不符合禁卡表规范"
);
break
;
}
if
(
_wtoi
(
mainGame
->
ebStartLP
->
getText
())
==
0
)
mainGame
->
ebStartLP
->
setText
(
L"8000"
);
if
(
_wtoi
(
mainGame
->
ebStartHand
->
getText
())
==
0
)
mainGame
->
ebStartLP
->
setText
(
L"5"
);
if
(
_wtoi
(
mainGame
->
ebDrawCount
->
getText
())
==
0
)
mainGame
->
ebStartLP
->
setText
(
L"1"
);
if
(
mainGame
->
netManager
.
CreateHost
(
mainGame
->
cbIPList
->
getSelected
()))
{
mainGame
->
btnLanStartServer
->
setEnabled
(
false
);
mainGame
->
btnLanCancelServer
->
setEnabled
(
true
);
mainGame
->
btnLanConnect
->
setEnabled
(
false
);
mainGame
->
btnRefreshList
->
setEnabled
(
false
);
mainGame
->
btnLoadReplay
->
setEnabled
(
false
);
mainGame
->
btnDeckEdit
->
setEnabled
(
false
);
mainGame
->
stModeStatus
->
setText
(
L"等待连接..."
);
}
break
;
}
case
BUTTON_LAN_CANCEL_SERVER
:
{
mainGame
->
netManager
.
CancelHost
();
mainGame
->
stModeStatus
->
setText
(
L""
);
break
;
}
case
BUTTON_LAN_REFRESH
:
{
if
(
mainGame
->
netManager
.
RefreshHost
(
mainGame
->
cbIPList
->
getSelected
()))
{
mainGame
->
btnLanStartServer
->
setEnabled
(
false
);
mainGame
->
btnLanConnect
->
setEnabled
(
false
);
mainGame
->
btnRefreshList
->
setEnabled
(
false
);
mainGame
->
btnLoadReplay
->
setEnabled
(
false
);
mainGame
->
btnDeckEdit
->
setEnabled
(
false
);
}
break
;
}
case
BUTTON_LAN_CONNECT
:
{
if
(
mainGame
->
cbDeckSel
->
getSelected
()
==
-
1
)
break
;
if
(
!
mainGame
->
deckManager
.
LoadDeck
(
mainGame
->
cbDeckSel
->
getItem
(
mainGame
->
cbDeckSel
->
getSelected
())))
{
mainGame
->
stModeStatus
->
setText
(
L"无效卡组"
);
break
;
}
if
(
mainGame
->
netManager
.
JoinHost
())
{
mainGame
->
btnLanStartServer
->
setEnabled
(
false
);
mainGame
->
btnLanConnect
->
setEnabled
(
false
);
mainGame
->
btnRefreshList
->
setEnabled
(
false
);
mainGame
->
btnLoadReplay
->
setEnabled
(
false
);
mainGame
->
btnDeckEdit
->
setEnabled
(
false
);
mainGame
->
stModeStatus
->
setText
(
L"连接中..."
);
}
break
;
}
case
BUTTON_DECK_EDIT
:
{
if
(
mainGame
->
cbDeckSel
->
getSelected
()
==
-
1
)
break
;
if
(
!
mainGame
->
deckManager
.
LoadDeck
(
mainGame
->
cbDeckSel
->
getItem
(
mainGame
->
cbDeckSel
->
getSelected
())))
{
mainGame
->
stModeStatus
->
setText
(
L"无法载入卡组"
);
break
;
}
mainGame
->
HideElement
(
mainGame
->
wModeSelection
);
mainGame
->
is_building
=
true
;
mainGame
->
wInfos
->
setVisible
(
true
);
mainGame
->
wCardImg
->
setVisible
(
true
);
mainGame
->
wDeckEdit
->
setVisible
(
true
);
mainGame
->
wFilter
->
setVisible
(
true
);
mainGame
->
deckBuilder
.
filterList
=
mainGame
->
deckManager
.
_lfList
[
mainGame
->
cbLFlist
->
getSelected
()].
content
;;
mainGame
->
cbDBLFList
->
setSelected
(
mainGame
->
cbLFlist
->
getSelected
());
mainGame
->
device
->
setEventReceiver
(
&
mainGame
->
deckBuilder
);
mainGame
->
cbCardType
->
setSelected
(
0
);
mainGame
->
cbCardType2
->
setSelected
(
0
);
mainGame
->
cbAttribute
->
setSelected
(
0
);
mainGame
->
cbRace
->
setSelected
(
0
);
mainGame
->
ebAttack
->
setText
(
L""
);
mainGame
->
ebDefence
->
setText
(
L""
);
mainGame
->
ebStar
->
setText
(
L""
);
mainGame
->
cbCardType2
->
setEnabled
(
false
);
mainGame
->
cbAttribute
->
setEnabled
(
false
);
mainGame
->
cbRace
->
setEnabled
(
false
);
mainGame
->
ebAttack
->
setEnabled
(
false
);
mainGame
->
ebDefence
->
setEnabled
(
false
);
mainGame
->
ebStar
->
setEnabled
(
false
);
mainGame
->
deckBuilder
.
filter_effect
=
0
;
mainGame
->
deckBuilder
.
result_string
[
0
]
=
L'0'
;
mainGame
->
deckBuilder
.
result_string
[
1
]
=
0
;
mainGame
->
deckBuilder
.
results
.
clear
();
mainGame
->
deckBuilder
.
is_draging
=
false
;
mainGame
->
cbDBDecks
->
setSelected
(
mainGame
->
cbDeckSel
->
getSelected
());
for
(
int
i
=
0
;
i
<
32
;
++
i
)
mainGame
->
chkCategory
[
i
]
->
setChecked
(
false
);
break
;
}
case
BUTTON_LOAD_REPLAY
:
{
if
(
mainGame
->
lstReplayList
->
getSelected
()
==
-
1
)
break
;
if
(
!
mainGame
->
lastReplay
.
OpenReplay
(
mainGame
->
lstReplayList
->
getListItem
(
mainGame
->
lstReplayList
->
getSelected
())))
{
mainGame
->
stModeStatus
->
setText
(
L"录像损坏或丢失,无法播放"
);
break
;
}
mainGame
->
stModeStatus
->
setText
(
L""
);
Thread
::
NewThread
(
Game
::
ReplayThread
,
&
mainGame
->
dInfo
);
break
;
}
case
BUTTON_REPLAY_START
:
{
case
BUTTON_REPLAY_START
:
{
if
(
!
mainGame
->
dField
.
is_replaying
)
if
(
!
mainGame
->
dField
.
is_replaying
)
break
;
break
;
...
@@ -751,23 +635,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -751,23 +635,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
case
irr
:
:
gui
::
EGET_LISTBOX_CHANGED
:
{
case
irr
:
:
gui
::
EGET_LISTBOX_CHANGED
:
{
switch
(
id
)
{
switch
(
id
)
{
case
LISTBOX_SERVER_LIST
:
{
if
(
mainGame
->
lstServerList
->
getSelected
()
==
-
1
)
break
;
HostInfo
&
hi
=
mainGame
->
netManager
.
hosts
[
mainGame
->
lstServerList
->
getSelected
()];
myswprintf
(
formatBuffer
,
L"%d.%d.%d.%d"
,
hi
.
address
&
0xff
,
(
hi
.
address
>>
8
)
&
0xff
,
(
hi
.
address
>>
16
)
&
0xff
,
(
hi
.
address
>>
24
)
&
0xff
);
mainGame
->
ebJoinIP
->
setText
(
formatBuffer
);
myswprintf
(
formatBuffer
,
L"%d"
,
hi
.
port
);
mainGame
->
ebJoinPort
->
setText
(
formatBuffer
);
break
;
}
case
LISTBOX_LOG
:
{
int
sel
=
mainGame
->
lstLog
->
getSelected
();
if
(
sel
!=
-
1
&&
mainGame
->
logParam
.
size
()
>=
sel
&&
mainGame
->
logParam
[
sel
])
{
mainGame
->
ShowCardInfo
(
mainGame
->
logParam
[
sel
]);
}
break
;
}
}
}
break
;
break
;
}
}
...
@@ -807,27 +675,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -807,27 +675,6 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
break
;
}
}
}
}
case
irr
:
:
gui
::
EGET_TAB_CHANGED
:
{
switch
(
id
)
{
case
TAB_MODES
:
{
if
(
mainGame
->
wModes
->
getActiveTab
()
==
1
)
{
if
(
mainGame
->
is_refreshing
||
mainGame
->
netManager
.
is_creating_host
)
break
;
if
(
mainGame
->
netManager
.
RefreshHost
(
mainGame
->
cbIPList
->
getSelected
()))
{
mainGame
->
btnLanStartServer
->
setEnabled
(
false
);
mainGame
->
btnLanConnect
->
setEnabled
(
false
);
mainGame
->
btnRefreshList
->
setEnabled
(
false
);
mainGame
->
btnLoadReplay
->
setEnabled
(
false
);
mainGame
->
btnDeckEdit
->
setEnabled
(
false
);
}
}
else
if
(
mainGame
->
wModes
->
getActiveTab
()
==
2
)
{
mainGame
->
RefreshReplay
();
}
break
;
}
}
break
;
}
case
irr
:
:
gui
::
EGET_EDITBOX_CHANGED
:
{
case
irr
:
:
gui
::
EGET_EDITBOX_CHANGED
:
{
switch
(
id
)
{
switch
(
id
)
{
case
EDITBOX_ANCARD
:
{
case
EDITBOX_ANCARD
:
{
...
@@ -1455,7 +1302,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -1455,7 +1302,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
break
;
}
}
case
irr
:
:
KEY_ESCAPE
:
{
case
irr
:
:
KEY_ESCAPE
:
{
device
->
minimizeWindow
();
mainGame
->
device
->
minimizeWindow
();
break
;
break
;
}
}
}
}
...
@@ -1624,11 +1471,11 @@ void ClientField::ShowMenu(int flag, int x, int y) {
...
@@ -1624,11 +1471,11 @@ void ClientField::ShowMenu(int flag, int x, int y) {
}
else
mainGame
->
btnSSet
->
setVisible
(
false
);
}
else
mainGame
->
btnSSet
->
setVisible
(
false
);
if
(
flag
&
COMMAND_REPOS
)
{
if
(
flag
&
COMMAND_REPOS
)
{
if
(
clicked_card
->
position
&
POS_FACEDOWN
)
if
(
clicked_card
->
position
&
POS_FACEDOWN
)
mainGame
->
btnRepos
->
setText
(
L"反转召唤"
);
mainGame
->
btnRepos
->
setText
(
mainGame
->
dataManager
.
GetSysString
(
1154
)
);
else
if
(
clicked_card
->
position
&
POS_ATTACK
)
else
if
(
clicked_card
->
position
&
POS_ATTACK
)
mainGame
->
btnRepos
->
setText
(
L"守备表示"
);
mainGame
->
btnRepos
->
setText
(
mainGame
->
dataManager
.
GetSysString
(
1155
)
);
else
else
mainGame
->
btnRepos
->
setText
(
L"攻击表示"
);
mainGame
->
btnRepos
->
setText
(
mainGame
->
dataManager
.
GetSysString
(
1156
)
);
mainGame
->
btnRepos
->
setVisible
(
true
);
mainGame
->
btnRepos
->
setVisible
(
true
);
mainGame
->
btnRepos
->
setRelativePosition
(
position2di
(
1
,
height
));
mainGame
->
btnRepos
->
setRelativePosition
(
position2di
(
1
,
height
));
height
+=
21
;
height
+=
21
;
...
...
gframe/event_handler.h
View file @
652f36ba
...
@@ -9,12 +9,10 @@ namespace ygo {
...
@@ -9,12 +9,10 @@ namespace ygo {
class
EventHandler
:
public
irr
::
IEventReceiver
{
class
EventHandler
:
public
irr
::
IEventReceiver
{
public:
public:
EventHandler
(
irr
::
IrrlichtDevice
*
dev
);
virtual
bool
OnEvent
(
const
irr
::
SEvent
&
event
);
virtual
bool
OnEvent
(
const
irr
::
SEvent
&
event
);
void
GetHoverField
(
int
x
,
int
y
);
void
GetHoverField
(
int
x
,
int
y
);
void
ShowMenu
(
int
flag
,
int
x
,
int
y
);
void
ShowMenu
(
int
flag
,
int
x
,
int
y
);
irr
::
IrrlichtDevice
*
device
;
irr
::
gui
::
IGUIElement
*
panel
;
irr
::
gui
::
IGUIElement
*
panel
;
int
hovered_controler
;
int
hovered_controler
;
int
hovered_location
;
int
hovered_location
;
...
...
gframe/game.cpp
View file @
652f36ba
...
@@ -16,8 +16,9 @@ Game::Game() {
...
@@ -16,8 +16,9 @@ Game::Game() {
Game
::~
Game
()
{
Game
::~
Game
()
{
}
}
bool
Game
::
Initialize
()
{
bool
Game
::
Initialize
()
{
LoadConfig
();
irr
::
SIrrlichtCreationParameters
params
=
irr
::
SIrrlichtCreationParameters
();
irr
::
SIrrlichtCreationParameters
params
=
irr
::
SIrrlichtCreationParameters
();
params
.
AntiAlias
=
2
;
params
.
AntiAlias
=
gameConf
.
antialias
;
params
.
DriverType
=
irr
::
video
::
EDT_OPENGL
;
params
.
DriverType
=
irr
::
video
::
EDT_OPENGL
;
params
.
WindowSize
=
irr
::
core
::
dimension2d
<
u32
>
(
1024
,
640
);
params
.
WindowSize
=
irr
::
core
::
dimension2d
<
u32
>
(
1024
,
640
);
device
=
irr
::
createDeviceEx
(
params
);
device
=
irr
::
createDeviceEx
(
params
);
...
@@ -35,8 +36,6 @@ bool Game::Initialize() {
...
@@ -35,8 +36,6 @@ bool Game::Initialize() {
always_chain
=
false
;
always_chain
=
false
;
ignore_chain
=
false
;
ignore_chain
=
false
;
is_building
=
false
;
is_building
=
false
;
dField
.
device
=
device
;
deckBuilder
.
device
=
device
;
memset
(
&
dInfo
,
0
,
sizeof
(
DuelInfo
));
memset
(
&
dInfo
,
0
,
sizeof
(
DuelInfo
));
netManager
.
GetLocalAddress
();
netManager
.
GetLocalAddress
();
netManager
.
send_buffer_ptr
=
&
netManager
.
send_buf
[
2
];
netManager
.
send_buffer_ptr
=
&
netManager
.
send_buf
[
2
];
...
@@ -49,93 +48,112 @@ bool Game::Initialize() {
...
@@ -49,93 +48,112 @@ bool Game::Initialize() {
if
(
!
imageManager
.
Initial
())
if
(
!
imageManager
.
Initial
())
return
false
;
return
false
;
env
=
device
->
getGUIEnvironment
();
env
=
device
->
getGUIEnvironment
();
numFont
=
irr
::
gui
::
CGUITTFont
::
createTTFont
(
env
,
gameConf
.
numfont
,
16
);
adFont
=
irr
::
gui
::
CGUITTFont
::
createTTFont
(
env
,
gameConf
.
numfont
,
12
);
lpcFont
=
irr
::
gui
::
CGUITTFont
::
createTTFont
(
env
,
gameConf
.
numfont
,
48
);
guiFont
=
irr
::
gui
::
CGUITTFont
::
createTTFont
(
env
,
gameConf
.
textfont
,
14
);
textFont
=
guiFont
;
smgr
=
device
->
getSceneManager
();
smgr
=
device
->
getSceneManager
();
device
->
setWindowCaption
(
L"[---]"
);
device
->
setWindowCaption
(
L"[---]"
);
device
->
setResizable
(
false
);
device
->
setResizable
(
false
);
//main menu
myswprintf
(
dataManager
.
strBuffer
,
L"YGOPro Version:0x%X)"
,
PROTO_VERSION
);
myswprintf
(
dataManager
.
strBuffer
,
L"YGOPro Version:0x%X)"
,
PROTO_VERSION
);
wModeSelection
=
env
->
addWindow
(
rect
<
s32
>
(
270
,
100
,
750
,
490
),
false
,
dataManager
.
strBuffer
);
wMainMenu
=
env
->
addWindow
(
rect
<
s32
>
(
370
,
200
,
650
,
450
),
false
,
dataManager
.
strBuffer
);
wModeSelection
->
getCloseButton
()
->
setVisible
(
false
);
wMainMenu
->
getCloseButton
()
->
setVisible
(
false
);
wModes
=
env
->
addTabControl
(
rect
<
s32
>
(
5
,
60
,
475
,
350
),
wModeSelection
,
false
,
true
,
TAB_MODES
);
btnLanMode
=
env
->
addButton
(
rect
<
s32
>
(
10
,
25
,
270
,
55
),
wMainMenu
,
BUTTON_LAN_MODE
,
dataManager
.
GetSysString
(
1200
));
irr
::
gui
::
IGUITab
*
tabLanS
=
wModes
->
addTab
(
L"建立主机"
);
btnServerMode
=
env
->
addButton
(
rect
<
s32
>
(
10
,
60
,
270
,
90
),
wMainMenu
,
BUTTON_SERVER_MODE
,
dataManager
.
GetSysString
(
1201
));
irr
::
gui
::
IGUITab
*
tabLanC
=
wModes
->
addTab
(
L"加入游戏"
);
btnReplayMode
=
env
->
addButton
(
rect
<
s32
>
(
10
,
95
,
270
,
125
),
wMainMenu
,
BUTTON_REPLAY_MODE
,
dataManager
.
GetSysString
(
1202
));
irr
::
gui
::
IGUITab
*
tabReplay
=
wModes
->
addTab
(
L"观看录像"
);
btnTestMode
=
env
->
addButton
(
rect
<
s32
>
(
10
,
130
,
270
,
160
),
wMainMenu
,
BUTTON_TEST_MODE
,
dataManager
.
GetSysString
(
1203
));
chkNoCheckDeck
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
10
,
10
,
210
,
30
),
tabLanS
,
-
1
,
L"不检查卡组"
);
btnDeckEdit
=
env
->
addButton
(
rect
<
s32
>
(
10
,
165
,
270
,
195
),
wMainMenu
,
BUTTON_DECK_EDIT
,
dataManager
.
GetSysString
(
1204
));
chkNoShuffleDeck
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
10
,
35
,
210
,
55
),
tabLanS
,
-
1
,
L"开局不洗卡组"
);
btnModeExit
=
env
->
addButton
(
rect
<
s32
>
(
10
,
200
,
270
,
230
),
wMainMenu
,
BUTTON_MODE_EXIT
,
dataManager
.
GetSysString
(
1210
));
chkNoShufflePlayer
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
10
,
60
,
210
,
80
),
tabLanS
,
-
1
,
L"主机固定先攻"
);
//lan mode
chkAttackFT
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
10
,
85
,
210
,
105
),
tabLanS
,
-
1
,
L"第一回合可以攻击"
);
wLanWindow
=
env
->
addWindow
(
rect
<
s32
>
(
220
,
100
,
800
,
520
),
false
,
dataManager
.
GetSysString
(
1200
));
chkNoChainHint
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
10
,
110
,
210
,
130
),
tabLanS
,
-
1
,
L"没有可用连锁时不等待"
);
wLanWindow
->
getCloseButton
()
->
setVisible
(
false
);
env
->
addStaticText
(
L"起始LP:"
,
rect
<
s32
>
(
200
,
10
,
300
,
30
),
false
,
false
,
tabLanS
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1220
),
rect
<
s32
>
(
10
,
30
,
220
,
50
),
false
,
false
,
wLanWindow
);
myswprintf
(
dataManager
.
strBuffer
,
L"%d"
,
8000
);
ebNickName
=
env
->
addEditBox
(
gameConf
.
nickname
,
rect
<
s32
>
(
110
,
25
,
450
,
50
),
true
,
wLanWindow
);
ebStartLP
=
env
->
addEditBox
(
dataManager
.
strBuffer
,
rect
<
s32
>
(
310
,
10
,
390
,
30
),
true
,
tabLanS
);
ebNickName
->
setTextAlignment
(
irr
::
gui
::
EGUIA_UPPERLEFT
,
irr
::
gui
::
EGUIA_CENTER
);
ebStartLP
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
lstHostList
=
env
->
addListBox
(
rect
<
s32
>
(
10
,
60
,
570
,
350
),
wLanWindow
,
LISTBOX_LAN_HOST
,
true
);
env
->
addStaticText
(
L"起始手牌:"
,
rect
<
s32
>
(
200
,
35
,
300
,
55
),
false
,
false
,
tabLanS
);
lstHostList
->
setItemHeight
(
18
);
myswprintf
(
dataManager
.
strBuffer
,
L"%d"
,
5
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1221
),
rect
<
s32
>
(
10
,
360
,
220
,
380
),
false
,
false
,
wLanWindow
);
ebStartHand
=
env
->
addEditBox
(
dataManager
.
strBuffer
,
rect
<
s32
>
(
310
,
35
,
390
,
55
),
true
,
tabLanS
);
ebJoinIP
=
env
->
addEditBox
(
gameConf
.
lastip
,
rect
<
s32
>
(
110
,
355
,
250
,
380
),
true
,
wLanWindow
);
ebStartHand
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
env
->
addStaticText
(
L"每回合抽卡:"
,
rect
<
s32
>
(
200
,
60
,
300
,
80
),
false
,
false
,
tabLanS
);
myswprintf
(
dataManager
.
strBuffer
,
L"%d"
,
1
);
ebDrawCount
=
env
->
addEditBox
(
dataManager
.
strBuffer
,
rect
<
s32
>
(
310
,
60
,
390
,
80
),
true
,
tabLanS
);
ebDrawCount
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
env
->
addStaticText
(
L"禁限卡表:"
,
rect
<
s32
>
(
200
,
85
,
300
,
105
),
false
,
false
,
tabLanS
);
cbLFlist
=
env
->
addComboBox
(
rect
<
s32
>
(
310
,
85
,
450
,
105
),
tabLanS
);
for
(
int
i
=
0
;
i
<
deckManager
.
_lfList
.
size
();
++
i
)
cbLFlist
->
addItem
(
deckManager
.
_lfList
[
i
].
listName
);
//env->addStaticText(L"决斗模式:", rect<s32>(200, 110, 300, 130), false, false, tabLanS);
cbMatchMode
=
env
->
addComboBox
(
rect
<
s32
>
(
310
,
110
,
450
,
130
),
tabLanS
);
cbMatchMode
->
addItem
(
L"单局模式"
);
cbMatchMode
->
addItem
(
L"比赛模式"
);
cbMatchMode
->
setVisible
(
false
);
//env->addStaticText(L"回合时间:", rect<s32>(200, 135, 300, 155), false, false, tabLanS);
cbTurnTime
=
env
->
addComboBox
(
rect
<
s32
>
(
310
,
135
,
450
,
155
),
tabLanS
);
cbTurnTime
->
addItem
(
L"无限制"
);
cbTurnTime
->
addItem
(
L"5分钟"
);
cbTurnTime
->
addItem
(
L"3分钟"
);
cbTurnTime
->
addItem
(
L"1分钟"
);
cbTurnTime
->
setVisible
(
false
);
env
->
addStaticText
(
L"游戏名:"
,
rect
<
s32
>
(
10
,
205
,
100
,
225
),
false
,
false
,
tabLanS
);
ebServerName
=
env
->
addEditBox
(
L"Game"
,
rect
<
s32
>
(
100
,
205
,
240
,
225
),
true
,
tabLanS
);
ebServerName
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
env
->
addStaticText
(
L"密码:"
,
rect
<
s32
>
(
10
,
230
,
100
,
250
),
false
,
false
,
tabLanS
);
ebServerPass
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
100
,
230
,
240
,
250
),
true
,
tabLanS
);
ebServerPass
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
btnLanStartServer
=
env
->
addButton
(
rect
<
s32
>
(
350
,
195
,
460
,
220
),
tabLanS
,
BUTTON_LAN_START_SERVER
,
L"建立主机"
);
btnLanCancelServer
=
env
->
addButton
(
rect
<
s32
>
(
350
,
225
,
460
,
250
),
tabLanS
,
BUTTON_LAN_CANCEL_SERVER
,
L"取消主机"
);
btnLanCancelServer
->
setEnabled
(
false
);
lstServerList
=
env
->
addListBox
(
rect
<
s32
>
(
10
,
10
,
460
,
136
),
tabLanC
,
LISTBOX_SERVER_LIST
,
true
);
lstServerList
->
setItemHeight
(
18
);
btnRefreshList
=
env
->
addButton
(
rect
<
s32
>
(
180
,
145
,
280
,
170
),
tabLanC
,
BUTTON_LAN_REFRESH
,
L"刷新"
);
chkStOnly
=
env
->
addCheckBox
(
true
,
rect
<
s32
>
(
10
,
180
,
220
,
200
),
tabLanC
,
-
1
,
L"只连接标准模式的主机"
);
env
->
addStaticText
(
L"主机地址:"
,
rect
<
s32
>
(
10
,
205
,
120
,
225
),
false
,
false
,
tabLanC
);
ebJoinIP
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
100
,
205
,
240
,
225
),
true
,
tabLanC
);
ebJoinIP
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
ebJoinIP
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
ebJoinPort
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
245
,
205
,
305
,
225
),
true
,
tabLanC
);
ebJoinPort
=
env
->
addEditBox
(
gameConf
.
lastport
,
rect
<
s32
>
(
260
,
355
,
320
,
380
),
true
,
wLanWindow
);
ebJoinPort
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
ebJoinPort
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
env
->
addStaticText
(
L"游戏密码:"
,
rect
<
s32
>
(
10
,
230
,
120
,
250
),
false
,
false
,
tabLanC
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1222
),
rect
<
s32
>
(
10
,
390
,
220
,
410
),
false
,
false
,
wLanWindow
);
ebJoinPass
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
1
00
,
230
,
240
,
250
),
true
,
tabLanC
);
ebJoinPass
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
1
10
,
385
,
250
,
410
),
true
,
wLanWindow
);
ebJoinPass
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
ebJoinPass
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
btnLanConnect
=
env
->
addButton
(
rect
<
s32
>
(
350
,
225
,
460
,
250
),
tabLanC
,
BUTTON_LAN_CONNECT
,
L"加入游戏"
);
ebJoinPass
->
setPasswordBox
(
true
);
lstReplayList
=
env
->
addListBox
(
rect
<
s32
>
(
10
,
10
,
460
,
190
),
tabReplay
,
LISTBOX_REPLAY_LIST
,
true
);
btnJoinHost
=
env
->
addButton
(
rect
<
s32
>
(
460
,
355
,
570
,
380
),
wLanWindow
,
BUTTON_JOIN_HOST
,
dataManager
.
GetSysString
(
1223
));
lstReplayList
->
setItemHeight
(
18
);
btnJoinCancel
=
env
->
addButton
(
rect
<
s32
>
(
460
,
385
,
570
,
410
),
wLanWindow
,
BUTTON_JOIN_CANCEL
,
dataManager
.
GetSysString
(
1212
));
btnLoadReplay
=
env
->
addButton
(
rect
<
s32
>
(
180
,
200
,
280
,
225
),
tabReplay
,
BUTTON_LOAD_REPLAY
,
L"载入录像"
);
btnCreateHost
=
env
->
addButton
(
rect
<
s32
>
(
460
,
25
,
570
,
50
),
wLanWindow
,
BUTTON_CREATE_HOST
,
dataManager
.
GetSysString
(
1224
));
env
->
addStaticText
(
L"昵称:"
,
rect
<
s32
>
(
10
,
30
,
90
,
50
),
false
,
false
,
wModeSelection
);
wLanWindow
->
setVisible
(
false
);
ebUsername
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
80
,
25
,
240
,
50
),
true
,
wModeSelection
);
/* chkNoCheckDeck = env->addCheckBox(false, rect<s32>(10, 10, 210, 30), tabLanS, -1, L"不检查卡组");
ebUsername
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
chkNoShuffleDeck = env->addCheckBox(false, rect<s32>(10, 35, 210, 55), tabLanS, -1, L"开局不洗卡组");
env
->
addStaticText
(
L"卡组:"
,
rect
<
s32
>
(
250
,
30
,
350
,
50
),
false
,
false
,
wModeSelection
);
chkNoShufflePlayer = env->addCheckBox(false, rect<s32>(10, 60, 210, 80), tabLanS, -1, L"主机固定先攻");
cbDeckSel
=
env
->
addComboBox
(
rect
<
s32
>
(
310
,
25
,
410
,
50
),
wModeSelection
,
-
1
);
chkAttackFT = env->addCheckBox(false, rect<s32>(10, 85, 210, 105), tabLanS, -1, L"第一回合可以攻击");
RefreshDeck
(
cbDeckSel
);
chkNoChainHint = env->addCheckBox(false, rect<s32>(10, 110, 210, 130), tabLanS, -1, L"没有可用连锁时不等待");
btnDeckEdit
=
env
->
addButton
(
rect
<
s32
>
(
420
,
25
,
470
,
50
),
wModeSelection
,
BUTTON_DECK_EDIT
,
L"编辑"
);
env->addStaticText(L"起始LP:", rect<s32>(200, 10, 300, 30), false, false, tabLanS);
stModeStatus
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
20
,
360
,
350
,
380
),
false
,
false
,
wModeSelection
);
myswprintf(dataManager.strBuffer, L"%d", 8000);
env
->
addStaticText
(
L"IP选择:"
,
rect
<
s32
>
(
250
,
55
,
350
,
80
),
false
,
false
,
wModeSelection
);
ebStartLP = env->addEditBox(dataManager.strBuffer, rect<s32>(310, 10, 390, 30), true, tabLanS);
cbIPList
=
env
->
addComboBox
(
rect
<
s32
>
(
310
,
55
,
470
,
75
),
wModeSelection
,
COMBOBOX_IPADDR
);
ebStartLP->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER);
int
ipi
=
0
;
env->addStaticText(L"起始手牌:", rect<s32>(200, 35, 300, 55), false, false, tabLanS);
while
(
netManager
.
local_addr
[
ipi
])
{
myswprintf(dataManager.strBuffer, L"%d", 5);
myswprintf
(
dataManager
.
strBuffer
,
L"%d.%d.%d.%d"
,
netManager
.
local_addr
[
ipi
]
&
0xff
,
(
netManager
.
local_addr
[
ipi
]
>>
8
)
&
0xff
,
ebStartHand = env->addEditBox(dataManager.strBuffer, rect<s32>(310, 35, 390, 55), true, tabLanS);
(
netManager
.
local_addr
[
ipi
]
>>
16
)
&
0xff
,
(
netManager
.
local_addr
[
ipi
]
>>
24
)
&
0xff
);
ebStartHand->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER);
cbIPList
->
addItem
(
dataManager
.
strBuffer
);
env->addStaticText(L"每回合抽卡:", rect<s32>(200, 60, 300, 80), false, false, tabLanS);
ipi
++
;
myswprintf(dataManager.strBuffer, L"%d", 1);
}
ebDrawCount = env->addEditBox(dataManager.strBuffer, rect<s32>(310, 60, 390, 80), true, tabLanS);
cbIPList
->
setSelected
(
0
);
ebDrawCount->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER);
btnModeExit
=
env
->
addButton
(
rect
<
s32
>
(
380
,
355
,
470
,
380
),
wModeSelection
,
BUTTON_MODE_EXIT
,
L"退出"
);
env->addStaticText(L"禁限卡表:", rect<s32>(200, 85, 300, 105), false, false, tabLanS);
cbLFlist = env->addComboBox(rect<s32>(310, 85, 450, 105), tabLanS);
for(int i = 0; i < deckManager._lfList.size(); ++i)
cbLFlist->addItem(deckManager._lfList[i].listName);
//env->addStaticText(L"决斗模式:", rect<s32>(200, 110, 300, 130), false, false, tabLanS);
cbMatchMode = env->addComboBox(rect<s32>(310, 110, 450, 130), tabLanS);
cbMatchMode->addItem(L"单局模式");
cbMatchMode->addItem(L"比赛模式");
cbMatchMode->setVisible(false);
//env->addStaticText(L"回合时间:", rect<s32>(200, 135, 300, 155), false, false, tabLanS);
cbTurnTime = env->addComboBox(rect<s32>(310, 135, 450, 155), tabLanS);
cbTurnTime->addItem(L"无限制");
cbTurnTime->addItem(L"5分钟");
cbTurnTime->addItem(L"3分钟");
cbTurnTime->addItem(L"1分钟");
cbTurnTime->setVisible(false);
env->addStaticText(L"游戏名:", rect<s32>(10, 205, 100, 225), false, false, tabLanS);
ebServerName = env->addEditBox(L"Game", rect<s32>(100, 205, 240, 225), true, tabLanS);
ebServerName->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER);
env->addStaticText(L"密码:", rect<s32>(10, 230, 100, 250), false, false, tabLanS);
ebServerPass = env->addEditBox(L"", rect<s32>(100, 230, 240, 250), true, tabLanS);
ebServerPass->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER);
btnLanStartServer = env->addButton(rect<s32>(350, 195, 460, 220), tabLanS, BUTTON_LAN_START_SERVER, L"建立主机");
btnLanCancelServer = env->addButton(rect<s32>(350, 225, 460, 250), tabLanS, BUTTON_LAN_CANCEL_SERVER, L"取消主机");
btnLanCancelServer->setEnabled(false);
lstReplayList = env->addListBox(rect<s32>(10, 10, 460, 190), tabReplay, LISTBOX_REPLAY_LIST, true);
lstReplayList->setItemHeight(18);
btnLoadReplay = env->addButton(rect<s32>(180, 200, 280, 225), tabReplay, BUTTON_LOAD_REPLAY, L"载入录像");
env->addStaticText(L"昵称:", rect<s32>(10, 30, 90, 50), false, false, wModeSelection);
ebUsername = env->addEditBox(L"", rect<s32>(80, 25, 240, 50), true, wModeSelection);
ebUsername->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER);
env->addStaticText(L"卡组:", rect<s32>(250, 30, 350, 50), false, false, wModeSelection);
cbDeckSel = env->addComboBox(rect<s32>(310, 25, 410, 50), wModeSelection, -1);
RefreshDeck(cbDeckSel);
btnDeckEdit = env->addButton(rect<s32>(420, 25, 470, 50), wModeSelection, BUTTON_DECK_EDIT, L"编辑");
stModeStatus = env->addStaticText(L"", rect<s32>(20, 360, 350, 380), false, false, wModeSelection);
env->addStaticText(L"IP选择:", rect<s32>(250, 55, 350, 80), false, false, wModeSelection);
cbIPList = env->addComboBox(rect<s32>(310, 55, 470, 75), wModeSelection, COMBOBOX_IPADDR);
int ipi = 0;
while(netManager.local_addr[ipi]) {
myswprintf(dataManager.strBuffer, L"%d.%d.%d.%d", netManager.local_addr[ipi] & 0xff, (netManager.local_addr[ipi] >> 8) & 0xff,
(netManager.local_addr[ipi] >> 16) & 0xff, (netManager.local_addr[ipi] >> 24) & 0xff);
cbIPList->addItem(dataManager.strBuffer);
ipi++;
}
cbIPList->setSelected(0);
*/
//img
//img
wCardImg
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
1
,
1
,
199
,
273
),
true
,
false
,
0
,
-
1
,
true
);
wCardImg
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
1
,
1
,
199
,
273
),
true
,
false
,
0
,
-
1
,
true
);
wCardImg
->
setBackgroundColor
(
0xc0c0c0c0
);
wCardImg
->
setBackgroundColor
(
0xc0c0c0c0
);
...
@@ -178,8 +196,8 @@ bool Game::Initialize() {
...
@@ -178,8 +196,8 @@ bool Game::Initialize() {
lstLog
=
env
->
addListBox
(
rect
<
s32
>
(
10
,
10
,
290
,
290
),
tabLog
,
LISTBOX_LOG
,
false
);
lstLog
=
env
->
addListBox
(
rect
<
s32
>
(
10
,
10
,
290
,
290
),
tabLog
,
LISTBOX_LOG
,
false
);
lstLog
->
setItemHeight
(
18
);
lstLog
->
setItemHeight
(
18
);
btnClearLog
=
env
->
addButton
(
rect
<
s32
>
(
160
,
300
,
260
,
325
),
tabLog
,
BUTTON_CLEAR_LOG
,
L"清除记录"
);
btnClearLog
=
env
->
addButton
(
rect
<
s32
>
(
160
,
300
,
260
,
325
),
tabLog
,
BUTTON_CLEAR_LOG
,
L"清除记录"
);
btnSaveLog
=
env
->
addButton
(
rect
<
s32
>
(
40
,
300
,
140
,
325
),
tabLog
,
BUTTON_SAVE_LOG
,
L"保存记录"
);
//
btnSaveLog = env->addButton(rect<s32>(40, 300, 140, 325), tabLog, BUTTON_SAVE_LOG, L"保存记录");
btnSaveLog
->
setVisible
(
false
);
//
btnSaveLog->setVisible(false);
//system
//system
irr
::
gui
::
IGUITab
*
tabSystem
=
wInfos
->
addTab
(
L"系统设定"
);
irr
::
gui
::
IGUITab
*
tabSystem
=
wInfos
->
addTab
(
L"系统设定"
);
chkAutoPos
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
20
,
20
,
280
,
45
),
tabSystem
,
-
1
,
L"自动选择卡片位置"
);
chkAutoPos
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
20
,
20
,
280
,
45
),
tabSystem
,
-
1
,
L"自动选择卡片位置"
);
...
@@ -293,14 +311,14 @@ bool Game::Initialize() {
...
@@ -293,14 +311,14 @@ bool Game::Initialize() {
wCmdMenu
->
setDrawTitlebar
(
false
);
wCmdMenu
->
setDrawTitlebar
(
false
);
wCmdMenu
->
setVisible
(
false
);
wCmdMenu
->
setVisible
(
false
);
wCmdMenu
->
getCloseButton
()
->
setVisible
(
false
);
wCmdMenu
->
getCloseButton
()
->
setVisible
(
false
);
btnActivate
=
env
->
addButton
(
rect
<
s32
>
(
1
,
1
,
99
,
21
),
wCmdMenu
,
BUTTON_CMD_ACTIVATE
,
L"发动"
);
btnActivate
=
env
->
addButton
(
rect
<
s32
>
(
1
,
1
,
99
,
21
),
wCmdMenu
,
BUTTON_CMD_ACTIVATE
,
dataManager
.
GetSysString
(
1150
)
);
btnSummon
=
env
->
addButton
(
rect
<
s32
>
(
1
,
22
,
99
,
42
),
wCmdMenu
,
BUTTON_CMD_SUMMON
,
L"召唤"
);
btnSummon
=
env
->
addButton
(
rect
<
s32
>
(
1
,
22
,
99
,
42
),
wCmdMenu
,
BUTTON_CMD_SUMMON
,
dataManager
.
GetSysString
(
1151
)
);
btnSPSummon
=
env
->
addButton
(
rect
<
s32
>
(
1
,
43
,
99
,
63
),
wCmdMenu
,
BUTTON_CMD_SPSUMMON
,
L"特殊召唤"
);
btnSPSummon
=
env
->
addButton
(
rect
<
s32
>
(
1
,
43
,
99
,
63
),
wCmdMenu
,
BUTTON_CMD_SPSUMMON
,
dataManager
.
GetSysString
(
1152
)
);
btnMSet
=
env
->
addButton
(
rect
<
s32
>
(
1
,
64
,
99
,
84
),
wCmdMenu
,
BUTTON_CMD_MSET
,
L"放置"
);
btnMSet
=
env
->
addButton
(
rect
<
s32
>
(
1
,
64
,
99
,
84
),
wCmdMenu
,
BUTTON_CMD_MSET
,
dataManager
.
GetSysString
(
1153
)
);
btnSSet
=
env
->
addButton
(
rect
<
s32
>
(
1
,
85
,
99
,
105
),
wCmdMenu
,
BUTTON_CMD_SSET
,
L"放置"
);
btnSSet
=
env
->
addButton
(
rect
<
s32
>
(
1
,
85
,
99
,
105
),
wCmdMenu
,
BUTTON_CMD_SSET
,
dataManager
.
GetSysString
(
1153
)
);
btnRepos
=
env
->
addButton
(
rect
<
s32
>
(
1
,
106
,
99
,
126
),
wCmdMenu
,
BUTTON_CMD_REPOS
,
L"反转召唤"
);
btnRepos
=
env
->
addButton
(
rect
<
s32
>
(
1
,
106
,
99
,
126
),
wCmdMenu
,
BUTTON_CMD_REPOS
,
dataManager
.
GetSysString
(
1154
)
);
btnAttack
=
env
->
addButton
(
rect
<
s32
>
(
1
,
127
,
99
,
147
),
wCmdMenu
,
BUTTON_CMD_ATTACK
,
L"攻击"
);
btnAttack
=
env
->
addButton
(
rect
<
s32
>
(
1
,
127
,
99
,
147
),
wCmdMenu
,
BUTTON_CMD_ATTACK
,
dataManager
.
GetSysString
(
1157
)
);
btnShowList
=
env
->
addButton
(
rect
<
s32
>
(
1
,
148
,
99
,
168
),
wCmdMenu
,
BUTTON_CMD_SHOWLIST
,
L"查看列表"
);
btnShowList
=
env
->
addButton
(
rect
<
s32
>
(
1
,
148
,
99
,
168
),
wCmdMenu
,
BUTTON_CMD_SHOWLIST
,
dataManager
.
GetSysString
(
1158
)
);
//deck edit
//deck edit
wDeckEdit
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
309
,
8
,
605
,
130
),
true
,
false
,
0
,
-
1
,
true
);
wDeckEdit
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
309
,
8
,
605
,
130
),
true
,
false
,
0
,
-
1
,
true
);
wDeckEdit
->
setVisible
(
false
);
wDeckEdit
->
setVisible
(
false
);
...
@@ -310,8 +328,6 @@ bool Game::Initialize() {
...
@@ -310,8 +328,6 @@ bool Game::Initialize() {
cbDBDecks
=
env
->
addComboBox
(
rect
<
s32
>
(
80
,
35
,
220
,
60
),
wDeckEdit
,
COMBOBOX_DBDECKS
);
cbDBDecks
=
env
->
addComboBox
(
rect
<
s32
>
(
80
,
35
,
220
,
60
),
wDeckEdit
,
COMBOBOX_DBDECKS
);
for
(
int
i
=
0
;
i
<
deckManager
.
_lfList
.
size
();
++
i
)
for
(
int
i
=
0
;
i
<
deckManager
.
_lfList
.
size
();
++
i
)
cbDBLFList
->
addItem
(
deckManager
.
_lfList
[
i
].
listName
);
cbDBLFList
->
addItem
(
deckManager
.
_lfList
[
i
].
listName
);
for
(
int
i
=
0
;
i
<
cbDeckSel
->
getItemCount
();
++
i
)
cbDBDecks
->
addItem
(
cbDeckSel
->
getItem
(
i
));
btnSaveDeck
=
env
->
addButton
(
rect
<
s32
>
(
225
,
35
,
290
,
60
),
wDeckEdit
,
BUTTON_SAVE_DECK
,
L"保存"
);
btnSaveDeck
=
env
->
addButton
(
rect
<
s32
>
(
225
,
35
,
290
,
60
),
wDeckEdit
,
BUTTON_SAVE_DECK
,
L"保存"
);
ebDeckname
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
80
,
65
,
220
,
90
),
true
,
wDeckEdit
,
-
1
);
ebDeckname
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
80
,
65
,
220
,
90
),
true
,
wDeckEdit
,
-
1
);
ebDeckname
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
ebDeckname
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
...
@@ -368,7 +384,7 @@ bool Game::Initialize() {
...
@@ -368,7 +384,7 @@ bool Game::Initialize() {
wCategories
->
setVisible
(
false
);
wCategories
->
setVisible
(
false
);
btnCategoryOK
=
env
->
addButton
(
rect
<
s32
>
(
135
,
175
,
235
,
200
),
wCategories
,
BUTTON_CATEGORY_OK
,
L"确定"
);
btnCategoryOK
=
env
->
addButton
(
rect
<
s32
>
(
135
,
175
,
235
,
200
),
wCategories
,
BUTTON_CATEGORY_OK
,
L"确定"
);
for
(
int
i
=
0
;
i
<
32
;
++
i
)
for
(
int
i
=
0
;
i
<
32
;
++
i
)
chkCategory
[
i
]
=
env
->
addCheckBox
(
false
,
recti
(
10
+
(
i
%
4
)
*
90
,
10
+
(
i
/
4
)
*
20
,
100
+
(
i
%
4
)
*
90
,
30
+
(
i
/
4
)
*
20
),
wCategories
,
-
1
,
DataManager
::
effect_strings
[
i
]
);
chkCategory
[
i
]
=
env
->
addCheckBox
(
false
,
recti
(
10
+
(
i
%
4
)
*
90
,
10
+
(
i
/
4
)
*
20
,
100
+
(
i
%
4
)
*
90
,
30
+
(
i
/
4
)
*
20
),
wCategories
,
-
1
,
dataManager
.
GetSysString
(
1100
+
i
)
);
scrFilter
=
env
->
addScrollBar
(
false
,
recti
(
999
,
161
,
1019
,
629
),
0
,
SCROLL_FILTER
);
scrFilter
=
env
->
addScrollBar
(
false
,
recti
(
999
,
161
,
1019
,
629
),
0
,
SCROLL_FILTER
);
scrFilter
->
setLargeStep
(
10
);
scrFilter
->
setLargeStep
(
10
);
scrFilter
->
setSmallStep
(
1
);
scrFilter
->
setSmallStep
(
1
);
...
@@ -391,9 +407,10 @@ bool Game::Initialize() {
...
@@ -391,9 +407,10 @@ bool Game::Initialize() {
btnReplayStep
=
env
->
addButton
(
rect
<
s32
>
(
5
,
55
,
85
,
75
),
wReplay
,
BUTTON_REPLAY_STEP
,
L"下一步"
);
btnReplayStep
=
env
->
addButton
(
rect
<
s32
>
(
5
,
55
,
85
,
75
),
wReplay
,
BUTTON_REPLAY_STEP
,
L"下一步"
);
btnReplaySwap
=
env
->
addButton
(
rect
<
s32
>
(
5
,
80
,
85
,
100
),
wReplay
,
BUTTON_REPLAY_SWAP
,
L"切换视角"
);
btnReplaySwap
=
env
->
addButton
(
rect
<
s32
>
(
5
,
80
,
85
,
100
),
wReplay
,
BUTTON_REPLAY_SWAP
,
L"切换视角"
);
btnReplayExit
=
env
->
addButton
(
rect
<
s32
>
(
5
,
105
,
85
,
125
),
wReplay
,
BUTTON_REPLAY_EXIT
,
L"退出"
);
btnReplayExit
=
env
->
addButton
(
rect
<
s32
>
(
5
,
105
,
85
,
125
),
wReplay
,
BUTTON_REPLAY_EXIT
,
L"退出"
);
device
->
setEventReceiver
(
&
dField
);
device
->
setEventReceiver
(
&
menuHandler
);
LoadConfig
();
LoadConfig
();
env
->
getSkin
()
->
setFont
(
guiFont
);
env
->
getSkin
()
->
setFont
(
guiFont
);
env
->
setFocus
(
wMainMenu
);
for
(
u32
i
=
0
;
i
<
EGDC_COUNT
;
++
i
)
{
for
(
u32
i
=
0
;
i
<
EGDC_COUNT
;
++
i
)
{
SColor
col
=
env
->
getSkin
()
->
getColor
((
EGUI_DEFAULT_COLOR
)
i
);
SColor
col
=
env
->
getSkin
()
->
getColor
((
EGUI_DEFAULT_COLOR
)
i
);
col
.
setAlpha
(
224
);
col
.
setAlpha
(
224
);
...
@@ -474,6 +491,7 @@ void Game::MainLoop() {
...
@@ -474,6 +491,7 @@ void Game::MainLoop() {
closesocket
(
netManager
.
sListen
);
closesocket
(
netManager
.
sListen
);
shutdown
(
netManager
.
sRemote
,
SD_BOTH
);
shutdown
(
netManager
.
sRemote
,
SD_BOTH
);
closesocket
(
netManager
.
sRemote
);
closesocket
(
netManager
.
sRemote
);
SaveConfig
();
device
->
drop
();
device
->
drop
();
}
}
void
Game
::
BuildProjectionMatrix
(
irr
::
core
::
matrix4
&
mProjection
,
f32
left
,
f32
right
,
f32
bottom
,
f32
top
,
f32
znear
,
f32
zfar
)
{
void
Game
::
BuildProjectionMatrix
(
irr
::
core
::
matrix4
&
mProjection
,
f32
left
,
f32
right
,
f32
bottom
,
f32
top
,
f32
znear
,
f32
zfar
)
{
...
@@ -536,6 +554,12 @@ void Game::RefreshDeck(irr::gui::IGUIComboBox* cbDeck) {
...
@@ -536,6 +554,12 @@ void Game::RefreshDeck(irr::gui::IGUIComboBox* cbDeck) {
cbDeck
->
addItem
(
wname
);
cbDeck
->
addItem
(
wname
);
}
}
#endif
#endif
for
(
int
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
();
...
@@ -574,40 +598,84 @@ void Game::LoadConfig() {
...
@@ -574,40 +598,84 @@ void Game::LoadConfig() {
char
strbuf
[
32
];
char
strbuf
[
32
];
char
valbuf
[
256
];
char
valbuf
[
256
];
wchar_t
wstr
[
256
];
wchar_t
wstr
[
256
];
wchar_t
*
p
;
int
value
;
int
value
;
gameConf
.
antialias
=
0
;
gameConf
.
serverport
=
7911
;
gameConf
.
nickname
[
0
]
=
0
;
gameConf
.
gamename
[
0
]
=
0
;
gameConf
.
lastdeck
[
0
]
=
0
;
gameConf
.
numfont
[
0
]
=
0
;
gameConf
.
textfont
[
0
]
=
0
;
gameConf
.
lastip
[
0
]
=
0
;
gameConf
.
lastport
[
0
]
=
0
;
fseek
(
fp
,
0
,
SEEK_END
);
fseek
(
fp
,
0
,
SEEK_END
);
size_t
fsize
=
ftell
(
fp
);
size_t
fsize
=
ftell
(
fp
);
fseek
(
fp
,
0
,
SEEK_SET
);
fseek
(
fp
,
0
,
SEEK_SET
);
while
(
ftell
(
fp
)
<
fsize
)
{
while
(
ftell
(
fp
)
<
fsize
)
{
fgets
(
linebuf
,
25
6
,
fp
);
fgets
(
linebuf
,
25
0
,
fp
);
sscanf
(
linebuf
,
"%s = %s"
,
strbuf
,
valbuf
);
sscanf
(
linebuf
,
"%s = %s"
,
strbuf
,
valbuf
);
if
(
!
strcmp
(
strbuf
,
"nickname"
))
{
if
(
!
strcmp
(
strbuf
,
"antialias"
))
{
gameConf
.
antialias
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"nickname"
))
{
DataManager
::
DecodeUTF8
(
valbuf
,
wstr
);
DataManager
::
DecodeUTF8
(
valbuf
,
wstr
);
ebUsername
->
setText
(
wstr
);
p
=
gameConf
.
nickname
;
DataManager
::
CopyStr
(
wstr
,
p
,
19
);
}
else
if
(
!
strcmp
(
strbuf
,
"gamename"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"gamename"
))
{
DataManager
::
DecodeUTF8
(
valbuf
,
wstr
);
DataManager
::
DecodeUTF8
(
valbuf
,
wstr
);
ebServerName
->
setText
(
wstr
);
p
=
gameConf
.
gamename
;
DataManager
::
CopyStr
(
wstr
,
p
,
19
);
}
else
if
(
!
strcmp
(
strbuf
,
"lastdeck"
))
{
DataManager
::
DecodeUTF8
(
valbuf
,
wstr
);
p
=
gameConf
.
lastdeck
;
DataManager
::
CopyStr
(
wstr
,
p
,
63
);
}
else
if
(
!
strcmp
(
strbuf
,
"textfont"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"textfont"
))
{
guiFont
=
irr
::
gui
::
CGUITTFont
::
createTTFont
(
env
,
valbuf
,
14
);
DataManager
::
DecodeUTF8
(
valbuf
,
wstr
);
textFont
=
guiFont
;
p
=
gameConf
.
textfont
;
DataManager
::
CopyStr
(
wstr
,
p
,
255
);
//guiFont = irr::gui::CGUITTFont::createTTFont(env, valbuf, 14);
//textFont = guiFont;
}
else
if
(
!
strcmp
(
strbuf
,
"numfont"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"numfont"
))
{
numFont
=
irr
::
gui
::
CGUITTFont
::
createTTFont
(
env
,
valbuf
,
16
);
DataManager
::
DecodeUTF8
(
valbuf
,
wstr
);
adFont
=
irr
::
gui
::
CGUITTFont
::
createTTFont
(
env
,
valbuf
,
12
)
;
p
=
gameConf
.
numfont
;
lpcFont
=
irr
::
gui
::
CGUITTFont
::
createTTFont
(
env
,
valbuf
,
48
);
DataManager
::
CopyStr
(
wstr
,
p
,
255
);
}
else
if
(
!
strcmp
(
strbuf
,
"servport"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"servport"
))
{
netManager
.
serv_
port
=
atoi
(
valbuf
);
gameConf
.
server
port
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"
defaul
tip"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"
las
tip"
))
{
DataManager
::
DecodeUTF8
(
valbuf
,
wstr
);
DataManager
::
DecodeUTF8
(
valbuf
,
wstr
);
ebJoinIP
->
setText
(
wstr
);
p
=
gameConf
.
lastip
;
}
else
if
(
!
strcmp
(
strbuf
,
"defaultport"
))
{
DataManager
::
CopyStr
(
wstr
,
p
,
19
);
}
else
if
(
!
strcmp
(
strbuf
,
"lastport"
))
{
DataManager
::
DecodeUTF8
(
valbuf
,
wstr
);
DataManager
::
DecodeUTF8
(
valbuf
,
wstr
);
ebJoinPort
->
setText
(
wstr
);
p
=
gameConf
.
lastport
;
DataManager
::
CopyStr
(
wstr
,
p
,
9
);
}
}
}
}
fclose
(
fp
);
fclose
(
fp
);
}
}
void
Game
::
SaveConfig
()
{
void
Game
::
SaveConfig
()
{
FILE
*
fp
=
fopen
(
"system.conf"
,
"w"
);
fprintf
(
fp
,
"#config file
\n
#nickname & gamename should be less than 20 characters
\n
"
);
char
linebuf
[
256
];
fprintf
(
fp
,
"antialias = %d
\n
"
,
gameConf
.
antialias
);
wchar_t
*
p
=
gameConf
.
nickname
;
DataManager
::
CopyStr
(
ebNickName
->
getText
(),
p
,
20
);
DataManager
::
EncodeUTF8
(
gameConf
.
nickname
,
linebuf
);
fprintf
(
fp
,
"nickname = %s
\n
"
,
linebuf
);
DataManager
::
EncodeUTF8
(
gameConf
.
gamename
,
linebuf
);
fprintf
(
fp
,
"gamename = %s
\n
"
,
linebuf
);
DataManager
::
EncodeUTF8
(
gameConf
.
lastdeck
,
linebuf
);
fprintf
(
fp
,
"lastdeck = %s
\n
"
,
linebuf
);
DataManager
::
EncodeUTF8
(
gameConf
.
textfont
,
linebuf
);
fprintf
(
fp
,
"textfont = %s
\n
"
,
linebuf
);
DataManager
::
EncodeUTF8
(
gameConf
.
numfont
,
linebuf
);
fprintf
(
fp
,
"numfont = %s
\n
"
,
linebuf
);
fprintf
(
fp
,
"serverport = %d
\n
"
,
gameConf
.
serverport
);
DataManager
::
EncodeUTF8
(
gameConf
.
lastip
,
linebuf
);
fprintf
(
fp
,
"lastip = %s
\n
"
,
linebuf
);
DataManager
::
EncodeUTF8
(
gameConf
.
lastport
,
linebuf
);
fprintf
(
fp
,
"lastport = %s
\n
"
,
linebuf
);
fclose
(
fp
);
}
}
void
Game
::
ShowCardInfo
(
int
code
)
{
void
Game
::
ShowCardInfo
(
int
code
)
{
CardData
cd
;
CardData
cd
;
...
...
gframe/game.h
View file @
652f36ba
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
#include "client_card.h"
#include "client_card.h"
#include "client_field.h"
#include "client_field.h"
#include "deck_con.h"
#include "deck_con.h"
#include "menu_handler.h"
#include "network.h"
#include "network.h"
#include "deck_manager.h"
#include "deck_manager.h"
#include "replay.h"
#include "replay.h"
...
@@ -17,6 +18,18 @@
...
@@ -17,6 +18,18 @@
namespace
ygo
{
namespace
ygo
{
struct
Config
{
unsigned
short
antialias
;
unsigned
short
serverport
;
wchar_t
lastip
[
20
];
wchar_t
lastport
[
10
];
wchar_t
nickname
[
20
];
wchar_t
gamename
[
20
];
wchar_t
lastdeck
[
64
];
wchar_t
textfont
[
256
];
wchar_t
numfont
[
256
];
};
struct
DuelInfo
{
struct
DuelInfo
{
bool
isStarted
;
bool
isStarted
;
bool
is_shuffling
;
bool
is_shuffling
;
...
@@ -67,7 +80,7 @@ public:
...
@@ -67,7 +80,7 @@ public:
void
DrawGUI
();
void
DrawGUI
();
void
DrawSpec
();
void
DrawSpec
();
void
ShowElement
(
irr
::
gui
::
IGUIElement
*
element
,
int
autoframe
=
0
);
void
ShowElement
(
irr
::
gui
::
IGUIElement
*
element
,
int
autoframe
=
0
);
void
HideElement
(
irr
::
gui
::
IGUIElement
*
element
,
bool
set_action
=
false
);
void
HideElement
(
irr
::
gui
::
IGUIElement
*
element
,
bool
set_action
=
false
,
irr
::
gui
::
IGUIElement
*
next
=
0
);
void
PopupElement
(
irr
::
gui
::
IGUIElement
*
element
,
int
hideframe
=
0
);
void
PopupElement
(
irr
::
gui
::
IGUIElement
*
element
,
int
hideframe
=
0
);
void
WaitFrameSignal
(
int
frame
);
void
WaitFrameSignal
(
int
frame
);
void
DrawThumb
(
int
code
,
position2di
pos
,
std
::
unordered_map
<
int
,
int
>*
lflist
);
void
DrawThumb
(
int
code
,
position2di
pos
,
std
::
unordered_map
<
int
,
int
>*
lflist
);
...
@@ -119,6 +132,7 @@ public:
...
@@ -119,6 +132,7 @@ public:
Signal
localMessage
;
Signal
localMessage
;
Signal
localResponse
;
Signal
localResponse
;
Signal
localAction
;
Signal
localAction
;
Config
gameConf
;
NetManager
netManager
;
NetManager
netManager
;
DataManager
dataManager
;
DataManager
dataManager
;
ImageManager
imageManager
;
ImageManager
imageManager
;
...
@@ -133,6 +147,7 @@ public:
...
@@ -133,6 +147,7 @@ public:
bool
isFadein
;
bool
isFadein
;
bool
signalAction
;
bool
signalAction
;
irr
::
gui
::
IGUIElement
*
guiFading
;
irr
::
gui
::
IGUIElement
*
guiFading
;
irr
::
gui
::
IGUIElement
*
guiNext
;
int
fadingFrame
;
int
fadingFrame
;
irr
::
core
::
recti
fadingSize
;
irr
::
core
::
recti
fadingSize
;
irr
::
core
::
vector2di
fadingUL
;
irr
::
core
::
vector2di
fadingUL
;
...
@@ -161,6 +176,7 @@ public:
...
@@ -161,6 +176,7 @@ public:
DuelInfo
dInfo
;
DuelInfo
dInfo
;
ClientField
dField
;
ClientField
dField
;
DeckBuilder
deckBuilder
;
DeckBuilder
deckBuilder
;
MenuHandler
menuHandler
;
irr
::
IrrlichtDevice
*
device
;
irr
::
IrrlichtDevice
*
device
;
irr
::
video
::
IVideoDriver
*
driver
;
irr
::
video
::
IVideoDriver
*
driver
;
irr
::
scene
::
ISceneManager
*
smgr
;
irr
::
scene
::
ISceneManager
*
smgr
;
...
@@ -193,10 +209,23 @@ public:
...
@@ -193,10 +209,23 @@ public:
irr
::
gui
::
IGUIButton
*
btnClearLog
;
irr
::
gui
::
IGUIButton
*
btnClearLog
;
irr
::
gui
::
IGUIButton
*
btnSaveLog
;
irr
::
gui
::
IGUIButton
*
btnSaveLog
;
//main menu
//main menu
irr
::
gui
::
IGUIWindow
*
wModeSelection
;
irr
::
gui
::
IGUIWindow
*
wMainMenu
;
irr
::
gui
::
IGUITabControl
*
wModes
;
irr
::
gui
::
IGUIButton
*
btnLanMode
;
irr
::
gui
::
IGUIButton
*
btnLanStartServer
;
irr
::
gui
::
IGUIButton
*
btnServerMode
;
irr
::
gui
::
IGUIButton
*
btnLanCancelServer
;
irr
::
gui
::
IGUIButton
*
btnReplayMode
;
irr
::
gui
::
IGUIButton
*
btnTestMode
;
irr
::
gui
::
IGUIButton
*
btnDeckEdit
;
irr
::
gui
::
IGUIButton
*
btnModeExit
;
irr
::
gui
::
IGUIWindow
*
wLanWindow
;
irr
::
gui
::
IGUIEditBox
*
ebNickName
;
irr
::
gui
::
IGUIListBox
*
lstHostList
;
irr
::
gui
::
IGUIEditBox
*
ebJoinIP
;
irr
::
gui
::
IGUIEditBox
*
ebJoinPort
;
irr
::
gui
::
IGUIEditBox
*
ebJoinPass
;
irr
::
gui
::
IGUIButton
*
btnJoinHost
;
irr
::
gui
::
IGUIButton
*
btnJoinCancel
;
irr
::
gui
::
IGUIButton
*
btnCreateHost
;
irr
::
gui
::
IGUIWindow
*
wHostWindow
;
irr
::
gui
::
IGUIEditBox
*
ebStartLP
;
irr
::
gui
::
IGUIEditBox
*
ebStartLP
;
irr
::
gui
::
IGUIEditBox
*
ebStartHand
;
irr
::
gui
::
IGUIEditBox
*
ebStartHand
;
irr
::
gui
::
IGUIEditBox
*
ebDrawCount
;
irr
::
gui
::
IGUIEditBox
*
ebDrawCount
;
...
@@ -210,21 +239,12 @@ public:
...
@@ -210,21 +239,12 @@ public:
irr
::
gui
::
IGUICheckBox
*
chkNoShufflePlayer
;
irr
::
gui
::
IGUICheckBox
*
chkNoShufflePlayer
;
irr
::
gui
::
IGUICheckBox
*
chkAttackFT
;
irr
::
gui
::
IGUICheckBox
*
chkAttackFT
;
irr
::
gui
::
IGUICheckBox
*
chkNoChainHint
;
irr
::
gui
::
IGUICheckBox
*
chkNoChainHint
;
irr
::
gui
::
IGUIListBox
*
lstServerList
;
irr
::
gui
::
IGUIButton
*
btnRefreshList
;
irr
::
gui
::
IGUIEditBox
*
ebJoinIP
;
irr
::
gui
::
IGUIEditBox
*
ebJoinPort
;
irr
::
gui
::
IGUIEditBox
*
ebJoinPass
;
irr
::
gui
::
IGUICheckBox
*
chkStOnly
;
irr
::
gui
::
IGUIButton
*
btnLanConnect
;
irr
::
gui
::
IGUIListBox
*
lstReplayList
;
irr
::
gui
::
IGUIListBox
*
lstReplayList
;
irr
::
gui
::
IGUIButton
*
btnLoadReplay
;
irr
::
gui
::
IGUIButton
*
btnLoadReplay
;
irr
::
gui
::
IGUIEditBox
*
ebUsername
;
irr
::
gui
::
IGUIEditBox
*
ebUsername
;
irr
::
gui
::
IGUIComboBox
*
cbDeckSel
;
irr
::
gui
::
IGUIComboBox
*
cbDeckSel
;
irr
::
gui
::
IGUIButton
*
btnDeckEdit
;
irr
::
gui
::
IGUIStaticText
*
stModeStatus
;
irr
::
gui
::
IGUIStaticText
*
stModeStatus
;
irr
::
gui
::
IGUIComboBox
*
cbIPList
;
irr
::
gui
::
IGUIComboBox
*
cbIPList
;
irr
::
gui
::
IGUIButton
*
btnModeExit
;
//message
//message
irr
::
gui
::
IGUIWindow
*
wMessage
;
irr
::
gui
::
IGUIWindow
*
wMessage
;
irr
::
gui
::
IGUIStaticText
*
stMessage
;
irr
::
gui
::
IGUIStaticText
*
stMessage
;
...
@@ -345,73 +365,71 @@ extern Game* mainGame;
...
@@ -345,73 +365,71 @@ extern Game* mainGame;
#define COMMAND_ATTACK 0x0040
#define COMMAND_ATTACK 0x0040
#define COMMAND_LIST 0x0080
#define COMMAND_LIST 0x0080
#define TAB_MODES 50
#define BUTTON_LAN_MODE 100
#define BUTTON_SAVE_LOG 100
#define BUTTON_SERVER_MODE 101
#define BUTTON_CLEAR_LOG 101
#define BUTTON_REPLAY_MODE 102
#define LISTBOX_LOG 102
#define BUTTON_TEST_MODE 103
#define COMBOBOX_IPADDR 109
#define BUTTON_DECK_EDIT 104
#define BUTTON_LAN_START_SERVER 110
#define BUTTON_MODE_EXIT 105
#define BUTTON_LAN_CANCEL_SERVER 111
#define LISTBOX_LAN_HOST 110
#define BUTTON_LAN_CONNECT 112
#define BUTTON_JOIN_HOST 111
#define BUTTON_LAN_REFRESH 113
#define BUTTON_JOIN_CANCEL 112
#define BUTTON_LOAD_REPLAY 114
#define BUTTON_CREATE_HOST 113
#define BUTTON_DECK_EDIT 115
#define BUTTON_MSG_OK 150
#define BUTTON_MODE_EXIT 116
#define BUTTON_YES 151
#define LISTBOX_SERVER_LIST 117
#define BUTTON_NO 152
#define LISTBOX_REPLAY_LIST 118
#define BUTTON_POS_AU 160
#define BUTTON_MSG_OK 120
#define BUTTON_POS_AD 161
#define BUTTON_YES 121
#define BUTTON_POS_DU 162
#define BUTTON_NO 122
#define BUTTON_POS_DD 163
#define BUTTON_POS_AU 130
#define BUTTON_OPTION_PREV 170
#define BUTTON_POS_AD 131
#define BUTTON_OPTION_NEXT 171
#define BUTTON_POS_DU 132
#define BUTTON_OPTION_OK 172
#define BUTTON_POS_DD 133
#define BUTTON_CARD_0 180
#define BUTTON_OPTION_PREV 140
#define BUTTON_CARD_1 181
#define BUTTON_OPTION_NEXT 141
#define BUTTON_CARD_2 182
#define BUTTON_OPTION_OK 142
#define BUTTON_CARD_3 183
#define BUTTON_CARD_0 150
#define BUTTON_CARD_4 184
#define BUTTON_CARD_1 151
#define SCROLL_CARD_SELECT 185
#define BUTTON_CARD_2 152
#define BUTTON_CARD_SEL_OK 186
#define BUTTON_CARD_3 153
#define BUTTON_CMD_ACTIVATE 190
#define BUTTON_CARD_4 154
#define BUTTON_CMD_SUMMON 191
#define SCROLL_CARD_SELECT 155
#define BUTTON_CMD_SPSUMMON 192
#define BUTTON_CARD_SEL_OK 156
#define BUTTON_CMD_MSET 193
#define BUTTON_CMD_ACTIVATE 160
#define BUTTON_CMD_SSET 194
#define BUTTON_CMD_SUMMON 161
#define BUTTON_CMD_REPOS 195
#define BUTTON_CMD_SPSUMMON 162
#define BUTTON_CMD_ATTACK 196
#define BUTTON_CMD_MSET 163
#define BUTTON_CMD_SHOWLIST 197
#define BUTTON_CMD_SSET 164
#define BUTTON_ANNUMBER_OK 200
#define BUTTON_CMD_REPOS 165
#define BUTTON_ANCARD_OK 201
#define BUTTON_CMD_ATTACK 166
#define EDITBOX_ANCARD 202
#define BUTTON_CMD_SHOWLIST 167
#define LISTBOX_ANCARD 203
#define BUTTON_ANNUMBER_OK 170
#define CHECK_ATTRIBUTE 204
#define BUTTON_ANCARD_OK 171
#define CHECK_RACE 205
#define EDITBOX_ANCARD 172
#define BUTTON_BP 210
#define LISTBOX_ANCARD 173
#define BUTTON_M2 211
#define CHECK_ATTRIBUTE 174
#define BUTTON_EP 212
#define CHECK_RACE 175
#define BUTTON_CLEAR_LOG 220
#define BUTTON_BP 180
#define LISTBOX_LOG 221
#define BUTTON_M2 181
#define BUTTON_CATEGORY_OK 250
#define BUTTON_EP 182
#define COMBOBOX_DBLFLIST 251
#define BUTTON_CATEGORY_OK 200
#define COMBOBOX_DBDECKS 252
#define COMBOBOX_DBLFLIST 201
#define BUTTON_CLEAR_DECK 253
#define COMBOBOX_DBDECKS 202
#define BUTTON_SAVE_DECK 254
#define BUTTON_CLEAR_DECK 203
#define BUTTON_SAVE_DECK_AS 255
#define BUTTON_SAVE_DECK 204
#define BUTTON_DBEXIT 256
#define BUTTON_SAVE_DECK_AS 205
#define BUTTON_SORT_DECK 257
#define BUTTON_DBEXIT 206
#define COMBOBOX_MAINTYPE 260
#define BUTTON_SORT_DECK 207
#define BUTTON_EFFECT_FILTER 261
#define COMBOBOX_MAINTYPE 210
#define BUTTON_START_FILTER 262
#define BUTTON_EFFECT_FILTER 211
#define BUTTON_RESULT_FILTER 263
#define BUTTON_START_FILTER 212
#define SCROLL_FILTER 264
#define BUTTON_RESULT_FILTER 213
#define SCROLL_KEYWORD 265
#define SCROLL_FILTER 214
#define BUTTON_REPLAY_START 270
#define SCROLL_KEYWORD 215
#define BUTTON_REPLAY_PAUSE 271
#define BUTTON_REPLAY_START 220
#define BUTTON_REPLAY_STEP 272
#define BUTTON_REPLAY_PAUSE 221
#define BUTTON_REPLAY_EXIT 273
#define BUTTON_REPLAY_STEP 222
#define BUTTON_REPLAY_SWAP 274
#define BUTTON_REPLAY_EXIT 223
#define BUTTON_REPLAY_SAVE 280
#define BUTTON_REPLAY_SWAP 224
#define BUTTON_REPLAY_CANCEL 281
#define BUTTON_REPLAY_SAVE 230
#define BUTTON_REPLAY_CANCEL 231
#endif // GAME_H
#endif // GAME_H
gframe/message.cpp
View file @
652f36ba
...
@@ -347,7 +347,6 @@ int Game::EngineThread(void* pd) {
...
@@ -347,7 +347,6 @@ int Game::EngineThread(void* pd) {
mainGame
->
stName
->
setText
(
L""
);
mainGame
->
stName
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
ShowElement
(
mainGame
->
wModeSelection
);
mainGame
->
imageManager
.
ClearTexture
();
mainGame
->
imageManager
.
ClearTexture
();
mainGame
->
gMutex
.
Unlock
();
mainGame
->
gMutex
.
Unlock
();
}
}
...
@@ -1066,7 +1065,6 @@ int Game::RecvThread(void* pd) {
...
@@ -1066,7 +1065,6 @@ int Game::RecvThread(void* pd) {
mainGame
->
stName
->
setText
(
L""
);
mainGame
->
stName
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
ShowElement
(
mainGame
->
wModeSelection
);
mainGame
->
imageManager
.
ClearTexture
();
mainGame
->
imageManager
.
ClearTexture
();
mainGame
->
gMutex
.
Unlock
();
mainGame
->
gMutex
.
Unlock
();
}
}
...
@@ -3021,7 +3019,6 @@ int Game::ReplayThread(void* pd) {
...
@@ -3021,7 +3019,6 @@ int Game::ReplayThread(void* pd) {
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
lstServerList
->
clear
();
mainGame
->
stModeStatus
->
setText
(
L""
);
mainGame
->
stModeStatus
->
setText
(
L""
);
mainGame
->
btnReplayStart
->
setVisible
(
false
);
mainGame
->
btnReplayStart
->
setVisible
(
false
);
mainGame
->
btnReplayPause
->
setVisible
(
true
);
mainGame
->
btnReplayPause
->
setVisible
(
true
);
...
@@ -3029,12 +3026,6 @@ int Game::ReplayThread(void* pd) {
...
@@ -3029,12 +3026,6 @@ int Game::ReplayThread(void* pd) {
mainGame
->
dInfo
.
engLen
=
0
;
mainGame
->
dInfo
.
engLen
=
0
;
mainGame
->
dInfo
.
msgLen
=
0
;
mainGame
->
dInfo
.
msgLen
=
0
;
mainGame
->
dInfo
.
is_local_host
=
false
;
mainGame
->
dInfo
.
is_local_host
=
false
;
mainGame
->
btnLanStartServer
->
setEnabled
(
true
);
mainGame
->
btnLanConnect
->
setEnabled
(
true
);
mainGame
->
btnRefreshList
->
setEnabled
(
true
);
mainGame
->
btnLoadReplay
->
setEnabled
(
true
);
mainGame
->
btnDeckEdit
->
setEnabled
(
true
);
mainGame
->
HideElement
(
mainGame
->
wModeSelection
);
mainGame
->
dField
.
panel
=
0
;
mainGame
->
dField
.
panel
=
0
;
mainGame
->
dField
.
hovered_card
=
0
;
mainGame
->
dField
.
hovered_card
=
0
;
mainGame
->
dField
.
clicked_card
=
0
;
mainGame
->
dField
.
clicked_card
=
0
;
...
@@ -3122,7 +3113,6 @@ int Game::ReplayThread(void* pd) {
...
@@ -3122,7 +3113,6 @@ int Game::ReplayThread(void* pd) {
mainGame
->
stName
->
setText
(
L""
);
mainGame
->
stName
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
ShowElement
(
mainGame
->
wModeSelection
);
mainGame
->
imageManager
.
ClearTexture
();
mainGame
->
imageManager
.
ClearTexture
();
mainGame
->
gMutex
.
Unlock
();
mainGame
->
gMutex
.
Unlock
();
}
}
...
...
gframe/network.cpp
View file @
652f36ba
...
@@ -184,16 +184,6 @@ int NetManager::BroadcastServer(void* np) {
...
@@ -184,16 +184,6 @@ int NetManager::BroadcastServer(void* np) {
net
->
is_creating_host
=
false
;
net
->
is_creating_host
=
false
;
shutdown
(
net
->
sBHost
,
SD_BOTH
);
shutdown
(
net
->
sBHost
,
SD_BOTH
);
closesocket
(
net
->
sBHost
);
closesocket
(
net
->
sBHost
);
if
(
!
mainGame
->
is_closing
)
{
mainGame
->
gMutex
.
Lock
();
mainGame
->
btnLanStartServer
->
setEnabled
(
true
);
mainGame
->
btnLanCancelServer
->
setEnabled
(
false
);
mainGame
->
btnLanConnect
->
setEnabled
(
true
);
mainGame
->
btnRefreshList
->
setEnabled
(
true
);
mainGame
->
btnLoadReplay
->
setEnabled
(
true
);
mainGame
->
btnDeckEdit
->
setEnabled
(
true
);
mainGame
->
gMutex
.
Unlock
();
}
return
0
;
return
0
;
}
}
int
NetManager
::
BroadcastClient
(
void
*
np
)
{
int
NetManager
::
BroadcastClient
(
void
*
np
)
{
...
@@ -209,7 +199,6 @@ int NetManager::BroadcastClient(void* np) {
...
@@ -209,7 +199,6 @@ int NetManager::BroadcastClient(void* np) {
FD_ZERO
(
&
fds
);
FD_ZERO
(
&
fds
);
FD_SET
(
net
->
sBClient
,
&
fds
);
FD_SET
(
net
->
sBClient
,
&
fds
);
sendto
(
net
->
sBClient
,
(
const
char
*
)
&
net
->
hReq
,
sizeof
(
HostRequest
),
0
,
(
sockaddr
*
)
&
sockTo
,
sizeof
(
sockaddr
));
sendto
(
net
->
sBClient
,
(
const
char
*
)
&
net
->
hReq
,
sizeof
(
HostRequest
),
0
,
(
sockaddr
*
)
&
sockTo
,
sizeof
(
sockaddr
));
mainGame
->
lstServerList
->
clear
();
mainGame
->
is_refreshing
=
true
;
mainGame
->
is_refreshing
=
true
;
int
result
=
select
(
0
,
&
fds
,
0
,
0
,
&
tv
);
int
result
=
select
(
0
,
&
fds
,
0
,
0
,
&
tv
);
std
::
set
<
int
>
addrset
;
std
::
set
<
int
>
addrset
;
...
@@ -236,14 +225,7 @@ int NetManager::BroadcastClient(void* np) {
...
@@ -236,14 +225,7 @@ int NetManager::BroadcastClient(void* np) {
&&
it
->
start_lp
==
8000
&&
it
->
start_hand
==
5
&&
it
->
draw_count
==
1
)
&&
it
->
start_lp
==
8000
&&
it
->
start_hand
==
5
&&
it
->
draw_count
==
1
)
mode
=
L"标准设定"
;
mode
=
L"标准设定"
;
else
mode
=
L"自定义设定"
;
else
mode
=
L"自定义设定"
;
myswprintf
(
tbuf
,
L"[%ls][%ls]%ls"
,
mode
,
it
->
lflist
,
it
->
name
);
mainGame
->
lstServerList
->
addItem
(
tbuf
);
}
}
mainGame
->
btnLanStartServer
->
setEnabled
(
true
);
mainGame
->
btnLanConnect
->
setEnabled
(
true
);
mainGame
->
btnRefreshList
->
setEnabled
(
true
);
mainGame
->
btnLoadReplay
->
setEnabled
(
true
);
mainGame
->
btnDeckEdit
->
setEnabled
(
true
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
gMutex
.
Unlock
();
mainGame
->
is_refreshing
=
false
;
mainGame
->
is_refreshing
=
false
;
closesocket
(
net
->
sBClient
);
closesocket
(
net
->
sBClient
);
...
@@ -343,7 +325,7 @@ int NetManager::ListenThread(void* np) {
...
@@ -343,7 +325,7 @@ int NetManager::ListenThread(void* np) {
mainGame
->
dInfo
.
engLen
=
0
;
mainGame
->
dInfo
.
engLen
=
0
;
mainGame
->
dInfo
.
msgLen
=
0
;
mainGame
->
dInfo
.
msgLen
=
0
;
mainGame
->
dField
.
Clear
();
mainGame
->
dField
.
Clear
();
mainGame
->
HideElement
(
mainGame
->
wModeSelection
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
gMutex
.
Unlock
();
mainGame
->
WaitFrameSignal
(
10
);
mainGame
->
WaitFrameSignal
(
10
);
closesocket
(
net
->
sBHost
);
closesocket
(
net
->
sBHost
);
...
@@ -363,18 +345,13 @@ int NetManager::JoinThread(void* adr) {
...
@@ -363,18 +345,13 @@ int NetManager::JoinThread(void* adr) {
if
(
connect
(
pnet
->
sRemote
,
(
sockaddr
*
)
&
server
,
sizeof
(
sockaddr
))
==
SOCKET_ERROR
)
{
if
(
connect
(
pnet
->
sRemote
,
(
sockaddr
*
)
&
server
,
sizeof
(
sockaddr
))
==
SOCKET_ERROR
)
{
closesocket
(
pnet
->
sRemote
);
closesocket
(
pnet
->
sRemote
);
if
(
!
mainGame
->
is_closing
)
{
if
(
!
mainGame
->
is_closing
)
{
mainGame
->
btnLanStartServer
->
setEnabled
(
true
);
mainGame
->
btnLanConnect
->
setEnabled
(
true
);
mainGame
->
btnRefreshList
->
setEnabled
(
true
);
mainGame
->
btnLoadReplay
->
setEnabled
(
true
);
mainGame
->
btnDeckEdit
->
setEnabled
(
true
);
mainGame
->
stModeStatus
->
setText
(
L"无法连接至主机"
);
mainGame
->
stModeStatus
->
setText
(
L"无法连接至主机"
);
}
}
return
0
;
return
0
;
}
}
char
*
pbuf
=
pnet
->
send_buf
;
char
*
pbuf
=
pnet
->
send_buf
;
NetManager
::
WriteInt16
(
pbuf
,
PROTO_VERSION
);
NetManager
::
WriteInt16
(
pbuf
,
PROTO_VERSION
);
NetManager
::
WriteInt16
(
pbuf
,
mainGame
->
chkStOnly
->
isChecked
()
?
1
:
0
);
NetManager
::
WriteInt16
(
pbuf
,
1
);
const
wchar_t
*
pname
=
mainGame
->
ebJoinPass
->
getText
();
const
wchar_t
*
pname
=
mainGame
->
ebJoinPass
->
getText
();
int
i
=
0
;
int
i
=
0
;
while
(
pname
[
i
]
!=
0
&&
i
<
19
)
while
(
pname
[
i
]
!=
0
&&
i
<
19
)
...
@@ -401,11 +378,6 @@ int NetManager::JoinThread(void* adr) {
...
@@ -401,11 +378,6 @@ int NetManager::JoinThread(void* adr) {
if
(
result
==
SOCKET_ERROR
||
pnet
->
recv_buf
[
0
]
!=
0
)
{
if
(
result
==
SOCKET_ERROR
||
pnet
->
recv_buf
[
0
]
!=
0
)
{
closesocket
(
pnet
->
sRemote
);
closesocket
(
pnet
->
sRemote
);
if
(
!
mainGame
->
is_closing
)
{
if
(
!
mainGame
->
is_closing
)
{
mainGame
->
btnLanStartServer
->
setEnabled
(
true
);
mainGame
->
btnLanConnect
->
setEnabled
(
true
);
mainGame
->
btnRefreshList
->
setEnabled
(
true
);
mainGame
->
btnLoadReplay
->
setEnabled
(
true
);
mainGame
->
btnDeckEdit
->
setEnabled
(
true
);
if
(
result
==
SOCKET_ERROR
)
if
(
result
==
SOCKET_ERROR
)
mainGame
->
stModeStatus
->
setText
(
L"网络连接发生错误"
);
mainGame
->
stModeStatus
->
setText
(
L"网络连接发生错误"
);
else
if
(
pnet
->
recv_buf
[
0
]
==
0x1
)
{
else
if
(
pnet
->
recv_buf
[
0
]
==
0x1
)
{
...
@@ -438,18 +410,11 @@ int NetManager::JoinThread(void* adr) {
...
@@ -438,18 +410,11 @@ int NetManager::JoinThread(void* adr) {
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
lstServerList
->
clear
();
mainGame
->
stModeStatus
->
setText
(
L""
);
mainGame
->
stModeStatus
->
setText
(
L""
);
mainGame
->
dInfo
.
engLen
=
0
;
mainGame
->
dInfo
.
engLen
=
0
;
mainGame
->
dInfo
.
msgLen
=
0
;
mainGame
->
dInfo
.
msgLen
=
0
;
mainGame
->
dInfo
.
is_local_host
=
false
;
mainGame
->
dInfo
.
is_local_host
=
false
;
mainGame
->
dField
.
Clear
();
mainGame
->
dField
.
Clear
();
mainGame
->
btnLanStartServer
->
setEnabled
(
true
);
mainGame
->
btnLanConnect
->
setEnabled
(
true
);
mainGame
->
btnRefreshList
->
setEnabled
(
true
);
mainGame
->
btnLoadReplay
->
setEnabled
(
true
);
mainGame
->
btnDeckEdit
->
setEnabled
(
true
);
mainGame
->
HideElement
(
mainGame
->
wModeSelection
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
gMutex
.
Unlock
();
mainGame
->
WaitFrameSignal
(
10
);
mainGame
->
WaitFrameSignal
(
10
);
Thread
::
NewThread
(
Game
::
RecvThread
,
&
mainGame
->
dInfo
);
Thread
::
NewThread
(
Game
::
RecvThread
,
&
mainGame
->
dInfo
);
...
...
strings.conf
View file @
652f36ba
...
@@ -132,6 +132,65 @@
...
@@ -132,6 +132,65 @@
!
system
1071
反转
!
system
1071
反转
!
system
1072
卡通
!
system
1072
卡通
!
system
1073
超量
!
system
1073
超量
#GUI
!
system
1100
魔陷破坏
!
system
1101
怪兽破坏
!
system
1102
卡片除外
!
system
1103
送去墓地
!
system
1104
返回手牌
!
system
1105
返回卡组
!
system
1106
手牌破坏
!
system
1107
卡组破坏
!
system
1108
抽卡辅助
!
system
1109
卡组检索
!
system
1110
卡片回收
!
system
1111
表示形式
!
system
1112
控制权
!
system
1113
攻守变化
!
system
1114
穿刺伤害
"
!
system
1115
多次攻击
!
system
1116
攻击限制
!
system
1117
直接攻击
!
system
1118
特殊召唤
!
system
1119
衍生物
!
system
1120
种族相关
!
system
1121
属性相关
!
system
1122
LP
伤害
!
system
1123
LP
回复
!
system
1124
破坏耐性
!
system
1125
效果耐性
!
system
1126
指示物
!
system
1127
幸运
!
system
1128
融合相关
!
system
1129
同调相关
!
system
1130
超量相关
!
system
1131
效果无效
#actions
!
system
1150
发动
!
system
1151
召唤
!
system
1152
特殊召唤
!
system
1153
放置
!
system
1154
反转召唤
!
system
1155
守备表示
!
system
1156
攻击表示
!
system
1157
攻击
!
system
1158
查看列表
#menu
!
system
1200
局域网模式
!
system
1201
???
!
system
1202
观看录像
!
system
1203
???
!
system
1204
编辑卡组
!
system
1210
退出
!
system
1211
确定
!
system
1212
取消
!
system
1213
是
!
system
1214
否
!
system
1220
昵称:
!
system
1221
主机信息:
!
system
1222
主机密码:
!
system
1223
加入游戏
!
system
1224
建立主机
#vistory reason
#vistory reason
!
victory
0
x1
LP
变成
0
!
victory
0
x1
LP
变成
0
!
victory
0
x2
没有卡可抽
!
victory
0
x2
没有卡可抽
...
...
system.conf
View file @
652f36ba
#config file
#config file
#nickname & gamename should be less than 20 characters
#nickname & gamename should be less than 20 characters
nickname
=
Player
antialias
=
2
nickname
=
Player1
gamename
=
Game
gamename
=
Game
lastdeck
=
infernity
textfont
=
c
:/
windows
/
fonts
/
simsun
.
ttc
textfont
=
c
:/
windows
/
fonts
/
simsun
.
ttc
numfont
=
c
:/
windows
/
fonts
/
arial
bd
.
ttf
numfont
=
c
:/
windows
/
fonts
/
arial
.
ttf
servport
=
7911
serv
er
port
=
7911
defaul
tip
=
127
.
0
.
0
.
1
las
tip
=
127
.
0
.
0
.
1
defaul
tport
=
7911
las
tport
=
7911
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