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
xiaoye
ygopro-core
Commits
7cb7069f
Commit
7cb7069f
authored
Dec 01, 2021
by
mercury233
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/Fluorohydride/ygopro-core
parents
73765181
c397018c
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
36 additions
and
16 deletions
+36
-16
effect.cpp
effect.cpp
+14
-8
effect.h
effect.h
+3
-1
field.cpp
field.cpp
+5
-5
field.h
field.h
+2
-1
interpreter.cpp
interpreter.cpp
+4
-0
libeffect.cpp
libeffect.cpp
+1
-1
processor.cpp
processor.cpp
+7
-0
No files found.
effect.cpp
View file @
7cb7069f
...
@@ -84,7 +84,7 @@ int32 effect::is_can_be_forbidden() {
...
@@ -84,7 +84,7 @@ int32 effect::is_can_be_forbidden() {
// check if a single/field/equip effect is available
// check if a single/field/equip effect is available
// check properties: range, EFFECT_FLAG_OWNER_RELATE, STATUS_BATTLE_DESTROYED, STATUS_EFFECT_ENABLED, disabled/forbidden
// check properties: range, EFFECT_FLAG_OWNER_RELATE, STATUS_BATTLE_DESTROYED, STATUS_EFFECT_ENABLED, disabled/forbidden
// check fucntions: condition
// check fucntions: condition
int32
effect
::
is_available
()
{
int32
effect
::
is_available
(
int32
neglect_disabled
)
{
if
(
type
&
EFFECT_TYPE_ACTIONS
)
if
(
type
&
EFFECT_TYPE_ACTIONS
)
return
FALSE
;
return
FALSE
;
if
((
type
&
(
EFFECT_TYPE_SINGLE
|
EFFECT_TYPE_XMATERIAL
))
&&
!
(
type
&
EFFECT_TYPE_FIELD
))
{
if
((
type
&
(
EFFECT_TYPE_SINGLE
|
EFFECT_TYPE_XMATERIAL
))
&&
!
(
type
&
EFFECT_TYPE_FIELD
))
{
...
@@ -102,9 +102,9 @@ int32 effect::is_available() {
...
@@ -102,9 +102,9 @@ int32 effect::is_available() {
return
FALSE
;
return
FALSE
;
if
(
powner
==
phandler
&&
is_can_be_forbidden
()
&&
phandler
->
get_status
(
STATUS_FORBIDDEN
))
if
(
powner
==
phandler
&&
is_can_be_forbidden
()
&&
phandler
->
get_status
(
STATUS_FORBIDDEN
))
return
FALSE
;
return
FALSE
;
if
(
is_flag
(
EFFECT_FLAG_OWNER_RELATE
)
&&
!
is_flag
(
EFFECT_FLAG_CANNOT_DISABLE
)
&&
powner
->
is_status
(
STATUS_DISABLED
))
if
(
is_flag
(
EFFECT_FLAG_OWNER_RELATE
)
&&
!
(
is_flag
(
EFFECT_FLAG_CANNOT_DISABLE
)
||
neglect_disabled
)
&&
powner
->
is_status
(
STATUS_DISABLED
))
return
FALSE
;
return
FALSE
;
if
(
powner
==
phandler
&&
!
is_flag
(
EFFECT_FLAG_CANNOT_DISABLE
)
&&
phandler
->
get_status
(
STATUS_DISABLED
))
if
(
powner
==
phandler
&&
!
(
is_flag
(
EFFECT_FLAG_CANNOT_DISABLE
)
||
neglect_disabled
)
&&
phandler
->
get_status
(
STATUS_DISABLED
))
return
FALSE
;
return
FALSE
;
}
}
if
(
type
&
EFFECT_TYPE_EQUIP
)
{
if
(
type
&
EFFECT_TYPE_EQUIP
)
{
...
@@ -114,9 +114,9 @@ int32 effect::is_available() {
...
@@ -114,9 +114,9 @@ int32 effect::is_available() {
return
FALSE
;
return
FALSE
;
if
(
owner
==
handler
&&
is_can_be_forbidden
()
&&
handler
->
get_status
(
STATUS_FORBIDDEN
))
if
(
owner
==
handler
&&
is_can_be_forbidden
()
&&
handler
->
get_status
(
STATUS_FORBIDDEN
))
return
FALSE
;
return
FALSE
;
if
(
is_flag
(
EFFECT_FLAG_OWNER_RELATE
)
&&
!
is_flag
(
EFFECT_FLAG_CANNOT_DISABLE
)
&&
owner
->
is_status
(
STATUS_DISABLED
))
if
(
is_flag
(
EFFECT_FLAG_OWNER_RELATE
)
&&
!
(
is_flag
(
EFFECT_FLAG_CANNOT_DISABLE
)
||
neglect_disabled
)
&&
owner
->
is_status
(
STATUS_DISABLED
))
return
FALSE
;
return
FALSE
;
if
(
owner
==
handler
&&
!
is_flag
(
EFFECT_FLAG_CANNOT_DISABLE
)
&&
handler
->
get_status
(
STATUS_DISABLED
))
if
(
owner
==
handler
&&
!
(
is_flag
(
EFFECT_FLAG_CANNOT_DISABLE
)
||
neglect_disabled
)
&&
handler
->
get_status
(
STATUS_DISABLED
))
return
FALSE
;
return
FALSE
;
if
(
!
is_flag
(
EFFECT_FLAG_SET_AVAILABLE
))
{
if
(
!
is_flag
(
EFFECT_FLAG_SET_AVAILABLE
))
{
if
(
!
(
handler
->
get_status
(
STATUS_EFFECT_ENABLED
)))
if
(
!
(
handler
->
get_status
(
STATUS_EFFECT_ENABLED
)))
...
@@ -141,9 +141,9 @@ int32 effect::is_available() {
...
@@ -141,9 +141,9 @@ int32 effect::is_available() {
return
FALSE
;
return
FALSE
;
if
(
powner
==
phandler
&&
is_can_be_forbidden
()
&&
phandler
->
get_status
(
STATUS_FORBIDDEN
))
if
(
powner
==
phandler
&&
is_can_be_forbidden
()
&&
phandler
->
get_status
(
STATUS_FORBIDDEN
))
return
FALSE
;
return
FALSE
;
if
(
is_flag
(
EFFECT_FLAG_OWNER_RELATE
)
&&
!
is_flag
(
EFFECT_FLAG_CANNOT_DISABLE
)
&&
powner
->
is_status
(
STATUS_DISABLED
))
if
(
is_flag
(
EFFECT_FLAG_OWNER_RELATE
)
&&
!
(
is_flag
(
EFFECT_FLAG_CANNOT_DISABLE
)
||
neglect_disabled
)
&&
powner
->
is_status
(
STATUS_DISABLED
))
return
FALSE
;
return
FALSE
;
if
(
powner
==
phandler
&&
!
is_flag
(
EFFECT_FLAG_CANNOT_DISABLE
)
&&
phandler
->
get_status
(
STATUS_DISABLED
))
if
(
powner
==
phandler
&&
!
(
is_flag
(
EFFECT_FLAG_CANNOT_DISABLE
)
||
neglect_disabled
)
&&
phandler
->
get_status
(
STATUS_DISABLED
))
return
FALSE
;
return
FALSE
;
if
(
phandler
->
is_status
(
STATUS_BATTLE_DESTROYED
))
if
(
phandler
->
is_status
(
STATUS_BATTLE_DESTROYED
))
return
FALSE
;
return
FALSE
;
...
@@ -161,6 +161,10 @@ int32 effect::is_available() {
...
@@ -161,6 +161,10 @@ int32 effect::is_available() {
status
&=
~
EFFECT_STATUS_AVAILABLE
;
status
&=
~
EFFECT_STATUS_AVAILABLE
;
return
res
;
return
res
;
}
}
// check if a count limit effect counter is available, which should be available even if the effect is disabled
int32
effect
::
limit_counter_is_available
()
{
return
is_available
(
TRUE
);
}
// check if a effect is EFFECT_TYPE_SINGLE and is ready
// check if a effect is EFFECT_TYPE_SINGLE and is ready
// check: range, enabled, condition
// check: range, enabled, condition
int32
effect
::
is_single_ready
()
{
int32
effect
::
is_single_ready
()
{
...
@@ -299,6 +303,8 @@ int32 effect::is_activateable(uint8 playerid, const tevent& e, int32 neglect_con
...
@@ -299,6 +303,8 @@ int32 effect::is_activateable(uint8 playerid, const tevent& e, int32 neglect_con
return
FALSE
;
return
FALSE
;
if
((
phandler
->
get_type
()
&
TYPE_CONTINUOUS
)
&&
(
phandler
->
get_type
()
&
TYPE_EQUIP
))
if
((
phandler
->
get_type
()
&
TYPE_CONTINUOUS
)
&&
(
phandler
->
get_type
()
&
TYPE_EQUIP
))
return
FALSE
;
return
FALSE
;
if
((
type
&
EFFECT_TYPE_QUICK_O
)
&&
is_flag
(
EFFECT_FLAG_DELAY
)
&&
!
in_range
(
phandler
))
return
FALSE
;
if
(
!
neglect_faceup
&&
(
phandler
->
current
.
location
&
(
LOCATION_ONFIELD
|
LOCATION_REMOVED
)))
{
if
(
!
neglect_faceup
&&
(
phandler
->
current
.
location
&
(
LOCATION_ONFIELD
|
LOCATION_REMOVED
)))
{
if
(
!
phandler
->
is_position
(
POS_FACEUP
)
&&
!
is_flag
(
EFFECT_FLAG_SET_AVAILABLE
))
if
(
!
phandler
->
is_position
(
POS_FACEUP
)
&&
!
is_flag
(
EFFECT_FLAG_SET_AVAILABLE
))
return
FALSE
;
return
FALSE
;
...
@@ -623,7 +629,7 @@ int32 effect::reset(uint32 reset_level, uint32 reset_type) {
...
@@ -623,7 +629,7 @@ int32 effect::reset(uint32 reset_level, uint32 reset_type) {
return
FALSE
;
return
FALSE
;
uint8
pid
=
get_owner_player
();
uint8
pid
=
get_owner_player
();
uint8
tp
=
handler
->
pduel
->
game_field
->
infos
.
turn_player
;
uint8
tp
=
handler
->
pduel
->
game_field
->
infos
.
turn_player
;
if
((((
reset_flag
&
RESET_SELF_TURN
)
&&
pid
==
tp
)
||
((
reset_flag
&
RESET_OPPO_TURN
)
&&
pid
!=
tp
))
if
((((
reset_flag
&
RESET_SELF_TURN
)
&&
pid
==
tp
)
||
((
reset_flag
&
RESET_OPPO_TURN
)
&&
pid
!=
tp
))
&&
(
reset_level
&
0x3ff
&
reset_flag
))
&&
(
reset_level
&
0x3ff
&
reset_flag
))
reset_count
--
;
reset_count
--
;
if
(
reset_count
==
0
)
if
(
reset_count
==
0
)
...
...
effect.h
View file @
7cb7069f
...
@@ -68,7 +68,8 @@ public:
...
@@ -68,7 +68,8 @@ public:
int32
is_disable_related
();
int32
is_disable_related
();
int32
is_self_destroy_related
();
int32
is_self_destroy_related
();
int32
is_can_be_forbidden
();
int32
is_can_be_forbidden
();
int32
is_available
();
int32
is_available
(
int32
neglect_disabled
=
FALSE
);
int32
limit_counter_is_available
();
int32
is_single_ready
();
int32
is_single_ready
();
int32
check_count_limit
(
uint8
playerid
);
int32
check_count_limit
(
uint8
playerid
);
int32
is_activateable
(
uint8
playerid
,
const
tevent
&
e
,
int32
neglect_cond
=
FALSE
,
int32
neglect_cost
=
FALSE
,
int32
neglect_target
=
FALSE
,
int32
neglect_loc
=
FALSE
,
int32
neglect_faceup
=
FALSE
);
int32
is_activateable
(
uint8
playerid
,
const
tevent
&
e
,
int32
neglect_cond
=
FALSE
,
int32
neglect_cost
=
FALSE
,
int32
neglect_target
=
FALSE
,
int32
neglect_loc
=
FALSE
,
int32
neglect_faceup
=
FALSE
);
...
@@ -459,6 +460,7 @@ inline effect_flag operator|(effect_flag flag1, effect_flag flag2)
...
@@ -459,6 +460,7 @@ inline effect_flag operator|(effect_flag flag1, effect_flag flag2)
#define EFFECT_OVERLAY_RITUAL_MATERIAL 364
#define EFFECT_OVERLAY_RITUAL_MATERIAL 364
#define EFFECT_CHANGE_GRAVE_ATTRIBUTE 365
#define EFFECT_CHANGE_GRAVE_ATTRIBUTE 365
#define EFFECT_CHANGE_GRAVE_RACE 366
#define EFFECT_CHANGE_GRAVE_RACE 366
#define EFFECT_ACTIVATION_COUNT_LIMIT 367
#define EVENT_STARTUP 1000
#define EVENT_STARTUP 1000
#define EVENT_FLIP 1001
#define EVENT_FLIP 1001
...
...
field.cpp
View file @
7cb7069f
...
@@ -608,7 +608,7 @@ int32 field::is_location_useable(uint32 playerid, uint32 location, uint32 sequen
...
@@ -608,7 +608,7 @@ int32 field::is_location_useable(uint32 playerid, uint32 location, uint32 sequen
* Return usable count in zone of playerid's MZONE or SZONE(0~4) when uplayer moves pcard to playerid's field (can be negative).
* Return usable count in zone of playerid's MZONE or SZONE(0~4) when uplayer moves pcard to playerid's field (can be negative).
* for LOCATION_MZONE, "usable" means not used, not disabled, satisfying EFFECT_MUST_USE_MZONE, satisfying EFFECT_MAX_MZONE
* for LOCATION_MZONE, "usable" means not used, not disabled, satisfying EFFECT_MUST_USE_MZONE, satisfying EFFECT_MAX_MZONE
* for LOCATION_SZONE, "usable" means not used, not disabled, satisfying EFFECT_MAX_SZONE
* for LOCATION_SZONE, "usable" means not used, not disabled, satisfying EFFECT_MAX_SZONE
*
*
* @param pcard the card about to move
* @param pcard the card about to move
* @param playerid the target player
* @param playerid the target player
* @param location LOCATION_MZONE or LOCATION_SZONE
* @param location LOCATION_MZONE or LOCATION_SZONE
...
@@ -616,8 +616,8 @@ int32 field::is_location_useable(uint32 playerid, uint32 location, uint32 sequen
...
@@ -616,8 +616,8 @@ int32 field::is_location_useable(uint32 playerid, uint32 location, uint32 sequen
* @param reason location reason
* @param reason location reason
* @param zone specified zones, 0xff by default
* @param zone specified zones, 0xff by default
* @param list storing unavailable or unspecified zones
* @param list storing unavailable or unspecified zones
*
*
* @return usable count in zone of playerid's MZONE or SZONE(0~4) (can be negative)
* @return usable count in zone of playerid's MZONE or SZONE(0~4) (can be negative)
*/
*/
int32
field
::
get_useable_count
(
card
*
pcard
,
uint8
playerid
,
uint8
location
,
uint8
uplayer
,
uint32
reason
,
uint32
zone
,
uint32
*
list
)
{
int32
field
::
get_useable_count
(
card
*
pcard
,
uint8
playerid
,
uint8
location
,
uint8
uplayer
,
uint32
reason
,
uint32
zone
,
uint32
*
list
)
{
if
(
location
==
LOCATION_MZONE
&&
pcard
&&
pcard
->
current
.
location
==
LOCATION_EXTRA
)
if
(
location
==
LOCATION_MZONE
&&
pcard
&&
pcard
->
current
.
location
==
LOCATION_EXTRA
)
...
@@ -689,7 +689,7 @@ int32 field::get_useable_count_other(card* pcard, uint8 playerid, uint8 location
...
@@ -689,7 +689,7 @@ int32 field::get_useable_count_other(card* pcard, uint8 playerid, uint8 location
count
=
limit
;
count
=
limit
;
return
count
;
return
count
;
}
}
/**
/**
* @return the number of available grids in zone of Main MZONE or SZONE(0~4)
* @return the number of available grids in zone of Main MZONE or SZONE(0~4)
* for LOCATION_MZONE, "available" means not used, not disabled, satisfying EFFECT_MUST_USE_MZONE
* for LOCATION_MZONE, "available" means not used, not disabled, satisfying EFFECT_MUST_USE_MZONE
* for LOCATION_SZONE, "available" means not used, not disabled
* for LOCATION_SZONE, "available" means not used, not disabled
...
@@ -2250,7 +2250,7 @@ void field::set_spsummon_counter(uint8 playerid) {
...
@@ -2250,7 +2250,7 @@ void field::set_spsummon_counter(uint8 playerid) {
if
(
core
.
global_flag
&
GLOBALFLAG_SPSUMMON_COUNT
)
{
if
(
core
.
global_flag
&
GLOBALFLAG_SPSUMMON_COUNT
)
{
for
(
auto
&
peffect
:
effects
.
spsummon_count_eff
)
{
for
(
auto
&
peffect
:
effects
.
spsummon_count_eff
)
{
card
*
pcard
=
peffect
->
get_handler
();
card
*
pcard
=
peffect
->
get_handler
();
if
(
peffect
->
is_available
())
{
if
(
peffect
->
limit_counter_
is_available
())
{
if
(((
playerid
==
pcard
->
current
.
controler
)
&&
peffect
->
s_range
)
||
((
playerid
!=
pcard
->
current
.
controler
)
&&
peffect
->
o_range
))
{
if
(((
playerid
==
pcard
->
current
.
controler
)
&&
peffect
->
s_range
)
||
((
playerid
!=
pcard
->
current
.
controler
)
&&
peffect
->
o_range
))
{
pcard
->
spsummon_counter
[
playerid
]
++
;
pcard
->
spsummon_counter
[
playerid
]
++
;
}
}
...
...
field.h
View file @
7cb7069f
...
@@ -71,7 +71,7 @@ struct chain {
...
@@ -71,7 +71,7 @@ struct chain {
uint32
flag
;
uint32
flag
;
chain
()
chain
()
:
chain_id
(
0
),
chain_count
(
0
),
triggering_player
(
PLAYER_NONE
),
triggering_controler
(
PLAYER_NONE
),
triggering_location
(
0
),
triggering_sequence
(
0
),
triggering_position
(
0
),
:
chain_id
(
0
),
chain_count
(
0
),
triggering_player
(
PLAYER_NONE
),
triggering_controler
(
PLAYER_NONE
),
triggering_location
(
0
),
triggering_sequence
(
0
),
triggering_position
(
0
),
triggering_state
(),
triggering_effect
(
nullptr
),
target_cards
(
nullptr
),
replace_op
(
0
),
target_player
(
PLAYER_NONE
),
target_param
(
0
),
disable_reason
(
nullptr
),
disable_player
(
PLAYER_NONE
),
triggering_state
(),
triggering_effect
(
nullptr
),
target_cards
(
nullptr
),
replace_op
(
0
),
target_player
(
PLAYER_NONE
),
target_param
(
0
),
disable_reason
(
nullptr
),
disable_player
(
PLAYER_NONE
),
evt
(),
flag
(
0
)
{}
evt
(),
flag
(
0
)
{}
static
bool
chain_operation_sort
(
const
chain
&
c1
,
const
chain
&
c2
);
static
bool
chain_operation_sort
(
const
chain
&
c1
,
const
chain
&
c2
);
...
@@ -724,6 +724,7 @@ public:
...
@@ -724,6 +724,7 @@ public:
#define GLOBALFLAG_SELF_TOGRAVE 0x100
#define GLOBALFLAG_SELF_TOGRAVE 0x100
#define GLOBALFLAG_SPSUMMON_ONCE 0x200
#define GLOBALFLAG_SPSUMMON_ONCE 0x200
#define GLOBALFLAG_TUNE_MAGICIAN 0x400
#define GLOBALFLAG_TUNE_MAGICIAN 0x400
#define GLOBALFLAG_ACTIVATION_COUNT 0x800
//
//
#define PROCESSOR_NONE 0
#define PROCESSOR_NONE 0
#define PROCESSOR_WAITING 0x10000
#define PROCESSOR_WAITING 0x10000
...
...
interpreter.cpp
View file @
7cb7069f
...
@@ -26,11 +26,15 @@ interpreter::interpreter(duel* pd): coroutines(256) {
...
@@ -26,11 +26,15 @@ interpreter::interpreter(duel* pd): coroutines(256) {
lua_setglobal
(
lua_state
,
"io"
);
lua_setglobal
(
lua_state
,
"io"
);
lua_pushnil
(
lua_state
);
lua_pushnil
(
lua_state
);
lua_setglobal
(
lua_state
,
"os"
);
lua_setglobal
(
lua_state
,
"os"
);
lua_pushnil
(
lua_state
);
lua_setglobal
(
lua_state
,
"package"
);
luaL_getsubtable
(
lua_state
,
LUA_REGISTRYINDEX
,
"_LOADED"
);
luaL_getsubtable
(
lua_state
,
LUA_REGISTRYINDEX
,
"_LOADED"
);
lua_pushnil
(
lua_state
);
lua_pushnil
(
lua_state
);
lua_setfield
(
lua_state
,
-
2
,
"io"
);
lua_setfield
(
lua_state
,
-
2
,
"io"
);
lua_pushnil
(
lua_state
);
lua_pushnil
(
lua_state
);
lua_setfield
(
lua_state
,
-
2
,
"os"
);
lua_setfield
(
lua_state
,
-
2
,
"os"
);
lua_pushnil
(
lua_state
);
lua_setfield
(
lua_state
,
-
2
,
"package"
);
lua_pop
(
lua_state
,
1
);
lua_pop
(
lua_state
,
1
);
//open all libs
//open all libs
scriptlib
::
open_cardlib
(
lua_state
);
scriptlib
::
open_cardlib
(
lua_state
);
...
...
libeffect.cpp
View file @
7cb7069f
...
@@ -383,7 +383,7 @@ int32 scriptlib::effect_get_owner(lua_State *L) {
...
@@ -383,7 +383,7 @@ int32 scriptlib::effect_get_owner(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
);
interpreter
::
card2value
(
L
,
peffect
->
owner
);
interpreter
::
card2value
(
L
,
peffect
->
get_owner
()
);
return
1
;
return
1
;
}
}
int32
scriptlib
::
effect_get_handler
(
lua_State
*
L
)
{
int32
scriptlib
::
effect_get_handler
(
lua_State
*
L
)
{
...
...
processor.cpp
View file @
7cb7069f
...
@@ -1683,6 +1683,13 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
...
@@ -1683,6 +1683,13 @@ int32 field::process_quick_effect(int16 step, int32 skip_freechain, uint8 priori
core
.
select_chains
.
push_back
(
newchain
);
core
.
select_chains
.
push_back
(
newchain
);
}
}
}
}
pr
=
effects
.
quick_o_effect
.
equal_range
(
ev
.
event_code
);
for
(
auto
eit
=
pr
.
first
;
eit
!=
pr
.
second
;)
{
effect
*
peffect
=
eit
->
second
;
++
eit
;
if
(
peffect
->
is_flag
(
EFFECT_FLAG_DELAY
)
&&
peffect
->
is_condition_check
(
peffect
->
get_handler
()
->
current
.
controler
,
ev
))
core
.
delayed_quick
.
emplace
(
peffect
,
ev
);
}
}
}
// delayed quick
// delayed quick
for
(
auto
eit
=
core
.
delayed_quick
.
begin
();
eit
!=
core
.
delayed_quick
.
end
();)
{
for
(
auto
eit
=
core
.
delayed_quick
.
begin
();
eit
!=
core
.
delayed_quick
.
end
();)
{
...
...
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