Boats and collisions

I was looking for something to do, and decided that since my survivor is living next to a river, he should build a boat and go exploring.

Unfortunately, exploring by boat is too dangerous. It’s not the zombies, it’s colliding with fish (hidden in deep water) at 50 mph that destroys the boat, hurts my poor survivor, and leaves him rapidly sinking in the middle of the deep water, too far from shore to swim home safely.

Where in the code would I have to go to change vehicle collisions in deep water so that fish get pushed out of the way? I’m okay with colliding with the shore and bridges (well, bridges are annoying, but I get why they can’t be fixed without full z-level support), but I’d like to not destroy my boat by hitting fishes and zombies.

vehicle.cpp
vehicle::collision
But pushing out of the way isn’t really that easy. You’d need to figure out where is the “out of the way” first, how to push things cleanly and what to do if the push can’t happen (though this could just default to regular collision).

Even then, should they be pushed or pulped when hitting them at 50 MPH? Unless it was a really large fish (or weak boat) the damage to the boat should generally be minimal.