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
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