diff options
author | Andrey Nazarov <skuller@skuller.net> | 2007-08-22 17:54:35 +0000 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2007-08-22 17:54:35 +0000 |
commit | 3632b490722d8c8be9cf9712e9516177c6924f8e (patch) | |
tree | 31309c36833b214d2ffd3e42849fca299843d847 /source/cl_demo.c | |
parent | 1bef88894b7d80308460f480fb84958f65922e02 (diff) |
Pressing HOME/END keys now actually changes selection in menu lists.
Removed ugly hack to get uncompressed length of *.gz files,
FS_GetFileLength returns -1 on these now.
Do not draw demo bar in case getting demofile length failed (*.gz file).
Diffstat (limited to 'source/cl_demo.c')
-rw-r--r-- | source/cl_demo.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/source/cl_demo.c b/source/cl_demo.c index 921f0e4..07dcabe 100644 --- a/source/cl_demo.c +++ b/source/cl_demo.c @@ -404,7 +404,7 @@ static void CL_ParseNextDemoMessage( void ) { CL_ParseServerMessage(); if( cls.demofileSize ) { - pos = FS_Tell( cls.demoplayback ) - cls.demofileFrameOffset; + pos = FS_RawTell( cls.demoplayback ) - cls.demofileFrameOffset; if( pos < 0 ) { pos = 0; } @@ -444,8 +444,7 @@ static void CL_PlayDemo_f( void ) { if( !demofile ) { ext = COM_FileExtension( arg ); if( strcmp( ext, ".dm2" ) ) { - length=Com_sprintf( name, sizeof( name ), "demos/%s.dm2", arg ); - Com_Printf( "%d\n",length); + Com_sprintf( name, sizeof( name ), "demos/%s.dm2", arg ); FS_FOpenFile( name, &demofile, FS_MODE_READ ); } } @@ -478,8 +477,13 @@ static void CL_PlayDemo_f( void ) { } while( cls.state == ca_connected ); length = FS_GetFileLengthNoCache( demofile ); - cls.demofileFrameOffset = FS_Tell( demofile ); - cls.demofileSize = length - cls.demofileFrameOffset; + if( length > 0 ) { + cls.demofileFrameOffset = FS_Tell( demofile ); + cls.demofileSize = length - cls.demofileFrameOffset; + } else { + cls.demofileFrameOffset = 0; + cls.demofileSize = 0; + } if( com_timedemo->integer ) { cls.timeDemoFrames = 0; |