Ejemplo n.º 1
0
        public object LoadFromBinaryFile(string path)
        {
            ////WebPlayer の場合保存方法に変化を入れる
            //if (Application.platform == RuntimePlatform.WindowsWebPlayer || Application.platform == RuntimePlatform.OSXWebPlayer) {

            //	string json = PlayerPrefs.GetString (path);
            //	SaveObject obj = LitJson.JsonMapper.ToObject<SaveObject> (json);

            //	return obj;

            //} else {

            if (!File.Exists(path))
            {
                return(null);
            }

            FileStream fs = new FileStream(path,
                                           FileMode.Open,
                                           FileAccess.Read);

            StreamReader sr   = new StreamReader(path, System.Text.Encoding.Default);
            string       json = sr.ReadToEnd();

            if (json == "")
            {
                return(null);
            }

            SaveObject obj = LitJson.JsonMapper.ToObject <SaveObject> (json);

            sr.Close();
            fs.Close();

            return(obj);

            //}
        }
Ejemplo n.º 2
0
        public void SaveToBinaryFile(SaveObject obj, string path)
        {
            string json = LitJson.JsonMapper.ToJson(obj);

            //WebPlayer の場合保存方法に変化を入れる



            if (!Directory.Exists(storagePath))
            {
                Directory.CreateDirectory(storagePath);
            }

            FileStream fs = new FileStream(path,
                                           FileMode.Create,
                                           FileAccess.Write);

            StreamWriter sw = new StreamWriter(fs);

            sw.Write(json);
            sw.Flush();
            sw.Close();
            fs.Close();
        }
Ejemplo n.º 3
0
        //ゲームをロードします
        public void loadData(string data_name)
        {
            Debug.Log("load files ");
            SaveObject sobj = this.saveManager.getSaveData(data_name);

            Dictionary <string, Image> dic = sobj.dicImage;

            //イメージオブジェクトを画面に復元する
            foreach (KeyValuePair <string, Image> kvp in sobj.dicImage)
            {
                //画面を復元していきまする
                Image image = new Image(dic [kvp.Key].dicSave);
                image.dicFace = dic [kvp.Key].dicFace;
                this.imageManager.addImage(image);
            }

            //タグも復元
            this.imageManager.dicTag = sobj.dicTag;

            this.eventManager.dicEvent = sobj.dicEvent;
            this.scenarioManager       = sobj.scenarioManager;
            StatusManager.variable     = sobj.variable;

            //グローバルで置き換える
            NovelSingleton.GameManager.saveManager.loadGlobal();
            StatusManager.variable.replaceAll("global", NovelSingleton.GameManager.globalSetting.globalVar);


            //開始位置の確認
            StatusManager.currentScenario = sobj.currentFile;
            this.CurrentComponentIndex    = sobj.currentIndex - 1;

            this.loadScenario(StatusManager.currentScenario);

            StatusManager.enableClickOrder = true;

            //テキストを復元する
            NovelSingleton.GameView.messageArea.GetComponent <Text>().text = sobj.currentMessage;

            //現在の色が設定されている場合は色も復元
            if (StatusManager.currentTextColor != "")
            {
                NovelSingleton.GameView.messageArea.GetComponent <Text>().color = ColorX.HexToRGB(StatusManager.currentTextColor);
            }

            NovelSingleton.GameManager.scene.messageForSaveTitle = sobj.currentMessage;

            //ステータス復元
            StatusManager.visibleMessageFrame = sobj.visibleMessageFrame;
            StatusManager.enableNextOrder     = sobj.enableNextOrder;
            StatusManager.enableEventClick    = sobj.enableEventClick;
            StatusManager.enableClickOrder    = sobj.enableClickOrder;
            StatusManager.currentPlayBgm      = sobj.currentPlayBgm;

            StatusManager.isEventStop = sobj.isEventStop;
            //Debug.Log ("wwww:" + sobj.isEventStop);

            NovelSingleton.GameManager.logManager = sobj.logManager;

            //メッセージウィドウが表示状態なら、ここで表示する
            if (StatusManager.visibleMessageFrame == true)
            {
                NovelSingleton.GameView.showMessageWithoutNextOrder(0f);
            }
            else
            {
                NovelSingleton.GameView.hideMessageWithoutNextOrder(0f);
            }

            if (StatusManager.currentPlayBgm != "")
            {
                Novel.AbstractComponent cmp = NovelSingleton.GameManager.parser.makeTag("[playbgm wait=false next=false storage='" + StatusManager.currentPlayBgm + "']");
                cmp.start();
            }

            //何故か、、ここにいれないと。メッセージがすごく遅くなる
            NovelSingleton.GameManager.scene.messageSpeed = 0.02f;


            this.nextOrder();

            //画面を再現します ImageObject のみ
        }
Ejemplo n.º 4
0
		public void SaveToBinaryFile(SaveObject obj, string path)
		{

			string json = LitJson.JsonMapper.ToJson (obj);

			//WebPlayer の場合保存方法に変化を入れる
			if (Application.platform == RuntimePlatform.WindowsWebPlayer || Application.platform == RuntimePlatform.OSXWebPlayer) {

				PlayerPrefs.SetString(path, json);

			} else {


				if (!Directory.Exists(storagePath))
				{
					Directory.CreateDirectory(storagePath);
				}

				FileStream fs = new FileStream(path,
					FileMode.Create,
					FileAccess.Write);

				StreamWriter sw = new StreamWriter(fs);
				sw.Write(json);
				sw.Flush ();
				sw.Close ();
				fs.Close();

			}
		}
Ejemplo n.º 5
0
		//plus が true の場合は、一つ進めたところをロードさせる。sleepgameの後とか戻ってきた時用
		public void save(string save_name,bool plus =false){

			SaveObject sobj = new SaveObject ();
			sobj.name = save_name;
			//タイトルとか、基本情報を格納
			sobj.title = NovelSingleton.GameManager.scene.messageForSaveTitle;
			sobj.date = DateTime.Now.ToString ("yyyy/MM/dd HH:mm:ss");
			sobj.currentMessage = NovelSingleton.GameManager.scene.messageForSaveTitle;

			sobj.dicImage = NovelSingleton.GameManager.imageManager.dicImage;
			sobj.dicTag   = NovelSingleton.GameManager.imageManager.dicTag;
			sobj.dicEvent = NovelSingleton.GameManager.eventManager.dicEvent;
			sobj.scenarioManager = NovelSingleton.GameManager.scenarioManager;
			sobj.variable = StatusManager.variable;
			sobj.currentFile = StatusManager.currentScenario;
			sobj.currentIndex = NovelSingleton.GameManager.CurrentComponentIndex;
			sobj.logManager = NovelSingleton.GameManager.logManager;

			//ステータス
			sobj.visibleMessageFrame = StatusManager.visibleMessageFrame;
			sobj.enableNextOrder = StatusManager.enableNextOrder;
			sobj.enableEventClick = StatusManager.enableEventClick;
			sobj.enableClickOrder = StatusManager.enableClickOrder;
			sobj.currentPlayBgm = StatusManager.currentPlayBgm;
			sobj.isEventStop = StatusManager.isEventStop;

			//画面のキャプチャを作成して保存する
			//保存先のパス

			if (plus == true) {
				sobj.currentIndex++;
			}

			//sobjをシリアライズ化して保存 

			string path = storagePath + "/"+save_name+".sav";

			SaveToBinaryFile(sobj, path);

		}