Skip to content

Commit 2d4ca56

Browse files
authored
Merge pull request scp-fs2open#7113 from Goober5000/zero_rad_skip_fireball
add Zero_radius_explosions_skip_fireballs
2 parents a0b6e1a + 8d7a56c commit 2d4ca56

4 files changed

Lines changed: 22 additions & 2 deletions

File tree

code/asteroid/asteroid.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1607,8 +1607,13 @@ static float asteroid_create_explosion(object *objp)
16071607
}
16081608

16091609
fireball_scale_multiplier = asteroid_get_fireball_scale_multiplier(objp->instance);
1610+
auto fireball_radius = objp->radius * fireball_scale_multiplier;
1611+
1612+
if (Zero_radius_explosions_skip_fireballs && fl_near_zero(fireball_radius))
1613+
fireball_objnum = -1;
1614+
else
1615+
fireball_objnum = fireball_create( &objp->pos, fireball_type, FIREBALL_LARGE_EXPLOSION, OBJ_INDEX(objp), fireball_radius, false, &objp->phys_info.vel );
16101616

1611-
fireball_objnum = fireball_create( &objp->pos, fireball_type, FIREBALL_LARGE_EXPLOSION, OBJ_INDEX(objp), objp->radius*fireball_scale_multiplier, false, &objp->phys_info.vel );
16121617
if ( fireball_objnum > -1 ) {
16131618
explosion_life = fireball_lifeleft(&Objects[fireball_objnum]);
16141619
} else {

code/mod_table/mod_table.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,7 @@ bool Show_locked_status_scramble_missions;
182182
bool Disable_expensive_turret_target_check;
183183
float Shield_percent_skips_damage;
184184
float Min_radius_for_persistent_debris;
185+
bool Zero_radius_explosions_skip_fireballs;
185186

186187

187188
#ifdef WITH_DISCORD
@@ -1638,6 +1639,10 @@ void parse_mod_table(const char *filename)
16381639
stuff_float(&Min_radius_for_persistent_debris);
16391640
}
16401641

1642+
if (optional_string("$Zero-radius explosions skip fireballs:")) {
1643+
stuff_boolean(&Zero_radius_explosions_skip_fireballs);
1644+
}
1645+
16411646
// end of options ----------------------------------------
16421647

16431648
// if we've been through once already and are at the same place, force a move
@@ -1884,6 +1889,7 @@ void mod_table_reset()
18841889
Disable_expensive_turret_target_check = false;
18851890
Shield_percent_skips_damage = 0.1f;
18861891
Min_radius_for_persistent_debris = 50.0f;
1892+
Zero_radius_explosions_skip_fireballs = false;
18871893
}
18881894

18891895
void mod_table_set_version_flags()
@@ -1912,4 +1918,7 @@ void mod_table_set_version_flags()
19121918
Disable_expensive_turret_target_check = true;
19131919
Skybox_internal_depth_consistency = true;
19141920
}
1921+
if (mod_supports_version(26, 0, 0)) {
1922+
Zero_radius_explosions_skip_fireballs = true;
1923+
}
19151924
}

code/mod_table/mod_table.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ extern bool Show_locked_status_scramble_missions;
204204
extern bool Disable_expensive_turret_target_check;
205205
extern float Shield_percent_skips_damage;
206206
extern float Min_radius_for_persistent_debris;
207+
extern bool Zero_radius_explosions_skip_fireballs;
207208

208209
void mod_table_init();
209210
void mod_table_post_process();

code/ship/ship.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9786,7 +9786,12 @@ static void ship_dying_frame(object *objp, int ship_num)
97869786
if(fireball_type < 0) {
97879787
fireball_type = default_fireball_type;
97889788
}
9789-
fireball_objnum = fireball_create( &objp->pos, fireball_type, FIREBALL_LARGE_EXPLOSION, OBJ_INDEX(objp), big_rad, false, &objp->phys_info.vel );
9789+
9790+
if (Zero_radius_explosions_skip_fireballs && fl_near_zero(big_rad))
9791+
fireball_objnum = -1;
9792+
else
9793+
fireball_objnum = fireball_create( &objp->pos, fireball_type, FIREBALL_LARGE_EXPLOSION, OBJ_INDEX(objp), big_rad, false, &objp->phys_info.vel );
9794+
97909795
if ( fireball_objnum >= 0 ) {
97919796
explosion_life = fireball_lifeleft(&Objects[fireball_objnum]);
97929797
} else {

0 commit comments

Comments
 (0)