Esempio n. 1
0
    //起動待ちしてから開く
    IEnumerator CoWaitOpen()
    {
        while (Engine.IsWaitBootLoading)
        {
            yield return(0);
        }

        switch (bootType)
        {
        case BootType.Default:
            Engine.UiManager.Open();
            break;

        case BootType.Start:
            Engine.StartGame();
            break;

        case BootType.Load:
            Engine.OpenLoadGame(loadData);
            break;

        case BootType.SceneGallery:
            Engine.StartSceneGallery(scenaioLabel);
            break;
        }
        ClearBootData();
        loadData             = null;
        Engine.Config.IsSkip = false;
        isInit = true;
    }
Esempio n. 2
0
    private void CallBackCreateItem(GameObject go, int index)
    {
        UtageUguiSaveLoadItem component = go.GetComponent <UtageUguiSaveLoadItem>();
        AdvSaveData           data      = this.itemDataList[index];

        component.Init(data, new Action <UtageUguiSaveLoadItem>(this.OnDialogSaveLoad), index, this.isSave);
    }
Esempio n. 3
0
 /// <summary>
 /// セーブデータをロードしてゲーム再開
 /// </summary>
 /// <param name="loadData">ロードするセーブデータ</param>
 public void OpenLoadGame(AdvSaveData loadData)
 {
     ClearBootData();
     bootType      = BootType.Load;
     this.loadData = loadData;
     Open();
 }
    /// <summary>
    /// リストビューのアイテムが作成されるときに呼ばれるコールバック
    /// </summary>
    /// <param name="go">作成されたアイテムのGameObject</param>
    /// <param name="index">作成されたアイテムのインデックス</param>
    void CallBackCreateItem(GameObject go, int index)
    {
        UtageUguiSaveLoadItem item = go.GetComponent <UtageUguiSaveLoadItem>();
        AdvSaveData           data = itemDataList[index];

        item.Init(data, OnTap, index, isSave);
    }
Esempio n. 5
0
    /// <summary>
    /// 初期化
    /// </summary>
    /// <param name="data">セーブデータ</param>
    /// <param name="index">インデックス</param>
    /// <param name="isSave">セーブ画面用ならtrue、ロード画面用ならfalse</param>
    public void Init(AdvSaveData data, int index, bool isSave)
    {
        ListViewItem listViewItem = this.GetComponent <ListViewItem>();

        no.text = string.Format("No.{0,3}", index);
        if (data.IsSaved)
        {
            if (data.Type != AdvSaveData.SaveDataType.Auto)
            {                   //オートセーブにはテクスチャがない
                texture.Sprite = data.GetSprite(pixcelsToUnits);
            }
            text.text = data.Title;
            date.text = UtageToolKit.DateToStringJp(data.Date);
            listViewItem.IsEnableButton = true;
        }
        else
        {
            text.text = textEmpty;
            date.text = "";
            listViewItem.IsEnableButton = isSave;
        }

        //オートセーブデータ
        if (data.Type == AdvSaveData.SaveDataType.Auto)
        {
            no.text = "Auto";
            //セーブはできない
            if (isSave)
            {
                listViewItem.IsEnableButton = false;
            }
        }
    }
Esempio n. 6
0
 /// <summary>
 /// 初期化
 /// </summary>
 /// <param name="data">セーブデータ</param>
 /// <param name="index">インデックス</param>
 /// <param name="isSave">セーブ画面用ならtrue、ロード画面用ならfalse</param>
 public virtual void Init(AdvSaveData data, Action <UtageUguiSaveLoadItem> ButtonClickedEvent, int index, bool isSave)
 {
     this.data   = data;
     this.index  = index;
     this.button = this.GetComponent <UnityEngine.UI.Button>();
     this.button.onClick.AddListener(() => ButtonClickedEvent(this));
     Refresh(isSave);
 }
Esempio n. 7
0
    /// <summary>
    /// リストビューのアイテムが作成されるときに呼ばれるコールバック
    /// </summary>
    /// <param name="go">作成されたアイテムのGameObject</param>
    /// <param name="index">作成されたアイテムのインデックス</param>
    void CallBackCreateItem(GameObject go, int index)
    {
        UtageUiSaveLoadItem item = go.GetComponent <UtageUiSaveLoadItem>();
        AdvSaveData         data = itemDataList[index];

        item.Init(data, index, isSave);
        Button button = go.GetComponent <Button>();

        button.Target = this.gameObject;
    }
Esempio n. 8
0
    /// <summary>
    /// 各アイテムが押された
    /// </summary>
    /// <param name="button">押されたアイテム</param>
    void OnTap(Button button)
    {
        AdvSaveData data = itemDataList[button.Index];

        if (isSave)
        {
            UtageUiSaveLoadItem item = button.GetComponent <UtageUiSaveLoadItem>();

            //セーブ画面なら、セーブ処理
            Engine.WriteSaveData(data);
            item.Init(data, button.Index, isSave);
        }
        else
        {
            //ロード画面
            if (data.IsSaved)
            {
                //セーブ済みのデータならこの画面は閉じてロードをする
                Close();
                mainGame.OpenLoadGame(data);
            }
        }
    }
