After a long time looking the code I find this:
encounterMap.put(1, (Object)new Array((Object[])new EncounterCode[]{WERESLUT, HARPY, SLIME, SOLICITATION, BRIGAND, CENTAUR, GOBLIN, GOBLIN_MALE, FOOD_CACHE, GOLD_CACHE, DAMAGE_TRAP, ANAL_TRAP, HUNGER_CHARM}));
encounterMap.put(2, (Object)new Array((Object[])new EncounterCode[]{WERESLUT, HARPY, BRIGAND, DRYAD, CENTAUR, GOBLIN, GOBLIN_MALE, OGRE, HUNGER_CHARM, BEASTMISTRESS, GOLEM, GHOST, GOLD_CACHE, FOOD_CACHE, DAMAGE_TRAP, ANAL_TRAP, FOOD_CART}));
encounterMap.put(3, (Object)new Array((Object[])new EncounterCode[]{OGRE, WASP, WERESLUT_QUICKSHOT, BEASTMISTRESS, DULLAHAN, HEALING_POND, GOLEM, GHOST, NAGA, BRIGAND_LVL_2, BRIGAND_THIEF, HARPY_DIVEBOMBER, FOOD_CACHE, DAMAGE_TRAP, ANAL_TRAP, SCOUT}));
encounterMap.put(4, (Object)new Array((Object[])new EncounterCode[]{WASP, WERESLUT_QUICKSHOT, BEASTMISTRESS, DULLAHAN, HEALING_POND, GHOST, NAGA, BRIGAND_LVL_2, BRIGAND_THIEF, HARPY_DIVEBOMBER, CULTIST, MERRYBELLE, DOPPELGANGER, VAMPIRE, FIRE_ELEMENTAL, FOOD_CACHE, ICE_CREAM, DAMAGE_TRAP, ANAL_TRAP, SCOUT}));
So, the ice cream can be only found in the last part of the map...