forked from sin365/AxibugEmuOnline
AppGameSavMgr更名为SavCloudApi,负责存档的云端同步功能
新增SaveSlotManager,用于游戏存档功能
This commit is contained in:
parent
94cd346c66
commit
67617057ed
@ -36,7 +36,7 @@ namespace AxibugEmuOnline.Client.ClientCore
|
|||||||
public static AppSettings settings;
|
public static AppSettings settings;
|
||||||
public static AppShare share;
|
public static AppShare share;
|
||||||
public static GamePadManager gamePadMgr;
|
public static GamePadManager gamePadMgr;
|
||||||
private static object gameSavMgr;
|
public static SaveSlotManager SavMgr;
|
||||||
static bool bTest;
|
static bool bTest;
|
||||||
static string mTestSrvIP;
|
static string mTestSrvIP;
|
||||||
#region Mono
|
#region Mono
|
||||||
@ -86,9 +86,10 @@ namespace AxibugEmuOnline.Client.ClientCore
|
|||||||
CacheMgr = new CacheManager();
|
CacheMgr = new CacheManager();
|
||||||
roomMgr = new AppRoom();
|
roomMgr = new AppRoom();
|
||||||
share = new AppShare();
|
share = new AppShare();
|
||||||
gameSavMgr = new AppGameSavMgr();
|
SavMgr = new SaveSlotManager();
|
||||||
gamePadMgr = new GamePadManager();
|
gamePadMgr = new GamePadManager();
|
||||||
|
|
||||||
|
|
||||||
bTest = isTest;
|
bTest = isTest;
|
||||||
mTestSrvIP = testSrvIP;
|
mTestSrvIP = testSrvIP;
|
||||||
var go = new GameObject("[AppAxibugEmuOnline]");
|
var go = new GameObject("[AppAxibugEmuOnline]");
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3e7c8882fb03206478af7524574d39ed
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -5,11 +5,14 @@ using AxibugEmuOnline.Client.Network;
|
|||||||
using AxibugProtobuf;
|
using AxibugProtobuf;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace AxibugEmuOnline.Client.Manager
|
namespace AxibugEmuOnline.Client
|
||||||
{
|
{
|
||||||
public class AppGameSavMgr
|
/// <summary>
|
||||||
|
/// 负责存档的云端保存和获取功能
|
||||||
|
/// </summary>
|
||||||
|
public class SavCloudApi
|
||||||
{
|
{
|
||||||
public AppGameSavMgr()
|
public SavCloudApi()
|
||||||
{
|
{
|
||||||
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdGamesavGetGameSavList, RecvGetGameSavList);
|
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdGamesavGetGameSavList, RecvGetGameSavList);
|
||||||
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdGamesavDelGameSav, RecvDelGameSavList);
|
NetMsg.Instance.RegNetMsgEvent((int)CommandID.CmdGamesavDelGameSav, RecvDelGameSavList);
|
@ -0,0 +1,30 @@
|
|||||||
|
using AxibugProtobuf;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
/// <summary> 存档文件类 </summary>
|
||||||
|
public class SaveFile
|
||||||
|
{
|
||||||
|
/// <summary> 指示该存档是否是自动存档 </summary>
|
||||||
|
public bool AutoSave => SlotIndex == 0;
|
||||||
|
/// <summary> 指示该存档所在槽位 </summary>
|
||||||
|
public int SlotIndex { get; private set; }
|
||||||
|
/// <summary> 指示该存档所属Rom的ID </summary>
|
||||||
|
public int RomID { get; private set; }
|
||||||
|
/// <summary> 指示该存档所属模拟器平台 </summary>
|
||||||
|
public RomPlatformType EmuPlatform { get; private set; }
|
||||||
|
|
||||||
|
public SaveFile(int romID, RomPlatformType platform, int slotIndex)
|
||||||
|
{
|
||||||
|
RomID = romID;
|
||||||
|
EmuPlatform = platform;
|
||||||
|
SlotIndex = slotIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void Save(byte[] savData, byte[] screenShotData)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7ff9dcbecc3c563449013ccad984780b
|
@ -0,0 +1,37 @@
|
|||||||
|
using AxibugProtobuf;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace AxibugEmuOnline.Client
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 游戏存档管理器
|
||||||
|
/// </summary>
|
||||||
|
public class SaveSlotManager
|
||||||
|
{
|
||||||
|
const int MAX_SLOT_COUNT = 4;
|
||||||
|
|
||||||
|
SavCloudApi m_cloudApi = new SavCloudApi();
|
||||||
|
Dictionary<int, SaveFile[]> m_saveFileDict = new Dictionary<int, SaveFile[]>();
|
||||||
|
|
||||||
|
public void Save(int romID, RomPlatformType platform, int slotIndex, byte[] savData, byte[] screenShotData)
|
||||||
|
{
|
||||||
|
var fileIns = GetSaveFile(romID, platform, slotIndex);
|
||||||
|
fileIns.Save(savData, screenShotData);
|
||||||
|
}
|
||||||
|
|
||||||
|
SaveFile GetSaveFile(int romID, RomPlatformType platform, int slotIndex)
|
||||||
|
{
|
||||||
|
if (!m_saveFileDict.TryGetValue(romID, out SaveFile[] files))
|
||||||
|
{
|
||||||
|
if (files == null) files = new SaveFile[MAX_SLOT_COUNT];
|
||||||
|
for (int i = 0; i < files.Length; i++)
|
||||||
|
{
|
||||||
|
files[i] = new SaveFile(romID, platform, i);
|
||||||
|
}
|
||||||
|
m_saveFileDict[romID] = files;
|
||||||
|
}
|
||||||
|
|
||||||
|
return files[slotIndex];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8544202e7fcd25643a144eb2cab2f0da
|
Loading…
Reference in New Issue
Block a user