Fixes misc issues with Save/Load functionality

fix
Jonathan Miller 4 years ago
parent 05024b9e0d
commit a8ca3fe39d

@ -11,7 +11,7 @@ GameObject:
- component: {fileID: 1114271706113841574}
- component: {fileID: 813555486191761335}
m_Layer: 5
m_Name: Row
m_Name: InventoryRow
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

@ -0,0 +1,82 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &348471857256824146
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 348471857256824141}
- component: {fileID: 348471857256824143}
- component: {fileID: 348471857256824140}
m_Layer: 20
m_Name: SaveGameListRow
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &348471857256824141
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 348471857256824146}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -75, y: 0}
m_SizeDelta: {x: 350, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &348471857256824143
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 348471857256824146}
m_CullTransparentMesh: 1
--- !u!114 &348471857256824140
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 348471857256824146}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.87058824, g: 0.87058824, b: 0.87058824, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 12800000, guid: 7d039e8e9995bde4986bf65010517cf1, type: 3}
m_FontSize: 16
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 0
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Player Name - 01/01/1136

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7690412ad329ccc4da0414f3b4782d34
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -5092,8 +5092,7 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 636144752}
m_Children: []
m_Father: {fileID: 990095095}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -5453,6 +5452,43 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 319264438}
m_CullTransparentMesh: 0
--- !u!84 &327241818
RenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_IsAlphaChannelOptional: 0
serializedVersion: 5
m_Width: 2048
m_Height: 2048
m_AntiAliasing: 1
m_MipCount: -1
m_DepthStencilFormat: 0
m_ColorFormat: 8
m_MipMap: 0
m_GenerateMips: 1
m_SRGB: 0
m_UseDynamicScale: 0
m_BindMS: 0
m_EnableCompatibleFormat: 1
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 1
m_MipBias: 0
m_WrapU: 0
m_WrapV: 0
m_WrapW: 0
m_Dimension: 2
m_VolumeDepth: 1
m_ShadowSamplingMode: 2
--- !u!1 &327885261
GameObject:
m_ObjectHideFlags: 0
@ -6789,6 +6825,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
SaveFileLoader: {fileID: 1736888504}
SavedGameListRowPrefab: {fileID: 348471857256824146, guid: 7690412ad329ccc4da0414f3b4782d34, type: 3}
MenuContainer: {fileID: 699094169}
PauseMenuOptions: {fileID: 102866962}
StartMenuOptions: {fileID: 1052628013}
@ -20465,6 +20502,43 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 625967589}
m_CullTransparentMesh: 0
--- !u!84 &627146785
RenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_IsAlphaChannelOptional: 0
serializedVersion: 5
m_Width: 512
m_Height: 512
m_AntiAliasing: 1
m_MipCount: -1
m_DepthStencilFormat: 0
m_ColorFormat: 48
m_MipMap: 0
m_GenerateMips: 1
m_SRGB: 0
m_UseDynamicScale: 0
m_BindMS: 0
m_EnableCompatibleFormat: 1
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 1
m_MipBias: 0
m_WrapU: 0
m_WrapV: 0
m_WrapW: 0
m_Dimension: 2
m_VolumeDepth: 1
m_ShadowSamplingMode: 2
--- !u!1 &628599323
GameObject:
m_ObjectHideFlags: 0
@ -25110,86 +25184,6 @@ Transform:
m_Father: {fileID: 1730158034}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
--- !u!1 &636144751
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 636144752}
- component: {fileID: 636144754}
- component: {fileID: 636144753}
m_Layer: 20
m_Name: Game File Row
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &636144752
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 636144751}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 284322622}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -75, y: 0}
m_SizeDelta: {x: 350, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &636144753
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 636144751}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.87058824, g: 0.87058824, b: 0.87058824, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 12800000, guid: 7d039e8e9995bde4986bf65010517cf1, type: 3}
m_FontSize: 16
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 0
m_MaxSize: 40
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 1
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Player Name - 01/01/1136
--- !u!222 &636144754
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 636144751}
m_CullTransparentMesh: 1
--- !u!1 &638256839
GameObject:
m_ObjectHideFlags: 0
@ -67956,43 +67950,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1445513871}
m_CullTransparentMesh: 0
--- !u!84 &1455398451
RenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_IsAlphaChannelOptional: 0
serializedVersion: 5
m_Width: 2048
m_Height: 2048
m_AntiAliasing: 1
m_MipCount: -1
m_DepthStencilFormat: 0
m_ColorFormat: 8
m_MipMap: 0
m_GenerateMips: 1
m_SRGB: 0
m_UseDynamicScale: 0
m_BindMS: 0
m_EnableCompatibleFormat: 1
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 1
m_MipBias: 0
m_WrapU: 0
m_WrapV: 0
m_WrapW: 0
m_Dimension: 2
m_VolumeDepth: 1
m_ShadowSamplingMode: 2
--- !u!1 &1462219584
GameObject:
m_ObjectHideFlags: 0
@ -75625,43 +75582,6 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: -180}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!84 &1914273162
RenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_IsAlphaChannelOptional: 0
serializedVersion: 5
m_Width: 512
m_Height: 512
m_AntiAliasing: 1
m_MipCount: -1
m_DepthStencilFormat: 0
m_ColorFormat: 48
m_MipMap: 0
m_GenerateMips: 1
m_SRGB: 0
m_UseDynamicScale: 0
m_BindMS: 0
m_EnableCompatibleFormat: 1
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 1
m_MipBias: 0
m_WrapU: 0
m_WrapV: 0
m_WrapW: 0
m_Dimension: 2
m_VolumeDepth: 1
m_ShadowSamplingMode: 2
--- !u!1 &1914843310
GameObject:
m_ObjectHideFlags: 0
@ -78088,11 +78008,11 @@ MonoBehaviour:
LST: 634.01245
lastHourUpdate: 12
hourTime: 0
cloudAnim: {x: 0.1, y: 0.9226121, z: 0.99938}
cloudFlatBaseAnim: {x: 0, y: -0.52099764}
cloudFlatDetailAnim: {x: 0, y: -0.0785851}
cloudAnimNonScaled: {x: 0, y: -4.5213637}
cirrusAnim: {x: 0, y: 0.07120079}
cloudAnim: {x: 0.1, y: -0.94208217, z: 0.2055437}
cloudFlatBaseAnim: {x: 0, y: -0.7074633}
cloudFlatDetailAnim: {x: 0, y: -0.82446134}
cloudAnimNonScaled: {x: 0, y: -4.7078557}
cirrusAnim: {x: 0, y: -0.008359559}
windIntensity: 0.27499998
shadowIntensityMod: 0
interiorMode: 0
@ -78240,9 +78160,9 @@ MonoBehaviour:
auroraIntensity: 0
currentActiveCloudsQualityPreset: {fileID: 11400000, guid: a836f7605a4cd2b46977d5caf63945fc, type: 2}
cloudsRenderTarget: {fileID: 0}
weatherMap: {fileID: 1914273162}
weatherMap: {fileID: 627146785}
satRenderTarget: {fileID: 0}
cloudShadowMap: {fileID: 1455398451}
cloudShadowMap: {fileID: 327241818}
skyMat: {fileID: 1808374981}
skyReflectionMat: {fileID: 0}
cloudsQualityList:

