Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
R
rd-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
苍蓝
rd-ygopro
Commits
6784a0ff
Commit
6784a0ff
authored
Dec 16, 2023
by
Chen Bill
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
TagDuel: use std vector
parent
32ac47c2
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
18 deletions
+23
-18
gframe/tag_duel.cpp
gframe/tag_duel.cpp
+23
-18
No files found.
gframe/tag_duel.cpp
View file @
6784a0ff
...
...
@@ -1563,11 +1563,12 @@ inline unsigned int GetPosition(unsigned char*& qbuf, int offset) {
return
info
>>
24
;
}
void
TagDuel
::
RefreshMzone
(
int
player
,
int
flag
,
int
use_cache
)
{
unsigned
char
query_buffer
[
0x4000
];
auto
qbuf
=
query_buffer
;
std
::
vector
<
unsigned
char
>
query_buffer
;
query_buffer
.
resize
(
SIZE_QUERY_BUFFER
);
auto
qbuf
=
query_buffer
.
data
();
auto
len
=
WriteUpdateData
(
player
,
LOCATION_MZONE
,
flag
,
qbuf
,
use_cache
);
int
pid
=
(
player
==
0
)
?
0
:
2
;
NetServer
::
SendBufferToPlayer
(
players
[
pid
],
STOC_GAME_MSG
,
query_buffer
,
len
+
3
);
NetServer
::
SendBufferToPlayer
(
players
[
pid
],
STOC_GAME_MSG
,
query_buffer
.
data
()
,
len
+
3
);
NetServer
::
ReSendToPlayer
(
players
[
pid
+
1
]);
int
qlen
=
0
;
while
(
qlen
<
len
)
{
...
...
@@ -1581,17 +1582,18 @@ void TagDuel::RefreshMzone(int player, int flag, int use_cache) {
qbuf
+=
clen
-
4
;
}
pid
=
2
-
pid
;
NetServer
::
SendBufferToPlayer
(
players
[
pid
],
STOC_GAME_MSG
,
query_buffer
,
len
+
3
);
NetServer
::
SendBufferToPlayer
(
players
[
pid
],
STOC_GAME_MSG
,
query_buffer
.
data
()
,
len
+
3
);
NetServer
::
ReSendToPlayer
(
players
[
pid
+
1
]);
for
(
auto
pit
=
observers
.
begin
();
pit
!=
observers
.
end
();
++
pit
)
NetServer
::
ReSendToPlayer
(
*
pit
);
}
void
TagDuel
::
RefreshSzone
(
int
player
,
int
flag
,
int
use_cache
)
{
unsigned
char
query_buffer
[
0x4000
];
auto
qbuf
=
query_buffer
;
std
::
vector
<
unsigned
char
>
query_buffer
;
query_buffer
.
resize
(
SIZE_QUERY_BUFFER
);
auto
qbuf
=
query_buffer
.
data
();
auto
len
=
WriteUpdateData
(
player
,
LOCATION_SZONE
,
flag
,
qbuf
,
use_cache
);
int
pid
=
(
player
==
0
)
?
0
:
2
;
NetServer
::
SendBufferToPlayer
(
players
[
pid
],
STOC_GAME_MSG
,
query_buffer
,
len
+
3
);
NetServer
::
SendBufferToPlayer
(
players
[
pid
],
STOC_GAME_MSG
,
query_buffer
.
data
()
,
len
+
3
);
NetServer
::
ReSendToPlayer
(
players
[
pid
+
1
]);
int
qlen
=
0
;
while
(
qlen
<
len
)
{
...
...
@@ -1605,16 +1607,17 @@ void TagDuel::RefreshSzone(int player, int flag, int use_cache) {
qbuf
+=
clen
-
4
;
}
pid
=
2
-
pid
;
NetServer
::
SendBufferToPlayer
(
players
[
pid
],
STOC_GAME_MSG
,
query_buffer
,
len
+
3
);
NetServer
::
SendBufferToPlayer
(
players
[
pid
],
STOC_GAME_MSG
,
query_buffer
.
data
()
,
len
+
3
);
NetServer
::
ReSendToPlayer
(
players
[
pid
+
1
]);
for
(
auto
pit
=
observers
.
begin
();
pit
!=
observers
.
end
();
++
pit
)
NetServer
::
ReSendToPlayer
(
*
pit
);
}
void
TagDuel
::
RefreshHand
(
int
player
,
int
flag
,
int
use_cache
)
{
unsigned
char
query_buffer
[
0x4000
];
auto
qbuf
=
query_buffer
;
std
::
vector
<
unsigned
char
>
query_buffer
;
query_buffer
.
resize
(
SIZE_QUERY_BUFFER
);
auto
qbuf
=
query_buffer
.
data
();
auto
len
=
WriteUpdateData
(
player
,
LOCATION_HAND
,
flag
,
qbuf
,
use_cache
);
NetServer
::
SendBufferToPlayer
(
cur_player
[
player
],
STOC_GAME_MSG
,
query_buffer
,
len
+
3
);
NetServer
::
SendBufferToPlayer
(
cur_player
[
player
],
STOC_GAME_MSG
,
query_buffer
.
data
()
,
len
+
3
);
int
qlen
=
0
;
while
(
qlen
<
len
)
{
int
slen
=
BufferIO
::
ReadInt32
(
qbuf
);
...
...
@@ -1628,15 +1631,16 @@ void TagDuel::RefreshHand(int player, int flag, int use_cache) {
}
for
(
int
i
=
0
;
i
<
4
;
++
i
)
if
(
players
[
i
]
!=
cur_player
[
player
])
NetServer
::
SendBufferToPlayer
(
players
[
i
],
STOC_GAME_MSG
,
query_buffer
,
len
+
3
);
NetServer
::
SendBufferToPlayer
(
players
[
i
],
STOC_GAME_MSG
,
query_buffer
.
data
()
,
len
+
3
);
for
(
auto
pit
=
observers
.
begin
();
pit
!=
observers
.
end
();
++
pit
)
NetServer
::
ReSendToPlayer
(
*
pit
);
}
void
TagDuel
::
RefreshGrave
(
int
player
,
int
flag
,
int
use_cache
)
{
unsigned
char
query_buffer
[
0x4000
];
auto
qbuf
=
query_buffer
;
std
::
vector
<
unsigned
char
>
query_buffer
;
query_buffer
.
resize
(
SIZE_QUERY_BUFFER
);
auto
qbuf
=
query_buffer
.
data
();
auto
len
=
WriteUpdateData
(
player
,
LOCATION_GRAVE
,
flag
,
qbuf
,
use_cache
);
NetServer
::
SendBufferToPlayer
(
players
[
0
],
STOC_GAME_MSG
,
query_buffer
,
len
+
3
);
NetServer
::
SendBufferToPlayer
(
players
[
0
],
STOC_GAME_MSG
,
query_buffer
.
data
()
,
len
+
3
);
NetServer
::
ReSendToPlayer
(
players
[
1
]);
NetServer
::
ReSendToPlayer
(
players
[
2
]);
NetServer
::
ReSendToPlayer
(
players
[
3
]);
...
...
@@ -1644,10 +1648,11 @@ void TagDuel::RefreshGrave(int player, int flag, int use_cache) {
NetServer
::
ReSendToPlayer
(
*
pit
);
}
void
TagDuel
::
RefreshExtra
(
int
player
,
int
flag
,
int
use_cache
)
{
unsigned
char
query_buffer
[
0x4000
];
auto
qbuf
=
query_buffer
;
std
::
vector
<
unsigned
char
>
query_buffer
;
query_buffer
.
resize
(
SIZE_QUERY_BUFFER
);
auto
qbuf
=
query_buffer
.
data
();
auto
len
=
WriteUpdateData
(
player
,
LOCATION_EXTRA
,
flag
,
qbuf
,
use_cache
);
NetServer
::
SendBufferToPlayer
(
cur_player
[
player
],
STOC_GAME_MSG
,
query_buffer
,
len
+
3
);
NetServer
::
SendBufferToPlayer
(
cur_player
[
player
],
STOC_GAME_MSG
,
query_buffer
.
data
()
,
len
+
3
);
}
void
TagDuel
::
RefreshSingle
(
int
player
,
int
location
,
int
sequence
,
int
flag
)
{
flag
|=
(
QUERY_CODE
|
QUERY_POSITION
);
...
...
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