void Read(BinaryReader reader) { long position = reader.BaseStream.Position; int version = reader.ReadInt32(); if (version <= Version) { if (version <= OldVersion) { reader.BaseStream.Position = position; ReadOld(reader); } else { int count = reader.ReadInt32(); for (int i = 0; i < count; i++) { string key = reader.ReadString(); byte[] buffer = BinaryUtil.ReadBytes(reader); if (StructTbl.ContainsKey(key)) { BinaryUtil.BinaryRead(buffer, StructTbl[key].Read); } else { //セーブされていたが、パラメーター設定から消えているので読み込まない } } } } else { Debug.LogError(LanguageErrorMsg.LocalizeTextFormat(ErrorMsg.UnknownVersion, version)); } }
protected override void OnParseGrid(StringGrid grid, AdvBootSetting bootSetting) { if (GridList.Count == 0) { Debug.LogError("Old Version Reimport Excel Scenario Data"); return; } string sheetName = grid.SheetName; AdvParamStructTbl data; if (!StructTbl.TryGetValue(sheetName, out data)) { data = new AdvParamStructTbl(); StructTbl.Add(sheetName, data); } if (sheetName == SheetNameParam) { data.AddSingle(grid); } else { data.AddTbl(grid); } }
//セーブデータ用のバイナリ読み込み public void Read(BinaryReader reader, AdvParamData.FileType fileType) { //基本的なパラメーターをデフォルト値でリセット(システムデータ以外) if (fileType == AdvParamData.FileType.Default) { this.InitDefaultNormal(DefaultParameter); } int version = reader.ReadInt32(); if (version < 0 || version > Version) { Debug.LogError(LanguageErrorMsg.LocalizeTextFormat(ErrorMsg.UnknownVersion, version)); return; } int count = reader.ReadInt32(); for (int i = 0; i < count; i++) { string key = reader.ReadString(); if (StructTbl.ContainsKey(key)) { reader.ReadBuffer((x) => StructTbl[key].Read(x, fileType)); } else { //セーブされていたが、パラメーター設定から消えているので読み込まない reader.SkipBuffer(); } } }
public AdvParamStruct GetDefault() { if (!StructTbl.ContainsKey(SheetNameParam)) { return(null); } return(StructTbl[SheetNameParam].Tbl[""]); }
/// <summary> /// システムデータ含めてデフォルト値で初期化 /// </summary> internal void InitDefaultAll(AdvParamManager src) { this.StructTbl.Clear(); foreach (var keyValue in src.StructTbl) { StructTbl.Add(keyValue.Key, keyValue.Value.Clone()); } IsInit = true; }
/// <summary> /// システムデータ以外の値をデフォルト値で初期化 /// </summary> /// <param name="advParamSetting"></param> internal void InitDefaultNormal(AdvParamManager src) { foreach (var keyValue in src.StructTbl) { AdvParamStructTbl data; if (StructTbl.TryGetValue(keyValue.Key, out data)) { data.InitDefaultNormal(keyValue.Value); } else { Debug.LogError("Param: " + keyValue.Key + " is not found in default param"); } } }
/// <summary> /// パラメータテーブルを取得 /// </summary> public bool TryGetParamTbl(string structName, string indexKey, out AdvParamStruct paramStruct) { paramStruct = null; if (!StructTbl.ContainsKey(structName)) { return(false); } if (!StructTbl[structName].Tbl.ContainsKey(indexKey)) { return(false); } paramStruct = StructTbl[structName].Tbl[indexKey]; return(true); }
/// <summary> /// キーからパラメータを取得 /// </summary> bool TryGetParamData(string key, out AdvParamData data) { data = null; string structName, indexKey, valueKey; if (!ParseKey(key, out structName, out indexKey, out valueKey)) { return(GetDefault().Tbl.TryGetValue(key, out data)); } else { if (!StructTbl.ContainsKey(structName)) { return(false); } if (!StructTbl[structName].Tbl.ContainsKey(indexKey)) { return(false); } return(StructTbl[structName].Tbl[indexKey].Tbl.TryGetValue(valueKey, out data)); } }