SimulationManager::RewindToState Method

Rewinds to the provided simulation state.

Syntax

void SimulationManager::RewindToState(
const SimulationState&in state,
bool resetCamera = true
)

Parameters

const SimulationState&in state
The state to be restored.

bool resetCamera = true
Optional. If the camera should be reset on rewind.

Return value

None.

Remarks

The method of restoring the simulation state slightly varies depending on the Mode field of the SimulationState class. Some buffers may not be restored at all but are replaced with native game function calls.

The simulation state is obtainable through the SimulationState::SaveState method. This state can also be used to write a save state compatible file for TMInterface. Note that modifying important parts of the state invalidates the current race.

To provide state restoration across game instances, TMInterface uses memory masks to omit restoring instance specific fields such as pointers or arrays.

The method can be called in OnRunStep or OnSimulationStep calls. Note that rewinding to a state in any of these hooks will immediately simulate the next step after the hook. For example, rewinding to a state saved at race time 0, will result in the next call to OnRunStep/OnSimulationStep being at time 10. If you want to apply any immediate input state, make sure to apply it in the same physics step as the call to rewind_to_state.