Esempio n. 9
0
 //起動データをクリア
 void ClearBootData()
 {
     bootType = BootType.Default;
     isInit   = false;
     loadData = null;
 }
Esempio n. 10
0
    IEnumerator LoadChaptersAsync(int chapterIndex)
    {
        //追加シナリオがDLがされないうちにオートセーブされると、未DLの部分のシステムセーブがない状態で上書きされしまうので
        //デフォルトの「AdvEnigne SystemSaveData IsAutoSaveOnQuit」はオフにしてある必要がある。
        if (this.Engine.SystemSaveData.IsAutoSaveOnQuit)
        {
            Debug.LogError("Check Off AdvEnigne SystemSaveData IsAutoSaveOnQuit");
            //DL中はオートセーブを解除する
            this.Engine.SystemSaveData.IsAutoSaveOnQuit = false;
        }

        //今のパラメーターをバイナリデータとしてとっておく
        //パラメーターをリセットせずに章を追加ロードしたいときに
        byte[] bufferDefaultParam = null;
        byte[] bufferSystemParam  = null;
        if (!resetParam)
        {
            bufferDefaultParam = BinaryUtil.BinaryWrite((writer) => engine.Param.Write(writer, AdvParamData.FileType.Default));
            bufferSystemParam  = BinaryUtil.BinaryWrite((writer) => engine.Param.Write(writer, AdvParamData.FileType.System));
        }

        //指定した章よりも前の章はロードする必要がある
        for (int i = 0; i < chapterIndex + 1; ++i)
        {
            string url = chapterUrlList[i];
            //もう設定済みならロードしない
            if (this.Engine.ExitsChapter(url))
            {
                continue;
            }

            //ロード自体はこれだけ
            //ただし、URLは
            // http://madnesslabo.net/Utage3Chapter/Windows/chapter2.chapter.asset
            //のように、Windowsなどのプラットフォーム別にフォルダわけなどを終えた絶対URLが必要
            yield return(this.Engine.LoadChapterAsync(url));
        }
        //設定データを反映
        this.Engine.GraphicManager.Remake(this.Engine.DataManager.SettingDataManager.LayerSetting);

        //パラメーターをデフォルト値でリセット
        //これは場合によってはリセットしたくない場合もあるので、あえて外にだす
        this.Engine.Param.InitDefaultAll(this.Engine.DataManager.SettingDataManager.DefaultParam);

        //パラメーターの引継ぎ方法は以下のように、いろいろある
        //(ややこしいが、ゲーム起動時なのか、ゲームの最中なのか、そもそもチャプター機能をどう使うかを宴側からは制御できないのでこうなる)

        //その1。メモリ内にとってある場合
        //バイナリデータから読み取る
        if (!resetParam)
        {
            BinaryUtil.BinaryRead(bufferDefaultParam, (reader) => engine.Param.Read(reader, AdvParamData.FileType.Default));
            BinaryUtil.BinaryRead(bufferSystemParam, (reader) => engine.Param.Read(reader, AdvParamData.FileType.System));
        }

        //その2。オートセーブのパラメーターだけをロードする
        //同じやり方で任意のセーブファイルのパラメーターだけをロードするのも可能
        if (readAutoSaveDataParamOnly)
        {
            //オートセーブデータをロード
            this.Engine.SaveManager.ReadAutoSaveData();
            AdvSaveData autoSave = this.Engine.SaveManager.AutoSaveData;
            if (autoSave != null && autoSave.IsSaved)
            {
                autoSave.Buffer.Overrirde(this.Engine.Param.DefaultData);
            }
        }

        //その3。
        //システムセーブデータをロードする
        //ファイルからロードするので、事前に書き込みされてないとダメ
        //チャプターロードを使う場合は、システムセーブデータの読み込みがされないので
        //一度はこれを使う
        if (readSystemSaveData)
        {
            this.Engine.SystemSaveData.Init(this.Engine);
        }

        //システムセーブデータのオートセーブはここで設定する
        this.Engine.SystemSaveData.IsAutoSaveOnQuit = this.isAutoSaveOnQuit;

        //リソースファイルのダウンロードを進めておく
        this.Engine.DataManager.DownloadAll();

        //ロード待ちのための画面遷移
        title.Close();
        loadWait.OpenOnChapter();
        loadWait.onClose.RemoveAllListeners();
        loadWait.onClose.AddListener(
            () =>
        {
            mainGame.Open();

            //StartGameはシステム系以外のパラメーターがリセットされてしまうので
            //パラメーターを引き継がない場合のみStartGame
            if (resetParam && !readAutoSaveDataParamOnly)
            {
                this.Engine.StartGame(startLabel[chapterIndex]);
            }
            else
            {
                this.Engine.JumpScenario(startLabel[chapterIndex]);
            }
        }
            );
    }
Esempio n. 11
0
 //起動データをクリア
 protected virtual void ClearBootData()
 {
     bootType = BootType.Default;
     isInit   = false;
     loadData = null;
 }
 private void ClearBootData()
 {
     this.bootType = BootType.Default;
     this.isInit   = false;
     this.loadData = null;
 }
Esempio n. 13
0
 public void Init(AdvSaveData data, Action <UtageUguiSaveLoadItem> ButtonClickedEvent, int index, bool isSave)
 {