SaveHandler.SaveGame C# (CSharp) Method

SaveGame() public static method

public static SaveGame ( int index ) : void
index int
return void
    public static void SaveGame(int index)
    {
        SaveHandler.Instance().filesChanged = true;
        ArrayList data = new ArrayList();
        ArrayList subs = new ArrayList();
        Hashtable sv = new Hashtable();

        sv.Add(XMLHandler.NODE_NAME, SaveHandler.SAVEGAMES);

        Hashtable ht = new Hashtable();
        ArrayList s = new ArrayList();

        ht.Add(XMLHandler.NODE_NAME, SaveHandler.SAVEGAME);
        ht.Add("language", GameHandler.GetLanguage().ToString());
        ht.Add("difficulty", GameHandler.GetDifficulty().ToString());

        if(DataHolder.LoadSaveHUD().savePartyPosition)
        {
            s.Add(HashtableHelper.GetContentHashtable(SaveHandler.SCENE,
                    Application.loadedLevelName));
            ht.Add("areaname", GameHandler.GetAreaNameID().ToString());
        }

        if(DataHolder.LoadSaveHUD().saveTime)
        {
            ht.Add("gametime", GameHandler.GetGameTime().ToString());
        }
        if(DataHolder.LoadSaveHUD().saveMoney)
        {
            ht.Add("money", GameHandler.GetMoney().ToString());
        }

        if(GameHandler.GetMusicHandler().IsPlaying() &&
            DataHolder.LoadSaveHUD().savePartyPosition)
        {
            ht.Add("musicid", GameHandler.GetMusicHandler().GetCurrentID().ToString());
            ht.Add("musictime", GameHandler.GetMusicHandler().GetCurrentTime().ToString());
        }

        Camera cam = Camera.main;
        if(cam && DataHolder.LoadSaveHUD().savePartyPosition)
        {
            ht.Add("camx", cam.transform.position.x.ToString());
            ht.Add("camy", cam.transform.position.y.ToString());
            ht.Add("camz", cam.transform.position.z.ToString());
            ht.Add("camrotx", cam.transform.eulerAngles.x.ToString());
            ht.Add("camroty", cam.transform.eulerAngles.y.ToString());
            ht.Add("camrotz", cam.transform.eulerAngles.z.ToString());
            ht.Add("camfov", cam.fieldOfView.ToString());
        }

        if(DataHolder.LoadSaveHUD().saveRecipes)
        {
            ht = GameHandler.GetItemRecipeSaveData(ht);
        }

        if(DataHolder.LoadSaveHUD().saveItems)
        {
            s.Add(GameHandler.GetItemSaveData(
                    HashtableHelper.GetTitleHashtable(SaveHandler.ITEMS)));
        }

        if(DataHolder.LoadSaveHUD().saveWeapons)
        {
            s.Add(GameHandler.GetWeaponSaveData(
                    HashtableHelper.GetTitleHashtable(SaveHandler.WEAPONS)));
        }

        if(DataHolder.LoadSaveHUD().saveArmors)
        {
            s.Add(GameHandler.GetArmorSaveData(
                    HashtableHelper.GetTitleHashtable(SaveHandler.ARMORS)));
        }

        if(!Selector.NONE.Equals(DataHolder.LoadSaveHUD().gameVariableSelector))
        {
            s.Add(GameHandler.GetVariableSaveData(
                    HashtableHelper.GetTitleHashtable(SaveHandler.VARIABLES)));
        }

        if(!Selector.NONE.Equals(DataHolder.LoadSaveHUD().numberVariableSelector))
        {
            s.Add(GameHandler.GetNumberVariableSaveData(
                    HashtableHelper.GetTitleHashtable(SaveHandler.NUMBERVARIABLES)));
        }

        if(DataHolder.LoadSaveHUD().saveParty)
        {
            s.Add(GameHandler.Party().GetSaveData(
                    HashtableHelper.GetTitleHashtable(SaveHandler.PARTY)));
        }

        if(DataHolder.LoadSaveHUD().savePartyPosition)
        {
            s.Add(DataHolder.Statistic.GetSaveData(
                    HashtableHelper.GetTitleHashtable(SaveHandler.STATISTICS)));
        }

        if(DataHolder.GameSettings().saveDrops)
        {
            s.Add(GameHandler.DropHandler().GetData(SaveHandler.DROPS));
        }

        ArrayList ss = new ArrayList();
        foreach(AddonSaver adSav in SaveHandler.Instance().addonSavers)
        {
            Hashtable ht2 = adSav.GetData();
            if(ht2 != null) ss.Add(ht2);
        }
        if(ss.Count > 0)
        {
            Hashtable ads = new Hashtable();
            ads.Add(XMLHandler.NODE_NAME, SaveHandler.ADDONS);
            ads.Add(XMLHandler.NODES, ss);
            s.Add(ads);
        }

        ht.Add(XMLHandler.NODES, s);
        subs.Add(ht);
        sv.Add(XMLHandler.NODES, subs);

        data.Add(sv);
        SaveHandler.SaveFile(index, XMLHandler.ParseArrayList(data));
    }

Usage Example

Esempio n. 1
0
    public void SaveAndReturn()
    {
        menuSave.SetActive(false);

        SaveHandler save = GameObject.FindGameObjectWithTag("Saver").GetComponent <SaveHandler>();

        save.SaveGame();

        SetInteractable(true);
    }
All Usage Examples Of SaveHandler::SaveGame