SaveHandler.LoadSaveGame C# (CSharp) Method

LoadSaveGame() public static method

public static LoadSaveGame ( Hashtable ht ) : void
ht Hashtable
return void
    public static void LoadSaveGame(Hashtable ht)
    {
        GameHandler.Instance().ClearData();
        GameHandler.ChangeHappened(2, 0, 0);
        if(ht.ContainsKey("language")) GameHandler.SetLanguage(int.Parse((string)ht["language"]));
        if(ht.ContainsKey("difficulty")) GameHandler.SetDifficulty(int.Parse((string)ht["difficulty"]));
        if(ht.ContainsKey("gametime")) GameHandler.SetGameTime(float.Parse((string)ht["gametime"]));
        if(ht.ContainsKey("areaname")) GameHandler.SetAreaNameID(int.Parse((string)ht["areaname"]));
        if(ht.ContainsKey("money")) GameHandler.SetMoney(int.Parse((string)ht["money"]));
        GameHandler.SetItemRecipeSaveData(ht);

        if(ht.ContainsKey(XMLHandler.NODES))
        {
            ArrayList s = ht[XMLHandler.NODES] as ArrayList;
            foreach(Hashtable ht2 in s)
            {
                if(ht2[XMLHandler.NODE_NAME] as string == SaveHandler.ITEMS)
                {
                    GameHandler.SetItemSaveData(ht2);
                }
                else if(ht2[XMLHandler.NODE_NAME] as string == SaveHandler.WEAPONS)
                {
                    GameHandler.SetWeaponSaveData(ht2);
                }
                else if(ht2[XMLHandler.NODE_NAME] as string == SaveHandler.ARMORS)
                {
                    GameHandler.SetArmorSaveData(ht2);
                }
                else if(ht2[XMLHandler.NODE_NAME] as string == SaveHandler.VARIABLES)
                {
                    GameHandler.SetVariableSaveData(ht2);
                }
                else if(ht2[XMLHandler.NODE_NAME] as string == SaveHandler.NUMBERVARIABLES)
                {
                    GameHandler.SetNumberVariableSaveData(ht2);
                }
                else if(ht2[XMLHandler.NODE_NAME] as string == SaveHandler.PARTY)
                {
                    GameHandler.Party().SetSaveData(ht2);
                }
                else if(ht2[XMLHandler.NODE_NAME] as string == SaveHandler.DROPS)
                {
                    GameHandler.DropHandler().SetData(ht2);
                }
                else if(ht2[XMLHandler.NODE_NAME] as string == SaveHandler.ADDONS)
                {
                    ArrayList ss = ht2[XMLHandler.NODES] as ArrayList;
                    foreach(Hashtable ht3 in ss)
                    {
                        foreach(AddonSaver adSav in SaveHandler.Instance().addonSavers)
                        {
                            adSav.SetData(ht3);
                        }
                    }
                }
                else if(ht2[XMLHandler.NODE_NAME] as string == SaveHandler.STATISTICS)
                {
                    DataHolder.Statistic.SetSaveData(ht2);
                }
            }
        }
        if(ht.ContainsKey("musicid"))
        {
            GameHandler.GetMusicHandler().Stop();
            GameHandler.GetMusicHandler().PlayFromTime(int.Parse((string)ht["musicid"]), float.Parse((string)ht["musictime"]));
        }
        GameHandler.GetLevelHandler().InitGlobalEvents();
    }