public override void SaveTemporaryMap() { FileStream FS = new FileStream("TempSave.sav", FileMode.Create, FileAccess.Write); BinaryWriter BW = new BinaryWriter(FS); BW.Write(BattleMapPath); BW.Write(typeof(DeathmatchMap).AssemblyQualifiedName); BW.Write(DicMapVariables.Count); foreach (KeyValuePair <string, double> Variables in DicMapVariables) { BW.Write(Variables.Key); BW.Write(Variables.Value); } BW.Write(CursorPosition.X); BW.Write(CursorPosition.Y); BW.Write(CameraPosition.X); BW.Write(CameraPosition.Y); BW.Write(ActivePlayerIndex); BW.Write(GameMode); BW.Write(GameTurn); BW.Write(VictoryCondition); BW.Write(LossCondition); BW.Write(SkillPoint); BW.Write(sndBattleThemeName); BW.Write(FMODSystem.sndActiveBGMName); BW.Write(FMODSystem.GetPosition(FMODSystem.sndActiveBGM)); BW.Write(ListPlayer.Count); foreach (Player ActivePlayer in ListPlayer) { BW.Write(ActivePlayer.Name); BW.Write(ActivePlayer.PlayerType); BW.Write(ActivePlayer.IsHuman); BW.Write(ActivePlayer.Team); BW.Write(ActivePlayer.Color.R); BW.Write(ActivePlayer.Color.G); BW.Write(ActivePlayer.Color.B); BW.Write(ActivePlayer.ListSquad.Count); foreach (Squad ActiveSquad in ActivePlayer.ListSquad) { BW.Write(ActiveSquad.ID); BW.Write(ActiveSquad.CanMove); BW.Write(ActiveSquad.ActionsRemaining); BW.Write(ActiveSquad.X); BW.Write(ActiveSquad.Y); BW.Write(ActiveSquad.Z); BW.Write(ActiveSquad.SquadName); int UnitInSquad = ActiveSquad.UnitsInSquad; BW.Write(UnitInSquad); BW.Write(ActiveSquad.CurrentLeaderIndex); BW.Write(ActiveSquad.CurrentWingmanAIndex); BW.Write(ActiveSquad.CurrentWingmanBIndex); for (int U = 0; U < UnitInSquad; ++U) { ActiveSquad.At(U).QuickSave(BW); } //List of Attacked Teams. BW.Write(ActiveSquad.ListAttackedTeam.Count); for (int U = 0; U < ActiveSquad.ListAttackedTeam.Count; ++U) { BW.Write(ActiveSquad.ListAttackedTeam[U]); } } } BW.Write(ListMapScript.Count); for (int S = 0; S < ListMapScript.Count; S++) { ListMapScript[S].Save(BW); } FS.Close(); BW.Close(); }
public override void SaveTemporaryMap() { FileStream FS = new FileStream("User Data/Saves/TempSave.sav", FileMode.Create, FileAccess.Write); BinaryWriter BW = new BinaryWriter(FS); BW.Write(BattleMapPath); BW.Write(typeof(DeathmatchMap).AssemblyQualifiedName); DataScreen.SaveProgression(BW, PlayerRoster); BW.Write(DicMapVariables.Count); foreach (KeyValuePair <string, double> Variables in DicMapVariables) { BW.Write(Variables.Key); BW.Write(Variables.Value); } BW.Write(CursorPosition.X); BW.Write(CursorPosition.Y); BW.Write(CameraPosition.X); BW.Write(CameraPosition.Y); BW.Write(ActivePlayerIndex); BW.Write(GameTurn); BW.Write(VictoryCondition); BW.Write(LossCondition); BW.Write(SkillPoint); BW.Write(ListBackground.Count); for (int B = 0; B < ListBackground.Count; ++B) { BW.Write(ListBackground[B].AnimationFullPath); } BW.Write(ListForeground.Count); for (int F = 0; F < ListForeground.Count; ++F) { BW.Write(ListForeground[F].AnimationFullPath); } BW.Write(sndBattleThemeName); BW.Write(FMODSystem.sndActiveBGMName); BW.Write(FMODSystem.GetPosition(FMODSystem.sndActiveBGM)); BW.Write(ListPlayer.Count); foreach (Player ActivePlayer in ListPlayer) { BW.Write(ActivePlayer.Name); BW.Write(ActivePlayer.OnlinePlayerType); BW.Write(ActivePlayer.IsPlayerControlled); BW.Write(ActivePlayer.Team); BW.Write(ActivePlayer.Color.R); BW.Write(ActivePlayer.Color.G); BW.Write(ActivePlayer.Color.B); BW.Write(ActivePlayer.ListSquad.Count); foreach (Squad ActiveSquad in ActivePlayer.ListSquad) { BW.Write(ActiveSquad.ID); BW.Write(ActiveSquad.CanMove); BW.Write(ActiveSquad.ActionsRemaining); BW.Write(ActiveSquad.X); BW.Write(ActiveSquad.Y); BW.Write(ActiveSquad.Z); BW.Write(ActiveSquad.SquadName); BW.Write(ActiveSquad.CurrentMovement); BW.Write(ActiveSquad.IsFlying); BW.Write(ActiveSquad.IsUnderTerrain); BW.Write(ActiveSquad.IsPlayerControlled); if (ActiveSquad.SquadAI == null || ActiveSquad.SquadAI.Path == null) { BW.Write(string.Empty); } else { BW.Write(ActiveSquad.SquadAI.Path); } int UnitsInSquad = ActiveSquad.UnitsInSquad; BW.Write(UnitsInSquad); BW.Write(ActiveSquad.CurrentLeaderIndex); BW.Write(ActiveSquad.CurrentWingmanAIndex); BW.Write(ActiveSquad.CurrentWingmanBIndex); for (int U = 0; U < UnitsInSquad; ++U) { ActiveSquad.At(U).QuickSave(BW); } //List of Attacked Teams. BW.Write(ActiveSquad.ListAttackedTeam.Count); for (int U = 0; U < ActiveSquad.ListAttackedTeam.Count; ++U) { BW.Write(ActiveSquad.ListAttackedTeam[U]); } } } for (int P = 0; P < ListPlayer.Count; P++) { for (int S = 0; S < ListPlayer[P].ListSquad.Count; S++) { if (!ListPlayer[P].ListSquad[S].IsDead) { for (int U = 0; U < ListPlayer[P].ListSquad[S].UnitsInSquad; ++U) { for (int C = 0; C < ListPlayer[P].ListSquad[S].At(U).ArrayCharacterActive.Length; C++) { Character ActiveCharacter = ListPlayer[P].ListSquad[S].At(U).ArrayCharacterActive[C]; ActiveCharacter.Effects.QuickSave(BW); } } } } } BW.Write(ListMapScript.Count); for (int S = 0; S < ListMapScript.Count; S++) { ListMapScript[S].Save(BW); } FS.Close(); BW.Close(); }