LXP2.1 - MetalSonic - Subroutine - 0x13ab8

  1. loop Infinite times:
    1. FloatVariableAdd { variable: LongtermAccessFloat (0x5e), value: 0.13 }
    2. FloatVariableSet { variable: LongtermAccessFloat (0x5c), value: InternalConstantInt(ControlStickXAxisRelative) }
    3. FloatVariableMultiply { variable: LongtermAccessFloat (0x5c), value: 0.1 }
    4. FloatVariableAdd { variable: LongtermAccessFloat (0x5a), value: LongtermAccessFloat (0x5c) }
    5. if ((LongtermAccessFloat (0x5a) GreaterThan scalar(0.5)))
      1. FloatVariableSet { variable: LongtermAccessFloat (0x5a), value: 0.5 }
    6. else
      1. if ((LongtermAccessFloat (0x5a) LessThan scalar(-0.5)))
        1. FloatVariableSet { variable: LongtermAccessFloat (0x5a), value: -0.5 }
    7. if ((LongtermAccessFloat (0x5a) GreaterThanOrEqual LongtermAccessFloat (0x5b)))
      1. if ((LongtermAccessFloat (0x5b) GreaterThanOrEqual scalar(0)))
        1. FloatVariableSet { variable: LongtermAccessFloat (0x5b), value: 0 }
        2. FloatVariableAdd { variable: LongtermAccessFloat (0x5b), value: LongtermAccessFloat (0x5a) }
      2. else
        1. if ((LongtermAccessFloat (0x5a) GreaterThanOrEqual scalar(0)))
          1. FloatVariableAdd { variable: LongtermAccessFloat (0x5b), value: LongtermAccessFloat (0x5a) }
        2. else
      3. else
        1. if ((LongtermAccessFloat (0x5a) LessThan LongtermAccessFloat (0x5b)))
          1. if ((LongtermAccessFloat (0x5b) LessThan scalar(0)))
            1. FloatVariableSet { variable: LongtermAccessFloat (0x5b), value: 0 }
            2. FloatVariableAdd { variable: LongtermAccessFloat (0x5b), value: LongtermAccessFloat (0x5a) }
          2. else
            1. if ((LongtermAccessFloat (0x5a) LessThan scalar(0)))
              1. FloatVariableAdd { variable: LongtermAccessFloat (0x5b), value: LongtermAccessFloat (0x5a) }
            2. else
        2. FloatVariableMultiply { variable: LongtermAccessFloat (0x60), value: 0.98 }
        3. SetOrAddVelocity(SetOrAddVelocity { x_vel: 0.0, y_vel: 0.0, x_set: false, y_set: true })
        4. AddVelocity { x_vel: Variable(LongtermAccessFloat(Address(91))), y_vel: Variable(LongtermAccessFloat(Address(96))) }
        5. FloatVariableMultiply { variable: LongtermAccessFloat (0x5a), value: 0.9 }
        6. FloatVariableMultiply { variable: LongtermAccessFloat (0x5b), value: 0.9 }
        7. if (not(ButtonHeld value(1)))
          1. if ((InternalConstantInt(ControlStickXAxisRelative) LessThan scalar(0)))
            1. ReverseDirection
          2. FloatVariableSet { variable: LongtermAccessFloat (0x5f), value: 1 }
          3. UnknownEvent { namespace: 0x0, code: 0x6, unk1: 0x0, arguments: [] }
        8. if ((InternalConstantInt(CurrentFrame) GreaterThanOrEqual scalar(123)))
          1. if ((InternalConstantInt(ControlStickXAxisRelative) LessThan scalar(0)))
            1. ReverseDirection
          2. FloatVariableSet { variable: LongtermAccessFloat (0x5f), value: 1 }
          3. UnknownEvent { namespace: 0x0, code: 0x6, unk1: 0x0, arguments: [] }
        9. SyncWait(1.0)