diff --git a/README.md b/README.md index 08622c7..0b90953 100644 --- a/README.md +++ b/README.md @@ -91,6 +91,7 @@ Everything will immediately show up in ImHex's Content Store and gets bundled wi | UEFI | | [`patterns/uefi.hexpat`](patterns/uefi.hexpat)` | UEFI structs for parsing efivars | | EVTX | | [`patterns/evtx.hexpat`](patterns/evtx.hexpat) | MS Windows Vista Event Log | | BSP | | [`patterns/bsp_goldsrc.hexpat`](patterns/bsp_goldsrc.hexpat) | GoldSrc engine maps format (used in Half-Life 1) | +| CrashLvl | | [`patterns/Crashlvl.hexpat`](patterns/Crashlvl.hexpat) | Crash Bandicoot - Back in Time (fan game) User created flashback tapes level format | ### Scripts diff --git a/patterns/Crashlvl.hexpat b/patterns/Crashlvl.hexpat new file mode 100644 index 0000000..37edf6a --- /dev/null +++ b/patterns/Crashlvl.hexpat @@ -0,0 +1,73 @@ +#include +#include +#include + +// Crash Bandicoot - Back in Time (fan game) user created tapes +// author AdventureT + +struct Header { + type::Magic<"CRASHLVL"> magic; + u8 version; + std::string::SizedString levelName; + std::string::SizedString author; +}; + +enum Music : u32 { + None, + BonusBGM, + CrashCreatorBGM, + MainMenuBGM, + WarpRoomBGM, + Level01BGM, + Level02BGM, + Level03BGM, + Level04BGM, + Level05BGM, + SewerBGM, + EgyptBGM, + NBrioBGM +}; + +enum Type : u32 { + Unset, + Flashback, + Trial +}; + +enum Time : u32 { + Night, + Day, + Storm, + Dawn +}; + +enum Terrain : u32 { + None, + Machines, + Trees, + Waterfall, + Snow, + Fortress, +}; + +struct Options { + Type type; + Time time; + Terrain terrain; + Music music; +}; + +struct Object { + std::string::SizedString objName; + u32 x; + u32 y; +}; + +struct Objects{ + u32 objCount; + std::Array objArray; +}; + +Header header @ 0x0; +Options options @ $; +Objects objects @ $; \ No newline at end of file