Properly record the event of reset_rear_view() while switching levels to make it work right when rewinding as well; Properly record Countdown seconds for each newdemo frame instead of second change to get display showing up right while playback and still preserving backwards compability; Suspend Game_wind when playing endlevel movie while demo playback

This commit is contained in:
zicodxx 2011-03-28 01:39:51 +02:00
parent 6308d5c4b7
commit 8faed77f5f
3 changed files with 11 additions and 7 deletions

View file

@ -1,5 +1,9 @@
D2X-Rebirth Changelog
20110328
--------
main/endlevel.c, main/newdemo.c: Properly record the event of reset_rear_view() while switching levels to make it work right when rewinding as well; Properly record Countdown seconds for each newdemo frame instead of second change to get display showing up right while playback and still preserving backwards compability; Suspend Game_wind when playing endlevel movie while demo playback
20110327
--------
main/physics.c: Another rework for anti-stuck-bumping: Execute after calculation of velocity and add fvi check to make sure we deal with an actual wall collision

View file

@ -294,12 +294,18 @@ void start_endlevel_sequence()
int i;
int movie_played = MOVIE_NOT_PLAYED;
reset_rear_view(); //turn off rear view if set - NOTE: make sure this happens before we pause demo recording!!
if (Newdemo_state == ND_STATE_RECORDING) // stop demo recording
Newdemo_state = ND_STATE_PAUSED;
if (Newdemo_state == ND_STATE_PLAYBACK) { // don't do this if in playback mode
if (PLAYING_BUILTIN_MISSION) // only play movie for built-in mission
{
window_set_visible(Game_wind, 0); // suspend the game, including drawing
start_endlevel_movie();
window_set_visible(Game_wind, 1);
}
strcpy(last_palette_loaded,""); //force palette load next time
return;
}
@ -317,8 +323,6 @@ void start_endlevel_sequence()
Players[Player_num].homing_object_dist = -F1_0; // Turn off homing sound.
reset_rear_view(); //turn off rear view if set
#ifdef NETWORK
if (Game_mode & GM_MULTI) {
multi_send_endlevel_start(0);

View file

@ -197,7 +197,6 @@ static sbyte nd_record_v_no_space;
static sbyte nd_record_v_objs[MAX_OBJECTS];
static sbyte nd_record_v_viewobjs[MAX_OBJECTS];
static sbyte nd_record_v_rendering[32];
static int nd_record_v_countdown_seconds_left = 0;
static int nd_record_v_player_energy = -1;
static fix nd_record_v_player_afterburner = -1;
static int nd_record_v_player_shields = -1;
@ -910,7 +909,6 @@ void newdemo_record_start_demo()
nd_write_int(Players[Player_num].flags); // be sure players flags are set
nd_write_byte((sbyte)Primary_weapon);
nd_write_byte((sbyte)Secondary_weapon);
nd_record_v_countdown_seconds_left = 0;
nd_record_v_start_frame = nd_record_v_frame_number = 0;
nd_record_v_juststarted=1;
newdemo_set_new_level(Current_level_num);
@ -1142,12 +1140,11 @@ void newdemo_record_wall_toggle( int segnum, int side )
void newdemo_record_control_center_destroyed()
{
if (nd_record_v_countdown_seconds_left == Countdown_seconds_left)
if (!nd_record_v_recordframe)
return;
stop_time();
nd_write_byte( ND_EVENT_CONTROL_CENTER_DESTROYED );
nd_write_int( Countdown_seconds_left );
nd_record_v_countdown_seconds_left = Countdown_seconds_left;
start_time();
}
@ -1462,7 +1459,6 @@ void newdemo_set_new_level(int level_num)
segment *seg;
stop_time();
newdemo_record_restore_rearview(); // This is actually switched while loading the new level - not ingame, so do it here.
nd_write_byte(ND_EVENT_NEW_LEVEL);
nd_write_byte((sbyte)level_num);
nd_write_byte((sbyte)Current_level_num);