Program: 20007
Project: 20007
Buggy source:
/** 
 * P�ivitt�� vihollisten aloituspisteet kameran koordinaattien perusteella.
 */
@Override protected void updateSpawnPoints(){
  spawnPoints[1][0][0]=-halfOfScreenWidth + camera.x;
  spawnPoints[1][0][1]=camera.y;
  spawnPoints[1][1][0]=-halfOfScreenWidth + camera.x;
  spawnPoints[1][1][1]=camera.y + 128;
  spawnPoints[1][2][0]=-halfOfScreenWidth + camera.x;
  spawnPoints[1][2][1]=camera.y - 128;
  spawnPoints[2][0][0]=-halfOfScreenWidth + camera.x;
  spawnPoints[2][0][1]=halfOfScreenHeight + camera.y;
  spawnPoints[2][1][0]=-halfOfScreenWidth + camera.x + 64;
  spawnPoints[2][1][1]=halfOfScreenHeight + camera.y + 64;
  spawnPoints[2][2][0]=-halfOfScreenWidth + camera.x - 64;
  spawnPoints[2][2][1]=halfOfScreenHeight + camera.y - 64;
  spawnPoints[3][0][0]=camera.x;
  spawnPoints[3][0][1]=halfOfScreenHeight + camera.y;
  spawnPoints[3][1][0]=camera.x + 128;
  spawnPoints[3][1][1]=halfOfScreenHeight + camera.y;
  spawnPoints[3][2][0]=camera.x - 128;
  spawnPoints[3][2][1]=halfOfScreenHeight + camera.y;
  spawnPoints[4][0][0]=halfOfScreenWidth + camera.x;
  spawnPoints[3][0][1]=halfOfScreenHeight + camera.y;
  spawnPoints[4][1][0]=halfOfScreenWidth + camera.x + 64;
  spawnPoints[3][1][1]=halfOfScreenHeight + camera.y - 64;
  spawnPoints[4][2][0]=halfOfScreenWidth + camera.x - 64;
  spawnPoints[3][2][1]=halfOfScreenHeight + camera.y + 64;
  spawnPoints[5][0][0]=halfOfScreenWidth + camera.x;
  spawnPoints[4][0][1]=0 + camera.y;
  spawnPoints[5][1][0]=halfOfScreenWidth + camera.x;
  spawnPoints[4][1][1]=0 + camera.y + 128;
  spawnPoints[5][2][0]=halfOfScreenWidth + camera.x;
  spawnPoints[4][2][1]=0 + camera.y - 128;
  spawnPoints[6][0][0]=halfOfScreenWidth + camera.x;
  spawnPoints[5][0][1]=-halfOfScreenHeight + camera.y;
  spawnPoints[6][1][0]=halfOfScreenWidth + camera.x + 64;
  spawnPoints[5][1][1]=-halfOfScreenHeight + camera.y + 64;
  spawnPoints[6][2][0]=halfOfScreenWidth + camera.x - 64;
  spawnPoints[5][2][1]=-halfOfScreenHeight + camera.y - 64;
  spawnPoints[7][0][0]=camera.x;
  spawnPoints[7][0][1]=-halfOfScreenHeight + camera.y;
  spawnPoints[7][1][0]=camera.x + 128;
  spawnPoints[7][1][1]=-halfOfScreenHeight + camera.y;
  spawnPoints[7][2][0]=camera.x - 128;
  spawnPoints[7][2][1]=-halfOfScreenHeight + camera.y;
  spawnPoints[8][0][0]=-halfOfScreenWidth + camera.x;
  spawnPoints[8][0][1]=-halfOfScreenHeight + camera.y;
  spawnPoints[8][1][0]=-halfOfScreenWidth + camera.x + 64;
  spawnPoints[8][1][1]=-halfOfScreenHeight + camera.y - 64;
  spawnPoints[8][2][0]=-halfOfScreenWidth + camera.x - 64;
  spawnPoints[8][2][1]=-halfOfScreenHeight + camera.y + 64;
}

Fixed version (ground truth):
/** 
 * P�ivitt�� vihollisten aloituspisteet kameran koordinaattien perusteella.
 */
