Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Any way to add vermin-fish after embark?  (Read 2443 times)

feelotraveller

  • Bay Watcher
  • (y-sqrt{|x|})^2+x^2=1
    • View Profile
Any way to add vermin-fish after embark?
« on: March 16, 2020, 08:45:35 pm »

I believe I have been hit by this bug http://www.bay12games.com/dwarves/mantisbt/view.php?id=4500 on a tropical lake embark.  Unfortunately none of the dozen plus murky pools have any fish either, nor the caverns.  Is there any way to add vermin-fish to my fortress (post-embark)?  I was looking forward to a fishing industry and had planned for such... argh!  Using dfhack region-pops has only mussels listed for the biome (innumerable/aquatic) but I have no brook/river and the lake is not producing any.

Or is it game-breaking bug re-embark time again?
Logged

delphonso

  • Bay Watcher
  • menaces with spikes of pine
    • View Profile
Re: Any way to add vermin-fish after embark?
« Reply #1 on: March 17, 2020, 12:49:33 am »

I'm no expert on DF hack, but in the base game, you're boned. You can trade for fish, but that's about all.

PatrikLundell

  • Bay Watcher
    • View Profile
Re: Any way to add vermin-fish after embark?
« Reply #2 on: March 17, 2020, 02:57:17 am »

My past (probably 0.40.24) attempts at hacking populations post embark weren't encouraging. It was possible to add grass to the grass structure, but adding plants seemed to have no effect. I was able to REPLACE one plant for another, though, so you might try that and cross your fingers.

However, vermin fish seems to be poorly understood in general, and I don't think it's known where DF stores info about stocks for murky pools and cavern lakes, for instance.
Logged

feelotraveller

  • Bay Watcher
  • (y-sqrt{|x|})^2+x^2=1
    • View Profile
Re: Any way to add vermin-fish after embark?
« Reply #3 on: March 17, 2020, 03:24:24 pm »

Ah, okay.  I was assuming region-pops displayed the (potential) stocks all possible creatures for the current biome.

Went to check that assumption but then made the surprising discovery that I have not had a fortress catch anything but mussels (out of brooks/rivers) for at least a couple of real world years.  Presumably embarking on the tropical/temperate borderline has contributed to this.  Still it seems bugged as hell.

So on the chance that it might be possible I made an artificial pond to hopefully spawn in pond turtles but after 3-4 months and no success, um, shit happened.  Anyone know how long it should take for pond-turtles to appear if they are going too?
Logged

PatrikLundell

  • Bay Watcher
    • View Profile
Re: Any way to add vermin-fish after embark?
« Reply #4 on: March 17, 2020, 05:34:22 pm »

