P+ - R.O.B - Common Subroutine 0xbc74

  1. loop Infinite times:
    1. if (not(Always LongtermAccessBool(HasCurry)))
      1. if ((InternalConstantInt(CurrentSubaction) Equal scalar(380)))
        1. SetAnimationAndTimerFrame(0.0)
      2. else
        1. Subroutine(0x805451a0)
      3. SyncWait(1.0)
      4. Subroutine(0x80545fc0)
    2. else
      1. if (HoldingItem)
        1. IfStatementAnd (SubactionExists value(5))
        2. if ((InternalConstantInt (0x5222) Equal scalar(5)))
          1. Subroutine(0x805451b8)
          2. SyncWait(1.0)
          3. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: true, ty: Comparison }, Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 21026 }), Value(2), Scalar(5.0)] }
        3. else
          1. if ((InternalConstantInt(CurrentSubaction) Equal scalar(0)))
            1. SetAnimationAndTimerFrame(0.0)
          2. else
            1. Subroutine(0x805451d0)
          3. SyncWait(1.0)
          4. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
      2. else
        1. Switch(1000, 0)
        2. Case(1)
        3. ChangeSubactionRestartFrame(Wait2)
        4. Case(2)
        5. ChangeSubactionRestartFrame(Wait3)
        6. Case(3)
        7. ChangeSubactionRestartFrame(Wait4)
        8. Case(4)
        9. ChangeSubactionRestartFrame(NONE)
        10. Case(-1)
        11. SetAnimationAndTimerFrame(0.0)
        12. UnknownEvent { namespace: 0x0, code: 0x12, unk1: 0x0, arguments: [] }
        13. Subroutine(0x805451e8)
        14. EndSwitch
        15. SyncWait(1.0)
        16. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: AnimationEnd }] }
    3. LoopRest