Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赤子奈落
ygopro
Commits
019ae3d8
Commit
019ae3d8
authored
Dec 13, 2015
by
mercury233
Browse files
Options
Browse Files
Download
Plain Diff
Merge
https://github.com/Fluorohydride/ygopro
into server
parents
97e76d4e
c07b9172
Changes
13
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
446 additions
and
69 deletions
+446
-69
README.md
README.md
+0
-1
gframe/client_field.cpp
gframe/client_field.cpp
+2
-2
gframe/client_field.h
gframe/client_field.h
+1
-0
gframe/data_manager.cpp
gframe/data_manager.cpp
+34
-0
gframe/data_manager.h
gframe/data_manager.h
+5
-0
gframe/deck_con.cpp
gframe/deck_con.cpp
+21
-3
gframe/event_handler.cpp
gframe/event_handler.cpp
+22
-55
gframe/game.cpp
gframe/game.cpp
+65
-8
gframe/game.h
gframe/game.h
+10
-0
gframe/menu_handler.cpp
gframe/menu_handler.cpp
+1
-0
gframe/single_mode.cpp
gframe/single_mode.cpp
+1
-0
strings.conf
strings.conf
+277
-0
system.conf
system.conf
+7
-0
No files found.
README.md
View file @
019ae3d8
...
...
@@ -31,4 +31,3 @@
*
初始手牌数
*
每回合抽卡
*
每回合时间
gframe/client_field.cpp
View file @
019ae3d8
...
...
@@ -186,7 +186,7 @@ void ClientField::AddCard(ClientCard* pcard, int controler, int location, int se
case
LOCATION_EXTRA
:
{
extra
[
controler
].
push_back
(
pcard
);
pcard
->
sequence
=
extra
[
controler
].
size
()
-
1
;
if
(
(
pcard
->
type
&
TYPE_PENDULUM
)
&&
(
pcard
->
position
&
POS_FACEUP
)
)
if
(
pcard
->
position
&
POS_FACEUP
)
extra_p_count
[
controler
]
++
;
break
;
}
...
...
@@ -256,7 +256,7 @@ ClientCard* ClientField::RemoveCard(int controler, int location, int sequence) {
extra
[
controler
][
i
]
->
mTransform
.
setTranslation
(
extra
[
controler
][
i
]
->
curPos
);
}
extra
[
controler
].
erase
(
extra
[
controler
].
end
()
-
1
);
if
(
(
pcard
->
type
&
TYPE_PENDULUM
)
&&
(
pcard
->
position
&
POS_FACEUP
)
)
if
(
pcard
->
position
&
POS_FACEUP
)
extra_p_count
[
controler
]
--
;
break
;
}
...
...
gframe/client_field.h
View file @
019ae3d8
...
...
@@ -118,6 +118,7 @@ public:
virtual
bool
OnEvent
(
const
irr
::
SEvent
&
event
);
void
GetHoverField
(
int
x
,
int
y
);
void
ShowMenu
(
int
flag
,
int
x
,
int
y
);
void
SetResponseSelectedCards
()
const
;
};
}
...
...
gframe/data_manager.cpp
View file @
019ae3d8
...
...
@@ -102,6 +102,12 @@ bool DataManager::LoadStrings(const char* file) {
wchar_t
*
pbuf
=
new
wchar_t
[
len
+
1
];
wcscpy
(
pbuf
,
strBuffer
);
_counterStrings
[
value
]
=
pbuf
;
}
else
if
(
!
strcmp
(
strbuf
,
"setname"
))
{
sscanf
(
&
linebuf
[
8
],
"%x %240[^
\t\n
]"
,
&
value
,
strbuf
);
//using tab for comment
int
len
=
BufferIO
::
DecodeUTF8
(
strbuf
,
strBuffer
);
wchar_t
*
pbuf
=
new
wchar_t
[
len
+
1
];
wcscpy
(
pbuf
,
strBuffer
);
_setnameStrings
[
value
]
=
pbuf
;
}
}
fclose
(
fp
);
...
...
@@ -182,6 +188,18 @@ const wchar_t* DataManager::GetCounterName(int code) {
return
unknown_string
;
return
csit
->
second
;
}
const
wchar_t
*
DataManager
::
GetSetName
(
int
code
)
{
auto
csit
=
_setnameStrings
.
find
(
code
);
if
(
csit
==
_setnameStrings
.
end
())
return
NULL
;
return
csit
->
second
;
}
unsigned
int
DataManager
::
GetSetCode
(
const
wchar_t
*
setname
)
{
for
(
auto
csit
=
_setnameStrings
.
begin
();
csit
!=
_setnameStrings
.
end
();
++
csit
)
if
(
wcscmp
(
csit
->
second
,
setname
)
==
0
)
return
csit
->
first
;
return
0
;
}
const
wchar_t
*
DataManager
::
GetNumString
(
int
num
,
bool
bracket
)
{
if
(
!
bracket
)
return
numStrings
[
num
];
...
...
@@ -259,6 +277,22 @@ const wchar_t* DataManager::FormatType(int type) {
return
unknown_string
;
return
tpBuffer
;
}
const
wchar_t
*
DataManager
::
FormatSetName
(
unsigned
long
long
setcode
)
{
wchar_t
*
p
=
scBuffer
;
for
(
int
i
=
0
;
i
<
4
;
++
i
)
{
const
wchar_t
*
setname
=
GetSetName
((
setcode
>>
i
*
16
)
&
0xffff
);
if
(
setname
)
{
BufferIO
::
CopyWStrRef
(
setname
,
p
,
16
);
*
p
=
L'|'
;
*++
p
=
0
;
}
}
if
(
p
!=
scBuffer
)
*
(
p
-
1
)
=
0
;
else
return
unknown_string
;
return
scBuffer
;
}
int
DataManager
::
CardReader
(
int
code
,
void
*
pData
)
{
if
(
!
dataManager
.
GetData
(
code
,
(
CardData
*
)
pData
))
memset
(
pData
,
0
,
sizeof
(
CardData
));
...
...
gframe/data_manager.h
View file @
019ae3d8
...
...
@@ -23,16 +23,20 @@ public:
const
wchar_t
*
GetSysString
(
int
code
);
const
wchar_t
*
GetVictoryString
(
int
code
);
const
wchar_t
*
GetCounterName
(
int
code
);
const
wchar_t
*
GetSetName
(
int
code
);
unsigned
int
GetSetCode
(
const
wchar_t
*
setname
);
const
wchar_t
*
GetNumString
(
int
num
,
bool
bracket
=
false
);
const
wchar_t
*
FormatLocation
(
int
location
,
int
sequence
);
const
wchar_t
*
FormatAttribute
(
int
attribute
);
const
wchar_t
*
FormatRace
(
int
race
);
const
wchar_t
*
FormatType
(
int
type
);
const
wchar_t
*
FormatSetName
(
unsigned
long
long
setcode
);
std
::
unordered_map
<
unsigned
int
,
CardDataC
>
_datas
;
std
::
unordered_map
<
unsigned
int
,
CardString
>
_strings
;
std
::
unordered_map
<
unsigned
int
,
wchar_t
*>
_counterStrings
;
std
::
unordered_map
<
unsigned
int
,
wchar_t
*>
_victoryStrings
;
std
::
unordered_map
<
unsigned
int
,
wchar_t
*>
_setnameStrings
;
wchar_t
*
_sysStrings
[
2048
];
wchar_t
numStrings
[
256
][
4
];
...
...
@@ -40,6 +44,7 @@ public:
wchar_t
attBuffer
[
128
];
wchar_t
racBuffer
[
128
];
wchar_t
tpBuffer
[
128
];
wchar_t
scBuffer
[
128
];
static
wchar_t
strBuffer
[
2048
];
static
const
wchar_t
*
unknown_string
;
...
...
gframe/deck_con.cpp
View file @
019ae3d8
...
...
@@ -657,7 +657,10 @@ void DeckBuilder::FilterCards() {
myswprintf
(
result_string
,
L"%d"
,
results
.
size
());
return
;
}
if
(
pstr
[
0
]
==
0
||
(
pstr
[
0
]
==
L'$'
&&
pstr
[
1
]
==
0
))
unsigned
int
set_code
=
0
;
if
(
pstr
[
0
]
==
L'@'
)
set_code
=
dataManager
.
GetSetCode
(
&
pstr
[
1
]);
if
(
pstr
[
0
]
==
0
||
(
pstr
[
0
]
==
L'$'
&&
pstr
[
1
]
==
0
)
||
(
pstr
[
0
]
==
L'@'
&&
pstr
[
1
]
==
0
))
pstr
=
0
;
auto
strpointer
=
dataManager
.
_strings
.
begin
();
for
(
code_pointer
ptr
=
dataManager
.
_datas
.
begin
();
ptr
!=
dataManager
.
_datas
.
end
();
++
ptr
,
++
strpointer
)
{
...
...
@@ -723,8 +726,23 @@ void DeckBuilder::FilterCards() {
if
(
pstr
[
0
]
==
L'$'
)
{
if
(
wcsstr
(
text
.
name
,
&
pstr
[
1
])
==
0
)
continue
;
}
else
{
}
else
if
(
pstr
[
0
]
==
L'@'
&&
set_code
)
{
unsigned
long
long
sc
=
data
.
setcode
;
if
(
data
.
alias
)
{
auto
aptr
=
dataManager
.
_datas
.
find
(
data
.
alias
);
if
(
aptr
!=
dataManager
.
_datas
.
end
())
sc
=
aptr
->
second
.
setcode
;
}
bool
res
=
false
;
int
settype
=
set_code
&
0xfff
;
int
setsubtype
=
set_code
&
0xf000
;
while
(
sc
)
{
if
((
sc
&
0xfff
)
==
settype
&&
(
sc
&
0xf000
&
setsubtype
)
==
setsubtype
)
res
=
true
;
sc
=
sc
>>
16
;
}
if
(
!
res
)
continue
;
}
else
{
if
(
wcsstr
(
text
.
name
,
pstr
)
==
0
&&
wcsstr
(
text
.
text
,
pstr
)
==
0
)
continue
;
}
...
...
gframe/event_handler.cpp
View file @
019ae3d8
...
...
@@ -168,11 +168,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case
MSG_SELECT_CARD
:
case
MSG_SELECT_TRIBUTE
:
case
MSG_SELECT_SUM
:
{
unsigned
char
respbuf
[
64
];
respbuf
[
0
]
=
selected_cards
.
size
();
for
(
size_t
i
=
0
;
i
<
selected_cards
.
size
();
++
i
)
respbuf
[
i
+
1
]
=
selected_cards
[
i
]
->
select_seq
;
DuelClient
::
SetResponseB
(
respbuf
,
selected_cards
.
size
()
+
1
);
SetResponseSelectedCards
();
mainGame
->
HideElement
(
mainGame
->
wQuery
,
true
);
break
;
}
...
...
@@ -566,11 +562,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
int
sel
=
selected_cards
.
size
();
if
(
sel
>=
select_max
)
{
unsigned
char
respbuf
[
64
];
respbuf
[
0
]
=
selected_cards
.
size
();
for
(
size_t
i
=
0
;
i
<
selected_cards
.
size
();
++
i
)
respbuf
[
i
+
1
]
=
selected_cards
[
i
]
->
select_seq
;
DuelClient
::
SetResponseB
(
respbuf
,
selected_cards
.
size
()
+
1
);
SetResponseSelectedCards
();
mainGame
->
HideElement
(
mainGame
->
wCardSelect
,
true
);
}
else
if
(
sel
>=
select_min
)
{
select_ready
=
true
;
...
...
@@ -585,11 +577,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
command_card
=
selectable_cards
[
id
-
BUTTON_CARD_0
+
mainGame
->
scrCardList
->
getPos
()
/
10
];
selected_cards
.
push_back
(
command_card
);
if
(
CheckSelectSum
())
{
unsigned
char
respbuf
[
64
];
respbuf
[
0
]
=
selected_cards
.
size
();
for
(
size_t
i
=
0
;
i
<
selected_cards
.
size
();
++
i
)
respbuf
[
i
+
1
]
=
selected_cards
[
i
]
->
select_seq
;
DuelClient
::
SetResponseB
(
respbuf
,
selected_cards
.
size
()
+
1
);
SetResponseSelectedCards
();
mainGame
->
HideElement
(
mainGame
->
wCardSelect
,
true
);
}
else
{
mainGame
->
wCardSelect
->
setVisible
(
false
);
...
...
@@ -642,11 +630,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
if
(
mainGame
->
dInfo
.
curMsg
==
MSG_SELECT_CARD
)
{
if
(
select_ready
)
{
unsigned
char
respbuf
[
64
];
respbuf
[
0
]
=
selected_cards
.
size
();
for
(
size_t
i
=
0
;
i
<
selected_cards
.
size
();
++
i
)
respbuf
[
i
+
1
]
=
selected_cards
[
i
]
->
select_seq
;
DuelClient
::
SetResponseB
(
respbuf
,
selected_cards
.
size
()
+
1
);
SetResponseSelectedCards
();
mainGame
->
HideElement
(
mainGame
->
wCardSelect
,
true
);
}
break
;
...
...
@@ -917,6 +901,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
mainGame
->
stName
->
setText
(
L""
);
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stSetName
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
scrCardText
->
setVisible
(
false
);
}
...
...
@@ -931,6 +916,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
mainGame
->
stName
->
setText
(
L""
);
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stSetName
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
scrCardText
->
setVisible
(
false
);
}
...
...
@@ -1226,19 +1212,11 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
max
+=
selected_cards
[
i
]
->
opParam
;
}
if
(
min
>=
select_max
)
{
unsigned
char
respbuf
[
64
];
respbuf
[
0
]
=
selected_cards
.
size
();
for
(
size_t
i
=
0
;
i
<
selected_cards
.
size
();
++
i
)
respbuf
[
i
+
1
]
=
selected_cards
[
i
]
->
select_seq
;
DuelClient
::
SetResponseB
(
respbuf
,
selected_cards
.
size
()
+
1
);
SetResponseSelectedCards
();
DuelClient
::
SendResponse
();
}
else
if
(
max
>=
select_min
)
{
if
(
selected_cards
.
size
()
==
selectable_cards
.
size
())
{
unsigned
char
respbuf
[
64
];
respbuf
[
0
]
=
selected_cards
.
size
();
for
(
size_t
i
=
0
;
i
<
selected_cards
.
size
();
++
i
)
respbuf
[
i
+
1
]
=
selected_cards
[
i
]
->
select_seq
;
DuelClient
::
SetResponseB
(
respbuf
,
selected_cards
.
size
()
+
1
);
SetResponseSelectedCards
();
DuelClient
::
SendResponse
();
}
else
{
select_ready
=
true
;
...
...
@@ -1289,11 +1267,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
else
break
;
if
(
CheckSelectSum
())
{
if
(
selectsum_cards
.
size
()
==
0
||
selectable_cards
.
size
()
==
0
)
{
unsigned
char
respbuf
[
64
];
respbuf
[
0
]
=
selected_cards
.
size
();
for
(
size_t
i
=
0
;
i
<
selected_cards
.
size
();
++
i
)
respbuf
[
i
+
1
]
=
selected_cards
[
i
]
->
select_seq
;
DuelClient
::
SetResponseB
(
respbuf
,
selected_cards
.
size
()
+
1
);
SetResponseSelectedCards
();
DuelClient
::
SendResponse
();
}
else
{
select_ready
=
true
;
...
...
@@ -1363,20 +1337,12 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
}
if
(
mainGame
->
wQuery
->
isVisible
())
{
unsigned
char
respbuf
[
64
];
respbuf
[
0
]
=
selected_cards
.
size
();
for
(
size_t
i
=
0
;
i
<
selected_cards
.
size
();
++
i
)
respbuf
[
i
+
1
]
=
selected_cards
[
i
]
->
select_seq
;
DuelClient
::
SetResponseB
(
respbuf
,
selected_cards
.
size
()
+
1
);
SetResponseSelectedCards
();
mainGame
->
HideElement
(
mainGame
->
wQuery
,
true
);
break
;
}
if
(
select_ready
)
{
unsigned
char
respbuf
[
64
];
respbuf
[
0
]
=
selected_cards
.
size
();
for
(
size_t
i
=
0
;
i
<
selected_cards
.
size
();
++
i
)
respbuf
[
i
+
1
]
=
selected_cards
[
i
]
->
select_seq
;
DuelClient
::
SetResponseB
(
respbuf
,
selected_cards
.
size
()
+
1
);
SetResponseSelectedCards
();
if
(
mainGame
->
wCardSelect
->
isVisible
())
mainGame
->
HideElement
(
mainGame
->
wCardSelect
,
true
);
else
...
...
@@ -1396,11 +1362,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
}
if
(
mainGame
->
wQuery
->
isVisible
())
{
unsigned
char
respbuf
[
64
];
respbuf
[
0
]
=
selected_cards
.
size
();
for
(
size_t
i
=
0
;
i
<
selected_cards
.
size
();
++
i
)
respbuf
[
i
+
1
]
=
selected_cards
[
i
]
->
select_seq
;
DuelClient
::
SetResponseB
(
respbuf
,
selected_cards
.
size
()
+
1
);
SetResponseSelectedCards
();
mainGame
->
HideElement
(
mainGame
->
wQuery
,
true
);
break
;
}
...
...
@@ -1408,11 +1370,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
case
MSG_SELECT_SUM
:
{
if
(
mainGame
->
wQuery
->
isVisible
())
{
unsigned
char
respbuf
[
64
];
respbuf
[
0
]
=
selected_cards
.
size
();
for
(
size_t
i
=
0
;
i
<
selected_cards
.
size
();
++
i
)
respbuf
[
i
+
1
]
=
selected_cards
[
i
]
->
select_seq
;
DuelClient
::
SetResponseB
(
respbuf
,
selected_cards
.
size
()
+
1
);
SetResponseSelectedCards
();
mainGame
->
HideElement
(
mainGame
->
wQuery
,
true
);
break
;
}
...
...
@@ -1603,6 +1561,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
mainGame
->
stName
->
setText
(
L""
);
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stSetName
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
scrCardText
->
setVisible
(
false
);
}
...
...
@@ -1935,4 +1894,12 @@ void ClientField::ShowMenu(int flag, int x, int y) {
mainGame
->
wCmdMenu
->
setVisible
(
true
);
mainGame
->
wCmdMenu
->
setRelativePosition
(
irr
::
core
::
recti
(
x
-
20
,
y
-
20
-
height
,
x
+
80
,
y
-
20
));
}
void
ClientField
::
SetResponseSelectedCards
()
const
{
unsigned
char
respbuf
[
64
];
respbuf
[
0
]
=
selected_cards
.
size
();
for
(
size_t
i
=
0
;
i
<
selected_cards
.
size
();
++
i
)
respbuf
[
i
+
1
]
=
selected_cards
[
i
]
->
select_seq
;
DuelClient
::
SetResponseB
(
respbuf
,
selected_cards
.
size
()
+
1
);
}
}
gframe/game.cpp
View file @
019ae3d8
...
...
@@ -292,8 +292,10 @@ bool Game::Initialize() {
stInfo
->
setOverrideColor
(
SColor
(
255
,
0
,
0
,
255
));
stDataInfo
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
15
,
60
,
296
,
83
),
false
,
true
,
tabInfo
,
-
1
,
false
);
stDataInfo
->
setOverrideColor
(
SColor
(
255
,
0
,
0
,
255
));
stText
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
15
,
83
,
287
,
324
),
false
,
true
,
tabInfo
,
-
1
,
false
);
scrCardText
=
env
->
addScrollBar
(
false
,
rect
<
s32
>
(
267
,
83
,
287
,
324
),
tabInfo
,
SCROLL_CARDTEXT
);
stSetName
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
15
,
83
,
296
,
106
),
false
,
true
,
tabInfo
,
-
1
,
false
);
stSetName
->
setOverrideColor
(
SColor
(
255
,
0
,
0
,
255
));
stText
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
15
,
106
,
287
,
324
),
false
,
true
,
tabInfo
,
-
1
,
false
);
scrCardText
=
env
->
addScrollBar
(
false
,
rect
<
s32
>
(
267
,
106
,
287
,
324
),
tabInfo
,
SCROLL_CARDTEXT
);
scrCardText
->
setLargeStep
(
1
);
scrCardText
->
setSmallStep
(
1
);
scrCardText
->
setVisible
(
false
);
...
...
@@ -305,13 +307,19 @@ bool Game::Initialize() {
//system
irr
::
gui
::
IGUITab
*
tabSystem
=
wInfos
->
addTab
(
dataManager
.
GetSysString
(
1273
));
chkAutoPos
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
20
,
20
,
280
,
45
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1274
));
chkAutoPos
->
setChecked
(
true
);
chkAutoPos
->
setChecked
(
gameConf
.
chkAutoPos
!=
0
);
chkRandomPos
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
40
,
50
,
300
,
75
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1275
));
chkRandomPos
->
setChecked
(
gameConf
.
chkRandomPos
!=
0
);
chkAutoChain
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
20
,
80
,
280
,
105
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1276
));
chkAutoChain
->
setChecked
(
gameConf
.
chkAutoChain
!=
0
);
chkWaitChain
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
20
,
110
,
280
,
135
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1277
));
chkWaitChain
->
setChecked
(
gameConf
.
chkWaitChain
!=
0
);
chkIgnore1
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
20
,
170
,
280
,
195
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1290
));
chkIgnore1
->
setChecked
(
gameConf
.
chkIgnore1
!=
0
);
chkIgnore2
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
20
,
200
,
280
,
225
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1291
));
chkIgnore2
->
setChecked
(
false
);
chkIgnore2
->
setChecked
(
gameConf
.
chkIgnore2
!=
0
);
chkHideSetname
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
20
,
260
,
280
,
285
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1354
));
chkHideSetname
->
setChecked
(
gameConf
.
chkHideSetname
!=
0
);
//
wHand
=
env
->
addWindow
(
rect
<
s32
>
(
500
,
450
,
825
,
605
),
false
,
L""
);
wHand
->
getCloseButton
()
->
setVisible
(
false
);
...
...
@@ -846,6 +854,14 @@ void Game::LoadConfig() {
gameConf
.
lastip
[
0
]
=
0
;
gameConf
.
lastport
[
0
]
=
0
;
gameConf
.
roompass
[
0
]
=
0
;
//settings
gameConf
.
chkAutoPos
=
1
;
gameConf
.
chkRandomPos
=
0
;
gameConf
.
chkAutoChain
=
0
;
gameConf
.
chkWaitChain
=
0
;
gameConf
.
chkIgnore1
=
0
;
gameConf
.
chkIgnore2
=
0
;
gameConf
.
chkHideSetname
=
0
;
fseek
(
fp
,
0
,
SEEK_END
);
int
fsize
=
ftell
(
fp
);
fseek
(
fp
,
0
,
SEEK_SET
);
...
...
@@ -878,6 +894,20 @@ void Game::LoadConfig() {
}
else
if
(
!
strcmp
(
strbuf
,
"roompass"
))
{
BufferIO
::
DecodeUTF8
(
valbuf
,
wstr
);
BufferIO
::
CopyWStr
(
wstr
,
gameConf
.
roompass
,
20
);
}
else
if
(
!
strcmp
(
strbuf
,
"autopos"
))
{
gameConf
.
chkAutoPos
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"randompos"
))
{
gameConf
.
chkRandomPos
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"autochain"
))
{
gameConf
.
chkAutoChain
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"waitchain"
))
{
gameConf
.
chkWaitChain
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"ignore1"
))
{
gameConf
.
chkIgnore1
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"ignore2"
))
{
gameConf
.
chkIgnore2
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"hide_setname"
))
{
gameConf
.
chkHideSetname
=
atoi
(
valbuf
);
}
else
{
// options allowing multiple words
sscanf
(
linebuf
,
"%s = %240[^
\n
]"
,
strbuf
,
valbuf
);
...
...
@@ -920,6 +950,14 @@ void Game::SaveConfig() {
fprintf
(
fp
,
"lastip = %s
\n
"
,
linebuf
);
BufferIO
::
EncodeUTF8
(
gameConf
.
lastport
,
linebuf
);
fprintf
(
fp
,
"lastport = %s
\n
"
,
linebuf
);
//settings
fprintf
(
fp
,
"autopos = %d
\n
"
,
((
mainGame
->
chkAutoPos
->
isChecked
())
?
1
:
0
));
fprintf
(
fp
,
"randompos = %d
\n
"
,
((
mainGame
->
chkRandomPos
->
isChecked
())
?
1
:
0
));
fprintf
(
fp
,
"autochain = %d
\n
"
,
((
mainGame
->
chkAutoChain
->
isChecked
())
?
1
:
0
));
fprintf
(
fp
,
"waitchain = %d
\n
"
,
((
mainGame
->
chkWaitChain
->
isChecked
())
?
1
:
0
));
fprintf
(
fp
,
"ignore1 = %d
\n
"
,
((
mainGame
->
chkIgnore1
->
isChecked
())
?
1
:
0
));
fprintf
(
fp
,
"ignore2 = %d
\n
"
,
((
mainGame
->
chkIgnore2
->
isChecked
())
?
1
:
0
));
fprintf
(
fp
,
"hide_setname = %d
\n
"
,
((
mainGame
->
chkHideSetname
->
isChecked
())
?
1
:
0
));
fclose
(
fp
);
}
void
Game
::
ShowCardInfo
(
int
code
)
{
...
...
@@ -933,6 +971,23 @@ void Game::ShowCardInfo(int code) {
myswprintf
(
formatBuffer
,
L"%ls[%08d]"
,
dataManager
.
GetName
(
cd
.
alias
),
cd
.
alias
);
else
myswprintf
(
formatBuffer
,
L"%ls[%08d]"
,
dataManager
.
GetName
(
code
),
code
);
stName
->
setText
(
formatBuffer
);
int
offset
=
0
;
if
(
!
mainGame
->
chkHideSetname
->
isChecked
())
{
unsigned
long
long
sc
=
cd
.
setcode
;
if
(
cd
.
alias
)
{
auto
aptr
=
dataManager
.
_datas
.
find
(
cd
.
alias
);
if
(
aptr
!=
dataManager
.
_datas
.
end
())
sc
=
aptr
->
second
.
setcode
;
}
if
(
sc
)
{
offset
=
23
;
myswprintf
(
formatBuffer
,
L"%ls%ls"
,
dataManager
.
GetSysString
(
1329
),
dataManager
.
FormatSetName
(
sc
));
stSetName
->
setText
(
formatBuffer
);
}
else
stSetName
->
setText
(
L""
);
}
else
{
stSetName
->
setText
(
L""
);
}
if
(
cd
.
type
&
TYPE_MONSTER
)
{
myswprintf
(
formatBuffer
,
L"[%ls] %ls/%ls"
,
dataManager
.
FormatType
(
cd
.
type
),
dataManager
.
FormatRace
(
cd
.
race
),
dataManager
.
FormatAttribute
(
cd
.
attribute
));
stInfo
->
setText
(
formatBuffer
);
...
...
@@ -955,14 +1010,16 @@ void Game::ShowCardInfo(int code) {
wcscat
(
formatBuffer
,
scaleBuffer
);
}
stDataInfo
->
setText
(
formatBuffer
);
stText
->
setRelativePosition
(
rect
<
s32
>
(
15
,
83
,
287
,
324
));
scrCardText
->
setRelativePosition
(
rect
<
s32
>
(
267
,
83
,
287
,
324
));
stSetName
->
setRelativePosition
(
rect
<
s32
>
(
15
,
83
,
296
,
106
));
stText
->
setRelativePosition
(
rect
<
s32
>
(
15
,
83
+
offset
,
287
,
324
));
scrCardText
->
setRelativePosition
(
rect
<
s32
>
(
267
,
83
+
offset
,
287
,
324
));
}
else
{
myswprintf
(
formatBuffer
,
L"[%ls]"
,
dataManager
.
FormatType
(
cd
.
type
));
stInfo
->
setText
(
formatBuffer
);
stDataInfo
->
setText
(
L""
);
stText
->
setRelativePosition
(
rect
<
s32
>
(
15
,
60
,
287
,
324
));
scrCardText
->
setRelativePosition
(
rect
<
s32
>
(
267
,
60
,
287
,
324
));
stSetName
->
setRelativePosition
(
rect
<
s32
>
(
15
,
60
,
296
,
83
));
stText
->
setRelativePosition
(
rect
<
s32
>
(
15
,
60
+
offset
,
287
,
324
));
scrCardText
->
setRelativePosition
(
rect
<
s32
>
(
267
,
60
+
offset
,
287
,
324
));
}
showingtext
=
dataManager
.
GetText
(
code
);
const
auto
&
tsize
=
stText
->
getRelativePosition
();
...
...
gframe/game.h
View file @
019ae3d8
...
...
@@ -24,6 +24,14 @@ struct Config {
wchar_t
textfont
[
256
];
wchar_t
numfont
[
256
];
wchar_t
roompass
[
20
];
//settings
int
chkAutoPos
;
int
chkRandomPos
;
int
chkAutoChain
;
int
chkWaitChain
;
int
chkIgnore1
;
int
chkIgnore2
;
int
chkHideSetname
;
};
struct
DuelInfo
{
...
...
@@ -173,12 +181,14 @@ public:
irr
::
gui
::
IGUIStaticText
*
stName
;
irr
::
gui
::
IGUIStaticText
*
stInfo
;
irr
::
gui
::
IGUIStaticText
*
stDataInfo
;
irr
::
gui
::
IGUIStaticText
*
stSetName
;
irr
::
gui
::
IGUIStaticText
*
stText
;
irr
::
gui
::
IGUIScrollBar
*
scrCardText
;
irr
::
gui
::
IGUICheckBox
*
chkAutoPos
;
irr
::
gui
::
IGUICheckBox
*
chkRandomPos
;
irr
::
gui
::
IGUICheckBox
*
chkAutoChain
;
irr
::
gui
::
IGUICheckBox
*
chkWaitChain
;
irr
::
gui
::
IGUICheckBox
*
chkHideSetname
;
irr
::
gui
::
IGUIListBox
*
lstLog
;
irr
::
gui
::
IGUIButton
*
btnClearLog
;
irr
::
gui
::
IGUIButton
*
btnSaveLog
;
...
...
gframe/menu_handler.cpp
View file @
019ae3d8
...
...
@@ -171,6 +171,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame
->
stName
->
setText
(
L""
);
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stSetName
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
scrCardText
->
setVisible
(
false
);
mainGame
->
wReplayControl
->
setVisible
(
true
);
...
...
gframe/single_mode.cpp
View file @
019ae3d8
...
...
@@ -62,6 +62,7 @@ int SingleMode::SinglePlayThread(void* param) {
mainGame
->
stName
->
setText
(
L""
);
mainGame
->
stInfo
->
setText
(
L""
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stSetName
->
setText
(
L""
);
mainGame
->
stText
->
setText
(
L""
);
mainGame
->
scrCardText
->
setVisible
(
false
);
mainGame
->
wPhase
->
setVisible
(
true
);
...
...
strings.conf
View file @
019ae3d8
This diff is collapsed.
Click to expand it.
system.conf
View file @
019ae3d8
...
...
@@ -11,3 +11,10 @@ numfont = c:/windows/fonts/arialbd.ttf
serverport
=
7911
lastip
=
127
.
0
.
0
.
1
lastport
=
7911
autopos
=
1
randompos
=
0
autochain
=
0
waitchain
=
0
ignore1
=
0
ignore2
=
0
hide_setname
=
0
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