P+ - Sonic - Common Subroutine 0x80546498

  1. FloatVariableSet { variable: LongtermAccessFloat(SpecialLandingLag), value: 10 }
  2. CreateInterrupt { interrupt_id: None, action: FallSpecial, requirement: (AnimationEnd) }
  3. CreateInterrupt { interrupt_id: None, action: LandingFallSpecial, requirement: (OnGround) }
  4. Subroutine(0x22770)
  5. FloatVariableMultiply { variable: LongtermAccessFloat (0x2c), value: InternalConstantInt(CharacterDirection) }
  6. FloatVariableMultiply { variable: LongtermAccessFloat (0x2c), value: 3.1 }
  7. FloatVariableMultiply { variable: LongtermAccessFloat (0x2d), value: 3.1 }
  8. ChangeSubactionRestartFrame(EscapeAir)
  9. SetAirGround(10)
  10. DisableMovement(DisableVertical)
  11. BoolVariableSetTrue { variable: LongtermAccessBool(CanNotTeeter) }
  12. loop 28 times:
    1. SetOrAddVelocity(SetOrAddVelocity { x_vel: 0.0, y_vel: 0.0, x_set: false, y_set: true })
    2. AddVelocity { x_vel: Variable(LongtermAccessFloat(Address(44))), y_vel: Variable(LongtermAccessFloat(Address(45))) }
    3. FloatVariableMultiply { variable: LongtermAccessFloat (0x2c), value: 0.9 }
    4. FloatVariableMultiply { variable: LongtermAccessFloat (0x2d), value: 0.9 }
    5. if (BoolIsTrue RandomAccessBool (0x1c))
      1. UnknownEvent { namespace: 0x0, code: 0x6, unk1: 0x0, arguments: [] }
    6. SyncWait(1.0)
  13. BoolVariableSetTrue { variable: RandomAccessBool (0x1c) }
  14. DisableMovement2(DisableVertical)
  15. SetAirGround(0)
  16. Return