private string[] LayerDataCopy(Project project, string[] LayerData, ChipsData[] Layerchip, string nullcharacter) { string[] result = new string[project.Runtime.Definitions.LayerSize.y]; for (int num6 = 0; num6 < project.Runtime.Definitions.LayerSize.y; num6++) { this.StateLabel.Text = string.Concat(new string[] { "レイヤーを移行しています...(", num6.ToString(), "/", project.Runtime.Definitions.LayerSize.y.ToString(), ")" }); this.StateLabel.Refresh(); StringBuilder stringBuilder = new StringBuilder(); if (Global.cpd.UseLayer) { if (num6 < LayerData.Length) { int num7; for (num7 = 0; num7 < Global.cpd.runtime.Definitions.LayerSize.x; num7++) { if (num7 >= project.Runtime.Definitions.LayerSize.x) { break; } string text = LayerData[num6].Substring(num7 * Global.cpd.runtime.Definitions.LayerSize.bytesize, Global.cpd.runtime.Definitions.LayerSize.bytesize); switch (this.ChipMethod.SelectedIndex) { case 0: // 文字で合わせる foreach (ChipsData chipsData5 in Layerchip) { if (chipsData5.character == text) { stringBuilder.Append(chipsData5.character); break; } } break; case 1: // マップチップの位置で合わせる { ChipsData chipsData6 = Global.MainWnd.MainDesigner.DrawLayerRef[text]; foreach (ChipsData chipsData7 in Layerchip) { if (chipsData6.Chips[0].pattern == chipsData7.Chips[0].pattern) { stringBuilder.Append(chipsData7.character); break; } } break; } case 2: // 定義リストの順番で合わせる { int num10 = 0; foreach (ChipsData chipsData8 in Global.cpd.Layerchip) { if (chipsData8.character == text) { break; } num10++; } if (num10 < Layerchip.Length) { stringBuilder.Append(Layerchip[num10]); } else { stringBuilder.Append(nullcharacter); } break; } } } while (num7 < project.Runtime.Definitions.LayerSize.x) { stringBuilder.Append(nullcharacter); num7++; } } else { for (int num12 = 0; num12 < project.Runtime.Definitions.LayerSize.x; num12++) { stringBuilder.Append(nullcharacter); } } } else { for (int num13 = 0; num13 < project.LayerData.Length; num13++) { stringBuilder = new StringBuilder(); for (int num14 = 0; num14 < project.Runtime.Definitions.LayerSize.x; num14++) { stringBuilder.Append(nullcharacter); } } } result[num6] = stringBuilder.ToString(); } return(result); }
private string[] StageDataCopy(Project project, string[] StageData, ChipsData[] Mapchip, string nullcharacter) { string[] result = new string[project.Runtime.Definitions.StageSize.y]; for (int k = 0; k < project.Runtime.Definitions.StageSize.y; k++) { this.StateLabel.Text = string.Concat(new string[] { "ステージを移行しています...(", k.ToString(), "/", project.Runtime.Definitions.StageSize.y.ToString(), ")" }); this.StateLabel.Refresh(); StringBuilder stringBuilder = new StringBuilder(); if (k < StageData.Length) { int l; for (l = 0; l < Global.cpd.runtime.Definitions.StageSize.x; l++) { if (l >= project.Runtime.Definitions.StageSize.x) { break; } string text = StageData[k].Substring(l * Global.cpd.runtime.Definitions.StageSize.bytesize, Global.cpd.runtime.Definitions.StageSize.bytesize); switch (this.ChipMethod.SelectedIndex) { case 0: // 文字で合わせる foreach (ChipsData chipsData in Mapchip) { if (chipsData.character == text) { stringBuilder.Append(chipsData.character); break; } } break; case 1: // マップチップの位置で合わせる { ChipsData chipsData2 = Global.MainWnd.MainDesigner.DrawItemRef[text]; foreach (ChipsData chipsData3 in Mapchip) { if (chipsData2.Chips[0].pattern == chipsData3.Chips[0].pattern) { stringBuilder.Append(chipsData3.character); break; } } break; } case 2: // 定義リストの順番で合わせる { int num3 = 0; foreach (ChipsData chipsData4 in Global.cpd.Mapchip) { if (chipsData4.character == text) { break; } num3++; } if (num3 < Mapchip.Length) { stringBuilder.Append(Mapchip[num3].character); } else { stringBuilder.Append(nullcharacter); } break; } } } while (l < project.Runtime.Definitions.StageSize.x) { stringBuilder.Append(nullcharacter); l++; } } else { for (int num5 = 0; num5 < project.Runtime.Definitions.StageSize.x; num5++) { stringBuilder.Append(nullcharacter); } } result[k] = stringBuilder.ToString(); } return(result); }