public long Load(string Filename) { long num2; this.xPlanets = new Collection(); Decryptor decryptor = new Decryptor(); int num4 = Strings.InStrRev(Filename, ".m", -1, CompareMethod.Text); if (num4 > 0) { this.PlayerNo = Conversions.ToInteger(Filename.Substring(num4 + 1)); Filename = Filename.Substring(0, num4 - 1); } else { Interaction.MsgBox("A valid .m file must be entered", MsgBoxStyle.ApplicationModal, null); return num2; } this.xyFile = decryptor.OpenFile(Filename + ".xy"); this.xPlayerCount = this.xyFile[0x1c]; this.xPlanetCount = this.xyFile[30] + (this.xyFile[0x1f] * 0x100); this.xGameName = ""; int index = 0x34; do { if (this.xyFile[index] == 0) { break; } this.xGameName = this.xGameName + Conversions.ToString(Strings.Chr(this.xyFile[index])); index++; } while (index <= 0x53); int x = 0x3e8; int num9 = this.PlanetCount - 1; for (int i = 0; i <= num9; i++) { Planet item = new Planet(i); item.X = (this.xyFile[(0x54 + (i * 4)) + 0] + ((this.xyFile[(0x54 + (i * 4)) + 1] & 3) * 0x100)) + x; x = item.X; item.Y = (int) Math.Round((double) (Conversion.Int((double) (((double) this.xyFile[(0x54 + (i * 4)) + 1]) / 4.0)) + ((this.xyFile[(0x54 + (i * 4)) + 2] & 0x3f) * 0x40))); item.NameID = (int) Math.Round((double) (Conversion.Int((double) (((double) this.xyFile[(0x54 + (i * 4)) + 2]) / 64.0)) + (this.xyFile[(0x54 + (i * 4)) + 3] * 4))); this.Planets().Add(item, "ID" + Conversions.ToString(i), null, null); } this.mFile = decryptor.OpenFile(Filename + ".m" + Conversions.ToString(this.PlayerNo)); this.hstLoaded = true; int hstPosition = 0; do { int num7; int num8; byte[] data = new byte[0x401]; this.ReadBlock(this.mFile, ref hstPosition, ref data, ref num8, ref num7); } while (hstPosition != this.mFile.Length); return num2; }
public static object CalculateHabValue2(Planet Planet, Race Race) { int num4 = 0; int num = 0; int num5 = 0; int num3 = 0; if (Race.CentreGravity == 0xff) { num = 0x2710; } else if (Planet.Gravity > Race.CentreGravity) { if (Planet.Gravity > Race.HighGravity) { num = Race.HighGravity - Planet.Gravity; if (num < -15) { num4 = -15; } else { num4 += num; } } else { num = (int) Math.Round((double) (100.0 - Conversion.Int((double) ((((double) (Planet.Gravity - Race.CentreGravity)) / ((double) (Race.HighGravity - Race.CentreGravity))) * 100.0)))); } } else if (Planet.Gravity < Race.LowGravity) { num = Race.LowGravity - Planet.Gravity; if (num < -15) { num4 = -15; } else { num4 += num; } } else { num = (int) Math.Round((double) (100.0 - Conversion.Int((double) ((((double) (Race.CentreGravity - Planet.Gravity)) / ((double) (Race.CentreGravity - Race.LowGravity))) * 100.0)))); } if (Race.CentreTemperature == 0xff) { num5 = 0x2710; } else if (Planet.Gravity > Race.CentreTemperature) { if (Planet.Temperature > Race.HighTemperature) { num5 = Race.HighTemperature - Planet.Temperature; if (num5 < -15) { num4 = -15; } else { num4 += num5; } } else { num5 = (int) Math.Round((double) (100.0 - Conversion.Int((double) ((((double) (Planet.Temperature - Race.CentreTemperature)) / ((double) (Race.HighTemperature - Race.CentreTemperature))) * 100.0)))); } } else if (Planet.Temperature < Race.LowTemperature) { num5 = Race.LowTemperature - Planet.Temperature; if (num5 < -15) { num4 = -15; } else { num4 += num5; } } else { num5 = (int) Math.Round((double) (100.0 - Conversion.Int((double) ((((double) (Race.CentreTemperature - Planet.Temperature)) / ((double) (Race.CentreTemperature - Race.LowTemperature))) * 100.0)))); } if (Race.CentreRadiation == 0xff) { num3 = 0x2710; } else if (Planet.Radiation > Race.CentreRadiation) { if (Planet.Radiation > Race.HighRadiation) { num3 = Race.HighRadiation - Planet.Radiation; if (num3 < -15) { num4 = -15; } else { num4 += num3; } } else { num3 = (int) Math.Round((double) (100.0 - Conversion.Int((double) ((((double) (Planet.Radiation - Race.CentreRadiation)) / ((double) (Race.HighRadiation - Race.CentreRadiation))) * 100.0)))); } } else if (Planet.Radiation < Race.LowRadiation) { num3 = Race.LowRadiation - Planet.Radiation; if (num3 < -15) { num4 = -15; } else { num4 += num3; } } else { num3 = (int) Math.Round((double) (100.0 - Conversion.Int((double) ((((double) (Race.CentreRadiation - Planet.Radiation)) / ((double) (Race.CentreRadiation - Race.LowRadiation))) * 100.0)))); } if (num4 < 0) { return num4; } return Conversion.Int((double) (Math.Sqrt(((double) (((num * num) + (num5 * num5)) + (num3 * num3))) / 3.0) + 0.9)); }
public static object CalculateHabValue2(Planet Planet, Race Race) { int num4 = 0; int num = 0; int num5 = 0; int num3 = 0; if (Race.CentreGravity == 0xff) { num = 0x2710; } else if (Planet.Gravity > Race.CentreGravity) { if (Planet.Gravity > Race.HighGravity) { num = Race.HighGravity - Planet.Gravity; if (num < -15) { num4 = -15; } else { num4 += num; } } else { num = (int)Math.Round((double)(100.0 - Conversion.Int((double)((((double)(Planet.Gravity - Race.CentreGravity)) / ((double)(Race.HighGravity - Race.CentreGravity))) * 100.0)))); } } else if (Planet.Gravity < Race.LowGravity) { num = Race.LowGravity - Planet.Gravity; if (num < -15) { num4 = -15; } else { num4 += num; } } else { num = (int)Math.Round((double)(100.0 - Conversion.Int((double)((((double)(Race.CentreGravity - Planet.Gravity)) / ((double)(Race.CentreGravity - Race.LowGravity))) * 100.0)))); } if (Race.CentreTemperature == 0xff) { num5 = 0x2710; } else if (Planet.Gravity > Race.CentreTemperature) { if (Planet.Temperature > Race.HighTemperature) { num5 = Race.HighTemperature - Planet.Temperature; if (num5 < -15) { num4 = -15; } else { num4 += num5; } } else { num5 = (int)Math.Round((double)(100.0 - Conversion.Int((double)((((double)(Planet.Temperature - Race.CentreTemperature)) / ((double)(Race.HighTemperature - Race.CentreTemperature))) * 100.0)))); } } else if (Planet.Temperature < Race.LowTemperature) { num5 = Race.LowTemperature - Planet.Temperature; if (num5 < -15) { num4 = -15; } else { num4 += num5; } } else { num5 = (int)Math.Round((double)(100.0 - Conversion.Int((double)((((double)(Race.CentreTemperature - Planet.Temperature)) / ((double)(Race.CentreTemperature - Race.LowTemperature))) * 100.0)))); } if (Race.CentreRadiation == 0xff) { num3 = 0x2710; } else if (Planet.Radiation > Race.CentreRadiation) { if (Planet.Radiation > Race.HighRadiation) { num3 = Race.HighRadiation - Planet.Radiation; if (num3 < -15) { num4 = -15; } else { num4 += num3; } } else { num3 = (int)Math.Round((double)(100.0 - Conversion.Int((double)((((double)(Planet.Radiation - Race.CentreRadiation)) / ((double)(Race.HighRadiation - Race.CentreRadiation))) * 100.0)))); } } else if (Planet.Radiation < Race.LowRadiation) { num3 = Race.LowRadiation - Planet.Radiation; if (num3 < -15) { num4 = -15; } else { num4 += num3; } } else { num3 = (int)Math.Round((double)(100.0 - Conversion.Int((double)((((double)(Race.CentreRadiation - Planet.Radiation)) / ((double)(Race.CentreRadiation - Race.LowRadiation))) * 100.0)))); } if (num4 < 0) { return(num4); } return(Conversion.Int((double)(Math.Sqrt(((double)(((num * num) + (num5 * num5)) + (num3 * num3))) / 3.0) + 0.9))); }