pub struct SyncTestSession<T>where
T: Config,{ /* private fields */ }Expand description
During a SyncTestSession, Fortress Rollback will simulate a rollback every frame and resimulate the last n states, where n is the given check distance.
The resimulated checksums will be compared with the original checksums and report if there was a mismatch.
Implementations§
Source§impl<T: Config> SyncTestSession<T>
impl<T: Config> SyncTestSession<T>
Sourcepub fn add_local_input(
&mut self,
player_handle: PlayerHandle,
input: T::Input,
) -> Result<(), FortressError>
pub fn add_local_input( &mut self, player_handle: PlayerHandle, input: T::Input, ) -> Result<(), FortressError>
Registers local input for a player for the current frame. This should be successfully called for every local player before calling advance_frame().
If this is called multiple times for the same player before advancing the frame, older given inputs will be overwritten.
In a sync test, all players are considered to be local, so you need to add input for all of them.
§Errors
- Returns a
FortressErrorwhen the given handle is not valid (i.e. not between 0 and num_players).
Sourcepub fn advance_frame(
&mut self,
) -> Result<Vec<FortressRequest<T>>, FortressError>
pub fn advance_frame( &mut self, ) -> Result<Vec<FortressRequest<T>>, FortressError>
In a sync test, this will advance the state by a single frame and afterwards rollback check_distance amount of frames,
resimulate and compare checksums with the original states. Returns an order-sensitive Vec<FortressRequest>.
You should fulfill all requests in the exact order they are provided. Failure to do so will cause panics later.
§Errors
- Returns
MismatchedChecksumif checksums don’t match after resimulation.
Sourcepub fn current_frame(&self) -> Frame
pub fn current_frame(&self) -> Frame
Returns the current frame of a session.
Sourcepub fn num_players(&self) -> usize
pub fn num_players(&self) -> usize
Returns the number of players this session was constructed with.
Sourcepub fn max_prediction(&self) -> usize
pub fn max_prediction(&self) -> usize
Returns the maximum prediction window of a session.
Sourcepub fn check_distance(&self) -> usize
pub fn check_distance(&self) -> usize
Returns the check distance set on creation, i.e. the length of the simulated rollbacks
Sourcepub fn violation_observer(&self) -> Option<&Arc<dyn ViolationObserver>>
pub fn violation_observer(&self) -> Option<&Arc<dyn ViolationObserver>>
Returns a reference to the violation observer, if one was configured.
This allows checking for violations that occurred during session operations
when using a CollectingObserver or similar.