about summary refs log tree commit diff
path: root/src/engine/e_demorec.c
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-11-16 13:58:27 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-11-16 13:58:27 +0000
commite27e2d8b2a65e1476b275bd35a1148253434f8f3 (patch)
tree192b2c461d13e467dc980922c89cdcbe4210922a /src/engine/e_demorec.c
parent8769ee1b047b5b02d788f8d76ec2ce22aa224e96 (diff)
downloadzcatch-e27e2d8b2a65e1476b275bd35a1148253434f8f3.tar.gz
zcatch-e27e2d8b2a65e1476b275bd35a1148253434f8f3.zip
fixed server side demo recording and some possible crashes with incorrect demos
Diffstat (limited to 'src/engine/e_demorec.c')
-rw-r--r--src/engine/e_demorec.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/engine/e_demorec.c b/src/engine/e_demorec.c
index 5b8885ad..051337b6 100644
--- a/src/engine/e_demorec.c
+++ b/src/engine/e_demorec.c
@@ -301,7 +301,7 @@ static void scan_file()
 		
 		if(read_chunk_header(&chunk_type, &chunk_size, &chunk_tick))
 			break;
-		
+			
 		/* read the chunk */
 		if(chunk_type&CHUNKTYPEFLAG_TICKMARKER)
 		{
@@ -512,9 +512,9 @@ int demorec_playback_nextframe()
 int demorec_playback_play()
 {
 	/* fill in previous and next tick */
-	while(playbackinfo.previous_tick == -1)
+	while(playbackinfo.previous_tick == -1 && demorec_isplaying())
 		do_tick();
-
+		
 	/* set start info */
 	/*playbackinfo.start_tick = playbackinfo.previous_tick;
 	playbackinfo.start_time = time_get();*/
@@ -553,6 +553,9 @@ int demorec_playback_update()
 	int64 deltatime = now-playbackinfo.last_update;
 	playbackinfo.last_update = now;
 	
+	if(!demorec_isplaying())
+		return 0;
+	
 	if(playbackinfo.paused)
 	{