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
YGOPRO-520DIY
ygopro
Commits
eda9633d
Commit
eda9633d
authored
Sep 15, 2017
by
mercury233
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/Fluorohydride/ygopro
parents
dbe84274
94b5e588
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
196 additions
and
62 deletions
+196
-62
gframe/deck_con.cpp
gframe/deck_con.cpp
+13
-2
gframe/deck_con.h
gframe/deck_con.h
+1
-0
gframe/drawing.cpp
gframe/drawing.cpp
+12
-14
gframe/duelclient.cpp
gframe/duelclient.cpp
+1
-0
gframe/game.cpp
gframe/game.cpp
+12
-7
gframe/game.h
gframe/game.h
+9
-0
gframe/image_manager.cpp
gframe/image_manager.cpp
+116
-19
gframe/image_manager.h
gframe/image_manager.h
+1
-0
gframe/menu_handler.cpp
gframe/menu_handler.cpp
+4
-4
gframe/replay.cpp
gframe/replay.cpp
+7
-0
gframe/replay.h
gframe/replay.h
+1
-0
gframe/replay_mode.cpp
gframe/replay_mode.cpp
+12
-12
strings.conf
strings.conf
+7
-4
No files found.
gframe/deck_con.cpp
View file @
eda9633d
...
@@ -216,6 +216,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -216,6 +216,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
if
(
mainGame
->
chkCategory
[
i
]
->
isChecked
())
if
(
mainGame
->
chkCategory
[
i
]
->
isChecked
())
filter_effect
|=
filter
;
filter_effect
|=
filter
;
mainGame
->
HideElement
(
mainGame
->
wCategories
);
mainGame
->
HideElement
(
mainGame
->
wCategories
);
InstantSearch
();
break
;
break
;
}
}
case
BUTTON_SIDE_OK
:
{
case
BUTTON_SIDE_OK
:
{
...
@@ -308,6 +309,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -308,6 +309,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
if
(
mainGame
->
btnMark
[
7
]
->
isPressed
())
if
(
mainGame
->
btnMark
[
7
]
->
isPressed
())
filter_marks
|=
0004
;
filter_marks
|=
0004
;
mainGame
->
HideElement
(
mainGame
->
wLinkMarks
);
mainGame
->
HideElement
(
mainGame
->
wLinkMarks
);
InstantSearch
();
break
;
break
;
}
}
}
}
...
@@ -328,8 +330,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -328,8 +330,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
case
irr
:
:
gui
::
EGET_EDITBOX_CHANGED
:
{
case
irr
:
:
gui
::
EGET_EDITBOX_CHANGED
:
{
switch
(
id
)
{
switch
(
id
)
{
case
EDITBOX_KEYWORD
:
{
case
EDITBOX_KEYWORD
:
{
if
(
mainGame
->
gameConf
.
auto_search_limit
>=
0
&&
(
wcslen
(
mainGame
->
ebCardName
->
getText
())
>=
mainGame
->
gameConf
.
auto_search_limit
))
InstantSearch
();
StartFilter
();
break
;
break
;
}
}
}
}
...
@@ -446,6 +447,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -446,6 +447,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
break
;
break
;
}
}
}
}
InstantSearch
();
break
;
break
;
}
}
case
COMBOBOX_SORTTYPE
:
{
case
COMBOBOX_SORTTYPE
:
{
...
@@ -462,8 +464,13 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
...
@@ -462,8 +464,13 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame
->
ebDefense
->
setEnabled
(
true
);
mainGame
->
ebDefense
->
setEnabled
(
true
);
}
}
}
}
InstantSearch
();
break
;
break
;
}
}
case
COMBOBOX_ATTRIBUTE
:
case
COMBOBOX_RACE
:
case
COMBOBOX_LIMIT
:
InstantSearch
();
}
}
}
}
default:
break
;
default:
break
;
...
@@ -854,6 +861,10 @@ void DeckBuilder::FilterCards() {
...
@@ -854,6 +861,10 @@ void DeckBuilder::FilterCards() {
}
}
SortList
();
SortList
();
}
}
void
DeckBuilder
::
InstantSearch
()
{
if
(
mainGame
->
gameConf
.
auto_search_limit
>=
0
&&
(
wcslen
(
mainGame
->
ebCardName
->
getText
())
>=
mainGame
->
gameConf
.
auto_search_limit
))
StartFilter
();
}
void
DeckBuilder
::
ClearSearch
()
{
void
DeckBuilder
::
ClearSearch
()
{
mainGame
->
cbCardType
->
setSelected
(
0
);
mainGame
->
cbCardType
->
setSelected
(
0
);
mainGame
->
cbCardType2
->
setSelected
(
0
);
mainGame
->
cbCardType2
->
setSelected
(
0
);
...
...
gframe/deck_con.h
View file @
eda9633d
...
@@ -17,6 +17,7 @@ public:
...
@@ -17,6 +17,7 @@ public:
void
FilterCards
();
void
FilterCards
();
void
StartFilter
();
void
StartFilter
();
void
ClearFilter
();
void
ClearFilter
();
void
InstantSearch
();
void
ClearSearch
();
void
ClearSearch
();
void
SortList
();
void
SortList
();
...
...
gframe/drawing.cpp
View file @
eda9633d
...
@@ -746,10 +746,10 @@ void Game::DrawSpec() {
...
@@ -746,10 +746,10 @@ void Game::DrawSpec() {
switch
(
showcard
)
{
switch
(
showcard
)
{
case
1
:
{
case
1
:
{
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
),
position2di
(
574
,
150
));
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
),
position2di
(
574
,
150
));
driver
->
draw2DImage
(
imageManager
.
tMask
,
recti
(
574
,
150
,
574
+
(
showcarddif
>
177
?
177
:
showcarddif
),
404
),
driver
->
draw2DImage
(
imageManager
.
tMask
,
recti
(
574
,
150
,
574
+
(
showcarddif
>
CARD_IMG_WIDTH
?
CARD_IMG_WIDTH
:
showcarddif
),
404
),
recti
(
254
-
showcarddif
,
0
,
254
-
(
showcarddif
>
177
?
showcarddif
-
177
:
0
),
254
),
0
,
0
,
true
);
recti
(
CARD_IMG_HEIGHT
-
showcarddif
,
0
,
CARD_IMG_HEIGHT
-
(
showcarddif
>
CARD_IMG_WIDTH
?
showcarddif
-
CARD_IMG_WIDTH
:
0
),
CARD_IMG_HEIGHT
),
0
,
0
,
true
);
showcarddif
+=
15
;
showcarddif
+=
15
;
if
(
showcarddif
>=
254
)
{
if
(
showcarddif
>=
CARD_IMG_HEIGHT
)
{
showcard
=
2
;
showcard
=
2
;
showcarddif
=
0
;
showcarddif
=
0
;
}
}
...
@@ -757,9 +757,9 @@ void Game::DrawSpec() {
...
@@ -757,9 +757,9 @@ void Game::DrawSpec() {
}
}
case
2
:
{
case
2
:
{
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
),
position2di
(
574
,
150
));
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
),
position2di
(
574
,
150
));
driver
->
draw2DImage
(
imageManager
.
tMask
,
recti
(
574
+
showcarddif
,
150
,
761
,
404
),
recti
(
0
,
0
,
177
-
showcarddif
,
254
),
0
,
0
,
true
);
driver
->
draw2DImage
(
imageManager
.
tMask
,
recti
(
574
+
showcarddif
,
150
,
761
,
404
),
recti
(
0
,
0
,
CARD_IMG_WIDTH
-
showcarddif
,
CARD_IMG_HEIGHT
),
0
,
0
,
true
);
showcarddif
+=
15
;
showcarddif
+=
15
;
if
(
showcarddif
>=
177
)
{
if
(
showcarddif
>=
CARD_IMG_WIDTH
)
{
showcard
=
0
;
showcard
=
0
;
}
}
break
;
break
;
...
@@ -777,7 +777,7 @@ void Game::DrawSpec() {
...
@@ -777,7 +777,7 @@ void Game::DrawSpec() {
matManager
.
c2d
[
2
]
=
(
showcarddif
<<
24
)
|
0xffffff
;
matManager
.
c2d
[
2
]
=
(
showcarddif
<<
24
)
|
0xffffff
;
matManager
.
c2d
[
3
]
=
(
showcarddif
<<
24
)
|
0xffffff
;
matManager
.
c2d
[
3
]
=
(
showcarddif
<<
24
)
|
0xffffff
;
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
),
recti
(
574
,
154
,
751
,
404
),
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
),
recti
(
574
,
154
,
751
,
404
),
recti
(
0
,
0
,
177
,
254
),
0
,
matManager
.
c2d
,
true
);
recti
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
matManager
.
c2d
,
true
);
if
(
showcarddif
<
255
)
if
(
showcarddif
<
255
)
showcarddif
+=
17
;
showcarddif
+=
17
;
break
;
break
;
...
@@ -788,7 +788,7 @@ void Game::DrawSpec() {
...
@@ -788,7 +788,7 @@ void Game::DrawSpec() {
matManager
.
c2d
[
2
]
=
(
showcarddif
<<
25
)
|
0xffffff
;
matManager
.
c2d
[
2
]
=
(
showcarddif
<<
25
)
|
0xffffff
;
matManager
.
c2d
[
3
]
=
(
showcarddif
<<
25
)
|
0xffffff
;
matManager
.
c2d
[
3
]
=
(
showcarddif
<<
25
)
|
0xffffff
;
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
),
recti
(
662
-
showcarddif
*
0.69685
f
,
277
-
showcarddif
,
662
+
showcarddif
*
0.69685
f
,
277
+
showcarddif
),
driver
->
draw2DImage
(
imageManager
.
GetTexture
(
showcardcode
),
recti
(
662
-
showcarddif
*
0.69685
f
,
277
-
showcarddif
,
662
+
showcarddif
*
0.69685
f
,
277
+
showcarddif
),
recti
(
0
,
0
,
177
,
254
),
0
,
matManager
.
c2d
,
true
);
recti
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
0
,
matManager
.
c2d
,
true
);
if
(
showcarddif
<
127
)
if
(
showcarddif
<
127
)
showcarddif
+=
9
;
showcarddif
+=
9
;
break
;
break
;
...
@@ -803,12 +803,12 @@ void Game::DrawSpec() {
...
@@ -803,12 +803,12 @@ void Game::DrawSpec() {
}
}
case
7
:
{
case
7
:
{
core
::
position2d
<
s32
>
corner
[
4
];
core
::
position2d
<
s32
>
corner
[
4
];
float
y
=
sin
(
showcarddif
*
3.1415926
f
/
180.0
f
)
*
254
;
float
y
=
sin
(
showcarddif
*
3.1415926
f
/
180.0
f
)
*
CARD_IMG_HEIGHT
;
corner
[
0
]
=
core
::
position2d
<
s32
>
(
574
-
(
254
-
y
)
*
0.3
f
,
404
-
y
);
corner
[
0
]
=
core
::
position2d
<
s32
>
(
574
-
(
CARD_IMG_HEIGHT
-
y
)
*
0.3
f
,
404
-
y
);
corner
[
1
]
=
core
::
position2d
<
s32
>
(
751
+
(
254
-
y
)
*
0.3
f
,
404
-
y
);
corner
[
1
]
=
core
::
position2d
<
s32
>
(
751
+
(
CARD_IMG_HEIGHT
-
y
)
*
0.3
f
,
404
-
y
);
corner
[
2
]
=
core
::
position2d
<
s32
>
(
574
,
404
);
corner
[
2
]
=
core
::
position2d
<
s32
>
(
574
,
404
);
corner
[
3
]
=
core
::
position2d
<
s32
>
(
751
,
404
);
corner
[
3
]
=
core
::
position2d
<
s32
>
(
751
,
404
);
irr
::
gui
::
Draw2DImageQuad
(
driver
,
imageManager
.
GetTexture
(
showcardcode
),
rect
<
s32
>
(
0
,
0
,
177
,
254
),
corner
);
irr
::
gui
::
Draw2DImageQuad
(
driver
,
imageManager
.
GetTexture
(
showcardcode
),
rect
<
s32
>
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
),
corner
);
showcardp
++
;
showcardp
++
;
showcarddif
+=
9
;
showcarddif
+=
9
;
if
(
showcarddif
>=
90
)
if
(
showcarddif
>=
90
)
...
@@ -1022,8 +1022,6 @@ void Game::WaitFrameSignal(int frame) {
...
@@ -1022,8 +1022,6 @@ void Game::WaitFrameSignal(int frame) {
frameSignal
.
Wait
();
frameSignal
.
Wait
();
}
}
void
Game
::
DrawThumb
(
code_pointer
cp
,
position2di
pos
,
std
::
unordered_map
<
int
,
int
>*
lflist
)
{
void
Game
::
DrawThumb
(
code_pointer
cp
,
position2di
pos
,
std
::
unordered_map
<
int
,
int
>*
lflist
)
{
const
int
width
=
44
;
//standard pic size, maybe it should be defined in game.h
const
int
height
=
64
;
int
code
=
cp
->
first
;
int
code
=
cp
->
first
;
int
lcode
=
cp
->
second
.
alias
;
int
lcode
=
cp
->
second
.
alias
;
if
(
lcode
==
0
)
if
(
lcode
==
0
)
...
@@ -1032,7 +1030,7 @@ void Game::DrawThumb(code_pointer cp, position2di pos, std::unordered_map<int, i
...
@@ -1032,7 +1030,7 @@ void Game::DrawThumb(code_pointer cp, position2di pos, std::unordered_map<int, i
if
(
img
==
NULL
)
if
(
img
==
NULL
)
return
;
//NULL->getSize() will cause a crash
return
;
//NULL->getSize() will cause a crash
dimension2d
<
u32
>
size
=
img
->
getOriginalSize
();
dimension2d
<
u32
>
size
=
img
->
getOriginalSize
();
driver
->
draw2DImage
(
img
,
rect
<
s32
>
(
pos
.
X
,
pos
.
Y
,
pos
.
X
+
width
,
pos
.
Y
+
height
),
rect
<
s32
>
(
0
,
0
,
size
.
Width
,
size
.
Height
));
driver
->
draw2DImage
(
img
,
rect
<
s32
>
(
pos
.
X
,
pos
.
Y
,
pos
.
X
+
CARD_THUMB_WIDTH
,
pos
.
Y
+
CARD_THUMB_HEIGHT
),
rect
<
s32
>
(
0
,
0
,
size
.
Width
,
size
.
Height
));
if
(
lflist
->
count
(
lcode
))
{
if
(
lflist
->
count
(
lcode
))
{
switch
((
*
lflist
)[
lcode
])
{
switch
((
*
lflist
)[
lcode
])
{
...
...
gframe/duelclient.cpp
View file @
eda9633d
...
@@ -282,6 +282,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
...
@@ -282,6 +282,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
);
if
(
mainGame
->
dInfo
.
player_type
<
7
)
if
(
mainGame
->
dInfo
.
player_type
<
7
)
mainGame
->
btnLeaveGame
->
setVisible
(
false
);
mainGame
->
btnLeaveGame
->
setVisible
(
false
);
...
...
gframe/game.cpp
View file @
eda9633d
...
@@ -197,10 +197,10 @@ bool Game::Initialize() {
...
@@ -197,10 +197,10 @@ bool Game::Initialize() {
btnHostPrepStart
=
env
->
addButton
(
rect
<
s32
>
(
230
,
280
,
340
,
305
),
wHostPrepare
,
BUTTON_HP_START
,
dataManager
.
GetSysString
(
1215
));
btnHostPrepStart
=
env
->
addButton
(
rect
<
s32
>
(
230
,
280
,
340
,
305
),
wHostPrepare
,
BUTTON_HP_START
,
dataManager
.
GetSysString
(
1215
));
btnHostPrepCancel
=
env
->
addButton
(
rect
<
s32
>
(
350
,
280
,
460
,
305
),
wHostPrepare
,
BUTTON_HP_CANCEL
,
dataManager
.
GetSysString
(
1210
));
btnHostPrepCancel
=
env
->
addButton
(
rect
<
s32
>
(
350
,
280
,
460
,
305
),
wHostPrepare
,
BUTTON_HP_CANCEL
,
dataManager
.
GetSysString
(
1210
));
//img
//img
wCardImg
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
1
,
1
,
1
99
,
273
),
true
,
false
,
0
,
-
1
,
true
);
wCardImg
=
env
->
addStaticText
(
L""
,
rect
<
s32
>
(
1
,
1
,
1
+
CARD_IMG_WIDTH
+
20
,
1
+
CARD_IMG_HEIGHT
+
18
),
true
,
false
,
0
,
-
1
,
true
);
wCardImg
->
setBackgroundColor
(
0xc0c0c0c0
);
wCardImg
->
setBackgroundColor
(
0xc0c0c0c0
);
wCardImg
->
setVisible
(
false
);
wCardImg
->
setVisible
(
false
);
imgCard
=
env
->
addImage
(
rect
<
s32
>
(
10
,
9
,
1
87
,
263
),
wCardImg
);
imgCard
=
env
->
addImage
(
rect
<
s32
>
(
10
,
9
,
1
0
+
CARD_IMG_WIDTH
,
9
+
CARD_IMG_HEIGHT
),
wCardImg
);
imgCard
->
setImage
(
imageManager
.
tCover
[
0
]);
imgCard
->
setImage
(
imageManager
.
tCover
[
0
]);
imgCard
->
setUseAlphaChannel
(
true
);
imgCard
->
setUseAlphaChannel
(
true
);
//phase
//phase
...
@@ -334,14 +334,14 @@ bool Game::Initialize() {
...
@@ -334,14 +334,14 @@ bool Game::Initialize() {
btnPSAU
->
setImageScale
(
core
::
vector2df
(
0.5
,
0.5
));
btnPSAU
->
setImageScale
(
core
::
vector2df
(
0.5
,
0.5
));
btnPSAD
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
155
,
45
,
295
,
185
),
wPosSelect
,
BUTTON_POS_AD
);
btnPSAD
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
155
,
45
,
295
,
185
),
wPosSelect
,
BUTTON_POS_AD
);
btnPSAD
->
setImageScale
(
core
::
vector2df
(
0.5
,
0.5
));
btnPSAD
->
setImageScale
(
core
::
vector2df
(
0.5
,
0.5
));
btnPSAD
->
setImage
(
imageManager
.
tCover
[
0
],
rect
<
s32
>
(
0
,
0
,
177
,
254
));
btnPSAD
->
setImage
(
imageManager
.
tCover
[
0
],
rect
<
s32
>
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
));
btnPSDU
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
300
,
45
,
440
,
185
),
wPosSelect
,
BUTTON_POS_DU
);
btnPSDU
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
300
,
45
,
440
,
185
),
wPosSelect
,
BUTTON_POS_DU
);
btnPSDU
->
setImageScale
(
core
::
vector2df
(
0.5
,
0.5
));
btnPSDU
->
setImageScale
(
core
::
vector2df
(
0.5
,
0.5
));
btnPSDU
->
setImageRotation
(
270
);
btnPSDU
->
setImageRotation
(
270
);
btnPSDD
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
445
,
45
,
585
,
185
),
wPosSelect
,
BUTTON_POS_DD
);
btnPSDD
=
irr
::
gui
::
CGUIImageButton
::
addImageButton
(
env
,
rect
<
s32
>
(
445
,
45
,
585
,
185
),
wPosSelect
,
BUTTON_POS_DD
);
btnPSDD
->
setImageScale
(
core
::
vector2df
(
0.5
,
0.5
));
btnPSDD
->
setImageScale
(
core
::
vector2df
(
0.5
,
0.5
));
btnPSDD
->
setImageRotation
(
270
);
btnPSDD
->
setImageRotation
(
270
);
btnPSDD
->
setImage
(
imageManager
.
tCover
[
0
],
rect
<
s32
>
(
0
,
0
,
177
,
254
));
btnPSDD
->
setImage
(
imageManager
.
tCover
[
0
],
rect
<
s32
>
(
0
,
0
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
));
//card select
//card select
wCardSelect
=
env
->
addWindow
(
rect
<
s32
>
(
320
,
100
,
1000
,
400
),
false
,
L""
);
wCardSelect
=
env
->
addWindow
(
rect
<
s32
>
(
320
,
100
,
1000
,
400
),
false
,
L""
);
wCardSelect
->
getCloseButton
()
->
setVisible
(
false
);
wCardSelect
->
getCloseButton
()
->
setVisible
(
false
);
...
@@ -463,7 +463,7 @@ bool Game::Initialize() {
...
@@ -463,7 +463,7 @@ bool Game::Initialize() {
cbCardType2
->
setMaxSelectionRows
(
10
);
cbCardType2
->
setMaxSelectionRows
(
10
);
cbCardType2
->
addItem
(
dataManager
.
GetSysString
(
1310
),
0
);
cbCardType2
->
addItem
(
dataManager
.
GetSysString
(
1310
),
0
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1315
),
rect
<
s32
>
(
205
,
2
+
25
/
6
,
280
,
22
+
25
/
6
),
false
,
false
,
wFilter
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1315
),
rect
<
s32
>
(
205
,
2
+
25
/
6
,
280
,
22
+
25
/
6
),
false
,
false
,
wFilter
);
cbLimit
=
env
->
addComboBox
(
rect
<
s32
>
(
260
,
25
/
6
,
390
,
20
+
25
/
6
),
wFilter
,
-
1
);
cbLimit
=
env
->
addComboBox
(
rect
<
s32
>
(
260
,
25
/
6
,
390
,
20
+
25
/
6
),
wFilter
,
COMBOBOX_LIMIT
);
cbLimit
->
setMaxSelectionRows
(
10
);
cbLimit
->
setMaxSelectionRows
(
10
);
cbLimit
->
addItem
(
dataManager
.
GetSysString
(
1310
));
cbLimit
->
addItem
(
dataManager
.
GetSysString
(
1310
));
cbLimit
->
addItem
(
dataManager
.
GetSysString
(
1316
));
cbLimit
->
addItem
(
dataManager
.
GetSysString
(
1316
));
...
@@ -474,13 +474,13 @@ bool Game::Initialize() {
...
@@ -474,13 +474,13 @@ bool Game::Initialize() {
cbLimit
->
addItem
(
dataManager
.
GetSysString
(
1242
));
cbLimit
->
addItem
(
dataManager
.
GetSysString
(
1242
));
cbLimit
->
addItem
(
dataManager
.
GetSysString
(
1243
));
cbLimit
->
addItem
(
dataManager
.
GetSysString
(
1243
));
env
->
addStaticText
(
dataManager
.
GetSysString
(
1319
),
rect
<
s32
>
(
10
,
22
+
50
/
6
,
70
,
42
+
50
/
6
),
false
,
false
,
wFilter
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1319
),
rect
<
s32
>
(
10
,
22
+
50
/
6
,
70
,
42
+
50
/
6
),
false
,
false
,
wFilter
);
cbAttribute
=
env
->
addComboBox
(
rect
<
s32
>
(
60
,
20
+
50
/
6
,
190
,
40
+
50
/
6
),
wFilter
,
-
1
);
cbAttribute
=
env
->
addComboBox
(
rect
<
s32
>
(
60
,
20
+
50
/
6
,
190
,
40
+
50
/
6
),
wFilter
,
COMBOBOX_ATTRIBUTE
);
cbAttribute
->
setMaxSelectionRows
(
10
);
cbAttribute
->
setMaxSelectionRows
(
10
);
cbAttribute
->
addItem
(
dataManager
.
GetSysString
(
1310
),
0
);
cbAttribute
->
addItem
(
dataManager
.
GetSysString
(
1310
),
0
);
for
(
int
filter
=
0x1
;
filter
!=
0x80
;
filter
<<=
1
)
for
(
int
filter
=
0x1
;
filter
!=
0x80
;
filter
<<=
1
)
cbAttribute
->
addItem
(
dataManager
.
FormatAttribute
(
filter
),
filter
);
cbAttribute
->
addItem
(
dataManager
.
FormatAttribute
(
filter
),
filter
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1321
),
rect
<
s32
>
(
10
,
42
+
75
/
6
,
70
,
62
+
75
/
6
),
false
,
false
,
wFilter
);
env
->
addStaticText
(
dataManager
.
GetSysString
(
1321
),
rect
<
s32
>
(
10
,
42
+
75
/
6
,
70
,
62
+
75
/
6
),
false
,
false
,
wFilter
);
cbRace
=
env
->
addComboBox
(
rect
<
s32
>
(
60
,
40
+
75
/
6
,
190
,
60
+
75
/
6
),
wFilter
,
-
1
);
cbRace
=
env
->
addComboBox
(
rect
<
s32
>
(
60
,
40
+
75
/
6
,
190
,
60
+
75
/
6
),
wFilter
,
COMBOBOX_RACE
);
cbRace
->
setMaxSelectionRows
(
10
);
cbRace
->
setMaxSelectionRows
(
10
);
cbRace
->
addItem
(
dataManager
.
GetSysString
(
1310
),
0
);
cbRace
->
addItem
(
dataManager
.
GetSysString
(
1310
),
0
);
for
(
int
filter
=
0x1
;
filter
!=
0x2000000
;
filter
<<=
1
)
for
(
int
filter
=
0x1
;
filter
!=
0x2000000
;
filter
<<=
1
)
...
@@ -901,6 +901,8 @@ void Game::LoadConfig() {
...
@@ -901,6 +901,8 @@ void Game::LoadConfig() {
char
strbuf
[
32
];
char
strbuf
[
32
];
char
valbuf
[
256
];
char
valbuf
[
256
];
wchar_t
wstr
[
256
];
wchar_t
wstr
[
256
];
gameConf
.
use_d3d
=
0
;
gameConf
.
use_image_scale
=
1
;
gameConf
.
antialias
=
0
;
gameConf
.
antialias
=
0
;
gameConf
.
serverport
=
7911
;
gameConf
.
serverport
=
7911
;
gameConf
.
textfontsize
=
12
;
gameConf
.
textfontsize
=
12
;
...
@@ -933,6 +935,8 @@ void Game::LoadConfig() {
...
@@ -933,6 +935,8 @@ void Game::LoadConfig() {
gameConf
.
antialias
=
atoi
(
valbuf
);
gameConf
.
antialias
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"use_d3d"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"use_d3d"
))
{
gameConf
.
use_d3d
=
atoi
(
valbuf
)
>
0
;
gameConf
.
use_d3d
=
atoi
(
valbuf
)
>
0
;
}
else
if
(
!
strcmp
(
strbuf
,
"use_image_scale"
))
{
gameConf
.
use_image_scale
=
atoi
(
valbuf
)
>
0
;
}
else
if
(
!
strcmp
(
strbuf
,
"errorlog"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"errorlog"
))
{
enable_log
=
atoi
(
valbuf
);
enable_log
=
atoi
(
valbuf
);
}
else
if
(
!
strcmp
(
strbuf
,
"textfont"
))
{
}
else
if
(
!
strcmp
(
strbuf
,
"textfont"
))
{
...
@@ -1005,6 +1009,7 @@ void Game::SaveConfig() {
...
@@ -1005,6 +1009,7 @@ void Game::SaveConfig() {
fprintf
(
fp
,
"#config file
\n
#nickname & gamename should be less than 20 characters
\n
"
);
fprintf
(
fp
,
"#config file
\n
#nickname & gamename should be less than 20 characters
\n
"
);
char
linebuf
[
256
];
char
linebuf
[
256
];
fprintf
(
fp
,
"use_d3d = %d
\n
"
,
gameConf
.
use_d3d
?
1
:
0
);
fprintf
(
fp
,
"use_d3d = %d
\n
"
,
gameConf
.
use_d3d
?
1
:
0
);
fprintf
(
fp
,
"use_image_scale = %d
\n
"
,
gameConf
.
use_image_scale
?
1
:
0
);
fprintf
(
fp
,
"antialias = %d
\n
"
,
gameConf
.
antialias
);
fprintf
(
fp
,
"antialias = %d
\n
"
,
gameConf
.
antialias
);
fprintf
(
fp
,
"errorlog = %d
\n
"
,
enable_log
);
fprintf
(
fp
,
"errorlog = %d
\n
"
,
enable_log
);
BufferIO
::
CopyWStr
(
ebNickName
->
getText
(),
gameConf
.
nickname
,
20
);
BufferIO
::
CopyWStr
(
ebNickName
->
getText
(),
gameConf
.
nickname
,
20
);
...
...
gframe/game.h
View file @
eda9633d
...
@@ -13,6 +13,7 @@ namespace ygo {
...
@@ -13,6 +13,7 @@ namespace ygo {
struct
Config
{
struct
Config
{
bool
use_d3d
;
bool
use_d3d
;
bool
use_image_scale
;
unsigned
short
antialias
;
unsigned
short
antialias
;
unsigned
short
serverport
;
unsigned
short
serverport
;
unsigned
char
textfontsize
;
unsigned
char
textfontsize
;
...
@@ -429,6 +430,11 @@ extern Game* mainGame;
...
@@ -429,6 +430,11 @@ extern Game* mainGame;
}
}
#define CARD_IMG_WIDTH 177
#define CARD_IMG_HEIGHT 254
#define CARD_THUMB_WIDTH 44
#define CARD_THUMB_HEIGHT 64
#define UEVENT_EXIT 0x1
#define UEVENT_EXIT 0x1
#define UEVENT_TOWINDOW 0x2
#define UEVENT_TOWINDOW 0x2
...
@@ -545,6 +551,8 @@ extern Game* mainGame;
...
@@ -545,6 +551,8 @@ extern Game* mainGame;
#define SCROLL_FILTER 315
#define SCROLL_FILTER 315
#define EDITBOX_KEYWORD 316
#define EDITBOX_KEYWORD 316
#define BUTTON_CLEAR_FILTER 317
#define BUTTON_CLEAR_FILTER 317
#define COMBOBOX_ATTRIBUTE 318
#define COMBOBOX_RACE 319
#define BUTTON_REPLAY_START 320
#define BUTTON_REPLAY_START 320
#define BUTTON_REPLAY_PAUSE 321
#define BUTTON_REPLAY_PAUSE 321
#define BUTTON_REPLAY_STEP 322
#define BUTTON_REPLAY_STEP 322
...
@@ -558,6 +566,7 @@ extern Game* mainGame;
...
@@ -558,6 +566,7 @@ extern Game* mainGame;
#define BUTTON_CANCEL_SINGLEPLAY 352
#define BUTTON_CANCEL_SINGLEPLAY 352
#define CHECKBOX_AUTO_SEARCH 360
#define CHECKBOX_AUTO_SEARCH 360
#define COMBOBOX_SORTTYPE 370
#define COMBOBOX_SORTTYPE 370
#define COMBOBOX_LIMIT 371
#define BUTTON_MARKS_FILTER 380
#define BUTTON_MARKS_FILTER 380
#define BUTTON_MARKERS_OK 381
#define BUTTON_MARKERS_OK 381
...
...
gframe/image_manager.cpp
View file @
eda9633d
#include "image_manager.h"
#include "image_manager.h"
#include "game.h"
namespace
ygo
{
namespace
ygo
{
...
@@ -63,6 +64,100 @@ void ImageManager::RemoveTexture(int code) {
...
@@ -63,6 +64,100 @@ void ImageManager::RemoveTexture(int code) {
tMap
.
erase
(
tit
);
tMap
.
erase
(
tit
);
}
}
}
}
// function by Warr1024, from https://github.com/minetest/minetest/issues/2419 , modified
void
imageScaleNNAA
(
irr
::
video
::
IImage
*
src
,
irr
::
video
::
IImage
*
dest
)
{
double
sx
,
sy
,
minsx
,
maxsx
,
minsy
,
maxsy
,
area
,
ra
,
ga
,
ba
,
aa
,
pw
,
ph
,
pa
;
u32
dy
,
dx
;
irr
::
video
::
SColor
pxl
;
// Cache rectsngle boundaries.
double
sw
=
src
->
getDimension
().
Width
*
1.0
;
double
sh
=
src
->
getDimension
().
Height
*
1.0
;
// Walk each destination image pixel.
// Note: loop y around x for better cache locality.
irr
::
core
::
dimension2d
<
u32
>
dim
=
dest
->
getDimension
();
for
(
dy
=
0
;
dy
<
dim
.
Height
;
dy
++
)
for
(
dx
=
0
;
dx
<
dim
.
Width
;
dx
++
)
{
// Calculate floating-point source rectangle bounds.
minsx
=
dx
*
sw
/
dim
.
Width
;
maxsx
=
minsx
+
sw
/
dim
.
Width
;
minsy
=
dy
*
sh
/
dim
.
Height
;
maxsy
=
minsy
+
sh
/
dim
.
Height
;
// Total area, and integral of r, g, b values over that area,
// initialized to zero, to be summed up in next loops.
area
=
0
;
ra
=
0
;
ga
=
0
;
ba
=
0
;
aa
=
0
;
// Loop over the integral pixel positions described by those bounds.
for
(
sy
=
floor
(
minsy
);
sy
<
maxsy
;
sy
++
)
for
(
sx
=
floor
(
minsx
);
sx
<
maxsx
;
sx
++
)
{
// Calculate width, height, then area of dest pixel
// that's covered by this source pixel.
pw
=
1
;
if
(
minsx
>
sx
)
pw
+=
sx
-
minsx
;
if
(
maxsx
<
(
sx
+
1
))
pw
+=
maxsx
-
sx
-
1
;
ph
=
1
;
if
(
minsy
>
sy
)
ph
+=
sy
-
minsy
;
if
(
maxsy
<
(
sy
+
1
))
ph
+=
maxsy
-
sy
-
1
;
pa
=
pw
*
ph
;
// Get source pixel and add it to totals, weighted
// by covered area and alpha.
pxl
=
src
->
getPixel
((
u32
)
sx
,
(
u32
)
sy
);
area
+=
pa
;
ra
+=
pa
*
pxl
.
getRed
();
ga
+=
pa
*
pxl
.
getGreen
();
ba
+=
pa
*
pxl
.
getBlue
();
aa
+=
pa
*
pxl
.
getAlpha
();
}
// Set the destination image pixel to the average color.
if
(
area
>
0
)
{
pxl
.
setRed
(
ra
/
area
+
0.5
);
pxl
.
setGreen
(
ga
/
area
+
0.5
);
pxl
.
setBlue
(
ba
/
area
+
0.5
);
pxl
.
setAlpha
(
aa
/
area
+
0.5
);
}
else
{
pxl
.
setRed
(
0
);
pxl
.
setGreen
(
0
);
pxl
.
setBlue
(
0
);
pxl
.
setAlpha
(
0
);
}
dest
->
setPixel
(
dx
,
dy
,
pxl
);
}
}
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureFromFile
(
char
*
file
,
s32
width
,
s32
height
)
{
if
(
mainGame
->
gameConf
.
use_image_scale
)
{
irr
::
video
::
ITexture
*
texture
;
irr
::
video
::
IImage
*
srcimg
=
driver
->
createImageFromFile
(
file
);
if
(
srcimg
==
NULL
)
return
NULL
;
if
(
srcimg
->
getDimension
()
==
irr
::
core
::
dimension2d
<
u32
>
(
width
,
height
))
{
texture
=
driver
->
addTexture
(
file
,
srcimg
);
}
else
{
video
::
IImage
*
destimg
=
driver
->
createImage
(
srcimg
->
getColorFormat
(),
irr
::
core
::
dimension2d
<
u32
>
(
width
,
height
));
imageScaleNNAA
(
srcimg
,
destimg
);
texture
=
driver
->
addTexture
(
file
,
destimg
);
destimg
->
drop
();
}
srcimg
->
drop
();
return
texture
;
}
else
{
return
driver
->
getTexture
(
file
);
}
}
irr
::
video
::
ITexture
*
ImageManager
::
GetTexture
(
int
code
)
{
irr
::
video
::
ITexture
*
ImageManager
::
GetTexture
(
int
code
)
{
if
(
code
==
0
)
if
(
code
==
0
)
return
tUnknown
;
return
tUnknown
;
...
@@ -70,23 +165,22 @@ irr::video::ITexture* ImageManager::GetTexture(int code) {
...
@@ -70,23 +165,22 @@ irr::video::ITexture* ImageManager::GetTexture(int code) {
if
(
tit
==
tMap
.
end
())
{
if
(
tit
==
tMap
.
end
())
{
char
file
[
256
];
char
file
[
256
];
sprintf
(
file
,
"expansions/pics/%d.jpg"
,
code
);
sprintf
(
file
,
"expansions/pics/%d.jpg"
,
code
);
irr
::
video
::
ITexture
*
img
=
driver
->
getTexture
(
file
);
irr
::
video
::
ITexture
*
img
=
GetTextureFromFile
(
file
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
);
if
(
img
==
NULL
)
{
if
(
img
==
NULL
)
{
sprintf
(
file
,
"pics/%d.jpg"
,
code
);
sprintf
(
file
,
"pics/%d.jpg"
,
code
);
img
=
driver
->
getTexture
(
file
);
img
=
GetTextureFromFile
(
file
,
CARD_IMG_WIDTH
,
CARD_IMG_HEIGHT
);
}
}
if
(
img
==
NULL
)
{
if
(
img
==
NULL
&&
!
mainGame
->
gameConf
.
use_image_scale
)
{
tMap
[
code
]
=
NULL
;
tMap
[
code
]
=
NULL
;
return
GetTextureThumb
(
code
);
return
GetTextureThumb
(
code
);
}
else
{
tMap
[
code
]
=
img
;
return
img
;
}
}
tMap
[
code
]
=
img
;
return
(
img
==
NULL
)
?
tUnknown
:
img
;
}
}
if
(
tit
->
second
)
if
(
tit
->
second
)
return
tit
->
second
;
return
tit
->
second
;
else
else
return
GetTextureThumb
(
code
);
return
mainGame
->
gameConf
.
use_image_scale
?
tUnknown
:
GetTextureThumb
(
code
);
}
}
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureThumb
(
int
code
)
{
irr
::
video
::
ITexture
*
ImageManager
::
GetTextureThumb
(
int
code
)
{
if
(
code
==
0
)
if
(
code
==
0
)
...
@@ -95,18 +189,21 @@ irr::video::ITexture* ImageManager::GetTextureThumb(int code) {
...
@@ -95,18 +189,21 @@ irr::video::ITexture* ImageManager::GetTextureThumb(int code) {
if
(
tit
==
tThumb
.
end
())
{
if
(
tit
==
tThumb
.
end
())
{
char
file
[
256
];
char
file
[
256
];
sprintf
(
file
,
"expansions/pics/thumbnail/%d.jpg"
,
code
);
sprintf
(
file
,
"expansions/pics/thumbnail/%d.jpg"
,
code
);
irr
::
video
::
ITexture
*
img
=
driver
->
getTexture
(
file
);
irr
::
video
::
ITexture
*
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
if
(
img
==
NULL
)
{
if
(
img
==
NULL
)
{
sprintf
(
file
,
"pics/thumbnail/%d.jpg"
,
code
);
sprintf
(
file
,
"pics/thumbnail/%d.jpg"
,
code
);
img
=
driver
->
getTexture
(
file
);
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
}
}
if
(
img
==
NULL
)
{
if
(
img
==
NULL
&&
mainGame
->
gameConf
.
use_image_scale
)
{
tThumb
[
code
]
=
NULL
;
sprintf
(
file
,
"expansions/pics/%d.jpg"
,
code
);
return
tUnknown
;
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
}
else
{
if
(
img
==
NULL
)
{
tThumb
[
code
]
=
img
;
sprintf
(
file
,
"pics/%d.jpg"
,
code
);
return
img
;
img
=
GetTextureFromFile
(
file
,
CARD_THUMB_WIDTH
,
CARD_THUMB_HEIGHT
);
}
}
}
tThumb
[
code
]
=
img
;
return
(
img
==
NULL
)
?
tUnknown
:
img
;
}
}
if
(
tit
->
second
)
if
(
tit
->
second
)
return
tit
->
second
;
return
tit
->
second
;
...
@@ -120,18 +217,18 @@ irr::video::ITexture* ImageManager::GetTextureField(int code) {
...
@@ -120,18 +217,18 @@ irr::video::ITexture* ImageManager::GetTextureField(int code) {
if
(
tit
==
tFields
.
end
())
{
if
(
tit
==
tFields
.
end
())
{
char
file
[
256
];
char
file
[
256
];
sprintf
(
file
,
"expansions/pics/field/%d.png"
,
code
);
sprintf
(
file
,
"expansions/pics/field/%d.png"
,
code
);
irr
::
video
::
ITexture
*
img
=
driver
->
getTexture
(
file
);
irr
::
video
::
ITexture
*
img
=
GetTextureFromFile
(
file
,
512
,
512
);
if
(
img
==
NULL
)
{
if
(
img
==
NULL
)
{
sprintf
(
file
,
"expansions/pics/field/%d.jpg"
,
code
);
sprintf
(
file
,
"expansions/pics/field/%d.jpg"
,
code
);
img
=
driver
->
getTexture
(
file
);
img
=
GetTextureFromFile
(
file
,
512
,
512
);
}
}
if
(
img
==
NULL
)
{
if
(
img
==
NULL
)
{
sprintf
(
file
,
"pics/field/%d.png"
,
code
);
sprintf
(
file
,
"pics/field/%d.png"
,
code
);
img
=
driver
->
getTexture
(
file
);
img
=
GetTextureFromFile
(
file
,
512
,
512
);
}
}
if
(
img
==
NULL
)
{
if
(
img
==
NULL
)
{
sprintf
(
file
,
"pics/field/%d.jpg"
,
code
);
sprintf
(
file
,
"pics/field/%d.jpg"
,
code
);
img
=
driver
->
getTexture
(
file
);
img
=
GetTextureFromFile
(
file
,
512
,
512
);
if
(
img
==
NULL
)
{
if
(
img
==
NULL
)
{
tFields
[
code
]
=
NULL
;
tFields
[
code
]
=
NULL
;
return
NULL
;
return
NULL
;
...
...
gframe/image_manager.h
View file @
eda9633d
...
@@ -13,6 +13,7 @@ public:
...
@@ -13,6 +13,7 @@ public:
void
SetDevice
(
irr
::
IrrlichtDevice
*
dev
);
void
SetDevice
(
irr
::
IrrlichtDevice
*
dev
);
void
ClearTexture
();
void
ClearTexture
();
void
RemoveTexture
(
int
code
);
void
RemoveTexture
(
int
code
);
irr
::
video
::
ITexture
*
GetTextureFromFile
(
char
*
file
,
s32
width
,
s32
height
);
irr
::
video
::
ITexture
*
GetTexture
(
int
code
);
irr
::
video
::
ITexture
*
GetTexture
(
int
code
);
irr
::
video
::
ITexture
*
GetTextureThumb
(
int
code
);
irr
::
video
::
ITexture
*
GetTextureThumb
(
int
code
);
irr
::
video
::
ITexture
*
GetTextureField
(
int
code
);
irr
::
video
::
ITexture
*
GetTextureField
(
int
code
);
...
...
gframe/menu_handler.cpp
View file @
eda9633d
...
@@ -302,11 +302,11 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
...
@@ -302,11 +302,11 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
myswprintf
(
infobuf
,
L"%d/%d/%d %02d:%02d:%02d
\n
"
,
st
->
tm_year
+
1900
,
st
->
tm_mon
+
1
,
st
->
tm_mday
,
st
->
tm_hour
,
st
->
tm_min
,
st
->
tm_sec
);
myswprintf
(
infobuf
,
L"%d/%d/%d %02d:%02d:%02d
\n
"
,
st
->
tm_year
+
1900
,
st
->
tm_mon
+
1
,
st
->
tm_mday
,
st
->
tm_hour
,
st
->
tm_min
,
st
->
tm_sec
);
repinfo
.
append
(
infobuf
);
repinfo
.
append
(
infobuf
);
wchar_t
namebuf
[
4
][
20
];
wchar_t
namebuf
[
4
][
20
];
BufferIO
::
CopyWStr
((
unsigned
short
*
)
&
ReplayMode
::
cur_replay
.
replay_data
[
0
],
namebuf
[
0
],
20
);
ReplayMode
::
cur_replay
.
ReadName
(
namebuf
[
0
]
);
BufferIO
::
CopyWStr
((
unsigned
short
*
)
&
ReplayMode
::
cur_replay
.
replay_data
[
40
],
namebuf
[
1
],
20
);
ReplayMode
::
cur_replay
.
ReadName
(
namebuf
[
1
]
);
if
(
ReplayMode
::
cur_replay
.
pheader
.
flag
&
REPLAY_TAG
)
{
if
(
ReplayMode
::
cur_replay
.
pheader
.
flag
&
REPLAY_TAG
)
{
BufferIO
::
CopyWStr
((
unsigned
short
*
)
&
ReplayMode
::
cur_replay
.
replay_data
[
80
],
namebuf
[
2
],
20
);
ReplayMode
::
cur_replay
.
ReadName
(
namebuf
[
2
]
);
BufferIO
::
CopyWStr
((
unsigned
short
*
)
&
ReplayMode
::
cur_replay
.
replay_data
[
120
],
namebuf
[
3
],
20
);
ReplayMode
::
cur_replay
.
ReadName
(
namebuf
[
3
]
);
}
}
if
(
ReplayMode
::
cur_replay
.
pheader
.
flag
&
REPLAY_TAG
)
if
(
ReplayMode
::
cur_replay
.
pheader
.
flag
&
REPLAY_TAG
)
myswprintf
(
infobuf
,
L"%ls
\n
%ls
\n
===VS===
\n
%ls
\n
%ls
\n
"
,
namebuf
[
0
],
namebuf
[
1
],
namebuf
[
2
],
namebuf
[
3
]);
myswprintf
(
infobuf
,
L"%ls
\n
%ls
\n
===VS===
\n
%ls
\n
%ls
\n
"
,
namebuf
[
0
],
namebuf
[
1
],
namebuf
[
2
],
namebuf
[
3
]);
...
...
gframe/replay.cpp
View file @
eda9633d
...
@@ -202,6 +202,13 @@ bool Replay::ReadNextResponse(unsigned char resp[64]) {
...
@@ -202,6 +202,13 @@ bool Replay::ReadNextResponse(unsigned char resp[64]) {
pdata
+=
len
;
pdata
+=
len
;
return
true
;
return
true
;
}
}
void
Replay
::
ReadName
(
wchar_t
*
data
)
{
if
(
!
is_replaying
)
return
;
unsigned
short
buffer
[
20
];
ReadData
(
buffer
,
40
);
BufferIO
::
CopyWStr
(
buffer
,
data
,
20
);
}
void
Replay
::
ReadData
(
void
*
data
,
unsigned
int
length
)
{
void
Replay
::
ReadData
(
void
*
data
,
unsigned
int
length
)
{
if
(
!
is_replaying
)
if
(
!
is_replaying
)
return
;
return
;
...
...
gframe/replay.h
View file @
eda9633d
...
@@ -36,6 +36,7 @@ public:
...
@@ -36,6 +36,7 @@ public:
bool
OpenReplay
(
const
wchar_t
*
name
);
bool
OpenReplay
(
const
wchar_t
*
name
);
static
bool
CheckReplay
(
const
wchar_t
*
name
);
static
bool
CheckReplay
(
const
wchar_t
*
name
);
bool
ReadNextResponse
(
unsigned
char
resp
[
64
]);
bool
ReadNextResponse
(
unsigned
char
resp
[
64
]);
void
ReadName
(
wchar_t
*
data
);
void
ReadHeader
(
ReplayHeader
&
header
);
void
ReadHeader
(
ReplayHeader
&
header
);
void
ReadData
(
void
*
data
,
unsigned
int
length
);
void
ReadData
(
void
*
data
,
unsigned
int
length
);
int
ReadInt32
();
int
ReadInt32
();
...
...
gframe/replay_mode.cpp
View file @
eda9633d
...
@@ -61,16 +61,16 @@ int ReplayMode::ReplayThread(void* param) {
...
@@ -61,16 +61,16 @@ int ReplayMode::ReplayThread(void* param) {
int
seed
=
rh
.
seed
;
int
seed
=
rh
.
seed
;
rnd
.
reset
(
seed
);
rnd
.
reset
(
seed
);
if
(
rh
.
flag
&
REPLAY_TAG
)
{
if
(
rh
.
flag
&
REPLAY_TAG
)
{
cur_replay
.
Read
Data
(
mainGame
->
dInfo
.
hostname
,
40
);
cur_replay
.
Read
Name
(
mainGame
->
dInfo
.
hostname
);
cur_replay
.
Read
Data
(
mainGame
->
dInfo
.
hostname_tag
,
40
);
cur_replay
.
Read
Name
(
mainGame
->
dInfo
.
hostname_tag
);
cur_replay
.
Read
Data
(
mainGame
->
dInfo
.
clientname_tag
,
40
);
cur_replay
.
Read
Name
(
mainGame
->
dInfo
.
clientname_tag
);
cur_replay
.
Read
Data
(
mainGame
->
dInfo
.
clientname
,
40
);
cur_replay
.
Read
Name
(
mainGame
->
dInfo
.
clientname
);
mainGame
->
dInfo
.
isTag
=
true
;
mainGame
->
dInfo
.
isTag
=
true
;
mainGame
->
dInfo
.
tag_player
[
0
]
=
false
;
mainGame
->
dInfo
.
tag_player
[
0
]
=
false
;
mainGame
->
dInfo
.
tag_player
[
1
]
=
false
;
mainGame
->
dInfo
.
tag_player
[
1
]
=
false
;
}
else
{
}
else
{
cur_replay
.
Read
Data
(
mainGame
->
dInfo
.
hostname
,
40
);
cur_replay
.
Read
Name
(
mainGame
->
dInfo
.
hostname
);
cur_replay
.
Read
Data
(
mainGame
->
dInfo
.
clientname
,
40
);
cur_replay
.
Read
Name
(
mainGame
->
dInfo
.
clientname
);
}
}
set_script_reader
(
default_script_reader
);
set_script_reader
(
default_script_reader
);
set_card_reader
((
card_reader
)
DataManager
::
CardReader
);
set_card_reader
((
card_reader
)
DataManager
::
CardReader
);
...
@@ -205,16 +205,16 @@ void ReplayMode::Restart(bool refresh) {
...
@@ -205,16 +205,16 @@ void ReplayMode::Restart(bool refresh) {
int
seed
=
rh
.
seed
;
int
seed
=
rh
.
seed
;
rnd
.
reset
(
seed
);
rnd
.
reset
(
seed
);
if
(
rh
.
flag
&
REPLAY_TAG
)
{
if
(
rh
.
flag
&
REPLAY_TAG
)
{
cur_replay
.
Read
Data
(
mainGame
->
dInfo
.
hostname
,
40
);
cur_replay
.
Read
Name
(
mainGame
->
dInfo
.
hostname
);
cur_replay
.
Read
Data
(
mainGame
->
dInfo
.
hostname_tag
,
40
);
cur_replay
.
Read
Name
(
mainGame
->
dInfo
.
hostname_tag
);
cur_replay
.
Read
Data
(
mainGame
->
dInfo
.
clientname_tag
,
40
);
cur_replay
.
Read
Name
(
mainGame
->
dInfo
.
clientname_tag
);
cur_replay
.
Read
Data
(
mainGame
->
dInfo
.
clientname
,
40
);
cur_replay
.
Read
Name
(
mainGame
->
dInfo
.
clientname
);
mainGame
->
dInfo
.
isTag
=
true
;
mainGame
->
dInfo
.
isTag
=
true
;
mainGame
->
dInfo
.
tag_player
[
0
]
=
false
;
mainGame
->
dInfo
.
tag_player
[
0
]
=
false
;
mainGame
->
dInfo
.
tag_player
[
1
]
=
false
;
mainGame
->
dInfo
.
tag_player
[
1
]
=
false
;
}
else
{
}
else
{
cur_replay
.
Read
Data
(
mainGame
->
dInfo
.
hostname
,
40
);
cur_replay
.
Read
Name
(
mainGame
->
dInfo
.
hostname
);
cur_replay
.
Read
Data
(
mainGame
->
dInfo
.
clientname
,
40
);
cur_replay
.
Read
Name
(
mainGame
->
dInfo
.
clientname
);
}
}
//set_card_reader((card_reader)DataManager::CardReader);
//set_card_reader((card_reader)DataManager::CardReader);
//set_message_handler((message_handler)MessageHandler);
//set_message_handler((message_handler)MessageHandler);
...
...
strings.conf
View file @
eda9633d
...
@@ -584,6 +584,7 @@
...
@@ -584,6 +584,7 @@
!
setname
0
x3b
真红眼 レッドアイズ
!
setname
0
x3b
真红眼 レッドアイズ
!
setname
0
x3c
爬虫妖 レプティレス
!
setname
0
x3c
爬虫妖 レプティレス
!
setname
0
x3d
六武众 六武衆
!
setname
0
x3d
六武众 六武衆
!
setname
0
x103d
影六武众 影六武衆
!
setname
0
x3e
异虫 ワーム
!
setname
0
x3e
异虫 ワーム
!
setname
0
x3f
救世 セイヴァー
!
setname
0
x3f
救世 セイヴァー
!
setname
0
x40
被封印 封印されし
!
setname
0
x40
被封印 封印されし
...
@@ -810,8 +811,8 @@
...
@@ -810,8 +811,8 @@
#!setname 0xec 魔界 魔界
#!setname 0xec 魔界 魔界
!
setname
0
x10ec
魔界剧团 魔界劇団
!
setname
0
x10ec
魔界剧团 魔界劇団
!
setname
0
x20ec
魔界台本 魔界台本
!
setname
0
x20ec
魔界台本 魔界台本
!
setname
0
xed
地
底恐魔
Subterror
!
setname
0
xed
地
中族 サブテラー
!
setname
0
x10ed
地
底恐魔 巨魔
Subterror
Behemoth
!
setname
0
x10ed
地
中族邪界 サブテラーマリス
!
setname
0
xee
秘旋谍
SPYRAL
!
setname
0
xee
秘旋谍
SPYRAL
!
setname
0
x10ee
秘旋谍装备
SPYRAL
GEAR
!
setname
0
x10ee
秘旋谍装备
SPYRAL
GEAR
!
setname
0
x20ee
秘旋谍任务
SPYRAL
MISSION
!
setname
0
x20ee
秘旋谍任务
SPYRAL
MISSION
...
@@ -843,5 +844,7 @@
...
@@ -843,5 +844,7 @@
!
setname
0
x103
幻变骚灵 オルターガイスト
!
setname
0
x103
幻变骚灵 オルターガイスト
!
setname
0
x104
机怪虫 クローラー
!
setname
0
x104
机怪虫 クローラー
!
setname
0
x105
玄化 メタファイズ
!
setname
0
x105
玄化 メタファイズ
!
setname
0
x106
复仇死灵
Vendread
!
setname
0
x106
复仇死者 ヴェンデット
!
setname
0
x107
F
.
A
.
!
setname
0
x107
方程式运动员
F
.
A
.
!
setname
0
x108
魔弹 魔弾
!
setname
0
x109
天气 天気
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