P+ - Sonic - Common Subroutine 0x805440c0

  1. FloatVariableSet { variable: RandomAccessFloat(EnableTurnWhenBelowZero), value: InternalConstantInt(CharacterDirection) }
  2. if ((InternalConstantInt(PreviousAction) Equal scalar(33)))
    1. IntVariableIncrement { variable: LongtermAccessFloat (0x51) }
    2. FloatVariableSet { variable: RandomAccessFloat (0x9), value: InternalConstantInt(VerticalCharacterVelocity) }
    3. loop Infinite times:
      1. if ((RandomAccessInt (0x7) Equal LongtermAccessInt (0x51)))
        1. UnknownEvent { namespace: 0x0, code: 0x6, unk1: 0x0, arguments: [] }
      2. FloatVariableMultiply { variable: RandomAccessFloat (0x9), value: 0.9 }
      3. IntVariableIncrement { variable: RandomAccessFloat (0x7) }
    4. FloatVariableSubtract { variable: RandomAccessFloat (0x9), value: InternalConstantInt(VerticalCharacterVelocity) }
  3. if ((InternalConstantInt(PreviousAction) Equal scalar(33)))
    1. FloatVariableSet { variable: RandomAccessFloat (0x7), value: InternalConstantInt(HorizontalCharacterVelocity) }
    2. FloatVariableMultiply { variable: RandomAccessFloat (0x7), value: -0.75 }
    3. BoolVariableSetTrue { variable: LongtermAccessBool(CanNotTeeter) }
    4. AddVelocity { x_vel: Variable(RandomAccessFloat(Address(7))), y_vel: Variable(RandomAccessFloat(Address(9))) }
    5. BoolVariableSetFalse { variable: LongtermAccessBool(CanNotTeeter) }