public MultiplayerGameManager() { LeadingState = new MultiplayerMapState(this); TrailingState0 = new MultiplayerMapState(this, -15); TrailingState1 = new MultiplayerMapState(this, -30); TrailingState2 = new MultiplayerMapState(this, -45); TrailingState3 = new MultiplayerMapState(this, -60); TrailingState4 = new MultiplayerMapState(this, -120); }
void Rollback(MultiplayerMapState Source, MultiplayerMapState Destination) { Destination.Actions.Clear(); Destination.Planets.Clear(); Destination.Fleets.Clear(); foreach (Planet planet in Source.Planets) { Destination.Planets.Add(new Planet(planet)); } foreach (Fleet fleet in Source.Fleets) { Destination.Fleets.Add(new Fleet(fleet)); } Destination.Actions.AddRange((from ga in Source.Actions select ga.CreateCopy())); Destination.Update(Destination.StateFrame - Source.StateFrame); }