Program: 164113
Project: 164113
Buggy source:
public static void loadGame(String fileName,boolean fullLoad) throws IOException {
  Bundle bundle=gameBundle(fileName);
  version=bundle.getInt(VERSION);
  Generator.reset();
  Actor.restoreNextID(bundle);
  quickslot.reset();
  QuickSlotButton.reset();
  Dungeon.challenges=bundle.getInt(CHALLENGES);
  Dungeon.level=null;
  Dungeon.depth=-1;
  Scroll.restore(bundle);
  Potion.restore(bundle);
  Ring.restore(bundle);
  quickslot.restorePlaceholders(bundle);
  if (fullLoad) {
    transmutation=bundle.getInt(WT);
    int[] dropValues=bundle.getIntArray(LIMDROPS);
    for (    limitedDrops value : limitedDrops.values())     value.count=value.ordinal() < dropValues.length ? dropValues[value.ordinal()] : 0;
    chapters=new HashSet<Integer>();
    int ids[]=bundle.getIntArray(CHAPTERS);
    if (ids != null) {
      for (      int id : ids) {
        chapters.add(id);
      }
    }
    Bundle quests=bundle.getBundle(QUESTS);
    if (!quests.isNull()) {
      Ghost.Quest.restoreFromBundle(quests);
      Wandmaker.Quest.restoreFromBundle(quests);
      Blacksmith.Quest.restoreFromBundle(quests);
      Imp.Quest.restoreFromBundle(quests);
    }
 else {
      Ghost.Quest.reset();
      Wandmaker.Quest.reset();
      Blacksmith.Quest.reset();
      Imp.Quest.reset();
    }
    Room.restoreRoomsFromBundle(bundle);
  }
  Bundle badges=bundle.getBundle(BADGES);
  if (!badges.isNull()) {
    Badges.loadLocal(badges);
  }
 else {
    Badges.reset();
  }
  hero=null;
  hero=(Hero)bundle.get(HERO);
  gold=bundle.getInt(GOLD);
  depth=bundle.getInt(DEPTH);
  Statistics.restoreFromBundle(bundle);
  Journal.restoreFromBundle(bundle);
  Generator.restoreFromBundle(bundle);
  droppedItems=new SparseArray<ArrayList<Item>>();
  for (int i=2; i <= Statistics.deepestFloor + 1; i++) {
    ArrayList<Item> dropped=new ArrayList<Item>();
    for (    Bundlable b : bundle.getCollection(String.format(DROPPED,i))) {
      dropped.add((Item)b);
    }
    if (!dropped.isEmpty()) {
      droppedItems.put(i,dropped);
    }
  }
}

Fixed version (ground truth):
public static void loadGame(String fileName,boolean fullLoad) throws IOException {
  Bundle bundle=gameBundle(fileName);
  version=bundle.getInt(VERSION);
  Generator.reset();
  Actor.restoreNextID(bundle);
  quickslot.reset();
  QuickSlotButton.reset();
  Dungeon.challenges=bundle.getInt(CHALLENGES);
  Dungeon.level=null;
  Dungeon.depth=-1;
  Scroll.restore(bundle);
  Potion.restore(bundle);
  Ring.restore(bundle);
  quickslot.restorePlaceholders(bundle);
  if (fullLoad) {
    transmutation=bundle.getInt(WT);
    int[] dropValues=bundle.getIntArray(LIMDROPS);
    for (    limitedDrops value : limitedDrops.values())     value.count=value.ordinal() < dropValues.length ? dropValues[value.ordinal()] : 0;
    chapters=new HashSet<Integer>();
    int ids[]=bundle.getIntArray(CHAPTERS);
    if (ids != null) {
      for (      int id : ids) {
        chapters.add(id);
      }
    }
    Bundle quests=bundle.getBundle(QUESTS);
    if (!quests.isNull()) {
      Ghost.Quest.restoreFromBundle(quests);
      Wandmaker.Quest.restoreFromBundle(quests);
      Blacksmith.Quest.restoreFromBundle(quests);
      Imp.Quest.restoreFromBundle(quests);
    }
 else {
      Ghost.Quest.reset();
      Wandmaker.Quest.reset();
      Blacksmith.Quest.reset();
      Imp.Quest.reset();
    }
    Room.restoreRoomsFromBundle(bundle);
  }
  Bundle badges=bundle.getBundle(BADGES);
  if (!badges.isNull()) {
    Badges.loadLocal(badges);
  }
 else {
    Badges.reset();
  }
  hero=null;
  hero=(Hero)bundle.get(HERO);
  gold=bundle.getInt(GOLD);
  depth=bundle.getInt(DEPTH);
  Statistics.restoreFromBundle(bundle);
  Journal.restoreFromBundle(bundle);
  Generator.restoreFromBundle(bundle);
  droppedItems=new SparseArray<ArrayList<Item>>();
  for (int i=2; i <= Statistics.deepestFloor + 1; i++) {
    ArrayList<Item> dropped=new ArrayList<Item>();
    for (    Bundlable b : bundle.getCollection(Messages.format(DROPPED,i))) {
      dropped.add((Item)b);
    }
    if (!dropped.isEmpty()) {
      droppedItems.put(i,dropped);
    }
  }
}