@@ -209,7 +209,8 @@ Player::Player(PlayerStatus& player_status, const std::string& name_, int player
209
209
m_does_buttjump(false ),
210
210
m_invincible_timer(),
211
211
m_skidding_timer(),
212
- m_safe_timer(),
212
+ m_post_damage_safety_timer(),
213
+ m_temp_safety_timer(),
213
214
m_is_intentionally_safe(false ),
214
215
m_kick_timer(),
215
216
m_buttjump_timer(),
@@ -2256,7 +2257,7 @@ Player::draw(DrawingContext& context)
2256
2257
Vector draw_pos = get_pos () + context.get_time_offset () * m_physic.get_velocity ();
2257
2258
2258
2259
/* Draw Tux */
2259
- if (!m_visible || (m_safe_timer .started () && !m_is_intentionally_safe && size_t (g_game_time * 40 ) % 2 ))
2260
+ if (!m_visible || (m_post_damage_safety_timer .started () && size_t (g_game_time * 40 ) % 2 ))
2260
2261
{
2261
2262
} // don't draw Tux
2262
2263
@@ -2387,7 +2388,7 @@ Player::collision(MovingObject& other, const CollisionHit& hit)
2387
2388
2388
2389
auto badguy = dynamic_cast <BadGuy*> (&other);
2389
2390
if (badguy != nullptr ) {
2390
- if (m_is_intentionally_safe || m_safe_timer .started () || m_invincible_timer.started ())
2391
+ if (m_is_intentionally_safe || m_post_damage_safety_timer. started () || m_temp_safety_timer .started () || m_invincible_timer.started ())
2391
2392
return FORCE_MOVE;
2392
2393
if (m_stone)
2393
2394
return ABORT_MOVE;
@@ -2423,8 +2424,7 @@ Player::make_invincible()
2423
2424
void
2424
2425
Player::make_temporarily_safe (float safe_time)
2425
2426
{
2426
- m_safe_timer.start (safe_time);
2427
- m_is_intentionally_safe = true ;
2427
+ m_temp_safety_timer.start (safe_time);
2428
2428
}
2429
2429
2430
2430
void
@@ -2433,7 +2433,7 @@ Player::kill(bool completely)
2433
2433
if (m_dying || m_deactivated || is_winning () )
2434
2434
return ;
2435
2435
2436
- if (!completely && (m_is_intentionally_safe || m_safe_timer .started () || m_invincible_timer.started ()))
2436
+ if (!completely && (m_is_intentionally_safe || m_post_damage_safety_timer. started () || m_temp_safety_timer .started () || m_invincible_timer.started ()))
2437
2437
return ;
2438
2438
2439
2439
m_growing = false ;
@@ -2451,14 +2451,12 @@ Player::kill(bool completely)
2451
2451
2452
2452
if (get_bonus () > BONUS_GROWUP)
2453
2453
{
2454
- m_safe_timer.start (TUX_SAFE_TIME);
2455
- m_is_intentionally_safe = false ;
2454
+ m_post_damage_safety_timer.start (TUX_SAFE_TIME);
2456
2455
set_bonus (BONUS_GROWUP, true );
2457
2456
}
2458
2457
else if (get_bonus () == BONUS_GROWUP)
2459
2458
{
2460
- m_safe_timer.start (TUX_SAFE_TIME /* + GROWING_TIME */ );
2461
- m_is_intentionally_safe = false ;
2459
+ m_post_damage_safety_timer.start (TUX_SAFE_TIME /* + GROWING_TIME */ );
2462
2460
m_duck = false ;
2463
2461
m_crawl = false ;
2464
2462
stop_backflipping ();
@@ -2477,7 +2475,8 @@ Player::kill(bool completely)
2477
2475
2478
2476
m_physic.enable_gravity (true );
2479
2477
m_physic.set_gravity_modifier (1 .0f ); // Undo jump_early_apex
2480
- m_safe_timer.stop ();
2478
+ m_post_damage_safety_timer.stop ();
2479
+ m_temp_safety_timer.stop ();
2481
2480
m_invincible_timer.stop ();
2482
2481
m_physic.set_acceleration (0 , 0 );
2483
2482
m_physic.set_velocity (0 , -700 );
@@ -2571,7 +2570,7 @@ Player::check_bounds()
2571
2570
/* fallen out of the level? */
2572
2571
if ((get_pos ().y > Sector::get ().get_height ())
2573
2572
&& !m_ghost_mode
2574
- && !(m_is_intentionally_safe && m_safe_timer .started () )) {
2573
+ && !m_temp_safety_timer .started ()) {
2575
2574
kill (true );
2576
2575
return ;
2577
2576
}
@@ -2983,7 +2982,8 @@ Player::multiplayer_prepare_spawn()
2983
2982
{
2984
2983
m_physic.enable_gravity (true );
2985
2984
m_physic.set_gravity_modifier (1 .0f ); // Undo jump_early_apex
2986
- m_safe_timer.stop ();
2985
+ m_post_damage_safety_timer.stop ();
2986
+ m_temp_safety_timer.stop ();
2987
2987
m_invincible_timer.stop ();
2988
2988
m_physic.set_acceleration (0 , -9999 );
2989
2989
m_physic.set_velocity (0 , -9999 );
0 commit comments