Program: 19940
Project: 19940
Buggy source:
/** 
 * P�ivitt�� liikkumisen ja k��ntymisen.
 * @param _time T�m�n hetkinen aika
 */
public void updateMovement(long _time){
  if (_time - movementTime >= movementDelay) {
    movementTime=_time;
    x+=Math.cos((direction * Math.PI) / 180) * movementSpeed * Options.scaleX;
    y+=Math.sin((direction * Math.PI) / 180) * movementSpeed * Options.scaleY;
    movementDelay-=movementAcceleration;
    if (movementDelay < 0) {
      movementDelay=0;
    }
 else     if (movementDelay > 200) {
      setMovementDelay(1.0f);
      setMovementSpeed(0.0f);
      movementAcceleration=0;
    }
    if (movementSpeed > 0 && !(this instanceof AbstractProjectile)) {
      EffectManager.showTrailEffect(this);
    }
  }
  if (_time - turningTime >= turningDelay) {
    turningTime=_time;
    if (turningDirection == TO_THE_LEFT) {
      direction+=turningSpeed;
      if (direction == 360) {
        direction=0;
      }
    }
 else     if (turningDirection == TO_THE_RIGHT) {
      direction-=turningSpeed;
      if (direction < 0) {
        direction=359;
      }
    }
    turningDelay-=turningAcceleration;
    if (turningDelay < 0) {
      turningDelay=0;
    }
    if (facingTurningDirection == TO_THE_LEFT) {
      facingDirection+=facingTurningSpeed;
      if (facingDirection == 360) {
        facingDirection=0;
      }
    }
 else     if (turningDirection == TO_THE_RIGHT) {
      facingDirection-=facingTurningSpeed;
      if (facingDirection < 0) {
        facingDirection=359;
      }
    }
    facingTurningDelay-=facingTurningAcceleration;
    if (facingTurningDelay < 0) {
      facingTurningDelay=0;
    }
  }
}

Fixed version (ground truth):
/** 
 * P�ivitt�� liikkumisen ja k��ntymisen.
 * @param _time T�m�n hetkinen aika
 */
public void updateMovement(long _time){
  if (_time - movementTime >= movementDelay) {
    movementTime=_time;
    x+=Math.cos((direction * Math.PI) / 180) * movementSpeed * Options.scaleX;
    y+=Math.sin((direction * Math.PI) / 180) * movementSpeed * Options.scaleY;
    movementDelay-=movementAcceleration;
    if (movementDelay < 0) {
      movementDelay=0;
    }
 else     if (movementDelay > 200) {
      setMovementDelay(1.0f);
      setMovementSpeed(0.0f);
      movementAcceleration=0;
    }
    if (movementSpeed > 0 && !(this instanceof AbstractProjectile)) {
      EffectManager.showTrailEffect(this);
    }
  }
  if (_time - turningTime >= turningDelay) {
    turningTime=_time;
    if (turningDirection == TO_THE_LEFT) {
      direction+=turningSpeed;
      if (direction == 360) {
        direction=0;
      }
    }
 else     if (turningDirection == TO_THE_RIGHT) {
      direction-=turningSpeed;
      if (direction < 0) {
        direction=360 + direction;
      }
    }
    turningDelay-=turningAcceleration;
    if (turningDelay < 0) {
      turningDelay=0;
    }
    if (facingTurningDirection == TO_THE_LEFT) {
      facingDirection+=facingTurningSpeed;
      if (facingDirection == 360) {
        facingDirection=0;
      }
    }
 else     if (turningDirection == TO_THE_RIGHT) {
      facingDirection-=facingTurningSpeed;
      if (facingDirection < 0) {
        facingDirection=359;
      }
    }
    facingTurningDelay-=facingTurningAcceleration;
    if (facingTurningDelay < 0) {
      facingTurningDelay=0;
    }
  }
}