Skip to content

Commit e923de7

Browse files
committed
Add drop table printing for XB1 DE
1 parent de1163d commit e923de7

File tree

5 files changed

+887
-1
lines changed

5 files changed

+887
-1
lines changed

XbTool/XbTool/CliArguments.cs

+3
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,9 @@ private static void PrintUsage()
222222

223223
Console.WriteLine("\n DecompressIraSave - Decompresses the save file for the Torna DLC");
224224
Console.WriteLine(" DecompressIraSave -i <input_file> -o <output_file>");
225+
226+
Console.WriteLine("\n GenerateDropTables - Generate drop tables for Xenoblade 1: DE");
227+
Console.WriteLine(" GenerateDropTables -b <bdat_dir> -o <output_file>");
225228
}
226229

227230
private static string GetProgramName() => Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly()?.Location ?? "");

XbTool/XbTool/Data/xb1de_fieldInfo.csv

+3
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ BTL_bufflist,name,Message,BTL_bufflist_ms,,0,
55
BTL_crystalnamelist,name,Message,BTL_crystalnamelist_ms,,0,
66
BTL_enelist,c_name_id,Message,BTL_crystalnamelist,,0,
77
BTL_enelist,name,Message,BTL_enelist_ms,,0,
8+
BTL_enelist,resource,Reference,KP_list,,0,
89
BTL_enelist*,arts*,Reference,ene_arts,,0,
910
BTL_enelist*,atk*,Reference,ene_atk,,0,
1011
BTL_enelist*,drop_nml,Reference,drop_nmllist*,,0,
1112
BTL_enelist*,drop_rar,Reference,drop_rarlist*,,0,
1213
BTL_enelist*,drop_spr,Reference,drop_sprlist*,,0,
14+
BTL_enelist*,spike_state,Reference,BTL_bufflist,,0,
1315
BTL_GimmckBossRescue,eneID,Reference,BTL_enelist,,0,
1416
BTL_GimmckBossRescue,listID*,Reference,MNU_ttrl,,0,
1517
BTL_GimmckBossRescue,resText*,Message,BTL_GimmckBossRescue_ms,,0,
@@ -43,6 +45,7 @@ FieldLock*,popID*,Reference,poplist*,,0,
4345
FieldLock*,S_FLG_*,Reference,MNU_scenario,,0,
4446
FLD_maplist,name,Message,FLD_maplist_ms,,0,
4547
FLD_npclist,name,Message,FLD_npclist_ms,,0,
48+
FLD_npclist,resource,Reference,KP_list,,0,
4649
FLD_npclist,rlt_job,Message,FLD_npclist_ms,,0,
4750
FLD_npclist,rlt_lnd,Reference,landmarklist,,0,
4851
FLD_tboxlist,itm*ID,Reference,ITM_itemlist,,0,

XbTool/XbTool/Options.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ public enum Task
4141
GenerateSite,
4242
ExportQuests,
4343
ReplaceArchive,
44-
SdPrintTest
44+
SdPrintTest,
45+
GenerateDropTables
4546
}
4647
}

XbTool/XbTool/Tasks.cs

+13
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
using XbTool.Scripting;
1515
using XbTool.Serialization;
1616
using XbTool.Types;
17+
using XbTool.Xb1De.Drops;
1718
using XbTool.Xb2;
1819

1920
namespace XbTool
@@ -93,6 +94,9 @@ internal static void RunTask(Options options)
9394
case Task.SdPrintTest:
9495
SdPrintTest(options);
9596
break;
97+
case Task.GenerateDropTables:
98+
GenerateDropTables(options);
99+
break;
96100
default:
97101
throw new ArgumentOutOfRangeException();
98102
}
@@ -460,5 +464,14 @@ private static void SdPrintTest(Options options)
460464
var localFs = new LocalFileSystem("output");
461465
fs.CopyFileSystem(localFs, options.Progress);
462466
}
467+
468+
private static void GenerateDropTables(Options options)
469+
{
470+
if (options.BdatDir == null) throw new NullReferenceException("No bdat path was specified.");
471+
if (options.Output == null) throw new NullReferenceException("No output path was specified.");
472+
473+
BdatStringCollection tables = GetBdatStringCollection(options);
474+
DropTableGen.GenerateDropTables(tables, options.Output);
475+
}
463476
}
464477
}

0 commit comments

Comments
 (0)