mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-18 14:08:19 +00:00
Fix use of closed demo file when playback stopped due to error
Check whether the demo file has been closed due to a playback error when calling `DoTick` in loops, to prevent crashes on operating systems with assertions for correct C library usage. On Windows, `warning: Invalid parameter passed to C runtime function` was printed to the debug console in this case.
This commit is contained in:
parent
92206044d1
commit
4845639a00
|
@ -937,7 +937,7 @@ int CDemoPlayer::SetPos(int WantedTick)
|
||||||
m_Info.m_PreviousTick = -1;
|
m_Info.m_PreviousTick = -1;
|
||||||
|
|
||||||
// playback everything until we hit our tick
|
// playback everything until we hit our tick
|
||||||
while(m_Info.m_NextTick < WantedTick)
|
while(m_Info.m_NextTick < WantedTick && IsPlaying())
|
||||||
DoTick();
|
DoTick();
|
||||||
|
|
||||||
Play();
|
Play();
|
||||||
|
@ -976,7 +976,7 @@ int CDemoPlayer::Update(bool RealTime)
|
||||||
{
|
{
|
||||||
m_Info.m_CurrentTime += (int64_t)(Deltatime * (double)m_Info.m_Info.m_Speed);
|
m_Info.m_CurrentTime += (int64_t)(Deltatime * (double)m_Info.m_Info.m_Speed);
|
||||||
|
|
||||||
while(!m_Info.m_Info.m_Paused)
|
while(!m_Info.m_Info.m_Paused && IsPlaying())
|
||||||
{
|
{
|
||||||
int64_t CurtickStart = m_Info.m_Info.m_CurrentTick * Freq / SERVER_TICK_SPEED;
|
int64_t CurtickStart = m_Info.m_Info.m_CurrentTick * Freq / SERVER_TICK_SPEED;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue