Largely ported from the work done at Baystation in Baystation12#17460 and later commits.
- Shuttles no longer require a separate area for each location they jump to.
Instead destinations are indicated by landmark objects, which are not necessarily exclusive to that shuttle.
This means that more than one shuttle could use the same docking port (not at the same time of course).
- Enhanced shuttle control computers to use nanoui if they didn't.
- Organizes shuttle datum code a bit better so there is less re-inventing the wheel in subtypes.
- Allows the possibility of shuttles (or destinations) that start on late-loaded maps.
- Deprecate the "extra" shuttle areas that are no longer needed and update shuttle areas in unit tests
This all required a bit of infrastructure improvements.
- ChangeArea proc, for changing the area of a turf.
- Fixed lighting overlays actually being able to be destroyed.
- Added a few utility macros and procs.
- Added "turf translation" procs which are like move_contents_to but more flexible.
(cherry picked from commit c837078105)
Contents of closets (as viewed by ghosts) are now less ugly and easier to read.
- Adds reusable option to have english_lists count the contents and
display them (optionally with icons and specific determiners).
- Due to backwards compatibility these options are NOT available for
non-countable lists; this was originally planned, but it's not easily
possible unless all usage of english_list is revised.
- Moves the ghost examine code to proc/examine where it belongs.
- Ghosts now also see empty/full messages like characters standing
close do.
- The contents list for closets now shows number of items (if multiple)
and their icons (wherever possible).
- The list no longer shows unnecessary determiners ("the" before every
single item).
- Old usage of english_list still uses the old code. New code could
change order of the strings where it matters (in weather reports or
camera network assembly code, for example), so it cannot be used.