mirror of
https://github.com/WerWolv/ImHex-Patterns.git
synced 2026-03-28 07:47:02 -05:00
patterns/CrashLvl: Update Crash Back in Time level format (#186)
* Working on new Version * Needs testing * Updated CrashLvl script to support version 0.94c * Update README.md * Added TestData and author to script * Delete tests/patterns/test_data/CrashLvl.hexpat.bin
This commit is contained in:
@@ -40,7 +40,7 @@ Everything will immediately show up in ImHex's Content Store and gets bundled wi
|
||||
| CHM | | [`patterns/chm.hexpat`](patterns/chm.hexpat) | Windows HtmlHelp Data (ITSF / CHM) |
|
||||
| COFF | `application/x-coff` | [`patterns/coff.hexpat`](patterns/coff.hexpat) | Common Object File Format (COFF) executable |
|
||||
| CPIO | `application/x-cpio` | [`patterns/cpio.hexpat`](patterns/cpio.hexpat) | Old Binary CPIO Format |
|
||||
| CrashLvl | | [`patterns/Crashlvl.hexpat`](patterns/Crashlvl.hexpat) | Crash Bandicoot - Back in Time (fan game) User created flashback tapes level format |
|
||||
| CrashLvl | | [`patterns/Crashlvl.hexpat`](patterns/Crashlvl.hexpat) | Crash Bandicoot - Back in Time (fan game) User created level format |
|
||||
| DDS | `image/vnd-ms.dds` | [`patterns/dds.hexpat`](patterns/dds.hexpat) | DirectDraw Surface |
|
||||
| DEX | | [`patterns/dex.hexpat`](patterns/dex.hexpat) | Dalvik EXecutable Format |
|
||||
| DMG | | [`patterns/dmg.hexpat`](patterns/dmg.hexpat) | Apple Disk Image Trailer (DMG) |
|
||||
|
||||
@@ -1,20 +1,26 @@
|
||||
#pragma description Crash Bandicoot - Back in Time (fan game) User created flashback tapes level format
|
||||
#pragma author AdventureT
|
||||
#pragma description Crash Bandicoot - Back in Time (fan game) User created level format
|
||||
// Supports all versions till 0.94c, newer versions might be compatible!
|
||||
|
||||
#include <type/magic.pat>
|
||||
#include <std/string.pat>
|
||||
#include <std/array.pat>
|
||||
|
||||
// Crash Bandicoot - Back in Time (fan game) user created tapes
|
||||
// author AdventureT
|
||||
|
||||
struct Header {
|
||||
type::Magic<"CRASHLVL"> magic;
|
||||
u8 version;
|
||||
if (version >= 4) {
|
||||
std::string::SizedString<u8> gameVersion;
|
||||
}
|
||||
std::string::SizedString<u8> levelName;
|
||||
std::string::SizedString<u8> author;
|
||||
};
|
||||
|
||||
enum Music : u32 {
|
||||
Header header @ 0x0;
|
||||
|
||||
// Background Music
|
||||
enum BGM : u32 {
|
||||
None,
|
||||
BonusBGM,
|
||||
CrashCreatorBGM,
|
||||
@@ -30,39 +36,199 @@ enum Music : u32 {
|
||||
NBrioBGM
|
||||
};
|
||||
|
||||
enum BGMV2 : u32 {
|
||||
None,
|
||||
N_TropyBGM,
|
||||
CrashCreatorBGM,
|
||||
MainMenuBGM,
|
||||
WarpRoomBGM,
|
||||
Jungle01BGM,
|
||||
SnowBGM,
|
||||
RiverBGM,
|
||||
FutureBGM,
|
||||
LabBGM,
|
||||
SewerBGM,
|
||||
EgyptBGM,
|
||||
NBrioBGM,
|
||||
AdventureBGM,
|
||||
SpyBGM,
|
||||
ChaseBGM,
|
||||
TrialsBGM,
|
||||
SpaceBGM,
|
||||
Jungle02BGM,
|
||||
RipperBGM,
|
||||
TheGreatWallBGM,
|
||||
RoadToSomewhereBGM,
|
||||
LavaKoalaBGM,
|
||||
CortexBGM,
|
||||
CyberCortexBGM,
|
||||
ArabicBGM,
|
||||
N_Tropy2BGM,
|
||||
JazzBGM,
|
||||
Space2BGM,
|
||||
TawnaBonusBGM,
|
||||
CortexPowerBGM,
|
||||
ArabicBonusBGM,
|
||||
EgyptBonusBGM,
|
||||
FutureBonusBGM,
|
||||
LostCityBGM,
|
||||
PolarBGM,
|
||||
RiverBonusBGM,
|
||||
RuinsBonusBGM,
|
||||
SewerBonusBGM,
|
||||
SnowBonusBGM,
|
||||
RoadToRuinBGM,
|
||||
NGinBGM,
|
||||
Arabia01BGM,
|
||||
Arabia02BGM,
|
||||
BashBGM,
|
||||
Cortex02BGM,
|
||||
};
|
||||
|
||||
enum Type : u32 {
|
||||
Unset,
|
||||
Flashback,
|
||||
Trial
|
||||
Trial,
|
||||
};
|
||||
|
||||
enum Time : u32 {
|
||||
enum TypeV2 : u32 {
|
||||
Practice,
|
||||
Flashback,
|
||||
Trial,
|
||||
Adventure
|
||||
};
|
||||
|
||||
enum Skybox : u32 {
|
||||
Night,
|
||||
Day,
|
||||
Storm,
|
||||
Dawn
|
||||
};
|
||||
|
||||
enum Terrain : u32 {
|
||||
enum SkyboxV2 : u32 {
|
||||
Default = 1,
|
||||
Briolab,
|
||||
Fort,
|
||||
Moon,
|
||||
Toxic,
|
||||
AboutRight,
|
||||
Crash1Island,
|
||||
Arabia,
|
||||
RoadToRuin,
|
||||
Black
|
||||
};
|
||||
|
||||
enum Scenery : u32 {
|
||||
None,
|
||||
Machines,
|
||||
Trees,
|
||||
FutureTense,
|
||||
Forest,
|
||||
Waterfall,
|
||||
Snow,
|
||||
Fortress,
|
||||
};
|
||||
|
||||
enum SceneryV2 : u32 {
|
||||
None,
|
||||
FutureTense,
|
||||
Forest,
|
||||
Waterfall,
|
||||
None2,
|
||||
Fortress,
|
||||
None3,
|
||||
Lava,
|
||||
TheGreatGate,
|
||||
Mountain,
|
||||
KoalaKong,
|
||||
SunsetVista,
|
||||
HangemHigh,
|
||||
Sphynxinator,
|
||||
Tunnel,
|
||||
Pipes
|
||||
};
|
||||
|
||||
enum SceneryV4 : u32 {
|
||||
None,
|
||||
FutureTense,
|
||||
Forest,
|
||||
Waterfall,
|
||||
Snow,
|
||||
Fortress,
|
||||
None2,
|
||||
Lava,
|
||||
TheGreatGate,
|
||||
Mountain,
|
||||
KoalaKong,
|
||||
SunsetVista,
|
||||
HangemHigh,
|
||||
Sphynxinator,
|
||||
Tunnel,
|
||||
Pipes
|
||||
};
|
||||
|
||||
enum Weather : u32 {
|
||||
Default,
|
||||
Snow,
|
||||
Rain
|
||||
};
|
||||
|
||||
struct Options {
|
||||
Type type;
|
||||
Time time;
|
||||
Terrain terrain;
|
||||
Music music;
|
||||
|
||||
if (header.version > 1)
|
||||
TypeV2 type;
|
||||
else
|
||||
Type type;
|
||||
|
||||
if (header.version > 1)
|
||||
SkyboxV2 skybox;
|
||||
else
|
||||
Skybox skybox;
|
||||
|
||||
if (header.version == 1)
|
||||
Scenery scenery;
|
||||
else if (header.version > 1 && header.version < 4)
|
||||
SceneryV2 scenery;
|
||||
else
|
||||
SceneryV4 scenery;
|
||||
|
||||
if (header.version > 2)
|
||||
{
|
||||
Weather weather;
|
||||
}
|
||||
|
||||
if (header.version > 1)
|
||||
BGMV2 bgm;
|
||||
else
|
||||
BGM bgm;
|
||||
|
||||
|
||||
if (type == Type::Trial)
|
||||
{
|
||||
u32 timeTrialTicksBronze;
|
||||
u32 timeTrialTicksSilver;
|
||||
u32 timeTrialTicksGold;
|
||||
}
|
||||
};
|
||||
|
||||
struct Object {
|
||||
|
||||
std::string::SizedString<u8> objName;
|
||||
u32 x;
|
||||
u32 y;
|
||||
|
||||
if (header.version > 1)
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
bool hasMetafields;
|
||||
if (hasMetafields)
|
||||
{
|
||||
u16 numOfMetafields;
|
||||
u8 metafields[numOfMetafields];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
u32 x;
|
||||
u32 y;
|
||||
}
|
||||
};
|
||||
|
||||
struct Objects{
|
||||
@@ -70,6 +236,9 @@ struct Objects{
|
||||
std::Array<Object, objCount> objArray;
|
||||
};
|
||||
|
||||
Header header @ 0x0;
|
||||
|
||||
Options options @ $;
|
||||
Objects objects @ $;
|
||||
Objects objects @ $;
|
||||
|
||||
|
||||
|
||||
|
||||
BIN
tests/patterns/test_data/CrashLvl.hexpat
Normal file
BIN
tests/patterns/test_data/CrashLvl.hexpat
Normal file
Binary file not shown.
Reference in New Issue
Block a user