P+ - Knuckles - Action - 0x113 SpecialS
Entry Script
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 0 }
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam2), value: 50 }
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam3), value: 0 }
- IntVariableSet { variable: RandomAccessInt (0x5), value: 0 }
- if (OnGround)
- CreateInterrupt { interrupt_id: None, action: 0x118, requirement: (CharacterExists) }
- else
- if ((LongtermAccessInt (0x59) Equal scalar(0)))
- else
- CreateInterrupt { interrupt_id: None, action: 0x118, requirement: (CharacterExists) }
- CreateInterrupt { interrupt_id: None, action: 0x118, requirement: (ButtonPress value(3)) }
- PreviousInterruptAddRequirement(ButtonHeld value(0))
- PreviousInterruptAddRequirement((RandomAccessInt(ThrowDataParam1) GreaterThanOrEqual scalar(0)))
- PreviousInterruptAddRequirement((RandomAccessInt(ThrowDataParam1) LessThanOrEqual scalar(2)))
- CallEveryFrame { thread_id: 9, script: 0x26a20 }
- loop Infinite times:
- UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 2 })] }
- Case(0)
- SetAirGround(0)
- SetEdgeSlide(Airbourne)
- ChangeSubactionRestartFrame(SpecialSGlideStartAir)
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
- 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: ButtonHeld }, Value(0)] }
- UnknownEvent { namespace: 0x4, code: 0x3, unk1: 0x0, arguments: [Requirement { flip: false, ty: ButtonHeld }, Value(4)] }
- Case(1)
- CreateInterrupt { interrupt_id: None, action: 0x117, requirement: ((InternalConstantInt(ControlStickXAxisRelativeReverse) LessThanOrEqual InternalConstantInt (0xc3d))) }
- PreviousInterruptAddRequirement(TouchingAFloorWallOrCeiling value(6))
- PreviousInterruptAddRequirement(not(BoolIsTrue LongtermAccessBool (0x46)))
- SetAirGround(10)
- ChangeSubactionRestartFrame(SpecialSGlideLoop)
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: ButtonPress }, Value(1)] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 3 }), Value(1), Scalar(0.0)] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 1011 }), Value(1), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 3121 })] }
- UnknownEvent { namespace: 0x4, code: 0x3, unk1: 0x0, arguments: [Requirement { flip: false, ty: Comparison }, Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 4 }), Value(0), Scalar(2.0)] }
- UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
- Case(2)
- SetAirGround(10)
- ChangeSubactionRestartFrame(SpecialSGlideTurn)
- 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 }] }
- Case(3)
- CreateInterrupt { interrupt_id: None, action: LandingLight, requirement: (OnGround) }
- CreateInterrupt { interrupt_id: None, action: FallAerial, requirement: (AnimationEnd) }
- ChangeSubactionRestartFrame(SpecialSGlideEnd)
- Case(4)
- Subroutine(0xd698)
- SetAirGround(6)
- SetEdgeSlide(Unknown(2))
- ChangeSubactionRestartFrame(SpecialSGlideLanding_1)
- EndSwitch
- LoopRest
- UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 2 })] }
- Case(0)
- if (AnimationEnd)
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 1 }
- if (OnGround)
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 4 }
- if (ButtonHeld value(0))
- IfStatementAnd (ButtonHeld value(4))
- CreateInterrupt { interrupt_id: None, action: 0x118, requirement: (CharacterExists) }
- Case(1)
- if (ButtonPress value(1))
- IfStatementOr ((RandomAccessInt(ThrowDataParam2) LessThanOrEqual scalar(0)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 3 }
- if (OnGround)
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 4 }
- if ((InternalConstantInt(ControlStickXAxisRelative) LessThanOrEqual InternalConstantInt (0xc31)))
- IfStatementAnd ((RandomAccessInt(ThrowDataParam3) LessThan scalar(2)))
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 2 }
- Case(2)
- if (AnimationEnd)
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 1 }
- if (OnGround)
- IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 4 }
- EndSwitch
Exit Script
- UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 20001 })] }
- Case(279)
- UnknownEvent { namespace: 0x0, code: 0x18, unk1: 0x0, arguments: [] }
- UnknownEvent { namespace: 0x0, code: 0x12, unk1: 0x0, arguments: [] }
- ModelChanger { reference: 0, switch_index: 1, bone_group_index: 0 }
- EndSwitch