@ -10,6 +10,8 @@ namespace SiegeSong
{
public SaveFileLoader SaveFileLoader;
public GameObject SavedGameListRowPrefab;
public GameObject MenuContainer;
public GameObject PauseMenuOptions;
public GameObject StartMenuOptions;
@ -33,6 +35,8 @@ namespace SiegeSong
private float oldVerticalState;
private float oldHorizontalState;
private bool oldSubmenuOpenState = false;
private bool menuOpen = true;
private int selectedIndex;
private int subMenuSelectedIndex;
@ -47,6 +51,8 @@ namespace SiegeSong
private bool settingsSubmenuOpen;
private bool saveLoadSubmenuInSavingMode;
private bool saveLoadHasDelayed = false;
private bool startMenu = true;
void Start() { }
@ -59,6 +65,12 @@ namespace SiegeSong
MenuContainer.active = menuOpen;
SaveLoadContainer.active = saveLoadSubmenuOpen;
var newConfirmState = Input.GetButton(menuConfirmGamepadInput);
var newRejectState = Input.GetButton(menuRejectGamepadInput);
var newVerticalState = Input.GetAxis(menuVerticalGamepadInput);
var newHorizontalState = Input.GetAxis(menuHorizontalGamepadInput);
var newSubmenuOpenState = saveLoadSubmenuOpen || settingsSubmenuOpen;
if (menuOpen)
{
Time.timeScale = 0.0f;
@ -69,19 +81,16 @@ namespace SiegeSong
for (var i = 0; i < menuOptions.transform.childCount; i++)
{
var childObject = menuOptions.transform.GetChild(i);
childObject.GetComponent<Text>().text = selectedIndex == i ? $"~ {childObject.name} ~" : childObject.name;
childObject.GetComponent<Text>().text = selectedIndex == i ? $"- {childObject.name} -" : childObject.name;
childObject.GetComponent<Text>().color = selectedIndex == i ? activeColor : inactiveColor;
childObject.GetComponent<Text>().fontSize = selectedIndex == i ? activeFontSize : inactiveFontSize;
}
var newConfirmState = Input.GetButton(menuConfirmGamepadInput);
var newRejectState = Input.GetButton(menuRejectGamepadInput);
var newMenuVerticalState = Input.GetAxis(menuVerticalGamepadInput);
var newMenuHorizontalState = Input.GetAxis(menuHorizontalGamepadInput);
if (oldVerticalState == 0 && newMenuVerticalState < 0)
if (oldVerticalState == 0.0f && newVerticalState < 0.0f)
{
if (saveLoadSubmenuOpen)
{
if (SavedGames.Length > (saveLoadSubmenuInSavingMode ? 1 : 0))
if (SavedGames.Length + (saveLoadSubmenuInSavingMode ? 1 : 0) > 0)
{
if (subMenuSelectedIndex == (saveLoadSubmenuOpen ? SavedGames.Length - 1 + (saveLoadSubmenuInSavingMode ? 1 : 0) : SettingsSubMenuOptions.transform.childCount - 1))
subMenuSelectedIndex = 0;
@ -89,6 +98,7 @@ namespace SiegeSong
subMenuSelectedIndex++;
UpdateSaveLoadMetaDataTextDisplay();
UpdateSaveLoadSubmenu();
}
}
else
@ -99,18 +109,19 @@ namespace SiegeSong
selectedIndex++;
}
}
if (oldVerticalState == 0 && newMenuVerticalState > 0)
if (oldVerticalState == 0.0f && newVerticalState > 0.0f)
{
if (saveLoadSubmenuOpen)
{
if (SavedGames.Length > (saveLoadSubmenuInSavingMode ? 1 : 0))
{
if (subMenuSelectedIndex == 0)
if (SavedGames.Length + (saveLoadSubmenuInSavingMode ? 1 : 0) > 0)
{
if (subMenuSelectedIndex == 0)
subMenuSelectedIndex = saveLoadSubmenuOpen ? SavedGames.Length - 1 + (saveLoadSubmenuInSavingMode ? 1 : 0) : SettingsSubMenuOptions.transform.childCount - 1;
else
subMenuSelectedIndex--;
UpdateSaveLoadMetaDataTextDisplay();
UpdateSaveLoadSubmenu();
}
}
else
@ -121,7 +132,7 @@ namespace SiegeSong
selectedIndex--;
}
}
if ((!oldConfirmState && newConfirmState) || (oldHorizontalState == 0 && newMenuHorizontalState > 0))
if ((!oldConfirmState && newConfirmState) || (oldHorizontalState == 0.0f && newHorizontalState > 0))
{
if (!saveLoadSubmenuOpen && !settingsSubmenuOpen)
{
@ -167,10 +178,13 @@ namespace SiegeSong
}
else if (saveLoadSubmenuOpen)
{
if (saveLoadSubmenuInSavingMode)
SaveGame();
else
LoadGame();
if (oldSubmenuOpenState)
{
if (saveLoadSubmenuInSavingMode)
SaveGame();
else
LoadGame();
}
}
}
if (newRejectState && !oldRejectState)
@ -180,21 +194,23 @@ namespace SiegeSong
else if (saveLoadSubmenuOpen)
saveLoadSubmenuOpen = false;
}
oldConfirmState = newConfirmState;
oldRejectState = newRejectState;
oldHorizontalState = newMenuHorizontalState;
oldVerticalState = newMenuVerticalState;
}
else
{
StartMenuOptions.active = false;
PauseMenuOptions.active = false;
}
oldSubmenuOpenState = newSubmenuOpenState;
oldConfirmState = newConfirmState;
oldRejectState = newRejectState;
oldHorizontalState = newHorizontalState;
oldVerticalState = newVerticalState;
}
void LoadGame()
{
SaveFileLoader.ActiveSaveFileLocation = $"{Application.persistentDataPath}\\{SaveFileLoader.DirectoryName}\\{SavedGames[subMenuSelectedIndex].PlayerFullName}_{SavedGames[subMenuSelectedIndex].FileNameSuffix}";
SaveFileLoader.ActiveSaveFileLocation = $"{Application.persistentDataPath.Replace("/", "\\")}\\{SaveFileLoader.DirectoryName}\\{SavedGames[subMenuSelectedIndex].PlayerFullName.Replace(" ", "_")}_{SavedGames[subMenuSelectedIndex].FileNameSuffix}";
SaveFileLoader.LoadGameFile();
ResumeGame();
SaveFileLoader.RuntimeManager.PlayerInstance.GetComponentInChildren<NotificationManager>().Notify("Game Loaded!");
@ -205,14 +221,15 @@ namespace SiegeSong
if (subMenuSelectedIndex == 0)
SaveFileLoader.SaveGameFile();
else
SaveFileLoader.SaveGameFile($"{Application.persistentDataPath}\\{SaveFileLoader.DirectoryName}\\{SavedGames[subMenuSelectedIndex].PlayerFullName}_{SavedGames[subMenuSelectedIndex].FileNameSuffix}");
SaveFileLoader.SaveGameFile($"{Application.persistentDataPath.Replace("/", "\\")}\\{SaveFileLoader.DirectoryName}\\{SavedGames[subMenuSelectedIndex - 1].PlayerFullName.Replace(" ", "_")}_{SavedGames[subMenuSelectedIndex - 1].FileNameSuffix}");
ResumeGame();
SaveFileLoader.RuntimeManager.PlayerInstance.GetComponentInChildren<NotificationManager>().Notify("Game Saved!");
InitializeSaveLoadSubmenu();
}
void UpdateSaveLoadMetaDataTextDisplay()
{
var selectedSavedGame = SavedGames != null && SavedGames.Length > 0 ? SavedGames[subMenuSelectedIndex] : new MetaData();
var selectedSavedGame = !(saveLoadSubmenuInSavingMode && subMenuSelectedIndex == 0) ? SavedGames[subMenuSelectedIndex - (saveLoadSubmenuInSavingMode ? 1 : 0)] : new MetaData();
SaveLoadMetaDataTextDisplay.GetComponent<Text>().text = $"{selectedSavedGame.PlayerFullName}\n{selectedSavedGame.PlayerLevel}\n{selectedSavedGame.PlayerActiveQuestFriendlyName}\n{selectedSavedGame.InGameDate}\n{selectedSavedGame.LastPlayedOn}";
}
@ -239,36 +256,60 @@ namespace SiegeSong
void InitializeSaveLoadSubmenu()
{
SavedGames = SaveFileLoader.GetSaveFilesMetaData(saveLoadSubmenuInSavingMode);
var savedGameListRow = SaveLoadListDisplay.transform.GetChild(0).gameObject;
for (var i = 0; i < SavedGames.Length; i++)
{
var savedGame = SavedGames[i];
SavedGames = SaveFileLoader.GetSaveFilesMetaData();
UpdateSaveLoadSubmenu();
}
void UpdateSaveLoadSubmenu()
{
for (var i = 0; i < SaveLoadListDisplay.transform.childCount; i++)
if (SaveLoadListDisplay.transform.GetChild(i).gameObject.active)
GameObject.Destroy(SaveLoadListDisplay.transform.GetChild(i).gameObject);
else
SaveLoadListDisplay.transform.GetChild(i).gameObject.active = false;
for (var i = 0; i < SavedGames.Length + (saveLoadSubmenuInSavingMode ? 1 : 0); i++)
{
var rowSizeBuffer = 4;
var newRow = GameObject.Instantiate(savedGameListRow);
var newRow = GameObject.Instantiate(SavedGameListRowPrefab);
var newRowText = newRow.GetComponent<Text>();
var newRowRect = newRow.GetComponent<RectTransform>();
savedGameListRow.active = false;
newRow.active = true;
if (i == subMenuSelectedIndex)
if (saveLoadSubmenuInSavingMode && i == 0)
{
newRowText.text = $"- {savedGame.Title.Replace("_", " ")} -";
newRowText.color = activeColor;
if (subMenuSelectedIndex == 0)
{
newRowText.text = $"~ New Saved Game ~";
newRowText.color = activeColor;
}
else
{
newRowText.text = $"New Saved Game";
newRowText.color = inactiveColor;
}
}
else
{
newRowText.text = $"{savedGame.Title.Replace("_", " ")}";
newRowText.color = inactiveColor;
var savedGame = SavedGames[i - (saveLoadSubmenuInSavingMode ? 1 : 0)];
if (i + (saveLoadSubmenuInSavingMode ? 1 : 0) == subMenuSelectedIndex + (saveLoadSubmenuInSavingMode ? 1 : 0))
{
newRowText.text = $"~ {savedGame.Title.Replace("_", " ")} ~";
newRowText.color = activeColor;
}
else
{
newRowText.text = $"{savedGame.Title.Replace("_", " ")}";
newRowText.color = inactiveColor;
}
}
newRowText.transform.parent = SaveLoadListDisplay.transform;
newRowText.transform.localScale = Vector3.one;
newRowRect.position = new Vector2(-300, (newRowText.fontSize + rowSizeBuffer) * -(i + 1));
newRowRect.offsetMin = new Vector2(-300, (newRowText.fontSize + rowSizeBuffer) * -(i + 1));
newRowRect.offsetMax = new Vector2(0, (newRowText.fontSize + rowSizeBuffer) * -(i));
newRowRect.position = new Vector2(-300, (newRowText.fontSize + rowSizeBuffer) * -(i + 1 + (saveLoadSubmenuInSavingMode ? 1 : 0)));
newRowRect.offsetMin = new Vector2(-300, (newRowText.fontSize + rowSizeBuffer) * -(i + 1 + (saveLoadSubmenuInSavingMode ? 1 : 0)));
newRowRect.offsetMax = new Vector2(0, (newRowText.fontSize + rowSizeBuffer) * -(i + (saveLoadSubmenuInSavingMode ? 1 : 0)));
newRowRect.sizeDelta = new Vector2(250, (newRowText.fontSize + rowSizeBuffer));
}
UpdateSaveLoadMetaDataTextDisplay();
@ -276,28 +317,24 @@ namespace SiegeSong
void OpenLoadingSubmenu()
{
if (SavedGames == null || SavedGames.Length == 0)
InitializeSaveLoadSubmenu();
saveLoadSubmenuInSavingMode = false;
saveLoadSubmenuOpen = true;
subMenuSelectedIndex = 0;
saveLoadSubmenuOpen = true;
saveLoadSubmenuInSavingMode = false;
InitializeSaveLoadSubmenu();
}
void OpenSavingSubmenu()
{
if (SavedGames == null || SavedGames.Length == 0)
InitializeSaveLoadSubmenu();
saveLoadSubmenuInSavingMode = true;
saveLoadSubmenuOpen = true;
subMenuSelectedIndex = 0;
saveLoadSubmenuOpen = true;
saveLoadSubmenuInSavingMode = true;
InitializeSaveLoadSubmenu();
}
void OpenSettingsSubmenu()
{
settingsSubmenuOpen = true;
subMenuSelectedIndex = 0;
settingsSubmenuOpen = true;
}
void ExitGame()

@ -8,7 +8,7 @@ namespace SiegeSong
[System.Serializable]
public class MetaData
{
public string Title = "New Save Game";
public string Title = "Save Game";
public string PlayerFullName = "Player Character";
@ -16,9 +16,9 @@ namespace SiegeSong
public string PlayerActiveQuestFriendlyName = "None";
public string LastPlayedOn = "12:00AM_01/01/2000";
public string LastPlayedOn = "Never";
public string InGameDate = "9:30AM_01/01/1136";
public string InGameDate = "N/A";
public string PreviewImageBase64DataString;

@ -35,32 +35,29 @@ namespace SiegeSong
public string DirectoryName = "SaveGameData";
public MetaData[] GetSaveFilesMetaData(bool saving = false)
public MetaData[] GetSaveFilesMetaData()
{
if (!System.IO.Directory.Exists($"{Application.persistentDataPath}\\{DirectoryName}\\"))
System.IO.Directory.CreateDirectory($"{Application.persistentDataPath}\\{DirectoryName}\\");
if (!System.IO.Directory.Exists($"{Application.persistentDataPath.Replace("/", "\\")}\\{DirectoryName}\\"))
System.IO.Directory.CreateDirectory($"{Application.persistentDataPath.Replace("/", "\\")}\\{DirectoryName}\\");
var metaDataList = new List<MetaData>();
var filePaths = System.IO.Directory.GetFiles($"{Application.persistentDataPath}\\{DirectoryName}\\");
var filePaths = System.IO.Directory.GetFiles($"{Application.persistentDataPath.Replace("/", "\\")}\\{DirectoryName}\\");
for (var i = 0; i < filePaths.Length; i++)
{
var filePath = filePaths[i];
if (filePath.EndsWith(".sngm"))
{
metaDataList.Add(JsonUtility.FromJson<MetaData>(System.IO.File.ReadAllText(filePath)));
var fileMetaData = JsonUtility.FromJson<MetaData>(System.IO.File.ReadAllText(filePath));
metaDataList.Add(fileMetaData);
}
}
if (saving)
metaDataList.Insert(0, new MetaData());
return metaDataList.ToArray();
}
public void SaveGameFile(string overwrittenFilePath = "")
{
if (!System.IO.Directory.Exists($"{Application.persistentDataPath}\\{DirectoryName}\\"))
System.IO.Directory.CreateDirectory($"{Application.persistentDataPath}\\{DirectoryName}\\");
if (!System.IO.Directory.Exists($"{Application.persistentDataPath.Replace("/", "\\")}\\{DirectoryName}\\"))
System.IO.Directory.CreateDirectory($"{Application.persistentDataPath.Replace("/", "\\")}\\{DirectoryName}\\");
if (ActiveSaveFileMeta == null)
ActiveSaveFileMeta = new MetaData();
@ -78,7 +75,7 @@ namespace SiegeSong
var actor = instance.GetComponent<StatisticsManager>();
actorList.Add(actor.Stats);
playerFriendlyFullName = $"{actor.Stats.FirstName} {actor.Stats.LastName}";
ActiveSaveFileMeta.PlayerFullName = $"{actor.Stats.FirstName} {actor.Stats.LastName}";
ActiveSaveFileMeta.PlayerFullName = playerFriendlyFullName;
ActiveSaveFileMeta.PlayerLevel = actor.Stats.Level;
ActiveSaveFileMeta.PlayerActiveQuestFriendlyName = "None";
}
@ -88,32 +85,33 @@ namespace SiegeSong
//ActiveSaveFile.PreviewImage;
var systemDateTime = System.DateTime.Now;
ActiveSaveFileMeta.LastPlayedOn = $"{(systemDateTime.Hour >= 12 ? $"{(systemDateTime.Hour - (systemDateTime.Hour == 12 ? 0 : 12)).ToString("D2")}:{systemDateTime.Minute.ToString("D2")}PM" : $"{systemDateTime.Hour.ToString("D2")}:{systemDateTime.Minute.ToString("D2")}AM")} {systemDateTime.Day.ToString("D2")}/{systemDateTime.Month.ToString("D2")}/{systemDateTime.Year}";
ActiveSaveFileMeta.InGameDate = $"{(RuntimeManager.Calendar.Hour >= 12 ? $"{(RuntimeManager.Calendar.Hour - (systemDateTime.Hour == 12 ? 0 : 12)).ToString("D2")}:{RuntimeManager.Calendar.Minute.ToString("D2")}PM" : $"{RuntimeManager.Calendar.Hour.ToString("D2")}:{RuntimeManager.Calendar.Minute.ToString("D2")}AM")} {RuntimeManager.Calendar.Day}/{RuntimeManager.Calendar.Month.ToString("D2")}/{RuntimeManager.Calendar.Year}";
ActiveSaveFileMeta.LastPlayedOn = $"{(systemDateTime.Hour > 12 ? $"{(systemDateTime.Hour - (systemDateTime.Hour == 12 ? 0 : 12)).ToString("D2")}:{systemDateTime.Minute.ToString("D2")}{(systemDateTime.Hour > 12 ? "PM" : "AM")}" : $"{systemDateTime.Hour.ToString("D2")}:{systemDateTime.Minute.ToString("D2")}{(systemDateTime.Hour > 12 ? "PM" : "AM")}")} {systemDateTime.Day.ToString("D2")}/{systemDateTime.Month.ToString("D2")}/{systemDateTime.Year}";
ActiveSaveFileMeta.InGameDate = $"{(RuntimeManager.Calendar.Hour > 12 ? $"{(RuntimeManager.Calendar.Hour - (systemDateTime.Hour == 12 ? 0 : 12)).ToString("D2")}:{RuntimeManager.Calendar.Minute.ToString("D2")}{(systemDateTime.Hour > 12 ? "PM" : "AM")}" : $"{RuntimeManager.Calendar.Hour.ToString("D2")}:{RuntimeManager.Calendar.Minute.ToString("D2")}{(systemDateTime.Hour > 12 ? "PM" : "AM")}")} {RuntimeManager.Calendar.Day}/{RuntimeManager.Calendar.Month.ToString("D2")}/{RuntimeManager.Calendar.Year}";
ActiveSaveFile.Year = RuntimeManager.Calendar.Year;
ActiveSaveFile.Day = RuntimeManager.Calendar.Day;
ActiveSaveFile.Minute = RuntimeManager.Calendar.Minute;
ActiveSaveFile.Hour = RuntimeManager.Calendar.Hour;
if (!string.IsNullOrEmpty(overwrittenFilePath))
if (!string.IsNullOrWhiteSpace(overwrittenFilePath))
{
System.IO.File.WriteAllText($"{overwrittenFilePath}", JsonUtility.ToJson(ActiveSaveFile));
System.IO.File.WriteAllText($"{overwrittenFilePath.Replace("/", "\\")}.ssng", JsonUtility.ToJson(ActiveSaveFile));
System.IO.File.WriteAllText($"{overwrittenFilePath.Replace("/", "\\")}.sngm", JsonUtility.ToJson(ActiveSaveFileMeta));
}
else
{
ActiveSaveFileLocation = $"{Application.persistentDataPath}\\{DirectoryName}\\{ActiveSaveFileMeta.PlayerFullName}";
ActiveSaveFileLocation = $"{Application.persistentDataPath}/{DirectoryName}/{ActiveSaveFileMeta.PlayerFullName.Replace(" ", "_")}";
var saveFileNameSuffix = "00001";
var i = 1;
while (System.IO.File.Exists($"{ActiveSaveFileLocation}{saveFileNameSuffix}"))
while (System.IO.File.Exists($"{Application.persistentDataPath.Replace("/", "\\")}\\{DirectoryName}\\{ActiveSaveFileMeta.PlayerFullName.Replace(" ", "_")}_{saveFileNameSuffix}.sngm"))
{
i++;
saveFileNameSuffix = i.ToString("D5");
}
ActiveSaveFileLocation = $"{ActiveSaveFileLocation}_{saveFileNameSuffix}";
ActiveSaveFileLocation = $"{Application.persistentDataPath}/{DirectoryName}/{ActiveSaveFileMeta.PlayerFullName.Replace(" ", "_")}_{saveFileNameSuffix}";
ActiveSaveFileMeta.Title = $"{playerFriendlyFullName} - Save Game {i}";
System.IO.File.WriteAllText($"{ActiveSaveFileLocation}.ssng", JsonUtility.ToJson(ActiveSaveFile));
System.IO.File.WriteAllText($"{ActiveSaveFileLocation}.sngm", JsonUtility.ToJson(ActiveSaveFileMeta));
System.IO.File.WriteAllText($"{ActiveSaveFileLocation.Replace("/", "\\")}.ssng", JsonUtility.ToJson(ActiveSaveFile));
System.IO.File.WriteAllText($"{ActiveSaveFileLocation.Replace("/", "\\")}.sngm", JsonUtility.ToJson(ActiveSaveFileMeta));
}
}
@ -123,7 +121,7 @@ namespace SiegeSong
InstanceManager.ClearAndUnload();
//RuntimeManager.ClearAndUnload();
ActiveSaveFile = JsonUtility.FromJson<SaveFile>(System.IO.File.ReadAllText($"{ActiveSaveFileLocation}.ssng"));
ActiveSaveFile = JsonUtility.FromJson<SaveFile>(System.IO.File.ReadAllText($"{ActiveSaveFileLocation.Replace("/", "\\")}.ssng"));
GameObject instance = new GameObject();
foreach (var stats in ActiveSaveFile.Actors)
{

@ -0,0 +1 @@
{"Title":"Human Being - Save Game 1","PlayerFullName":"Human Being","PlayerLevel":1,"PlayerActiveQuestFriendlyName":"None","LastPlayedOn":"08:42PM 24/10/2022","InGameDate":"00:48PM 1/00/1136","PreviewImageBase64DataString":"","FileNameSuffix":"00001"}

@ -0,0 +1 @@
{"Actors":[{"ID":0,"InstanceID":"CAAAA","LocationX":114.89908599853516,"LocationY":61.764015197753909,"LocationZ":289.1904296875,"RotationX":-1.4622918154127974e-10,"RotationY":266.3935546875,"RotationZ":-8.537744520253909e-7,"InventoryItemIDs":[],"InventoryItemQuantities":[],"ActiveInventoryItemIDs":[],"SpeciesKey":"_Human","FirstName":"Human","LastName":"Being","Alive":true,"IsPlayer":true,"HairstyleID":0,"FacialHairID":0,"FacialDetailID":0,"HairColorR":0,"HairColorG":0,"HairColorB":0,"HairColorA":0,"Recoil":false,"NoiseBeingProduced":2,"VisualStealthRating":0,"StaminaRecoveryRate":0.20000000298023225,"MagicRecoveryRate":0.20000000298023225,"HealthRecoveryRate":0.20000000298023225,"MaxHealth":100,"MaxStamina":100,"MaxMagic":100,"Health":100.0,"Stamina":100.0,"Magic":100.0,"SprintCost":2,"InCombat":false,"Staggered":false,"OffBalance":false,"Fallen":false,"Invincible":false,"Hunger":0,"Thirst":0,"Exhaustion":0,"Heat":0,"CarryWeight":0,"MaxCarryWeight":100,"Gold":0,"Level":1,"Experience":0,"ExperienceToNextLevel":1000,"CanHealH":true,"CanHealS":true,"CanHealM":true,"StaminaTemporarilyRemovedIncrements":[],"MagicTemporarilyRemovedIncrements":[],"HealthTemporarilyRemovedIncrements":[]}],"Year":1136,"Day":1,"Hour":12,"Minute":48}

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save