Add CAudioSampleBank

This commit is contained in:
Phillip Stephens
2023-02-18 12:13:29 -08:00
parent 56690b7b6d
commit 3dd26b7f48
4 changed files with 118 additions and 86 deletions
+25
View File
@@ -0,0 +1,25 @@
#ifndef _CAUDIOSAMPLEBANK
#define _CAUDIOSAMPLEBANK
#include "Common.bt"
typedef struct {
GUID guid;
uchar unk1;
uchar unk2;
uchar unk3;
uchar unk4;
uchar unk5;
uchar unk6;
uint unk7;
} CAudioSampleBankEntry;
typedef struct {
uint unk1;
uint unk2;
uchar unk3;
uint entryCount;
CAudioSampleBankEntry entries[entryCount];
} CAudioSampleBank;
#endif// _CAUDIOSAMPLEBANK
+2
View File
@@ -1,5 +1,7 @@
#ifndef _CCHUNKDESCRIPTOR
#define _CCHUNKDESCRIPTOR
#include "Common.bt"
typedef struct
{
FourCC id;
+2
View File
@@ -1,5 +1,7 @@
#ifndef _META
#define _META
#include "NTextureFormat.bt"
typedef struct(FourCC type, uint64 size, uint64 fileStart)
{
local uint64 start <format=hex, hidden=true> = FTell();
+89 -86
View File
@@ -1,113 +1,116 @@
// Common
if (!exists(isDKCTF)) {
local uint isDKCTF <hidden=true> = false;
LittleEndian();
local uint isDKCTF<hidden = true> = false;
LittleEndian();
}
#include "Common.bt"
#include "CChunkDescriptor.bt"
#include "CFormDescriptor.bt"
#include "Common.bt"
// Meta
#include "NTextureFormat.bt"
#include "CGraphicsModel.bt"
#include "Meta.bt"
#include "NTextureFormat.bt"
// Files
#include "CCharInfo.bt"
#include "CAudioBusHierarchy.bt"
#include "CAudioSampleBank.bt"
#include "CCharInfo.bt"
#include "CCollisionTree.bt"
#include "CDataEnumObject.bt"
#include "CLegacyStateMachine.bt"
#include "CLightProbeData.bt"
#include "CPakFile.bt"
#include "MessageStudioBinaryText.bt"
#include "MaterialArchive.bt"
#include "CVectorField.bt"
#include "CCollisionTree.bt"
#include "CReflectionProbeData.bt"
#include "CLegacyStateMachine.bt"
//#include "CRuleSet.bt"
#include "CVectorField.bt"
#include "MaterialArchive.bt"
#include "MessageStudioBinaryText.bt"
// #include "CRuleSet.bt"
#include "CScaleformFlashLibrary.bt"
// Custom footer
#include "Footer.bt"
typedef struct
{
FormDescriptor form;
local uint64 start <format=hex, hidden=true> = FTell();
switch (form.id)
{
case "MTRL":
if (form.readerVersion == 168) {
byte MTRLRaw [form.size]; //For now
} else if (form.readerVersion == 22) {
MaterialArchive materialArchive(form.size);
} else {
Assert(false, "Invalid version!");
}
break;
case "CABH":
CAudioBusHierarchy audioBusHierarchy;
break;
case "ENUM":
CDataEnumObject dataEnum;
break;
case "LTPB":
CLightProbeData lightProbe(form.size);
break;
case "LFSM":
if (!isDKCTF)
BigEndian();
CLegacyStateMachine legacyStateMachine;
if (!isDKCTF)
LittleEndian();
break;
case "DCLN":
CCollisionTree obboxCollisionTree(form.size, kCOL_OBBox);
break;
case "CLSN":
CCollisionTree aaboxCollisionTree(form.size, kCOL_AABox);
break;
case "CHPR":
FCharInf charInfo;
break;
case "CMDL":
case "SMDL":
case "WMDL":
ModelFile model(form.size);
break;
case "MSBT":
MessageStudioBinaryText text;
break;
case "PACK":
CPakFile pak;
break;
case "TXTR":
NTextureFormat texture(form.size);
break;
case "REFL":
CReflectionProbeData probeData;
break;
/*case "RULE":
CRuleSet rulesetconfig(form.size);
break;*/
case "GFXL":
CScaleformFlashLibrary scaleformflashlibrary;
break;
/*case "GFX ":
CFlashMovieResource flashmovieresource(form.size);
break;*/
case "VECF":
CVectorField vectorField;
break;
typedef struct {
FormDescriptor form;
local uint64 start<format = hex, hidden = true> = FTell();
switch (form.id) {
case "MTRL":
if (form.readerVersion == 168) {
byte MTRLRaw[form.size]; // For now
} else if (form.readerVersion == 22) {
MaterialArchive materialArchive(form.size);
} else {
Assert(false, "Invalid version!");
}
FSeek(start + form.size);
} File <open=true, bgcolor=cSilver>;
break;
case "CBNK":
CAudioSampleBank audioSampleBank;
break;
case "CABH":
CAudioBusHierarchy audioBusHierarchy;
break;
case "ENUM":
CDataEnumObject dataEnum;
break;
case "LTPB":
CLightProbeData lightProbe(form.size);
break;
case "LFSM":
if (!isDKCTF)
BigEndian();
CLegacyStateMachine legacyStateMachine;
if (!isDKCTF)
LittleEndian();
break;
case "DCLN":
CCollisionTree obboxCollisionTree(form.size, kCOL_OBBox);
break;
case "CLSN":
CCollisionTree aaboxCollisionTree(form.size, kCOL_AABox);
break;
case "CHPR":
FCharInf charInfo;
break;
case "CMDL":
case "SMDL":
case "WMDL":
ModelFile model(form.size);
break;
case "MSBT":
MessageStudioBinaryText text;
break;
case "PACK":
CPakFile pak;
break;
case "TXTR":
NTextureFormat texture(form.size);
break;
case "REFL":
CReflectionProbeData probeData;
break;
/*case "RULE":
CRuleSet rulesetconfig(form.size);
break;*/
case "GFXL":
CScaleformFlashLibrary scaleformflashlibrary;
break;
/*case "GFX ":
CFlashMovieResource flashmovieresource(form.size);
break;*/
case "VECF":
CVectorField vectorField;
break;
}
FSeek(start + form.size);
} File<open = true, bgcolor = cSilver>;
File file <bgcolor=cGray, name=(Str("%s rv%d wv%d file", form.id, form.readerVersion, form.writerVersion))>;
File
file<bgcolor = cGray, name = (Str("%s rv%d wv%d file", form.id,
form.readerVersion, form.writerVersion))>;
// Custom footer for extracted files
if (ReadString(FTell(), 4) == "RFRM")
{
Footer footer(file.form.id) <bgcolor=cLtBlue>;
if (ReadString(FTell(), 4) == "RFRM") {
Footer footer(file.form.id)<bgcolor = cLtBlue>;
}