P+ - Sonic - Common Subroutine 0x1f47c

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