From: curt Date: Mon, 22 Mar 2010 00:55:34 +0000 (+0000) Subject: Stomp out a long standing bug in the replay system. Originally we didn't X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=b9b6a3a54ca1f7221406d5c325ac6b29c6894a9b;p=flightgear.git Stomp out a long standing bug in the replay system. Originally we didn't collect flight data while the replay was running, but along the way someone (who shall remain nameless) tweaked a property name and didn't update the name in the replay system. This led to a problem where the replay system continued to collect replayed data into the buffer while it replayed it, leading to an infinite loop. And then due to the tiered recording rate system, you would never see the highly detailed final minute of your flight. This is now fixed! --- diff --git a/src/Aircraft/replay.cxx b/src/Aircraft/replay.cxx index 84663cc93..21c4a1d44 100644 --- a/src/Aircraft/replay.cxx +++ b/src/Aircraft/replay.cxx @@ -142,17 +142,17 @@ void FGReplay::update( double dt ) { timingInfo.clear(); stamp("begin"); static SGPropertyNode *replay_master - = fgGetNode( "/sim/freeze/replay", true ); + = fgGetNode( "/sim/freeze/replay-state", true ); if( disable_replay->getBoolValue() ) { - if( sim_time != 0.0 ) { + if ( sim_time != 0.0 ) { // we were recording data init(); } return; } //stamp("point_01"); - if ( replay_master->getBoolValue() ) { + if ( replay_master->getIntValue() > 0 ) { // don't record the replay session return; } @@ -177,9 +177,9 @@ void FGReplay::update( double dt ) { r = new FGReplayData; stamp("Replay_02"); } else { - r = recycler.front(); - recycler.pop_front(); - //stamp("point_04be"); + r = recycler.front(); + recycler.pop_front(); + //stamp("point_04be"); } r->sim_time = sim_time; //r->ctrls = c;