/// <summary> /// タイルセット設定 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="nodes">読み込み結果格納インスタンス</param> private void ReadTreeNodeList(FileReadStatus status, out List <MapTreeNode> nodes) { // ノード数 var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(MapTreeDataFileReader), "マップツリーノード数", length)); nodes = new List <MapTreeNode>(); for (var i = 0; i < length; i++) { var parent = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(MapTreeDataFileReader), $"マップツリーノード{i} 親マップID", parent)); var me = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(MapTreeDataFileReader), $"マップツリーノード{i} 自身マップID", me)); nodes.Add(new MapTreeNode(me, parent)); } }
/// <summary> /// 数値特殊指定数値初期値 /// </summary> /// <param name="status">読み込み経過状態</param> /// <returns>数値特殊指定数値初期値リスト</returns> private List <int> ReadInitValue(FileReadStatus status) { Logger.Debug(FileIOMessage.StartCommonRead(typeof(SpecialArgDescReader), "数値特殊指定数値初期値")); var result = new List <int>(); var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(SpecialArgDescReader), "数値特殊指定数値初期値の数", length)); for (var i = 0; i < length; i++) { var value = status.ReadInt(); status.IncreaseIntOffset(); result.Add(value); Logger.Debug(FileIOMessage.SuccessRead(typeof(SpecialArgDescReader), $"数値特殊指定数値{i}の初期値", value)); } Logger.Debug(FileIOMessage.EndCommonRead(typeof(SpecialArgDescReader), "数値特殊指定数値初期値")); return(result); }
/// <summary> /// DBデータの数値項目 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="values">読み込み結果</param> private void ReadDbDataIntValues(FileReadStatus status, out IReadOnlyList <DBItemValue> values) { // 数値項目数 var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataFileReader), "数値項目数", length)); var result = new List <DBItemValue>(); for (var i = 0; i < length; i++) { var value = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataFileReader), $" 数値項目{i,2}", value)); result.Add((DBValueInt)value); } values = result; }
/// <summary> /// データIDの設定方法 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="setting">結果格納インスタンス</param> private void ReadDataSettingType(FileReadStatus status, DBDataSetting setting) { var typeCode = status.ReadInt(); status.IncreaseIntOffset(); var settingType = DBDataSettingType.FromValue(typeCode); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataSettingReader), "データID設定方法", settingType)); // 「指定DBの指定タイプ」の場合、DB種別とタイプIDを取り出す DBKind dbKind = null; TypeId typeId = 0; if (settingType == DBDataSettingType.DesignatedType) { dbKind = DbKindFromSettingTypeCode(typeCode); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataSettingReader), "DB種別", dbKind)); typeId = TypeIdFromSettingTypeCode(typeCode); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataSettingReader), "タイプID", typeId)); } setting.SetDataSettingType(settingType, dbKind, typeId); }
/// <summary> /// 項目特殊指定 /// </summary> /// <param name="status">読み込み経過状態</param> /// <returns>項目項目特殊指定リスト</returns> private List <DBItemSpecialSettingType> ReadItemSpecialSettingType(FileReadStatus status) { var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBTypeSettingReader), "項目特殊指定数", length)); var result = new List <DBItemSpecialSettingType>(); for (var i = 0; i < length; i++) { var value = status.ReadByte(); status.IncreaseByteOffset(); var type = DBItemSpecialSettingType.FromByte(value); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBTypeSettingReader), $" 項目特殊指定{i,2}", type)); result.Add(type); } return(result); }
/// <summary> /// DBデータの文字列項目 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="values">読み込み結果</param> private void ReadDbDataStringValues(FileReadStatus status, out IReadOnlyList <DBItemValue> values) { // 数値項目数 var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataFileReader), "文字列項目数", length)); var result = new List <DBItemValue>(); for (var i = 0; i < length; i++) { var value = status.ReadString(); status.AddOffset(value.ByteLength); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataFileReader), $" 文字列項目{i,2}", value)); DBValueString dbValueString = value.String; result.Add(dbValueString); } values = result; }
/// <summary> /// マップサイズ縦 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="mapData">データ格納マップデータインスタンス</param> private void ReadMapSizeHeight(FileReadStatus status, MapData mapData) { mapData.UpdateMapSizeHeight(status.ReadInt()); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(MpsFileReader), "マップサイズ縦", mapData.MapSizeHeight)); }
/// <summary> /// タイルセットID /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="mapData">データ格納マップデータインスタンス</param> private void ReadTileSetId(FileReadStatus status, MapData mapData) { mapData.TileSetId = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(MpsFileReader), "タイルセットID", mapData.TileSetId)); }
/// <summary> /// コモンイベントID /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="commonEvent">結果格納インスタンス</param> private void ReadCommonEventId(FileReadStatus status, CommonEvent commonEvent) { commonEvent.Id = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(CommonEventReader), "コモンイベントID", commonEvent.Id)); }
/// <summary> /// 起動条件右辺 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="condition">結果格納インスタンス</param> private void ReadBootConditionRightSide(FileReadStatus status, CommonEventBootCondition condition) { condition.RightSide = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(CommonEventReader), "起動条件右辺", condition.RightSide)); }
/// <summary> /// コモンイベント数 /// </summary> /// <param name="status">読み込み経過状態</param> /// <returns>コモンイベント数</returns> private int ReadCommonEventLength(FileReadStatus status) { var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug($"{nameof(CommonFileReader)} コモンイベント数:{length}"); return(length); }
/// <summary> /// 数値特殊指定数値パラメータ /// </summary> /// <param name="status">読み込み経過状態</param> /// <returns>数値特殊指定数値パラメータリスト</returns> private List <List <int> > ReadSpecialNumberArgList(FileReadStatus status) { Logger.Debug(FileIOMessage.StartCommonRead(typeof(SpecialArgDescReader), "数値特殊指定数値パラメータ")); var result = new List <List <int> >(); var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(SpecialArgDescReader), "特殊数値引数の数", length)); for (var i = 0; i < length; i++) { var caseLength = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(SpecialArgDescReader), $"引数{i}の数値選択可能数", caseLength)); var caseNumberList = new List <int>(); for (var j = 0; j < caseLength; j++) { var caseNumber = status.ReadInt(); status.IncreaseIntOffset(); caseNumberList.Add(caseNumber); Logger.Debug(FileIOMessage.SuccessRead(typeof(SpecialArgDescReader), $"引数{i} {j}番目の数値", caseNumber)); } result.Add(caseNumberList); } Logger.Debug(FileIOMessage.EndCommonRead(typeof(SpecialArgDescReader), "数値特殊指定数値パラメータ")); return(result); }
/// <summary> /// 数値特殊指定文字列パラメータ /// </summary> /// <param name="status">読み込み経過状態</param> /// <returns>数値特殊指定文字列パラメータリスト</returns> private List <List <string> > ReadSpecialStringArgList(FileReadStatus status) { Logger.Debug(FileIOMessage.StartCommonRead(typeof(SpecialArgDescReader), "数値特殊指定文字列パラメータ")); var result = new List <List <string> >(); var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(SpecialArgDescReader), "特殊文字列引数の数", length)); for (var i = 0; i < length; i++) { var caseLength = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(SpecialArgDescReader), $"引数{i}の文字列選択可能数", caseLength)); var caseDescriptionList = new List <string>(); for (var j = 0; j < caseLength; j++) { var caseDescription = status.ReadString(); status.AddOffset(caseDescription.ByteLength); caseDescriptionList.Add(caseDescription.String); Logger.Debug(FileIOMessage.SuccessRead(typeof(SpecialArgDescReader), $"引数{i} {j}番目の文字列", caseDescription.String)); } result.Add(caseDescriptionList); } Logger.Debug(FileIOMessage.EndCommonRead(typeof(SpecialArgDescReader), "数値特殊指定文字列パラメータ")); return(result); }
/// <summary> /// マップイベント数 /// </summary> /// <param name="status">読み込み経過状態</param> private int ReadMapEventLength(FileReadStatus status) { var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(MpsFileReader), "マップイベント数", length)); return(length); }
/// <summary> /// 返戻セルフ変数インデックス /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="commonEvent">結果格納インスタンス</param> private void ReadReturnVariableIndex(FileReadStatus status, CommonEvent commonEvent) { var index = status.ReadInt(); status.IncreaseIntOffset(); commonEvent.SetReturnVariableIndex(index); Logger.Debug(FileIOMessage.SuccessRead(typeof(CommonEventReader), "返戻セルフ変数インデックス", index)); }
/// <summary> /// ラベル色 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="commonEvent">結果格納インスタンス</param> private void ReadLabelColor(FileReadStatus status, CommonEvent commonEvent) { var colorNumber = status.ReadInt(); status.IncreaseIntOffset(); commonEvent.LabelColor = CommonEventLabelColor.FromInt(colorNumber); Logger.Debug(FileIOMessage.SuccessRead(typeof(CommonEventReader), "ラベル色", commonEvent.LabelColor)); }
/// <summary> /// イベントコマンド /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="commonEvent">結果格納インスタンス</param> private void ReadEventCommand(FileReadStatus status, CommonEvent commonEvent) { var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(CommonEventReader), "イベントコマンド数", length)); var reader = new EventCommandListReader(status, length); commonEvent.EventCommands = reader.Read(); }
/// <summary> /// タイル通行設定リスト /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="list">結果格納インスタンス</param> private void ReadTilePathSettingList(FileReadStatus status, out List <TilePathSetting> list) { var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(TileSetSettingReader), "タイル通行設定数", length)); list = new List <TilePathSetting>(); for (var i = 0; i < length; i++) { var tilePathSettingCode = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(TileSetSettingReader), $"タイルパス設定{i}コード", tilePathSettingCode)); list.Add(new TilePathSetting(tilePathSettingCode)); } }
/// <summary> /// 設定種別 & 種別順列 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="itemTypes">取得した項目種別リスト格納先</param> private void ReadValueType(FileReadStatus status, out List <DBItemType> itemTypes) { var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataSettingReader), "項目数", length)); var countDic = new Dictionary <DBItemType, int> { { DBItemType.Int, 0 }, { DBItemType.String, 0 } }; itemTypes = new List <DBItemType>(); for (var i = 0; i < length; i++) { var settingCode = status.ReadInt(); status.IncreaseIntOffset(); var itemType = DBItemType.FromValue(settingCode); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataSettingReader), $" 項目{i,2}設定種別", itemType)); // 項目タイプ数集計 countDic[itemType]++; // 種別順位は無視する itemTypes.Add(itemType); } Logger.Debug(FileIOMessage.EndCommonRead( typeof(DBDataSettingReader), "項目設定種別")); }
/// <summary> /// 初期値 /// </summary> /// <param name="status">読み込み経過状態</param> /// <returns>初期値リスト</returns> private List <DBValueInt> ReadItemInitValue(FileReadStatus status) { var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBTypeSettingReader), "項目初期値数", length)); var result = new List <DBValueInt>(); for (var i = 0; i < length; i++) { var value = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBTypeSettingReader), $" 初期値{i,2}", value)); result.Add(value); } return(result); }
/// <summary> /// 特殊指定数値パラメータ /// </summary> /// <param name="status">読み込み経過状態</param> /// <returns>特殊指定数値パラメータリスト</returns> private List <List <DatabaseValueCaseNumber> > ReadSpecialNumberValue(FileReadStatus status) { var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBTypeSettingReader), "特殊指定数値パラメータ数", length)); var result = new List <List <DatabaseValueCaseNumber> >(); for (var i = 0; i < length; i++) { var descriptionLength = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBTypeSettingReader), $" 項目{i,2}のパラメータ数", descriptionLength)); var paramList = new List <DatabaseValueCaseNumber>(); for (var j = 0; j < descriptionLength; j++) { var value = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBTypeSettingReader), $" パラメータ{j,2}", value)); paramList.Add(value); } result.Add(paramList); } return(result); }
/// <summary> /// DBデータ設定 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="data">結果格納インスタンス</param> private void ReadDBData(FileReadStatus status, DatabaseDat data) { var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataSettingReader), "タイプ数", length)); var reader = new DBDataSettingReader(status, length); data.SettingList.AddRange(reader.Read()); Logger.Debug(FileIOMessage.EndCommonRead( typeof(DatabaseDatFileReader), "DBデータ設定")); }
/// <summary> /// 1レイヤー列情報 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="mapSizeHeight">マップ高さ</param> /// <param name="chipList">格納先リスト</param> private void ReadLayerOneLine(FileReadStatus status, MapSizeHeight mapSizeHeight, ICollection <List <MapChip> > chipList) { var lineChips = new List <MapChip>(); for (var y = 0; y < (int)mapSizeHeight; y++) { var chip = (MapChip)status.ReadInt(); lineChips.Add(chip); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(MpsFileReader), $"座標Y:{y} チップ番号", (int)chip)); } chipList.Add(lineChips); }
/// <summary> /// タイルセット設定 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="settings">読み込み結果格納インスタンス</param> private void ReadTileSetSetting(FileReadStatus status, out List <TileSetSetting> settings) { // タイルセット数 var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(TileSetDataFileReader), "タイルセット数", length)); settings = new List <TileSetSetting>(); for (var i = 0; i < length; i++) { var reader = new TileSetSettingReader(status); settings.Add(reader.Read()); } }
private void ReadDbData(FileReadStatus status, DBData data) { // データ数 var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataFileReader), "データ数数", length)); // DBデータ var dataDescList = new DatabaseDataDescList(); for (var i = 0; i < length; i++) { var desc = new DatabaseDataDesc(); // データ名 var dataName = status.ReadString(); status.AddOffset(dataName.ByteLength); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataFileReader), "データ名", dataName.String)); desc.DataName = dataName.String; // 数値項目 ReadDbDataIntValues(status, out var intValues); desc.ItemValueList.AddRange(intValues); // 文字列項目 ReadDbDataStringValues(status, out var stringValues); desc.ItemValueList.AddRange(stringValues); dataDescList.Overwrite(i, new List <DatabaseDataDesc> { desc }); } data.DataDescList.Overwrite(0, dataDescList); }
// _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // ReadMethod // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ /// <summary> /// タイプ設定 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="data">結果格納インスタンス</param> /// <exception cref="InvalidOperationException">ファイルヘッダが仕様と異なる場合</exception> private void ReadTypeSettingList(FileReadStatus status, DatabaseProject data) { Logger.Debug(FileIOMessage.StartCommonRead(typeof(DBTypeSettingReader), "タイプ設定リスト")); var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DatabaseProjectFileReader), "タイプ設定数", length)); var reader = new DBTypeSettingReader(status, length, true); var settings = reader.Read(); data.TypeSettingList.AddRange(settings); Logger.Debug(FileIOMessage.EndCommonRead(typeof(DBTypeSettingReader), "タイプ設定リスト")); }
/// <summary> /// DBデータ設定値 /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="setting">結果格納インスタンス</param> /// <param name="itemTypes">項目種別リスト</param> private void ReadDataSettingValue(FileReadStatus status, DBDataSetting setting, IReadOnlyCollection <DBItemType> itemTypes) { var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(DBDataSettingReader), "データ数", length)); var numberItemCount = itemTypes.Count(x => x == DBItemType.Int); var stringItemCount = itemTypes.Count(x => x == DBItemType.String); var valuesList = new List <List <DBItemValue> >(); for (var i = 0; i < length; i++) { ReadOneDataSettingValue(status, valuesList, itemTypes, numberItemCount, stringItemCount); } setting.SettingValuesList = new DBItemValuesList(valuesList); }
/// <summary> /// 動作コマンドリスト /// </summary> /// <param name="status">読み込み経過状態</param> /// <exception cref="InvalidOperationException">ファイル仕様が異なる場合</exception> private CharaMoveCommandList ReadCharaMoveCommand(FileReadStatus status) { Logger.Debug(FileIOMessage.StartCommonRead(typeof(EventCommandListReader), "マップイベントページ動作コマンドリスト")); // 動作コマンド数 var commandLength = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(EventCommandListReader), "マップイベントページ動作コマンド数", commandLength)); // 動作指定コマンド var reader = new CharaMoveCommandListReader(status, commandLength); var result = reader.Read(); Logger.Debug(FileIOMessage.EndCommonRead(typeof(EventCommandListReader), "マップイベントページ動作コマンドリスト")); return(new CharaMoveCommandList(result)); }
/// <summary> /// タグ番号リスト /// </summary> /// <param name="status">読み込み経過状態</param> /// <param name="list">結果格納インスタンス</param> private void ReadTagNumberList(FileReadStatus status, out List <TileTagNumber> list) { var length = status.ReadInt(); status.IncreaseIntOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(TileSetSettingReader), "タイルタグ番号数", length)); list = new List <TileTagNumber>(); for (var i = 0; i < length; i++) { var tagNumber = status.ReadByte(); status.IncreaseByteOffset(); Logger.Debug(FileIOMessage.SuccessRead(typeof(TileSetSettingReader), $"タイルタグ{i}番号", tagNumber)); list.Add(tagNumber); } }
/// <summary> /// 引数特殊指定 /// </summary> /// <param name="status">読み込み経過状態</param> /// <returns>引数特殊指定リスト</returns> private List <CommonEventArgType> ReadSpecialArgType(FileReadStatus status) { Logger.Debug(FileIOMessage.StartCommonRead(typeof(SpecialArgDescReader), "引数特殊指定")); var result = new List <CommonEventArgType>(); var length = status.ReadInt(); status.IncreaseIntOffset(); for (var i = 0; i < length; i++) { var b = status.ReadByte(); status.IncreaseByteOffset(); result.Add(CommonEventArgType.FromByte(b)); } Logger.Debug(FileIOMessage.EndCommonRead(typeof(SpecialArgDescReader), "引数特殊指定")); return(result); }