Struct ggrs::SyncTestSession
source · pub struct SyncTestSession<T>where
T: Config,{ /* private fields */ }
Expand description
During a SyncTestSession
, GGRS 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<(), GgrsError>
pub fn add_local_input( &mut self, player_handle: PlayerHandle, input: T::Input ) -> Result<(), GgrsError>
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
InvalidRequest
when the given handle is not valid (i.e. not between 0 and num_players).
sourcepub fn advance_frame(&mut self) -> Result<Vec<GgrsRequest<T>>, GgrsError>
pub fn advance_frame(&mut self) -> Result<Vec<GgrsRequest<T>>, GgrsError>
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<GgrsRequest>
.
You should fulfill all requests in the exact order they are provided. Failure to do so will cause panics later.
§Errors
- Returns
MismatchedChecksum
if checksums don’t match after resimulation.
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