The actual problem is within CL_GetDemoMessage(void) where nextdemotime is used to determine if we are rewinding (cls.demotime < nextdemotime). The suggested patch will make sure that nextdemotime is updated for QWD-demos aswell as MVD-demos.
This is the smallest change I could think of with the current layout. A better solution would probably be to set a flag within CL_Demo_Jump(...) where rewind is detected the first time. This way rewind detection (by comparing times) will only be performed in a single place and will work independent of the type of demo.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
0001-Allow-demo-rewind-in-QWD-demos
Interesting, that's it? Nothing else is needed?
The actual problem is within CL_GetDemoMessage(void) where nextdemotime is used to determine if we are rewinding (cls.demotime < nextdemotime). The suggested patch will make sure that nextdemotime is updated for QWD-demos aswell as MVD-demos.
This is the smallest change I could think of with the current layout. A better solution would probably be to set a flag within CL_Demo_Jump(...) where rewind is detected the first time. This way rewind detection (by comparing times) will only be performed in a single place and will work independent of the type of demo.