@Override protected void updateSpawnPoints(){
  spawnPoints[1][0][0]=-halfOfScreenWidth + camera.x;
  spawnPoints[1][0][1]=camera.y;
  spawnPoints[1][1][0]=-halfOfScreenWidth + camera.x;
  spawnPoints[1][1][1]=(int)(camera.y + 128 * Options.scale);
  spawnPoints[1][2][0]=-halfOfScreenWidth + camera.x;
  spawnPoints[1][2][1]=(int)(camera.y - 128 * Options.scale);
  spawnPoints[2][0][0]=-halfOfScreenWidth + camera.x;
  spawnPoints[2][0][1]=halfOfScreenHeight + camera.y;
  spawnPoints[2][1][0]=(int)(-halfOfScreenWidth + camera.x + 64 * Options.scale);
  spawnPoints[2][1][1]=(int)(halfOfScreenHeight + camera.y + 64 * Options.scale);
  spawnPoints[2][2][0]=(int)(-halfOfScreenWidth + camera.x - 64 * Options.scale);
  spawnPoints[2][2][1]=(int)(halfOfScreenHeight + camera.y - 64 * Options.scale);
  spawnPoints[3][0][0]=camera.x;
  spawnPoints[3][0][1]=halfOfScreenHeight + camera.y;
  spawnPoints[3][1][0]=(int)(camera.x + 128 * Options.scale);
  spawnPoints[3][1][1]=halfOfScreenHeight + camera.y;
  spawnPoints[3][2][0]=(int)(camera.x - 128 * Options.scale);
  spawnPoints[3][2][1]=halfOfScreenHeight + camera.y;
  spawnPoints[4][0][0]=halfOfScreenWidth + camera.x;
  spawnPoints[3][0][1]=halfOfScreenHeight + camera.y;
  spawnPoints[4][1][0]=(int)(halfOfScreenWidth + camera.x + 64 * Options.scale);
  spawnPoints[3][1][1]=(int)(halfOfScreenHeight + camera.y - 64 * Options.scale);
  spawnPoints[4][2][0]=(int)(halfOfScreenWidth + camera.x - 64 * Options.scale);
  spawnPoints[3][2][1]=(int)(halfOfScreenHeight + camera.y + 64 * Options.scale);
  spawnPoints[5][0][0]=halfOfScreenWidth + camera.x;
  spawnPoints[4][0][1]=0 + camera.y;
  spawnPoints[5][1][0]=halfOfScreenWidth + camera.x;
  spawnPoints[4][1][1]=(int)(0 + camera.y + 128 * Options.scale);
  spawnPoints[5][2][0]=halfOfScreenWidth + camera.x;
  spawnPoints[4][2][1]=(int)(0 + camera.y - 128 * Options.scale);
  spawnPoints[6][0][0]=halfOfScreenWidth + camera.x;
  spawnPoints[5][0][1]=-halfOfScreenHeight + camera.y;
  spawnPoints[6][1][0]=(int)(halfOfScreenWidth + camera.x + 64 * Options.scale);
  spawnPoints[5][1][1]=(int)(-halfOfScreenHeight + camera.y + 64 * Options.scale);
  spawnPoints[6][2][0]=(int)(halfOfScreenWidth + camera.x - 64 * Options.scale);
  spawnPoints[5][2][1]=(int)(-halfOfScreenHeight + camera.y - 64 * Options.scale);
  spawnPoints[7][0][0]=camera.x;
  spawnPoints[7][0][1]=-halfOfScreenHeight + camera.y;
  spawnPoints[7][1][0]=(int)(camera.x + 128 * Options.scale);
  spawnPoints[7][1][1]=-halfOfScreenHeight + camera.y;
  spawnPoints[7][2][0]=(int)(camera.x - 128 * Options.scale);
  spawnPoints[7][2][1]=-halfOfScreenHeight + camera.y;
  spawnPoints[8][0][0]=-halfOfScreenWidth + camera.x;
  spawnPoints[8][0][1]=-halfOfScreenHeight + camera.y;
  spawnPoints[8][1][0]=(int)(-halfOfScreenWidth + camera.x + 64 * Options.scale);
  spawnPoints[8][1][1]=(int)(-halfOfScreenHeight + camera.y - 64 * Options.scale);
  spawnPoints[8][2][0]=(int)(-halfOfScreenWidth + camera.x - 64 * Options.scale);
  spawnPoints[8][2][1]=(int)(-halfOfScreenHeight + camera.y + 64 * Options.scale);
}