forked from tsuki/openroller
59 lines
1.1 KiB
Plaintext
59 lines
1.1 KiB
Plaintext
// Groove Coaster Android/arcade *_ext.dat
|
|
// LoadExtData starts reading at byte 6. Bytes after notes are not consumed by
|
|
// the recovered Android routine and are intentionally left untyped.
|
|
|
|
struct NoteTimingEntry {
|
|
u32 timeMs;
|
|
u32 mode;
|
|
float value;
|
|
} [[single_color]];
|
|
struct NoteTimingList {
|
|
u16 size;
|
|
NoteTimingEntry entries[size];
|
|
} [[single_color]];
|
|
|
|
enum NoteType : u8 {
|
|
NONE = 0,
|
|
NORMAL = 1,
|
|
FLICK = 2,
|
|
HOLD = 3,
|
|
SCRATCH = 4,
|
|
BEAT = 5,
|
|
MERRY_GO_ROUND = 6,
|
|
HIDDEN = 7,
|
|
HIDDEN2 = 8,
|
|
CRITICAL = 9,
|
|
SLIDE_HOLD = 10,
|
|
SLIDE_COUNTER = 11,
|
|
TURN = 12,
|
|
SPIN = 13,
|
|
FINISH = 14,
|
|
DUAL_HOLD = 15,
|
|
};
|
|
struct Note {
|
|
u32 timeMs;
|
|
NoteType type;
|
|
u8 typeOverride;
|
|
s16 params16[9];
|
|
u8 flag24;
|
|
float params25[3];
|
|
u8 flag37;
|
|
u8 flag38;
|
|
float params39[4];
|
|
u32 params55[3];
|
|
float param67;
|
|
u32 param71;
|
|
float params75[5];
|
|
u32 param95;
|
|
} [[single_color]];
|
|
|
|
struct StageExtension {
|
|
NoteTimingList noteTimings[4];
|
|
u32 unknown;
|
|
u32 noteCount;
|
|
Note notes[noteCount];
|
|
};
|
|
|
|
u8 prefix[6] @ 0x00;
|
|
StageExtension extension @ 0x06;
|