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
228d4829
Commit
228d4829
authored
Sep 07, 2018
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
merge
parents
3ba959f0
5cc986a0
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
127 additions
and
28 deletions
+127
-28
cards.cdb
cards.cdb
+0
-0
gframe/client_field.cpp
gframe/client_field.cpp
+34
-4
gframe/drawing.cpp
gframe/drawing.cpp
+2
-2
gframe/duelclient.cpp
gframe/duelclient.cpp
+7
-4
gframe/event_handler.cpp
gframe/event_handler.cpp
+1
-0
gframe/game.cpp
gframe/game.cpp
+4
-2
gframe/game.h
gframe/game.h
+3
-0
gframe/menu_handler.cpp
gframe/menu_handler.cpp
+36
-0
gframe/single_duel.cpp
gframe/single_duel.cpp
+2
-3
gframe/single_mode.cpp
gframe/single_mode.cpp
+1
-0
gframe/sound_manager.cpp
gframe/sound_manager.cpp
+4
-0
gframe/sound_manager.h
gframe/sound_manager.h
+1
-0
gframe/tag_duel.cpp
gframe/tag_duel.cpp
+20
-3
ocgcore
ocgcore
+1
-1
script
script
+1
-1
sound/files.txt
sound/files.txt
+1
-0
strings.conf
strings.conf
+7
-6
system.conf
system.conf
+2
-2
No files found.
cards.cdb
View file @
228d4829
No preview for this file type
gframe/client_field.cpp
View file @
228d4829
...
@@ -1457,10 +1457,25 @@ void ClientField::UpdateDeclarableCodeType(bool enter) {
...
@@ -1457,10 +1457,25 @@ void ClientField::UpdateDeclarableCodeType(bool enter) {
ancard
.
push_back
(
trycode
);
ancard
.
push_back
(
trycode
);
return
;
return
;
}
}
if
((
pname
[
0
]
==
0
||
pname
[
1
]
==
0
)
&&
!
enter
)
bool
try_cache
=
false
;
return
;
if
(
pname
[
0
]
==
0
||
pname
[
1
]
==
0
)
{
if
(
!
enter
)
return
;
try_cache
=
true
;
}
mainGame
->
lstANCard
->
clear
();
mainGame
->
lstANCard
->
clear
();
ancard
.
clear
();
ancard
.
clear
();
if
(
try_cache
&&
mainGame
->
dInfo
.
announce_cache
.
size
())
{
for
(
int
i
=
0
;
i
<
mainGame
->
dInfo
.
announce_cache
.
size
();
++
i
)
{
unsigned
int
cache_code
=
mainGame
->
dInfo
.
announce_cache
[
i
];
if
(
dataManager
.
GetString
(
cache_code
,
&
cstr
)
&&
dataManager
.
GetData
(
cache_code
,
&
cd
)
&&
is_declarable
(
cd
,
declarable_type
))
{
mainGame
->
lstANCard
->
addItem
(
cstr
.
name
.
c_str
());
ancard
.
push_back
(
cache_code
);
}
}
if
(
ancard
.
size
())
return
;
}
for
(
auto
cit
=
dataManager
.
_strings
.
begin
();
cit
!=
dataManager
.
_strings
.
end
();
++
cit
)
{
for
(
auto
cit
=
dataManager
.
_strings
.
begin
();
cit
!=
dataManager
.
_strings
.
end
();
++
cit
)
{
if
(
cit
->
second
.
name
.
find
(
pname
)
!=
std
::
wstring
::
npos
)
{
if
(
cit
->
second
.
name
.
find
(
pname
)
!=
std
::
wstring
::
npos
)
{
auto
cp
=
dataManager
.
GetCodePointer
(
cit
->
first
);
//verified by _strings
auto
cp
=
dataManager
.
GetCodePointer
(
cit
->
first
);
//verified by _strings
...
@@ -1489,10 +1504,25 @@ void ClientField::UpdateDeclarableCodeOpcode(bool enter) {
...
@@ -1489,10 +1504,25 @@ void ClientField::UpdateDeclarableCodeOpcode(bool enter) {
ancard
.
push_back
(
trycode
);
ancard
.
push_back
(
trycode
);
return
;
return
;
}
}
if
((
pname
[
0
]
==
0
||
pname
[
1
]
==
0
)
&&
!
enter
)
bool
try_cache
=
false
;
return
;
if
(
pname
[
0
]
==
0
||
pname
[
1
]
==
0
)
{
if
(
!
enter
)
return
;
try_cache
=
true
;
}
mainGame
->
lstANCard
->
clear
();
mainGame
->
lstANCard
->
clear
();
ancard
.
clear
();
ancard
.
clear
();
if
(
try_cache
&&
mainGame
->
dInfo
.
announce_cache
.
size
())
{
for
(
int
i
=
0
;
i
<
mainGame
->
dInfo
.
announce_cache
.
size
();
++
i
)
{
unsigned
int
cache_code
=
mainGame
->
dInfo
.
announce_cache
[
i
];
if
(
dataManager
.
GetString
(
cache_code
,
&
cstr
)
&&
dataManager
.
GetData
(
cache_code
,
&
cd
)
&&
is_declarable
(
cd
,
opcode
))
{
mainGame
->
lstANCard
->
addItem
(
cstr
.
name
.
c_str
());
ancard
.
push_back
(
cache_code
);
}
}
if
(
ancard
.
size
())
return
;
}
for
(
auto
cit
=
dataManager
.
_strings
.
begin
();
cit
!=
dataManager
.
_strings
.
end
();
++
cit
)
{
for
(
auto
cit
=
dataManager
.
_strings
.
begin
();
cit
!=
dataManager
.
_strings
.
end
();
++
cit
)
{
if
(
cit
->
second
.
name
.
find
(
pname
)
!=
std
::
wstring
::
npos
)
{
if
(
cit
->
second
.
name
.
find
(
pname
)
!=
std
::
wstring
::
npos
)
{
auto
cp
=
dataManager
.
GetCodePointer
(
cit
->
first
);
//verified by _strings
auto
cp
=
dataManager
.
GetCodePointer
(
cit
->
first
);
//verified by _strings
...
...
gframe/drawing.cpp
View file @
228d4829
...
@@ -552,8 +552,8 @@ void Game::DrawMisc() {
...
@@ -552,8 +552,8 @@ void Game::DrawMisc() {
*/
*/
}
}
else
{
else
{
driver
->
draw2DImage
(
imageManager
.
tCover
[
0
],
ResizeCardMid
(
588
,
32
,
600
,
50
,
600
,
41
),
rect
<
s32
>
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
0
,
true
);
driver
->
draw2DImage
(
imageManager
.
tCover
[
0
],
ResizeCardMid
(
588
,
32
,
600
,
50
,
600
,
41
),
Resize
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
0
,
true
);
driver
->
draw2DImage
(
imageManager
.
tCover
[
1
],
ResizeCardMid
(
695
,
32
,
707
,
50
,
707
,
41
),
rect
<
s32
>
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
0
,
true
);
driver
->
draw2DImage
(
imageManager
.
tCover
[
1
],
ResizeCardMid
(
695
,
32
,
707
,
50
,
707
,
41
),
Resize
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
0
,
true
);
DrawShadowText
(
numFont
,
dInfo
.
str_card_count
[
0
],
Resize
(
600
,
31
,
625
,
50
),
Resize
(
0
,
1
,
2
,
0
),
dInfo
.
card_count_color
[
0
],
0xff000000
,
true
,
false
,
0
);
DrawShadowText
(
numFont
,
dInfo
.
str_card_count
[
0
],
Resize
(
600
,
31
,
625
,
50
),
Resize
(
0
,
1
,
2
,
0
),
dInfo
.
card_count_color
[
0
],
0xff000000
,
true
,
false
,
0
);
DrawShadowText
(
numFont
,
dInfo
.
str_card_count
[
1
],
Resize
(
707
,
31
,
732
,
50
),
Resize
(
0
,
1
,
2
,
0
),
dInfo
.
card_count_color
[
1
],
0xff000000
,
true
,
false
,
0
);
DrawShadowText
(
numFont
,
dInfo
.
str_card_count
[
1
],
Resize
(
707
,
31
,
732
,
50
),
Resize
(
0
,
1
,
2
,
0
),
dInfo
.
card_count_color
[
1
],
0xff000000
,
true
,
false
,
0
);
...
...
gframe/duelclient.cpp
View file @
228d4829
...
@@ -390,6 +390,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
...
@@ -390,6 +390,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
wDeckEdit
->
setVisible
(
false
);
mainGame
->
wDeckEdit
->
setVisible
(
false
);
mainGame
->
wFilter
->
setVisible
(
false
);
mainGame
->
wFilter
->
setVisible
(
false
);
mainGame
->
wSort
->
setVisible
(
false
);
mainGame
->
wSort
->
setVisible
(
false
);
mainGame
->
stTip
->
setVisible
(
false
);
mainGame
->
btnSideOK
->
setVisible
(
true
);
mainGame
->
btnSideOK
->
setVisible
(
true
);
mainGame
->
btnSideShuffle
->
setVisible
(
true
);
mainGame
->
btnSideShuffle
->
setVisible
(
true
);
mainGame
->
btnSideSort
->
setVisible
(
true
);
mainGame
->
btnSideSort
->
setVisible
(
true
);
...
@@ -600,6 +601,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
...
@@ -600,6 +601,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
RefreshTimeDisplay
();
mainGame
->
RefreshTimeDisplay
();
mainGame
->
dInfo
.
time_player
=
2
;
mainGame
->
dInfo
.
time_player
=
2
;
mainGame
->
dInfo
.
isReplaySwapped
=
false
;
mainGame
->
dInfo
.
isReplaySwapped
=
false
;
mainGame
->
dInfo
.
announce_cache
.
clear
();
mainGame
->
is_building
=
false
;
mainGame
->
is_building
=
false
;
mainGame
->
wCardImg
->
setVisible
(
true
);
mainGame
->
wCardImg
->
setVisible
(
true
);
mainGame
->
wInfos
->
setVisible
(
true
);
mainGame
->
wInfos
->
setVisible
(
true
);
...
@@ -677,6 +679,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
...
@@ -677,6 +679,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
gMutex
.
Lock
();
mainGame
->
gMutex
.
Lock
();
mainGame
->
dInfo
.
isStarted
=
false
;
mainGame
->
dInfo
.
isStarted
=
false
;
mainGame
->
dInfo
.
isFinished
=
true
;
mainGame
->
dInfo
.
isFinished
=
true
;
mainGame
->
dInfo
.
announce_cache
.
clear
();
mainGame
->
is_building
=
false
;
mainGame
->
is_building
=
false
;
mainGame
->
wDeckEdit
->
setVisible
(
false
);
mainGame
->
wDeckEdit
->
setVisible
(
false
);
mainGame
->
btnCreateHost
->
setEnabled
(
true
);
mainGame
->
btnCreateHost
->
setEnabled
(
true
);
...
@@ -1564,6 +1567,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
...
@@ -1564,6 +1567,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
ClientCard
*
pcard
;
ClientCard
*
pcard
;
bool
panelmode
=
false
;
bool
panelmode
=
false
;
bool
conti_exist
=
false
;
bool
conti_exist
=
false
;
bool
select_trigger
=
(
specount
==
0x7f
);
mainGame
->
dField
.
chain_forced
=
(
forced
!=
0
);
mainGame
->
dField
.
chain_forced
=
(
forced
!=
0
);
mainGame
->
dField
.
activatable_cards
.
clear
();
mainGame
->
dField
.
activatable_cards
.
clear
();
mainGame
->
dField
.
activatable_descs
.
clear
();
mainGame
->
dField
.
activatable_descs
.
clear
();
...
@@ -1604,7 +1608,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
...
@@ -1604,7 +1608,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
panelmode
=
true
;
panelmode
=
true
;
}
}
}
}
if
(
!
forced
&&
(
mainGame
->
ignore_chain
||
((
count
==
0
||
specount
==
0
)
&&
!
mainGame
->
always_chain
))
&&
(
count
==
0
||
!
mainGame
->
chain_when_avail
))
{
if
(
!
select_trigger
&&
!
forced
&&
(
mainGame
->
ignore_chain
||
((
count
==
0
||
specount
==
0
)
&&
!
mainGame
->
always_chain
))
&&
(
count
==
0
||
!
mainGame
->
chain_when_avail
))
{
SetResponseI
(
-
1
);
SetResponseI
(
-
1
);
mainGame
->
dField
.
ClearChainSelect
();
mainGame
->
dField
.
ClearChainSelect
();
if
(
mainGame
->
chkWaitChain
->
isChecked
()
&&
!
mainGame
->
ignore_chain
)
{
if
(
mainGame
->
chkWaitChain
->
isChecked
()
&&
!
mainGame
->
ignore_chain
)
{
...
@@ -2345,11 +2349,9 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
...
@@ -2345,11 +2349,9 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
dInfo
.
is_swapped
=
!
mainGame
->
dInfo
.
is_swapped
;
mainGame
->
dInfo
.
is_swapped
=
!
mainGame
->
dInfo
.
is_swapped
;
return
true
;
return
true
;
}
}
if
(
!
mainGame
->
dInfo
.
is
Tag
&&
!
mainGame
->
dInfo
.
is
Replay
&&
mainGame
->
dInfo
.
player_type
<
7
)
{
if
(
!
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
player_type
<
7
)
{
mainGame
->
btnLeaveGame
->
setText
(
dataManager
.
GetSysString
(
1351
));
mainGame
->
btnLeaveGame
->
setText
(
dataManager
.
GetSysString
(
1351
));
mainGame
->
btnLeaveGame
->
setVisible
(
true
);
mainGame
->
btnLeaveGame
->
setVisible
(
true
);
}
if
(
!
mainGame
->
dInfo
.
isReplay
&&
mainGame
->
dInfo
.
player_type
<
7
)
{
if
(
mainGame
->
gameConf
.
control_mode
==
0
)
{
if
(
mainGame
->
gameConf
.
control_mode
==
0
)
{
mainGame
->
btnChainIgnore
->
setVisible
(
true
);
mainGame
->
btnChainIgnore
->
setVisible
(
true
);
mainGame
->
btnChainAlways
->
setVisible
(
true
);
mainGame
->
btnChainAlways
->
setVisible
(
true
);
...
@@ -2883,6 +2885,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
...
@@ -2883,6 +2885,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
case
MSG_CHAIN_DISABLED
:
{
case
MSG_CHAIN_DISABLED
:
{
int
ct
=
BufferIO
::
ReadInt8
(
pbuf
);
int
ct
=
BufferIO
::
ReadInt8
(
pbuf
);
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
if
(
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
soundManager
.
PlaySoundEffect
(
SOUND_NEGATE
);
mainGame
->
showcardcode
=
mainGame
->
dField
.
chains
[
ct
-
1
].
code
;
mainGame
->
showcardcode
=
mainGame
->
dField
.
chains
[
ct
-
1
].
code
;
mainGame
->
showcarddif
=
0
;
mainGame
->
showcarddif
=
0
;
mainGame
->
showcard
=
3
;
mainGame
->
showcard
=
3
;
...
...
gframe/event_handler.cpp
View file @
228d4829
...
@@ -338,6 +338,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
...
@@ -338,6 +338,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
if
(
sel
==
-
1
)
if
(
sel
==
-
1
)
break
;
break
;
DuelClient
::
SetResponseI
(
ancard
[
sel
]);
DuelClient
::
SetResponseI
(
ancard
[
sel
]);
mainGame
->
dInfo
.
announce_cache
.
insert
(
mainGame
->
dInfo
.
announce_cache
.
begin
(),
ancard
[
sel
]);
mainGame
->
HideElement
(
mainGame
->
wANCard
,
true
);
mainGame
->
HideElement
(
mainGame
->
wANCard
,
true
);
break
;
break
;
}
}
...
...
gframe/game.cpp
View file @
228d4829
...
@@ -697,8 +697,9 @@ bool Game::Initialize() {
...
@@ -697,8 +697,9 @@ bool Game::Initialize() {
btnDeleteReplay
=
env
->
addButton
(
rect
<
s32
>
(
360
,
355
,
460
,
380
),
wReplay
,
BUTTON_DELETE_REPLAY
,
dataManager
.
GetSysString
(
1361
));
btnDeleteReplay
=
env
->
addButton
(
rect
<
s32
>
(
360
,
355
,
460
,
380
),
wReplay
,
BUTTON_DELETE_REPLAY
,
dataManager
.
GetSysString
(
1361
));
btnRenameReplay
=
env
->
addButton
(
rect
<
s32
>
(
360
,
385
,
460
,
410
),
wReplay
,
BUTTON_RENAME_REPLAY
,
dataManager
.
GetSysString
(
1362
));
btnRenameReplay
=
env
->
addButton
(
rect
<
s32
>
(
360
,
385
,
460
,
410
),
wReplay
,
BUTTON_RENAME_REPLAY
,
dataManager
.
GetSysString
(
1362
));
btnReplayCancel
=
env
->
addButton
(
rect
<
s32
>
(
470
,
385
,
570
,
410
),
wReplay
,
BUTTON_CANCEL_REPLAY
,
dataManager
.
GetSysString
(
1347
));
btnReplayCancel
=
env
->
addButton
(
rect
<
s32
>
(
470
,
385
,
570
,
410
),
wReplay
,
BUTTON_CANCEL_REPLAY
,
dataManager
.
GetSysString
(
1347
));
btnExportDeck
=
env
->
addButton
(
rect
<
s32
>
(
470
,
325
,
570
,
350
),
wReplay
,
BUTTON_EXPORT_DECK
,
dataManager
.
GetSysString
(
1369
));
env
->
addStaticText
(
dataManager
.
GetSysString
(
1349
),
rect
<
s32
>
(
360
,
30
,
570
,
50
),
false
,
true
,
wReplay
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1349
),
rect
<
s32
>
(
360
,
30
,
570
,
50
),
false
,
true
,
wReplay
);
stReplayInfo
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
360
,
60
,
570
,
3
5
0
),
false
,
true
,
wReplay
);
stReplayInfo
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
360
,
60
,
570
,
3
2
0
),
false
,
true
,
wReplay
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1353
),
rect
<
s32
>
(
360
,
275
,
570
,
295
),
false
,
true
,
wReplay
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1353
),
rect
<
s32
>
(
360
,
275
,
570
,
295
),
false
,
true
,
wReplay
);
ebRepStartTurn
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
360
,
300
,
460
,
320
),
true
,
wReplay
,
-
1
);
ebRepStartTurn
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
360
,
300
,
460
,
320
),
true
,
wReplay
,
-
1
);
ebRepStartTurn
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
ebRepStartTurn
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
...
@@ -1679,6 +1680,7 @@ void Game::AddChatMsg(wchar_t* msg, int player) {
...
@@ -1679,6 +1680,7 @@ void Game::AddChatMsg(wchar_t* msg, int player) {
wchar_t
msg_front
[
256
];
wchar_t
msg_front
[
256
];
myswprintf
(
msg_front
,
L"[Chat]%ls"
,
chatMsg
[
0
].
c_str
());
myswprintf
(
msg_front
,
L"[Chat]%ls"
,
chatMsg
[
0
].
c_str
());
lstLog
->
addItem
(
msg_front
);
lstLog
->
addItem
(
msg_front
);
logParam
.
push_back
(
0
);
}
}
void
Game
::
ClearChatMsg
()
{
void
Game
::
ClearChatMsg
()
{
for
(
int
i
=
7
;
i
>=
0
;
--
i
)
{
for
(
int
i
=
7
;
i
>=
0
;
--
i
)
{
...
@@ -1937,7 +1939,7 @@ void Game::OnResize() {
...
@@ -1937,7 +1939,7 @@ void Game::OnResize() {
wPosSelect
->
setRelativePosition
(
ResizeWin
(
340
,
200
,
935
,
410
));
wPosSelect
->
setRelativePosition
(
ResizeWin
(
340
,
200
,
935
,
410
));
wCardSelect
->
setRelativePosition
(
ResizeWin
(
320
,
100
,
1000
,
400
));
wCardSelect
->
setRelativePosition
(
ResizeWin
(
320
,
100
,
1000
,
400
));
wANNumber
->
setRelativePosition
(
ResizeWin
(
550
,
200
,
780
,
295
));
wANNumber
->
setRelativePosition
(
ResizeWin
(
550
,
200
,
780
,
295
));
wANCard
->
setRelativePosition
(
ResizeWin
(
430
,
170
,
84
0
,
370
));
wANCard
->
setRelativePosition
(
ResizeWin
(
560
,
170
,
77
0
,
370
));
wANAttribute
->
setRelativePosition
(
ResizeWin
(
500
,
200
,
830
,
285
));
wANAttribute
->
setRelativePosition
(
ResizeWin
(
500
,
200
,
830
,
285
));
wANRace
->
setRelativePosition
(
ResizeWin
(
480
,
200
,
850
,
410
));
wANRace
->
setRelativePosition
(
ResizeWin
(
480
,
200
,
850
,
410
));
wReplaySave
->
setRelativePosition
(
ResizeWin
(
510
,
200
,
820
,
320
));
wReplaySave
->
setRelativePosition
(
ResizeWin
(
510
,
200
,
820
,
320
));
...
...
gframe/game.h
View file @
228d4829
...
@@ -94,6 +94,7 @@ struct DuelInfo {
...
@@ -94,6 +94,7 @@ struct DuelInfo {
wchar_t
str_card_count
[
2
][
16
];
wchar_t
str_card_count
[
2
][
16
];
video
::
SColor
card_count_color
[
2
];
video
::
SColor
card_count_color
[
2
];
bool
isReplaySwapped
;
bool
isReplaySwapped
;
std
::
vector
<
unsigned
int
>
announce_cache
;
};
};
struct
BotInfo
{
struct
BotInfo
{
...
@@ -369,6 +370,7 @@ public:
...
@@ -369,6 +370,7 @@ public:
irr
::
gui
::
IGUIButton
*
btnDeleteReplay
;
irr
::
gui
::
IGUIButton
*
btnDeleteReplay
;
irr
::
gui
::
IGUIButton
*
btnRenameReplay
;
irr
::
gui
::
IGUIButton
*
btnRenameReplay
;
irr
::
gui
::
IGUIButton
*
btnReplayCancel
;
irr
::
gui
::
IGUIButton
*
btnReplayCancel
;
irr
::
gui
::
IGUIButton
*
btnExportDeck
;
irr
::
gui
::
IGUIEditBox
*
ebRepStartTurn
;
irr
::
gui
::
IGUIEditBox
*
ebRepStartTurn
;
//single play
//single play
irr
::
gui
::
IGUIWindow
*
wSinglePlay
;
irr
::
gui
::
IGUIWindow
*
wSinglePlay
;
...
@@ -608,6 +610,7 @@ extern HostInfo game_info;
...
@@ -608,6 +610,7 @@ extern HostInfo game_info;
#define BUTTON_CANCEL_REPLAY 132
#define BUTTON_CANCEL_REPLAY 132
#define BUTTON_DELETE_REPLAY 133
#define BUTTON_DELETE_REPLAY 133
#define BUTTON_RENAME_REPLAY 134
#define BUTTON_RENAME_REPLAY 134
#define BUTTON_EXPORT_DECK 135
#define EDITBOX_CHAT 140
#define EDITBOX_CHAT 140
#define BUTTON_MSG_OK 200
#define BUTTON_MSG_OK 200
#define BUTTON_YES 201
#define BUTTON_YES 201
...
...
gframe/menu_handler.cpp
View file @
228d4829
...
@@ -280,6 +280,42 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
...
@@ -280,6 +280,42 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame
->
ShowElement
(
mainGame
->
wMainMenu
);
mainGame
->
ShowElement
(
mainGame
->
wMainMenu
);
break
;
break
;
}
}
case
BUTTON_EXPORT_DECK
:
{
if
(
mainGame
->
lstReplayList
->
getSelected
()
==
-
1
)
break
;
Replay
replay
;
wchar_t
ex_filename
[
256
];
wchar_t
namebuf
[
4
][
20
];
wchar_t
filename
[
256
];
myswprintf
(
ex_filename
,
L"%ls"
,
mainGame
->
lstReplayList
->
getListItem
(
mainGame
->
lstReplayList
->
getSelected
()));
if
(
!
replay
.
OpenReplay
(
ex_filename
))
break
;
const
ReplayHeader
&
rh
=
replay
.
pheader
;
if
(
rh
.
flag
&
REPLAY_SINGLE_MODE
)
break
;
int
max
=
(
rh
.
flag
&
REPLAY_TAG
)
?
4
:
2
;
//player name
for
(
int
i
=
0
;
i
<
max
;
++
i
)
replay
.
ReadName
(
namebuf
[
i
]);
//skip pre infos
for
(
int
i
=
0
;
i
<
4
;
++
i
)
replay
.
ReadInt32
();
//deck
for
(
int
i
=
0
;
i
<
max
;
++
i
)
{
int
main
=
replay
.
ReadInt32
();
Deck
tmp_deck
;
for
(
int
j
=
0
;
j
<
main
;
++
j
)
tmp_deck
.
main
.
push_back
(
dataManager
.
GetCodePointer
(
replay
.
ReadInt32
()));
int
extra
=
replay
.
ReadInt32
();
for
(
int
j
=
0
;
j
<
extra
;
++
j
)
tmp_deck
.
extra
.
push_back
(
dataManager
.
GetCodePointer
(
replay
.
ReadInt32
()));
myswprintf
(
filename
,
L"%ls %ls"
,
ex_filename
,
namebuf
[
i
]);
deckManager
.
SaveDeck
(
tmp_deck
,
filename
);
}
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1335
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
break
;
}
case
BUTTON_BOT_START
:
{
case
BUTTON_BOT_START
:
{
int
sel
=
mainGame
->
lstBotList
->
getSelected
();
int
sel
=
mainGame
->
lstBotList
->
getSelected
();
if
(
sel
==
-
1
)
if
(
sel
==
-
1
)
...
...
gframe/single_duel.cpp
View file @
228d4829
...
@@ -1871,8 +1871,7 @@ void SingleDuel::RequestField(DuelPlayer* dp) {
...
@@ -1871,8 +1871,7 @@ void SingleDuel::RequestField(DuelPlayer* dp) {
NetServer
::
SendBufferToPlayer
(
dp
,
STOC_GAME_MSG
,
phasebuf
,
3
);
NetServer
::
SendBufferToPlayer
(
dp
,
STOC_GAME_MSG
,
phasebuf
,
3
);
char
query_buffer
[
256
];
char
query_buffer
[
256
];
char
*
qbuf
=
query_buffer
;
int
length
=
query_field_info
(
pduel
,
(
unsigned
char
*
)
query_buffer
);
int
length
=
query_field_info
(
pduel
,
(
unsigned
char
*
)
qbuf
);
NetServer
::
SendBufferToPlayer
(
dp
,
STOC_GAME_MSG
,
query_buffer
,
length
);
NetServer
::
SendBufferToPlayer
(
dp
,
STOC_GAME_MSG
,
query_buffer
,
length
);
RefreshMzone
(
1
-
player
,
0xffdfff
,
0
,
dp
);
RefreshMzone
(
1
-
player
,
0xffdfff
,
0
,
dp
);
RefreshMzone
(
player
,
0xffdfff
,
0
,
dp
);
RefreshMzone
(
player
,
0xffdfff
,
0
,
dp
);
...
@@ -2231,7 +2230,7 @@ void SingleDuel::TestCard(int code) {
...
@@ -2231,7 +2230,7 @@ void SingleDuel::TestCard(int code) {
time_t
seed
=
time
(
0
);
time_t
seed
=
time
(
0
);
mtrandom
rnd
;
mtrandom
rnd
;
rnd
.
reset
(
seed
);
rnd
.
reset
(
seed
);
set_script_reader
(
default_script_reader
);
set_script_reader
(
(
script_reader
)
ScriptReaderEx
);
set_card_reader
((
card_reader
)
DataManager
::
CardReader
);
set_card_reader
((
card_reader
)
DataManager
::
CardReader
);
set_message_handler
((
message_handler
)
SingleDuel
::
MessageHandler
);
set_message_handler
((
message_handler
)
SingleDuel
::
MessageHandler
);
rnd
.
reset
(
seed
);
rnd
.
reset
(
seed
);
...
...
gframe/single_mode.cpp
View file @
228d4829
...
@@ -53,6 +53,7 @@ int SingleMode::SinglePlayThread(void* param) {
...
@@ -53,6 +53,7 @@ int SingleMode::SinglePlayThread(void* param) {
BufferIO
::
CopyWStr
(
mainGame
->
ebNickName
->
getText
(),
mainGame
->
dInfo
.
hostname
,
20
);
BufferIO
::
CopyWStr
(
mainGame
->
ebNickName
->
getText
(),
mainGame
->
dInfo
.
hostname
,
20
);
mainGame
->
dInfo
.
clientname
[
0
]
=
0
;
mainGame
->
dInfo
.
clientname
[
0
]
=
0
;
mainGame
->
dInfo
.
turn
=
0
;
mainGame
->
dInfo
.
turn
=
0
;
mainGame
->
dInfo
.
announce_cache
.
clear
();
char
filename
[
256
];
char
filename
[
256
];
size_t
slen
=
0
;
size_t
slen
=
0
;
if
(
open_file
)
{
if
(
open_file
)
{
...
...
gframe/sound_manager.cpp
View file @
228d4829
...
@@ -126,6 +126,10 @@ void SoundManager::PlaySoundEffect(int sound) {
...
@@ -126,6 +126,10 @@ void SoundManager::PlaySoundEffect(int sound) {
engineSound
->
play2D
(
"./sound/token.wav"
);
engineSound
->
play2D
(
"./sound/token.wav"
);
break
;
break
;
}
}
case
SOUND_NEGATE
:
{
engineSound
->
play2D
(
"./sound/negate.wav"
);
break
;
}
case
SOUND_ATTACK
:
{
case
SOUND_ATTACK
:
{
engineSound
->
play2D
(
"./sound/attack.wav"
);
engineSound
->
play2D
(
"./sound/attack.wav"
);
break
;
break
;
...
...
gframe/sound_manager.h
View file @
228d4829
...
@@ -48,6 +48,7 @@ extern SoundManager soundManager;
...
@@ -48,6 +48,7 @@ extern SoundManager soundManager;
#define SOUND_DESTROYED 108
#define SOUND_DESTROYED 108
#define SOUND_BANISHED 109
#define SOUND_BANISHED 109
#define SOUND_TOKEN 110
#define SOUND_TOKEN 110
#define SOUND_NEGATE 111
#define SOUND_ATTACK 201
#define SOUND_ATTACK 201
#define SOUND_DIRECT_ATTACK 202
#define SOUND_DIRECT_ATTACK 202
...
...
gframe/tag_duel.cpp
View file @
228d4829
...
@@ -630,7 +630,25 @@ void TagDuel::DuelEndProc() {
...
@@ -630,7 +630,25 @@ void TagDuel::DuelEndProc() {
NetServer
::
StopServer
();
NetServer
::
StopServer
();
}
}
void
TagDuel
::
Surrender
(
DuelPlayer
*
dp
)
{
void
TagDuel
::
Surrender
(
DuelPlayer
*
dp
)
{
return
;
if
(
dp
->
type
>
3
||
!
pduel
)
return
;
unsigned
char
wbuf
[
3
];
uint32
player
=
(
dp
->
type
<
2
)
?
0
:
1
;
wbuf
[
0
]
=
MSG_WIN
;
wbuf
[
1
]
=
1
-
player
;
wbuf
[
2
]
=
0
;
NetServer
::
SendBufferToPlayer
(
players
[
0
],
STOC_GAME_MSG
,
wbuf
,
3
);
NetServer
::
ReSendToPlayer
(
players
[
1
]);
NetServer
::
ReSendToPlayer
(
players
[
2
]);
NetServer
::
ReSendToPlayer
(
players
[
3
]);
for
(
auto
oit
=
observers
.
begin
();
oit
!=
observers
.
end
();
++
oit
)
NetServer
::
ReSendToPlayer
(
*
oit
);
#ifdef YGOPRO_SERVER_MODE
NetServer
::
ReSendToPlayers
(
cache_recorder
,
replay_recorder
);
#endif
EndDuel
();
DuelEndProc
();
event_del
(
etimer
);
}
}
int
TagDuel
::
Analyze
(
char
*
msgbuffer
,
unsigned
int
len
)
{
int
TagDuel
::
Analyze
(
char
*
msgbuffer
,
unsigned
int
len
)
{
char
*
offset
,
*
pbufw
,
*
pbuf
=
msgbuffer
;
char
*
offset
,
*
pbufw
,
*
pbuf
=
msgbuffer
;
...
@@ -1891,8 +1909,7 @@ void TagDuel::RequestField(DuelPlayer* dp) {
...
@@ -1891,8 +1909,7 @@ void TagDuel::RequestField(DuelPlayer* dp) {
NetServer
::
SendBufferToPlayer
(
dp
,
STOC_GAME_MSG
,
phasebuf
,
3
);
NetServer
::
SendBufferToPlayer
(
dp
,
STOC_GAME_MSG
,
phasebuf
,
3
);
char
query_buffer
[
256
];
char
query_buffer
[
256
];
char
*
qbuf
=
query_buffer
;
int
length
=
query_field_info
(
pduel
,
(
unsigned
char
*
)
query_buffer
);
int
length
=
query_field_info
(
pduel
,
(
unsigned
char
*
)
qbuf
);
NetServer
::
SendBufferToPlayer
(
dp
,
STOC_GAME_MSG
,
query_buffer
,
length
);
NetServer
::
SendBufferToPlayer
(
dp
,
STOC_GAME_MSG
,
query_buffer
,
length
);
RefreshMzone
(
1
-
player
,
0xffdfff
,
0
,
dp
);
RefreshMzone
(
1
-
player
,
0xffdfff
,
0
,
dp
);
RefreshMzone
(
player
,
0xffdfff
,
0
,
dp
);
RefreshMzone
(
player
,
0xffdfff
,
0
,
dp
);
...
...
ocgcore
@
5807ac79
Subproject commit
69cbfa06b5019116b8327e43753be88a0c372812
Subproject commit
5807ac79cc78e70f7af08b4d7617748b4f9d162e
script
@
2b1bcd95
Subproject commit
fa9a0e7ba5c6eb54a0c330bf90f83e90a6d187b
0
Subproject commit
2b1bcd9532fc167ed65d1c117eee28d68b533f1
0
sound/files.txt
View file @
228d4829
...
@@ -8,6 +8,7 @@ equip.wav
...
@@ -8,6 +8,7 @@ equip.wav
destroyed.wav
destroyed.wav
banished.wav
banished.wav
token.wav
token.wav
negate.wav
attack.wav
attack.wav
directattack.wav
directattack.wav
draw.wav
draw.wav
...
...
strings.conf
View file @
228d4829
...
@@ -48,7 +48,7 @@
...
@@ -48,7 +48,7 @@
!
system
94
是否现在使用这张卡的效果?
!
system
94
是否现在使用这张卡的效果?
!
system
95
是否使用[%
ls
]的效果?
!
system
95
是否使用[%
ls
]的效果?
!
system
96
是否使用[%
ls
]的效果代替破坏?
!
system
96
是否使用[%
ls
]的效果代替破坏?
!
system
97
是否把[%
ls
]在魔法与陷阱区域
放置
?
!
system
97
是否把[%
ls
]在魔法与陷阱区域
盖放
?
!
system
98
是否要解放对方怪兽?
!
system
98
是否要解放对方怪兽?
!
system
100
先攻
!
system
100
先攻
!
system
101
后攻
!
system
101
后攻
...
@@ -95,7 +95,7 @@
...
@@ -95,7 +95,7 @@
!
system
524
请选择里侧攻击表示的怪兽
!
system
524
请选择里侧攻击表示的怪兽
!
system
525
请选择里侧守备表示的怪兽
!
system
525
请选择里侧守备表示的怪兽
!
system
526
请选择给对方确认的卡
!
system
526
请选择给对方确认的卡
!
system
527
请选择要
放置
到场上的卡
!
system
527
请选择要
盖放
到场上的卡
!
system
528
请选择要改变表示形式的怪兽
!
system
528
请选择要改变表示形式的怪兽
!
system
529
请选择自己的卡
!
system
529
请选择自己的卡
!
system
530
请选择对方的卡
!
system
530
请选择对方的卡
...
@@ -229,13 +229,13 @@
...
@@ -229,13 +229,13 @@
!
system
1150
发动
!
system
1150
发动
!
system
1151
召唤
!
system
1151
召唤
!
system
1152
特殊召唤
!
system
1152
特殊召唤
!
system
1153
放置
!
system
1153
盖放
!
system
1154
反转召唤
!
system
1154
反转召唤
!
system
1155
守备表示
!
system
1155
守备表示
!
system
1156
攻击表示
!
system
1156
攻击表示
!
system
1157
攻击
!
system
1157
攻击
!
system
1158
查看列表
!
system
1158
查看列表
!
system
1159
当魔法卡
放置
!
system
1159
当魔法卡
盖放
!
system
1160
在灵摆区域发动
!
system
1160
在灵摆区域发动
!
system
1161
效果处理
!
system
1161
效果处理
!
system
1162
效果重置
!
system
1162
效果重置
...
@@ -394,6 +394,7 @@
...
@@ -394,6 +394,7 @@
!
system
1366
重命名成功
!
system
1366
重命名成功
!
system
1367
重命名卡组
!
system
1367
重命名卡组
!
system
1368
卡组文件:
!
system
1368
卡组文件:
!
system
1369
提取卡组
!
system
1370
星数↑
!
system
1370
星数↑
!
system
1371
攻击↑
!
system
1371
攻击↑
!
system
1372
守备↑
!
system
1372
守备↑
...
@@ -437,7 +438,7 @@
...
@@ -437,7 +438,7 @@
!
system
1511
对方宣言了:[%
ls
]
!
system
1511
对方宣言了:[%
ls
]
!
system
1512
对方选择了:[%
d
]
!
system
1512
对方选择了:[%
d
]
!
system
1600
卡片改变了表示形式
!
system
1600
卡片改变了表示形式
!
system
1601
放置
了卡片
!
system
1601
盖放
了卡片
!
system
1602
卡的控制权改变了
!
system
1602
卡的控制权改变了
!
system
1603
[%
ls
]召唤中
!
system
1603
[%
ls
]召唤中
!
system
1604
怪兽召唤成功
!
system
1604
怪兽召唤成功
...
@@ -925,4 +926,4 @@
...
@@ -925,4 +926,4 @@
!
setname
0
x11f
奈芙提斯 ネフティス
!
setname
0
x11f
奈芙提斯 ネフティス
!
setname
0
x120
调皮宝贝 プランキッズ
!
setname
0
x120
调皮宝贝 プランキッズ
!
setname
0
x121
魔妖
!
setname
0
x121
魔妖
!
setname
0
x122
女武神
!
setname
0
x122
女武神
Valkyrie
system.conf
View file @
228d4829
...
@@ -8,8 +8,8 @@ errorlog = 3
...
@@ -8,8 +8,8 @@ errorlog = 3
nickname
=
Komeiji
Koishi
nickname
=
Komeiji
Koishi
gamename
=
Game
gamename
=
Game
lastdeck
=
new
lastdeck
=
new
textfont
=
c
:/
windows
/
fonts
/
simhei
.
ttf
14
textfont
=
.
/
fonts
/
simhei
.
ttf
14
numfont
=
c
:/
windows
/
fonts
/
arial
.
ttf
numfont
=
.
/
fonts
/
arial
.
ttf
serverport
=
7911
serverport
=
7911
lasthost
=
127
.
0
.
0
.
1
lasthost
=
127
.
0
.
0
.
1
lastport
=
7911
lastport
=
7911
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment