private string EventToTextOne(int number) { StringBuilder sb = new StringBuilder(); EventScript.OneCode code = this.ProcsScript[number]; for (int n = 0; n < code.ByteData.Length; n++) { sb.Append(U.ToHexString(code.ByteData[n])); } sb.Append("\t//"); //スクリプト名. sb.Append(code.Script.Info[0]); for (int i = 1; i < code.Script.Info.Length; i += 2) { char symbol = ' '; if (code.Script.Info[i].Length > 2) {// [X みたいな文字列が入る. 2文字目のXが シンボル名. symbol = code.Script.Info[i][1]; } for (int n = 0; n < code.Script.Args.Length; n++) { EventScript.Arg arg = code.Script.Args[n]; if (EventScript.IsFixedArg(arg)) { continue; } if (symbol != arg.Symbol) { continue; } sb.Append("["); uint v; string hexstring = EventScript.GetArg(code, n, out v); sb.Append(arg.Name); sb.Append(":"); sb.Append(hexstring); if (arg.Type == EventScript.ArgType.TEXT || arg.Type == EventScript.ArgType.CONVERSATION_TEXT || arg.Type == EventScript.ArgType.SYSTEM_TEXT || arg.Type == EventScript.ArgType.ONELINE_TEXT || arg.Type == EventScript.ArgType.POINTER_TEXT ) { sb.Append(" "); string text = TextForm.DirectAndStripAllCode((v)); if (text.Length > 30) {//長いテキストは省略 sb.Append(U.escape_return(U.strimwidth(text, 0, 20))); } else {//長くないテキストはすぐ横に表示 sb.Append(U.escape_return(text)); } } else if (arg.Type == EventScript.ArgType.UNIT) { sb.Append(" "); sb.Append(UnitForm.GetUnitName(v)); } else if (arg.Type == EventScript.ArgType.CLASS) { sb.Append(" "); sb.Append(ClassForm.GetClassName(v)); } else if (arg.Type == EventScript.ArgType.POINTER_PROCS) { sb.Append(" "); string dummy; sb.Append(Program.AsmMapFileAsmCache.GetASMName(v, true, out dummy)); } else if (arg.Type == EventScript.ArgType.POINTER_ASM) { sb.Append(" "); string dummy; sb.Append(Program.AsmMapFileAsmCache.GetASMName(v, false, out dummy)); } else if (arg.Type == EventScript.ArgType.FSEC) {//FSEC sb.Append(" "); sb.Append(InputFormRef.GetFSEC(v)); } sb.Append("]"); break; } } sb.AppendLine(""); return(sb.ToString()); }