You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

413 lines
14 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using System;
using Qoo.Game;
using Qoo.SoundSystem;
using UnityEngine;
// Token: 0x02000130 RID: 304
public class SaveLoadWindow : BaseWindow
{
// Token: 0x06000821 RID: 2081 RVA: 0x0002432C File Offset: 0x0002252C
private bool CheckDataExist(int idx)
{
SaveFileInfo saveFileInfo = SaveLoadManager.LoadHeader(idx);
return saveFileInfo != null;
}
// Token: 0x06000822 RID: 2082 RVA: 0x00024348 File Offset: 0x00022548
private void OnDataSelect(int value)
{
this.m_Index = value;
SaveFileInfo saveFileInfo = SaveLoadManager.LoadHeader(this.m_Index);
this.viewSaveInfo(saveFileInfo);
if (this.m_SaveOrLoad == SaveLoadType.SAVE)
{
if (value != 9)
{
if (saveFileInfo != null)
{
this.ConfirmShow(true, SaveLoadWindow.ConfrmType.Over);
}
else
{
this.ConfirmShow(true, SaveLoadWindow.ConfrmType.Save);
}
}
}
else if (saveFileInfo != null)
{
this.ConfirmShow(true, SaveLoadWindow.ConfrmType.Load);
}
}
// Token: 0x06000823 RID: 2083 RVA: 0x000243B4 File Offset: 0x000225B4
private void OnSaveLoad()
{
if (this.m_SaveOrLoad == SaveLoadType.SAVE)
{
this.OnSave();
}
else
{
this.OnLoad();
}
}
// Token: 0x06000824 RID: 2084 RVA: 0x000243D4 File Offset: 0x000225D4
private void OnSave()
{
byte[] saveData = this.GetSaveData();
SaveFileInfo info = this.CreateSaveFileInfo();
SaveLoadManager.Save(saveData, info, this.m_Index);
SaveLoadManager.SaveSystem();
this.viewSaveInfo(info);
base.SetTexture(this.m_Index.ToString("SaveData0"), this.GetSaveDataIconName(this.m_Index));
}
// Token: 0x06000825 RID: 2085 RVA: 0x0002442C File Offset: 0x0002262C
private void OnLoad()
{
byte[] data_ = SaveLoadManager.Load(this.m_Index);
GameData.Load(data_);
if (this.m_TitleOrAdvMode == SaveLoadCallType.ADVMENU)
{
base.DeleteAllAddScene();
}
else
{
SceneManager.ChangeScene("SceneAdvMode");
}
Sound.BgmStop(1000);
}
// Token: 0x06000826 RID: 2086 RVA: 0x00024478 File Offset: 0x00022678
private void ConfirmShow(bool show = true, SaveLoadWindow.ConfrmType ct = SaveLoadWindow.ConfrmType.Save)
{
base.GameObjectShow("Confirm", show);
base.GameObjectShow("Confirm_YES", show);
base.GameObjectShow("Confirm_NO", show);
base.GameObjectShow("CofirmCollision", show);
if (show)
{
switch (ct)
{
case SaveLoadWindow.ConfrmType.Save:
this.SetText("SaveConfirmMsg", (!show) ? string.Empty : UnityApp.Instance.isJapanese ? "セーブしますか?" : "Do you want to save?");
break;
case SaveLoadWindow.ConfrmType.Load:
this.SetText("LoadConfirmMsg", (!show) ? string.Empty : UnityApp.Instance.isJapanese ? "ロードしますか?" : "Do you want to load this save?");
break;
case SaveLoadWindow.ConfrmType.Over:
this.SetText("OverConfirmMsg", (!show) ? string.Empty : UnityApp.Instance.isJapanese ? "上書きしますか?" : "Do you want to overwrite this Save?");
break;
}
}
else
{
this.SetText("SaveConfirmMsg", string.Empty);
this.SetText("LoadConfirmMsg", string.Empty);
this.SetText("OverConfirmMsg", string.Empty);
}
}
// Token: 0x06000827 RID: 2087 RVA: 0x00024578 File Offset: 0x00022778
private byte[] GetSaveData()
{
return GameData.Save();
}
// Token: 0x06000828 RID: 2088 RVA: 0x00024580 File Offset: 0x00022780
private SaveFileInfo CreateSaveFileInfo()
{
return new SaveFileInfo
{
LastMessage = GameData.LastMessage,
PlayCharaId = (int)GameData.GetRoute(),
SceneName = GameData.GetSceneName(),
TimeStamp = DateTime.Now.ToString("yyyyMMdd HHmm")
};
}
// Token: 0x06000829 RID: 2089 RVA: 0x000245D0 File Offset: 0x000227D0
private void SetText(string name, string text)
{
UnityTextSprite textSprite = base.GetTextSprite(name);
textSprite.ClearText();
textSprite.AddText(text, 28);
textSprite.Update(960, 544, -5f);
}
// Token: 0x0600082A RID: 2090 RVA: 0x0002460C File Offset: 0x0002280C
private string getTimeStamp(SaveFileInfo info)
{
string result = string.Empty;
if (info == null)
{
if (this.m_SaveOrLoad == SaveLoadType.SAVE)
{
result = "New Data";
}
}
else
{
result = info.TimeStamp;
}
return result;
}
// Token: 0x0600082B RID: 2091 RVA: 0x00024644 File Offset: 0x00022844
private string getSceneName(SaveFileInfo info)
{
if (info != null)
{
return info.SceneName;
}
return string.Empty;
}
// Token: 0x0600082C RID: 2092 RVA: 0x00024658 File Offset: 0x00022858
private string getLastMessage1(SaveFileInfo info)
{
string result = string.Empty;
if (info == null)
{
return string.Empty;
}
int num = info.LastMessage.IndexOf('\n');
if (num < 0)
{
result = info.LastMessage;
}
else
{
result = info.LastMessage.Substring(0, num);
}
return result;
}
// Token: 0x0600082D RID: 2093 RVA: 0x000246A8 File Offset: 0x000228A8
private string getLastMessage2(SaveFileInfo info)
{
string result = string.Empty;
if (info == null)
{
return string.Empty;
}
int num = info.LastMessage.IndexOf('\n');
if (num >= 0)
{
string text = info.LastMessage.Substring(num + 1);
int num2 = text.IndexOf('\n');
if (num2 < 0)
{
result = text;
}
else
{
result = text.Substring(0, num2);
}
}
return result;
}
// Token: 0x0600082E RID: 2094 RVA: 0x0002470C File Offset: 0x0002290C
private void viewSaveInfo(SaveFileInfo info)
{
this.SetText("TimeStamp", this.getTimeStamp(info));
this.SetText("SceneName", this.getSceneName(info));
this.SetText("LastMessage1", this.getLastMessage1(info));
this.SetText("LastMessage2", this.getLastMessage2(info));
}
// Token: 0x0600082F RID: 2095 RVA: 0x00024764 File Offset: 0x00022964
protected sealed override void OnAwake()
{
this.m_SaveOrLoad = UIValue.SaveLoadType;
this.m_TitleOrAdvMode = UIValue.SaveLoadCallType;
}
// Token: 0x06000830 RID: 2096 RVA: 0x0002477C File Offset: 0x0002297C
protected sealed override string[] newSceneTextureNameArray()
{
string str = (this.m_SaveOrLoad != SaveLoadType.SAVE) ? "load" : "save";
return new string[]
{
"screen/sysmenu/sys_bnr_" + str,
"screen/cgmemory2/cgm_bg_1",
"screen/sysmenu/sys_pop",
"screen/common/sys_dialog_save",
"screen/common/dlog_btn_y",
"screen/common/dlog_btn_n",
"screen/common/cancel",
"screen/saveload/icon_empty",
"screen/saveload/icon_play_auto",
"screen/saveload/icon_play_cha01",
"screen/saveload/icon_play_cha02",
"screen/saveload/icon_play_cha03",
"screen/saveload/icon_play_cha04",
"screen/saveload/icon_play_cha05",
"screen/saveload/icon_play_cha06",
"screen/saveload/icon_play_cha07",
"screen/saveload/icon_play_cha08",
"screen/saveload/icon_play_cha09",
"screen/saveload/icon_play_cha10",
"screen/saveload/icon_play_cha99"
};
}
// Token: 0x06000831 RID: 2097 RVA: 0x00024860 File Offset: 0x00022A60
protected sealed override void BeforeInit()
{
base.transform.localPosition = new Vector3(0f, 0f, -50f);
}
// Token: 0x06000832 RID: 2098 RVA: 0x00024884 File Offset: 0x00022A84
protected sealed override void AfterInit()
{
this.ConfirmShow(false, SaveLoadWindow.ConfrmType.Save);
}
// Token: 0x06000833 RID: 2099 RVA: 0x00024890 File Offset: 0x00022A90
private string GetSaveDataIconName(int i)
{
SaveFileInfo saveFileInfo = SaveLoadManager.LoadHeader(i);
bool flag = saveFileInfo != null;
string result = "icon_empty";
if (flag)
{
if (i < 9)
{
result = ((saveFileInfo.PlayCharaId != -1) ? (saveFileInfo.PlayCharaId + 1).ToString("icon_play_cha00") : "icon_play_cha99");
}
else
{
result = "icon_play_auto";
}
}
return result;
}
// Token: 0x06000834 RID: 2100 RVA: 0x000248F8 File Offset: 0x00022AF8
private string[] GetSaveDataIcons()
{
string[] array = new string[10];
for (int i = 0; i < 10; i++)
{
array[i] = this.GetSaveDataIconName(i);
}
return array;
}
// Token: 0x06000835 RID: 2101 RVA: 0x0002492C File Offset: 0x00022B2C
protected sealed override BaseWindow.UIComponent[] newComponentArray()
{
string str = (this.m_SaveOrLoad != SaveLoadType.SAVE) ? "load" : "save";
bool flag = this.m_SaveOrLoad == SaveLoadType.LOAD;
string[] saveDataIcons = this.GetSaveDataIcons();
int num = 188;
int num2 = 131;
return new BaseWindow.UIComponent[]
{
new BaseWindow.UIImage("BackGround", 0, 0, this.wndz, "screen/cgmemory2/cgm_bg_1", true, true),
new BaseWindow.UIImage("Banner", 0, 0, this.wndz + 1, "screen/sysmenu/sys_bnr_" + str, true, true),
new BaseWindow.UIImage("SysPop", 5, 373, this.wndz + 1, "screen/sysmenu/sys_pop", true, true),
new BaseWindow.UIButton("Cancel", 887, 6, this.wndz + 2, "screen/common/cancel", true, true, 1, 2, 0),
new BaseWindow.UIImage("SaveData0", 13 + 0 * num, 102 + 0 * num2, this.wndz + 2, "screen/saveload/" + saveDataIcons[0], true, true),
new BaseWindow.UIImage("SaveData1", 13 + 1 * num, 102 + 0 * num2, this.wndz + 2, "screen/saveload/" + saveDataIcons[1], true, true),
new BaseWindow.UIImage("SaveData2", 13 + 2 * num, 102 + 0 * num2, this.wndz + 2, "screen/saveload/" + saveDataIcons[2], true, true),
new BaseWindow.UIImage("SaveData3", 13 + 3 * num, 102 + 0 * num2, this.wndz + 2, "screen/saveload/" + saveDataIcons[3], true, true),
new BaseWindow.UIImage("SaveData4", 13 + 4 * num, 102 + 0 * num2, this.wndz + 2, "screen/saveload/" + saveDataIcons[4], true, true),
new BaseWindow.UIImage("SaveData5", 13 + 0 * num, 102 + 1 * num2, this.wndz + 2, "screen/saveload/" + saveDataIcons[5], true, true),
new BaseWindow.UIImage("SaveData6", 13 + 1 * num, 102 + 1 * num2, this.wndz + 2, "screen/saveload/" + saveDataIcons[6], true, true),
new BaseWindow.UIImage("SaveData7", 13 + 2 * num, 102 + 1 * num2, this.wndz + 2, "screen/saveload/" + saveDataIcons[7], true, true),
new BaseWindow.UIImage("SaveData8", 13 + 3 * num, 102 + 1 * num2, this.wndz + 2, "screen/saveload/" + saveDataIcons[8], true, true),
new BaseWindow.UIImage("SaveData9", 13 + 4 * num, 102 + 1 * num2, this.wndz + 2, "screen/saveload/" + saveDataIcons[9], flag, flag),
new BaseWindow.UIText("TimeStamp", 59, 386, this.wndz + 3, string.Empty, 28, UnityTextSprite.PositionType.TopLeft, UnityTextSprite.PositionType.TopLeft, byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue),
new BaseWindow.UIText("SceneName", 59, 414, this.wndz + 3, string.Empty, 28, UnityTextSprite.PositionType.TopLeft, UnityTextSprite.PositionType.TopLeft, byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue),
new BaseWindow.UIText("LastMessage1", 59, 456, this.wndz + 3, string.Empty, 28, UnityTextSprite.PositionType.TopLeft, UnityTextSprite.PositionType.TopLeft, byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue),
new BaseWindow.UIText("LastMessage2", 59, 484, this.wndz + 3, string.Empty, 28, UnityTextSprite.PositionType.TopLeft, UnityTextSprite.PositionType.TopLeft, byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue),
new BaseWindow.UICollision("CofirmCollision", 0, 0, this.wndz + 3, 960, 544),
new BaseWindow.UIImage("Confirm", 136, 182, this.wndz + 3, "screen/common/sys_dialog", true, false),
new BaseWindow.UIButton("Confirm_YES", 312, 277, this.wndz + 4, "screen/common/dlog_btn_y", true, false, 1, 2, 0),
new BaseWindow.UIButton("Confirm_NO", 513, 277, this.wndz + 4, "screen/common/dlog_btn_n", true, false, 1, 2, 0),
new BaseWindow.UIText("SaveConfirmMsg", 480, 230, this.wndz + 4, UnityApp.Instance.isJapanese ? "セーブしますか?" : "Do you want to save?", 28, UnityTextSprite.PositionType.Center, UnityTextSprite.PositionType.TopLeft, byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue),
new BaseWindow.UIText("LoadConfirmMsg", 480, 230, this.wndz + 4, UnityApp.Instance.isJapanese ? "ロードしますか?" : "Do you want to load this save?", 28, UnityTextSprite.PositionType.Center, UnityTextSprite.PositionType.TopLeft, byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue),
new BaseWindow.UIText("OverConfirmMsg", 480, 230, this.wndz + 4, UnityApp.Instance.isJapanese ? "上書きしますか?" : "Do you want to overwrite this Save?", 28, UnityTextSprite.PositionType.Center, UnityTextSprite.PositionType.TopLeft, byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue)
};
}
// Token: 0x06000836 RID: 2102 RVA: 0x00024E34 File Offset: 0x00023034
protected sealed override void OnBaseWindowOnButton(string obj)
{
switch (obj)
{
case "SaveData0":
case "SaveData1":
case "SaveData2":
case "SaveData3":
case "SaveData4":
case "SaveData5":
case "SaveData6":
case "SaveData7":
case "SaveData8":
case "SaveData9":
this.saveloadAction(obj);
break;
case "Confirm_YES":
base.PlaySE_Ok();
this.OnSaveLoad();
this.ConfirmShow(false, SaveLoadWindow.ConfrmType.Save);
break;
case "Confirm_NO":
base.PlaySE_Cancel();
this.ConfirmShow(false, SaveLoadWindow.ConfrmType.Save);
break;
case "Cancel":
base.PlaySE_Cancel();
if (this.m_TitleOrAdvMode == SaveLoadCallType.ADVMENU)
{
base.DeleteLastAddScene();
}
else
{
SceneManager.BackScene();
}
break;
}
}
// Token: 0x06000837 RID: 2103 RVA: 0x00024F8C File Offset: 0x0002318C
private void saveloadAction(string obj)
{
int idx = int.Parse(obj.Replace("SaveData", string.Empty));
if (this.m_SaveOrLoad == SaveLoadType.LOAD && !this.CheckDataExist(idx))
{
return;
}
base.PlaySE_Ok();
this.OnDataSelect(int.Parse(obj.Replace("SaveData", string.Empty)));
}
// Token: 0x0400072B RID: 1835
private SaveLoadType m_SaveOrLoad;
// Token: 0x0400072C RID: 1836
private SaveLoadCallType m_TitleOrAdvMode;
// Token: 0x0400072D RID: 1837
private int m_Index;
// Token: 0x0400072E RID: 1838
private readonly int wndz;
// Token: 0x02000131 RID: 305
private enum ConfrmType
{
// Token: 0x04000731 RID: 1841
Save,
// Token: 0x04000732 RID: 1842
Load,
// Token: 0x04000733 RID: 1843
Over
}
}