PM3.6 - Link - Action - 0x112 SpecialN
            Entry Script
            - BoolVariableSetFalse { variable: RandomAccessBool(EnableGlide) }
 - BoolVariableSetFalse { variable: RandomAccessBool(EnableActionTransition) }
 - BoolVariableSetFalse { variable: RandomAccessBool (0x11) }
 - BoolVariableSetFalse { variable: RandomAccessBool(SpecialsMovement) }
 - IntVariableSet { variable: RandomAccessInt (0x0), value: 0 }
 - CreateInterrupt { interrupt_id: None, action: Wait, requirement: (AnimationEnd) }
 - PreviousInterruptAddRequirement(OnGround)
 - CreateInterrupt { interrupt_id: None, action: Fall, requirement: (AnimationEnd) }
 - PreviousInterruptAddRequirement(InAir)
 - CreateInterrupt { interrupt_id: Some(10002), action: Fall, requirement: (InAir) }
 - DisableInterrupt(10002)
 - CreateInterrupt { interrupt_id: Some(10026), action: LandingHeavy, requirement: (OnGround) }
 - DisableInterrupt(10026)
 - CallEveryFrame { thread_id: 9, script: 0x2be0c }
 - loop Infinite times: 
- if (OnGround) 
- SetAirGround(6)
 - SetEdgeSlide(Unknown(2))
 - UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 })] }
 - Case(0)
 - if (BoolIsTrue RandomAccessBool(EnableActionTransition)) 
- ChangeSubaction(SpecialNStart)
 - UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(0), Value(0), Bool(true)] }
 
 - else
- ChangeSubactionRestartFrame(SpecialNStart)
 - UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(0), Value(0)] }
 - BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
 
 - UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: BoolIsTrue }, Variable(Variable { memory_type: RandomAccess, data_type: Bool, address: 19 })] }
 - UnknownEvent { namespace: 0x4, code: 0x3, unk1: 0x0, arguments: [Requirement { flip: false, ty: ButtonNotPressed }, Value(1)] }
 - FrameSpeedModifier { multiplier: 1.333, unk: 0 }
 - Case(1)
 - if (BoolIsTrue RandomAccessBool (0x11)) 
- ChangeSubaction(SpecialNLoop)
 - UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(0), Value(1), Bool(true)] }
 
 - else
- ChangeSubactionRestartFrame(SpecialNLoop)
 - UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(0), Value(1)] }
 - BoolVariableSetTrue { variable: RandomAccessBool (0x11) }
 
 - UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: ButtonNotPressed }, Value(1)] }
 - Case(2)
 - if (BoolIsTrue RandomAccessBool(SpecialsMovement)) 
- ChangeSubaction(SpecialNEnd)
 - UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(0), Value(2), Bool(true)] }
 
 - else
- ChangeSubactionRestartFrame(SpecialNEnd)
 - Subroutine(0x20f50)
 - UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(0), Value(2)] }
 - BoolVariableSetTrue { variable: RandomAccessBool(SpecialsMovement) }
 
 - EnableInterrupt(10002)
 - DisableInterrupt(10026)
 - EndSwitch
 - UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
 
 - else
- SetAirGround(0)
 - SetEdgeSlide(Airbourne)
 - UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 })] }
 - Case(0)
 - if (BoolIsTrue RandomAccessBool(EnableActionTransition)) 
- ChangeSubaction(SpecialAirNStart)
 - UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(0), Value(3), Bool(true)] }
 
 - else
- ChangeSubactionRestartFrame(SpecialAirNStart)
 - UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(0), Value(3)] }
 - BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
 
 - UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: BoolIsTrue }, Variable(Variable { memory_type: RandomAccess, data_type: Bool, address: 19 })] }
 - UnknownEvent { namespace: 0x4, code: 0x3, unk1: 0x0, arguments: [Requirement { flip: false, ty: ButtonNotPressed }, Value(1)] }
 - FrameSpeedModifier { multiplier: 1.333, unk: 0 }
 - Case(1)
 - if (BoolIsTrue RandomAccessBool (0x11)) 
- ChangeSubaction(SpecialAirNLoop)
 - UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(0), Value(4), Bool(true)] }
 
 - else
- ChangeSubactionRestartFrame(SpecialAirNLoop)
 - UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(0), Value(4)] }
 - BoolVariableSetTrue { variable: RandomAccessBool (0x11) }
 
 - UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: ButtonNotPressed }, Value(1)] }
 - Case(2)
 - if (BoolIsTrue RandomAccessBool(SpecialsMovement)) 
- ChangeSubaction(SpecialAirNEnd)
 - UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(0), Value(5), Bool(true)] }
 
 - else
- ChangeSubactionRestartFrame(SpecialAirNEnd)
 - Subroutine(0x20f50)
 - UnknownEvent { namespace: 0x10, code: 0x4, unk1: 0x0, arguments: [Value(0), Value(5)] }
 - BoolVariableSetTrue { variable: RandomAccessBool(SpecialsMovement) }
 
 - DisableInterrupt(10002)
 - EnableInterrupt(10026)
 - EndSwitch
 - UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
 
 - UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
 - LoopRest
 - UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 })] }
 - Case(0)
 - if (ButtonHeld value(1)) 
- if (AnimationEnd) 
- IntVariableSet { variable: RandomAccessInt (0x0), value: 1 }
 - Subroutine(0x13ec8)
 
 
 - else
- IntVariableSet { variable: RandomAccessInt (0x0), value: 2 }
 
 - Case(1)
 - if (ButtonNotPressed value(1)) 
- IntVariableSet { variable: RandomAccessInt (0x0), value: 2 }
 
 - Case(2)
 - EndSwitch
 
 
            Exit Script