// Token: 0x0600378F RID: 14223
 public static void LoadDefaultBinds()
 {
     RandomizerRebinding.ReplayMessage    = RandomizerRebinding.ParseLine("Replay Message: LeftAlt+T, RightAlt+T");
     RandomizerRebinding.ReturnToStart    = RandomizerRebinding.ParseLine("Return to Start: LeftAlt+R, RightAlt+R");
     RandomizerRebinding.ReloadSeed       = RandomizerRebinding.ParseLine("Reload Seed: LeftAlt+L, RightAlt+L");
     RandomizerRebinding.ToggleChaos      = RandomizerRebinding.ParseLine("Toggle Chaos: LeftAlt+K, RightAlt+K");
     RandomizerRebinding.ChaosVerbosity   = RandomizerRebinding.ParseLine("Chaos Verbosity: LeftAlt+V, RightAlt+V");
     RandomizerRebinding.ForceChaosEffect = RandomizerRebinding.ParseLine("Force Chaos Effect: LeftAlt+F, RightAlt+F");
     RandomizerRebinding.ShowProgress     = RandomizerRebinding.ParseLine("Show Progress: LeftAlt+P, RightAlt+P");
     RandomizerRebinding.ColorShift       = RandomizerRebinding.ParseLine("Color Shift: LeftAlt+C, RightAlt+C");
     RandomizerRebinding.DoubleBash       = RandomizerRebinding.ParseLine("Double Bash: Grenade");
 }
 // Token: 0x060037B9 RID: 14265
 public Bind(string input)
 {
     input = input.Trim();
     if (RandomizerRebinding.ActionMap.ContainsKey(input))
     {
         this.Action     = (Core.Input.InputButtonProcessor)RandomizerRebinding.ActionMap[input];
         this.ActionBind = true;
         return;
     }
     this.ActionBind = false;
     this.Key        = RandomizerRebinding.StringToKeyBinding(input);
 }
 // Token: 0x0600378D RID: 14221
 public static void ParseRebinding()
 {
     RandomizerRebinding.ActionMap = new Hashtable();
     RandomizerRebinding.ActionMap.Add("Jump", Core.Input.Jump);
     RandomizerRebinding.ActionMap.Add("SpiritFlame", Core.Input.SpiritFlame);
     RandomizerRebinding.ActionMap.Add("Bash", Core.Input.Bash);
     RandomizerRebinding.ActionMap.Add("SoulFlame", Core.Input.SoulFlame);
     RandomizerRebinding.ActionMap.Add("ChargeJump", Core.Input.ChargeJump);
     RandomizerRebinding.ActionMap.Add("Glide", Core.Input.Glide);
     RandomizerRebinding.ActionMap.Add("Dash", Core.Input.RightShoulder);
     RandomizerRebinding.ActionMap.Add("Grenade", Core.Input.LeftShoulder);
     RandomizerRebinding.ActionMap.Add("Left", Core.Input.Left);
     RandomizerRebinding.ActionMap.Add("Right", Core.Input.Right);
     RandomizerRebinding.ActionMap.Add("Up", Core.Input.Up);
     RandomizerRebinding.ActionMap.Add("Down", Core.Input.Down);
     RandomizerRebinding.ActionMap.Add("LeftStick", Core.Input.LeftStick);
     RandomizerRebinding.ActionMap.Add("RightStick", Core.Input.RightStick);
     RandomizerRebinding.ActionMap.Add("Start", Core.Input.Start);
     RandomizerRebinding.ActionMap.Add("Select", Core.Input.Select);
     if (!File.Exists("RandomizerRebinding.txt"))
     {
         RandomizerRebinding.WriteDefaultFile();
     }
     try
     {
         string[] array = File.ReadAllLines("RandomizerRebinding.txt");
         RandomizerRebinding.ReplayMessage    = RandomizerRebinding.ParseLine(array[4]);
         RandomizerRebinding.ReturnToStart    = RandomizerRebinding.ParseLine(array[5]);
         RandomizerRebinding.ReloadSeed       = RandomizerRebinding.ParseLine(array[6]);
         RandomizerRebinding.ToggleChaos      = RandomizerRebinding.ParseLine(array[7]);
         RandomizerRebinding.ChaosVerbosity   = RandomizerRebinding.ParseLine(array[8]);
         RandomizerRebinding.ForceChaosEffect = RandomizerRebinding.ParseLine(array[9]);
         RandomizerRebinding.ShowProgress     = RandomizerRebinding.ParseLine(array[10]);
         RandomizerRebinding.ColorShift       = RandomizerRebinding.ParseLine(array[11]);
         RandomizerRebinding.DoubleBash       = RandomizerRebinding.ParseLine(array[12]);
     }
     catch (Exception)
     {
         RandomizerRebinding.LoadDefaultBinds();
     }
 }
 // Token: 0x060039AA RID: 14762
 public static void ParseRebinding()
 {
     if (!File.Exists("RandomizerRebinding.txt"))
     {
         RandomizerRebinding.WriteDefaultFile();
     }
     try
     {
         string[] expr_1C = File.ReadAllLines("RandomizerRebinding.txt");
         RandomizerRebinding.ReplayMessage    = RandomizerRebinding.StringToKeyBinding(expr_1C[2]);
         RandomizerRebinding.ReturnToStart    = RandomizerRebinding.StringToKeyBinding(expr_1C[3]);
         RandomizerRebinding.ReloadSeed       = RandomizerRebinding.StringToKeyBinding(expr_1C[4]);
         RandomizerRebinding.ToggleChaos      = RandomizerRebinding.StringToKeyBinding(expr_1C[5]);
         RandomizerRebinding.ChaosVerbosity   = RandomizerRebinding.StringToKeyBinding(expr_1C[6]);
         RandomizerRebinding.ForceChaosEffect = RandomizerRebinding.StringToKeyBinding(expr_1C[7]);
         RandomizerRebinding.ShowProgress     = RandomizerRebinding.StringToKeyBinding(expr_1C[8]);
     }
     catch (Exception)
     {
         RandomizerRebinding.LoadDefaultBinds();
     }
 }
 // Token: 0x06003738 RID: 14136
 public static void initialize()
 {
     Randomizer.OHKO         = false;
     Randomizer.ZeroXP       = false;
     Randomizer.BonusActive  = true;
     Randomizer.GiveAbility  = false;
     Randomizer.Chaos        = false;
     Randomizer.ChaosVerbose = false;
     RandomizerChaosManager.initialize();
     Randomizer.DamageModifier       = 1f;
     Randomizer.Table                = new Hashtable();
     Randomizer.GridFactor           = 4.0;
     Randomizer.Message              = "Good luck on your rando!";
     Randomizer.MessageProvider      = (RandomizerMessageProvider)ScriptableObject.CreateInstance(typeof(RandomizerMessageProvider));
     Randomizer.ProgressiveMapStones = true;
     Randomizer.ForceTrees           = false;
     Randomizer.SeedMeta             = "";
     RandomizerRebinding.ParseRebinding();
     if (File.Exists("randomizer.dat"))
     {
         string[] array  = File.ReadAllLines("randomizer.dat");
         string[] array2 = array[0].Split(new char[]
         {
             ','
         });
         Randomizer.SeedMeta = array[0];
         for (int i = 0; i < array2.Length; i++)
         {
             if (array2[i].ToLower() == "ohko")
             {
                 Randomizer.OHKO = true;
             }
             if (array2[i].ToLower() == "0xp")
             {
                 Randomizer.ZeroXP = true;
             }
             if (array2[i].ToLower() == "nobonus")
             {
                 Randomizer.BonusActive = false;
             }
             if (array2[i].ToLower() == "nonprogressivemapstones")
             {
                 Randomizer.ProgressiveMapStones = false;
             }
             if (array2[i].ToLower() == "forcetrees")
             {
                 Randomizer.ForceTrees = true;
             }
         }
         for (int j = 1; j < array.Length; j++)
         {
             string[] array3 = array[j].Split(new char[]
             {
                 '|'
             });
             int num;
             int.TryParse(array3[0], out num);
             if (array3[1] == "TP")
             {
                 Randomizer.Table[num] = new RandomizerAction(array3[1], array3[2]);
             }
             else
             {
                 int num2;
                 int.TryParse(array3[2], out num2);
                 Randomizer.Table[num] = new RandomizerAction(array3[1], num2);
             }
         }
     }
 }
 // Token: 0x060037B5 RID: 14261
 public static void ParseRebinding()
 {
     try {
         ActionMap = new Hashtable()
         {
             { "Jump", Core.Input.Jump },
             { "SpiritFlame", Core.Input.SpiritFlame },
             { "Bash", Core.Input.Bash },
             { "SoulFlame", Core.Input.SoulFlame },
             { "ChargeJump", Core.Input.ChargeJump },
             { "Glide", Core.Input.Glide },
             { "Dash", Core.Input.RightShoulder },
             { "Grenade", Core.Input.LeftShoulder },
             { "Left", Core.Input.Left },
             { "Right", Core.Input.Right },
             { "Up", Core.Input.Up },
             { "Down", Core.Input.Down },
             { "LeftStick", Core.Input.LeftStick },
             { "RightStick", Core.Input.RightStick },
             { "Start", Core.Input.Start },
             { "Select", Core.Input.Select }
         };
         DefaultBinds = new Dictionary <string, string>()
         {
             { "Replay Message", "LeftAlt+T, RightAlt+T" },
             { "Return to Start", "LeftAlt+R, RightAlt+R" },
             { "Reload Seed", "LeftAlt+L, RightAlt+L" },
             { "Toggle Chaos", "LeftAlt+K, RightAlt+K" },
             { "Chaos Verbosity", "LeftAlt+V, RightAlt+V" },
             { "Force Chaos Effect", "LeftAlt+F, RightAlt+F" },
             { "Show Progress", "LeftAlt+P, RightAlt+P" },
             { "Color Shift", "LeftAlt+C, RightAlt+C" },
             { "Double Bash", "Grenade" },
             { "Show Bonuses", "LeftAlt+B, RightAlt+B" },
             { "Bonus Switch", "LeftAlt+Q, RightAlt+Q" },
             { "Bonus Toggle", "LeftAlt+Mouse1, RightAlt+Mouse1" },
             { "Reset Grenade Aim", "" },
             { "List Trees", "LeftAlt+Alpha1, RightAlt+Alpha1" },
             { "List Map Altars", "LeftAlt+Alpha2, RightAlt+Alpha2" },
             { "List Teleporters", "LeftAlt+Alpha3, RightAlt+Alpha3" },
             { "List Relics", "LeftAlt+Alpha4, RightAlt+Alpha4" },
             { "Show Stats", "LeftAlt+Alpha5, RightAlt+Alpha5" },
             { "Bonus 1", "" },
             { "Bonus 2", "" },
             { "Bonus 3", "" },
             { "Bonus 4", "" },
             { "Bonus 5", "" },
             { "Bonus 6", "" },
             { "Bonus 7", "" },
             { "Bonus 8", "" },
             { "Bonus 9", "" },
         };
         if (!File.Exists("RandomizerRebinding.txt"))
         {
             RandomizerRebinding.WriteDefaultFile();
         }
         string[]      lines       = File.ReadAllLines("RandomizerRebinding.txt");
         ArrayList     unseenBinds = new ArrayList(RandomizerRebinding.DefaultBinds.Keys);
         List <string> writeList   = new List <string>();
         Hashtable     binds       = new Hashtable();
         // parse step 1: read binds from file
         foreach (string line in lines)
         {
             if (!line.Contains(":"))
             {
                 continue;
             }
             string[] parts = line.Split(':');
             string   key   = parts[0].Trim();
             if (!DefaultBinds.ContainsKey(key))
             {
                 continue;
             }
             string bind = parts[1].Trim();
             AssignBind(key, bind, writeList);
             unseenBinds.Remove(key);
         }
         // parse step 2: load defaults for missing binds
         foreach (string missingKey in unseenBinds)
         {
             AssignBind(missingKey, null, writeList);
         }
         if (writeList.Count > 0)
         {
             List <string> warnList = new List <string>();
             foreach (string writeKey in writeList)
             {
                 if (DefaultBinds[writeKey] != "")
                 {
                     warnList.Add(writeKey);
                 }
             }
             if (warnList.Count > 0)
             {
                 Randomizer.printInfo("Default Binds written for these missing binds: " + String.Join(", ", warnList.ToArray()) + ".", 480);
             }
             string writeText = "";
             foreach (string writeKey in writeList)
             {
                 writeText += Environment.NewLine + writeKey + ": " + DefaultBinds[writeKey];
             }
             File.AppendAllText("RandomizerRebinding.txt", writeText);
         }
     }
     catch (Exception e) {
         Randomizer.LogError("Error parsing bindings: " + e.Message);
     }
 }
    public static void initialize()
    {
        Randomizer.OHKO                 = false;
        Randomizer.ZeroXP               = false;
        Randomizer.BonusActive          = true;
        Randomizer.GiveAbility          = false;
        Randomizer.Chaos                = false;
        Randomizer.ChaosVerbose         = false;
        Randomizer.Returning            = false;
        Randomizer.Sync                 = false;
        Randomizer.ForceMaps            = false;
        Randomizer.SyncMode             = 4;
        Randomizer.StringKeyPickupTypes = new List <string> {
            "TP", "SH", "NO", "WT", "MU", "HN", "WP", "RP", "WS"
        };
        Randomizer.ShareParams = "";
        RandomizerChaosManager.initialize();
        Randomizer.DamageModifier             = 1f;
        Randomizer.Table                      = new Hashtable();
        Randomizer.GridFactor                 = 4.0;
        Randomizer.Message                    = "Good luck on your rando!";
        Randomizer.MessageProvider            = (RandomizerMessageProvider)ScriptableObject.CreateInstance(typeof(RandomizerMessageProvider));
        Randomizer.ProgressiveMapStones       = true;
        Randomizer.ForceTrees                 = false;
        Randomizer.CluesMode                  = false;
        Randomizer.Shards                     = false;
        Randomizer.WorldTour                  = false;
        Randomizer.SeedMeta                   = "";
        Randomizer.MistySim                   = new WorldEvents();
        Randomizer.MistySim.MoonGuid          = new MoonGuid(1061758509, 1206015992, 824243626, -2026069462);
        Randomizer.TeleportTable              = new Hashtable();
        Randomizer.TeleportTable["Forlorn"]   = "forlorn";
        Randomizer.TeleportTable["Grotto"]    = "moonGrotto";
        Randomizer.TeleportTable["Sorrow"]    = "valleyOfTheWind";
        Randomizer.TeleportTable["Grove"]     = "spiritTree";
        Randomizer.TeleportTable["Swamp"]     = "swamp";
        Randomizer.TeleportTable["Valley"]    = "sorrowPass";
        Randomizer.TeleportTable["Ginso"]     = "ginsoTree";
        Randomizer.TeleportTable["Horu"]      = "mountHoru";
        Randomizer.TeleportTable["Glades"]    = "sunkenGlades";
        Randomizer.TeleportTable["Blackroot"] = "mangroveFalls";
        Randomizer.Entrance                   = false;
        Randomizer.DoorTable                  = new Hashtable();
        Randomizer.ColorShift                 = false;
        Randomizer.MessageQueue               = new Queue();
        Randomizer.MessageQueueTime           = 0;
        Randomizer.QueueBash                  = false;
        Randomizer.BashWasQueued              = false;
        Randomizer.BashTap                    = false;
        Randomizer.fragsEnabled               = false;
        Randomizer.LastTick                   = 10000000L;
        Randomizer.LockedCount                = 0;
        Randomizer.ResetTrackerCount          = 0;
        Randomizer.HotCold                    = false;
        Randomizer.HotColdTypes               = new string[] { "EV", "RB17", "RB19", "RB21", "RB28", "SK" };
        Randomizer.HotColdItems               = new Dictionary <int, RandomizerHotColdItem>();
        Randomizer.HotColdMaps                = new List <int>();
        int HotColdSaveId = 2000;

        Randomizer.HoruScene = "";
        Randomizer.HoruMap   = new Hashtable();
        Randomizer.HoruMap["mountHoruStomperSystemsR"]    = 2640380;
        Randomizer.HoruMap["mountHoruProjectileCorridor"] = 1720288;
        Randomizer.HoruMap["mountHoruMovingPlatform"]     = 3040304;
        Randomizer.HoruMap["mountHoruLaserTurretsR"]      = 2160192;
        Randomizer.HoruMap["mountHoruBlockableLasers"]    = -919624;
        Randomizer.HoruMap["mountHoruBigPushBlock"]       = -199724;
        Randomizer.HoruMap["mountHoruBreakyPathTop"]      = -1639664;
        Randomizer.HoruMap["mountHoruFallingBlocks"]      = -959848;
        Randomizer.OpenMode  = true;
        Randomizer.OpenWorld = false;
        RandomizerDataMaps.LoadGladesData();
        RandomizerDataMaps.LoadGinsoData();
        RandomizerDataMaps.LoadForlornData();
        RandomizerDataMaps.LoadHoruData();
        RandomizerDataMaps.LoadValleyData();
        RandomizerColorManager.Initialize();
        RandomizerPlantManager.Initialize();
        RandomizerRebinding.ParseRebinding();
        RandomizerSettings.ParseSettings();
        Randomizer.RelicZoneLookup = new Dictionary <string, string>();
        RandomizerTrackedDataManager.Initialize();
        RandomizerStatsManager.Initialize();
        Randomizer.RelicCount        = 0;
        Randomizer.GrenadeZone       = "MIA";
        Randomizer.StompZone         = "MIA";
        Randomizer.RepeatablePickups = new HashSet <int>();
        Randomizer.StompTriggers     = false;
        Randomizer.SpawnWith         = "";
        Randomizer.IgnoreEnemyExp    = false;
        bool relicCountOverride = false;

        try {
            if (File.Exists("randomizer.dat"))
            {
                string[] allLines = File.ReadAllLines("randomizer.dat");
                string[] flagLine = allLines[0].Split(new char[] { '|' });
                string   s        = flagLine[1];
                string[] flags    = flagLine[0].Split(new char[] { ',' });
                Randomizer.SeedMeta = allLines[0];
                foreach (string rawFlag in flags)
                {
                    string flag = rawFlag.ToLower();
                    if (flag == "ohko")
                    {
                        Randomizer.OHKO = true;
                    }
                    if (flag.StartsWith("worldtour"))
                    {
                        Randomizer.WorldTour = true;
                        if (flag.Contains("="))
                        {
                            relicCountOverride    = true;
                            Randomizer.RelicCount = int.Parse(flag.Substring(10));
                        }
                    }
                    if (flag.StartsWith("sync"))
                    {
                        Randomizer.Sync   = true;
                        Randomizer.SyncId = flag.Substring(4);
                        RandomizerSyncManager.Initialize();
                    }
                    if (flag.StartsWith("frags/"))
                    {
                        Randomizer.fragsEnabled = true;
                        string[] fragParams = flag.Split(new char[]
                        {
                            '/'
                        });
                        Randomizer.maxFrags      = int.Parse(fragParams[2]);
                        Randomizer.fragKeyFinish = int.Parse(fragParams[1]);
                    }
                    if (flag.StartsWith("mode="))
                    {
                        string modeStr = flag.Substring(5).ToLower();
                        int    syncMode;
                        if (modeStr == "shared")
                        {
                            syncMode = 1;
                        }
                        else if (modeStr == "none")
                        {
                            syncMode = 4;
                        }
                        else
                        {
                            syncMode = int.Parse(modeStr);
                        }
                        Randomizer.SyncMode = syncMode;
                    }
                    if (flag.StartsWith("shared="))
                    {
                        Randomizer.ShareParams = flag.Substring(7);
                    }
                    if (flag == "noextraexp")
                    {
                        Randomizer.IgnoreEnemyExp = true;
                    }
                    if (flag == "0xp")
                    {
                        Randomizer.IgnoreEnemyExp = true;
                        Randomizer.ZeroXP         = true;
                    }
                    if (flag == "nobonus")
                    {
                        Randomizer.BonusActive = false;
                    }
                    if (flag == "nonprogressivemapstones")
                    {
                        Randomizer.ProgressiveMapStones = false;
                    }
                    if (flag == "forcetrees")
                    {
                        Randomizer.ForceTrees = true;
                    }
                    if (flag == "forcemaps")
                    {
                        Randomizer.ForceMaps = true;
                    }
                    if (flag == "clues")
                    {
                        Randomizer.CluesMode = true;
                        RandomizerClues.initialize();
                    }
                    if (flag == "shards")
                    {
                        Randomizer.Shards = true;
                    }
                    if (flag == "entrance")
                    {
                        Randomizer.Entrance = true;
                    }
                    if (flag == "closeddungeons")
                    {
                        Randomizer.OpenMode = false;
                    }
                    if (flag == "openworld")
                    {
                        Randomizer.OpenWorld = true;
                    }
                    if (flag.StartsWith("hotcold="))
                    {
                        Randomizer.HotCold      = true;
                        Randomizer.HotColdTypes = flag.Substring(8).Split(new char[] { '+' });
                        Array.Sort(Randomizer.HotColdTypes);
                    }
                    if (flag.StartsWith("sense="))
                    {
                        Randomizer.HotColdTypes = flag.Substring(6).Split(new char[] { '+' });
                        Array.Sort(Randomizer.HotColdTypes);
                    }
                    if (flag == "noaltr")
                    {
                        Randomizer.AltRDisabled = true;
                    }
                    if (flag == "stomptriggers")
                    {
                        Randomizer.StompTriggers = true;
                    }
                }
                for (int i = 1; i < allLines.Length; i++)
                {
                    string[] lineParts = allLines[i].Split(new char[] { '|' });
                    int      coords;
                    int.TryParse(lineParts[0], out coords);
                    if (coords == 2)
                    {
                        SpawnWith = lineParts[1] + lineParts[2];
                        continue;
                    }
                    int index = Array.BinarySearch <string>(Randomizer.HotColdTypes, lineParts[1]);
                    if (index < 0)
                    {
                        index = -index - 1;
                    }
                    while (index < Randomizer.HotColdTypes.Length && Randomizer.HotColdTypes[index].Substring(0, 2) == lineParts[1])
                    {
                        if (Randomizer.HotColdTypes[index] == lineParts[1] || Randomizer.HotColdTypes[index].Substring(2) == lineParts[2])
                        {
                            if (Math.Abs(coords) > 100)
                            {
                                Randomizer.HotColdItems.Add(coords, new RandomizerHotColdItem(Randomizer.HashKeyToVector(coords), HotColdSaveId));
                                HotColdSaveId++;
                            }
                            else
                            {
                                Randomizer.HotColdMaps.Add(coords);
                            }
                        }
                        index++;
                    }
                    if (Randomizer.StringKeyPickupTypes.Contains(lineParts[1]))
                    {
                        Randomizer.Table[coords] = new RandomizerAction(lineParts[1], lineParts[2]);
                        if (lineParts[1] == "WT")
                        {
                            Randomizer.RelicZoneLookup[lineParts[2]] = lineParts[3];
                            if (!relicCountOverride)
                            {
                                Randomizer.RelicCount++;
                            }
                        }
                        if (lineParts[1] == "RP")
                        {
                            Randomizer.RepeatablePickups.Add(coords);
                        }
                    }
                    else
                    {
                        int id;
                        int.TryParse(lineParts[2], out id);
                        if (lineParts[1] == "EN")
                        {
                            // door entries are coord|EN|targetX|targetY
                            int doorY;
                            int.TryParse(lineParts[3], out doorY);
                            Randomizer.DoorTable[coords] = new Vector3((float)id, (float)doorY);
                        }
                        else
                        {
                            Randomizer.Table[coords] = new RandomizerAction(lineParts[1], id);
                            if (lineParts[1] == "SK")
                            {
                                if (id == 51)
                                {
                                    GrenadeZone = lineParts[3];
                                }
                                else if (id == 4)
                                {
                                    StompZone = lineParts[3];
                                }
                            }
                            if (Randomizer.CluesMode && lineParts[1] == "EV" && id % 2 == 0)
                            {
                                RandomizerClues.AddClue(lineParts[3], id / 2);
                            }
                        }
                    }
                }
                Randomizer.HotColdMaps.Sort();
                if (Randomizer.CluesMode)
                {
                    RandomizerClues.FinishClues();
                }
            }
            else
            {
                Randomizer.printInfo("Error: randomizer.dat not found");
            }
        }
        catch (Exception e) {
            Randomizer.printInfo("Error parsing randomizer.dat:" + e.Message, 300);
        }
        RandomizerBonusSkill.Reset();
    }
