P+ - Fox - Action - 0x112 SpecialN

Entry Script

  1. BoolVariableSetFalse { variable: RandomAccessBool(EnableActionTransition) }
  2. IntVariableSet { variable: RandomAccessInt (0x0), value: 0 }
  3. IntVariableSet { variable: RandomAccessInt (0x1), value: -1 }
  4. FloatVariableSet { variable: LongtermAccessFloat(SpecialLandingLag), value: InternalConstantInt (0x5dc0) }
  5. CreateInterrupt { interrupt_id: None, action: Wait, requirement: (AnimationEnd) }
  6. PreviousInterruptAddRequirement(OnGround)
  7. if ((InternalConstantInt (0x5dc0) GreaterThan scalar(0)))
    1. CreateInterrupt { interrupt_id: None, action: FallSpecial, requirement: (AnimationEnd) }
    2. PreviousInterruptAddRequirement(InAir)
    3. CreateInterrupt { interrupt_id: Some(10002), action: FallSpecial, requirement: (InAir) }
    4. DisableInterrupt(10002)
  8. else
    1. CreateInterrupt { interrupt_id: None, action: Fall, requirement: (AnimationEnd) }
    2. PreviousInterruptAddRequirement(InAir)
    3. CreateInterrupt { interrupt_id: Some(10002), action: Fall, requirement: (InAir) }
    4. DisableInterrupt(10002)
  9. CallEveryFrame { thread_id: 9, script: 0x1c670 }
  10. loop Infinite times:
    1. if (OnGround)
      1. SetEdgeSlide(Unknown(2))
      2. SetAirGround(6)
      3. DisableInterruptGroup(AirLanding)
      4. EnableInterrupt(10002)
      5. UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 })] }
      6. Case(0)
      7. ChangeSubactionRestartFrame(SpecialNStart)
      8. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
      9. Case(1)
      10. ChangeSubactionRestartFrame(SpecialNLoop)
      11. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
      12. Case(2)
      13. ChangeSubactionRestartFrame(SpecialNEnd)
      14. EndSwitch
    2. else
      1. SetEdgeSlide(Airbourne)
      2. SetAirGround(0)
      3. EnableInterruptGroup(AirLanding)
      4. DisableInterrupt(10002)
      5. UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 })] }
      6. Case(0)
      7. ChangeSubactionRestartFrame(SpecialAirNStart)
      8. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
      9. Case(1)
      10. ChangeSubactionRestartFrame(SpecialAirNLoop)
      11. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
      12. Case(2)
      13. ChangeSubactionRestartFrame(SpecialAirNEnd)
      14. EndSwitch
    3. LoopRest
    4. UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 })] }
    5. Case(1)
    6. if (AnimationEnd)
      1. if (not(BoolIsTrue RandomAccessBool(SpecialsMovement)))
        1. IntVariableSet { variable: RandomAccessInt (0x0), value: 2 }
      2. else
        1. UnknownEvent { namespace: 0xc, code: 0x1c, unk1: 0x0, arguments: [Value(2), Value(19), Bool(true)] }
      3. BoolVariableSetFalse { variable: RandomAccessBool(SpecialsMovement) }
    7. UnknownEvent { namespace: 0x0, code: 0x12, unk1: 0x0, arguments: [] }
    8. if (AnimationEnd)
      1. IntVariableIncrement { variable: RandomAccessInt (0x0) }
    9. EndSwitch

Exit Script

  1. if (ArticleExists value(0))
    1. ArticleAnimation(0)