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
4af271e2
Commit
4af271e2
authored
Aug 13, 2017
by
VanillaSalt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add a setter
parent
552b057f
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
35 additions
and
48 deletions
+35
-48
effect.cpp
effect.cpp
+6
-1
effect.h
effect.h
+3
-2
libeffect.cpp
libeffect.cpp
+1
-1
processor.cpp
processor.cpp
+25
-44
No files found.
effect.cpp
View file @
4af271e2
...
@@ -24,6 +24,7 @@ effect::effect(duel* pd) {
...
@@ -24,6 +24,7 @@ effect::effect(duel* pd) {
effect_owner
=
PLAYER_NONE
;
effect_owner
=
PLAYER_NONE
;
card_type
=
0
;
card_type
=
0
;
active_type
=
0
;
active_type
=
0
;
active_location
=
0
;
active_handler
=
0
;
active_handler
=
0
;
id
=
0
;
id
=
0
;
code
=
0
;
code
=
0
;
...
@@ -42,7 +43,6 @@ effect::effect(duel* pd) {
...
@@ -42,7 +43,6 @@ effect::effect(duel* pd) {
label_object
=
0
;
label_object
=
0
;
hint_timing
[
0
]
=
0
;
hint_timing
[
0
]
=
0
;
hint_timing
[
1
]
=
0
;
hint_timing
[
1
]
=
0
;
field_ref
=
0
;
status
=
0
;
status
=
0
;
condition
=
0
;
condition
=
0
;
cost
=
0
;
cost
=
0
;
...
@@ -718,3 +718,8 @@ int32 effect::in_range(const chain& ch) {
...
@@ -718,3 +718,8 @@ int32 effect::in_range(const chain& ch) {
return
handler
->
overlay_target
?
TRUE
:
FALSE
;
return
handler
->
overlay_target
?
TRUE
:
FALSE
;
return
range
&
ch
.
triggering_location
;
return
range
&
ch
.
triggering_location
;
}
}
void
effect
::
set_activate_location
()
{
card
*
phandler
=
get_handler
();
active_location
=
phandler
->
current
.
location
;
//active_sequence = phandler->current.sequence;
}
effect.h
View file @
4af271e2
...
@@ -46,13 +46,13 @@ public:
...
@@ -46,13 +46,13 @@ public:
uint32
reset_flag
;
uint32
reset_flag
;
uint32
count_code
;
uint32
count_code
;
uint32
category
;
uint32
category
;
uint32
label
;
uint32
hint_timing
[
2
];
uint32
hint_timing
[
2
];
uint32
card_type
;
uint32
card_type
;
uint32
active_type
;
uint32
active_type
;
uint32
active_location
;
card
*
active_handler
;
card
*
active_handler
;
uint16
field_ref
;
uint16
status
;
uint16
status
;
uint32
label
;
void
*
label_object
;
void
*
label_object
;
int32
condition
;
int32
condition
;
int32
cost
;
int32
cost
;
...
@@ -94,6 +94,7 @@ public:
...
@@ -94,6 +94,7 @@ public:
uint8
get_handler_player
();
uint8
get_handler_player
();
int32
in_range
(
card
*
pcard
);
int32
in_range
(
card
*
pcard
);
int32
in_range
(
const
chain
&
ch
);
int32
in_range
(
const
chain
&
ch
);
void
set_activate_location
();
bool
is_flag
(
effect_flag
flag
)
const
{
bool
is_flag
(
effect_flag
flag
)
const
{
return
!!
(
this
->
flag
[
0
]
&
flag
);
return
!!
(
this
->
flag
[
0
]
&
flag
);
}
}
...
...
libeffect.cpp
View file @
4af271e2
...
@@ -545,6 +545,6 @@ int32 scriptlib::effect_get_activate_location(lua_State *L) {
...
@@ -545,6 +545,6 @@ int32 scriptlib::effect_get_activate_location(lua_State *L) {
check_param_count
(
L
,
1
);
check_param_count
(
L
,
1
);
check_param
(
L
,
PARAM_TYPE_EFFECT
,
1
);
check_param
(
L
,
PARAM_TYPE_EFFECT
,
1
);
effect
*
peffect
=
*
(
effect
**
)
lua_touserdata
(
L
,
1
);
effect
*
peffect
=
*
(
effect
**
)
lua_touserdata
(
L
,
1
);
lua_pushinteger
(
L
,
peffect
->
s_range
);
lua_pushinteger
(
L
,
peffect
->
active_location
);
return
1
;
return
1
;
}
}
\ No newline at end of file
processor.cpp
View file @
4af271e2
...
@@ -1362,8 +1362,7 @@ int32 field::process_phase_event(int16 step, int32 phase) {
...
@@ -1362,8 +1362,7 @@ int32 field::process_phase_event(int16 step, int32 phase) {
auto
pr
=
effects
.
trigger_f_effect
.
equal_range
(
phase_event
);
auto
pr
=
effects
.
trigger_f_effect
.
equal_range
(
phase_event
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
peffect
=
pr
.
first
->
second
;
peffect
->
s_range
=
peffect
->
get_handler
()
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
peffect
->
get_handler
()
->
current
.
sequence
;
if
(
!
peffect
->
is_activateable
(
check_player
,
nil_event
))
if
(
!
peffect
->
is_activateable
(
check_player
,
nil_event
))
continue
;
continue
;
peffect
->
id
=
infos
.
field_id
++
;
peffect
->
id
=
infos
.
field_id
++
;
...
@@ -1413,8 +1412,7 @@ int32 field::process_phase_event(int16 step, int32 phase) {
...
@@ -1413,8 +1412,7 @@ int32 field::process_phase_event(int16 step, int32 phase) {
pr
=
effects
.
trigger_o_effect
.
equal_range
(
phase_event
);
pr
=
effects
.
trigger_o_effect
.
equal_range
(
phase_event
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
peffect
=
pr
.
first
->
second
;
peffect
->
s_range
=
peffect
->
get_handler
()
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
peffect
->
get_handler
()
->
current
.
sequence
;
if
(
!
peffect
->
is_activateable
(
check_player
,
nil_event
))
if
(
!
peffect
->
is_activateable
(
check_player
,
nil_event
))
continue
;
continue
;
peffect
->
id
=
infos
.
field_id
++
;
peffect
->
id
=
infos
.
field_id
++
;
...
@@ -1436,8 +1434,7 @@ int32 field::process_phase_event(int16 step, int32 phase) {
...
@@ -1436,8 +1434,7 @@ int32 field::process_phase_event(int16 step, int32 phase) {
pr
=
effects
.
activate_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
pr
=
effects
.
activate_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
peffect
=
pr
.
first
->
second
;
peffect
->
s_range
=
peffect
->
get_handler
()
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
peffect
->
get_handler
()
->
current
.
sequence
;
if
(
!
peffect
->
is_chainable
(
check_player
)
||
!
peffect
->
is_activateable
(
check_player
,
nil_event
))
if
(
!
peffect
->
is_chainable
(
check_player
)
||
!
peffect
->
is_activateable
(
check_player
,
nil_event
))
continue
;
continue
;
peffect
->
id
=
infos
.
field_id
++
;
peffect
->
id
=
infos
.
field_id
++
;
...
@@ -1450,8 +1447,7 @@ int32 field::process_phase_event(int16 step, int32 phase) {
...
@@ -1450,8 +1447,7 @@ int32 field::process_phase_event(int16 step, int32 phase) {
pr
=
effects
.
quick_o_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
pr
=
effects
.
quick_o_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
peffect
=
pr
.
first
->
second
;
peffect
->
s_range
=
peffect
->
get_handler
()
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
peffect
->
get_handler
()
->
current
.
sequence
;
if
(
!
peffect
->
is_chainable
(
check_player
)
||
!
peffect
->
is_activateable
(
check_player
,
nil_event
))
if
(
!
peffect
->
is_chainable
(
check_player
)
||
!
peffect
->
is_activateable
(
check_player
,
nil_event
))
continue
;
continue
;
peffect
->
id
=
infos
.
field_id
++
;
peffect
->
id
=
infos
.
field_id
++
;
...
@@ -2054,10 +2050,9 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
...
@@ -2054,10 +2050,9 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
auto
pr
=
effects
.
activate_effect
.
equal_range
(
evit
->
event_code
);
auto
pr
=
effects
.
activate_effect
.
equal_range
(
evit
->
event_code
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
effect
*
peffect
=
pr
.
first
->
second
;
effect
*
peffect
=
pr
.
first
->
second
;
card
*
phandler
=
peffect
->
get_handler
();
peffect
->
set_activate_location
();
peffect
->
s_range
=
phandler
->
current
.
location
;
peffect
->
o_range
=
phandler
->
current
.
sequence
;
if
(
!
peffect
->
is_flag
(
EFFECT_FLAG_DELAY
)
&&
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
*
evit
))
{
if
(
!
peffect
->
is_flag
(
EFFECT_FLAG_DELAY
)
&&
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
*
evit
))
{
card
*
phandler
=
peffect
->
get_handler
();
newchain
.
flag
=
0
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
*
evit
;
newchain
.
evt
=
*
evit
;
...
@@ -2070,10 +2065,9 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
...
@@ -2070,10 +2065,9 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
pr
=
effects
.
quick_o_effect
.
equal_range
(
evit
->
event_code
);
pr
=
effects
.
quick_o_effect
.
equal_range
(
evit
->
event_code
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
effect
*
peffect
=
pr
.
first
->
second
;
effect
*
peffect
=
pr
.
first
->
second
;
card
*
phandler
=
peffect
->
get_handler
();
peffect
->
set_activate_location
();
peffect
->
s_range
=
phandler
->
current
.
location
;
peffect
->
o_range
=
phandler
->
current
.
sequence
;
if
(
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
*
evit
))
{
if
(
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
*
evit
))
{
card
*
phandler
=
peffect
->
get_handler
();
newchain
.
flag
=
0
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
*
evit
;
newchain
.
evt
=
*
evit
;
...
@@ -2121,10 +2115,9 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
...
@@ -2121,10 +2115,9 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
auto
pr
=
effects
.
activate_effect
.
equal_range
(
eit
->
event_code
);
auto
pr
=
effects
.
activate_effect
.
equal_range
(
eit
->
event_code
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
effect
*
peffect
=
pr
.
first
->
second
;
effect
*
peffect
=
pr
.
first
->
second
;
card
*
phandler
=
peffect
->
get_handler
();
peffect
->
set_activate_location
();
peffect
->
s_range
=
phandler
->
current
.
location
;
peffect
->
o_range
=
phandler
->
current
.
sequence
;
if
(
peffect
->
is_flag
(
EFFECT_FLAG_DELAY
)
&&
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
*
eit
))
{
if
(
peffect
->
is_flag
(
EFFECT_FLAG_DELAY
)
&&
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
*
eit
))
{
card
*
phandler
=
peffect
->
get_handler
();
newchain
.
flag
=
0
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
*
eit
;
newchain
.
evt
=
*
eit
;
...
@@ -2138,11 +2131,10 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
...
@@ -2138,11 +2131,10 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
// delayed quick
// delayed quick
for
(
auto
eit
=
core
.
delayed_quick
.
begin
();
eit
!=
core
.
delayed_quick
.
end
();
++
eit
)
{
for
(
auto
eit
=
core
.
delayed_quick
.
begin
();
eit
!=
core
.
delayed_quick
.
end
();
++
eit
)
{
effect
*
peffect
=
eit
->
first
;
effect
*
peffect
=
eit
->
first
;
card
*
phandler
=
peffect
->
get_handler
();
peffect
->
set_activate_location
();
peffect
->
s_range
=
phandler
->
current
.
location
;
peffect
->
o_range
=
phandler
->
current
.
sequence
;
const
tevent
&
evt
=
eit
->
second
;
const
tevent
&
evt
=
eit
->
second
;
if
(
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
evt
,
TRUE
,
FALSE
,
FALSE
))
{
if
(
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
evt
,
TRUE
,
FALSE
,
FALSE
))
{
card
*
phandler
=
peffect
->
get_handler
();
newchain
.
flag
=
0
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
evt
;
newchain
.
evt
=
evt
;
...
@@ -2158,10 +2150,9 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
...
@@ -2158,10 +2150,9 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
auto
pr
=
effects
.
activate_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
auto
pr
=
effects
.
activate_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
effect
*
peffect
=
pr
.
first
->
second
;
effect
*
peffect
=
pr
.
first
->
second
;
card
*
phandler
=
peffect
->
get_handler
();
peffect
->
set_activate_location
();
peffect
->
s_range
=
phandler
->
current
.
location
;
peffect
->
o_range
=
phandler
->
current
.
sequence
;
if
(
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
nil_event
))
{
if
(
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
nil_event
))
{
card
*
phandler
=
peffect
->
get_handler
();
newchain
.
flag
=
0
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
nil_event
;
newchain
.
evt
=
nil_event
;
...
@@ -2176,10 +2167,9 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
...
@@ -2176,10 +2167,9 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
pr
=
effects
.
quick_o_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
pr
=
effects
.
quick_o_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
effect
*
peffect
=
pr
.
first
->
second
;
effect
*
peffect
=
pr
.
first
->
second
;
card
*
phandler
=
peffect
->
get_handler
();
peffect
->
set_activate_location
();
peffect
->
s_range
=
phandler
->
current
.
location
;
peffect
->
o_range
=
phandler
->
current
.
sequence
;
if
(
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
nil_event
))
{
if
(
peffect
->
is_chainable
(
priority
)
&&
peffect
->
is_activateable
(
priority
,
nil_event
))
{
card
*
phandler
=
peffect
->
get_handler
();
newchain
.
flag
=
0
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
nil_event
;
newchain
.
evt
=
nil_event
;
...
@@ -2281,8 +2271,7 @@ int32 field::process_instant_event() {
...
@@ -2281,8 +2271,7 @@ int32 field::process_instant_event() {
card
*
phandler
=
peffect
->
get_handler
();
card
*
phandler
=
peffect
->
get_handler
();
if
(
!
phandler
->
is_status
(
STATUS_EFFECT_ENABLED
)
||
!
peffect
->
is_condition_check
(
phandler
->
current
.
controler
,
*
elit
))
if
(
!
phandler
->
is_status
(
STATUS_EFFECT_ENABLED
)
||
!
peffect
->
is_condition_check
(
phandler
->
current
.
controler
,
*
elit
))
continue
;
continue
;
peffect
->
s_range
=
phandler
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
phandler
->
current
.
sequence
;
newchain
.
flag
=
0
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
*
elit
;
newchain
.
evt
=
*
elit
;
...
@@ -2300,8 +2289,7 @@ int32 field::process_instant_event() {
...
@@ -2300,8 +2289,7 @@ int32 field::process_instant_event() {
card
*
phandler
=
peffect
->
get_handler
();
card
*
phandler
=
peffect
->
get_handler
();
if
(
!
phandler
->
is_status
(
STATUS_EFFECT_ENABLED
)
||
!
peffect
->
is_condition_check
(
phandler
->
current
.
controler
,
*
elit
))
if
(
!
phandler
->
is_status
(
STATUS_EFFECT_ENABLED
)
||
!
peffect
->
is_condition_check
(
phandler
->
current
.
controler
,
*
elit
))
continue
;
continue
;
peffect
->
s_range
=
phandler
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
phandler
->
current
.
sequence
;
newchain
.
flag
=
0
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
evt
=
*
elit
;
newchain
.
evt
=
*
elit
;
...
@@ -2321,8 +2309,7 @@ int32 field::process_instant_event() {
...
@@ -2321,8 +2309,7 @@ int32 field::process_instant_event() {
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
effect
*
peffect
=
pr
.
first
->
second
;
effect
*
peffect
=
pr
.
first
->
second
;
card
*
phandler
=
peffect
->
get_handler
();
card
*
phandler
=
peffect
->
get_handler
();
peffect
->
s_range
=
phandler
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
phandler
->
current
.
sequence
;
if
(
peffect
->
is_activateable
(
phandler
->
current
.
controler
,
*
elit
))
{
if
(
peffect
->
is_activateable
(
phandler
->
current
.
controler
,
*
elit
))
{
newchain
.
flag
=
0
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
chain_id
=
infos
.
field_id
++
;
...
@@ -2426,8 +2413,7 @@ int32 field::process_single_event(effect* peffect, const tevent& e, effect_vecto
...
@@ -2426,8 +2413,7 @@ int32 field::process_single_event(effect* peffect, const tevent& e, effect_vecto
card
*
phandler
=
peffect
->
get_handler
();
card
*
phandler
=
peffect
->
get_handler
();
if
(
!
peffect
->
is_condition_check
(
phandler
->
current
.
controler
,
e
))
if
(
!
peffect
->
is_condition_check
(
phandler
->
current
.
controler
,
e
))
return
FALSE
;
return
FALSE
;
peffect
->
s_range
=
phandler
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
phandler
->
current
.
sequence
;
chain
newchain
;
chain
newchain
;
newchain
.
flag
=
0
;
newchain
.
flag
=
0
;
newchain
.
chain_id
=
infos
.
field_id
++
;
newchain
.
chain_id
=
infos
.
field_id
++
;
...
@@ -2519,8 +2505,7 @@ int32 field::process_idle_command(uint16 step) {
...
@@ -2519,8 +2505,7 @@ int32 field::process_idle_command(uint16 step) {
auto
pr
=
effects
.
activate_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
auto
pr
=
effects
.
activate_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
peffect
=
pr
.
first
->
second
;
peffect
->
s_range
=
peffect
->
get_handler
()
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
peffect
->
get_handler
()
->
current
.
sequence
;
newchain
.
triggering_effect
=
peffect
;
newchain
.
triggering_effect
=
peffect
;
if
(
peffect
->
is_activateable
(
infos
.
turn_player
,
nil_event
))
if
(
peffect
->
is_activateable
(
infos
.
turn_player
,
nil_event
))
core
.
select_chains
.
push_back
(
newchain
);
core
.
select_chains
.
push_back
(
newchain
);
...
@@ -2528,16 +2513,14 @@ int32 field::process_idle_command(uint16 step) {
...
@@ -2528,16 +2513,14 @@ int32 field::process_idle_command(uint16 step) {
pr
=
effects
.
quick_o_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
pr
=
effects
.
quick_o_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
peffect
=
pr
.
first
->
second
;
peffect
->
s_range
=
peffect
->
get_handler
()
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
peffect
->
get_handler
()
->
current
.
sequence
;
newchain
.
triggering_effect
=
peffect
;
newchain
.
triggering_effect
=
peffect
;
if
(
peffect
->
is_activateable
(
infos
.
turn_player
,
nil_event
))
if
(
peffect
->
is_activateable
(
infos
.
turn_player
,
nil_event
))
core
.
select_chains
.
push_back
(
newchain
);
core
.
select_chains
.
push_back
(
newchain
);
}
}
for
(
auto
eit
=
effects
.
ignition_effect
.
begin
();
eit
!=
effects
.
ignition_effect
.
end
();
++
eit
)
{
for
(
auto
eit
=
effects
.
ignition_effect
.
begin
();
eit
!=
effects
.
ignition_effect
.
end
();
++
eit
)
{
peffect
=
eit
->
second
;
peffect
=
eit
->
second
;
peffect
->
s_range
=
peffect
->
get_handler
()
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
peffect
->
get_handler
()
->
current
.
sequence
;
newchain
.
triggering_effect
=
peffect
;
newchain
.
triggering_effect
=
peffect
;
if
(
peffect
->
is_activateable
(
infos
.
turn_player
,
nil_event
))
if
(
peffect
->
is_activateable
(
infos
.
turn_player
,
nil_event
))
core
.
select_chains
.
push_back
(
newchain
);
core
.
select_chains
.
push_back
(
newchain
);
...
@@ -2811,8 +2794,7 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -2811,8 +2794,7 @@ int32 field::process_battle_command(uint16 step) {
auto
pr
=
effects
.
activate_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
auto
pr
=
effects
.
activate_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
peffect
=
pr
.
first
->
second
;
peffect
->
s_range
=
peffect
->
get_handler
()
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
peffect
->
get_handler
()
->
current
.
sequence
;
newchain
.
triggering_effect
=
peffect
;
newchain
.
triggering_effect
=
peffect
;
if
(
peffect
->
is_activateable
(
infos
.
turn_player
,
nil_event
)
&&
peffect
->
get_speed
()
>
1
)
if
(
peffect
->
is_activateable
(
infos
.
turn_player
,
nil_event
)
&&
peffect
->
get_speed
()
>
1
)
core
.
select_chains
.
push_back
(
newchain
);
core
.
select_chains
.
push_back
(
newchain
);
...
@@ -2820,8 +2802,7 @@ int32 field::process_battle_command(uint16 step) {
...
@@ -2820,8 +2802,7 @@ int32 field::process_battle_command(uint16 step) {
pr
=
effects
.
quick_o_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
pr
=
effects
.
quick_o_effect
.
equal_range
(
EVENT_FREE_CHAIN
);
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
for
(;
pr
.
first
!=
pr
.
second
;
++
pr
.
first
)
{
peffect
=
pr
.
first
->
second
;
peffect
=
pr
.
first
->
second
;
peffect
->
s_range
=
peffect
->
get_handler
()
->
current
.
location
;
peffect
->
set_activate_location
();
peffect
->
o_range
=
peffect
->
get_handler
()
->
current
.
sequence
;
newchain
.
triggering_effect
=
peffect
;
newchain
.
triggering_effect
=
peffect
;
if
(
peffect
->
is_activateable
(
infos
.
turn_player
,
nil_event
))
if
(
peffect
->
is_activateable
(
infos
.
turn_player
,
nil_event
))
core
.
select_chains
.
push_back
(
newchain
);
core
.
select_chains
.
push_back
(
newchain
);
...
...
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