diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-11-16 13:58:27 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-11-16 13:58:27 +0000 |
| commit | e27e2d8b2a65e1476b275bd35a1148253434f8f3 (patch) | |
| tree | 192b2c461d13e467dc980922c89cdcbe4210922a /src/engine/e_demorec.c | |
| parent | 8769ee1b047b5b02d788f8d76ec2ce22aa224e96 (diff) | |
| download | zcatch-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.c | 9 |
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) { |