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!
This commit is contained in:
parent
89023eda69
commit
b9b6a3a54c
1 changed files with 6 additions and 6 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue