/// <summary> /// 特殊指定文字列パラメータ /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <returns>特殊指定文字列パラメータリスト</returns> private List <List <DatabaseValueCaseDescription> > ReadSpecialStringValue(BinaryReadStatus readStatus) { var length = readStatus.ReadInt(); readStatus.IncreaseIntOffset(); var result = new List <List <DatabaseValueCaseDescription> >(); for (var i = 0; i < length; i++) { var descriptionLength = readStatus.ReadInt(); readStatus.IncreaseIntOffset(); var paramList = new List <DatabaseValueCaseDescription>(); for (var j = 0; j < descriptionLength; j++) { var value = readStatus.ReadString(); readStatus.AddOffset(value.ByteLength); paramList.Add(value.String); } result.Add(paramList); } return(result); }
/// <summary> /// メモ前の文字列 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="commonEvent">結果格納インスタンス</param> private void ReadBeforeMemoString(BinaryReadStatus readStatus, CommonEvent commonEvent) { var str = readStatus.ReadString(); commonEvent.Description = str.String; readStatus.AddOffset(str.ByteLength); }
/// <summary> /// メモ /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="commonEvent">結果格納インスタンス</param> private void ReadMemo(BinaryReadStatus readStatus, CommonEvent commonEvent) { var str = readStatus.ReadString(); commonEvent.Memo = str.String; readStatus.AddOffset(str.ByteLength); }
/// <summary> /// コモンイベント名 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="commonEvent">結果格納インスタンス</param> private void ReadCommonEventName(BinaryReadStatus readStatus, CommonEvent commonEvent) { var commonEventName = readStatus.ReadString(); commonEvent.Name = commonEventName.String; readStatus.AddOffset(commonEventName.ByteLength); }
/// <summary> /// 数値特殊指定文字列パラメータ /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <returns>数値特殊指定文字列パラメータリスト</returns> private List <List <string> > ReadSpecialStringArgList(BinaryReadStatus readStatus) { var result = new List <List <string> >(); var length = readStatus.ReadInt(); readStatus.IncreaseIntOffset(); for (var i = 0; i < length; i++) { var caseLength = readStatus.ReadInt(); readStatus.IncreaseIntOffset(); var caseDescriptionList = new List <string>(); for (var j = 0; j < caseLength; j++) { var caseDescription = readStatus.ReadString(); readStatus.AddOffset(caseDescription.ByteLength); caseDescriptionList.Add(caseDescription.String); } result.Add(caseDescriptionList); } return(result); }
/// <summary> /// タイプ名 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="setting">結果格納インスタンス</param> private void ReadTypeName(BinaryReadStatus readStatus, DBTypeSetting setting) { var typeName = readStatus.ReadString(); setting.TypeName = typeName.String; readStatus.AddOffset(typeName.ByteLength); }
/// <summary> /// メモ /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="setting">結果格納インスタンス</param> private void ReadMemo(BinaryReadStatus readStatus, DBTypeSetting setting) { var memo = readStatus.ReadString(); setting.Memo = memo.String; readStatus.AddOffset(memo.ByteLength); }
/// <summary> /// タイプ名 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="name">結果格納インスタンス</param> private void ReadName(BinaryReadStatus readStatus, out TileSetName name) { var read = readStatus.ReadString(); name = read.String; readStatus.AddOffset(read.ByteLength); }
/// <summary> /// 返戻値の意味 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="commonEvent">結果格納インスタンス</param> private void ReadReturnValueDescription(BinaryReadStatus readStatus, CommonEvent commonEvent) { var description = readStatus.ReadString(); readStatus.AddOffset(description.ByteLength); commonEvent.ReturnValueDescription = description.String; }
/// <summary> /// 基本タイルセットファイル名 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="fileName">結果格納インスタンス</param> private void ReadBaseTileSetFileName(BinaryReadStatus readStatus, out BaseTileSetFileName fileName) { var read = readStatus.ReadString(); fileName = read.String; readStatus.AddOffset(read.ByteLength); }
/// <summary> /// フッタ文字列 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="commonEvent">結果格納インスタンス</param> private void ReadFooterString(BinaryReadStatus readStatus, CommonEvent commonEvent) { var footerString = readStatus.ReadString(); readStatus.AddOffset(footerString.ByteLength); commonEvent.FooterString = footerString.String; }
/// <summary> /// オートタイルファイル名 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="listLength">オートタイルファイル名数</param> /// <param name="list">結果格納インスタンス</param> private void ReadAutoTileSetFileNameList(BinaryReadStatus readStatus, int listLength, out List <AutoTileFileName> list) { list = new List <AutoTileFileName>(); for (var i = 0; i < listLength; i++) { var read = readStatus.ReadString(); AutoTileFileName fileName = read.String; list.Add(fileName); readStatus.AddOffset(read.ByteLength); } }
/// <summary> /// DBデータ設定値ひとつ分 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="result">結果格納インスタンス</param> /// <param name="itemTypes">項目種別リスト</param> /// <param name="numberItemCount">数値項目数</param> /// <param name="stringItemCount">文字列項目数</param> /// <returns></returns> /// <exception cref="InvalidOperationException"></exception> private void ReadOneDataSettingValue(BinaryReadStatus readStatus, List <List <DBItemValue> > result, IEnumerable <DBItemType> itemTypes, int numberItemCount, int stringItemCount) { var numberItems = new List <DBValueInt>(); var stringItems = new List <DBValueString>(); for (var i = 0; i < numberItemCount; i++) { var numberItem = readStatus.ReadInt(); readStatus.IncreaseIntOffset(); numberItems.Add(numberItem); } for (var i = 0; i < stringItemCount; i++) { var stringItem = readStatus.ReadString(); readStatus.AddOffset(stringItem.ByteLength); stringItems.Add(stringItem.String); } var valueList = new List <DBItemValue>(); var numberIndex = 0; var stringIndex = 0; foreach (var itemType in itemTypes) { if (itemType == DBItemType.Int) { valueList.Add(numberItems[numberIndex]); numberIndex++; } else if (itemType == DBItemType.String) { valueList.Add(stringItems[stringIndex]); stringIndex++; } else { // 通常ここへは来ない throw new InvalidOperationException( "未対応のデータ種別です。"); } } result.Add(valueList); }
/// <summary> /// 変数名 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="commonEvent">結果格納インスタンス</param> private void ReadSelfVarName(BinaryReadStatus readStatus, CommonEvent commonEvent) { const int varNameLength = 100; var varNameList = new List <CommonEventSelfVariableName>(); for (var i = 0; i < varNameLength; i++) { var varName = readStatus.ReadString(); readStatus.AddOffset(varName.ByteLength); varNameList.Add(varName.String); } commonEvent.SelfVariableNameList = new CommonEventSelfVariableNameList(varNameList); }
/// <summary> /// 引数名 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <returns>引数名リスト</returns> private List <string> ReadArgNames(BinaryReadStatus readStatus) { var result = new List <string>(); var length = readStatus.ReadInt(); readStatus.IncreaseIntOffset(); for (var i = 0; i < length; i++) { var argName = readStatus.ReadString(); readStatus.AddOffset(argName.ByteLength); result.Add(argName.String); } return(result); }
/// <summary> /// データ名 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <param name="setting">結果格納インスタンス</param> private void ReadDataName(BinaryReadStatus readStatus, DBTypeSetting setting) { var length = readStatus.ReadInt(); readStatus.IncreaseIntOffset(); var dataNameList = new List <DataName>(); for (var i = 0; i < length; i++) { var name = readStatus.ReadString(); readStatus.AddOffset(name.ByteLength); dataNameList.Add(name.ToString()); } setting.DataNameList = new DataNameList(dataNameList); }
/// <summary> /// 項目名 /// </summary> /// <param name="readStatus">読み込み経過状態</param> /// <returns>項目名リスト</returns> private List <ItemName> ReadItemName(BinaryReadStatus readStatus) { var length = readStatus.ReadInt(); readStatus.IncreaseIntOffset(); var result = new List <ItemName>(); for (var i = 0; i < length; i++) { var name = readStatus.ReadString(); readStatus.AddOffset(name.ByteLength); result.Add(name.String); } return(result); }
private void ReadEventCommand(BinaryReadStatus readStatus, ICollection <IEventCommand> commandList) { // 数値変数の数 var numVarLength = readStatus.ReadByte(); readStatus.IncreaseByteOffset(); // 数値変数 var numVarList = new List <int>(); for (var i = 0; i < numVarLength; i++) { var numVar = readStatus.ReadInt(); numVarList.Add(numVar); readStatus.IncreaseIntOffset(); } // インデント var indent = (sbyte)readStatus.ReadByte(); readStatus.IncreaseByteOffset(); // 文字データ数 var strVarLength = readStatus.ReadByte(); readStatus.IncreaseByteOffset(); // 文字列変数 var strVarList = new List <string>(); for (var i = 0; i < strVarLength; i++) { var woditorString = readStatus.ReadString(); strVarList.Add(woditorString.String); readStatus.AddOffset(woditorString.ByteLength); } // 動作指定フラグ var hasMoveCommand = readStatus.ReadByte() != 0; readStatus.IncreaseByteOffset(); // 動作指定コマンド ActionEntry actionEntry = null; if (hasMoveCommand) { actionEntry = new ActionEntry(); ReadEventActionEntry(readStatus, actionEntry); } // 引数の数チェック if (numVarLength != numVarList.Count) { throw new InvalidOperationException( "指定された数値引数の数と実際の数値引数の数が一致しません。"); } if (strVarLength != strVarList.Count) { throw new InvalidOperationException( "指定された文字列引数の数と実際の文字列引数の数が一致しません。"); } // 結果 var eventCommand = EventCommandFactory.CreateRaw( numVarList, indent, strVarList, actionEntry); commandList.Add(eventCommand); }