Cataclysm-DDA
Cataclysm-DDA copied to clipboard
Move ACT_VEHICLE handler to vehicle_activity_actor
Summary
Infrastructure "move ACT_VEHICLE handler to vehicle_activity_actor"
Purpose of change
Update legacy activities.
Describe the solution
By commit:
- Refactor
veh_interact::ddtoveh_interact::cursor_vp_mount. Note to contributors: avoid using two-letter variables for very vital data, it took me hours to figure out what this actually did. - Convert
chararguments for ACT_VEHICLE sub-activity to enum. Note to contributors: don't use char when you could use an enum. - See title, all the work that involves the actual migration of the handler to the actor. This was a lot; vehicle_activity_actor is called with a ton of parameters from four different locations.
Describe alternatives you've considered
I added a TODO to split up vehicle_activity_actor because it's bloated, probably into something like this:
- VEHICLE_INSTALL
- VEHICLE_REMOVE
- VEHICLE_REFILL_SIPHON
- VEHICLE_REPAIR
- VEHICLE_DECONSTRUCTION
- VEHICLE_UNLOAD_SOLID_FUEL (?)
Also, actions in the vehicle examine menu like label and shape shouldn't be activities at all.
Testing
Tested and confirmed the following vehicle actions work (from the examine vehicle menu):
- install, repair, mend, refill, remove, siphon, unload, crew, shape, rename, label
Also did the usual:
- Ordered an NPC to complete Vehicle Deconstruction and Repair multi-activity successfully.
- Ordered an NPC to do Vehicle Deconstruction in a 0.H save, confirmed activity was canceled when loaded with these changes.
- Confirmed vehicle activity (de)serialized correctly with NPC still deconstructing for correct duration after a save/load
Additional context
Hopefully I haven't missed anything, the scope of what the vehicle handler touches is large