P+ - Sonic - Action - 0x9b ThrowItem

Entry Script (Common)

  1. Subroutine(0x805440c0)
  2. CreateInterrupt { interrupt_id: None, action: Fall, requirement: (AnimationEnd) }
  3. PreviousInterruptAddRequirement(InAir)
  4. CreateInterrupt { interrupt_id: None, action: Wait, requirement: (AnimationEnd) }
  5. PreviousInterruptAddRequirement(OnGround)
  6. if ((InternalConstantInt(HeldItem) Equal scalar(72)))
    1. UnknownEvent { namespace: 0xc, code: 0x13, unk1: 0x0, arguments: [] }
    2. if (OnGround)
      1. Subroutine(0x18e7c)
    3. else
      1. Subroutine(0x1905c)
  7. else
    1. if ((RandomAccessInt (0x0) Equal scalar(0)))
      1. if (OnGround)
        1. Subroutine(0x1942c)
      2. else
        1. Subroutine(0x19834)
  8. ControllerClearBuffer
  9. ControllerUnk01
  10. Subroutine(0x80545f80)
  11. loop Infinite times:
    1. if (BoolIsTrue RandomAccessBool(EnableActionTransition))
      1. UnknownEvent { namespace: 0x4, code: 0x0, unk1: 0x0, arguments: [Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 }), Bool(true)] }
    2. else
      1. UnknownEvent { namespace: 0x4, code: 0x0, unk1: 0x0, arguments: [Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 })] }
      2. BoolVariableSetTrue { variable: RandomAccessBool(EnableActionTransition) }
    3. if (OnGround)
      1. SetEdgeSlide(Unknown(2))
      2. SetAirGround(15)
      3. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
    4. else
      1. SetEdgeSlide(Airbourne)
      2. SetAirGround(0)
      3. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
    5. LoopRest
    6. UnknownEvent { namespace: 0x12, code: 0x0, unk1: 0x0, arguments: [Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 }), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 2 })] }
    7. UnknownEvent { namespace: 0x12, code: 0x0, unk1: 0x0, arguments: [Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 1 }), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 0 })] }
    8. UnknownEvent { namespace: 0x12, code: 0x0, unk1: 0x0, arguments: [Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 2 }), Variable(Variable { memory_type: RandomAccess, data_type: Int, address: 1 })] }

Exit Script (Common)

  1. if ((InternalConstantInt(HeldItem) Equal scalar(72)))
    1. UnknownEvent { namespace: 0xc, code: 0x12, unk1: 0x0, arguments: [Value(3)] }
  2. BoolVariableSetFalse { variable: LongtermAccessBool (0x2a) }