/// <summary> /// Calculates a hash integer that defines a unique hash for the message /// Only LVL, ENG, the Originator, OWN and the First parameter of the TXT will be taken in account. /// BEWARE: there are rare occasions where two messages are considered equal although they are not. Your code should be fault tolerant to these conditions /// The Salt can be use to add a random or other string-source to the Hash /// </summary> /// <param name="Salt"></param> /// <returns></returns> public int GetHash(string Salt) { int hash = 0; if (!string.IsNullOrEmpty(Salt)) { hash += Salt.GetHashCode(); } hash += LVL.GetHashCode(); if (!string.IsNullOrEmpty(ENG)) { hash += ENG.GetHashCode(); } hash += GetOriginator().GetHashCode(); if (!string.IsNullOrEmpty(OWN)) { hash += OWN.GetHashCode(); } string[] t = TheCommonUtils.cdeSplit(TXT, ";:;", false, false); if (t != null && t.Length > 0 && !string.IsNullOrEmpty(t[0])) { hash += t[0].GetHashCode(); } return(hash); }
public DeepField(LVL lvl) { InitializeComponent(); for (var y = 0; y < lvl.Height; y++) { for (var x = 0; x < lvl.Widgth; x++) { Controls.Add(lvl.DeepArray[x, y]); } } }
// Constractor for users loaded from DB. public User(int UserID, string name, string pass, LVL LVL, DateTime memberSince) { this.UserID = UserID; this.username = name; this.password = pass; this.LVL = LVL; this.MemberSince = memberSince; // Initialize lists. this.Saves = new List <Event>(); this.MyEvents = new List <Event>(); }
// //Methods // public List <User> LoadUsers() { List <User> UL = new List <User>(); using (SqlConnection conn = new SqlConnection(this.ConnectionString)){ try { conn.Open(); } catch (SqlException ex) { throw new Exception("Server is under maintenance. Please try again later. Thank you!!", ex); } using (SqlCommand command = new SqlCommand("Select * from Users", conn)) { using (SqlDataReader reader = command.ExecuteReader()) { if (reader.HasRows) { while (reader.Read()) { int UserID = (int)reader["UserID"]; string username = (string)reader["username"]; string password = (string)reader["password"]; LVL LVL = (LVL)Enum.Parse(typeof(LVL), reader["LVL"].ToString()); var MemberSince = reader["MemberSince"].ToString(); UL.Add(new User(UserID, username, password, LVL, DateTime.Parse(MemberSince))); } } } } } return(UL); }
public int CalculateMaxEXP() { MaxEXP = LVL.GetValue() * 100; return(MaxEXP); }
protected override async Task Load() { try { if (gameDataBinFolder == null || gameDataBinFolder.Trim().Equals("")) { throw new Exception("GAMEDATABIN folder doesn't exist"); } if (lvlName == null || lvlName.Trim() == "") { throw new Exception("No level name specified!"); } globals = new Globals(); gameDataBinFolder += "/"; await FileSystem.CheckDirectory(gameDataBinFolder); if (!FileSystem.DirectoryExists(gameDataBinFolder)) { throw new Exception("GAMEDATABIN folder doesn't exist"); } loadingState = "Initializing files"; await CreateCNT(); if (lvlName.EndsWith(".exe")) { if (!Settings.s.hasMemorySupport) { throw new Exception("This game does not have memory support."); } Settings.s.loadFromMemory = true; MemoryFile mem = new MemoryFile(lvlName); files_array[0] = mem; await WaitIfNecessary(); LoadMemory(); } else { // Prepare paths string fixFolder = gameDataBinFolder; string lvlFolder = gameDataBinFolder + ConvertCase(lvlName + "/", Settings.CapsType.LevelFolder); paths["fix.lvl"] = fixFolder + ConvertCase("Fix.lvl", Settings.CapsType.Fix); paths["fix.ptr"] = fixFolder + ConvertCase("Fix.ptr", Settings.CapsType.Fix); paths["lvl.lvl"] = lvlFolder + ConvertCase(lvlName + ".lvl", Settings.CapsType.LevelFile); paths["lvl.ptr"] = lvlFolder + ConvertCase(lvlName + ".ptr", Settings.CapsType.LevelFile); paths["transit.lvl"] = lvlFolder + ConvertCase("transit.lvl", Settings.CapsType.LevelFile); paths["transit.ptr"] = lvlFolder + ConvertCase("transit.ptr", Settings.CapsType.LevelFile); if (Settings.s.platform == Settings.Platform.GC) { paths["menu.tpl"] = fixFolder + ConvertCase("menu.tpl", Settings.CapsType.Fix); paths["fix.tpl"] = fixFolder + ConvertCase((Settings.s.mode == Settings.Mode.RaymanArenaGC) ? "../common.tpl" : "Fix.tpl", Settings.CapsType.Fix); paths["lvl.tpl"] = lvlFolder + ConvertCase(lvlName + (Settings.s.game == Settings.Game.R3 ? "_Lvl" : "") + ".tpl", Settings.CapsType.TextureFile); paths["transit.tpl"] = lvlFolder + ConvertCase(lvlName + "_Trans.tpl", Settings.CapsType.TextureFile); } else if (Settings.s.platform == Settings.Platform.Xbox) { paths["fix.btf"] = fixFolder + ConvertCase("Fix.btf", Settings.CapsType.Fix); paths["fix.bhf"] = fixFolder + ConvertCase("Fix.bhf", Settings.CapsType.Fix); paths["lvl.btf"] = lvlFolder + ConvertCase(lvlName + ".btf", Settings.CapsType.TextureFile); paths["lvl.bhf"] = lvlFolder + ConvertCase(lvlName + ".bhf", Settings.CapsType.TextureFile); paths["transit.btf"] = lvlFolder + ConvertCase("transit.btf", Settings.CapsType.TextureFile); paths["transit.bhf"] = lvlFolder + ConvertCase("transit.bhf", Settings.CapsType.TextureFile); } else if (Settings.s.platform == Settings.Platform.Xbox360) { paths["fix.btf"] = fixFolder + ConvertCase("Fix.btf", Settings.CapsType.Fix); paths["fix.bhf"] = fixFolder + ConvertCase("Fix.bhf", Settings.CapsType.Fix); paths["lvl.btf"] = lvlFolder + ConvertCase(lvlName + "_2.btf", Settings.CapsType.TextureFile); paths["lvl.bhf"] = lvlFolder + ConvertCase(lvlName + "_2.bhf", Settings.CapsType.TextureFile); paths["transit.btf"] = lvlFolder + ConvertCase("transit_6.btf", Settings.CapsType.TextureFile); paths["transit.bhf"] = lvlFolder + ConvertCase("transit_6.bhf", Settings.CapsType.TextureFile); } paths["lvl_vb.lvl"] = lvlFolder + ConvertCase(lvlName + "_vb.lvl", Settings.CapsType.LevelFile); paths["lvl_vb.ptr"] = lvlFolder + ConvertCase(lvlName + "_vb.ptr", Settings.CapsType.LevelFile); paths["fixkf.lvl"] = fixFolder + ConvertCase("Fixkf.lvl", Settings.CapsType.Fix); paths["fixkf.ptr"] = fixFolder + ConvertCase("Fixkf.ptr", Settings.CapsType.Fix); paths["lvlkf.lvl"] = lvlFolder + ConvertCase(lvlName + "kf.lvl", Settings.CapsType.LevelFile); paths["lvlkf.ptr"] = lvlFolder + ConvertCase(lvlName + "kf.ptr", Settings.CapsType.LevelFile); // Download files /*foreach (KeyValuePair<string, string> path in paths) { * if (path.Value != null) await PrepareFile(path.Value); * }*/ // Fix lvlNames[0] = "fix"; lvlPaths[0] = paths["fix.lvl"]; ptrPaths[0] = paths["fix.ptr"]; if (Settings.s.platform == Settings.Platform.GC) { await PrepareFile(paths["fix.tpl"]); await PrepareFile(paths["menu.tpl"]); } else if (Settings.s.platform == Settings.Platform.Xbox || Settings.s.platform == Settings.Platform.Xbox360) { await PrepareFile(paths["fix.btf"]); await PrepareFile(paths["fix.bhf"]); } await PrepareFile(lvlPaths[0]); if (FileSystem.FileExists(lvlPaths[0])) { await PrepareFile(ptrPaths[0]); } // Level lvlNames[1] = lvlName; lvlPaths[1] = gameDataBinFolder + lvlName + "/" + lvlName.ToLower() + ".lvl"; ptrPaths[1] = gameDataBinFolder + lvlName + "/" + lvlName.ToLower() + ".ptr"; await PrepareFile(lvlPaths[1]); if (FileSystem.FileExists(lvlPaths[1])) { await PrepareFile(ptrPaths[1]); if (Settings.s.platform == Settings.Platform.GC) { await PrepareFile(paths["lvl.tpl"]); } else if (Settings.s.platform == Settings.Platform.Xbox || Settings.s.platform == Settings.Platform.Xbox360) { await PrepareFile(paths["lvl.btf"]); await PrepareFile(paths["lvl.bhf"]); } } // Transit lvlNames[2] = "transit"; lvlPaths[2] = gameDataBinFolder + lvlName + "/transit.lvl"; ptrPaths[2] = gameDataBinFolder + lvlName + "/transit.ptr"; await PrepareFile(lvlPaths[2]); if (FileSystem.FileExists(lvlPaths[2])) { await PrepareFile(ptrPaths[2]); if (Settings.s.platform == Settings.Platform.GC) { await PrepareFile(paths["transit.tpl"]); } else if (Settings.s.platform == Settings.Platform.Xbox || Settings.s.platform == Settings.Platform.Xbox360) { await PrepareFile(paths["transit.btf"]); await PrepareFile(paths["transit.bhf"]); } } hasTransit = FileSystem.FileExists(lvlPaths[2]) && (FileSystem.GetFileLength(lvlPaths[2]) > 4); // Vertex buffer lvlNames[4] = lvlName + "_vb"; lvlPaths[4] = gameDataBinFolder + lvlName + "/" + lvlName.ToLower() + "_vb.lvl"; ptrPaths[4] = gameDataBinFolder + lvlName + "/" + lvlName.ToLower() + "_vb.ptr"; await PrepareFile(lvlPaths[4]); if (FileSystem.FileExists(lvlPaths[4])) { await PrepareFile(ptrPaths[4]); } // Fix Keyframes lvlNames[5] = "fixkf"; lvlPaths[5] = gameDataBinFolder + "fixkf.lvl"; ptrPaths[5] = gameDataBinFolder + "fixkf.ptr"; await PrepareFile(lvlPaths[5]); if (FileSystem.FileExists(lvlPaths[5])) { await PrepareFile(ptrPaths[5]); } // Level Keyframes lvlNames[6] = lvlName + "kf"; lvlPaths[6] = gameDataBinFolder + lvlName + "/" + lvlName.ToLower() + "kf.lvl"; ptrPaths[6] = gameDataBinFolder + lvlName + "/" + lvlName.ToLower() + "kf.ptr"; await PrepareFile(lvlPaths[6]); if (FileSystem.FileExists(lvlPaths[6])) { await PrepareFile(ptrPaths[6]); } for (int i = 0; i < lvlPaths.Length; i++) { if (lvlPaths[i] == null) { continue; } if (FileSystem.FileExists(lvlPaths[i])) { files_array[i] = new LVL(lvlNames[i], lvlPaths[i], i); } } for (int i = 0; i < loadOrder.Length; i++) { int j = loadOrder[i]; if (files_array[j] != null && FileSystem.FileExists(ptrPaths[j])) { ((LVL)files_array[j]).ReadPTR(ptrPaths[j]); } } await LoadFIX(); await LoadLVL(); } } finally { for (int i = 0; i < files_array.Length; i++) { if (files_array[i] != null) { if (!(files_array[i] is MemoryFile)) { files_array[i].Dispose(); } } } if (cnt != null) { cnt.Dispose(); } } await WaitIfNecessary(); InitModdables(); }
protected override async Task Load() { try { if (gameDataBinFolder == null || gameDataBinFolder.Trim().Equals("")) { throw new Exception("GAMEDATABIN folder doesn't exist"); } if (lvlName == null || lvlName.Trim() == "") { throw new Exception("No level name specified!"); } globals = new Globals(); gameDataBinFolder += "/"; await FileSystem.CheckDirectory(gameDataBinFolder); if (!FileSystem.DirectoryExists(gameDataBinFolder)) { throw new Exception("GAMEDATABIN folder doesn't exist"); } loadingState = "Initializing files"; await CreateCNT(); if (lvlName.EndsWith(".exe")) { if (!Settings.s.hasMemorySupport) { throw new Exception("This game does not have memory support."); } Settings.s.loadFromMemory = true; MemoryFile mem = new MemoryFile(lvlName); files_array[0] = mem; await WaitIfNecessary(); LoadMemory(); } else { // Prepare folder names string fixFolder = gameDataBinFolder + ConvertCase("Fix/", Settings.CapsType.LevelFolder); string lvlFolder = gameDataBinFolder + ConvertCase(lvlName + "/", Settings.CapsType.LevelFolder); // Prepare paths paths["fix.lvl"] = fixFolder + ConvertCase("Fix.lvl", Settings.CapsType.LevelFile); paths["fix.ptr"] = fixFolder + ConvertCase("Fix.ptr", Settings.CapsType.LevelFile); paths["fix.pbt"] = fixFolder + ConvertCase("Fix.pbt", Settings.CapsType.LevelFile); paths["lvl.lvl"] = lvlFolder + ConvertCase(lvlName + ".lvl", Settings.CapsType.LevelFile); paths["lvl.ptr"] = lvlFolder + ConvertCase(lvlName + ".ptr", Settings.CapsType.LevelFile); paths["lvl.pbt"] = lvlFolder + ConvertCase(lvlName + ".pbt", Settings.CapsType.LevelFile); paths["lvl.lms"] = lvlFolder + ConvertCase(lvlName + ".lms", Settings.CapsType.LMFile); // Download files foreach (KeyValuePair <string, string> path in paths) { if (path.Value != null) { await PrepareFile(path.Value); } } lvlNames[Mem.Fix] = "fix"; lvlPaths[Mem.Fix] = paths["fix.lvl"]; ptrPaths[Mem.Fix] = paths["fix.ptr"]; lvlNames[Mem.Lvl] = lvlName; lvlPaths[Mem.Lvl] = paths["lvl.lvl"]; ptrPaths[Mem.Lvl] = paths["lvl.ptr"]; for (int i = 0; i < lvlPaths.Length; i++) { if (lvlPaths[i] == null) { continue; } if (FileSystem.FileExists(lvlPaths[i])) { files_array[i] = new LVL(lvlNames[i], lvlPaths[i], i); } } ReadLargoLVL(Mem.Fix, fixFolder + ConvertCase("Fix.dmp", Settings.CapsType.LevelFile)); ReadLargoLVL(Mem.Lvl, lvlFolder + ConvertCase(lvlName + ".dmp", Settings.CapsType.LevelFile)); if (FileSystem.mode != FileSystem.Mode.Web) { pbt[Mem.Fix] = ReadPBT(paths["fix.pbt"], fixFolder + ConvertCase("Fix_PBT.dmp", Settings.CapsType.LevelFile)); pbt[Mem.Lvl] = ReadPBT(paths["lvl.pbt"], lvlFolder + ConvertCase(lvlName + "_PBT.dmp", Settings.CapsType.LevelFile)); lms = ReadLMS(paths["lvl.lms"]); } for (int i = 0; i < loadOrder.Length; i++) { int j = loadOrder[i]; if (files_array[j] != null && FileSystem.FileExists(ptrPaths[j])) { ((LVL)files_array[j]).ReadPTR(ptrPaths[j]); } } await LoadFIX(); await LoadLVL(); } } finally { for (int i = 0; i < files_array.Length; i++) { if (files_array[i] != null) { if (!(files_array[i] is MemoryFile)) { files_array[i].Dispose(); } } } if (cnt != null) { cnt.Dispose(); } } await WaitIfNecessary(); InitModdables(); }
protected override async Task Load() { try { if (gameDataBinFolder == null || gameDataBinFolder.Trim().Equals("")) { throw new Exception("GAMEDATABIN folder doesn't exist"); } if (lvlName == null || lvlName.Trim() == "") { throw new Exception("No level name specified!"); } globals = new Globals(); gameDataBinFolder += "/"; await FileSystem.CheckDirectory(gameDataBinFolder); if (!FileSystem.DirectoryExists(gameDataBinFolder)) { throw new Exception("GAMEDATABIN folder doesn't exist"); } loadingState = "Initializing files"; await CreateCNT(); // Prepare folder names string fixFolder = gameDataBinFolder + ConvertCase("Fix/", Settings.CapsType.LevelFolder); string lvlFolder = gameDataBinFolder + ConvertCase(lvlName + "/", Settings.CapsType.LevelFolder); // Prepare paths paths["fix.lv2"] = fixFolder + ConvertCase("Fix.lv2", Settings.CapsType.LevelFile); paths["fix.pt2"] = fixFolder + ConvertCase("Fix.pt2", Settings.CapsType.LevelFile); paths["lvl.lv2"] = lvlFolder + ConvertCase(lvlName + ".lv2", Settings.CapsType.LevelFile); paths["lvl.pt2"] = lvlFolder + ConvertCase(lvlName + ".pt2", Settings.CapsType.LevelFile); paths["lvl.ato.0"] = lvlFolder + ConvertCase(lvlName + ".ato.0", Settings.CapsType.LevelFile); paths["lvl.rw3.0"] = lvlFolder + ConvertCase(lvlName + ".rw3.0", Settings.CapsType.LevelFile); paths["lvl.lm3.0"] = lvlFolder + ConvertCase(lvlName + ".lm3.0", Settings.CapsType.LevelFile); paths["lvl.lm3.1"] = lvlFolder + ConvertCase(lvlName + ".lm3.1", Settings.CapsType.LevelFile); paths["lvl.lm3.2"] = lvlFolder + ConvertCase(lvlName + ".lm3.2", Settings.CapsType.LevelFile); paths["lvl.dmo"] = lvlFolder + ConvertCase(lvlName + ".dmo", Settings.CapsType.LevelFile); // Download files foreach (KeyValuePair <string, string> path in paths) { if (path.Value != null) { await PrepareFile(path.Value); } } loadingState = "Loading textures"; await WaitIfNecessary(); txds.Add(new TextureDictionary(paths["lvl.rw3.0"])); loadingState = "Loading lightmaps"; await WaitIfNecessary(); if (FileSystem.FileExists(paths["lvl.lm3.0"])) { txds.Add(new TextureDictionary(paths["lvl.lm3.0"])); } if (FileSystem.FileExists(paths["lvl.lm3.1"])) { txds.Add(new TextureDictionary(paths["lvl.lm3.1"])); } loadingState = "Loading geometry"; await WaitIfNecessary(); ato = new MeshFile(paths["lvl.ato.0"]); loadingState = "Loading level files"; await WaitIfNecessary(); LVL fix = new LVL(lvlName, paths["fix.lv2"], 0); LVL lvl = new LVL(lvlName, paths["lvl.lv2"], 1); files_array[0] = fix; files_array[1] = lvl; fix.ReadPTR(paths["fix.pt2"]); lvl.ReadPTR(paths["lvl.pt2"]); await LoadPS2(); } finally { for (int i = 0; i < files_array.Length; i++) { if (files_array[i] != null) { files_array[i].Dispose(); } } if (cnt != null) { cnt.Dispose(); } } await WaitIfNecessary(); InitModdables(); }
public SounderPresenter(ISounder view, LVL lvl) { CurLVL = lvl; _view = view; view.SounderPaint += SounderPanel_Paint; }