1
This commit is contained in:
parent
e56703821e
commit
fcc4a1a522
@ -385,58 +385,36 @@ void InternalShot(Creature* c,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
BulletInfo* bullet_info = new BulletInfo();
|
BulletInfo bullet_info;
|
||||||
bullet_info->c = c->GetWeakPtrRef();
|
bullet_info.c = c->GetWeakPtrRef();
|
||||||
bullet_info->weapon_uniid = weapon_uniid;
|
bullet_info.weapon_uniid = weapon_uniid;
|
||||||
bullet_info->weapon_meta = weapon_meta;
|
bullet_info.weapon_meta = weapon_meta;
|
||||||
bullet_info->skill_meta = skill_meta;
|
bullet_info.skill_meta = skill_meta;
|
||||||
bullet_info->bullet_meta = bullet_meta;
|
bullet_info.bullet_meta = bullet_meta;
|
||||||
bullet_info->bullet_born_pos = bullet_born_pos;
|
bullet_info.bullet_born_pos = bullet_born_pos;
|
||||||
bullet_info->bullet_dir = bullet_dir;
|
bullet_info.bullet_dir = bullet_dir;
|
||||||
bullet_info->fly_distance = fly_distance;
|
bullet_info.fly_distance = fly_distance;
|
||||||
bullet_info->delay_time = std::get<3>(tuple);
|
bullet_info.delay_time = std::get<3>(tuple);
|
||||||
bullet_info->recoil_force = std::get<4>(tuple);
|
bullet_info.recoil_force = std::get<4>(tuple);
|
||||||
bullet_info->invincible_buff_uniid = invincible_buff_uniid;
|
bullet_info.invincible_buff_uniid = invincible_buff_uniid;
|
||||||
bullet_info->trace_target_uniid = trace_target_uniid;
|
bullet_info.trace_target_uniid = trace_target_uniid;
|
||||||
bullet_info->keep_shot_animi_timer_ptr = keep_shot_animi_timer_ptr;
|
bullet_info.keep_shot_animi_timer_ptr = keep_shot_animi_timer_ptr;
|
||||||
bullet_info->shot_animi_time = shot_animi_time;
|
bullet_info.shot_animi_time = shot_animi_time;
|
||||||
if (skill_meta &&
|
if (skill_meta &&
|
||||||
(skill_meta->GetMagicId() == MAGIC_AXXF ||
|
(skill_meta->GetMagicId() == MAGIC_AXXF ||
|
||||||
skill_meta->GetMagicId() == MAGIC_HJHX)) {
|
skill_meta->GetMagicId() == MAGIC_HJHX)) {
|
||||||
bullet_info->trace_target_uniid = c->GetSkillTargetId();
|
bullet_info.trace_target_uniid = c->GetSkillTargetId();
|
||||||
}
|
}
|
||||||
if (weapon_meta->i->double_gun() &&
|
if (weapon_meta->i->double_gun() &&
|
||||||
bulletIdx > (int)(bulletNum / 2)) {
|
bulletIdx > (int)(bulletNum / 2)) {
|
||||||
bullet_info->hand = 1;
|
bullet_info.hand = 1;
|
||||||
}
|
}
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (bullet_info->trace_target_uniid) {
|
if (bullet_info.trace_target_uniid) {
|
||||||
a8::XPrintf("bullet trace_target_uniid:%d\n", {bullet_info->trace_target_uniid});
|
a8::XPrintf("bullet trace_target_uniid:%d\n", {bullet_info.trace_target_uniid});
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#if 1
|
InternalCreateBullet(bullet_info);
|
||||||
InternalCreateBullet(*bullet_info);
|
|
||||||
delete bullet_info;
|
|
||||||
bullet_info = nullptr;
|
|
||||||
#else
|
|
||||||
c->room->xtimer.AddDeadLineTimerAndAttach
|
|
||||||
(
|
|
||||||
shot_animi_time / FRAME_RATE_MS,
|
|
||||||
a8::XParams()
|
|
||||||
.SetSender(bullet_info),
|
|
||||||
[] (const a8::XParams& param)
|
|
||||||
{
|
|
||||||
BulletInfo* bullet_info = (BulletInfo*)param.sender.GetUserData();
|
|
||||||
InternalCreateBullet(*bullet_info);
|
|
||||||
},
|
|
||||||
&c->xtimer_attacher.timer_list_,
|
|
||||||
[] (const a8::XParams& param)
|
|
||||||
{
|
|
||||||
BulletInfo* bullet_info = (BulletInfo*)param.sender.GetUserData();
|
|
||||||
delete bullet_info;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
c->GetTrigger()->Shot(weapon_meta);
|
c->GetTrigger()->Shot(weapon_meta);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user