It may well be that df.global.world.populations (which is what region-pops looks at, unless I'm mistaken) does contain all stocks, but it does not contain info on which body of water is depleted or not. Also, the structure contains everything (on the surface) in a 7*7 world tile grid centered at the embark for some reason. I can see some migration of animals from a couple of world tiles away as long as biomes permit, but not plants, and I don't think vermin moves.

You could try to replace the index for an animal you don't care about with a vermin one you'd want for the embark's world tile and see what happens, but I suspect it won't work: I'd guess the body of water tile would have to be updated as well. You might try to replace the mussels as well/instead to see what happens: if you're lucky the unidentified pool/map block relation is by position rather than race.
Logged

feelotraveller

  • Bay Watcher
  • (y-sqrt{|x|})^2+x^2=1
    • View Profile
Re: Any way to add vermin-fish after embark?
« Reply #5 on: March 17, 2020, 09:13:40 pm »

My misunderstanding - it makes sense that in addition each body of water needs its stocks separately maintained.

At this point I think I will put this in the too hard (for me) basket -for too little return- but thanks for your input, it confirmed that I was not overlooking an easy remedy.
Logged

Quietust

  • Bay Watcher
  • Does not suffer fools gladly
    • View Profile
    • QMT Productions
Re: Any way to add vermin-fish after embark?
« Reply #6 on: March 18, 2020, 04:37:52 pm »

From what I recall from older versions, things like rivers and brooks (and cavern lakes) store animal populations within the map feature object, while all other tiles fetch from world.populations (and take the biome into account).

Edit: in the current version, it looks like feature populations also get added to world.populations, since the fishing code seems to read from that list exclusively.
« Last Edit: March 18, 2020, 06:18:47 pm by Quietust »
Logged
P.S. If you don't get this note, let me know and I'll write you another.
It's amazing how dwarves can make a stack of bones completely waterproof and magmaproof.
It's amazing how they can make an entire floodgate out of the bones of 2 cats.

PatrikLundell

  • Bay Watcher
    • View Profile
Re: Any way to add vermin-fish after embark?
« Reply #7 on: March 19, 2020, 03:26:18 am »

Rivers have their own pops, as do caverns and the magma sea, but I'm not aware of any structures for cavern lakes specifically, although they ought to exist in one form of another, since lakes can get depleted independently of each other.

I haven't tried to correlate world.populations contents against rivers, but it would make sense to incorporate it there. The note about the fishing code is an interesting clue for further investigations.

Edit:
Tried a random tropical river embark, and found that yes, river creatures are included in the list as belonging to the river "feature". Furthermore, I found that the lungfish I see are tagged as Vermin_Grounder, but not Vermin_Fish, and the same goes for the Guppy that's supposed to be there (which makes sense given their size), while mussels are Vermin_Fish, initially undiscovered (and unlisted by "region-pops list", but discovered (and listed) once some had been caught.  Pond Turtles are listed by region-pops, but I doubt I have any at embark, as all the pools are dried out.

Another tropical embark, this time a lake: The biome for the lake lists mussels, but world.populations only has a single entry for mussels for the embark tile, and that's for the river. There's a bunch of aquatic vermin in the lake, but none defined as Vermin_Fish (axolotl, Clown Loach, Banded Knifefish, and others I haven't bothered to identify).

OK, something that's good news: I hacked the race entry for FISH_KNIFEFISH_BANDED for the lake and world tile (there's one for the river as well) to be 514 instead  (Pond Turtle), and I've seen a couple of pond turtles in the lake. It took a season for the 0 fishing zone tile to reset and some more time for the fisherdorf to get fishing, but I saw a pile of pond turtles caught. Thus, it seems replacement hacking works with vermin fish.

Thus, two issues seen:
- Mussels didn't appear as a general entry, and so didn't appear in the lake as they should.
- Most fish vermin I've seen are not classified as Vermin_Fish, and so, presumably, can't be caught by fishing.

Edit2: Checking the creature flags, there is only one Vermin_Fish possible for the three tropical pool biomes: Pond Turtle, and one for the three tropical lake biomes: Mussel, with tropical rivers also supporting Mussels only.

Edit3: Embarked in random tropical area with no pools and no vermin_fish except mussels in a river somewhere else. Replaced Mosquito with Pond Turtle in populations (leaving the now incorrect reference back to world pop unchanged), and dug down, creating an artificial pond in a light aquifer, and saw a pond turtle there with 1/7 water depth at most in the "pond".

Edit 4:
Here's a list of all Vermin_Fish with their temperature zones and habitats

CUTTLEFISH Temperature: Arctic Temperate Tropical, Habitat: Ocean
NAUTILUS Temperature: Arctic Temperate Tropical, Habitat: Ocean
POND_TURTLE Temperature: Temperate Tropical, Habitat: Pool
MUSSEL Temperature: Arctic Temperate Tropical, Habitat: Ocean Lake River
OYSTER Temperature: Arctic Temperate Tropical, Habitat: Ocean
FISH_SALMON Temperature: Temperate, Habitat: Ocean River
FISH_CLOWNFISH Temperature: Tropical, Habitat: Ocean
FISH_HAGFISH Temperature: Arctic Temperate, Habitat: Ocean
FISH_LAMPREY_BROOK Temperature: Temperate, Habitat: Ocean River
FISH_RAY_BAT Temperature: Temperate Tropical, Habitat: Ocean
FISH_RAY_THORNBACK Temperature: Temperate Tropical, Habitat: Ocean
FISH_RATFISH_SPOTTED Temperature: Temperate, Habitat: Ocean
FISH_HERRING Temperature: Arctic Temperate, Habitat: Ocean
FISH_SHAD Temperature: Arctic Temperate, Habitat: Ocean River
FISH_ANCHOVY Temperature: Temperate, Habitat: Ocean
FISH_TROUT_STEELHEAD Temperature: Arctic Temperate, Habitat: Ocean River
FISH_HAKE Temperature: Arctic Temperate, Habitat: Ocean
FISH_SOLE Temperature: Arctic Temperate, Habitat: Ocean
FISH_FLOUNDER Temperature: Temperate, Habitat: Ocean
FISH_MACKEREL Temperature: Arctic Temperate, Habitat: Ocean
SQUID Temperature: Arctic Temperate Tropical, Habitat: Ocean
FISH_BULLHEAD_BROWN Temperature: Temperate, Habitat: Lake
FISH_BULLHEAD_YELLOW Temperature: Temperate, Habitat: Lake
FISH_BULLHEAD_BLACK Temperature: Temperate, Habitat: Lake
FISH_CHAR Temperature: Temperate, Habitat: Lake River
FISH_TROUT_RAINBOW Temperature: Temperate, Habitat: Lake River
FISH_PERCH Temperature: Temperate, Habitat: Lake River

FISH_CAVE Temperature:, Habitat: Subterranean
LOBSTER_CAVE Temperature:, Habitat: Subterranean

So, the only thing you can get in pools is pond turtles (apart from possible river spill overs), and the only thing you can get in tropical lakes and rivers is mussels (as stated above). Temperate biomes have some options for lakes and rivers, and all the oceans temperatures have multiple options as well. Cavern lakes have two options.
« Last Edit: March 20, 2020, 03:53:11 am by PatrikLundell »
Logged