PM3.02 - Olimar - Action - 0x114 SpecialHi

Entry Script

  1. CreateInterrupt { interrupt_id: Some(10000), action: Wait, requirement: (AnimationEnd) }
  2. CreateInterrupt { interrupt_id: Some(10004), action: FallSpecial, requirement: (AnimationEnd) }
  3. Subroutine(0x28e04)
  4. IntVariableSet { variable: RandomAccessInt(ThrowDataParam1), value: 2 }
  5. if (not(OnGround))
    1. IfStatementAnd (ArticleExists value(2))
    2. Subroutine(Offset { offset: 0xffffffff, origin: 0x1e2fc })
  6. loop Infinite times:
    1. if (OnGround)
      1. Subroutine(0x1dec0)
      2. if ((InternalConstantInt(CurrentSubaction) Equal scalar(475)))
        1. ChangeSubaction(SpecialHiStart)
      3. else
        1. ChangeSubactionRestartFrame(SpecialHiStart)
      4. UnknownEvent { namespace: 0x4, code: 0x5, unk1: 0x0, arguments: [Value(24)] }
      5. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: InAir }] }
      6. EnableInterrupt(10000)
      7. DisableInterrupt(10004)
    2. else
      1. Subroutine(0x1def8)
      2. if ((InternalConstantInt(CurrentSubaction) Equal scalar(474)))
        1. ChangeSubaction(SpecialAirHiStart_1)
      3. else
        1. ChangeSubactionRestartFrame(SpecialAirHiStart_1)
      4. UnknownEvent { namespace: 0x4, code: 0x5, unk1: 0x0, arguments: [Value(24)] }
      5. UnknownEvent { namespace: 0x4, code: 0x2, unk1: 0x0, arguments: [Requirement { flip: false, ty: OnGround }] }
      6. DisableInterrupt(10000)
      7. EnableInterrupt(10004)
    3. LoopRest

Exit Script

  1. UnknownEvent { namespace: 0x0, code: 0x10, unk1: 0x0, arguments: [Value(10000), Variable(Variable { memory_type: InternalConstant, data_type: Int, address: 20001 })] }
  2. Case(127)
  3. Case(128)
  4. UnknownEvent { namespace: 0x0, code: 0x18, unk1: 0x0, arguments: [] }
  5. UnknownEvent { namespace: 0x0, code: 0x12, unk1: 0x0, arguments: [] }
  6. ArticleRemove(2)
  7. EndSwitch