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
13 KiB
C#

4 years ago
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 : "セーブしますか?");
break;
case SaveLoadWindow.ConfrmType.Load:
this.SetText("LoadConfirmMsg", (!show) ? string.Empty : "ロードしますか?");
break;
case SaveLoadWindow.ConfrmType.Over:
this.SetText("OverConfirmMsg", (!show) ? string.Empty : "上書きしますか?");
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, "セーブしますか?", 28, UnityTextSprite.PositionType.Center, UnityTextSprite.PositionType.TopLeft, byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue),
new BaseWindow.UIText("LoadConfirmMsg", 480, 230, this.wndz + 4, "ロードしますか?", 28, UnityTextSprite.PositionType.Center, UnityTextSprite.PositionType.TopLeft, byte.MaxValue, byte.MaxValue, byte.MaxValue, byte.MaxValue),
new BaseWindow.UIText("OverConfirmMsg", 480, 230, this.wndz + 4, "上書きしますか?", 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
}
}