P+ - Sonic - Common Subroutine 0x1f47c
- UnknownEvent { namespace: 0x14, code: 0x5, unk1: 0x0, arguments: [Bool(false)] }
- UnknownEvent { namespace: 0x4, code: 0xd, unk1: 0x0, arguments: [Value(1)] }
- UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 20003 })] }
- Case(15)
- CreateInterrupt { interrupt_id: None, action: FallAerial, requirement: ((RandomAccessInt (0x0) GreaterThanOrEqual RandomAccessInt (0x1))) }
- PreviousInterruptAddRequirement(InAir)
- Case(16)
- CreateInterrupt { interrupt_id: None, action: FallSpecial, requirement: ((RandomAccessInt (0x0) GreaterThanOrEqual RandomAccessInt (0x1))) }
- PreviousInterruptAddRequirement(InAir)
- UnknownEvent { namespace: 0x0, code: 0x12, unk1: 0x0, arguments: [] }
- CreateInterrupt { interrupt_id: None, action: Fall, requirement: ((RandomAccessInt (0x0) GreaterThanOrEqual RandomAccessInt (0x1))) }
- PreviousInterruptAddRequirement(InAir)
- EndSwitch
- CreateInterrupt { interrupt_id: None, action: Wait, requirement: ((RandomAccessInt (0x0) GreaterThanOrEqual RandomAccessInt (0x1))) }
- PreviousInterruptAddRequirement(OnGround)
- PreviousInterruptAddRequirement(AnimationEnd)
- loop Infinite times:
- if (OnGround)
- SetEdgeSlide(StayOn)
- SetAirGround(6)
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
- else
- SetEdgeSlide(Airbourne)
- UnknownEvent { namespace: 0xe, code: 0x5, unk1: 0x0, arguments: [Value(0)] }
- UnknownEvent { namespace: 0xe, code: 0x5, unk1: 0x0, arguments: [Value(1)] }
- UnknownEvent { namespace: 0xe, code: 0x5, unk1: 0x0, arguments: [Value(3)] }
- UnknownEvent { namespace: 0xe, code: 0x5, unk1: 0x0, arguments: [Value(2)] }
- UnknownEvent { namespace: 0xe, code: 0x5, unk1: 0x0, arguments: [Value(4)] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
- LoopRest