When starting, leaving or changing a level in any way, use more ordered approach to set Game_wind visible or invisible. Fixing timer-issues after level-change and makes hiding of Game_wind obsolete for certain messageboxes; Moved GameTime and weapon timer variables out of reset_time since this function is not appropriate for this and is not needed between levels anymore due to window management handling start/stop_time properly
This commit is contained in:
parent
ef4e9e1e17
commit
4e3bf92435
|
@ -1,5 +1,9 @@
|
|||
D1X-Rebirth Changelog
|
||||
|
||||
20100627
|
||||
--------
|
||||
main/game.c, main/game.h, main/gameseq.c: When starting, leaving or changing a level in any way, use more ordered approach to set Game_wind visible or invisible. Fixing timer-issues after level-change and makes hiding of Game_wind obsolete for certain messageboxes; Moved GameTime and weapon timer variables out of reset_time since this function is not appropriate for this and is not needed between levels anymore due to window management handling start/stop_time properly
|
||||
|
||||
20100625
|
||||
--------
|
||||
main/gamecntl.c: Implemented kill_and_so_forth via DEL+SHIFT+B for easier debugging
|
||||
|
|
|
@ -454,7 +454,6 @@ void FixedStepCalc()
|
|||
|
||||
void reset_time()
|
||||
{
|
||||
GameTime = Next_flare_fire_time = Last_laser_fired_time = Next_laser_fire_time = Next_missile_fire_time = 0;
|
||||
last_timer_value = timer_get_fixed_seconds();
|
||||
}
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@ extern int FixedStep; //fixed time bytes stored here
|
|||
extern fix Next_laser_fire_time; // Time at which player can next fire his selected laser.
|
||||
extern fix Last_laser_fired_time;
|
||||
extern fix Next_missile_fire_time; // Time at which player can next fire his selected missile.
|
||||
extern fix Next_flare_fire_time;
|
||||
extern fix Laser_delay_time; // Delay between laser fires.
|
||||
extern int Cheats_enabled;
|
||||
|
||||
|
|
|
@ -338,7 +338,7 @@ void init_player_stats_level()
|
|||
Player_is_dead = 0; // Added by RH
|
||||
Players[Player_num].homing_object_dist = -F1_0; // Added by RH
|
||||
|
||||
Last_laser_fired_time = Next_laser_fire_time = GameTime; // added by RH, solved demo playback bug
|
||||
Next_flare_fire_time = Last_laser_fired_time = Next_laser_fire_time = Next_missile_fire_time = GameTime; // added by RH, solved demo playback bug
|
||||
|
||||
init_gauges();
|
||||
}
|
||||
|
@ -687,7 +687,9 @@ void LoadLevel(int level_num)
|
|||
gr_use_palette_table( "palette.256" );
|
||||
|
||||
show_boxed_message(TXT_LOADING, 0);
|
||||
timer_delay2(1);
|
||||
#ifdef RELEASE
|
||||
timer_delay(F1_0);
|
||||
#endif
|
||||
|
||||
#ifdef NETWORK
|
||||
my_segments_checksum = netmisc_calc_checksum(Segments, sizeof(segment)*(Highest_segment_index+1));
|
||||
|
@ -878,6 +880,9 @@ void PlayerFinishedLevel(int secret_flag)
|
|||
int rval;
|
||||
int was_multi = 0;
|
||||
|
||||
if (Game_wind)
|
||||
window_set_visible(Game_wind, 0);
|
||||
|
||||
//credit the player for hostages
|
||||
Players[Player_num].hostages_rescued_total += Players[Player_num].hostages_on_board;
|
||||
|
||||
|
@ -939,6 +944,9 @@ void PlayerFinishedLevel(int secret_flag)
|
|||
}
|
||||
else if (rval && Game_wind)
|
||||
window_close(Game_wind);
|
||||
|
||||
if (Game_wind)
|
||||
window_set_visible(Game_wind, 1);
|
||||
}
|
||||
|
||||
|
||||
|
@ -950,14 +958,11 @@ void PlayerFinishedLevel(int secret_flag)
|
|||
// Return true if game over.
|
||||
int AdvanceLevel(int secret_flag)
|
||||
{
|
||||
window_set_visible(Game_wind, 0); // suspend the game, including drawing
|
||||
|
||||
Control_center_destroyed = 0;
|
||||
|
||||
#ifdef EDITOR
|
||||
if (PLAYING_BUILTIN_MISSION)
|
||||
{
|
||||
window_set_visible(Game_wind, 1);
|
||||
return 0; //not a real level
|
||||
}
|
||||
#endif
|
||||
|
@ -971,9 +976,6 @@ int AdvanceLevel(int secret_flag)
|
|||
result = multi_endlevel(&secret_flag); // Wait for other players to reach this point
|
||||
if (result) // failed to sync
|
||||
{
|
||||
if (Game_wind)
|
||||
window_set_visible(Game_wind, 1);
|
||||
|
||||
return (Current_level_num == Last_level);
|
||||
}
|
||||
}
|
||||
|
@ -1021,9 +1023,6 @@ int AdvanceLevel(int secret_flag)
|
|||
|
||||
key_flush();
|
||||
|
||||
if (Game_wind)
|
||||
window_set_visible(Game_wind, 1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1037,14 +1036,15 @@ died_in_mine_message(void)
|
|||
return;
|
||||
|
||||
gr_set_current_canvas(NULL);
|
||||
window_set_visible(Game_wind, 0);
|
||||
|
||||
nm_messagebox(NULL, 1, TXT_OK, TXT_DIED_IN_MINE);
|
||||
}
|
||||
|
||||
//called when the player has died
|
||||
void DoPlayerDead()
|
||||
{
|
||||
if (Game_wind)
|
||||
window_set_visible(Game_wind, 0);
|
||||
|
||||
reset_palette_add();
|
||||
|
||||
gr_palette_load (gr_palette);
|
||||
|
@ -1137,6 +1137,8 @@ void DoPlayerDead()
|
|||
StartLevel(1);
|
||||
}
|
||||
|
||||
if (Game_wind)
|
||||
window_set_visible(Game_wind, 1);
|
||||
}
|
||||
|
||||
//called when the player is starting a new level for normal game mode and restore state
|
||||
|
@ -1262,6 +1264,8 @@ void StartNewLevel(int level_num)
|
|||
{
|
||||
hide_menus();
|
||||
|
||||
GameTime = 0;
|
||||
|
||||
load_custom_data(get_level_file(level_num));
|
||||
|
||||
if (!(Game_mode & GM_MULTI)) {
|
||||
|
@ -1390,7 +1394,7 @@ void StartLevel(int random)
|
|||
|
||||
ai_reset_all_paths();
|
||||
ai_init_boss_for_ship();
|
||||
reset_time();
|
||||
// reset_time(); Time is stopped and should be resumed soon. You shall be obsolete!
|
||||
|
||||
reset_rear_view();
|
||||
Auto_fire_fusion_cannon_time = 0;
|
||||
|
|
Loading…
Reference in a new issue