Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro for rd
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
苍蓝
ygopro for rd
Commits
1849c130
Commit
1849c130
authored
Jun 23, 2019
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'fh/master' into retry_fh
parents
b57d9402
dbb12f03
Changes
20
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
327 additions
and
104 deletions
+327
-104
gframe/CGUIImageButton.cpp
gframe/CGUIImageButton.cpp
+23
-0
gframe/CGUIImageButton.h
gframe/CGUIImageButton.h
+4
-0
gframe/client_field.cpp
gframe/client_field.cpp
+7
-7
gframe/client_field.h
gframe/client_field.h
+3
-3
gframe/data_manager.cpp
gframe/data_manager.cpp
+2
-2
gframe/duelclient.cpp
gframe/duelclient.cpp
+8
-8
gframe/event_handler.cpp
gframe/event_handler.cpp
+6
-2
gframe/game.cpp
gframe/game.cpp
+12
-12
gframe/netserver.cpp
gframe/netserver.cpp
+1
-1
gframe/network.h
gframe/network.h
+1
-1
gframe/replay_mode.cpp
gframe/replay_mode.cpp
+1
-1
gframe/single_duel.cpp
gframe/single_duel.cpp
+11
-3
gframe/single_duel.h
gframe/single_duel.h
+1
-1
gframe/single_mode.cpp
gframe/single_mode.cpp
+1
-1
gframe/tag_duel.cpp
gframe/tag_duel.cpp
+10
-2
gframe/tag_duel.h
gframe/tag_duel.h
+1
-1
lflist.conf
lflist.conf
+212
-39
ocgcore
ocgcore
+1
-1
script
script
+1
-1
strings.conf
strings.conf
+21
-18
No files found.
gframe/CGUIImageButton.cpp
View file @
1849c130
...
...
@@ -97,8 +97,10 @@ void Draw2DImageQuad(video::IVideoDriver* driver, video::ITexture* image, core::
CGUIImageButton
::
CGUIImageButton
(
IGUIEnvironment
*
environment
,
IGUIElement
*
parent
,
s32
id
,
core
::
rect
<
s32
>
rectangle
)
:
CGUIButton
(
environment
,
parent
,
id
,
rectangle
)
{
isDrawImage
=
true
;
isFixedSize
=
false
;
imageRotation
=
0.0
f
;
imageScale
=
core
::
vector2df
(
1.0
f
,
1.0
f
);
imageSize
=
core
::
dimension2di
(
rectangle
.
getWidth
(),
rectangle
.
getHeight
());
}
CGUIImageButton
*
CGUIImageButton
::
addImageButton
(
IGUIEnvironment
*
env
,
const
core
::
rect
<
s32
>&
rectangle
,
IGUIElement
*
parent
,
s32
id
)
{
CGUIImageButton
*
button
=
new
CGUIImageButton
(
env
,
parent
?
parent
:
0
,
id
,
rectangle
);
...
...
@@ -129,6 +131,23 @@ void CGUIImageButton::draw() {
irr
::
gui
::
Draw2DImageRotation
(
driver
,
Image
,
ImageRect
,
pos
,
center
,
imageRotation
,
imageScale
);
IGUIElement
::
draw
();
}
void
CGUIImageButton
::
setImage
(
video
::
ITexture
*
image
)
{
if
(
image
)
image
->
grab
();
if
(
Image
)
Image
->
drop
();
Image
=
image
;
if
(
image
)
{
ImageRect
=
core
::
rect
<
s32
>
(
core
::
position2d
<
s32
>
(
0
,
0
),
image
->
getOriginalSize
());
if
(
isFixedSize
)
imageScale
=
core
::
vector2df
((
irr
::
f32
)
imageSize
.
Width
/
image
->
getSize
().
Width
,
(
irr
::
f32
)
imageSize
.
Height
/
image
->
getSize
().
Height
);
}
if
(
!
PressedImage
)
setPressedImage
(
Image
);
}
void
CGUIImageButton
::
setDrawImage
(
bool
b
)
{
isDrawImage
=
b
;
}
...
...
@@ -138,6 +157,10 @@ void CGUIImageButton::setImageRotation(f32 r) {
void
CGUIImageButton
::
setImageScale
(
core
::
vector2df
s
)
{
imageScale
=
s
;
}
void
CGUIImageButton
::
setImageSize
(
core
::
dimension2di
s
)
{
isFixedSize
=
true
;
imageSize
=
s
;
}
IGUIFont
*
CGUIImageButton
::
getOverrideFont
(
void
)
const
{
...
...
gframe/CGUIImageButton.h
View file @
1849c130
...
...
@@ -17,16 +17,20 @@ public:
CGUIImageButton
(
IGUIEnvironment
*
environment
,
IGUIElement
*
parent
,
s32
id
,
core
::
rect
<
s32
>
rectangle
);
static
CGUIImageButton
*
addImageButton
(
IGUIEnvironment
*
env
,
const
core
::
rect
<
s32
>&
rectangle
,
IGUIElement
*
parent
,
s32
id
);
virtual
void
draw
();
virtual
void
setImage
(
video
::
ITexture
*
image
=
0
);
virtual
void
setDrawImage
(
bool
b
);
virtual
void
setImageRotation
(
f32
r
);
virtual
void
setImageScale
(
core
::
vector2df
s
);
virtual
void
setImageSize
(
core
::
dimension2di
s
);
virtual
IGUIFont
*
getOverrideFont
(
void
)
const
;
virtual
IGUIFont
*
getActiveFont
()
const
;
private:
bool
isDrawImage
;
bool
isFixedSize
;
f32
imageRotation
;
core
::
vector2df
imageScale
;
core
::
dimension2di
imageSize
;
};
}
...
...
gframe/client_field.cpp
View file @
1849c130
...
...
@@ -1418,7 +1418,7 @@ static bool is_declarable(T const& cd, const std::vector<int>& opcode) {
return
cd
.
code
==
CARD_MARINE_DOLPHIN
||
cd
.
code
==
CARD_TWINKLE_MOSS
||
(
!
cd
.
alias
&&
(
cd
.
type
&
(
TYPE_MONSTER
+
TYPE_TOKEN
))
!=
(
TYPE_MONSTER
+
TYPE_TOKEN
));
}
void
ClientField
::
UpdateDeclarableCodeType
(
bool
enter
)
{
void
ClientField
::
UpdateDeclarableCodeType
()
{
const
wchar_t
*
pname
=
mainGame
->
ebANCard
->
getText
();
int
trycode
=
BufferIO
::
GetVal
(
pname
);
CardString
cstr
;
...
...
@@ -1430,7 +1430,7 @@ void ClientField::UpdateDeclarableCodeType(bool enter) {
ancard
.
push_back
(
trycode
);
return
;
}
if
(
(
pname
[
0
]
==
0
||
pname
[
1
]
==
0
)
&&
!
enter
)
{
if
(
pname
[
0
]
==
0
)
{
std
::
vector
<
int
>
cache
;
cache
.
swap
(
ancard
);
int
sel
=
mainGame
->
lstANCard
->
getSelected
();
...
...
@@ -1465,7 +1465,7 @@ void ClientField::UpdateDeclarableCodeType(bool enter) {
}
}
}
void
ClientField
::
UpdateDeclarableCodeOpcode
(
bool
enter
)
{
void
ClientField
::
UpdateDeclarableCodeOpcode
()
{
const
wchar_t
*
pname
=
mainGame
->
ebANCard
->
getText
();
int
trycode
=
BufferIO
::
GetVal
(
pname
);
CardString
cstr
;
...
...
@@ -1477,7 +1477,7 @@ void ClientField::UpdateDeclarableCodeOpcode(bool enter) {
ancard
.
push_back
(
trycode
);
return
;
}
if
(
(
pname
[
0
]
==
0
||
pname
[
1
]
==
0
)
&&
!
enter
)
{
if
(
pname
[
0
]
==
0
)
{
std
::
vector
<
int
>
cache
;
cache
.
swap
(
ancard
);
int
sel
=
mainGame
->
lstANCard
->
getSelected
();
...
...
@@ -1512,10 +1512,10 @@ void ClientField::UpdateDeclarableCodeOpcode(bool enter) {
}
}
}
void
ClientField
::
UpdateDeclarableCode
(
bool
enter
)
{
void
ClientField
::
UpdateDeclarableCode
()
{
if
(
opcode
.
size
()
==
0
)
UpdateDeclarableCodeType
(
enter
);
UpdateDeclarableCodeType
();
else
UpdateDeclarableCodeOpcode
(
enter
);
UpdateDeclarableCodeOpcode
();
}
}
gframe/client_field.h
View file @
1849c130
...
...
@@ -112,9 +112,9 @@ public:
void
check_sel_sum_t
(
const
std
::
set
<
ClientCard
*>&
left
,
int
acc
);
bool
check_sum
(
std
::
set
<
ClientCard
*>::
const_iterator
index
,
std
::
set
<
ClientCard
*>::
const_iterator
end
,
int
acc
,
int
count
);
void
UpdateDeclarableCodeType
(
bool
enter
);
void
UpdateDeclarableCodeOpcode
(
bool
enter
);
void
UpdateDeclarableCode
(
bool
enter
);
void
UpdateDeclarableCodeType
();
void
UpdateDeclarableCodeOpcode
();
void
UpdateDeclarableCode
();
irr
::
gui
::
IGUIElement
*
panel
;
std
::
vector
<
int
>
ancard
;
...
...
gframe/data_manager.cpp
View file @
1849c130
...
...
@@ -222,8 +222,8 @@ const wchar_t* DataManager::GetSetName(int code) {
}
unsigned
int
DataManager
::
GetSetCode
(
const
wchar_t
*
setname
)
{
for
(
auto
csit
=
_setnameStrings
.
begin
();
csit
!=
_setnameStrings
.
end
();
++
csit
)
{
auto
xpos
=
csit
->
second
.
find_first_of
(
L'|'
);
//setname|extra info
if
(
csit
->
second
.
compare
(
0
,
xpos
,
setname
)
==
0
)
auto
xpos
=
csit
->
second
.
find_first_of
(
L'|'
);
//setname|
another setname or
extra info
if
(
csit
->
second
.
compare
(
0
,
xpos
,
setname
)
==
0
||
csit
->
second
.
compare
(
xpos
+
1
,
csit
->
second
.
length
(),
setname
)
==
0
)
return
csit
->
first
;
}
return
0
;
...
...
gframe/duelclient.cpp
View file @
1849c130
...
...
@@ -686,8 +686,11 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
btnChainWhenAvail
->
setVisible
(
false
);
mainGame
->
btnCancelOrFinish
->
setVisible
(
false
);
mainGame
->
btnShuffle
->
setVisible
(
false
);
time_t
nowtime
=
time
(
NULL
);
tm
*
localedtime
=
localtime
(
&
nowtime
);
char
*
prep
=
pdata
;
Replay
new_replay
;
memcpy
(
&
new_replay
.
pheader
,
prep
,
sizeof
(
ReplayHeader
));
time_t
starttime
=
new_replay
.
pheader
.
seed
;
tm
*
localedtime
=
localtime
(
&
starttime
);
wchar_t
timetext
[
40
];
wcsftime
(
timetext
,
40
,
L"%Y-%m-%d %H-%M-%S"
,
localedtime
);
mainGame
->
ebRSName
->
setText
(
timetext
);
...
...
@@ -708,9 +711,6 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame
->
WaitFrameSignal
(
30
);
}
if
(
mainGame
->
actionParam
||
!
is_host
)
{
char
*
prep
=
pdata
;
Replay
new_replay
;
memcpy
(
&
new_replay
.
pheader
,
prep
,
sizeof
(
ReplayHeader
));
prep
+=
sizeof
(
ReplayHeader
);
memcpy
(
new_replay
.
comp_data
,
prep
,
len
-
sizeof
(
ReplayHeader
)
-
1
);
new_replay
.
comp_size
=
len
-
sizeof
(
ReplayHeader
)
-
1
;
...
...
@@ -3431,7 +3431,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
gMutex
.
Lock
();
mainGame
->
ebANCard
->
setText
(
L""
);
mainGame
->
wANCard
->
setText
(
textBuffer
);
mainGame
->
dField
.
UpdateDeclarableCode
(
false
);
mainGame
->
dField
.
UpdateDeclarableCode
();
mainGame
->
PopupElement
(
mainGame
->
wANCard
);
mainGame
->
gMutex
.
Unlock
();
return
false
;
...
...
@@ -3458,7 +3458,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
case
MSG_ANNOUNCE_CARD_FILTER
:
{
/*int player = */
mainGame
->
LocalPlayer
(
BufferIO
::
ReadInt8
(
pbuf
));
int
count
=
BufferIO
::
ReadInt8
(
pbuf
);
int
count
=
BufferIO
::
Read
U
Int8
(
pbuf
);
mainGame
->
dField
.
declarable_type
=
0
;
mainGame
->
dField
.
opcode
.
clear
();
for
(
int
i
=
0
;
i
<
count
;
++
i
)
...
...
@@ -3470,7 +3470,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
mainGame
->
gMutex
.
Lock
();
mainGame
->
ebANCard
->
setText
(
L""
);
mainGame
->
wANCard
->
setText
(
textBuffer
);
mainGame
->
dField
.
UpdateDeclarableCode
(
false
);
mainGame
->
dField
.
UpdateDeclarableCode
();
mainGame
->
PopupElement
(
mainGame
->
wANCard
);
mainGame
->
gMutex
.
Unlock
();
return
false
;
...
...
gframe/event_handler.cpp
View file @
1849c130
...
...
@@ -20,6 +20,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
return
false
;
switch
(
event
.
EventType
)
{
case
irr
:
:
EET_GUI_EVENT
:
{
if
(
mainGame
->
fadingList
.
size
())
break
;
s32
id
=
event
.
GUIEvent
.
Caller
->
getID
();
switch
(
event
.
GUIEvent
.
EventType
)
{
case
irr
:
:
gui
::
EGET_BUTTON_CLICKED
:
{
...
...
@@ -612,6 +614,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case
BUTTON_CARD_4
:
{
if
(
mainGame
->
dInfo
.
isReplay
)
break
;
mainGame
->
stCardListTip
->
setVisible
(
false
);
switch
(
mainGame
->
dInfo
.
curMsg
)
{
case
MSG_SELECT_IDLECMD
:
case
MSG_SELECT_BATTLECMD
:
...
...
@@ -757,6 +760,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
break
;
}
case
BUTTON_CARD_SEL_OK
:
{
mainGame
->
stCardListTip
->
setVisible
(
false
);
if
(
mainGame
->
dInfo
.
isReplay
)
{
mainGame
->
HideElement
(
mainGame
->
wCardSelect
);
break
;
...
...
@@ -959,7 +963,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case
irr
:
:
gui
::
EGET_EDITBOX_CHANGED
:
{
switch
(
id
)
{
case
EDITBOX_ANCARD
:
{
UpdateDeclarableCode
(
false
);
UpdateDeclarableCode
();
break
;
}
}
...
...
@@ -968,7 +972,7 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
case
irr
:
:
gui
::
EGET_EDITBOX_ENTER
:
{
switch
(
id
)
{
case
EDITBOX_ANCARD
:
{
UpdateDeclarableCode
(
true
);
UpdateDeclarableCode
();
break
;
}
}
...
...
gframe/game.cpp
View file @
1849c130
...
...
@@ -10,7 +10,7 @@
#include "netserver.h"
#include "single_mode.h"
const
unsigned
short
PRO_VERSION
=
0x134
9
;
const
unsigned
short
PRO_VERSION
=
0x134
A
;
namespace
ygo
{
...
...
@@ -414,15 +414,15 @@ bool Game::Initialize() {
wPosSelect
->
getCloseButton
()
->
setVisible
(
false
);
wPosSelect
->
setVisible
(
false
);
btnPSAU
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
10
,
45
,
150
,
185
),
wPosSelect
,
BUTTON_POS_AU
);
btnPSAU
->
setImageS
cale
(
core
::
vector2df
(
0.5
,
0.5
));
btnPSAU
->
setImageS
ize
(
core
::
dimension2di
(
CARD_IMG_WIDTH
*
0.5
f
,
CARD_IMG_HEIGHT
*
0.5
f
));
btnPSAD
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
155
,
45
,
295
,
185
),
wPosSelect
,
BUTTON_POS_AD
);
btnPSAD
->
setImageS
cale
(
core
::
vector2df
(
0.5
,
0.5
));
btnPSAD
->
setImageS
ize
(
core
::
dimension2di
(
CARD_IMG_WIDTH
*
0.5
f
,
CARD_IMG_HEIGHT
*
0.5
f
));
btnPSAD
->
setImage
(
imageManager
.
tCover
[
2
]);
btnPSDU
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
300
,
45
,
440
,
185
),
wPosSelect
,
BUTTON_POS_DU
);
btnPSDU
->
setImageS
cale
(
core
::
vector2df
(
0.5
,
0.5
));
btnPSDU
->
setImageS
ize
(
core
::
dimension2di
(
CARD_IMG_WIDTH
*
0.5
f
,
CARD_IMG_HEIGHT
*
0.5
f
));
btnPSDU
->
setImageRotation
(
270
);
btnPSDD
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
445
,
45
,
585
,
185
),
wPosSelect
,
BUTTON_POS_DD
);
btnPSDD
->
setImageS
cale
(
core
::
vector2df
(
0.5
,
0.5
));
btnPSDD
->
setImageS
ize
(
core
::
dimension2di
(
CARD_IMG_WIDTH
*
0.5
f
,
CARD_IMG_HEIGHT
*
0.5
f
));
btnPSDD
->
setImageRotation
(
270
);
btnPSDD
->
setImage
(
imageManager
.
tCover
[
2
]);
//card select
...
...
@@ -434,7 +434,7 @@ bool Game::Initialize() {
stCardPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
stCardPos
[
i
]
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
btnCardSelect
[
i
]
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
30
+
125
*
i
,
55
,
150
+
125
*
i
,
225
),
wCardSelect
,
BUTTON_CARD_0
+
i
);
btnCardSelect
[
i
]
->
setImageS
cale
(
core
::
vector2df
(
0.6
f
,
0.6
f
));
btnCardSelect
[
i
]
->
setImageS
ize
(
core
::
dimension2di
(
CARD_IMG_WIDTH
*
0.6
f
,
CARD_IMG_HEIGHT
*
0.6
f
));
}
scrCardList
=
env
->
addScrollBar
(
true
,
rect
<
s32
>
(
30
,
235
,
650
,
255
),
wCardSelect
,
SCROLL_CARD_SELECT
);
btnSelectOK
=
env
->
addButton
(
rect
<
s32
>
(
300
,
265
,
380
,
290
),
wCardSelect
,
BUTTON_CARD_SEL_OK
,
dataManager
.
GetSysString
(
1211
));
...
...
@@ -447,7 +447,7 @@ bool Game::Initialize() {
stDisplayPos
[
i
]
->
setBackgroundColor
(
0xffffffff
);
stDisplayPos
[
i
]
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
btnCardDisplay
[
i
]
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
30
+
125
*
i
,
55
,
150
+
125
*
i
,
225
),
wCardDisplay
,
BUTTON_DISPLAY_0
+
i
);
btnCardDisplay
[
i
]
->
setImageS
cale
(
core
::
vector2df
(
0.6
f
,
0.6
f
));
btnCardDisplay
[
i
]
->
setImageS
ize
(
core
::
dimension2di
(
CARD_IMG_WIDTH
*
0.6
f
,
CARD_IMG_HEIGHT
*
0.6
f
));
}
scrDisplayList
=
env
->
addScrollBar
(
true
,
rect
<
s32
>
(
30
,
235
,
650
,
255
),
wCardDisplay
,
SCROLL_CARD_DISPLAY
);
btnDisplayOK
=
env
->
addButton
(
rect
<
s32
>
(
300
,
265
,
380
,
290
),
wCardDisplay
,
BUTTON_CARD_DISP_OK
,
dataManager
.
GetSysString
(
1211
));
...
...
@@ -459,13 +459,13 @@ bool Game::Initialize() {
cbANNumber
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
btnANNumberOK
=
env
->
addButton
(
rect
<
s32
>
(
80
,
60
,
150
,
85
),
wANNumber
,
BUTTON_ANNUMBER_OK
,
dataManager
.
GetSysString
(
1211
));
//announce card
wANCard
=
env
->
addWindow
(
rect
<
s32
>
(
5
60
,
170
,
770
,
37
0
),
false
,
L""
);
wANCard
=
env
->
addWindow
(
rect
<
s32
>
(
5
10
,
120
,
820
,
42
0
),
false
,
L""
);
wANCard
->
getCloseButton
()
->
setVisible
(
false
);
wANCard
->
setVisible
(
false
);
ebANCard
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
20
,
25
,
1
90
,
45
),
true
,
wANCard
,
EDITBOX_ANCARD
);
ebANCard
=
env
->
addEditBox
(
L""
,
rect
<
s32
>
(
20
,
25
,
2
90
,
45
),
true
,
wANCard
,
EDITBOX_ANCARD
);
ebANCard
->
setTextAlignment
(
irr
::
gui
::
EGUIA_CENTER
,
irr
::
gui
::
EGUIA_CENTER
);
lstANCard
=
env
->
addListBox
(
rect
<
s32
>
(
20
,
50
,
190
,
160
),
wANCard
,
LISTBOX_ANCARD
,
true
);
btnANCardOK
=
env
->
addButton
(
rect
<
s32
>
(
60
,
165
,
150
,
190
),
wANCard
,
BUTTON_ANCARD_OK
,
dataManager
.
GetSysString
(
1211
));
lstANCard
=
env
->
addListBox
(
rect
<
s32
>
(
20
,
50
,
290
,
265
),
wANCard
,
LISTBOX_ANCARD
,
true
);
btnANCardOK
=
env
->
addButton
(
rect
<
s32
>
(
110
,
270
,
200
,
295
),
wANCard
,
BUTTON_ANCARD_OK
,
dataManager
.
GetSysString
(
1211
));
//announce attribute
wANAttribute
=
env
->
addWindow
(
rect
<
s32
>
(
500
,
200
,
830
,
285
),
false
,
dataManager
.
GetSysString
(
562
));
wANAttribute
->
getCloseButton
()
->
setVisible
(
false
);
...
...
@@ -1609,7 +1609,7 @@ void Game::OnResize() {
wPosSelect
->
setRelativePosition
(
ResizeWin
(
340
,
200
,
935
,
410
));
wCardSelect
->
setRelativePosition
(
ResizeWin
(
320
,
100
,
1000
,
400
));
wANNumber
->
setRelativePosition
(
ResizeWin
(
550
,
200
,
780
,
295
));
wANCard
->
setRelativePosition
(
ResizeWin
(
5
60
,
170
,
770
,
37
0
));
wANCard
->
setRelativePosition
(
ResizeWin
(
5
10
,
120
,
820
,
42
0
));
wANAttribute
->
setRelativePosition
(
ResizeWin
(
500
,
200
,
830
,
285
));
wANRace
->
setRelativePosition
(
ResizeWin
(
480
,
200
,
850
,
410
));
wReplaySave
->
setRelativePosition
(
ResizeWin
(
510
,
200
,
820
,
320
));
...
...
gframe/netserver.cpp
View file @
1849c130
...
...
@@ -197,7 +197,7 @@ void NetServer::HandleCTOSPacket(DuelPlayer* dp, char* data, unsigned int len) {
case
CTOS_UPDATE_DECK
:
{
if
(
!
dp
->
game
)
return
;
duel_mode
->
UpdateDeck
(
dp
,
pdata
);
duel_mode
->
UpdateDeck
(
dp
,
pdata
,
len
-
1
);
break
;
}
case
CTOS_HAND_RESULT
:
{
...
...
gframe/network.h
View file @
1849c130
...
...
@@ -123,7 +123,7 @@ public:
virtual
void
ToObserver
(
DuelPlayer
*
dp
)
{}
virtual
void
PlayerReady
(
DuelPlayer
*
dp
,
bool
is_ready
)
{}
virtual
void
PlayerKick
(
DuelPlayer
*
dp
,
unsigned
char
pos
)
{}
virtual
void
UpdateDeck
(
DuelPlayer
*
dp
,
void
*
pdata
)
{}
virtual
void
UpdateDeck
(
DuelPlayer
*
dp
,
void
*
pdata
,
unsigned
int
len
)
{}
virtual
void
StartDuel
(
DuelPlayer
*
dp
)
{}
virtual
void
HandResult
(
DuelPlayer
*
dp
,
unsigned
char
res
)
{}
virtual
void
TPResult
(
DuelPlayer
*
dp
,
unsigned
char
tp
)
{}
...
...
gframe/replay_mode.cpp
View file @
1849c130
...
...
@@ -775,7 +775,7 @@ bool ReplayMode::ReplayAnalyze(char* msg, unsigned int len) {
case
MSG_ANNOUNCE_NUMBER
:
case
MSG_ANNOUNCE_CARD_FILTER
:
{
player
=
BufferIO
::
ReadInt8
(
pbuf
);
count
=
BufferIO
::
ReadInt8
(
pbuf
);
count
=
BufferIO
::
Read
U
Int8
(
pbuf
);
pbuf
+=
4
*
count
;
return
ReadReplayResponse
();
}
...
...
gframe/single_duel.cpp
View file @
1849c130
...
...
@@ -173,7 +173,7 @@ void SingleDuel::LeaveGame(DuelPlayer* dp) {
unsigned
char
wbuf
[
3
];
wbuf
[
0
]
=
MSG_WIN
;
wbuf
[
1
]
=
1
-
dp
->
type
;
wbuf
[
2
]
=
0
;
wbuf
[
2
]
=
0
x4
;
NetServer
::
SendBufferToPlayer
(
players
[
0
],
STOC_GAME_MSG
,
wbuf
,
3
);
NetServer
::
ReSendToPlayer
(
players
[
1
]);
for
(
auto
oit
=
observers
.
begin
();
oit
!=
observers
.
end
();
++
oit
)
...
...
@@ -280,12 +280,20 @@ void SingleDuel::PlayerKick(DuelPlayer* dp, unsigned char pos) {
return
;
LeaveGame
(
players
[
pos
]);
}
void
SingleDuel
::
UpdateDeck
(
DuelPlayer
*
dp
,
void
*
pdata
)
{
void
SingleDuel
::
UpdateDeck
(
DuelPlayer
*
dp
,
void
*
pdata
,
unsigned
int
len
)
{
if
(
dp
->
type
>
1
||
ready
[
dp
->
type
])
return
;
char
*
deckbuf
=
(
char
*
)
pdata
;
int
mainc
=
BufferIO
::
ReadInt32
(
deckbuf
);
int
sidec
=
BufferIO
::
ReadInt32
(
deckbuf
);
// verify data
if
((
unsigned
)
mainc
+
(
unsigned
)
sidec
>
(
len
-
8
)
/
4
)
{
STOC_ErrorMsg
scem
;
scem
.
msg
=
ERRMSG_DECKERROR
;
scem
.
code
=
0
;
NetServer
::
SendPacketToPlayer
(
dp
,
STOC_ERROR_MSG
,
scem
);
return
;
}
if
(
duel_count
==
0
)
{
deck_error
[
dp
->
type
]
=
deckManager
.
LoadDeck
(
pdeck
[
dp
->
type
],
(
int
*
)
deckbuf
,
mainc
,
sidec
);
}
else
{
...
...
@@ -1347,7 +1355,7 @@ int SingleDuel::Analyze(char* msgbuffer, unsigned int len) {
case
MSG_ANNOUNCE_NUMBER
:
case
MSG_ANNOUNCE_CARD_FILTER
:
{
player
=
BufferIO
::
ReadInt8
(
pbuf
);
count
=
BufferIO
::
ReadInt8
(
pbuf
);
count
=
BufferIO
::
Read
U
Int8
(
pbuf
);
pbuf
+=
4
*
count
;
WaitforResponse
(
player
);
NetServer
::
SendBufferToPlayer
(
players
[
player
],
STOC_GAME_MSG
,
offset
,
pbuf
-
offset
);
...
...
gframe/single_duel.h
View file @
1849c130
...
...
@@ -18,7 +18,7 @@ public:
virtual
void
ToObserver
(
DuelPlayer
*
dp
);
virtual
void
PlayerReady
(
DuelPlayer
*
dp
,
bool
ready
);
virtual
void
PlayerKick
(
DuelPlayer
*
dp
,
unsigned
char
pos
);
virtual
void
UpdateDeck
(
DuelPlayer
*
dp
,
void
*
pdata
);
virtual
void
UpdateDeck
(
DuelPlayer
*
dp
,
void
*
pdata
,
unsigned
int
len
);
virtual
void
StartDuel
(
DuelPlayer
*
dp
);
virtual
void
HandResult
(
DuelPlayer
*
dp
,
unsigned
char
res
);
virtual
void
TPResult
(
DuelPlayer
*
dp
,
unsigned
char
tp
);
...
...
gframe/single_mode.cpp
View file @
1849c130
...
...
@@ -693,7 +693,7 @@ bool SingleMode::SinglePlayAnalyze(char* msg, unsigned int len) {
case
MSG_ANNOUNCE_NUMBER
:
case
MSG_ANNOUNCE_CARD_FILTER
:
{
player
=
BufferIO
::
ReadInt8
(
pbuf
);
count
=
BufferIO
::
ReadInt8
(
pbuf
);
count
=
BufferIO
::
Read
U
Int8
(
pbuf
);
pbuf
+=
4
*
count
;
if
(
!
DuelClient
::
ClientAnalyze
(
offset
,
pbuf
-
offset
))
{
mainGame
->
singleSignal
.
Reset
();
...
...
gframe/tag_duel.cpp
View file @
1849c130
...
...
@@ -256,12 +256,20 @@ void TagDuel::PlayerKick(DuelPlayer* dp, unsigned char pos) {
return
;
LeaveGame
(
players
[
pos
]);
}
void
TagDuel
::
UpdateDeck
(
DuelPlayer
*
dp
,
void
*
pdata
)
{
void
TagDuel
::
UpdateDeck
(
DuelPlayer
*
dp
,
void
*
pdata
,
unsigned
int
len
)
{
if
(
dp
->
type
>
3
||
ready
[
dp
->
type
])
return
;
char
*
deckbuf
=
(
char
*
)
pdata
;
int
mainc
=
BufferIO
::
ReadInt32
(
deckbuf
);
int
sidec
=
BufferIO
::
ReadInt32
(
deckbuf
);
// verify data
if
((
unsigned
)
mainc
+
(
unsigned
)
sidec
>
(
len
-
8
)
/
4
)
{
STOC_ErrorMsg
scem
;
scem
.
msg
=
ERRMSG_DECKERROR
;
scem
.
code
=
0
;
NetServer
::
SendPacketToPlayer
(
dp
,
STOC_ERROR_MSG
,
scem
);
return
;
}
deck_error
[
dp
->
type
]
=
deckManager
.
LoadDeck
(
pdeck
[
dp
->
type
],
(
int
*
)
deckbuf
,
mainc
,
sidec
);
}
void
TagDuel
::
StartDuel
(
DuelPlayer
*
dp
)
{
...
...
@@ -1396,7 +1404,7 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
case
MSG_ANNOUNCE_NUMBER
:
case
MSG_ANNOUNCE_CARD_FILTER
:
{
player
=
BufferIO
::
ReadInt8
(
pbuf
);
count
=
BufferIO
::
ReadInt8
(
pbuf
);
count
=
BufferIO
::
Read
U
Int8
(
pbuf
);
pbuf
+=
4
*
count
;
WaitforResponse
(
player
);
NetServer
::
SendBufferToPlayer
(
cur_player
[
player
],
STOC_GAME_MSG
,
offset
,
pbuf
-
offset
);
...
...
gframe/tag_duel.h
View file @
1849c130
...
...
@@ -18,7 +18,7 @@ public:
virtual
void
ToObserver
(
DuelPlayer
*
dp
);
virtual
void
PlayerReady
(
DuelPlayer
*
dp
,
bool
ready
);
virtual
void
PlayerKick
(
DuelPlayer
*
dp
,
unsigned
char
pos
);
virtual
void
UpdateDeck
(
DuelPlayer
*
dp
,
void
*
pdata
);
virtual
void
UpdateDeck
(
DuelPlayer
*
dp
,
void
*
pdata
,
unsigned
int
len
);
virtual
void
StartDuel
(
DuelPlayer
*
dp
);
virtual
void
HandResult
(
DuelPlayer
*
dp
,
unsigned
char
res
);
virtual
void
TPResult
(
DuelPlayer
*
dp
,
unsigned
char
tp
);
...
...
lflist.conf
View file @
1849c130
This diff is collapsed.
Click to expand it.
ocgcore
@
f95d9084
Subproject commit
3cbdbf5a970b3ac5d8dcf0c6550898c41f5274e
0
Subproject commit
f95d908449a428691301ff6ae29ab9920eb492c
0
script
@
9ec1a442
Subproject commit
68a3de27cbd22e6cf74157feeaa2b8e5ee455636
Subproject commit
9ec1a4429cf9e3a3fd5002b6286061f9a83db917
strings.conf
View file @
1849c130
...
...
@@ -10,7 +10,7 @@
!
system
6
反转召唤成功
!
system
7
发动
!
system
10
移除指示物
!
system
11
支付
LP
!
system
11
支付
基本分
!
system
12
移除本身的素材
!
system
20
抽卡阶段中
!
system
21
准备阶段中
...
...
@@ -41,7 +41,7 @@
!
system
72
陷阱卡
!
system
80
进入战斗阶段
!
system
81
进入结束阶段
!
system
90
是否不解放怪
物
通常召唤?
!
system
90
是否不解放怪
兽
通常召唤?
!
system
91
是否使用额外的召唤机会?
!
system
92
是否要解放对方怪兽进行上级召唤?
!
system
93
是否要继续选择素材?
...
...
@@ -88,9 +88,9 @@
!
system
508
请选择要召唤的卡
!
system
509
请选择要特殊召唤的卡
!
system
510
请选择要盖放的卡
!
system
511
请选择
融合召唤的素材
!
system
512
请选择
同调召唤的素材
!
system
513
请选择
超量召唤的素材
!
system
511
请选择
要作为融合素材的卡
!
system
512
请选择
要作为同调素材的卡
!
system
513
请选择
要作为超量素材的卡
!
system
514
请选择表侧表示的卡
!
system
515
请选择里侧表示的卡
!
system
516
请选择攻击表示的怪兽
...
...
@@ -110,7 +110,7 @@
!
system
530
请选择对方的卡
!
system
531
请选择上级召唤用需要解放的怪兽
!
system
532
请选择要取除超量素材的怪兽
!
system
533
请选择
连接召唤的素材
!
system
533
请选择
要作为连接素材的卡
!
system
534
请选择要保留在场上的卡
!
system
549
请选择攻击的对象
!
system
550
请选择要发动的效果
...
...
@@ -169,7 +169,7 @@
!
system
1036
恐龙
!
system
1037
鱼
!
system
1038
海龙
!
system
1039
爬虫
!
system
1039
爬虫
类
!
system
1040
念动力
!
system
1041
幻神兽
!
system
1042
创造神
...
...
@@ -284,7 +284,7 @@
!
system
1228
↓额外选项(无特殊要求请勿修改)
!
system
1229
不检查卡组
!
system
1230
不洗切卡组
!
system
1231
初始
LP
:
!
system
1231
初始
基本分
:
!
system
1232
初始手卡数:
!
system
1233
每回合抽卡:
!
system
1234
主机名称:
...
...
@@ -316,7 +316,7 @@
!
system
1273
系统设定
!
system
1274
自动选择怪兽卡片位置
!
system
1275
↑随机选择位置
!
system
1276
自动
排列连锁顺序
!
system
1276
自动
发动并排序必发效果
!
system
1277
没有可连锁的卡时延迟回应
!
system
1278
自动选择魔陷卡片位置
!
system
1279
开启音效
...
...
@@ -458,11 +458,11 @@
!
system
1609
[%
ls
]的效果发动
!
system
1610
[%
ls
](%
ls
,%
d
)成为对象
!
system
1611
我方抽了%
d
张卡
!
system
1612
对
手
抽了%
d
张卡
!
system
1612
对
方
抽了%
d
张卡
!
system
1613
我方受到%
d
伤害
!
system
1614
对方受到%
d
伤害
!
system
1615
我方回复%
d
LP
!
system
1616
对方回复%
d
LP
!
system
1615
我方回复%
d
基本分
!
system
1616
对方回复%
d
基本分
!
system
1617
[%
ls
]放置了%
d
个[%
ls
]
!
system
1618
[%
ls
]移除了%
d
个[%
ls
]
!
system
1619
[%
ls
]攻击[%
ls
]
...
...
@@ -475,7 +475,7 @@
!
system
1700
可以用鼠标右键%
ls
#victory reason
!
victory
0
x0
投降
!
victory
0
x1
LP
变成
0
!
victory
0
x1
基本分
变成
0
!
victory
0
x2
没有卡可抽
!
victory
0
x3
超时
!
victory
0
x4
失去连接
...
...
@@ -571,6 +571,7 @@
!
counter
0
x4e
指示物(魂之灵摆)
!
counter
0
x104f
蛊指示物
!
counter
0
x50
指示物(娱乐伙伴 掉头跑骑兵)
!
counter
0
x51
指示物(蜂军巢)
#setnames, using tab for comment
!
setname
0
x1
正义盟军
A
・
O
・
J
!
setname
0
x2
次世代 ジェネクス
...
...
@@ -583,8 +584,8 @@
!
setname
0
x7
古代的机械 アンティーク・ギア
!
setname
0
x8
英雄
HERO
!
setname
0
x3008
元素英雄
E
・
HERO
#
setname 0x5008 幻影英雄 V・HERO
#
setname 0x6008 邪心英雄 E-HERO
!
setname
0
x5008
幻影英雄
V
・
HERO
!
setname
0
x6008
邪心英雄
E
-
HERO
!
setname
0
xa008
假面英雄
M
・
HERO
!
setname
0
xc008
命运英雄
D
-
HERO
!
setname
0
x9
新宇 ネオス
...
...
@@ -775,7 +776,7 @@
!
setname
0
x4093
电子暗黑 サイバー・ダーク/サイバーダーク
!
setname
0
x94
电子科技 サイバネティック
!
setname
0
x95
升阶魔法
RUM
!
setname
0
x96
电子鱼人 フィッシュボーグ
!
setname
0
x96
电子鱼人
|非「电子」
フィッシュボーグ
!
setname
0
x97
古遗物 アーティファクト
!
setname
0
x98
魔术师 魔術師
!
setname
0
x99
异色眼 オッドアイズ
...
...
@@ -804,7 +805,7 @@
!
setname
0
xa9
毛绒动物 ファーニマル
!
setname
0
xaa
机壳 クリフォート
!
setname
0
x10aa
隐藏的机壳 アポクリフォート
!
setname
0
xab
文具电子人 ブンボーグ
!
setname
0
xab
文具电子人
|非「电子」
ブンボーグ
!
setname
0
xac
哥布林 ゴブリン
!
setname
0
xad
魔玩具 デストーイ
!
setname
0
xae
契约书 契約書
...
...
@@ -923,7 +924,7 @@
!
setname
0
x10a
珀耳修斯 パーシアス
!
setname
0
x10b
廷达魔三角 ティンダングル
!
setname
0
x10c
机界骑士 ジャックナイツ
!
setname
0
x10d
魔导兽 魔導獣
!
setname
0
x10d
魔导兽
|非「魔导」
魔導獣
!
setname
0
x10e
进化药 進化薬
!
setname
0
x10f
枪管 ヴァレル
!
setname
0
x110
眼纳祭神 アイズ・サクリファイス
...
...
@@ -957,3 +958,5 @@
!
setname
0
x12b
海晶少女 マリンセス
!
setname
0
x12c
天威
!
setname
0
x12d
斯摩夫 シムルグ
!
setname
0
x12e
占卜魔女 占い魔女
!
setname
0
x12f
蜂军
B
・
F
(ビー・フォース)
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