public PlayerCreation(PlayerProfile profile, Int32 paletteindex) { if (profile == null) throw new ArgumentNullException("profile"); if (paletteindex < 0 || paletteindex > 11) throw new ArgumentOutOfRangeException("paletteindex"); m_profile = profile; m_paletteindex = paletteindex; }
public PlayerSelect(PlayerSelectType type, PlayerProfile profile) { if (type == PlayerSelectType.Profile) { if (profile == null) throw new ArgumentNullException("profile", "profile cannot be null when type = Profile"); m_type = PlayerSelectType.Profile; m_profile = profile; } else if (type == PlayerSelectType.Random) { if (profile != null) throw new ArgumentException("profile must be null when type = Random", "profile"); m_type = PlayerSelectType.Random; m_profile = null; } }
Replay.Recording BuildRecording(String filepath) { if (filepath == null) { throw new ArgumentNullException("filepath"); } ProfileLoader profiles = m_subsystems.GetSubSystem <ProfileLoader>(); if (m_subsystems.GetSubSystem <IO.FileSystem>().DoesFileExist(filepath) == false) { return(null); } IO.TextFile text = m_subsystems.GetSubSystem <IO.FileSystem>().OpenTextFile(filepath); IO.TextSection header = text.GetSection("xnaMugen Replay Header"); IO.TextSection data = text.GetSection("xnaMugen Replay Data"); if (header == null || data == null) { return(null); } Int32 version = header.GetAttribute <Int32>("Version", 0); CombatMode mode = header.GetAttribute <CombatMode>("Combat Mode", CombatMode.None); String p1name = header.GetAttribute <String>("Player 1 Name", null); String p1version = header.GetAttribute <String>("Player 1 Version", null); Int32 p1palette = header.GetAttribute <Int32>("Player 1 Palette", Int32.MinValue); String p2name = header.GetAttribute <String>("Player 2 Name", null); String p2version = header.GetAttribute <String>("Player 2 Version", null); Int32 p2palette = header.GetAttribute <Int32>("Player 2 Palette", Int32.MinValue); String stagepath = header.GetAttribute <String>("Stage Path", null); Int32 seed = header.GetAttribute <Int32>("Seed", Int32.MinValue); if (version != 1 || mode == CombatMode.None || stagepath == null || seed == Int32.MinValue) { return(null); } if (p1name == null || p1version == null || p1palette == Int32.MinValue) { return(null); } PlayerProfile p1profile = profiles.FindPlayerProfile(p1name, p1version); PlayerProfile p2profile = profiles.FindPlayerProfile(p2name, p2version); StageProfile stageprofile = profiles.FindStageProfile(stagepath); if (p1profile == null || p2profile == null || stageprofile == null) { return(null); } Combat.EngineInitialization initsettings = new Combat.EngineInitialization(mode, p1profile, p1palette, p2profile, p2palette, stageprofile, seed); List <Replay.RecordingData> replaydata = new List <Replay.RecordingData>(); Regex line_regex = new Regex(@"^(\d+),\s*(\d+),\s*(\d+),\s*(\d+),\s*(\d+)$", RegexOptions.IgnoreCase); StringConverter converter = profiles.GetSubSystem <StringConverter>(); foreach (String dataline in data.Lines) { Match match = line_regex.Match(dataline); if (match.Success == false) { continue; } Replay.RecordingData inputdata = new Replay.RecordingData( converter.Convert <Int32>(match.Groups[1].Value), converter.Convert <Int32>(match.Groups[2].Value), converter.Convert <Int32>(match.Groups[3].Value), converter.Convert <Int32>(match.Groups[4].Value), converter.Convert <Int32>(match.Groups[5].Value) ); replaydata.Add(inputdata); } return(new Replay.Recording(initsettings, replaydata)); }