Fix RunEvent #2

Merged
Quaternions merged 3 commits from run-event into master 2025-12-13 15:57:27 +00:00

100
src/v0.rs
View File

@@ -257,27 +257,12 @@ pub struct GravityEvent{
#[binrw]
#[brw(little)]
#[derive(Debug,Clone,Copy,Hash,Eq,PartialEq)]
pub enum RunEventType{
#[brw(magic=0u32)]
Prepare,
#[brw(magic=1u32)]
Start,
#[brw(magic=2u32)]
Finish,
#[brw(magic=3u32)]
Clear,
#[brw(magic=4u32)]
Flag,
#[brw(magic=5u32)]
LoadState,
#[brw(magic=6u32)]
SaveState,
}
pub struct ModeID(pub u32);
#[binrw]
#[brw(little)]
#[derive(Debug,Clone,Copy,Hash,Eq,PartialEq)]
pub enum ModeSpec{
Exactly(u32),
Exactly(ModeID),
#[brw(magic=-1i32)]
All,
#[brw(magic=-2i32)]
@@ -288,6 +273,39 @@ pub enum ModeSpec{
#[binrw]
#[brw(little)]
#[derive(Debug,Clone,Copy,Hash,Eq,PartialEq)]
pub enum Style{
#[brw(magic=1u32)]
Autohop,
#[brw(magic=2u32)]
Scroll,
#[brw(magic=3u32)]
Sideways,
#[brw(magic=4u32)]
HalfSideways,
#[brw(magic=5u32)]
WOnly,
#[brw(magic=6u32)]
AOnly,
#[brw(magic=7u32)]
Backwards,
#[brw(magic=8u32)]
Faste,
#[brw(magic=14u32)]
LowGravity,
#[brw(magic=501u32)]
Fly,
#[brw(magic=502u32)]
FlySustain,
#[brw(magic=503u32)]
Rocket,
#[brw(magic=504u32)]
Style3DStrafe,
#[brw(magic=505u32)]
RocketStrafe,
}
#[binrw]
#[brw(little)]
#[derive(Debug,Clone,Copy,Hash,Eq,PartialEq)]
pub enum FlagReason{
#[brw(magic=0u32)]
Anticheat,
@@ -309,17 +327,57 @@ pub enum FlagReason{
Teleport,
#[brw(magic=9u32)]
Practice,
#[brw(magic=b"data")]
None,
}
#[binrw]
#[brw(little)]
#[derive(Debug,Clone)]
pub struct RunEvent{
pub run_event_type:RunEventType,
pub struct RunEventPrepare{
pub mode:ModeID,
pub style:Style,
}
#[binrw]
#[brw(little)]
#[derive(Debug,Clone)]
pub struct RunEventZone{
pub mode:ModeID,
#[br(temp)]
#[bw(ignore)]
#[brw(magic=b"data")]
_magic:(),
}
#[binrw]
#[brw(little)]
#[derive(Debug,Clone)]
pub struct RunEventFlag{
pub mode:ModeSpec,
pub flag_reason:FlagReason,
}
#[binrw]
#[brw(little)]
#[derive(Debug,Clone)]
pub struct RunEventPractice{
pub mode:ModeSpec,
pub state_id:u32,
}
#[binrw]
#[brw(little)]
#[derive(Debug,Clone)]
pub enum RunEvent{
#[brw(magic=0u32)]
Prepare(RunEventPrepare),
#[brw(magic=1u32)]
Start(RunEventZone),
#[brw(magic=2u32)]
Finish(RunEventZone),
#[brw(magic=3u32)]
Clear(RunEventZone),
#[brw(magic=4u32)]
Flag(RunEventFlag),
#[brw(magic=5u32)]
LoadState(RunEventPractice),
#[brw(magic=6u32)]
SaveState(RunEventPractice),
}
// camera
#[binrw]