public static RTSRace Deserialize(BinaryReader s, GameState state) { RTSRace race = new RTSRace(); race.FriendlyName = s.ReadString(); int c = s.ReadInt32(); for (int i = 0; i < c; i++) { int ui = s.ReadInt32(); race.Units[ui] = RTSUnitData.Deserialize(s, state, ui); } race.UpdateActiveUnits(); c = s.ReadInt32(); for (int i = 0; i < c; i++) { int bi = s.ReadInt32(); race.Buildings[bi] = RTSBuildingData.Deserialize(s, state, bi); } race.UpdateActiveBuildings(); race.SCAction = state.Scripts[s.ReadString()]; race.SCMovement = state.Scripts[s.ReadString()]; race.SCTargeting = state.Scripts[s.ReadString()]; return(race); }