Compact laser firing code
This commit is contained in:
parent
901a554e96
commit
788ed1bd70
|
@ -1495,40 +1495,35 @@ void GameProcessFrame(void)
|
||||||
if (allowed_to_fire_laser())
|
if (allowed_to_fire_laser())
|
||||||
FireLaser(); // Fire Laser!
|
FireLaser(); // Fire Laser!
|
||||||
|
|
||||||
|
auto laser_firing_count = Global_laser_firing_count;
|
||||||
if (Auto_fire_fusion_cannon_time) {
|
if (Auto_fire_fusion_cannon_time) {
|
||||||
if (Primary_weapon != primary_weapon_index_t::FUSION_INDEX)
|
if (Primary_weapon != primary_weapon_index_t::FUSION_INDEX)
|
||||||
Auto_fire_fusion_cannon_time = 0;
|
Auto_fire_fusion_cannon_time = 0;
|
||||||
else if (GameTime64 + FrameTime/2 >= Auto_fire_fusion_cannon_time) {
|
else if ((laser_firing_count = (GameTime64 + FrameTime/2 >= Auto_fire_fusion_cannon_time)))
|
||||||
|
{
|
||||||
Auto_fire_fusion_cannon_time = 0;
|
Auto_fire_fusion_cannon_time = 0;
|
||||||
Global_laser_firing_count = 1;
|
|
||||||
} else if (d_tick_step) {
|
} else if (d_tick_step) {
|
||||||
fix bump_amount;
|
const auto rx = (d_rand() - 16384) / 8;
|
||||||
|
const auto rz = (d_rand() - 16384) / 8;
|
||||||
Global_laser_firing_count = 0;
|
const auto &&console = vobjptr(ConsoleObject);
|
||||||
|
auto &rotvel = console->mtype.phys_info.rotvel;
|
||||||
ConsoleObject->mtype.phys_info.rotvel.x += (d_rand() - 16384)/8;
|
rotvel.x += rx;
|
||||||
ConsoleObject->mtype.phys_info.rotvel.z += (d_rand() - 16384)/8;
|
rotvel.z += rz;
|
||||||
|
|
||||||
const auto rand_vec = make_random_vector();
|
const auto rand_vec = make_random_vector();
|
||||||
|
|
||||||
bump_amount = F1_0*4;
|
const auto bump_amount = Fusion_charge > F1_0*2 ? Fusion_charge*4 : F1_0*4;
|
||||||
|
bump_one_object(console, rand_vec, bump_amount);
|
||||||
if (Fusion_charge > F1_0*2)
|
|
||||||
bump_amount = Fusion_charge*4;
|
|
||||||
|
|
||||||
bump_one_object(vobjptr(ConsoleObject), rand_vec, bump_amount);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Global_laser_firing_count = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Global_laser_firing_count)
|
if (laser_firing_count)
|
||||||
Global_laser_firing_count -= do_laser_firing_player();
|
{
|
||||||
|
laser_firing_count -= do_laser_firing_player();
|
||||||
if (Global_laser_firing_count < 0)
|
if (laser_firing_count < 0)
|
||||||
Global_laser_firing_count = 0;
|
laser_firing_count = 0;
|
||||||
|
}
|
||||||
|
Global_laser_firing_count = laser_firing_count;
|
||||||
delayed_autoselect();
|
delayed_autoselect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue