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)); } }
//セーブデータ用のバイナリ読み込み 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> 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)); } }