예제 #1
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;
        }
예제 #2
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;
        }
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     ReadMethod
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        private void ReadOneData(TIniTarget target)
        {
            var section = target.SectionName;

            var properties = GetAllPropertyInfo();

            foreach (var propertyInfo in properties)
            {
                var iniTargetAttr =
                    (IniTargetAttribute)propertyInfo.GetCustomAttribute(typeof(IniTargetAttribute), true);
                if (VersionConfig.IsUnderVersion(iniTargetAttr.SupportMinVersion))
                {
                    // サポート対象外の場合、ファイルからは取得できないため固定で空文字をセット
                    propertyInfo.SetValue(target, string.Empty);
                    continue;
                }

                var sb = new StringBuilder(256);
                IniFileHelper.GetPrivateProfileString(section ?? "", propertyInfo.Name,
                                                      "", sb, sb.Capacity, FilePath);

                var result = sb.ToString();

                Logger.Debug(FileIOMessage.SuccessRead(GetType(), $"プロパティ:{propertyInfo.Name}", result));

                propertyInfo.SetValue(target, sb.ToString());
            }
        }
예제 #4
0
        /// <summary>
        /// イベントコマンドの動作指定コマンド
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="actionEntry">データ格納先</param>
        /// <exception cref="InvalidOperationException">ファイル仕様が異なる場合</exception>
        private void ReadEventActionEntry(FileReadStatus status, ActionEntry actionEntry)
        {
            Logger.Debug(FileIOMessage.StartCommonRead(typeof(EventCommandListReader),
                                                       "動作指定コマンド"));

            // ヘッダチェック
            foreach (var b in ActionEntry.HeaderBytes)
            {
                if (status.ReadByte() != b)
                {
                    throw new InvalidOperationException(
                              $"イベントコマンド中のイベントコマンドヘッダの値が異なります。(offset: {status.Offset})");
                }

                status.IncreaseByteOffset();
            }

            Logger.Debug(FileIOMessage.CheckOk(typeof(EventCommandListReader),
                                               "動作指定コマンドヘッダ"));

            // 動作フラグ
            var optionFlag = status.ReadByte();

            actionEntry.SetOptionFlag(optionFlag);
            status.IncreaseByteOffset();

            Logger.Debug(FileIOMessage.SuccessRead(typeof(EventCommandListReader),
                                                   "数値変数の数", optionFlag));

            // 動作コマンドリスト
            actionEntry.CommandList = ReadCharaMoveCommand(status);

            Logger.Debug(FileIOMessage.EndCommonRead(typeof(EventCommandListReader),
                                                     "動作指定コマンド"));
        }
예제 #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
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Public Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     ファイルが正しく読み込めなかった場合
        /// </exception>
        public override DatabaseDat ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                var result = new DatabaseDat();

                // ヘッダチェック
                ReadHeader(ReadStatus);

                // DBデータ
                ReadDBData(ReadStatus, result);

                // フッタチェック
                ReadFooter(ReadStatus);

                // DB種別
                result.DBKind = DBKind;

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(result);
            }
        }
예제 #7
0
        private void ReadTypeSetting(FileReadStatus status, DBTypeSet data, IReadOnlyList <DBItemType> itemTypes)
        {
            Logger.Debug(FileIOMessage.StartCommonRead(typeof(DBTypeSetFileReader),
                                                       "タイプ設定"));

            var reader = new DBTypeSettingReader(status, 1, false);

            var settings = reader.Read();

            data.TypeName = settings[0].TypeName;
            data.Memo     = settings[0].Memo;
            data.ItemSettingList.AddRange(settings[0].ItemSettingList);

            if (data.ItemSettingList.Count != itemTypes.Count)
            {
                throw new InvalidOperationException(
                          $"項目値種別数と項目設定数が一致しません。");
            }

            for (var i = 0; i < data.ItemSettingList.Count; i++)
            {
                data.ItemSettingList[i].ItemType = itemTypes[i];
            }

            Logger.Debug(FileIOMessage.EndCommonRead(typeof(DBTypeSetFileReader),
                                                     "タイプ設定リスト"));
        }
