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
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
Commits
2e407cc7
Commit
2e407cc7
authored
Mar 03, 2026
by
mercury233
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fh' into patch-irr-clipboard
parents
487f04d5
e69da396
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
108 additions
and
70 deletions
+108
-70
gframe/CGUIImageButton.cpp
gframe/CGUIImageButton.cpp
+1
-1
gframe/CGUITTFont.cpp
gframe/CGUITTFont.cpp
+2
-1
gframe/CGUITTFont.h
gframe/CGUITTFont.h
+1
-1
gframe/bufferio.h
gframe/bufferio.h
+2
-3
gframe/client_field.cpp
gframe/client_field.cpp
+3
-3
gframe/data_manager.cpp
gframe/data_manager.cpp
+23
-9
gframe/deck.h
gframe/deck.h
+29
-0
gframe/deck_con.cpp
gframe/deck_con.cpp
+2
-0
gframe/deck_manager.cpp
gframe/deck_manager.cpp
+0
-1
gframe/deck_manager.h
gframe/deck_manager.h
+1
-23
gframe/duelclient.h
gframe/duelclient.h
+1
-1
gframe/event_handler.cpp
gframe/event_handler.cpp
+2
-2
gframe/image_manager.cpp
gframe/image_manager.cpp
+6
-3
gframe/irrUString.h
gframe/irrUString.h
+1
-1
gframe/menu_handler.cpp
gframe/menu_handler.cpp
+3
-1
gframe/myfilesystem.h
gframe/myfilesystem.h
+10
-3
gframe/netserver.cpp
gframe/netserver.cpp
+1
-2
gframe/netserver.h
gframe/netserver.h
+1
-0
gframe/replay.cpp
gframe/replay.cpp
+9
-0
gframe/replay.h
gframe/replay.h
+2
-1
gframe/single_duel.cpp
gframe/single_duel.cpp
+2
-6
gframe/single_duel.h
gframe/single_duel.h
+2
-2
gframe/single_mode.cpp
gframe/single_mode.cpp
+0
-1
gframe/sound_manager.cpp
gframe/sound_manager.cpp
+1
-1
gframe/tag_duel.cpp
gframe/tag_duel.cpp
+1
-2
gframe/tag_duel.h
gframe/tag_duel.h
+2
-2
No files found.
gframe/CGUIImageButton.cpp
View file @
2e407cc7
...
...
@@ -102,7 +102,7 @@ void Draw2DImageQuad(video::IVideoDriver* driver, video::ITexture* image, core::
driver
->
setTransform
(
irr
::
video
::
ETS_VIEW
,
oldViewMat
);
}
CGUIImageButton
*
CGUIImageButton
::
addImageButton
(
IGUIEnvironment
*
env
,
const
core
::
rect
<
s32
>&
rectangle
,
IGUIElement
*
parent
,
s32
id
)
{
CGUIImageButton
*
button
=
new
CGUIImageButton
(
env
,
parent
?
parent
:
0
,
id
,
rectangle
);
CGUIImageButton
*
button
=
new
CGUIImageButton
(
env
,
parent
,
id
,
rectangle
);
button
->
drop
();
return
button
;
}
...
...
gframe/CGUITTFont.cpp
View file @
2e407cc7
...
...
@@ -322,7 +322,7 @@ bool CGUITTFont::load(const io::path& filename, const u32 size, const bool antia
tt_face
=
face
->
face
;
// Store font metrics.
FT_Set_Pixel_Sizes
(
tt_face
,
size
,
0
);
FT_Set_Pixel_Sizes
(
tt_face
,
0
,
size
);
font_metrics
=
tt_face
->
size
->
metrics
;
// Allocate our glyphs.
...
...
@@ -834,6 +834,7 @@ video::IImage* CGUITTFont::createTextureFromChar(const uchar32_t& ch) {
core
::
dimension2du
glyph_size
(
glyph
.
source_rect
.
getSize
());
video
::
IImage
*
image
=
Driver
->
createImage
(
format
,
glyph_size
);
pageholder
->
copyTo
(
image
,
irr
::
core
::
vector2di
(
0
,
0
),
glyph
.
source_rect
);
pageholder
->
drop
();
tex
->
unlock
();
return
image
;
...
...
gframe/CGUITTFont.h
View file @
2e407cc7
...
...
@@ -351,7 +351,7 @@ private:
load_flags
=
FT_LOAD_DEFAULT
|
FT_LOAD_RENDER
;
if
(
!
useHinting
())
load_flags
|=
FT_LOAD_NO_HINTING
;
if
(
!
useAutoHinting
())
load_flags
|=
FT_LOAD_NO_AUTOHINT
;
if
(
useMonochrome
())
load_flags
|=
FT_LOAD_MONOCHROME
|
FT_LOAD_TARGET_MONO
|
FT_RENDER_MODE_MONO
;
if
(
useMonochrome
())
load_flags
|=
FT_LOAD_MONOCHROME
|
FT_LOAD_TARGET_MONO
;
else
load_flags
|=
FT_LOAD_TARGET_NORMAL
;
}
u32
getWidthFromCharacter
(
wchar_t
c
)
const
;
...
...
gframe/bufferio.h
View file @
2e407cc7
...
...
@@ -22,9 +22,8 @@ public:
}
static
void
VectorWriteBlock
(
std
::
vector
<
unsigned
char
>&
buffer
,
const
void
*
src
,
size_t
size
)
{
const
auto
len
=
buffer
.
size
();
buffer
.
resize
(
len
+
size
);
std
::
memcpy
(
buffer
.
data
()
+
len
,
src
,
size
);
auto
*
bytes
=
static_cast
<
const
unsigned
char
*>
(
src
);
buffer
.
insert
(
buffer
.
end
(),
bytes
,
bytes
+
size
);
}
template
<
typename
T
>
static
void
VectorWrite
(
std
::
vector
<
unsigned
char
>&
buffer
,
const
T
&
value
)
{
...
...
gframe/client_field.cpp
View file @
2e407cc7
...
...
@@ -1392,11 +1392,11 @@ bool ClientField::check_sum_trib(std::set<ClientCard*>::const_iterator index, st
return
false
;
int
l1
,
l2
;
get_sum_params
((
*
index
)
->
opParam
,
l1
,
l2
);
if
((
acc
+
l1
>=
select_min
&&
acc
+
l1
<=
select_max
)
||
(
acc
+
l2
>=
select_min
&&
acc
+
l2
<=
select_max
))
if
((
acc
+
l1
>=
select_min
&&
acc
+
l1
<=
select_max
)
||
(
l2
>
0
&&
acc
+
l2
>=
select_min
&&
acc
+
l2
<=
select_max
))
return
true
;
++
index
;
return
check_sum_trib
(
index
,
end
,
acc
+
l1
)
||
check_sum_trib
(
index
,
end
,
acc
+
l2
)
||
(
l2
>
0
&&
check_sum_trib
(
index
,
end
,
acc
+
l2
)
)
||
check_sum_trib
(
index
,
end
,
acc
);
}
template
<
class
T
>
...
...
@@ -1440,7 +1440,7 @@ static bool is_declarable(const T& cd, const std::vector<unsigned int>& opcode)
stack
.
pop
();
int
lhs
=
stack
.
top
();
stack
.
pop
();
stack
.
push
(
lhs
/
rhs
);
stack
.
push
(
rhs
!=
0
?
lhs
/
rhs
:
0
);
}
break
;
}
...
...
gframe/data_manager.cpp
View file @
2e407cc7
...
...
@@ -242,16 +242,30 @@ const wchar_t* DataManager::GetSetName(uint32_t code) const {
std
::
vector
<
uint32_t
>
DataManager
::
GetSetCodes
(
std
::
wstring
setname
)
const
{
std
::
vector
<
uint32_t
>
matchingCodes
;
for
(
auto
csit
=
_setnameStrings
.
begin
();
csit
!=
_setnameStrings
.
end
();
++
csit
)
{
auto
xpos
=
csit
->
second
.
find_first_of
(
L'|'
);
//setname|another setname or extra info
if
(
setname
.
size
()
<
2
)
{
if
(
csit
->
second
.
compare
(
0
,
xpos
,
setname
)
==
0
||
csit
->
second
.
compare
(
xpos
+
1
,
csit
->
second
.
length
(),
setname
)
==
0
)
matchingCodes
.
push_back
(
csit
->
first
);
}
else
{
if
(
csit
->
second
.
substr
(
0
,
xpos
).
find
(
setname
)
!=
std
::
wstring
::
npos
||
csit
->
second
.
substr
(
xpos
+
1
).
find
(
setname
)
!=
std
::
wstring
::
npos
)
{
matchingCodes
.
push_back
(
csit
->
first
);
const
std
::
wstring
&
setnameString
=
csit
->
second
;
size_t
start
=
0
;
while
(
start
<
setnameString
.
size
())
{
// handle "setname|another setname"
auto
pos
=
setnameString
.
find
(
L'|'
,
start
);
std
::
wstring
token
;
if
(
pos
==
std
::
wstring
::
npos
)
token
=
setnameString
.
substr
(
start
);
else
token
=
setnameString
.
substr
(
start
,
pos
-
start
);
if
(
setname
.
size
()
<
2
)
{
// exact match for short set names to avoid too many results
if
(
token
==
setname
)
{
matchingCodes
.
push_back
(
csit
->
first
);
break
;
}
}
else
{
if
(
token
.
find
(
setname
)
!=
std
::
wstring
::
npos
)
{
matchingCodes
.
push_back
(
csit
->
first
);
break
;
}
}
if
(
pos
==
std
::
wstring
::
npos
)
break
;
start
=
pos
+
1
;
}
}
return
matchingCodes
;
...
...
gframe/deck.h
0 → 100644
View file @
2e407cc7
#ifndef DECK_H
#define DECK_H
#include <vector>
#include <cstdint>
#include "data_manager.h"
namespace
ygo
{
struct
Deck
{
std
::
vector
<
code_pointer
>
main
;
std
::
vector
<
code_pointer
>
extra
;
std
::
vector
<
code_pointer
>
side
;
void
clear
()
{
main
.
clear
();
extra
.
clear
();
side
.
clear
();
}
};
struct
DeckArray
{
std
::
vector
<
uint32_t
>
main
;
std
::
vector
<
uint32_t
>
extra
;
std
::
vector
<
uint32_t
>
side
;
};
}
#endif // DECK_H
gframe/deck_con.cpp
View file @
2e407cc7
...
...
@@ -163,6 +163,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
return
true
;
break
;
}
break
;
}
case
irr
:
:
gui
::
EGET_BUTTON_CLICKED
:
{
soundManager
.
PlaySoundEffect
(
SOUND_BUTTON
);
...
...
@@ -1007,6 +1008,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
InstantSearch
();
break
;
}
break
;
}
case
irr
:
:
gui
::
EGET_LISTBOX_CHANGED
:
{
switch
(
id
)
{
...
...
gframe/deck_manager.cpp
View file @
2e407cc7
...
...
@@ -309,7 +309,6 @@ bool DeckManager::LoadCurrentDeck(const wchar_t* file, bool is_packlist) {
}
if
(
!
reader
)
return
false
;
std
::
memset
(
deckBuffer
,
0
,
sizeof
deckBuffer
);
int
size
=
reader
->
read
(
deckBuffer
,
sizeof
deckBuffer
);
reader
->
drop
();
if
(
size
>=
(
int
)
sizeof
deckBuffer
)
{
...
...
gframe/deck_manager.h
View file @
2e407cc7
...
...
@@ -4,7 +4,7 @@
#include <unordered_map>
#include <vector>
#include <sstream>
#include "d
ata_manager
.h"
#include "d
eck
.h"
namespace
ygo
{
...
...
@@ -28,28 +28,6 @@ struct LFList {
std
::
wstring
listName
;
std
::
unordered_map
<
uint32_t
,
int
>
content
;
};
struct
Deck
{
std
::
vector
<
code_pointer
>
main
;
std
::
vector
<
code_pointer
>
extra
;
std
::
vector
<
code_pointer
>
side
;
Deck
()
=
default
;
Deck
(
const
Deck
&
ndeck
)
{
main
=
ndeck
.
main
;
extra
=
ndeck
.
extra
;
side
=
ndeck
.
side
;
}
void
clear
()
{
main
.
clear
();
extra
.
clear
();
side
.
clear
();
}
};
struct
DeckArray
{
std
::
vector
<
uint32_t
>
main
;
std
::
vector
<
uint32_t
>
extra
;
std
::
vector
<
uint32_t
>
side
;
};
class
DeckManager
{
public:
...
...
gframe/duelclient.h
View file @
2e407cc7
...
...
@@ -5,7 +5,7 @@
#include <set>
#include <random>
#include "config.h"
#include "deck
_manager
.h"
#include "deck.h"
#include "network.h"
namespace
ygo
{
...
...
gframe/event_handler.cpp
View file @
2e407cc7
...
...
@@ -907,8 +907,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
}
else
{
if
(
select_continuous
)
myswprintf
(
formatBuffer
,
L"%ls"
,
dataManager
.
unknown_string
);
else
if
(
cant_check_grave
&&
selectable_cards
[
i
]
->
location
==
LOCATION_GRAVE
)
myswprintf
(
formatBuffer
,
L"%ls"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
]
->
location
,
0
));
else
if
(
cant_check_grave
&&
selectable_cards
[
i
+
pos
]
->
location
==
LOCATION_GRAVE
)
myswprintf
(
formatBuffer
,
L"%ls"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
+
pos
]
->
location
,
0
));
else
if
(
selectable_cards
[
i
+
pos
]
->
location
==
LOCATION_OVERLAY
)
myswprintf
(
formatBuffer
,
L"%ls[%d](%d)"
,
dataManager
.
FormatLocation
(
selectable_cards
[
i
+
pos
]
->
overlayTarget
),
selectable_cards
[
i
+
pos
]
->
overlayTarget
->
sequence
+
1
,
selectable_cards
[
i
+
pos
]
->
sequence
+
1
);
...
...
gframe/image_manager.cpp
View file @
2e407cc7
...
...
@@ -93,7 +93,8 @@ void ImageManager::ResizeTexture() {
irr
::
s32
bgWidth
=
1024
*
mainGame
->
xScale
;
irr
::
s32
bgHeight
=
640
*
mainGame
->
yScale
;
driver
->
removeTexture
(
tCover
[
0
]);
driver
->
removeTexture
(
tCover
[
1
]);
if
(
tCover
[
1
]
!=
tCover
[
0
])
driver
->
removeTexture
(
tCover
[
1
]);
tCover
[
0
]
=
GetTextureFromFile
(
"textures/cover.jpg"
,
imgWidth
,
imgHeight
);
tCover
[
1
]
=
GetTextureFromFile
(
"textures/cover2.jpg"
,
imgWidth
,
imgHeight
);
if
(
!
tCover
[
1
])
...
...
@@ -107,12 +108,14 @@ void ImageManager::ResizeTexture() {
tUnknownFit
=
GetTextureFromFile
(
"textures/unknown.jpg"
,
imgWidthFit
,
imgHeightFit
);
tUnknownThumb
=
GetTextureFromFile
(
"textures/unknown.jpg"
,
imgWidthThumb
,
imgHeightThumb
);
driver
->
removeTexture
(
tBackGround
);
if
(
tBackGround_menu
!=
tBackGround
)
driver
->
removeTexture
(
tBackGround_menu
);
if
(
tBackGround_deck
!=
tBackGround
)
driver
->
removeTexture
(
tBackGround_deck
);
tBackGround
=
GetTextureFromFile
(
"textures/bg.jpg"
,
bgWidth
,
bgHeight
);
driver
->
removeTexture
(
tBackGround_menu
);
tBackGround_menu
=
GetTextureFromFile
(
"textures/bg_menu.jpg"
,
bgWidth
,
bgHeight
);
if
(
!
tBackGround_menu
)
tBackGround_menu
=
tBackGround
;
driver
->
removeTexture
(
tBackGround_deck
);
tBackGround_deck
=
GetTextureFromFile
(
"textures/bg_deck.jpg"
,
bgWidth
,
bgHeight
);
if
(
!
tBackGround_deck
)
tBackGround_deck
=
tBackGround
;
...
...
gframe/irrUString.h
View file @
2e407cc7
...
...
@@ -197,7 +197,7 @@ public:
//! \return Myself.
_Iter
&
operator
-=
(
const
difference_type
v
)
{
if
(
v
==
0
)
return
*
this
;
if
(
v
>
0
)
return
operator
+=
(
v
*
-
1
);
if
(
v
<
0
)
return
operator
+=
(
-
v
);
if
(
pos
==
0
)
return
*
this
;
...
...
gframe/menu_handler.cpp
View file @
2e407cc7
...
...
@@ -311,7 +311,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
}
for
(
size_t
i
=
0
;
i
<
replay
.
decks
.
size
();
++
i
)
{
myswprintf
(
filename
,
L"./deck/%ls-%d %ls.ydk"
,
replay_filename
,
i
+
1
,
namebuf
[
i
]);
DeckManager
::
SaveDeckArray
(
replay
.
decks
[
i
]
,
filename
);
replay
.
SaveDeck
(
i
,
filename
);
}
mainGame
->
stACMessage
->
setText
(
dataManager
.
GetSysString
(
1335
));
mainGame
->
PopupElement
(
mainGame
->
wACMessage
,
20
);
...
...
@@ -356,6 +356,8 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
NetServer
::
StopServer
();
break
;
}
CloseHandle
(
pi
.
hThread
);
CloseHandle
(
pi
.
hProcess
);
#else
if
(
fork
()
==
0
)
{
usleep
(
100000
);
...
...
gframe/myfilesystem.h
View file @
2e407cc7
...
...
@@ -18,6 +18,7 @@
#define NOMINMAX
#include <Windows.h>
#include <shellapi.h>
class
FileSystem
{
public:
...
...
@@ -71,13 +72,18 @@ public:
}
static
bool
DeleteDir
(
const
wchar_t
*
wdir
)
{
wchar_t
pdir
[
256
];
size_t
len
=
std
::
wcslen
(
wdir
);
wchar_t
pdir
[
1024
+
1
]{};
if
(
len
>=
1024
)
return
false
;
BufferIO
::
CopyWideString
(
wdir
,
pdir
);
// pFrom must be double-null terminated for SHFileOperationW
// pdir[len] is already '\0' and pdir[len+1] is '\0' due to zero-init
SHFILEOPSTRUCTW
lpFileOp
{};
lpFileOp
.
hwnd
=
nullptr
;
lpFileOp
.
wFunc
=
FO_DELETE
;
lpFileOp
.
pFrom
=
pdir
;
lpFileOp
.
pTo
=
0
;
lpFileOp
.
pTo
=
nullptr
;
lpFileOp
.
fFlags
=
FOF_ALLOWUNDO
|
FOF_NOCONFIRMATION
|
FOF_NOERRORUI
|
FOF_SILENT
;
return
SHFileOperationW
(
&
lpFileOp
)
==
0
;
}
...
...
@@ -233,7 +239,8 @@ public:
int
len
=
std
::
snprintf
(
fname
,
sizeof
(
fname
),
"%s/%s"
,
path
,
dirp
->
d_name
);
if
(
len
<
0
||
len
>=
(
int
)(
sizeof
fname
))
continue
;
stat
(
fname
,
&
fileStat
);
if
(
stat
(
fname
,
&
fileStat
)
!=
0
)
continue
;
funit
.
filename
=
std
::
string
(
dirp
->
d_name
);
funit
.
is_dir
=
S_ISDIR
(
fileStat
.
st_mode
);
if
(
funit
.
is_dir
&&
(
std
::
strcmp
(
dirp
->
d_name
,
"."
)
==
0
||
std
::
strcmp
(
dirp
->
d_name
,
".."
)
==
0
))
...
...
gframe/netserver.cpp
View file @
2e407cc7
...
...
@@ -13,6 +13,7 @@ event* NetServer::broadcast_ev = 0;
evconnlistener
*
NetServer
::
listener
=
0
;
DuelMode
*
NetServer
::
duel_mode
=
0
;
unsigned
char
NetServer
::
net_server_write
[
SIZE_NETWORK_BUFFER
];
unsigned
char
NetServer
::
net_server_read
[
SIZE_NETWORK_BUFFER
];
size_t
NetServer
::
last_sent
=
0
;
bool
NetServer
::
StartServer
(
unsigned
short
port
)
{
...
...
@@ -126,7 +127,6 @@ void NetServer::ServerEchoRead(bufferevent *bev, void *ctx) {
int
len
=
evbuffer_get_length
(
input
);
if
(
len
<
2
)
return
;
unsigned
char
*
net_server_read
=
new
unsigned
char
[
SIZE_NETWORK_BUFFER
];
uint16_t
packet_len
=
0
;
while
(
len
>=
2
)
{
evbuffer_copyout
(
input
,
&
packet_len
,
sizeof
packet_len
);
...
...
@@ -137,7 +137,6 @@ void NetServer::ServerEchoRead(bufferevent *bev, void *ctx) {
HandleCTOSPacket
(
&
users
[
bev
],
&
net_server_read
[
2
],
read_len
-
2
);
len
-=
packet_len
+
2
;
}
delete
[]
net_server_read
;
}
void
NetServer
::
ServerEchoEvent
(
bufferevent
*
bev
,
short
events
,
void
*
ctx
)
{
if
(
events
&
(
BEV_EVENT_EOF
|
BEV_EVENT_ERROR
))
{
...
...
gframe/netserver.h
View file @
2e407cc7
...
...
@@ -16,6 +16,7 @@ private:
static
evconnlistener
*
listener
;
static
DuelMode
*
duel_mode
;
static
unsigned
char
net_server_write
[
SIZE_NETWORK_BUFFER
];
static
unsigned
char
net_server_read
[
SIZE_NETWORK_BUFFER
];
static
size_t
last_sent
;
public:
...
...
gframe/replay.cpp
View file @
2e407cc7
#include "config.h"
#include "replay.h"
#include "myfilesystem.h"
#include "deck_manager.h"
#include "lzma/LzmaLib.h"
namespace
ygo
{
...
...
@@ -220,6 +221,14 @@ void Replay::SkipInfo(){
bool
Replay
::
IsReplaying
()
const
{
return
is_replaying
;
}
bool
Replay
::
SaveDeck
(
size_t
index
,
const
wchar_t
*
filename
)
{
if
(
index
>=
decks
.
size
())
return
false
;
DeckArray
deck
=
decks
[
index
];
std
::
reverse
(
deck
.
main
.
begin
(),
deck
.
main
.
end
());
std
::
reverse
(
deck
.
extra
.
begin
(),
deck
.
extra
.
end
());
return
DeckManager
::
SaveDeckArray
(
deck
,
filename
);
}
bool
Replay
::
ReadInfo
()
{
int
player_count
=
(
pheader
.
base
.
flag
&
REPLAY_TAG
)
?
4
:
2
;
for
(
int
i
=
0
;
i
<
player_count
;
++
i
)
{
...
...
gframe/replay.h
View file @
2e407cc7
...
...
@@ -5,7 +5,7 @@
#include <vector>
#include <string>
#include "../ocgcore/ocgapi.h"
#include "deck
_manager
.h"
#include "deck.h"
namespace
ygo
{
...
...
@@ -96,6 +96,7 @@ public:
void
Reset
();
void
SkipInfo
();
bool
IsReplaying
()
const
;
bool
SaveDeck
(
size_t
index
,
const
wchar_t
*
filename
);
FILE
*
fp
{
nullptr
};
ExtendedReplayHeader
pheader
;
...
...
gframe/single_duel.cpp
View file @
2e407cc7
...
...
@@ -399,14 +399,10 @@ void SingleDuel::TPResult(DuelPlayer* dp, unsigned char tp) {
pplayer
[
0
]
=
players
[
0
];
pplayer
[
1
]
=
players
[
1
];
if
((
tp
&&
dp
->
type
==
1
)
||
(
!
tp
&&
dp
->
type
==
0
))
{
DuelPlayer
*
p
=
players
[
0
];
players
[
0
]
=
players
[
1
];
players
[
1
]
=
p
;
std
::
swap
(
players
[
0
],
players
[
1
]);
players
[
0
]
->
type
=
0
;
players
[
1
]
->
type
=
1
;
Deck
d
=
pdeck
[
0
];
pdeck
[
0
]
=
pdeck
[
1
];
pdeck
[
1
]
=
d
;
std
::
swap
(
pdeck
[
0
],
pdeck
[
1
]);
swapped
=
true
;
}
dp
->
state
=
CTOS_RESPONSE
;
...
...
gframe/single_duel.h
View file @
2e407cc7
...
...
@@ -3,7 +3,7 @@
#include <set>
#include "network.h"
#include "deck
_manager
.h"
#include "deck.h"
#include "replay.h"
namespace
ygo
{
...
...
@@ -17,7 +17,7 @@ public:
void
LeaveGame
(
DuelPlayer
*
dp
)
override
;
void
ToDuelist
(
DuelPlayer
*
dp
)
override
;
void
ToObserver
(
DuelPlayer
*
dp
)
override
;
void
PlayerReady
(
DuelPlayer
*
dp
,
bool
ready
)
override
;
void
PlayerReady
(
DuelPlayer
*
dp
,
bool
is_
ready
)
override
;
void
PlayerKick
(
DuelPlayer
*
dp
,
unsigned
char
pos
)
override
;
void
UpdateDeck
(
DuelPlayer
*
dp
,
unsigned
char
*
pdata
,
int
len
)
override
;
void
StartDuel
(
DuelPlayer
*
dp
)
override
;
...
...
gframe/single_mode.cpp
View file @
2e407cc7
...
...
@@ -247,7 +247,6 @@ bool SingleMode::SinglePlayAnalyze(unsigned char* msg, unsigned int len) {
case
MSG_SELECT_EFFECTYN
:
{
player
=
BufferIO
::
Read
<
uint8_t
>
(
pbuf
);
pbuf
+=
12
;
DuelClient
::
ClientAnalyze
(
offset
,
pbuf
-
offset
);
if
(
!
DuelClient
::
ClientAnalyze
(
offset
,
pbuf
-
offset
))
{
mainGame
->
singleSignal
.
Reset
();
mainGame
->
singleSignal
.
Wait
();
...
...
gframe/sound_manager.cpp
View file @
2e407cc7
...
...
@@ -257,7 +257,7 @@ bool SoundManager::IsPlayingMusic(wchar_t* music) {
if
(
music
)
{
return
!
mywcsncasecmp
(
currentPlayingMusic
,
music
,
1024
)
&&
ma_sound_is_playing
(
&
soundBGM
);
}
else
{
return
ma_sound_is_playing
(
&
soundBGM
);
return
currentPlayingMusic
[
0
]
&&
ma_sound_is_playing
(
&
soundBGM
);
}
#endif
#ifdef YGOPRO_USE_IRRKLANG
...
...
gframe/tag_duel.cpp
View file @
2e407cc7
...
...
@@ -143,7 +143,6 @@ void TagDuel::LeaveGame(DuelPlayer* dp) {
NetServer
::
SendPacketToPlayer
(
players
[
i
],
STOC_HS_PLAYER_CHANGE
,
scpc
);
for
(
auto
pit
=
observers
.
begin
();
pit
!=
observers
.
end
();
++
pit
)
NetServer
::
SendPacketToPlayer
(
*
pit
,
STOC_HS_PLAYER_CHANGE
,
scpc
);
NetServer
::
DisconnectPlayer
(
dp
);
}
else
if
(
duel_stage
!=
DUEL_STAGE_END
)
{
EndDuel
();
DuelEndProc
();
...
...
@@ -228,7 +227,7 @@ void TagDuel::PlayerReady(DuelPlayer* dp, bool is_ready) {
unsigned
int
deckerror
=
0
;
if
(
!
host_info
.
no_check_deck
)
{
if
(
deck_error
[
dp
->
type
])
{
deckerror
=
(
DECKERROR_UNKNOWNCARD
<<
28
)
+
deck_error
[
dp
->
type
];
deckerror
=
(
DECKERROR_UNKNOWNCARD
<<
28
)
|
deck_error
[
dp
->
type
];
}
else
{
deckerror
=
deckManager
.
CheckDeck
(
pdeck
[
dp
->
type
],
host_info
.
lflist
,
host_info
.
rule
);
}
...
...
gframe/tag_duel.h
View file @
2e407cc7
...
...
@@ -3,7 +3,7 @@
#include <set>
#include "network.h"
#include "deck
_manager
.h"
#include "deck.h"
#include "replay.h"
namespace
ygo
{
...
...
@@ -17,7 +17,7 @@ public:
void
LeaveGame
(
DuelPlayer
*
dp
)
override
;
void
ToDuelist
(
DuelPlayer
*
dp
)
override
;
void
ToObserver
(
DuelPlayer
*
dp
)
override
;
void
PlayerReady
(
DuelPlayer
*
dp
,
bool
ready
)
override
;
void
PlayerReady
(
DuelPlayer
*
dp
,
bool
is_
ready
)
override
;
void
PlayerKick
(
DuelPlayer
*
dp
,
unsigned
char
pos
)
override
;
void
UpdateDeck
(
DuelPlayer
*
dp
,
unsigned
char
*
pdata
,
int
len
)
override
;
void
StartDuel
(
DuelPlayer
*
dp
)
override
;
...
...
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