Files

167 lines
3.8 KiB
Plaintext
Raw Permalink Normal View History

2023-02-13 13:22:03 -05:00
// Common
if (!exists(isDKCTF)) {
2023-02-18 12:13:29 -08:00
local uint isDKCTF<hidden = true> = false;
LittleEndian();
}
2023-02-13 01:30:24 -05:00
#include "CChunkDescriptor.bt"
#include "CFormDescriptor.bt"
2023-02-18 12:13:29 -08:00
#include "Common.bt"
2023-02-12 18:00:48 -05:00
2023-02-13 13:22:03 -05:00
// Meta
2023-02-16 22:50:22 -05:00
#include "CGraphicsModel.bt"
2023-03-10 23:25:13 -05:00
#include "MaterialArchive.bt"
2023-03-12 14:09:37 -07:00
2023-03-12 16:32:42 -04:00
#include "CGameAreaResource.bt"
2023-03-22 22:30:31 -04:00
#include "CLightProbeData.bt"
2023-03-12 14:09:37 -07:00
2023-02-13 13:22:03 -05:00
#include "Meta.bt"
2023-02-18 12:13:29 -08:00
#include "NTextureFormat.bt"
2023-02-13 13:22:03 -05:00
// Files
2023-02-17 01:56:32 -08:00
#include "CAudioBusHierarchy.bt"
2023-02-18 12:13:29 -08:00
#include "CAudioSampleBank.bt"
2023-03-04 17:15:30 -08:00
#include "CAudioSoundEffect.bt"
2023-02-18 12:13:29 -08:00
#include "CCharInfo.bt"
#include "CCollisionTree.bt"
2023-02-17 01:56:32 -08:00
#include "CDataEnumObject.bt"
2023-02-18 16:26:17 -08:00
#include "CGuiFrame.bt"
2023-02-18 14:19:28 -08:00
#include "CGuiMap.bt"
2023-02-18 12:13:29 -08:00
#include "CLegacyStateMachine.bt"
2023-02-18 17:01:47 -08:00
#include "CMaterialInstanceResource.bt"
2023-02-13 01:30:24 -05:00
#include "CPakFile.bt"
2023-02-16 10:39:11 -08:00
#include "CReflectionProbeData.bt"
2023-02-18 14:19:28 -08:00
#include "CUniverseInfo.bt"
2023-02-18 12:13:29 -08:00
#include "CVectorField.bt"
2023-02-19 11:09:34 -08:00
#include "MessageTable.bt"
2023-03-10 23:44:22 -08:00
#include "NShaderHint.bt"
2023-02-18 12:13:29 -08:00
// #include "CRuleSet.bt"
2023-02-14 21:11:00 -08:00
#include "CScaleformFlashLibrary.bt"
2023-10-02 10:01:04 -07:00
#include "CFont.bt"
2023-03-13 01:38:31 -04:00
#include "DependencyGroup.bt"
#include "NModConFormat.bt"
2026-03-28 15:03:02 -04:00
#include "Dialogue.bt"
2023-02-12 17:25:49 -05:00
2023-02-13 13:22:03 -05:00
// Custom footer
#include "Footer.bt"
2023-02-18 12:13:29 -08:00
typedef struct {
FormDescriptor form;
local uint64 start<format = hex, hidden = true> = FTell();
switch (form.id) {
case "MTRL":
if (form.readerVersion == 168 || form.readerVersion == 12) {
2023-02-18 12:13:29 -08:00
byte MTRLRaw[form.size]; // For now
} else if (form.readerVersion == 22 || form.readerVersion == 10) {
2023-02-18 12:13:29 -08:00
MaterialArchive materialArchive(form.size);
} else {
Assert(false, "Invalid version!");
2023-02-12 17:25:49 -05:00
}
2023-02-18 12:13:29 -08:00
break;
2023-02-18 17:01:47 -08:00
case "MATI":
2026-01-25 19:10:55 -08:00
CMaterialInstanceResource materialInstance;
2023-02-18 17:01:47 -08:00
break;
2023-03-04 17:15:30 -08:00
case "CAUD":
2025-12-07 10:37:47 -08:00
//CAudioSoundEffect audioSoundEffect;
2023-03-04 17:15:30 -08:00
break;
2023-02-18 12:13:29 -08:00
case "CBNK":
2025-12-07 10:37:47 -08:00
//CAudioSampleBank audioSampleBank;
2023-02-18 12:13:29 -08:00
break;
case "CABH":
2025-12-07 10:37:47 -08:00
//CAudioBusHierarchy audioBusHierarchy;
2023-02-18 12:13:29 -08:00
break;
case "ENUM":
2025-12-07 10:37:47 -08:00
// CDataEnumObject dataEnum;
2023-02-18 12:13:29 -08:00
break;
2023-02-18 12:34:02 -08:00
case "UINF":
2025-12-07 10:37:47 -08:00
// CUniverseInfo universeInfo(form.size);
2023-02-18 12:34:02 -08:00
break;
2023-02-18 12:13:29 -08:00
case "LTPB":
2025-12-07 10:37:47 -08:00
//CLightProbeData lightProbe(form.size);
2023-02-18 12:13:29 -08:00
break;
case "LFSM":
if (!isDKCTF)
BigEndian();
2025-12-07 10:37:47 -08:00
// CLegacyStateMachine legacyStateMachine;
2023-02-18 12:13:29 -08:00
if (!isDKCTF)
LittleEndian();
break;
case "DCLN":
CCollisionTree obboxCollisionTree(form.size, kCOL_OBBox);
break;
2023-02-18 14:19:28 -08:00
case "CMAP":
2025-12-07 10:37:47 -08:00
Printf("FOUND! 0x%08X", startof(this));
// CGuiMap guiMap;
2023-02-18 14:19:28 -08:00
break;
2023-02-18 12:13:29 -08:00
case "CLSN":
2025-12-07 10:37:47 -08:00
// CCollisionTree aaboxCollisionTree(form.size, kCOL_AABox);
2023-02-18 12:13:29 -08:00
break;
case "CHPR":
2023-10-02 10:01:04 -07:00
FCharInfo charInfo;
2023-02-18 12:13:29 -08:00
break;
2023-02-20 17:27:21 -08:00
case "CHAR":
2025-12-07 10:37:47 -08:00
// FCharInfo charInfo;
2023-02-20 17:27:21 -08:00
break;
2023-02-18 12:13:29 -08:00
case "CMDL":
case "SMDL":
case "WMDL":
2025-12-07 10:37:47 -08:00
ModelFile model(form.size, form.readerVersion, form.writerVersion);
2023-02-18 12:13:29 -08:00
break;
case "MSBT":
2026-03-28 15:03:02 -04:00
MessageStudioBinaryText text(form.readerVersion, form.writerVersion);
2023-02-18 12:13:29 -08:00
break;
case "PACK":
CPakFile pak;
break;
case "TXTR":
NTextureFormat texture(form.size);
break;
case "REFL":
2025-12-07 10:37:47 -08:00
// CReflectionProbeData probeData;
2023-02-18 12:13:29 -08:00
break;
/*case "RULE":
CRuleSet rulesetconfig(form.size);
break;*/
case "GFXL":
2025-12-07 10:37:47 -08:00
//CScaleformFlashLibrary scaleformflashlibrary;
2023-02-18 12:13:29 -08:00
break;
/*case "GFX ":
CFlashMovieResource flashmovieresource(form.size);
break;*/
case "VECF":
2025-12-07 10:37:47 -08:00
// CVectorField vectorField;
2023-02-18 12:13:29 -08:00
break;
2023-02-18 14:57:48 -08:00
case "ROOM":
2023-03-11 11:12:23 -05:00
CGameAreaResource room(form.size);
2023-02-18 14:57:48 -08:00
break;
2023-02-18 16:26:17 -08:00
case "GUIF":
2025-12-07 10:37:47 -08:00
//CGuiFrame frame;
2023-02-18 16:26:17 -08:00
break;
2023-03-10 23:44:22 -08:00
case "SHNT":
2025-12-07 10:37:47 -08:00
//NShaderHint shaderHints;
2023-03-10 23:44:22 -08:00
break;
2023-03-13 01:38:31 -04:00
case "FONT":
2025-12-07 10:37:47 -08:00
//CFont font;
2023-03-13 01:38:31 -04:00
break;
case "DGRP":
2025-12-07 10:37:47 -08:00
//DependencyGroup data;
2023-03-13 01:38:31 -04:00
break;
case "MCON":
CModConData data(form.size);
break;
2026-03-28 15:03:02 -04:00
case "DLOG":
Dialogue data;
break;
2023-02-18 12:13:29 -08:00
}
FSeek(start + form.size);
} File<open = true, bgcolor = cSilver>;
2023-02-12 17:25:49 -05:00
2023-02-18 12:13:29 -08:00
File
file<bgcolor = cGray, name = (Str("%s rv%d wv%d file", form.id,
form.readerVersion, form.writerVersion))>;
2023-02-13 16:25:12 -05:00
// Custom footer for extracted files
2023-02-18 12:13:29 -08:00
if (ReadString(FTell(), 4) == "RFRM") {
Footer footer(file.form.id)<bgcolor = cLtBlue>;
2023-02-13 16:25:12 -05:00
}