예제 #8
0
        /// <summary>
        /// コモンイベント末尾A
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <returns>あとに返戻値が続く場合true</returns>
        /// <exception cref="InvalidOperationException">データが仕様と異なる場合</exception>
        private HasNext ReadFooterA(FileReadStatus status)
        {
            var b1 = status.ReadByte();

            if (b1 == CommonEvent.BeforeReturnValueSummaryBytesBefore[0])
            {
                foreach (var b in CommonEvent.BeforeReturnValueSummaryBytesBefore)
                {
                    if (status.ReadByte() != b)
                    {
                        throw new InvalidOperationException(
                                  $"ファイルデータが仕様と異なります。(offset:{status.Offset})");
                    }
                    status.IncreaseByteOffset();
                }


                Logger.Debug(FileIOMessage.CheckOk(typeof(CommonEventReader),
                                                   "コモンイベント末尾", "(返戻値あり)"));

                return(HasNext.Yes);
            }

            if (b1 == CommonEvent.FooterBytesBeforeVer2_00[0])
            {
                status.IncreaseByteOffset();
                return(HasNext.No);
            }

            throw new InvalidOperationException(
                      $"ファイルデータが仕様と異なります。(offset:{status.Offset})");
        }
예제 #9
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);
        }
예제 #10
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));
            }
        }
예제 #11
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Public Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     すでにファイルを読み込んでいる場合、
        ///     またはファイルが正しく読み込めなかった場合
        /// </exception>
        public override DBType ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                var result = new DBType();

                // ヘッダチェック
                ReadHeader(ReadStatus);

                // タイプ設定
                ReadTypeSetting(ReadStatus, out var typeSetting);
                result.TypeName = typeSetting.TypeName;
                result.Memo     = typeSetting.Memo;

                // データ設定
                ReadDataSetting(ReadStatus, out var dataSetting);
                result.SetDataSettingType(dataSetting);

                result.ItemDescList.AddRange(MakeItemDescList(typeSetting, dataSetting));

                result.DataDescList.Overwrite(0, MakeDataDescList(typeSetting, dataSetting));

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(result);
            }
        }
예제 #12
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);
        }
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Public Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// ファイルを同期的に読み込む
        /// </summary>
        /// <returns>読み込んだデータ</returns>
        /// <exception cref="InvalidOperationException">
        ///     すでにファイルを読み込んでいる場合、
        ///     またはファイルが正しく読み込めなかった場合
        /// </exception>
        public DatabaseMergedData ReadSync()
        {
            lock (readLock)
            {
                Logger.Info(FileIOMessage.StartFileRead(GetType()));

                if (!(Data is null))
                {
                    throw new InvalidOperationException(
                              $"すでに読み込み完了しています。");
                }

                var datFileReader   = new DatabaseDatFileReader(DatFilePath, DbKind);
                var dataSettingList = datFileReader.ReadSync().SettingList;

                var projectFile     = new DatabaseProjectFileReader(ProjectFilePath, DbKind);
                var typeSettingList = projectFile.ReadSync().TypeSettingList;

                Data = new DatabaseMergedData(typeSettingList, dataSettingList);

                Logger.Info(FileIOMessage.EndFileRead(GetType()));

                return(Data);
            }
        }
예제 #14
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));
        }
예제 #15
0
        /// <summary>
        /// 文字列引数の数
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="commonEvent">結果格納インスタンス</param>
        private void ReadStringArgLength(FileReadStatus status, CommonEvent commonEvent)
        {
            commonEvent.StrArgsLength = status.ReadByte();
            status.IncreaseByteOffset();

            Logger.Debug(FileIOMessage.SuccessRead(typeof(CommonEventReader),
                                                   "文字列引数の数", commonEvent.StrArgsLength));
        }
예제 #16
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));
        }
예제 #17
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));
        }
예제 #18
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));
        }
예제 #19
0
        /// <summary>
        /// メモ
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="commonEvent">結果格納インスタンス</param>
        private void ReadMemo(FileReadStatus status, CommonEvent commonEvent)
        {
            var str = status.ReadString();

            commonEvent.Memo = str.String;
            status.AddOffset(str.ByteLength);

            Logger.Debug(FileIOMessage.SuccessRead(typeof(CommonEventReader),
                                                   "メモ", commonEvent.Memo));
        }
예제 #20
0
        /// <summary>
        /// コモンイベント名
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="commonEvent">結果格納インスタンス</param>
        private void ReadCommonEventName(FileReadStatus status, CommonEvent commonEvent)
        {
            var commonEventName = status.ReadString();

            commonEvent.Name = commonEventName.String;
            status.AddOffset(commonEventName.ByteLength);

            Logger.Debug(FileIOMessage.SuccessRead(typeof(CommonEventReader),
                                                   "コモンイベント名", commonEvent.Name));
        }
