P+ - Fox - Action - 0x113 SpecialS

Entry Script

  1. Subroutine(0x23870)
  2. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: -1 }
  3. IntVariableSet { variable: RandomAccessInt (0x0), value: 0 }
  4. IntVariableSet { variable: RandomAccessInt (0x1), value: -1 }
  5. FloatVariableSet { variable: LongtermAccessFloat(SpecialLandingLag), value: InternalConstantInt (0x5dc3) }
  6. FloatVariableSet { variable: LongtermAccessFloat(SpecialFallMobilityMultiplier), value: InternalConstantInt (0xfae) }
  7. BoolVariableSetTrue { variable: LongtermAccessBool (0x3) }
  8. Posture(3)
  9. Posture(4)
  10. UnknownEvent { namespace: 0xc, code: 0x1, unk1: 0x0, arguments: [] }
  11. CallEveryFrame { thread_id: 9, script: 0x1cc28 }
  12. loop Infinite times:
    1. if (OnGround)
      1. UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 })] }
      2. Case(0)
      3. SetAirGround(6)
      4. SetEdgeSlide(StayOn)
      5. UnknownEvent { namespace: 0xe, code: 0x2, unk1: 0x0, arguments: [] }
      6. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
        1. ChangeSubaction(SpecialSStart)
      7. else
        1. ChangeSubactionRestartFrame(SpecialSStart)
        2. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
      8. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
      9. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
      10. Case(1)
      11. SetAirGround(15)
      12. SetEdgeSlide(StayOn)
      13. UnknownEvent { namespace: 0xe, code: 0xa, unk1: 0x0, arguments: [Value(0)] }
      14. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
        1. ChangeSubaction(SpecialS)
      15. else
        1. ChangeSubactionRestartFrame(SpecialS)
        2. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
      16. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: BoolIsTrue }, Variable(Variable { memory_type: RandomAccess, data_type: Bool, address: 17 })] }
      17. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
      18. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
      19. Case(2)
      20. SetAirGround(6)
      21. SetEdgeSlide(Unknown(2))
      22. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
        1. ChangeSubaction(SpecialSEnd)
      23. else
        1. ChangeSubactionRestartFrame(SpecialSEnd)
        2. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
      24. CreateInterrupt { interrupt_id: None, action: FallSpecial, requirement: (InAir) }
      25. CreateInterrupt { interrupt_id: None, action: Wait, requirement: (AnimationEnd) }
      26. PreviousInterruptAddRequirement(OnGround)
      27. EndSwitch
    2. else
      1. SetEdgeSlide(Airbourne)
      2. UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 })] }
      3. Case(0)
      4. SetAirGround(10)
      5. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
        1. ChangeSubaction(SpecialAirSStart)
      6. else
        1. ChangeSubactionRestartFrame(SpecialAirSStart)
        2. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
      7. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
      8. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
      9. Case(1)
      10. SetAirGround(17)
      11. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
        1. ChangeSubaction(SpecialAirS)
      12. else
        1. ChangeSubactionRestartFrame(SpecialAirS)
        2. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
      13. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: BoolIsTrue }, Variable(Variable { memory_type: RandomAccess, data_type: Bool, address: 17 })] }
      14. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
      15. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
      16. UnknownEvent { namespace: 0x8, code: 0x2, unk1: 0x0, arguments: [Value(2)] }
      17. Case(2)
      18. SetAirGround(10)
      19. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
        1. ChangeSubactionRestartFrame(SpecialAirSEnd)
      20. else
        1. ChangeSubactionRestartFrame(SpecialAirSEnd)
        2. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
      21. CreateInterrupt { interrupt_id: None, action: FallSpecial, requirement: (AnimationEnd) }
      22. PreviousInterruptAddRequirement(InAir)
      23. CreateInterrupt { interrupt_id: None, action: LandingFallSpecial, requirement: (OnGround) }
      24. LedgeGrabEnable(EnableInFrontAndBehind)
      25. EndSwitch
    3. LoopRest
    4. if (AnimationEnd)
      1. if ((RandomAccessInt (0x0) LessThan scalar(2)))
        1. IntVariableIncrement { variable: RandomAccessInt (0x0) }
        2. BoolVariableSetFalse { variable: RandomAccessBool(EnableActionTransition) }

Exit Script

  1. if ((InternalConstantInt(CurrentAction) Equal scalar(16)))
    1. FloatVariableSet { variable: LongtermAccessFloat(SpecialLandingLag), value: 6.99 }
  2. IntVariableSet { variable: RandomAccessInt (0x24b6), value: 0 }
  3. IntVariableSet { variable: RandomAccessInt (0x1d3c), value: 0 }