Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-2pick
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
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
MyCard
ygopro-2pick
Commits
96299d3a
Commit
96299d3a
authored
Jan 05, 2012
by
argon.sun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
strings
parent
e7e54820
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
129 additions
and
251 deletions
+129
-251
gframe/client_field.cpp
gframe/client_field.cpp
+2
-2
gframe/data_manager.cpp
gframe/data_manager.cpp
+40
-225
gframe/data_manager.h
gframe/data_manager.h
+8
-7
gframe/drawing.cpp
gframe/drawing.cpp
+3
-3
gframe/event_handler.cpp
gframe/event_handler.cpp
+4
-4
gframe/game.cpp
gframe/game.cpp
+6
-6
gframe/message.cpp
gframe/message.cpp
+4
-4
ocgcore/card.h
ocgcore/card.h
+1
-0
strings.conf
strings.conf
+61
-0
No files found.
gframe/client_field.cpp
View file @
96299d3a
...
...
@@ -325,7 +325,7 @@ void ClientField::ShowSelectCard(bool buttonok) {
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
if
(
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CHAIN
&&
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CARD
)
{
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
DataManager
::
FormatLocation
(
selectable_cards
[
i
]
->
location
),
selectable_cards
[
i
]
->
sequence
+
1
);
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
mainGame
->
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
),
selectable_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);;
if
(
selectable_cards
[
i
]
->
controler
)
...
...
@@ -356,7 +356,7 @@ void ClientField::ShowSelectCard(bool buttonok) {
mainGame
->
btnCardSelect
[
i
]
->
setPressed
(
false
);
mainGame
->
btnCardSelect
[
i
]
->
setVisible
(
true
);
if
(
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CHAIN
&&
mainGame
->
dInfo
.
curMsg
!=
MSG_SORT_CARD
)
{
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
DataManager
::
FormatLocation
(
selectable_cards
[
i
]
->
location
),
selectable_cards
[
i
]
->
sequence
+
1
);
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
mainGame
->
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
),
selectable_cards
[
i
]
->
sequence
+
1
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
mainGame
->
stCardPos
[
i
]
->
setVisible
(
true
);
if
(
selectable_cards
[
i
]
->
controler
)
...
...
gframe/data_manager.cpp
View file @
96299d3a
#include "data_manager.h"
#include <stdio.h>
namespace
ygo
{
const
wchar_t
*
DataManager
::
unknown_string
=
L"???"
;
const
wchar_t
*
DataManager
::
effect_strings
[]
=
{
L"魔陷破坏"
,
L"怪兽破坏"
,
L"卡片除外"
,
L"送去墓地"
,
L"返回手牌"
,
L"返回卡组"
,
L"手牌破坏"
,
L"卡组破坏"
,
...
...
@@ -11,9 +9,6 @@ const wchar_t* DataManager::effect_strings[] = {
L"破坏耐性"
,
L"效果耐性"
,
L"指示物 "
,
L"幸运 "
,
L"融合相关"
,
L"同调相关"
,
L"超量相关"
,
L"效果无效"
};
wchar_t
DataManager
::
strBuffer
[
2048
];
wchar_t
DataManager
::
attBuffer
[
128
];
wchar_t
DataManager
::
racBuffer
[
128
];
wchar_t
DataManager
::
tpBuffer
[
128
];
bool
DataManager
::
LoadDates
(
const
char
*
file
)
{
sqlite3
*
pDB
;
...
...
@@ -237,247 +232,67 @@ int DataManager::GetVal(const wchar_t* pstr) {
}
return
ret
;
}
int
DataManager
::
CopyStr
(
const
wchar_t
*
src
,
wchar_t
*&
pstr
,
int
maxlen
)
{
int
l
=
0
;
while
(
src
[
l
]
&&
l
<
maxlen
)
{
pstr
[
l
]
=
src
[
l
];
l
++
;
}
pstr
+=
l
;
*
pstr
=
0
;
return
l
;
}
const
wchar_t
*
DataManager
::
FormatLocation
(
int
location
)
{
switch
(
location
)
{
case
LOCATION_DECK
:
return
L"卡组"
;
case
LOCATION_HAND
:
return
L"手牌"
;
case
LOCATION_MZONE
:
return
L"怪兽区"
;
case
LOCATION_SZONE
:
return
L"魔法陷阱区"
;
case
LOCATION_GRAVE
:
return
L"墓地"
;
case
LOCATION_REMOVED
:
return
L"除外"
;
case
LOCATION_EXTRA
:
return
L"额外"
;
case
LOCATION_OVERLAY
:
return
L"叠放"
;
}
return
unknown_string
;
int
filter
=
1
,
i
=
1000
;
while
(
filter
!=
location
)
{
filter
<<=
1
;
i
++
;
}
if
(
filter
==
location
)
return
GetSysString
(
i
);
else
return
unknown_string
;
}
const
wchar_t
*
DataManager
::
FormatAttribute
(
int
attribute
)
{
wchar_t
*
p
=
attBuffer
;
if
(
attribute
&
ATTRIBUTE_EARTH
)
{
wcscpy
(
p
,
L"地|"
);
p
+=
2
;
}
if
(
attribute
&
ATTRIBUTE_WATER
)
{
wcscpy
(
p
,
L"水|"
);
p
+=
2
;
}
if
(
attribute
&
ATTRIBUTE_FIRE
)
{
wcscpy
(
p
,
L"炎|"
);
p
+=
2
;
}
if
(
attribute
&
ATTRIBUTE_WIND
)
{
wcscpy
(
p
,
L"风|"
);
p
+=
2
;
}
if
(
attribute
&
ATTRIBUTE_LIGHT
)
{
wcscpy
(
p
,
L"光|"
);
p
+=
2
;
}
if
(
attribute
&
ATTRIBUTE_DARK
)
{
wcscpy
(
p
,
L"暗|"
);
p
+=
2
;
}
if
(
attribute
&
ATTRIBUTE_DEVINE
)
{
wcscpy
(
p
,
L"神|"
);
p
+=
2
;
int
filter
=
1
,
i
=
1010
;
for
(;
filter
!=
0x80
;
filter
<<=
1
,
++
i
)
{
if
(
attribute
&
filter
)
{
CopyStr
(
GetSysString
(
i
),
p
,
16
);
*
p
=
L'|'
;
*++
p
=
0
;
}
}
if
(
p
!=
attBuffer
)
*
(
p
-
1
)
=
0
;
else
*
p
=
0
;
return
attBuffer
;
}
const
wchar_t
*
DataManager
::
FormatRace
(
int
race
)
{
wchar_t
*
p
=
racBuffer
;
if
(
race
&
RACE_WARRIOR
)
{
wcscpy
(
p
,
L"战士族|"
);
p
+=
4
;
}
if
(
race
&
RACE_SPELLCASTER
)
{
wcscpy
(
p
,
L"魔法使族|"
);
p
+=
5
;
}
if
(
race
&
RACE_FAIRY
)
{
wcscpy
(
p
,
L"天使族|"
);
p
+=
4
;
}
if
(
race
&
RACE_FIEND
)
{
wcscpy
(
p
,
L"恶魔族|"
);
p
+=
4
;
}
if
(
race
&
RACE_ZOMBIE
)
{
wcscpy
(
p
,
L"不死族|"
);
p
+=
4
;
}
if
(
race
&
RACE_MACHINE
)
{
wcscpy
(
p
,
L"机械族|"
);
p
+=
4
;
}
if
(
race
&
RACE_AQUA
)
{
wcscpy
(
p
,
L"水族|"
);
p
+=
3
;
}
if
(
race
&
RACE_PYRO
)
{
wcscpy
(
p
,
L"炎族|"
);
p
+=
3
;
}
if
(
race
&
RACE_ROCK
)
{
wcscpy
(
p
,
L"岩石族|"
);
p
+=
4
;
}
if
(
race
&
RACE_WINDBEAST
)
{
wcscpy
(
p
,
L"鸟兽族|"
);
p
+=
4
;
}
if
(
race
&
RACE_PLANT
)
{
wcscpy
(
p
,
L"植物族|"
);
p
+=
4
;
}
if
(
race
&
RACE_INSECT
)
{
wcscpy
(
p
,
L"昆虫族|"
);
p
+=
4
;
}
if
(
race
&
RACE_THUNDER
)
{
wcscpy
(
p
,
L"雷族|"
);
p
+=
3
;
}
if
(
race
&
RACE_DRAGON
)
{
wcscpy
(
p
,
L"龙族|"
);
p
+=
3
;
}
if
(
race
&
RACE_BEAST
)
{
wcscpy
(
p
,
L"兽族|"
);
p
+=
3
;
}
if
(
race
&
RACE_BEASTWARRIOR
)
{
wcscpy
(
p
,
L"兽战士族|"
);
p
+=
5
;
}
if
(
race
&
RACE_DINOSAUR
)
{
wcscpy
(
p
,
L"恐龙族|"
);
p
+=
4
;
}
if
(
race
&
RACE_FISH
)
{
wcscpy
(
p
,
L"鱼族|"
);
p
+=
3
;
}
if
(
race
&
RACE_SEASERPENT
)
{
wcscpy
(
p
,
L"海龙族|"
);
p
+=
4
;
}
if
(
race
&
RACE_REPTILE
)
{
wcscpy
(
p
,
L"爬虫族|"
);
p
+=
4
;
}
if
(
race
&
RACE_PSYCHO
)
{
wcscpy
(
p
,
L"念动力族|"
);
p
+=
5
;
}
if
(
race
&
RACE_DEVINE
)
{
wcscpy
(
p
,
L"幻神兽族|"
);
p
+=
5
;
int
filter
=
1
,
i
=
1020
;
for
(;
filter
!=
0x800000
;
filter
<<=
1
,
++
i
)
{
if
(
race
&
filter
)
{
CopyStr
(
GetSysString
(
i
),
p
,
16
);
*
p
=
L'|'
;
*++
p
=
0
;
}
}
if
(
p
!=
racBuffer
)
*
(
p
-
1
)
=
0
;
else
*
p
=
0
;
return
racBuffer
;
}
const
wchar_t
*
DataManager
::
FormatType
(
int
type
)
{
wchar_t
*
p
=
tpBuffer
;
if
(
type
&
TYPE_MONSTER
)
{
wcscpy
(
p
,
L"怪兽|"
);
p
+=
3
;
}
if
(
type
&
TYPE_SPELL
)
{
wcscpy
(
p
,
L"魔法|"
);
p
+=
3
;
}
if
(
type
&
TYPE_TRAP
)
{
wcscpy
(
p
,
L"陷阱|"
);
p
+=
3
;
}
if
(
type
&
TYPE_NORMAL
)
{
wcscpy
(
p
,
L"通常|"
);
p
+=
3
;
}
if
(
type
&
TYPE_EFFECT
)
{
wcscpy
(
p
,
L"效果|"
);
p
+=
3
;
}
if
(
type
&
TYPE_FUSION
)
{
wcscpy
(
p
,
L"融合|"
);
p
+=
3
;
}
if
(
type
&
TYPE_RITUAL
)
{
wcscpy
(
p
,
L"仪式|"
);
p
+=
3
;
}
if
(
type
&
TYPE_SPIRIT
)
{
wcscpy
(
p
,
L"灵魂|"
);
p
+=
3
;
}
if
(
type
&
TYPE_UNION
)
{
wcscpy
(
p
,
L"同盟|"
);
p
+=
3
;
}
if
(
type
&
TYPE_DUAL
)
{
wcscpy
(
p
,
L"二重|"
);
p
+=
3
;
}
if
(
type
&
TYPE_TUNER
)
{
wcscpy
(
p
,
L"调整|"
);
p
+=
3
;
}
if
(
type
&
TYPE_SYNCHRO
)
{
wcscpy
(
p
,
L"同调|"
);
p
+=
3
;
}
if
(
type
&
TYPE_TOKEN
)
{
wcscpy
(
p
,
L"衍生物|"
);
p
+=
4
;
}
if
(
type
&
TYPE_QUICKPLAY
)
{
wcscpy
(
p
,
L"速攻|"
);
p
+=
3
;
}
if
(
type
&
TYPE_CONTINUOUS
)
{
wcscpy
(
p
,
L"永续|"
);
p
+=
3
;
}
if
(
type
&
TYPE_EQUIP
)
{
wcscpy
(
p
,
L"装备|"
);
p
+=
3
;
}
if
(
type
&
TYPE_FIELD
)
{
wcscpy
(
p
,
L"场地|"
);
p
+=
3
;
}
if
(
type
&
TYPE_COUNTER
)
{
wcscpy
(
p
,
L"反击|"
);
p
+=
3
;
}
if
(
type
&
TYPE_FLIP
)
{
wcscpy
(
p
,
L"反转|"
);
p
+=
3
;
}
if
(
type
&
TYPE_TOON
)
{
wcscpy
(
p
,
L"卡通|"
);
p
+=
3
;
}
if
(
type
&
TYPE_XYZ
)
{
wcscpy
(
p
,
L"超量|"
);
p
+=
3
;
int
filter
=
1
,
i
=
1050
;
for
(;
filter
!=
0x1000000
;
filter
<<=
1
,
++
i
)
{
if
(
type
&
filter
)
{
CopyStr
(
GetSysString
(
i
),
p
,
16
);
*
p
=
L'|'
;
*++
p
=
0
;
}
}
if
(
p
!=
tpBuffer
)
*
(
p
-
1
)
=
0
;
else
*
p
=
0
;
return
tpBuffer
;
}
}
gframe/data_manager.h
View file @
96299d3a
...
...
@@ -26,9 +26,14 @@ public:
const
wchar_t
*
GetVictoryString
(
int
code
);
const
wchar_t
*
GetCounterName
(
int
code
);
const
wchar_t
*
GetNumString
(
int
num
);
const
wchar_t
*
FormatLocation
(
int
location
);
const
wchar_t
*
FormatAttribute
(
int
attribute
);
const
wchar_t
*
FormatRace
(
int
race
);
const
wchar_t
*
FormatType
(
int
type
);
static
int
EncodeUTF8
(
const
wchar_t
*
wsrc
,
char
*
str
);
static
int
DecodeUTF8
(
const
char
*
src
,
wchar_t
*
wstr
);
static
int
GetVal
(
const
wchar_t
*
pstr
);
static
int
CopyStr
(
const
wchar_t
*
src
,
wchar_t
*&
pstr
,
int
maxlen
);
std
::
unordered_map
<
unsigned
int
,
CardDataC
>
_datas
;
std
::
unordered_map
<
unsigned
int
,
CardString
>
_strings
;
...
...
@@ -36,17 +41,13 @@ public:
std
::
unordered_map
<
unsigned
int
,
wchar_t
*>
_counterStrings
;
std
::
unordered_map
<
unsigned
int
,
wchar_t
*>
_victoryStrings
;
wchar_t
numStrings
[
256
][
4
];
wchar_t
attBuffer
[
128
];
wchar_t
racBuffer
[
128
];
wchar_t
tpBuffer
[
128
];
static
wchar_t
strBuffer
[
2048
];
static
wchar_t
attBuffer
[
128
];
static
wchar_t
racBuffer
[
128
];
static
wchar_t
tpBuffer
[
128
];
static
const
wchar_t
*
unknown_string
;
static
const
wchar_t
*
effect_strings
[];
static
const
wchar_t
*
FormatLocation
(
int
location
);
static
const
wchar_t
*
FormatAttribute
(
int
attribute
);
static
const
wchar_t
*
FormatRace
(
int
race
);
static
const
wchar_t
*
FormatType
(
int
type
);
};
}
...
...
gframe/drawing.cpp
View file @
96299d3a
...
...
@@ -676,8 +676,8 @@ void Game::DrawDeckBd() {
myswprintf
(
textBuffer
,
L"%ls"
,
dataManager
.
GetName
(
ptr
->
first
));
textFont
->
draw
(
textBuffer
,
recti
(
859
,
164
+
i
*
66
,
955
,
185
+
i
*
66
),
0xff000000
,
false
,
false
);
textFont
->
draw
(
textBuffer
,
recti
(
860
,
165
+
i
*
66
,
955
,
185
+
i
*
66
),
0xffffffff
,
false
,
false
);
myswprintf
(
textBuffer
,
L"%ls/%ls ★%d"
,
DataManager
::
FormatAttribute
(
ptr
->
second
.
attribute
),
DataManager
::
FormatRace
(
ptr
->
second
.
race
),
ptr
->
second
.
level
);
myswprintf
(
textBuffer
,
L"%ls/%ls ★%d"
,
dataManager
.
FormatAttribute
(
ptr
->
second
.
attribute
),
dataManager
.
FormatRace
(
ptr
->
second
.
race
),
ptr
->
second
.
level
);
textFont
->
draw
(
textBuffer
,
recti
(
859
,
186
+
i
*
66
,
955
,
207
+
i
*
66
),
0xff000000
,
false
,
false
);
textFont
->
draw
(
textBuffer
,
recti
(
860
,
187
+
i
*
66
,
955
,
207
+
i
*
66
),
0xffffffff
,
false
,
false
);
if
(
ptr
->
second
.
attack
<
0
&&
ptr
->
second
.
defence
<
0
)
...
...
@@ -693,7 +693,7 @@ void Game::DrawDeckBd() {
myswprintf
(
textBuffer
,
L"%ls"
,
dataManager
.
GetName
(
ptr
->
first
));
textFont
->
draw
(
textBuffer
,
recti
(
859
,
164
+
i
*
66
,
955
,
185
+
i
*
66
),
0xff000000
,
false
,
false
);
textFont
->
draw
(
textBuffer
,
recti
(
860
,
165
+
i
*
66
,
955
,
185
+
i
*
66
),
0xffffffff
,
false
,
false
);
const
wchar_t
*
ptype
=
DataManager
::
FormatType
(
ptr
->
second
.
type
);
const
wchar_t
*
ptype
=
dataManager
.
FormatType
(
ptr
->
second
.
type
);
textFont
->
draw
(
ptype
,
recti
(
859
,
186
+
i
*
66
,
955
,
207
+
i
*
66
),
0xff000000
,
false
,
false
);
textFont
->
draw
(
ptype
,
recti
(
860
,
187
+
i
*
66
,
955
,
207
+
i
*
66
),
0xffffffff
,
false
,
false
);
}
...
...
gframe/event_handler.cpp
View file @
96299d3a
...
...
@@ -793,7 +793,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
else
mainGame
->
btnCardSelect
[
i
]
->
setImage
(
mainGame
->
imageManager
.
tCover
);
mainGame
->
btnCardSelect
[
i
]
->
setRelativePosition
(
rect
<
s32
>
(
30
+
i
*
125
,
55
,
30
+
120
+
i
*
125
,
225
));
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
DataManager
::
FormatLocation
(
selectable_cards
[
i
+
pos
]
->
location
),
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
mainGame
->
dataManager
.
FormatLocation
(
selectable_cards
[
i
+
pos
]
->
location
),
selectable_cards
[
i
+
pos
]
->
sequence
+
1
);
mainGame
->
stCardPos
[
i
]
->
setText
(
formatBuffer
);
if
(
selectable_cards
[
i
+
pos
]
->
is_selected
)
...
...
@@ -895,7 +895,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
myswprintf
(
formatBuffer
,
L"%ls[%d]"
,
mainGame
->
dataManager
.
GetName
(
mcard
->
code
),
mcard
->
code
);
mainGame
->
stName
->
setText
(
formatBuffer
);
if
(
cd
.
type
&
TYPE_MONSTER
)
{
myswprintf
(
formatBuffer
,
L"[%ls] %ls/%ls"
,
DataManager
::
FormatType
(
cd
.
type
),
DataManager
::
FormatRace
(
cd
.
race
),
DataManager
::
FormatAttribute
(
cd
.
attribute
));
myswprintf
(
formatBuffer
,
L"[%ls] %ls/%ls"
,
mainGame
->
dataManager
.
FormatType
(
cd
.
type
),
mainGame
->
dataManager
.
FormatRace
(
cd
.
race
),
mainGame
->
dataManager
.
FormatAttribute
(
cd
.
attribute
));
mainGame
->
stInfo
->
setText
(
formatBuffer
);
formatBuffer
[
0
]
=
L'['
;
for
(
int
i
=
1
;
i
<=
cd
.
level
;
++
i
)
...
...
@@ -913,7 +913,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
mainGame
->
stDataInfo
->
setText
(
formatBuffer
);
mainGame
->
stText
->
setRelativePosition
(
irr
::
core
::
position2di
(
15
,
83
));
}
else
{
myswprintf
(
formatBuffer
,
L"[%ls]"
,
DataManager
::
FormatType
(
cd
.
type
));
myswprintf
(
formatBuffer
,
L"[%ls]"
,
mainGame
->
dataManager
.
FormatType
(
cd
.
type
));
mainGame
->
stInfo
->
setText
(
formatBuffer
);
mainGame
->
stDataInfo
->
setText
(
L""
);
mainGame
->
stText
->
setRelativePosition
(
irr
::
core
::
position2di
(
15
,
60
));
...
...
@@ -1376,7 +1376,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
myswprintf
(
formatBuffer
,
L"
\n
%ls/%ls"
,
mcard
->
atkstring
,
mcard
->
defstring
);
str
.
append
(
formatBuffer
);
myswprintf
(
formatBuffer
,
L"
\n
★%d %ls/%ls"
,
(
mcard
->
level
?
mcard
->
level
:
mcard
->
rank
),
DataManager
::
FormatRace
(
mcard
->
race
),
DataManager
::
FormatAttribute
(
mcard
->
attribute
));
myswprintf
(
formatBuffer
,
L"
\n
★%d %ls/%ls"
,
(
mcard
->
level
?
mcard
->
level
:
mcard
->
rank
),
mainGame
->
dataManager
.
FormatRace
(
mcard
->
race
),
mainGame
->
dataManager
.
FormatAttribute
(
mcard
->
attribute
));
str
.
append
(
formatBuffer
);
if
(
mcard
->
counters
.
size
())
{
for
(
std
::
map
<
int
,
int
>::
iterator
ctit
=
mcard
->
counters
.
begin
();
ctit
!=
mcard
->
counters
.
end
();
++
ctit
)
{
...
...
gframe/game.cpp
View file @
96299d3a
...
...
@@ -271,14 +271,14 @@ bool Game::Initialize() {
wANAttribute
->
setVisible
(
false
);
for
(
int
filter
=
0x1
,
i
=
0
;
i
<
7
;
filter
<<=
1
,
++
i
)
chkAttribute
[
i
]
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
10
+
(
i
%
4
)
*
80
,
25
+
(
i
/
4
)
*
25
,
90
+
(
i
%
4
)
*
80
,
50
+
(
i
/
4
)
*
25
),
wANAttribute
,
CHECK_ATTRIBUTE
,
DataManager
::
FormatAttribute
(
filter
));
wANAttribute
,
CHECK_ATTRIBUTE
,
dataManager
.
FormatAttribute
(
filter
));
//announce attribute
wANRace
=
env
->
addWindow
(
rect
<
s32
>
(
480
,
200
,
850
,
385
),
false
,
L"请选择要宣言的种族:"
);
wANRace
->
getCloseButton
()
->
setVisible
(
false
);
wANRace
->
setVisible
(
false
);
for
(
int
filter
=
0x1
,
i
=
0
;
i
<
22
;
filter
<<=
1
,
++
i
)
chkRace
[
i
]
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
10
+
(
i
%
4
)
*
90
,
25
+
(
i
/
4
)
*
25
,
100
+
(
i
%
4
)
*
90
,
50
+
(
i
/
4
)
*
25
),
wANRace
,
CHECK_RACE
,
DataManager
::
FormatRace
(
filter
));
wANRace
,
CHECK_RACE
,
dataManager
.
FormatRace
(
filter
));
//selection hint
stHintMsg
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
500
,
60
,
820
,
90
),
true
,
false
,
0
,
-
1
,
false
);
stHintMsg
->
setBackgroundColor
(
0xc0ffffff
);
...
...
@@ -340,12 +340,12 @@ bool Game::Initialize() {
cbAttribute
=
env
->
addComboBox
(
rect
<
s32
>
(
60
,
26
,
190
,
46
),
wFilter
,
-
1
);
cbAttribute
->
addItem
(
L"(无)"
,
0
);
for
(
int
filter
=
0x1
;
filter
!=
0x80
;
filter
<<=
1
)
cbAttribute
->
addItem
(
DataManager
::
FormatAttribute
(
filter
),
filter
);
cbAttribute
->
addItem
(
dataManager
.
FormatAttribute
(
filter
),
filter
);
env
->
addStaticText
(
L"种族:"
,
rect
<
s32
>
(
10
,
51
,
70
,
71
),
false
,
false
,
wFilter
);
cbRace
=
env
->
addComboBox
(
rect
<
s32
>
(
60
,
49
,
190
,
69
),
wFilter
,
-
1
);
cbRace
->
addItem
(
L"(无)"
,
0
);
for
(
int
filter
=
0x1
;
filter
!=
0x400000
;
filter
<<=
1
)
cbRace
->
addItem
(
DataManager
::
FormatRace
(
filter
),
filter
);
cbRace
->
addItem
(
dataManager
.
FormatRace
(
filter
),
filter
);
env
->
addStaticText
(
L"攻击:"
,
rect
<
s32
>
(
205
,
28
,
280
,
48
),
false
,
false
,
wFilter
);
ebAttack
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
260
,
26
,
340
,
46
),
true
,
wFilter
);
ebAttack
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
...
...
@@ -617,7 +617,7 @@ void Game::ShowCardInfo(int code) {
myswprintf
(
formatBuffer
,
L"%ls"
,
dataManager
.
GetName
(
code
));
stName
->
setText
(
formatBuffer
);
if
(
cd
.
type
&
TYPE_MONSTER
)
{
myswprintf
(
formatBuffer
,
L"[%ls] %ls/%ls"
,
DataManager
::
FormatType
(
cd
.
type
),
DataManager
::
FormatRace
(
cd
.
race
),
DataManager
::
FormatAttribute
(
cd
.
attribute
));
myswprintf
(
formatBuffer
,
L"[%ls] %ls/%ls"
,
dataManager
.
FormatType
(
cd
.
type
),
dataManager
.
FormatRace
(
cd
.
race
),
dataManager
.
FormatAttribute
(
cd
.
attribute
));
stInfo
->
setText
(
formatBuffer
);
formatBuffer
[
0
]
=
L'['
;
for
(
int
i
=
1
;
i
<=
cd
.
level
;
++
i
)
...
...
@@ -635,7 +635,7 @@ void Game::ShowCardInfo(int code) {
stDataInfo
->
setText
(
formatBuffer
);
stText
->
setRelativePosition
(
irr
::
core
::
position2di
(
15
,
83
));
}
else
{
myswprintf
(
formatBuffer
,
L"[%ls]"
,
DataManager
::
FormatType
(
cd
.
type
));
myswprintf
(
formatBuffer
,
L"[%ls]"
,
dataManager
.
FormatType
(
cd
.
type
));
stInfo
->
setText
(
formatBuffer
);
stDataInfo
->
setText
(
L""
);
stText
->
setRelativePosition
(
irr
::
core
::
position2di
(
15
,
60
));
...
...
gframe/message.cpp
View file @
96299d3a
...
...
@@ -1160,7 +1160,7 @@ bool Game::SolveMessage(void* pd, char* msg, int len) {
break
;
}
case
HINT_RACE
:
{
myswprintf
(
textBuffer
,
L"对方宣言了:[%ls]"
,
DataManager
::
FormatRace
(
data
));
myswprintf
(
textBuffer
,
L"对方宣言了:[%ls]"
,
mainGame
->
dataManager
.
FormatRace
(
data
));
mainGame
->
lstLog
->
addItem
(
textBuffer
);
mainGame
->
logParam
.
push_back
(
0
);
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
textFont
,
textBuffer
);
...
...
@@ -1169,7 +1169,7 @@ bool Game::SolveMessage(void* pd, char* msg, int len) {
break
;
}
case
HINT_ATTRIB
:
{
myswprintf
(
textBuffer
,
L"对方宣言了:[%ls]"
,
DataManager
::
FormatAttribute
(
data
));
myswprintf
(
textBuffer
,
L"对方宣言了:[%ls]"
,
mainGame
->
dataManager
.
FormatAttribute
(
data
));
mainGame
->
lstLog
->
addItem
(
textBuffer
);
mainGame
->
logParam
.
push_back
(
0
);
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
textFont
,
textBuffer
);
...
...
@@ -1477,7 +1477,7 @@ bool Game::SolveMessage(void* pd, char* msg, int len) {
if
(
pcard
->
code
!=
code
)
pcard
->
SetCode
(
code
);
NetManager
::
ReadInt8
(
pbuf
);
myswprintf
(
textBuffer
,
L"是否在[%ls]发动[%ls]的效果?"
,
DataManager
::
FormatLocation
(
l
),
mainGame
->
dataManager
.
GetName
(
code
));
myswprintf
(
textBuffer
,
L"是否在[%ls]发动[%ls]的效果?"
,
mainGame
->
dataManager
.
FormatLocation
(
l
),
mainGame
->
dataManager
.
GetName
(
code
));
mainGame
->
gMutex
.
Lock
();
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
textFont
,
textBuffer
);
mainGame
->
PopupElement
(
mainGame
->
wQuery
);
...
...
@@ -2551,7 +2551,7 @@ bool Game::SolveMessage(void* pd, char* msg, int len) {
}
}
else
mainGame
->
WaitFrameSignal
(
30
);
myswprintf
(
textBuffer
,
L"[%ls](%ls,%d)成为对象"
,
mainGame
->
dataManager
.
GetName
(
pcard
->
code
),
DataManager
::
FormatLocation
(
l
),
s
);
myswprintf
(
textBuffer
,
L"[%ls](%ls,%d)成为对象"
,
mainGame
->
dataManager
.
GetName
(
pcard
->
code
),
mainGame
->
dataManager
.
FormatLocation
(
l
),
s
);
mainGame
->
lstLog
->
addItem
(
textBuffer
);
mainGame
->
logParam
.
push_back
(
pcard
->
code
);
pcard
->
is_highlighting
=
false
;
...
...
ocgcore/card.h
View file @
96299d3a
...
...
@@ -302,6 +302,7 @@ public:
#define RACE_REPTILE 0x80000 //
#define RACE_PSYCHO 0x100000 //
#define RACE_DEVINE 0x200000 //
#define RACE_RESERVE 0x400000 //
//Reason
#define REASON_DESTROY 0x1 //
#define REASON_RELEASE 0x2 //
...
...
strings.conf
View file @
96299d3a
...
...
@@ -71,6 +71,67 @@
!
system
552
请选择硬币的正反面
!
system
553
请选择骰子的结果
!
system
554
请选择一个种类
!
system
1000
卡组
!
system
1001
手牌
!
system
1002
怪兽区
!
system
1003
魔法陷阱区
!
system
1004
墓地
!
system
1005
除外
!
system
1006
额外
!
system
1010
地
!
system
1011
水
!
system
1012
炎
!
system
1013
风
!
system
1014
光
!
system
1015
暗
!
system
1016
神
!
system
1020
战士
!
system
1021
魔法使
!
system
1022
天使
!
system
1023
恶魔
!
system
1024
不死
!
system
1025
机械
!
system
1026
水
!
system
1027
炎
!
system
1028
岩石
!
system
1029
鸟兽
!
system
1030
植物
!
system
1031
昆虫
!
system
1032
雷
!
system
1033
龙
!
system
1034
兽
!
system
1035
兽战士
!
system
1036
恐龙
!
system
1037
鱼
!
system
1038
海龙
!
system
1039
爬虫
!
system
1040
念动力
!
system
1041
幻神兽
!
system
1042
创世神
!
system
1050
怪兽
!
system
1051
魔法
!
system
1052
陷阱
!
system
1053
???
!
system
1054
通常
!
system
1055
效果
!
system
1056
融合
!
system
1057
仪式
!
system
1058
陷阱怪兽
!
system
1059
灵魂
!
system
1060
同盟
!
system
1061
二重
!
system
1062
调整
!
system
1063
同调
!
system
1064
衍生物
!
system
1065
???
!
system
1066
速攻
!
system
1067
永续
!
system
1068
装备
!
system
1069
场地
!
system
1070
反击
!
system
1071
反转
!
system
1072
卡通
!
system
1073
超量
#vistory reason
!
victory
0
x1
LP
变成
0
!
victory
0
x2
没有卡可抽
...
...
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