Fix partial pickup veh

Ended up heavily restyling game::pickup, because it was a total mess.
Still needs to be completely redone, because it's unbelievably fragile, but that's not a task for right now.
The main thing is fixing #3822