Skip to content

Commit f089e7e

Browse files
authored
Merge pull request #2402 from HDR-Development/grab-bag
Grab Bag Touchups
2 parents 815ec59 + 1ace782 commit f089e7e

File tree

13 files changed

+127
-59
lines changed

13 files changed

+127
-59
lines changed

fighters/edge/src/flash/acmd.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,9 @@ unsafe extern "C" fn game_attack(agent: &mut L2CAgentBase) {
8484
let boma = agent.boma();
8585
if is_excute(agent) {
8686
let owner = &mut *sv_battle_object::module_accessor((WorkModule::get_int(boma, *WEAPON_INSTANCE_WORK_ID_INT_LINK_OWNER)) as u32);
87-
ArticleModule::remove(owner, *FIGHTER_EDGE_GENERATE_ARTICLE_FLASH, ArticleOperationTarget(*ARTICLE_OPE_TARGET_ALL));
87+
if owner.kind() == *FIGHTER_KIND_EDGE {
88+
ArticleModule::remove(owner, *FIGHTER_EDGE_GENERATE_ARTICLE_FLASH, ArticleOperationTarget(*ARTICLE_OPE_TARGET_ALL));
89+
}
8890
ATTACK(agent, 0, 0, Hash40::new("top"), 2.0, 366, 65, 60, 40, 12.0, 0.0, 1.5, 0.0, None, None, None, 0.8, 0.5, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_POS, true, -1, 0.0, 5, true, true, false, false, false, *COLLISION_SITUATION_MASK_GA, *COLLISION_CATEGORY_MASK_ALL, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_sting_flash"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_CUTUP, *ATTACK_REGION_MAGIC);
8991
}
9092
frame(lua_state, 15.0);

fighters/edge/src/flash/status.rs

+48-44
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,18 @@ unsafe extern "C" fn wait_main(weapon: &mut L2CWeaponCommon) -> L2CValue {
55
MotionModule::change_motion(weapon.module_accessor, Hash40::new("wait"), 0.0, 1.0, false, 0.0, false, false);
66
let owner_id = WorkModule::get_int(weapon.module_accessor, *WEAPON_INSTANCE_WORK_ID_INT_LINK_OWNER) as u32;
77
let edge = utils::util::get_battle_object_from_id(owner_id);
8+
GroundModule::set_collidable(weapon.module_accessor, false);
9+
if (&mut *(*edge).module_accessor).kind() != *FIGHTER_KIND_EDGE {
10+
StatusModule::change_status_force(weapon.module_accessor, statuses::edge_flash::BURST, false);
11+
return 1.into()
12+
}
813
let life = ParamModule::get_int(edge, ParamType::Agent, "param_flash.life");
914
VarModule::set_int(weapon.battle_object, vars::edge_flash::status::LIFE, life);
10-
GroundModule::set_collidable(weapon.module_accessor, false);
11-
if (&mut *(*edge).module_accessor).kind() == *FIGHTER_KIND_EDGE {
12-
if VarModule::is_flag(edge, vars::edge::status::FLASH_HOLD) {
13-
let pos_x = PostureModule::pos_x(weapon.module_accessor);
14-
let pos_y = PostureModule::pos_y(weapon.module_accessor);
15-
let offset_x = ParamModule::get_float(edge, ParamType::Agent, "param_flash.hold_offset_x");
16-
PostureModule::set_pos(weapon.module_accessor, &Vector3f::new(pos_x + (offset_x * PostureModule::lr(weapon.module_accessor)), pos_y, 0.0));
17-
}
15+
if VarModule::is_flag(edge, vars::edge::status::FLASH_HOLD) {
16+
let pos_x = PostureModule::pos_x(weapon.module_accessor);
17+
let pos_y = PostureModule::pos_y(weapon.module_accessor);
18+
let offset_x = ParamModule::get_float(edge, ParamType::Agent, "param_flash.hold_offset_x");
19+
PostureModule::set_pos(weapon.module_accessor, &Vector3f::new(pos_x + (offset_x * PostureModule::lr(weapon.module_accessor)), pos_y, 0.0));
1820
}
1921
weapon.fastshift(L2CValue::Ptr(wait_main_loop as *const () as _))
2022
}
@@ -27,46 +29,48 @@ unsafe extern "C" fn wait_main_loop(weapon: &mut L2CWeaponCommon) -> L2CValue {
2729
StatusModule::change_status_force(weapon.module_accessor, statuses::edge_flash::VANISH, false);
2830
return 1.into()
2931
}
30-
// burst
31-
if edge_boma.is_status_one_of(&[*FIGHTER_EDGE_STATUS_KIND_SPECIAL_HI_RUSH, *FIGHTER_EDGE_STATUS_KIND_SPECIAL_HI_CHARGED_RUSH]) {
32-
let pos_x = PostureModule::pos_x(weapon.module_accessor) - PostureModule::pos_x(edge_boma);
33-
let pos_y = PostureModule::pos_y(weapon.module_accessor) - PostureModule::pos_y(edge_boma);
34-
let dist_mod_x = ParamModule::get_float(edge, ParamType::Agent, "param_flash.burst_dist_mod_x") * PostureModule::scale(weapon.module_accessor);
35-
let dist_mod_y = ParamModule::get_float(edge, ParamType::Agent, "param_flash.burst_dist_mod_y") * PostureModule::scale(weapon.module_accessor);
36-
if pos_x.abs() < dist_mod_x && pos_y.abs() < dist_mod_y {
37-
if PostureModule::lr(edge_boma).signum() != PostureModule::lr(weapon.module_accessor).signum() {
38-
PostureModule::reverse_lr(weapon.module_accessor);
32+
if edge_boma.kind() == *FIGHTER_KIND_EDGE {
33+
// burst
34+
if edge_boma.is_status_one_of(&[*FIGHTER_EDGE_STATUS_KIND_SPECIAL_HI_RUSH, *FIGHTER_EDGE_STATUS_KIND_SPECIAL_HI_CHARGED_RUSH]) {
35+
let pos_x = PostureModule::pos_x(weapon.module_accessor) - PostureModule::pos_x(edge_boma);
36+
let pos_y = PostureModule::pos_y(weapon.module_accessor) - PostureModule::pos_y(edge_boma);
37+
let dist_mod_x = ParamModule::get_float(edge, ParamType::Agent, "param_flash.burst_dist_mod_x") * PostureModule::scale(weapon.module_accessor);
38+
let dist_mod_y = ParamModule::get_float(edge, ParamType::Agent, "param_flash.burst_dist_mod_y") * PostureModule::scale(weapon.module_accessor);
39+
if pos_x.abs() < dist_mod_x && pos_y.abs() < dist_mod_y {
40+
if PostureModule::lr(edge_boma).signum() != PostureModule::lr(weapon.module_accessor).signum() {
41+
PostureModule::reverse_lr(weapon.module_accessor);
42+
}
43+
SoundModule::play_se(weapon.module_accessor, Hash40::new("se_edge_special_l04"), true, false, false, false, app::enSEType(0));
44+
StatusModule::change_status_force(weapon.module_accessor, statuses::edge_flash::BURST, false);
45+
return 1.into()
3946
}
40-
SoundModule::play_se(weapon.module_accessor, Hash40::new("se_edge_special_l04"), true, false, false, false, app::enSEType(0));
41-
StatusModule::change_status_force(weapon.module_accessor, statuses::edge_flash::BURST, false);
42-
return 1.into()
4347
}
44-
}
45-
// refine flare
46-
if VarModule::get_int(edge, vars::edge::instance::FIRE_ID) != -1 {
47-
let pos_x = VarModule::get_float(edge, vars::edge::instance::FIRE_POS_X) - PostureModule::pos_x(weapon.module_accessor);
48-
let pos_y = VarModule::get_float(edge, vars::edge::instance::FIRE_POS_Y) - PostureModule::pos_y(weapon.module_accessor);
49-
let dist_mod_x = ParamModule::get_float(edge, ParamType::Agent, "param_flash.refine_dist_mod_x") * PostureModule::scale(weapon.module_accessor);
50-
let dist_mod_y = ParamModule::get_float(edge, ParamType::Agent, "param_flash.refine_dist_mod_y") * PostureModule::scale(weapon.module_accessor);
51-
if pos_x.abs() < dist_mod_x && pos_y.abs() < dist_mod_y {
52-
if VarModule::get_int(weapon.battle_object, vars::edge_flash::status::REFINE_COOLDOWN) <= 0 {
53-
let cooldown = ParamModule::get_int(edge, ParamType::Agent, "param_flash.refine_cooldown");
54-
VarModule::set_int(weapon.battle_object, vars::edge_flash::status::REFINE_COOLDOWN, cooldown);
55-
VarModule::on_flag(edge, vars::edge::instance::FLASH_REFINE);
48+
// refine flare
49+
if VarModule::get_int(edge, vars::edge::instance::FIRE_ID) != -1 {
50+
let pos_x = VarModule::get_float(edge, vars::edge::instance::FIRE_POS_X) - PostureModule::pos_x(weapon.module_accessor);
51+
let pos_y = VarModule::get_float(edge, vars::edge::instance::FIRE_POS_Y) - PostureModule::pos_y(weapon.module_accessor);
52+
let dist_mod_x = ParamModule::get_float(edge, ParamType::Agent, "param_flash.refine_dist_mod_x") * PostureModule::scale(weapon.module_accessor);
53+
let dist_mod_y = ParamModule::get_float(edge, ParamType::Agent, "param_flash.refine_dist_mod_y") * PostureModule::scale(weapon.module_accessor);
54+
if pos_x.abs() < dist_mod_x && pos_y.abs() < dist_mod_y {
55+
if VarModule::get_int(weapon.battle_object, vars::edge_flash::status::REFINE_COOLDOWN) <= 0 {
56+
let cooldown = ParamModule::get_int(edge, ParamType::Agent, "param_flash.refine_cooldown");
57+
VarModule::set_int(weapon.battle_object, vars::edge_flash::status::REFINE_COOLDOWN, cooldown);
58+
VarModule::on_flag(edge, vars::edge::instance::FLASH_REFINE);
59+
}
5660
}
5761
}
58-
}
59-
// refract shadow flare
60-
if VarModule::get_int(edge, vars::edge::instance::FLARE1_ID) != -1 {
61-
let pos_x = VarModule::get_float(edge, vars::edge::instance::FLARE1_POS_X) - PostureModule::pos_x(weapon.module_accessor);
62-
let pos_y = VarModule::get_float(edge, vars::edge::instance::FLARE2_POS_Y) - PostureModule::pos_y(weapon.module_accessor);
63-
let dist_mod_x = ParamModule::get_float(edge, ParamType::Agent, "param_flash.refract_dist_mod_x") * PostureModule::scale(weapon.module_accessor);
64-
let dist_mod_y = ParamModule::get_float(edge, ParamType::Agent, "param_flash.refract_dist_mod_y") * PostureModule::scale(weapon.module_accessor);
65-
if pos_x.abs() < dist_mod_x && pos_y.abs() < dist_mod_y {
66-
let cooldown = ParamModule::get_int(edge, ParamType::Agent, "param_flash.refract_cooldown");
67-
VarModule::set_int(weapon.battle_object, vars::edge_flash::status::REFRACT_COOLDOWN, cooldown);
68-
VarModule::on_flag(edge, vars::edge::instance::FLASH_REFRACT);
69-
}
62+
// refract shadow flare
63+
if VarModule::get_int(edge, vars::edge::instance::FLARE1_ID) != -1 {
64+
let pos_x = VarModule::get_float(edge, vars::edge::instance::FLARE1_POS_X) - PostureModule::pos_x(weapon.module_accessor);
65+
let pos_y = VarModule::get_float(edge, vars::edge::instance::FLARE2_POS_Y) - PostureModule::pos_y(weapon.module_accessor);
66+
let dist_mod_x = ParamModule::get_float(edge, ParamType::Agent, "param_flash.refract_dist_mod_x") * PostureModule::scale(weapon.module_accessor);
67+
let dist_mod_y = ParamModule::get_float(edge, ParamType::Agent, "param_flash.refract_dist_mod_y") * PostureModule::scale(weapon.module_accessor);
68+
if pos_x.abs() < dist_mod_x && pos_y.abs() < dist_mod_y {
69+
let cooldown = ParamModule::get_int(edge, ParamType::Agent, "param_flash.refract_cooldown");
70+
VarModule::set_int(weapon.battle_object, vars::edge_flash::status::REFRACT_COOLDOWN, cooldown);
71+
VarModule::on_flag(edge, vars::edge::instance::FLASH_REFRACT);
72+
}
73+
}
7074
}
7175

7276
return 0.into()

fighters/falco/src/status/special_lw.rs

+50-3
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,9 @@ unsafe extern "C" fn special_lw_exec(fighter: &mut L2CFighterCommon) -> L2CValue
153153
}
154154

155155
unsafe extern "C" fn special_lw_end(fighter: &mut L2CFighterCommon) -> L2CValue {
156-
if StatusModule::status_kind_next(fighter.module_accessor) != statuses::falco::SPECIAL_LW_LOOP {
156+
if StatusModule::status_kind_next(fighter.module_accessor) != statuses::falco::SPECIAL_LW_LOOP
157+
&& StatusModule::status_kind_next(fighter.module_accessor) != statuses::falco::SPECIAL_LW_HIT
158+
&& StatusModule::status_kind_next(fighter.module_accessor) != statuses::falco::SPECIAL_LW_END {
157159
VarModule::set_flag(fighter.battle_object, vars::falco::instance::SPECIAL_LW_DISABLE_STALL, fighter.global_table[SITUATION_KIND] == SITUATION_KIND_AIR);
158160
}
159161
0.into()
@@ -265,7 +267,8 @@ unsafe extern "C" fn special_lw_loop_main_loop(fighter: &mut L2CFighterCommon) -
265267
}
266268

267269
unsafe extern "C" fn special_lw_loop_end(fighter: &mut L2CFighterCommon) -> L2CValue {
268-
if StatusModule::status_kind_next(fighter.module_accessor) != statuses::falco::SPECIAL_LW_END {
270+
if StatusModule::status_kind_next(fighter.module_accessor) != statuses::falco::SPECIAL_LW_END
271+
&& StatusModule::status_kind_next(fighter.module_accessor) != statuses::falco::SPECIAL_LW_HIT {
269272
VarModule::set_flag(fighter.battle_object, vars::falco::instance::SPECIAL_LW_DISABLE_STALL, fighter.global_table[SITUATION_KIND] == SITUATION_KIND_AIR);
270273
}
271274
0.into()
@@ -508,8 +511,51 @@ unsafe extern "C" fn special_lw_hit_main_loop(fighter: &mut L2CFighterCommon) ->
508511
return 0.into();
509512
}
510513

514+
unsafe extern "C" fn special_lw_hit_exec(fighter: &mut L2CFighterCommon) -> L2CValue {
515+
if fighter.global_table[SITUATION_KIND] != SITUATION_KIND_AIR {
516+
return 0.into();
517+
}
518+
let stop_y_frame = ParamModule::get_int(fighter.battle_object, ParamType::Agent, "param_special_lw.reflector_air_stop_y_frame");
519+
if stop_y_frame != 0 {
520+
let work_stop_y_frame = VarModule::get_int(fighter.battle_object, vars::falco::status::SPECIAL_LW_STOP_Y_FRAME);
521+
KineticModule::enable_energy(fighter.module_accessor, *FIGHTER_KINETIC_ENERGY_ID_GRAVITY);
522+
if work_stop_y_frame - 1 <= 0 {
523+
let mut reflector_air_accel_y = ParamModule::get_float(fighter.battle_object, ParamType::Agent, "param_special_lw.reflector_air_accel_y");
524+
if VarModule::is_flag(fighter.battle_object, vars::falco::instance::SPECIAL_LW_DISABLE_STALL) {
525+
reflector_air_accel_y = WorkModule::get_param_float(fighter.module_accessor, hash40("air_accel_y"), 0);
526+
}
527+
sv_kinetic_energy!(
528+
set_accel,
529+
fighter,
530+
FIGHTER_KINETIC_ENERGY_ID_GRAVITY,
531+
-reflector_air_accel_y
532+
);
533+
}
534+
else {
535+
sv_kinetic_energy!(
536+
set_speed,
537+
fighter,
538+
FIGHTER_KINETIC_ENERGY_ID_GRAVITY,
539+
0.0
540+
);
541+
sv_kinetic_energy!(
542+
set_accel,
543+
fighter,
544+
FIGHTER_KINETIC_ENERGY_ID_GRAVITY,
545+
0.0
546+
);
547+
}
548+
VarModule::set_int(fighter.battle_object, vars::falco::status::SPECIAL_LW_STOP_Y_FRAME, work_stop_y_frame - 1);
549+
}
550+
0.into()
551+
}
552+
511553
unsafe extern "C" fn special_lw_hit_end(fighter: &mut L2CFighterCommon) -> L2CValue {
512-
return 0.into();
554+
if StatusModule::status_kind_next(fighter.module_accessor) != statuses::falco::SPECIAL_LW_END
555+
&& StatusModule::status_kind_next(fighter.module_accessor) != statuses::falco::SPECIAL_LW_LOOP {
556+
VarModule::set_flag(fighter.battle_object, vars::falco::instance::SPECIAL_LW_DISABLE_STALL, fighter.global_table[SITUATION_KIND] == SITUATION_KIND_AIR);
557+
}
558+
0.into()
513559
}
514560

515561
unsafe extern "C" fn special_lw_hit_motion_helper(fighter: &mut L2CFighterCommon) {
@@ -556,5 +602,6 @@ pub fn install(agent: &mut Agent) {
556602

557603
agent.status(Pre, statuses::falco::SPECIAL_LW_HIT, special_lw_hit_pre);
558604
agent.status(Main, statuses::falco::SPECIAL_LW_HIT, special_lw_hit_main);
605+
agent.status(Exec, statuses::falco::SPECIAL_LW_HIT, special_lw_hit_exec);
559606
agent.status(End, statuses::falco::SPECIAL_LW_HIT, special_lw_hit_end);
560607
}

fighters/jack/src/status/dispatch.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,9 @@ unsafe extern "C" fn dispatch_main_loop(fighter: &mut L2CFighterCommon) -> L2CVa
8181
FIGHTER_STATUS_KIND_WAIT
8282
};
8383
fighter.change_status(status.into(), false.into());
84+
return 1.into();
8485
}
85-
0.into()
86+
return 0.into();
8687
}
8788

8889
pub fn install(agent: &mut Agent) {

fighters/jack/src/status/summon.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,9 @@ unsafe extern "C" fn summon_main_loop(fighter: &mut L2CFighterCommon) -> L2CValu
8989
FIGHTER_STATUS_KIND_WAIT
9090
};
9191
fighter.change_status(status.into(), false.into());
92+
return 1.into();
9293
}
93-
0.into()
94+
return 0.into();
9495
}
9596

9697
pub fn install(agent: &mut Agent) {

fighters/ken/src/acmd/finals.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ unsafe extern "C" fn game_final(agent: &mut L2CAgentBase) {
2828
frame(lua_state, 10.0);
2929
FT_MOTION_RATE(agent, 15.0);
3030
if is_excute(agent) {
31-
ATTACK(agent, 0, 0, Hash40::new("top"), 1.0, 365, 100, 48, 17, 11.0, 0.0, 8.0, 8.0, None, None, None, 0.0, 0.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, true, false, *COLLISION_SITUATION_MASK_G, *COLLISION_CATEGORY_MASK_NO_FLOOR, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_paralyze"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_NONE, *ATTACK_REGION_NONE);
32-
ATTACK(agent, 1, 0, Hash40::new("top"), 1.0, 365, 100, 48, 17, 11.0, 0.0, 8.0, 8.0, None, None, None, 0.0, 0.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, true, false, *COLLISION_SITUATION_MASK_A, *COLLISION_CATEGORY_MASK_NO_FLOOR, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_paralyze"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_NONE, *ATTACK_REGION_NONE);
31+
ATTACK(agent, 0, 0, Hash40::new("top"), 6.0, 365, 100, 48, 17, 11.0, 0.0, 8.0, 8.0, None, None, None, 0.0, 0.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, true, false, *COLLISION_SITUATION_MASK_G, *COLLISION_CATEGORY_MASK_NO_FLOOR, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_paralyze"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_NONE, *ATTACK_REGION_NONE);
32+
ATTACK(agent, 1, 0, Hash40::new("top"), 6.0, 365, 100, 48, 17, 11.0, 0.0, 8.0, 8.0, None, None, None, 0.0, 0.0, *ATTACK_SETOFF_KIND_OFF, *ATTACK_LR_CHECK_F, false, 0, 0.0, 0, false, false, false, true, false, *COLLISION_SITUATION_MASK_A, *COLLISION_CATEGORY_MASK_NO_FLOOR, *COLLISION_PART_MASK_ALL, false, Hash40::new("collision_attr_paralyze"), *ATTACK_SOUND_LEVEL_M, *COLLISION_SOUND_ATTR_NONE, *ATTACK_REGION_NONE);
3333
AttackModule::set_no_dead_all(boma, true, false);
3434
AttackModule::set_no_uniq_effect_all(boma, true, false);
3535
AttackModule::set_damage_shake_scale(boma, 0.18);

fighters/ken/src/opff.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ unsafe fn meter_module(fighter: &mut L2CFighterCommon, boma: &mut BattleObjectMo
191191
].contains(&status_kind) {
192192
end_magic_series(fighter, boma, status_kind, situation_kind);
193193
let meter_amount = MeterModule::meter(fighter.battle_object);
194-
MeterModule::drain_direct(fighter.battle_object, meter_amount);
194+
MeterModule::drain_direct(fighter.battle_object, meter_amount * 2.0 / 3.0);
195195
}
196196
}
197197

@@ -374,6 +374,7 @@ unsafe fn metered_cancels(fighter: &mut L2CFighterCommon, boma: &mut BattleObjec
374374
let cat4 = fighter.global_table[CMD_CAT4].get_i32();
375375
let is_special = fighter.is_cat_flag(Cat1::SpecialAny);
376376
if is_special
377+
&& fighter.is_situation(*SITUATION_KIND_GROUND)
377378
&& cat4 & *FIGHTER_PAD_CMD_CAT4_FLAG_SUPER_SPECIAL_COMMAND != 0 {
378379
if VarModule::is_flag(fighter.battle_object, vars::shotos::instance::IS_MAGIC_SERIES_CANCEL) {
379380
AttackModule::clear_all(fighter.module_accessor);

fighters/ken/src/status/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ pub unsafe extern "C" fn ken_check_special_command(fighter: &mut L2CFighterCommo
261261

262262
// the supers
263263
if is_special
264+
&& fighter.is_situation(*SITUATION_KIND_GROUND)
264265
&& cat4 & *FIGHTER_PAD_CMD_CAT4_FLAG_SUPER_SPECIAL_COMMAND != 0
265266
&& WorkModule::is_enable_transition_term(fighter.module_accessor, *FIGHTER_STATUS_TRANSITION_TERM_ID_CONT_SPECIAL_N_COMMAND) {
266267
if VarModule::is_flag(fighter.battle_object, vars::shotos::instance::IS_MAGIC_SERIES_CANCEL) {

0 commit comments

Comments
 (0)