Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-core
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
nanahira
ygopro-core
Commits
99e817b3
Commit
99e817b3
authored
Oct 09, 2015
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use unordered_map/unordered_set instead of map/set
parent
4b2d3158
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
38 additions
and
46 deletions
+38
-46
card.cpp
card.cpp
+4
-5
card.h
card.h
+5
-4
duel.cpp
duel.cpp
+8
-10
duel.h
duel.h
+7
-6
field.h
field.h
+5
-8
libcard.cpp
libcard.cpp
+2
-4
libduel.cpp
libduel.cpp
+5
-5
operations.cpp
operations.cpp
+2
-4
No files found.
card.cpp
View file @
99e817b3
...
@@ -165,8 +165,7 @@ uint32 card::get_infos(byte* buf, int32 query_flag, int32 use_cache) {
...
@@ -165,8 +165,7 @@ uint32 card::get_infos(byte* buf, int32 query_flag, int32 use_cache) {
}
}
if
(
query_flag
&
QUERY_COUNTERS
)
{
if
(
query_flag
&
QUERY_COUNTERS
)
{
*
p
++
=
counters
.
size
();
*
p
++
=
counters
.
size
();
counter_map
::
iterator
cmit
;
for
(
auto
cmit
=
counters
.
begin
();
cmit
!=
counters
.
end
();
++
cmit
)
for
(
cmit
=
counters
.
begin
();
cmit
!=
counters
.
end
();
++
cmit
)
*
p
++
=
cmit
->
first
+
(
cmit
->
second
<<
16
);
*
p
++
=
cmit
->
first
+
(
cmit
->
second
<<
16
);
}
}
if
(
query_flag
&
QUERY_OWNER
)
if
(
query_flag
&
QUERY_OWNER
)
...
@@ -1408,7 +1407,7 @@ int32 card::add_counter(uint8 playerid, uint16 countertype, uint16 count) {
...
@@ -1408,7 +1407,7 @@ int32 card::add_counter(uint8 playerid, uint16 countertype, uint16 count) {
return
TRUE
;
return
TRUE
;
}
}
int32
card
::
remove_counter
(
uint16
countertype
,
uint16
count
)
{
int32
card
::
remove_counter
(
uint16
countertype
,
uint16
count
)
{
counter_map
::
iterator
cmit
=
counters
.
find
(
countertype
);
auto
cmit
=
counters
.
find
(
countertype
);
if
(
cmit
==
counters
.
end
())
if
(
cmit
==
counters
.
end
())
return
FALSE
;
return
FALSE
;
if
(
cmit
->
second
<=
count
)
if
(
cmit
->
second
<=
count
)
...
@@ -1434,7 +1433,7 @@ int32 card::is_can_add_counter(uint8 playerid, uint16 countertype, uint16 count)
...
@@ -1434,7 +1433,7 @@ int32 card::is_can_add_counter(uint8 playerid, uint16 countertype, uint16 count)
return
FALSE
;
return
FALSE
;
int32
limit
=
-
1
;
int32
limit
=
-
1
;
int32
cur
=
0
;
int32
cur
=
0
;
counter_map
::
iterator
cmit
=
counters
.
find
(
countertype
);
auto
cmit
=
counters
.
find
(
countertype
);
if
(
cmit
!=
counters
.
end
())
if
(
cmit
!=
counters
.
end
())
cur
=
cmit
->
second
;
cur
=
cmit
->
second
;
filter_effect
(
EFFECT_COUNTER_LIMIT
+
countertype
,
&
eset
);
filter_effect
(
EFFECT_COUNTER_LIMIT
+
countertype
,
&
eset
);
...
@@ -1445,7 +1444,7 @@ int32 card::is_can_add_counter(uint8 playerid, uint16 countertype, uint16 count)
...
@@ -1445,7 +1444,7 @@ int32 card::is_can_add_counter(uint8 playerid, uint16 countertype, uint16 count)
return
TRUE
;
return
TRUE
;
}
}
int32
card
::
get_counter
(
uint16
countertype
)
{
int32
card
::
get_counter
(
uint16
countertype
)
{
counter_map
::
iterator
cmit
=
counters
.
find
(
countertype
);
auto
cmit
=
counters
.
find
(
countertype
);
if
(
cmit
==
counters
.
end
())
if
(
cmit
==
counters
.
end
())
return
0
;
return
0
;
return
cmit
->
second
;
return
cmit
->
second
;
...
...
card.h
View file @
99e817b3
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
#include "effectset.h"
#include "effectset.h"
#include <set>
#include <set>
#include <map>
#include <map>
#include <unordered_map>
class
card
;
class
card
;
class
duel
;
class
duel
;
...
@@ -80,11 +81,11 @@ public:
...
@@ -80,11 +81,11 @@ public:
typedef
std
::
vector
<
card
*>
card_vector
;
typedef
std
::
vector
<
card
*>
card_vector
;
typedef
std
::
multimap
<
uint32
,
effect
*>
effect_container
;
typedef
std
::
multimap
<
uint32
,
effect
*>
effect_container
;
typedef
std
::
set
<
card
*
,
card_sort
>
card_set
;
typedef
std
::
set
<
card
*
,
card_sort
>
card_set
;
typedef
std
::
map
<
effect
*
,
effect_container
::
iterator
>
effect_indexer
;
typedef
std
::
unordered_
map
<
effect
*
,
effect_container
::
iterator
>
effect_indexer
;
typedef
std
::
map
<
effect
*
,
uint32
>
effect_relation
;
typedef
std
::
unordered_
map
<
effect
*
,
uint32
>
effect_relation
;
typedef
std
::
map
<
card
*
,
uint32
>
relation_map
;
typedef
std
::
unordered_
map
<
card
*
,
uint32
>
relation_map
;
typedef
std
::
map
<
uint16
,
uint16
>
counter_map
;
typedef
std
::
map
<
uint16
,
uint16
>
counter_map
;
typedef
std
::
map
<
uint16
,
card
*>
attacker_map
;
typedef
std
::
unordered_
map
<
uint16
,
card
*>
attacker_map
;
int32
scrtype
;
int32
scrtype
;
int32
ref_handle
;
int32
ref_handle
;
duel
*
pduel
;
duel
*
pduel
;
...
...
duel.cpp
View file @
99e817b3
...
@@ -21,21 +21,21 @@ duel::duel() {
...
@@ -21,21 +21,21 @@ duel::duel() {
clear_buffer
();
clear_buffer
();
}
}
duel
::~
duel
()
{
duel
::~
duel
()
{
for
(
std
::
set
<
card
*>::
iterator
cit
=
cards
.
begin
();
cit
!=
cards
.
end
();
++
cit
)
for
(
auto
cit
=
cards
.
begin
();
cit
!=
cards
.
end
();
++
cit
)
delete
*
cit
;
delete
*
cit
;
for
(
std
::
set
<
group
*>::
iterator
git
=
groups
.
begin
();
git
!=
groups
.
end
();
++
git
)
for
(
auto
git
=
groups
.
begin
();
git
!=
groups
.
end
();
++
git
)
delete
*
git
;
delete
*
git
;
for
(
std
::
set
<
effect
*>::
iterator
eit
=
effects
.
begin
();
eit
!=
effects
.
end
();
++
eit
)
for
(
auto
eit
=
effects
.
begin
();
eit
!=
effects
.
end
();
++
eit
)
delete
*
eit
;
delete
*
eit
;
delete
lua
;
delete
lua
;
delete
game_field
;
delete
game_field
;
}
}
void
duel
::
clear
()
{
void
duel
::
clear
()
{
for
(
std
::
set
<
card
*>::
iterator
cit
=
cards
.
begin
();
cit
!=
cards
.
end
();
++
cit
)
for
(
auto
cit
=
cards
.
begin
();
cit
!=
cards
.
end
();
++
cit
)
delete
*
cit
;
delete
*
cit
;
for
(
std
::
set
<
group
*>::
iterator
git
=
groups
.
begin
();
git
!=
groups
.
end
();
++
git
)
for
(
auto
git
=
groups
.
begin
();
git
!=
groups
.
end
();
++
git
)
delete
*
git
;
delete
*
git
;
for
(
std
::
set
<
effect
*>::
iterator
eit
=
effects
.
begin
();
eit
!=
effects
.
end
();
++
eit
)
for
(
auto
eit
=
effects
.
begin
();
eit
!=
effects
.
end
();
++
eit
)
delete
*
eit
;
delete
*
eit
;
delete
game_field
;
delete
game_field
;
cards
.
clear
();
cards
.
clear
();
...
@@ -98,8 +98,7 @@ int32 duel::read_buffer(byte* buf) {
...
@@ -98,8 +98,7 @@ int32 duel::read_buffer(byte* buf) {
return
bufferlen
;
return
bufferlen
;
}
}
void
duel
::
release_script_group
()
{
void
duel
::
release_script_group
()
{
std
::
set
<
group
*>::
iterator
sit
;
for
(
auto
sit
=
sgroups
.
begin
();
sit
!=
sgroups
.
end
();
++
sit
)
{
for
(
sit
=
sgroups
.
begin
();
sit
!=
sgroups
.
end
();
++
sit
)
{
group
*
pgroup
=
*
sit
;
group
*
pgroup
=
*
sit
;
if
(
pgroup
->
is_readonly
==
0
)
{
if
(
pgroup
->
is_readonly
==
0
)
{
lua
->
unregister_group
(
pgroup
);
lua
->
unregister_group
(
pgroup
);
...
@@ -110,8 +109,7 @@ void duel::release_script_group() {
...
@@ -110,8 +109,7 @@ void duel::release_script_group() {
sgroups
.
clear
();
sgroups
.
clear
();
}
}
void
duel
::
restore_assumes
()
{
void
duel
::
restore_assumes
()
{
std
::
set
<
card
*>::
iterator
sit
;
for
(
auto
sit
=
assumes
.
begin
();
sit
!=
assumes
.
end
();
++
sit
)
for
(
sit
=
assumes
.
begin
();
sit
!=
assumes
.
end
();
++
sit
)
(
*
sit
)
->
assume_type
=
0
;
(
*
sit
)
->
assume_type
=
0
;
assumes
.
clear
();
assumes
.
clear
();
}
}
...
...
duel.h
View file @
99e817b3
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
#include "common.h"
#include "common.h"
#include "mtrandom.h"
#include "mtrandom.h"
#include <set>
#include <set>
#include <unordered_set>
class
card
;
class
card
;
class
group
;
class
group
;
...
@@ -33,12 +34,12 @@ public:
...
@@ -33,12 +34,12 @@ public:
interpreter
*
lua
;
interpreter
*
lua
;
field
*
game_field
;
field
*
game_field
;
mtrandom
random
;
mtrandom
random
;
std
::
set
<
card
*>
cards
;
std
::
unordered_
set
<
card
*>
cards
;
std
::
set
<
card
*>
assumes
;
std
::
unordered_
set
<
card
*>
assumes
;
std
::
set
<
group
*>
groups
;
std
::
unordered_
set
<
group
*>
groups
;
std
::
set
<
group
*>
sgroups
;
std
::
unordered_
set
<
group
*>
sgroups
;
std
::
set
<
effect
*>
effects
;
std
::
unordered_
set
<
effect
*>
effects
;
std
::
set
<
effect
*>
uncopy
;
std
::
unordered_
set
<
effect
*>
uncopy
;
duel
();
duel
();
~
duel
();
~
duel
();
...
...
field.h
View file @
99e817b3
...
@@ -44,7 +44,7 @@ struct optarget {
...
@@ -44,7 +44,7 @@ struct optarget {
int32
op_param
;
int32
op_param
;
};
};
struct
chain
{
struct
chain
{
typedef
std
::
map
<
uint32
,
optarget
>
opmap
;
typedef
std
::
unordered_map
<
uint32
,
optarget
>
opmap
;
uint16
chain_id
;
uint16
chain_id
;
uint8
chain_count
;
uint8
chain_count
;
uint8
triggering_player
;
uint8
triggering_player
;
...
@@ -86,9 +86,9 @@ struct player_info {
...
@@ -86,9 +86,9 @@ struct player_info {
};
};
struct
field_effect
{
struct
field_effect
{
typedef
std
::
multimap
<
uint32
,
effect
*>
effect_container
;
typedef
std
::
multimap
<
uint32
,
effect
*>
effect_container
;
typedef
std
::
map
<
effect
*
,
effect_container
::
iterator
>
effect_indexer
;
typedef
std
::
unordered_
map
<
effect
*
,
effect_container
::
iterator
>
effect_indexer
;
typedef
std
::
map
<
effect
*
,
effect
*>
oath_effects
;
typedef
std
::
unordered_
map
<
effect
*
,
effect
*>
oath_effects
;
typedef
std
::
set
<
effect
*>
effect_collection
;
typedef
std
::
unordered_
set
<
effect
*>
effect_collection
;
effect_container
aura_effect
;
effect_container
aura_effect
;
effect_container
ignition_effect
;
effect_container
ignition_effect
;
...
@@ -106,7 +106,7 @@ struct field_effect {
...
@@ -106,7 +106,7 @@ struct field_effect {
effect_collection
spsummon_count_eff
;
effect_collection
spsummon_count_eff
;
std
::
list
<
card
*>
disable_check_list
;
std
::
list
<
card
*>
disable_check_list
;
std
::
set
<
card
*
,
card_sort
>
disable_check_set
;
std
::
unordered_set
<
card
*
>
disable_check_set
;
};
};
struct
field_info
{
struct
field_info
{
int32
field_id
;
int32
field_id
;
...
@@ -148,7 +148,6 @@ struct processor {
...
@@ -148,7 +148,6 @@ struct processor {
typedef
std
::
vector
<
chain
>
chain_array
;
typedef
std
::
vector
<
chain
>
chain_array
;
typedef
std
::
list
<
processor_unit
>
processor_list
;
typedef
std
::
list
<
processor_unit
>
processor_list
;
typedef
std
::
set
<
card
*
,
card_sort
>
card_set
;
typedef
std
::
set
<
card
*
,
card_sort
>
card_set
;
typedef
std
::
set
<
effect
*>
effect_collection
;
typedef
std
::
set
<
std
::
pair
<
effect
*
,
tevent
>
>
delayed_effect_collection
;
typedef
std
::
set
<
std
::
pair
<
effect
*
,
tevent
>
>
delayed_effect_collection
;
processor_list
units
;
processor_list
units
;
...
@@ -299,7 +298,6 @@ struct processor {
...
@@ -299,7 +298,6 @@ struct processor {
class
field
{
class
field
{
public:
public:
typedef
std
::
multimap
<
uint32
,
effect
*>
effect_container
;
typedef
std
::
multimap
<
uint32
,
effect
*>
effect_container
;
typedef
std
::
map
<
effect
*
,
effect_container
::
iterator
>
effect_indexer
;
typedef
std
::
set
<
card
*
,
card_sort
>
card_set
;
typedef
std
::
set
<
card
*
,
card_sort
>
card_set
;
typedef
std
::
vector
<
effect
*>
effect_vector
;
typedef
std
::
vector
<
effect
*>
effect_vector
;
typedef
std
::
vector
<
card
*>
card_vector
;
typedef
std
::
vector
<
card
*>
card_vector
;
...
@@ -309,7 +307,6 @@ public:
...
@@ -309,7 +307,6 @@ public:
typedef
std
::
map
<
effect
*
,
chain
>
instant_f_list
;
typedef
std
::
map
<
effect
*
,
chain
>
instant_f_list
;
typedef
std
::
vector
<
chain
>
chain_array
;
typedef
std
::
vector
<
chain
>
chain_array
;
typedef
std
::
list
<
processor_unit
>
processor_list
;
typedef
std
::
list
<
processor_unit
>
processor_list
;
typedef
std
::
map
<
effect
*
,
effect
*>
oath_effects
;
duel
*
pduel
;
duel
*
pduel
;
player_info
player
[
2
];
player_info
player
[
2
];
...
...
libcard.cpp
View file @
99e817b3
...
@@ -743,8 +743,7 @@ int32 scriptlib::card_get_attacked_group(lua_State *L) {
...
@@ -743,8 +743,7 @@ int32 scriptlib::card_get_attacked_group(lua_State *L) {
check_param
(
L
,
PARAM_TYPE_CARD
,
1
);
check_param
(
L
,
PARAM_TYPE_CARD
,
1
);
card
*
pcard
=
*
(
card
**
)
lua_touserdata
(
L
,
1
);
card
*
pcard
=
*
(
card
**
)
lua_touserdata
(
L
,
1
);
group
*
pgroup
=
pcard
->
pduel
->
new_group
();
group
*
pgroup
=
pcard
->
pduel
->
new_group
();
card
::
attacker_map
::
iterator
cit
;
for
(
auto
cit
=
pcard
->
attacked_cards
.
begin
();
cit
!=
pcard
->
attacked_cards
.
end
();
++
cit
)
{
for
(
cit
=
pcard
->
attacked_cards
.
begin
();
cit
!=
pcard
->
attacked_cards
.
end
();
++
cit
)
{
if
(
cit
->
second
)
if
(
cit
->
second
)
pgroup
->
container
.
insert
(
cit
->
second
);
pgroup
->
container
.
insert
(
cit
->
second
);
}
}
...
@@ -770,8 +769,7 @@ int32 scriptlib::card_get_battled_group(lua_State *L) {
...
@@ -770,8 +769,7 @@ int32 scriptlib::card_get_battled_group(lua_State *L) {
check_param
(
L
,
PARAM_TYPE_CARD
,
1
);
check_param
(
L
,
PARAM_TYPE_CARD
,
1
);
card
*
pcard
=
*
(
card
**
)
lua_touserdata
(
L
,
1
);
card
*
pcard
=
*
(
card
**
)
lua_touserdata
(
L
,
1
);
group
*
pgroup
=
pcard
->
pduel
->
new_group
();
group
*
pgroup
=
pcard
->
pduel
->
new_group
();
card
::
attacker_map
::
iterator
cit
;
for
(
auto
cit
=
pcard
->
battled_cards
.
begin
();
cit
!=
pcard
->
battled_cards
.
end
();
++
cit
)
{
for
(
cit
=
pcard
->
battled_cards
.
begin
();
cit
!=
pcard
->
battled_cards
.
end
();
++
cit
)
{
if
(
cit
->
second
)
if
(
cit
->
second
)
pgroup
->
container
.
insert
(
cit
->
second
);
pgroup
->
container
.
insert
(
cit
->
second
);
}
}
...
...
libduel.cpp
View file @
99e817b3
...
@@ -2328,8 +2328,8 @@ int32 scriptlib::duel_set_operation_info(lua_State *L) {
...
@@ -2328,8 +2328,8 @@ int32 scriptlib::duel_set_operation_info(lua_State *L) {
opt
.
op_player
=
playerid
;
opt
.
op_player
=
playerid
;
opt
.
op_param
=
param
;
opt
.
op_param
=
param
;
if
(
ct
==
0
&&
pduel
->
game_field
->
core
.
continuous_chain
.
size
())
{
if
(
ct
==
0
&&
pduel
->
game_field
->
core
.
continuous_chain
.
size
())
{
field
::
chain_list
::
reverse_iterator
clit
=
pduel
->
game_field
->
core
.
continuous_chain
.
rbegin
();
auto
clit
=
pduel
->
game_field
->
core
.
continuous_chain
.
rbegin
();
chain
::
opmap
::
iterator
omit
=
clit
->
opinfos
.
find
(
cate
);
auto
omit
=
clit
->
opinfos
.
find
(
cate
);
if
(
omit
!=
clit
->
opinfos
.
end
()
&&
omit
->
second
.
op_cards
)
if
(
omit
!=
clit
->
opinfos
.
end
()
&&
omit
->
second
.
op_cards
)
pduel
->
delete_group
(
omit
->
second
.
op_cards
);
pduel
->
delete_group
(
omit
->
second
.
op_cards
);
clit
->
opinfos
[
cate
]
=
opt
;
clit
->
opinfos
[
cate
]
=
opt
;
...
@@ -2337,14 +2337,14 @@ int32 scriptlib::duel_set_operation_info(lua_State *L) {
...
@@ -2337,14 +2337,14 @@ int32 scriptlib::duel_set_operation_info(lua_State *L) {
if
(
pduel
->
game_field
->
core
.
current_chain
.
size
()
==
0
)
if
(
pduel
->
game_field
->
core
.
current_chain
.
size
()
==
0
)
return
0
;
return
0
;
if
(
ct
<
1
||
ct
>
pduel
->
game_field
->
core
.
current_chain
.
size
())
{
if
(
ct
<
1
||
ct
>
pduel
->
game_field
->
core
.
current_chain
.
size
())
{
field
::
chain_array
::
reverse_iterator
cait
=
pduel
->
game_field
->
core
.
current_chain
.
rbegin
();
auto
cait
=
pduel
->
game_field
->
core
.
current_chain
.
rbegin
();
chain
::
opmap
::
iterator
omit
=
cait
->
opinfos
.
find
(
cate
);
auto
omit
=
cait
->
opinfos
.
find
(
cate
);
if
(
omit
!=
cait
->
opinfos
.
end
()
&&
omit
->
second
.
op_cards
)
if
(
omit
!=
cait
->
opinfos
.
end
()
&&
omit
->
second
.
op_cards
)
pduel
->
delete_group
(
omit
->
second
.
op_cards
);
pduel
->
delete_group
(
omit
->
second
.
op_cards
);
cait
->
opinfos
[
cate
]
=
opt
;
cait
->
opinfos
[
cate
]
=
opt
;
}
else
{
}
else
{
chain
*
ch
=
&
pduel
->
game_field
->
core
.
current_chain
[
ct
-
1
];
chain
*
ch
=
&
pduel
->
game_field
->
core
.
current_chain
[
ct
-
1
];
chain
::
opmap
::
iterator
omit
=
ch
->
opinfos
.
find
(
cate
);
auto
omit
=
ch
->
opinfos
.
find
(
cate
);
if
(
omit
!=
ch
->
opinfos
.
end
()
&&
omit
->
second
.
op_cards
)
if
(
omit
!=
ch
->
opinfos
.
end
()
&&
omit
->
second
.
op_cards
)
pduel
->
delete_group
(
omit
->
second
.
op_cards
);
pduel
->
delete_group
(
omit
->
second
.
op_cards
);
ch
->
opinfos
[
cate
]
=
opt
;
ch
->
opinfos
[
cate
]
=
opt
;
...
...
operations.cpp
View file @
99e817b3
...
@@ -3925,8 +3925,7 @@ int32 field::operation_replace(uint16 step, effect * replace_effect, group * tar
...
@@ -3925,8 +3925,7 @@ int32 field::operation_replace(uint16 step, effect * replace_effect, group * tar
case
3
:
{
case
3
:
{
if
(
core
.
continuous_chain
.
rbegin
()
->
target_cards
)
if
(
core
.
continuous_chain
.
rbegin
()
->
target_cards
)
pduel
->
delete_group
(
core
.
continuous_chain
.
rbegin
()
->
target_cards
);
pduel
->
delete_group
(
core
.
continuous_chain
.
rbegin
()
->
target_cards
);
chain
::
opmap
::
iterator
oit
;
for
(
auto
oit
=
core
.
continuous_chain
.
rbegin
()
->
opinfos
.
begin
();
oit
!=
core
.
continuous_chain
.
rbegin
()
->
opinfos
.
end
();
++
oit
)
{
for
(
oit
=
core
.
continuous_chain
.
rbegin
()
->
opinfos
.
begin
();
oit
!=
core
.
continuous_chain
.
rbegin
()
->
opinfos
.
end
();
++
oit
)
{
if
(
oit
->
second
.
op_cards
)
if
(
oit
->
second
.
op_cards
)
pduel
->
delete_group
(
oit
->
second
.
op_cards
);
pduel
->
delete_group
(
oit
->
second
.
op_cards
);
}
}
...
@@ -3995,8 +3994,7 @@ int32 field::operation_replace(uint16 step, effect * replace_effect, group * tar
...
@@ -3995,8 +3994,7 @@ int32 field::operation_replace(uint16 step, effect * replace_effect, group * tar
case
8
:
{
case
8
:
{
if
(
core
.
continuous_chain
.
rbegin
()
->
target_cards
)
if
(
core
.
continuous_chain
.
rbegin
()
->
target_cards
)
pduel
->
delete_group
(
core
.
continuous_chain
.
rbegin
()
->
target_cards
);
pduel
->
delete_group
(
core
.
continuous_chain
.
rbegin
()
->
target_cards
);
chain
::
opmap
::
iterator
oit
;
for
(
auto
oit
=
core
.
continuous_chain
.
rbegin
()
->
opinfos
.
begin
();
oit
!=
core
.
continuous_chain
.
rbegin
()
->
opinfos
.
end
();
++
oit
)
{
for
(
oit
=
core
.
continuous_chain
.
rbegin
()
->
opinfos
.
begin
();
oit
!=
core
.
continuous_chain
.
rbegin
()
->
opinfos
.
end
();
++
oit
)
{
if
(
oit
->
second
.
op_cards
)
if
(
oit
->
second
.
op_cards
)
pduel
->
delete_group
(
oit
->
second
.
op_cards
);
pduel
->
delete_group
(
oit
->
second
.
op_cards
);
}
}
...
...
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