Ejemplo n.º 1
0
        public static List <SCCMLevelData> ListUserLevelsUnfinished()
        {
            var allfiles = FileHelper.Inst.ListData();

            var result = new List <SCCMLevelData>();

            foreach (var file in allfiles)
            {
                if (!file.StartsWith("CUSTOMLEVELDATA_"))
                {
                    continue;
                }

                string content = null;
                try
                {
                    var dat = new SCCMLevelData();
                    content = FileHelper.Inst.ReadDataOrNull(file);
                    dat.DeserializeFromString(content);

                    result.Add(dat);
                }
                catch (Exception e)
                {
                    SAMLog.Error("SCCMU::READFAIL_LULU", "Could not read CustomLevelData", $"Exception: {e}\n\n\nFile: {file}\n\n\nContent:{content}");
                }
            }

            return(result.OrderByDescending(r => r.LastChanged).ToList());
        }
Ejemplo n.º 2
0
        private bool SaveToDisk()
        {
            var sdata = SerializeToString();

            try
            {
                FileHelper.Inst.WriteData(Filename, sdata);
            }
            catch (IOException e)
            {
                if (e.Message.Contains("Disk full"))
                {
                    MainGame.Inst.DispatchBeginInvoke(() =>
                    {
                        MainGame.Inst.ShowToast("SCCMLD::OOM", L10N.T(L10NImpl.STR_ERR_OUTOFMEMORY), 32, FlatColors.Flamingo, FlatColors.Foreground, 3f);
                    });
                    return(false);
                }
                else
                {
                    SAMLog.Error("SCCMLD::WRITE", e);
                    return(false);
                }
            }

#if DEBUG
            SAMLog.Debug($"SCCM saved ({sdata.Length})");

            try
            {
                var p = new SCCMLevelData();
                p.DeserializeFromString(sdata);
                var sdata2 = p.SerializeToString();

                if (sdata2 != sdata)
                {
                    SAMLog.Error("SCCMLD:Serialization_mismatch", "Serialization test mismatch", $"Data_1:\n{sdata}\n\n----------------\n\nData_2:\n{sdata2}");
                }
            }
            catch (Exception e)
            {
                SAMLog.Error("SCCMLD:Serialization-Ex", "Serialization test mismatch", e.ToString());
            }
#endif

            return(true);
        }
Ejemplo n.º 3
0
 public static void UpgradeLevel(SCCMLevelData oldData, byte[] newData)
 {
     FileHelper.Inst.DeleteDataIfExist(oldData.Filename);
     FileHelper.Inst.WriteBinData(oldData.FilenameUploaded, newData);
 }