Skip to content

Commit d830f19

Browse files
committed
Merge remote-tracking branch 'origin/upstream-master'
2 parents bdf1c4e + 2f46b43 commit d830f19

File tree

9 files changed

+1886
-3
lines changed

9 files changed

+1886
-3
lines changed

Output Data/xb1de_drop_tables.csv

+803
Large diffs are not rendered by default.

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/Common/Textures/Decode.cs

+4
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@ public static byte[] DecodeTexture(this ITexture texture)
5757
Swizzle.Deswizzle(texture, 4);
5858
decoded = Dxt.DecompressBc7(texture);
5959
break;
60+
case TextureFormat.R8G8B8A8_UNORM:
61+
Swizzle.Deswizzle(texture, 4, 1);
62+
decoded = texture.Data;
63+
break;
6064
}
6165

6266
return decoded;

XbTool/XbTool/Common/Textures/TextureFormat.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public enum TextureFormat
77
BC3 = 0x44,
88
BC4 = 0x49,
99
BC7 = 0x4D,
10-
BC6H_UF16 = 0x50
10+
BC6H_UF16 = 0x50,
11+
R8G8B8A8_UNORM = 0x25
1112
}
1213
}

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,
@@ -44,6 +46,7 @@ FieldLock*,S_FLG_*,Reference,MNU_scenario,,0,
4446
FLD_maplist,name,Message,FLD_maplist_ms,,0,
4547
FLD_maplist,map_fileID,Reference,SYS_filelist,,0,
4648
FLD_npclist,name,Message,FLD_npclist_ms,,0,
49+
FLD_npclist,resource,Reference,KP_list,,0,
4750
FLD_npclist,rlt_job,Message,FLD_npclist_ms,,0,
4851
FLD_npclist,rlt_lnd,Reference,landmarklist,,0,
4952
FLD_npclist,exc_id*,Reference,exchangelist*,,0,

XbTool/XbTool/Options.cs

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public enum Task
4242
ExportQuests,
4343
ReplaceArchive,
4444
SdPrintTest,
45+
GenerateDropTables,
4546
GiveMaps,
4647
FindInnEvents,
4748
PrintQuests

XbTool/XbTool/Tasks.cs

+15
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System;
44
using System.IO;
55
using System.Linq;
6+
using System.Threading.Tasks;
67
using XbTool.Bdat;
78
using XbTool.BdatString;
89
using XbTool.CodeGen;
@@ -15,6 +16,7 @@
1516
using XbTool.Scripting;
1617
using XbTool.Serialization;
1718
using XbTool.Types;
19+
using XbTool.Xb1De.Drops;
1820
using XbTool.Xb2;
1921
using XbTool.Xb2.GameData;
2022

@@ -95,6 +97,9 @@ internal static void RunTask(Options options)
9597
case Task.SdPrintTest:
9698
SdPrintTest(options);
9799
break;
100+
case Task.GenerateDropTables:
101+
GenerateDropTables(options);
102+
break;
98103
case Task.GiveMaps:
99104
GiveMaps(options);
100105
break;
@@ -471,6 +476,16 @@ private static void SdPrintTest(Options options)
471476
//var localFs = new LocalFileSystem("output");
472477
//fs.CopyFileSystem(localFs, options.Progress);
473478
}
479+
480+
private static void GenerateDropTables(Options options)
481+
{
482+
if (options.BdatDir == null) throw new NullReferenceException("No bdat path was specified.");
483+
if (options.Output == null) throw new NullReferenceException("No output path was specified.");
484+
485+
BdatStringCollection tables = GetBdatStringCollection(options);
486+
DropTableGen.GenerateDropTables(tables, options.Output);
487+
}
488+
474489
private static void GiveMaps(Options options)
475490
{
476491
if (options.Input == null) throw new NullReferenceException("No input file was specified.");

0 commit comments

Comments
 (0)