Exemple #8
0
    // Token: 0x0600373B RID: 14139
    public static void initialize()
    {
        Randomizer.OHKO         = false;
        Randomizer.ZeroXP       = false;
        Randomizer.BonusActive  = true;
        Randomizer.GiveAbility  = false;
        Randomizer.Chaos        = false;
        Randomizer.ChaosVerbose = false;
        Randomizer.Returning    = false;
        Randomizer.Sync         = false;
        Randomizer.SyncMode     = 1;
        Randomizer.ShareParams  = "";
        RandomizerChaosManager.initialize();
        Randomizer.DamageModifier           = 1f;
        Randomizer.Table                    = new Hashtable();
        Randomizer.GridFactor               = 4.0;
        Randomizer.Message                  = "Good luck on your rando!";
        Randomizer.MessageProvider          = (RandomizerMessageProvider)ScriptableObject.CreateInstance(typeof(RandomizerMessageProvider));
        Randomizer.ProgressiveMapStones     = true;
        Randomizer.ForceTrees               = false;
        Randomizer.CluesMode                = false;
        Randomizer.SeedMeta                 = "";
        Randomizer.MistySim                 = new WorldEvents();
        Randomizer.MistySim.MoonGuid        = new MoonGuid(1061758509, 1206015992, 824243626, -2026069462);
        Randomizer.TeleportTable            = new Hashtable();
        Randomizer.TeleportTable["Forlorn"] = "forlorn";
        Randomizer.TeleportTable["Grotto"]  = "moonGrotto";
        Randomizer.TeleportTable["Sorrow"]  = "valleyOfTheWind";
        Randomizer.TeleportTable["Grove"]   = "spiritTree";
        Randomizer.TeleportTable["Swamp"]   = "swamp";
        Randomizer.TeleportTable["Valley"]  = "sorrowPass";
        Randomizer.Entrance                 = false;
        Randomizer.DoorTable                = new Hashtable();
        Randomizer.ColorShift               = false;
        Randomizer.MessageQueue             = new Queue();
        Randomizer.MessageQueueTime         = 0;
        Randomizer.QueueBash                = false;
        Randomizer.BashWasQueued            = false;
        Randomizer.BashTap                  = false;
        bool flag = false;

        RandomizerRebinding.ParseRebinding();
        RandomizerSettings.ParseSettings();
        if (File.Exists("randomizer.dat"))
        {
            string[] array  = File.ReadAllLines("randomizer.dat");
            string[] array3 = array[0].Split(new char[]
            {
                '|'
            })[0].Split(new char[]
            {
                ','
            });
            Randomizer.SeedMeta = array[0];
            foreach (string text in array3)
            {
                if (text.ToLower() == "ohko")
                {
                    Randomizer.OHKO = true;
                }
                if (text.ToLower().StartsWith("sync"))
                {
                    Randomizer.Sync   = true;
                    Randomizer.SyncId = text.Substring(4);
                    RandomizerSyncManager.Initialize();
                }
                if (text.ToLower().StartsWith("mode="))
                {
                    string text2 = text.Substring(5).ToLower();
                    int    syncMode;
                    if (text2 == "shared")
                    {
                        syncMode = 1;
                    }
                    else if (text2 == "swap")
                    {
                        syncMode = 2;
                    }
                    else if (text2 == "split")
                    {
                        syncMode = 3;
                    }
                    else if (text2 == "none")
                    {
                        syncMode = 4;
                    }
                    else
                    {
                        syncMode = int.Parse(text2);
                    }
                    Randomizer.SyncMode = syncMode;
                }
                if (text.ToLower().StartsWith("shared="))
                {
                    Randomizer.ShareParams = text.Substring(7);
                }
                if (text.ToLower() == "0xp")
                {
                    Randomizer.ZeroXP = true;
                }
                if (text.ToLower() == "nobonus")
                {
                    Randomizer.BonusActive = false;
                }
                if (text.ToLower() == "nonprogressivemapstones")
                {
                    Randomizer.ProgressiveMapStones = false;
                }
                if (text.ToLower() == "forcetrees")
                {
                    Randomizer.ForceTrees = true;
                }
                if (text.ToLower() == "clues")
                {
                    Randomizer.CluesMode = true;
                    RandomizerClues.initialize();
                }
                if (text.ToLower() == "entrance")
                {
                    Randomizer.Entrance = true;
                }
                if (text.ToLower() == "encrypted")
                {
                    flag = true;
                }
            }
            if (flag)
            {
                array = Decoder.Decode(array[1]);
            }
            for (int i = 1; i < array.Length; i++)
            {
                if (!(array[i].Trim() == ""))
                {
                    string[] array2 = array[i].Split(new char[]
                    {
                        '|'
                    });
                    int num;
                    int.TryParse(array2[0], out num);
                    if (array2[1] == "TP")
                    {
                        Randomizer.Table[num] = new RandomizerAction(array2[1], array2[2]);
                    }
                    else
                    {
                        int num2;
                        int.TryParse(array2[2], out num2);
                        if (array2[1] == "EN")
                        {
                            int num3;
                            int.TryParse(array2[3], out num3);
                            Randomizer.DoorTable[num] = new Vector3((float)num2, (float)num3);
                        }
                        else
                        {
                            Randomizer.Table[num] = new RandomizerAction(array2[1], num2);
                            if (Randomizer.CluesMode && array2[1] == "EV" && num2 % 2 == 0)
                            {
                                RandomizerClues.AddClue(array2[3], num2 / 2);
                            }
                        }
                    }
                }
            }
        }
    }