Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fallenstardust
YGOMobile
Commits
69fc4f35
Commit
69fc4f35
authored
Nov 18, 2018
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
复数关键词搜索
自动保存录像
parent
e43c74fb
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
127 additions
and
44 deletions
+127
-44
Classes/gframe/client_card.cpp
Classes/gframe/client_card.cpp
+10
-6
Classes/gframe/client_card.h
Classes/gframe/client_card.h
+1
-2
Classes/gframe/drawing.cpp
Classes/gframe/drawing.cpp
+2
-1
Classes/gframe/duelclient.cpp
Classes/gframe/duelclient.cpp
+22
-5
Classes/gframe/event_handler.cpp
Classes/gframe/event_handler.cpp
+13
-0
Classes/gframe/game.cpp
Classes/gframe/game.cpp
+15
-7
Classes/gframe/game.h
Classes/gframe/game.h
+6
-0
Classes/gframe/single_duel.cpp
Classes/gframe/single_duel.cpp
+6
-7
Classes/gframe/single_mode.cpp
Classes/gframe/single_mode.cpp
+15
-5
Classes/gframe/tag_duel.cpp
Classes/gframe/tag_duel.cpp
+6
-7
mobile/assets/changelog.html
mobile/assets/changelog.html
+2
-0
mobile/assets/data/conf/strings.conf
mobile/assets/data/conf/strings.conf
+12
-1
mobile/assets_en/data/conf/strings.conf
mobile/assets_en/data/conf/strings.conf
+17
-3
No files found.
Classes/gframe/client_card.cpp
View file @
69fc4f35
...
@@ -18,7 +18,7 @@ ClientCard::ClientCard() {
...
@@ -18,7 +18,7 @@ ClientCard::ClientCard() {
is_showtarget
=
false
;
is_showtarget
=
false
;
is_showchaintarget
=
false
;
is_showchaintarget
=
false
;
is_highlighting
=
false
;
is_highlighting
=
false
;
is_disabled
=
false
;
status
=
0
;
is_reversed
=
false
;
is_reversed
=
false
;
cmdFlag
=
0
;
cmdFlag
=
0
;
code
=
0
;
code
=
0
;
...
@@ -164,10 +164,8 @@ void ClientCard::UpdateInfo(char* buf) {
...
@@ -164,10 +164,8 @@ void ClientCard::UpdateInfo(char* buf) {
}
}
if
(
flag
&
QUERY_OWNER
)
if
(
flag
&
QUERY_OWNER
)
owner
=
BufferIO
::
ReadInt32
(
buf
);
owner
=
BufferIO
::
ReadInt32
(
buf
);
if
(
flag
&
QUERY_IS_DISABLED
)
if
(
flag
&
QUERY_STATUS
)
is_disabled
=
BufferIO
::
ReadInt32
(
buf
);
status
=
BufferIO
::
ReadInt32
(
buf
);
if
(
flag
&
QUERY_IS_PUBLIC
)
is_public
=
BufferIO
::
ReadInt32
(
buf
);
if
(
flag
&
QUERY_LSCALE
)
{
if
(
flag
&
QUERY_LSCALE
)
{
lscale
=
BufferIO
::
ReadInt32
(
buf
);
lscale
=
BufferIO
::
ReadInt32
(
buf
);
myswprintf
(
lscstring
,
L"%d"
,
lscale
);
myswprintf
(
lscstring
,
L"%d"
,
lscale
);
...
@@ -212,8 +210,14 @@ bool ClientCard::client_card_sort(ClientCard* c1, ClientCard* c2) {
...
@@ -212,8 +210,14 @@ bool ClientCard::client_card_sort(ClientCard* c1, ClientCard* c2) {
return
c1
->
overlayTarget
->
sequence
<
c2
->
overlayTarget
->
sequence
;
return
c1
->
overlayTarget
->
sequence
<
c2
->
overlayTarget
->
sequence
;
else
return
c1
->
sequence
<
c2
->
sequence
;
else
return
c1
->
sequence
<
c2
->
sequence
;
else
{
else
{
if
(
c1
->
location
&
0x71
)
if
(
c1
->
location
&
(
LOCATION_DECK
|
LOCATION_GRAVE
|
LOCATION_REMOVED
|
LOCATION_EXTRA
))
{
for
(
size_t
i
=
0
;
i
<
mainGame
->
dField
.
chains
.
size
();
++
i
)
{
auto
chit
=
mainGame
->
dField
.
chains
[
i
];
if
(
c1
==
chit
.
chain_card
||
chit
.
target
.
find
(
c1
)
!=
chit
.
target
.
end
())
return
true
;
}
return
c1
->
sequence
>
c2
->
sequence
;
return
c1
->
sequence
>
c2
->
sequence
;
}
else
else
return
c1
->
sequence
<
c2
->
sequence
;
return
c1
->
sequence
<
c2
->
sequence
;
}
}
...
...
Classes/gframe/client_card.h
View file @
69fc4f35
...
@@ -89,8 +89,7 @@ public:
...
@@ -89,8 +89,7 @@ public:
u8
location
;
u8
location
;
u8
sequence
;
u8
sequence
;
u8
position
;
u8
position
;
u8
is_disabled
;
u32
status
;
u8
is_public
;
u8
cHint
;
u8
cHint
;
u32
chValue
;
u32
chValue
;
u32
opParam
;
u32
opParam
;
...
...
Classes/gframe/drawing.cpp
View file @
69fc4f35
...
@@ -397,7 +397,8 @@ void Game::DrawCard(ClientCard* pcard) {
...
@@ -397,7 +397,8 @@ void Game::DrawCard(ClientCard* pcard) {
matManager
.
mTexture
.
setTexture
(
0
,
imageManager
.
tChainTarget
);
matManager
.
mTexture
.
setTexture
(
0
,
imageManager
.
tChainTarget
);
driver
->
setMaterial
(
matManager
.
mTexture
);
driver
->
setMaterial
(
matManager
.
mTexture
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vSymbol
,
4
,
matManager
.
iRectangle
,
2
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vSymbol
,
4
,
matManager
.
iRectangle
,
2
);
}
else
if
(
pcard
->
is_disabled
&&
(
pcard
->
location
&
LOCATION_ONFIELD
)
&&
(
pcard
->
position
&
POS_FACEUP
))
{
}
else
if
((
pcard
->
status
&
(
STATUS_DISABLED
|
STATUS_FORBIDDEN
))
&&
(
pcard
->
location
&
LOCATION_ONFIELD
)
&&
(
pcard
->
position
&
POS_FACEUP
))
{
matManager
.
mTexture
.
setTexture
(
0
,
imageManager
.
tNegated
);
matManager
.
mTexture
.
setTexture
(
0
,
imageManager
.
tNegated
);
driver
->
setMaterial
(
matManager
.
mTexture
);
driver
->
setMaterial
(
matManager
.
mTexture
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vNegate
,
4
,
matManager
.
iRectangle
,
2
);
driver
->
drawVertexPrimitiveList
(
matManager
.
vNegate
,
4
,
matManager
.
iRectangle
,
2
);
...
...
Classes/gframe/duelclient.cpp
View file @
69fc4f35
...
@@ -684,11 +684,22 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
...
@@ -684,11 +684,22 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
wchar_t
timetext
[
40
];
wchar_t
timetext
[
40
];
wcsftime
(
timetext
,
40
,
L"%Y-%m-%d %H-%M-%S"
,
localedtime
);
wcsftime
(
timetext
,
40
,
L"%Y-%m-%d %H-%M-%S"
,
localedtime
);
mainGame
->
ebRSName
->
setText
(
timetext
);
mainGame
->
ebRSName
->
setText
(
timetext
);
if
(
!
mainGame
->
chkAutoSaveReplay
->
isChecked
())
{
mainGame
->
wReplaySave
->
setText
(
dataManager
.
GetSysString
(
1340
));
mainGame
->
wReplaySave
->
setText
(
dataManager
.
GetSysString
(
1340
));
mainGame
->
PopupElement
(
mainGame
->
wReplaySave
);
mainGame
->
PopupElement
(
mainGame
->
wReplaySave
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
gMutex
.
Unlock
();
mainGame
->
replaySignal
.
Reset
();
mainGame
->
replaySignal
.
Reset
();
mainGame
->
replaySignal
.
Wait
();
mainGame
->
replaySignal
.
Wait
();
}
else
{
mainGame
->
actionParam
=
1
;
wchar_t
msgbuf
[
256
];
myswprintf
(
msgbuf
,
dataManager
.
GetSysString
(
1367
),
timetext
);
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
guiFont
,
msgbuf
);
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
WaitFrameSignal
(
30
);
}
if
(
mainGame
->
actionParam
||
!
is_host
)
{
if
(
mainGame
->
actionParam
||
!
is_host
)
{
char
*
prep
=
pdata
;
char
*
prep
=
pdata
;
Replay
new_replay
;
Replay
new_replay
;
...
@@ -1293,6 +1304,10 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
...
@@ -1293,6 +1304,10 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
wchar_t
ynbuf
[
256
];
wchar_t
ynbuf
[
256
];
myswprintf
(
ynbuf
,
dataManager
.
GetSysString
(
200
),
dataManager
.
FormatLocation
(
l
,
s
),
dataManager
.
GetName
(
code
));
myswprintf
(
ynbuf
,
dataManager
.
GetSysString
(
200
),
dataManager
.
FormatLocation
(
l
,
s
),
dataManager
.
GetName
(
code
));
myswprintf
(
textBuffer
,
L"%ls
\n
%ls"
,
event_string
,
ynbuf
);
myswprintf
(
textBuffer
,
L"%ls
\n
%ls"
,
event_string
,
ynbuf
);
}
else
if
(
desc
==
221
)
{
wchar_t
ynbuf
[
256
];
myswprintf
(
ynbuf
,
dataManager
.
GetSysString
(
221
),
dataManager
.
FormatLocation
(
l
,
s
),
dataManager
.
GetName
(
code
));
myswprintf
(
textBuffer
,
L"%ls
\n
%ls
\n
%ls"
,
event_string
,
ynbuf
,
dataManager
.
GetSysString
(
223
));
}
else
if
(
desc
<
2048
)
{
}
else
if
(
desc
<
2048
)
{
myswprintf
(
textBuffer
,
dataManager
.
GetSysString
(
desc
),
dataManager
.
GetName
(
code
));
myswprintf
(
textBuffer
,
dataManager
.
GetSysString
(
desc
),
dataManager
.
GetName
(
code
));
}
else
{
}
else
{
...
@@ -1547,6 +1562,8 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
...
@@ -1547,6 +1562,8 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
if
(
!
forced
)
{
if
(
!
forced
)
{
if
(
count
==
0
)
if
(
count
==
0
)
myswprintf
(
textBuffer
,
L"%ls
\n
%ls"
,
dataManager
.
GetSysString
(
201
),
dataManager
.
GetSysString
(
202
));
myswprintf
(
textBuffer
,
L"%ls
\n
%ls"
,
dataManager
.
GetSysString
(
201
),
dataManager
.
GetSysString
(
202
));
else
if
(
select_trigger
)
myswprintf
(
textBuffer
,
L"%ls
\n
%ls
\n
%ls"
,
event_string
,
dataManager
.
GetSysString
(
222
),
dataManager
.
GetSysString
(
223
));
else
else
myswprintf
(
textBuffer
,
L"%ls
\n
%ls"
,
event_string
,
dataManager
.
GetSysString
(
203
));
myswprintf
(
textBuffer
,
L"%ls
\n
%ls"
,
event_string
,
dataManager
.
GetSysString
(
203
));
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
textFont
,
(
wchar_t
*
)
textBuffer
);
mainGame
->
SetStaticText
(
mainGame
->
stQMessage
,
310
,
mainGame
->
textFont
,
(
wchar_t
*
)
textBuffer
);
...
...
Classes/gframe/event_handler.cpp
View file @
69fc4f35
...
@@ -434,6 +434,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -434,6 +434,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
mainGame
->
wCardSelect
->
setText
(
dataManager
.
GetSysString
(
568
));
mainGame
->
wCardSelect
->
setText
(
dataManager
.
GetSysString
(
568
));
list_command
=
COMMAND_OPERATION
;
list_command
=
COMMAND_OPERATION
;
}
}
std
::
sort
(
selectable_cards
.
begin
(),
selectable_cards
.
end
(),
ClientCard
::
client_card_sort
);
ShowSelectCard
(
true
,
true
);
ShowSelectCard
(
true
,
true
);
}
}
break
;
break
;
...
@@ -591,6 +592,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -591,6 +592,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
}
}
}
list_command
=
COMMAND_LIST
;
list_command
=
COMMAND_LIST
;
std
::
sort
(
selectable_cards
.
begin
(),
selectable_cards
.
end
(),
ClientCard
::
client_card_sort
);
ShowSelectCard
(
true
);
ShowSelectCard
(
true
);
break
;
break
;
}
}
...
@@ -1801,6 +1803,15 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
...
@@ -1801,6 +1803,15 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
switch
(
id
)
{
switch
(
id
)
{
case
CHECKBOX_AUTO_SEARCH
:
{
case
CHECKBOX_AUTO_SEARCH
:
{
mainGame
->
gameConf
.
auto_search_limit
=
mainGame
->
chkAutoSearch
->
isChecked
()
?
0
:
-
1
;
mainGame
->
gameConf
.
auto_search_limit
=
mainGame
->
chkAutoSearch
->
isChecked
()
?
0
:
-
1
;
if
(
mainGame
->
is_building
&&
!
mainGame
->
is_siding
)
mainGame
->
deckBuilder
.
InstantSearch
();
return
true
;
break
;
}
case
CHECKBOX_MULTI_KEYWORDS
:
{
mainGame
->
gameConf
.
search_multiple_keywords
=
mainGame
->
chkMultiKeywords
->
isChecked
()
?
1
:
0
;
if
(
mainGame
->
is_building
&&
!
mainGame
->
is_siding
)
mainGame
->
deckBuilder
.
InstantSearch
();
return
true
;
return
true
;
break
;
break
;
}
}
...
@@ -2250,6 +2261,8 @@ void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* e
...
@@ -2250,6 +2261,8 @@ void ClientField::ShowCardInfoInList(ClientCard* pcard, irr::gui::IGUIElement* e
if
(
pcard
->
code
)
{
if
(
pcard
->
code
)
{
str
.
append
(
dataManager
.
GetName
(
pcard
->
code
));
str
.
append
(
dataManager
.
GetName
(
pcard
->
code
));
}
}
if
(
pcard
->
status
&
STATUS_PROC_COMPLETE
)
str
.
append
(
L"
\n
"
).
append
(
dataManager
.
GetSysString
(
224
));
for
(
size_t
i
=
0
;
i
<
chains
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
chains
.
size
();
++
i
)
{
wchar_t
formatBuffer
[
2048
];
wchar_t
formatBuffer
[
2048
];
auto
chit
=
chains
[
i
];
auto
chit
=
chains
[
i
];
...
...
Classes/gframe/game.cpp
View file @
69fc4f35
...
@@ -465,6 +465,9 @@ bool Game::Initialize() {
...
@@ -465,6 +465,9 @@ bool Game::Initialize() {
chkIgnoreDeckChanges
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
posX
,
posY
,
posX
+
260
*
xScale
,
posY
+
30
*
yScale
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1357
));
chkIgnoreDeckChanges
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
posX
,
posY
,
posX
+
260
*
xScale
,
posY
+
30
*
yScale
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1357
));
chkIgnoreDeckChanges
->
setChecked
(
gameConf
.
chkIgnoreDeckChanges
!=
0
);
chkIgnoreDeckChanges
->
setChecked
(
gameConf
.
chkIgnoreDeckChanges
!=
0
);
posY
+=
60
;
posY
+=
60
;
chkAutoSaveReplay
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
posX
,
posY
,
posX
+
260
*
xScale
,
posY
+
30
*
yScale
),
tabSystem
,
-
1
,
dataManager
.
GetSysString
(
1366
));
chkAutoSaveReplay
->
setChecked
(
gameConf
.
auto_save_replay
!=
0
);
posY
+=
60
;
chkDrawFieldSpell
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
posX
,
posY
,
posX
+
260
*
xScale
,
posY
+
30
*
yScale
),
tabSystem
,
CHECKBOX_DRAW_FIELD_SPELL
,
dataManager
.
GetSysString
(
1279
));
chkDrawFieldSpell
=
env
->
addCheckBox
(
false
,
rect
<
s32
>
(
posX
,
posY
,
posX
+
260
*
xScale
,
posY
+
30
*
yScale
),
tabSystem
,
CHECKBOX_DRAW_FIELD_SPELL
,
dataManager
.
GetSysString
(
1279
));
chkDrawFieldSpell
->
setChecked
(
gameConf
.
draw_field_spell
!=
0
);
chkDrawFieldSpell
->
setChecked
(
gameConf
.
draw_field_spell
!=
0
);
posY
+=
60
;
posY
+=
60
;
...
@@ -1377,8 +1380,6 @@ void Game::LoadConfig() {
...
@@ -1377,8 +1380,6 @@ void Game::LoadConfig() {
gameConf
.
chkRandomPos
=
android
::
getIntSetting
(
appMain
,
"chkRandomPos"
,
0
);
gameConf
.
chkRandomPos
=
android
::
getIntSetting
(
appMain
,
"chkRandomPos"
,
0
);
gameConf
.
chkAutoChain
=
android
::
getIntSetting
(
appMain
,
"chkAutoChain"
,
0
);
gameConf
.
chkAutoChain
=
android
::
getIntSetting
(
appMain
,
"chkAutoChain"
,
0
);
gameConf
.
chkWaitChain
=
android
::
getIntSetting
(
appMain
,
"chkWaitChain"
,
0
);
gameConf
.
chkWaitChain
=
android
::
getIntSetting
(
appMain
,
"chkWaitChain"
,
0
);
gameConf
.
draw_field_spell
=
android
::
getIntSetting
(
appMain
,
"draw_field_spell"
,
0
);
gameConf
.
quick_animation
=
android
::
getIntSetting
(
appMain
,
"quick_animation"
,
0
);
//system
//system
gameConf
.
chkIgnore1
=
android
::
getIntSetting
(
appMain
,
"chkIgnore1"
,
0
);
gameConf
.
chkIgnore1
=
android
::
getIntSetting
(
appMain
,
"chkIgnore1"
,
0
);
gameConf
.
chkIgnore2
=
android
::
getIntSetting
(
appMain
,
"chkIgnore2"
,
0
);
gameConf
.
chkIgnore2
=
android
::
getIntSetting
(
appMain
,
"chkIgnore2"
,
0
);
...
@@ -1387,7 +1388,12 @@ void Game::LoadConfig() {
...
@@ -1387,7 +1388,12 @@ void Game::LoadConfig() {
gameConf
.
draw_field_spell
=
android
::
getIntSetting
(
appMain
,
"draw_field_spell"
,
1
);
gameConf
.
draw_field_spell
=
android
::
getIntSetting
(
appMain
,
"draw_field_spell"
,
1
);
gameConf
.
separate_clear_button
=
android
::
getIntSetting
(
appMain
,
"separate_clear_button"
,
1
);
gameConf
.
separate_clear_button
=
android
::
getIntSetting
(
appMain
,
"separate_clear_button"
,
1
);
gameConf
.
chkIgnoreDeckChanges
=
android
::
getIntSetting
(
appMain
,
"chkIgnoreDeckChanges"
,
0
);
gameConf
.
chkIgnoreDeckChanges
=
android
::
getIntSetting
(
appMain
,
"chkIgnoreDeckChanges"
,
0
);
gameConf
.
defaultOT
=
android
::
getIntSetting
(
appMain
,
"defaultOT"
,
1
);
gameConf
.
chkAutoSaveReplay
=
android
::
getIntSetting
(
appMain
,
"chkAutoSaveReplay"
,
0
);
gameConf
.
draw_field_spell
=
android
::
getIntSetting
(
appMain
,
"draw_field_spell"
,
0
);
gameConf
.
quick_animation
=
android
::
getIntSetting
(
appMain
,
"quick_animation"
,
0
);
//defult Setting without checked
gameConf
.
search_multiple_keywords
=
1
;
gameConf
.
defaultOT
=
1
;
gameConf
.
auto_search_limit
=
1
;
gameConf
.
auto_search_limit
=
1
;
//TEST BOT MODE
//TEST BOT MODE
gameConf
.
enable_bot_mode
=
1
;
gameConf
.
enable_bot_mode
=
1
;
...
@@ -1405,10 +1411,6 @@ void Game::SaveConfig() {
...
@@ -1405,10 +1411,6 @@ void Game::SaveConfig() {
android
::
saveIntSetting
(
appMain
,
"chkAutoChain"
,
gameConf
.
chkAutoChain
);
android
::
saveIntSetting
(
appMain
,
"chkAutoChain"
,
gameConf
.
chkAutoChain
);
gameConf
.
chkWaitChain
=
chkWaitChain
->
isChecked
()
?
1
:
0
;
gameConf
.
chkWaitChain
=
chkWaitChain
->
isChecked
()
?
1
:
0
;
android
::
saveIntSetting
(
appMain
,
"chkWaitChain"
,
gameConf
.
chkWaitChain
);
android
::
saveIntSetting
(
appMain
,
"chkWaitChain"
,
gameConf
.
chkWaitChain
);
gameConf
.
draw_field_spell
=
chkDrawFieldSpell
->
isChecked
()
?
1
:
0
;
android
::
saveIntSetting
(
appMain
,
"draw_field_spell"
,
gameConf
.
draw_field_spell
);
gameConf
.
quick_animation
=
chkQuickAnimation
->
isChecked
()
?
1
:
0
;
android
::
saveIntSetting
(
appMain
,
"quick_animation"
,
gameConf
.
quick_animation
);
//system
//system
gameConf
.
chkIgnore1
=
chkIgnore1
->
isChecked
()
?
1
:
0
;
gameConf
.
chkIgnore1
=
chkIgnore1
->
isChecked
()
?
1
:
0
;
...
@@ -1419,6 +1421,12 @@ void Game::SaveConfig() {
...
@@ -1419,6 +1421,12 @@ void Game::SaveConfig() {
android
::
saveIntSetting
(
appMain
,
"chkHideSetname"
,
gameConf
.
chkHideSetname
);
android
::
saveIntSetting
(
appMain
,
"chkHideSetname"
,
gameConf
.
chkHideSetname
);
gameConf
.
chkIgnoreDeckChanges
=
chkIgnoreDeckChanges
->
isChecked
()
?
1
:
0
;
gameConf
.
chkIgnoreDeckChanges
=
chkIgnoreDeckChanges
->
isChecked
()
?
1
:
0
;
android
::
saveIntSetting
(
appMain
,
"chkIgnoreDeckChanges"
,
gameConf
.
chkIgnoreDeckChanges
);
android
::
saveIntSetting
(
appMain
,
"chkIgnoreDeckChanges"
,
gameConf
.
chkIgnoreDeckChanges
);
gameConf
.
chkAutoSaveReplay
=
chkAutoSaveReplay
->
isChecked
()
?
1
:
0
;
android
::
saveIntSetting
(
appMain
,
"chkAutoSaveReplay"
,
gameConf
.
chkAutoSaveReplay
);
gameConf
.
draw_field_spell
=
chkDrawFieldSpell
->
isChecked
()
?
1
:
0
;
android
::
saveIntSetting
(
appMain
,
"draw_field_spell"
,
gameConf
.
draw_field_spell
);
gameConf
.
quick_animation
=
chkQuickAnimation
->
isChecked
()
?
1
:
0
;
android
::
saveIntSetting
(
appMain
,
"quick_animation"
,
gameConf
.
quick_animation
);
//gameConf.defaultOT = defaultOT->isChecked()?1:0;
//gameConf.defaultOT = defaultOT->isChecked()?1:0;
// android::saveIntSetting(appMain, "defaultOT", gameConf.defaultOT);
// android::saveIntSetting(appMain, "defaultOT", gameConf.defaultOT);
...
...
Classes/gframe/game.h
View file @
69fc4f35
...
@@ -41,10 +41,13 @@ struct Config {
...
@@ -41,10 +41,13 @@ struct Config {
int
draw_field_spell
;
int
draw_field_spell
;
int
separate_clear_button
;
int
separate_clear_button
;
int
auto_search_limit
;
int
auto_search_limit
;
int
search_multiple_keywords
;
int
chkIgnoreDeckChanges
;
int
chkIgnoreDeckChanges
;
int
defaultOT
;
int
defaultOT
;
int
enable_bot_mode
;
int
enable_bot_mode
;
int
quick_animation
;
int
quick_animation
;
int
auto_save_replay
;
int
chkAutoSaveReplay
;
};
};
struct
DuelInfo
{
struct
DuelInfo
{
...
@@ -244,10 +247,12 @@ public:
...
@@ -244,10 +247,12 @@ public:
irr
::
gui
::
IGUICheckBox
*
chkWaitChain
;
irr
::
gui
::
IGUICheckBox
*
chkWaitChain
;
irr
::
gui
::
IGUICheckBox
*
chkDrawFieldSpell
;
irr
::
gui
::
IGUICheckBox
*
chkDrawFieldSpell
;
irr
::
gui
::
IGUICheckBox
*
chkQuickAnimation
;
irr
::
gui
::
IGUICheckBox
*
chkQuickAnimation
;
irr
::
gui
::
IGUICheckBox
*
chkAutoSaveReplay
;
irr
::
gui
::
IGUICheckBox
*
chkHideSetname
;
irr
::
gui
::
IGUICheckBox
*
chkHideSetname
;
irr
::
gui
::
IGUICheckBox
*
chkHideHintButton
;
irr
::
gui
::
IGUICheckBox
*
chkHideHintButton
;
irr
::
gui
::
IGUICheckBox
*
chkIgnoreDeckChanges
;
irr
::
gui
::
IGUICheckBox
*
chkIgnoreDeckChanges
;
irr
::
gui
::
IGUICheckBox
*
chkAutoSearch
;
irr
::
gui
::
IGUICheckBox
*
chkAutoSearch
;
irr
::
gui
::
IGUICheckBox
*
chkMultiKeywords
;
//main menu
//main menu
irr
::
gui
::
IGUIWindow
*
wMainMenu
;
irr
::
gui
::
IGUIWindow
*
wMainMenu
;
irr
::
gui
::
IGUIButton
*
btnLanMode
;
irr
::
gui
::
IGUIButton
*
btnLanMode
;
...
@@ -642,6 +647,7 @@ extern Game* mainGame;
...
@@ -642,6 +647,7 @@ extern Game* mainGame;
#define BUTTON_LOAD_SINGLEPLAY 351
#define BUTTON_LOAD_SINGLEPLAY 351
#define BUTTON_CANCEL_SINGLEPLAY 352
#define BUTTON_CANCEL_SINGLEPLAY 352
#define CHECKBOX_AUTO_SEARCH 360
#define CHECKBOX_AUTO_SEARCH 360
#define CHECKBOX_MULTI_KEYWORDS 372
#define CHECKBOX_DISABLE_CHAT 364
#define CHECKBOX_DISABLE_CHAT 364
#define CHECKBOX_DRAW_FIELD_SPELL 368
#define CHECKBOX_DRAW_FIELD_SPELL 368
#define CHECKBOX_QUICK_ANIMATION 369
#define CHECKBOX_QUICK_ANIMATION 369
...
...
Classes/gframe/single_duel.cpp
View file @
69fc4f35
...
@@ -1487,18 +1487,17 @@ void SingleDuel::RefreshHand(int player, int flag, int use_cache) {
...
@@ -1487,18 +1487,17 @@ void SingleDuel::RefreshHand(int player, int flag, int use_cache) {
BufferIO
::
WriteInt8
(
qbuf
,
MSG_UPDATE_DATA
);
BufferIO
::
WriteInt8
(
qbuf
,
MSG_UPDATE_DATA
);
BufferIO
::
WriteInt8
(
qbuf
,
player
);
BufferIO
::
WriteInt8
(
qbuf
,
player
);
BufferIO
::
WriteInt8
(
qbuf
,
LOCATION_HAND
);
BufferIO
::
WriteInt8
(
qbuf
,
LOCATION_HAND
);
int
len
=
query_field_card
(
pduel
,
player
,
LOCATION_HAND
,
flag
|
QUERY_
IS_PUBLIC
,
(
unsigned
char
*
)
qbuf
,
use_cache
);
int
len
=
query_field_card
(
pduel
,
player
,
LOCATION_HAND
,
flag
|
QUERY_
POSITION
,
(
unsigned
char
*
)
qbuf
,
use_cache
);
NetServer
::
SendBufferToPlayer
(
players
[
player
],
STOC_GAME_MSG
,
query_buffer
,
len
+
3
);
NetServer
::
SendBufferToPlayer
(
players
[
player
],
STOC_GAME_MSG
,
query_buffer
,
len
+
3
);
int
qlen
=
0
;
int
qlen
=
0
;
while
(
qlen
<
len
)
{
while
(
qlen
<
len
)
{
int
slen
=
BufferIO
::
ReadInt32
(
qbuf
);
int
slen
=
BufferIO
::
ReadInt32
(
qbuf
);
int
qflag
=
*
(
int
*
)
qbuf
;
int
qflag
=
*
(
int
*
)
qbuf
;
int
pos
=
slen
-
8
;
int
offset
=
8
;
if
(
qflag
&
QUERY_LSCALE
)
if
(
!
(
qflag
&
QUERY_CODE
))
pos
-=
4
;
offset
-=
4
;
if
(
qflag
&
QUERY_RSCALE
)
unsigned
position
=
((
*
(
int
*
)(
qbuf
+
offset
))
>>
24
)
&
0xff
;
pos
-=
4
;
if
(
!
(
position
&
POS_FACEUP
))
if
(
!
qbuf
[
pos
])
memset
(
qbuf
,
0
,
slen
-
4
);
memset
(
qbuf
,
0
,
slen
-
4
);
qbuf
+=
slen
-
4
;
qbuf
+=
slen
-
4
;
qlen
+=
slen
;
qlen
+=
slen
;
...
...
Classes/gframe/single_mode.cpp
View file @
69fc4f35
...
@@ -120,11 +120,21 @@ int SingleMode::SinglePlayThread(void* param) {
...
@@ -120,11 +120,21 @@ int SingleMode::SinglePlayThread(void* param) {
wchar_t
timetext
[
40
];
wchar_t
timetext
[
40
];
wcsftime
(
timetext
,
40
,
L"%Y-%m-%d %H-%M-%S"
,
localedtime
);
wcsftime
(
timetext
,
40
,
L"%Y-%m-%d %H-%M-%S"
,
localedtime
);
mainGame
->
ebRSName
->
setText
(
timetext
);
mainGame
->
ebRSName
->
setText
(
timetext
);
if
(
!
mainGame
->
chkAutoSaveReplay
->
isChecked
())
{
mainGame
->
wReplaySave
->
setText
(
dataManager
.
GetSysString
(
1340
));
mainGame
->
wReplaySave
->
setText
(
dataManager
.
GetSysString
(
1340
));
mainGame
->
PopupElement
(
mainGame
->
wReplaySave
);
mainGame
->
PopupElement
(
mainGame
->
wReplaySave
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
gMutex
.
Unlock
();
mainGame
->
replaySignal
.
Reset
();
mainGame
->
replaySignal
.
Reset
();
mainGame
->
replaySignal
.
Wait
();
mainGame
->
replaySignal
.
Wait
();
}
else
{
mainGame
->
actionParam
=
1
;
wchar_t
msgbuf
[
256
];
myswprintf
(
msgbuf
,
dataManager
.
GetSysString
(
1367
),
timetext
);
mainGame
->
SetStaticText
(
mainGame
->
stACMessage
,
310
,
mainGame
->
guiFont
,
msgbuf
);
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
mainGame
->
gMutex
.
Unlock
();
mainGame
->
WaitFrameSignal
(
30
);
}
if
(
mainGame
->
actionParam
)
if
(
mainGame
->
actionParam
)
last_replay
.
SaveReplay
(
mainGame
->
ebRSName
->
getText
());
last_replay
.
SaveReplay
(
mainGame
->
ebRSName
->
getText
());
end_duel
(
pduel
);
end_duel
(
pduel
);
...
...
Classes/gframe/tag_duel.cpp
View file @
69fc4f35
...
@@ -1583,18 +1583,17 @@ void TagDuel::RefreshHand(int player, int flag, int use_cache) {
...
@@ -1583,18 +1583,17 @@ void TagDuel::RefreshHand(int player, int flag, int use_cache) {
BufferIO
::
WriteInt8
(
qbuf
,
MSG_UPDATE_DATA
);
BufferIO
::
WriteInt8
(
qbuf
,
MSG_UPDATE_DATA
);
BufferIO
::
WriteInt8
(
qbuf
,
player
);
BufferIO
::
WriteInt8
(
qbuf
,
player
);
BufferIO
::
WriteInt8
(
qbuf
,
LOCATION_HAND
);
BufferIO
::
WriteInt8
(
qbuf
,
LOCATION_HAND
);
int
len
=
query_field_card
(
pduel
,
player
,
LOCATION_HAND
,
flag
|
QUERY_
IS_PUBLIC
,
(
unsigned
char
*
)
qbuf
,
use_cache
);
int
len
=
query_field_card
(
pduel
,
player
,
LOCATION_HAND
,
flag
|
QUERY_
POSITION
,
(
unsigned
char
*
)
qbuf
,
use_cache
);
NetServer
::
SendBufferToPlayer
(
cur_player
[
player
],
STOC_GAME_MSG
,
query_buffer
,
len
+
3
);
NetServer
::
SendBufferToPlayer
(
cur_player
[
player
],
STOC_GAME_MSG
,
query_buffer
,
len
+
3
);
int
qlen
=
0
;
int
qlen
=
0
;
while
(
qlen
<
len
)
{
while
(
qlen
<
len
)
{
int
slen
=
BufferIO
::
ReadInt32
(
qbuf
);
int
slen
=
BufferIO
::
ReadInt32
(
qbuf
);
int
qflag
=
*
(
int
*
)
qbuf
;
int
qflag
=
*
(
int
*
)
qbuf
;
int
pos
=
slen
-
8
;
int
offset
=
8
;
if
(
qflag
&
QUERY_LSCALE
)
if
(
!
(
qflag
&
QUERY_CODE
))
pos
-=
4
;
offset
-=
4
;
if
(
qflag
&
QUERY_RSCALE
)
unsigned
position
=
((
*
(
int
*
)(
qbuf
+
offset
))
>>
24
)
&
0xff
;
pos
-=
4
;
if
(
!
(
position
&
POS_FACEUP
))
if
(
!
qbuf
[
pos
])
memset
(
qbuf
,
0
,
slen
-
4
);
memset
(
qbuf
,
0
,
slen
-
4
);
qbuf
+=
slen
-
4
;
qbuf
+=
slen
-
4
;
qlen
+=
slen
;
qlen
+=
slen
;
...
...
mobile/assets/changelog.html
View file @
69fc4f35
...
@@ -23,6 +23,8 @@
...
@@ -23,6 +23,8 @@
更新:
更新:
1.更新ygo内核;
1.更新ygo内核;
2.新卡DP21;
2.新卡DP21;
3.可选自动保存录像;
4.ygopro支持复数关键词查卡;
新增:
新增:
1.复制文本自动识别关键词卡查功能
1.复制文本自动识别关键词卡查功能
(格式:?+关键词;如“?青眼”)
(格式:?+关键词;如“?青眼”)
...
...
mobile/assets/data/conf/strings.conf
View file @
69fc4f35
...
@@ -70,6 +70,13 @@
...
@@ -70,6 +70,13 @@
!
system
215
已选择数字:
!
system
215
已选择数字:
!
system
216
在连锁%
d
发动
!
system
216
在连锁%
d
发动
!
system
217
被连锁%
d
的[%
ls
]选择为对象
!
system
217
被连锁%
d
的[%
ls
]选择为对象
!
system
218
是否使用[%
ls
]的效果代替支付基本分?
!
system
219
是否使用[%
ls
]的效果代替取除超量素材?
!
system
220
是否使用[%
ls
]的效果代替取除指示物?
!
system
221
是否在[%
ls
]发动[%
ls
]的诱发效果?
!
system
222
是否要发动诱发效果?
!
system
223
稍后将询问其他可以发动的效果。
!
system
224
已用正规方法特殊召唤
!
system
500
请选择要解放的卡
!
system
500
请选择要解放的卡
!
system
501
请选择要丢弃的手卡
!
system
501
请选择要丢弃的手卡
!
system
502
请选择要破坏的卡
!
system
502
请选择要破坏的卡
...
@@ -384,12 +391,14 @@
...
@@ -384,12 +391,14 @@
!
system
1363
是否删除这个录像?
!
system
1363
是否删除这个录像?
!
system
1364
重命名录像
!
system
1364
重命名录像
!
system
1365
重命名失败,可能存在同名文件
!
system
1365
重命名失败,可能存在同名文件
!
system
1366
重命名成功后请重新选择卡组
!
system
1366
自动保存录像
!
system
1367
录像已自动保存为%
ls
.
yrp
!
system
1370
星数↑
!
system
1370
星数↑
!
system
1371
攻击↑
!
system
1371
攻击↑
!
system
1372
守备↑
!
system
1372
守备↑
!
system
1373
名称↓
!
system
1373
名称↓
!
system
1374
连接标记
!
system
1374
连接标记
!
system
1378
使用多个关键词搜索卡片
!
system
1380
人机模式
!
system
1380
人机模式
!
system
1381
残局模式
!
system
1381
残局模式
!
system
1382
人机信息:
!
system
1382
人机信息:
...
@@ -421,6 +430,7 @@
...
@@ -421,6 +430,7 @@
!
system
1419
副卡组数量应不超过
15
张,当前卡组数量为%
d
张。
!
system
1419
副卡组数量应不超过
15
张,当前卡组数量为%
d
张。
!
system
1420
有额外卡组卡片存在于主卡组,可能是额外卡组数量超过
15
张。
!
system
1420
有额外卡组卡片存在于主卡组,可能是额外卡组数量超过
15
张。
!
system
1421
宣言的卡不符合条件,不存在于本主机卡池中。
!
system
1421
宣言的卡不符合条件,不存在于本主机卡池中。
!
system
1499
重命名成功后请重新选择卡组
!
system
1500
决斗结束。
!
system
1500
决斗结束。
!
system
1501
录像结束。
!
system
1501
录像结束。
!
system
1502
连接已断开。
!
system
1502
连接已断开。
...
@@ -922,3 +932,4 @@
...
@@ -922,3 +932,4 @@
!
setname
0
x121
魔妖
!
setname
0
x121
魔妖
!
setname
0
x122
女武神
Valkyrie
!
setname
0
x122
女武神
Valkyrie
!
setname
0
x123
蔷薇龙 ローズ・ドラゴン
!
setname
0
x123
蔷薇龙 ローズ・ドラゴン
!
setname
0
x124
机械天使 機械天使
mobile/assets_en/data/conf/strings.conf
View file @
69fc4f35
...
@@ -68,6 +68,15 @@
...
@@ -68,6 +68,15 @@
!
system
213
Declared
type
:
!
system
213
Declared
type
:
!
system
214
Declared
attribute
:
!
system
214
Declared
attribute
:
!
system
215
Declared
number
:
!
system
215
Declared
number
:
!
system
216
Activated
in
chain
%
d
!
system
217
Target
of
(
chain
%
d
) [%
ls
]
!
system
218
Pay
LP
by
Effect
of
[%
ls
],
instead
?
!
system
219
Detach
XYZ
material
by
Effect
of
[%
ls
],
instead
?
!
system
220
Remove
Counter
(
s
)
by
Effect
of
[%
ls
],
instead
?
!
system
221
on
[%
ls
],
Activate
Trigger
Effect
of
[%
ls
]?
!
system
222
Activate
Trigger
Effect
?
!
system
223
and
Ask
other
Trigger
Effect
activate
later
!
system
224
First
Special
Summoned
by
own
Condition
!
system
500
Select
a
monster
to
tribute
!
system
500
Select
a
monster
to
tribute
!
system
501
Select
a
card
to
discard
!
system
501
Select
a
card
to
discard
!
system
502
Select
a
card
to
destroy
!
system
502
Select
a
card
to
destroy
...
@@ -382,12 +391,14 @@
...
@@ -382,12 +391,14 @@
!
system
1363
OK
to
delete
?
!
system
1363
OK
to
delete
?
!
system
1364
Replay
Rename
!
system
1364
Replay
Rename
!
system
1365
Fail
to
rename
,
maybe
there
'
re
replay
with
same
name
.
!
system
1365
Fail
to
rename
,
maybe
there
'
re
replay
with
same
name
.
!
system
1366
please
rechoose
deck
after
rename
.
!
system
1366
Auto
Save
Replay
!
system
1367
Replay
already
saved
as
%
ls
.
yrp
!
system
1370
Level
↑
!
system
1370
Level
↑
!
system
1371
ATK
↑
!
system
1371
ATK
↑
!
system
1372
DEF
↑
!
system
1372
DEF
↑
!
system
1373
Name
↓
!
system
1373
Name
↓
!
system
1374
Link
Arrows
!
system
1374
Link
Arrows
!
system
1378
Multiple
Keyword
Search
!
system
1380
Single
Mode
!
system
1380
Single
Mode
!
system
1381
Puzzle
Mode
!
system
1381
Puzzle
Mode
!
system
1382
Single
Options
:
!
system
1382
Single
Options
:
...
@@ -419,6 +430,7 @@
...
@@ -419,6 +430,7 @@
!
system
1419
The
Side
Deck
includes
at
most
15
cards
.
Yours
is
%
d
.
!
system
1419
The
Side
Deck
includes
at
most
15
cards
.
Yours
is
%
d
.
!
system
1420
Some
cards
in
your
Main
Deck
should
be
in
Extra
Deck
instead
.
Check
if
your
Main
Deck
and
Extra
Deck
are
correctly
built
.
!
system
1420
Some
cards
in
your
Main
Deck
should
be
in
Extra
Deck
instead
.
Check
if
your
Main
Deck
and
Extra
Deck
are
correctly
built
.
!
system
1421
The
declared
card
is
illegal
,
or
not
recognizable
by
the
host
.
!
system
1421
The
declared
card
is
illegal
,
or
not
recognizable
by
the
host
.
!
system
1499
please
rechoose
deck
after
rename
.
!
system
1500
The
duel
ended
.
!
system
1500
The
duel
ended
.
!
system
1501
Replay
ended
.
!
system
1501
Replay
ended
.
!
system
1502
Connection
has
been
lost
.
!
system
1502
Connection
has
been
lost
.
...
@@ -646,6 +658,7 @@
...
@@ -646,6 +658,7 @@
!
setname
0
x1047
Gem
-
Knight
!
setname
0
x1047
Gem
-
Knight
!
setname
0
x48
Number
!
setname
0
x48
Number
!
setname
0
x1048
Number
C
!
setname
0
x1048
Number
C
!
setname
0
x5048
Number
C39
!
setname
0
x49
Skyblaster
!
setname
0
x49
Skyblaster
!
setname
0
x4a
Timelord
!
setname
0
x4a
Timelord
!
setname
0
x4b
Aesir
!
setname
0
x4b
Aesir
...
@@ -908,7 +921,8 @@
...
@@ -908,7 +921,8 @@
!
setname
0
x11d
Forbidden
!
setname
0
x11d
Forbidden
!
setname
0
x11e
Danger
!
!
setname
0
x11e
Danger
!
!
setname
0
x11f
Nephthys
!
setname
0
x11f
Nephthys
!
setname
0
x120
Prankids
!
setname
0
x120
Prank
-
K
ids
!
setname
0
x121
Mayakashi
!
setname
0
x121
Mayakashi
!
setname
0
x122
Valkyrie
!
setname
0
x122
Valkyrie
!
setname
0
x123
Rose
Dragon
!
setname
0
x123
Rose
Dragon
!
setname
0
x124
Machine
Angel
\ No newline at end of file
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