Skip to content

Commit 2f46b43

Browse files
authored
Merge branch 'Thealexbarney:master' into upstream-master
2 parents 32752e0 + 37d23a2 commit 2f46b43

File tree

9 files changed

+1885
-4
lines changed

9 files changed

+1885
-4
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,
@@ -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
@@ -15,6 +15,7 @@
1515
using XbTool.Scripting;
1616
using XbTool.Serialization;
1717
using XbTool.Types;
18+
using XbTool.Xb1De.Drops;
1819
using XbTool.Xb2;
1920

2021
namespace XbTool
@@ -94,6 +95,9 @@ internal static void RunTask(Options options)
9495
case Task.SdPrintTest:
9596
SdPrintTest(options);
9697
break;
98+
case Task.GenerateDropTables:
99+
GenerateDropTables(options);
100+
break;
97101
default:
98102
throw new ArgumentOutOfRangeException();
99103
}
@@ -461,5 +465,14 @@ private static void SdPrintTest(Options options)
461465
//var localFs = new LocalFileSystem("output");
462466
//fs.CopyFileSystem(localFs, options.Progress);
463467
}
468+
469+
private static void GenerateDropTables(Options options)
470+
{
471+
if (options.BdatDir == null) throw new NullReferenceException("No bdat path was specified.");
472+
if (options.Output == null) throw new NullReferenceException("No output path was specified.");
473+
474+
BdatStringCollection tables = GetBdatStringCollection(options);
475+
DropTableGen.GenerateDropTables(tables, options.Output);
476+
}
464477
}
465478
}

0 commit comments

Comments
 (0)