예제 #1
0
        /// <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));
            }
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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;
        }
예제 #4
0
        /// <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);
        }
예제 #5
0
        /// <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);
        }
예제 #6
0
        /// <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;
        }
예제 #7
0
        /// <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));
        }
예제 #8
0
        /// <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));
        }
예제 #9
0
        /// <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));
        }
예제 #10
0
        /// <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));
        }
예제 #11
0
        /// <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);
        }
예제 #12
0
        /// <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);
        }
예제 #13
0
        /// <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);
        }
예제 #14
0
        /// <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);
        }
예제 #15
0
        /// <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));
        }
예제 #16
0
        /// <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));
        }
예제 #17
0
        /// <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();
        }
예제 #18
0
        /// <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));
            }
        }
예제 #19
0
        /// <summary>
        /// 設定種別 &amp; 種別順列
        /// </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), "項目設定種別"));
        }
예제 #20
0
        /// <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);
        }
예제 #21
0
        /// <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);
        }
예제 #22
0
        /// <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データ設定"));
        }
예제 #23
0
        /// <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);
        }
예제 #24
0
        /// <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());
            }
        }
예제 #25
0
        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),
                                                     "タイプ設定リスト"));
        }
예제 #27
0
        /// <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);
        }
예제 #28
0
        /// <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));
        }
예제 #29
0
        /// <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);
            }
        }
예제 #30
0
        /// <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);
        }