예제 #21
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     Public Method
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

        /// <summary>
        /// タイルセット設定を読み込み、返す。
        /// </summary>
        /// <exception cref="InvalidOperationException">ファイルが仕様と異なる場合</exception>
        public TileSetSetting Read()
        {
            Logger.Debug(FileIOMessage.StartCommonRead(GetType(), ""));

            var result = ReadOneTileSetSetting(Status);

            Logger.Debug(FileIOMessage.EndCommonRead(GetType(), ""));

            return(result);
        }
예제 #22
0
        /// <summary>
        /// メモ前の文字列
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="commonEvent">結果格納インスタンス</param>
        private void ReadBeforeMemoString(FileReadStatus status, CommonEvent commonEvent)
        {
            var str = status.ReadString();

            commonEvent.Description = str.String;
            status.AddOffset(str.ByteLength);

            Logger.Debug(FileIOMessage.SuccessRead(typeof(CommonEventReader),
                                                   "メモ前の文字列", commonEvent.Description));
        }
예제 #23
0
        /// <summary>
        /// ヘッダ文字列
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="mapData">データ格納マップデータインスタンス</param>
        private void ReadHeaderMemo(FileReadStatus status, MapData mapData)
        {
            var woditorString = status.ReadString();

            mapData.Memo = woditorString.String;
            status.AddOffset(woditorString.ByteLength);

            Logger.Debug(FileIOMessage.SuccessRead(typeof(MpsFileReader),
                                                   "ヘッダ文字列", mapData.Memo));
        }
예제 #24
0
        /// <summary>
        /// メモ
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="setting">結果格納インスタンス</param>
        private void ReadMemo(FileReadStatus status, DBTypeSetting setting)
        {
            var memo = status.ReadString();

            setting.Memo = memo.String;

            status.AddOffset(memo.ByteLength);

            Logger.Debug(FileIOMessage.SuccessRead(typeof(DBTypeSettingReader),
                                                   "メモ", memo.String));
        }
예제 #25
0
        /// <summary>
        /// フッタ文字列
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="commonEvent">結果格納インスタンス</param>
        private void ReadFooterString(FileReadStatus status, CommonEvent commonEvent)
        {
            var footerString = status.ReadString();

            status.AddOffset(footerString.ByteLength);

            commonEvent.FooterString = footerString.String;

            Logger.Debug(FileIOMessage.SuccessRead(typeof(CommonEventReader),
                                                   "フッタ文字列", commonEvent.FooterString));
        }
예제 #26
0
        /// <summary>
        /// タイプ名
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="setting">結果格納インスタンス</param>
        private void ReadTypeName(FileReadStatus status, DBTypeSetting setting)
        {
            var typeName = status.ReadString();

            setting.TypeName = typeName.String;

            status.AddOffset(typeName.ByteLength);

            Logger.Debug(FileIOMessage.SuccessRead(typeof(DBTypeSettingReader),
                                                   "タイプ名", setting.TypeName));
        }
예제 #27
0
        /// <summary>
        /// 基本タイルセットファイル名
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="fileName">結果格納インスタンス</param>
        private void ReadBaseTileSetFileName(FileReadStatus status, out BaseTileSetFileName fileName)
        {
            var read = status.ReadString();

            fileName = read.String;

            status.AddOffset(read.ByteLength);

            Logger.Debug(FileIOMessage.SuccessRead(typeof(TileSetSettingReader),
                                                   "基本タイルセットファイル名", fileName));
        }
예제 #28
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));
        }
예제 #29
0
        /// <summary>
        /// 返戻値の意味
        /// </summary>
        /// <param name="status">読み込み経過状態</param>
        /// <param name="commonEvent">結果格納インスタンス</param>
        private void ReadReturnValueDescription(FileReadStatus status, CommonEvent commonEvent)
        {
            var description = status.ReadString();

            status.AddOffset(description.ByteLength);

            commonEvent.ReturnValueDescription = description.String;

            Logger.Debug(FileIOMessage.SuccessRead(typeof(CommonEventReader),
                                                   "返戻値の意味", commonEvent.ReturnValueDescription));
        }
예제 #30
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));
        }