changes:
rscadd: "Ported a new chat system, Goonchat, that allows for cool things like changing font style, size, spacing, highlighting up to 5 strings in the chat, and DARK MODE."
rscadd: "Repeated chat messages can now get compacted. You can disable this in goonchat settings."
rscadd: "You can change icon style to any font on your system."
tweak: "The game window has been altered a bit to adjust for this."
rscdel: "Removed skin style prefs as they are no longer used."
This PR will lead us towards the Promised Day, for in its wake there shall be much celebration and ecstasy as this world becomes a world suitable for developer hegemony. The first strike is thusly;
All << is converted into to_chat().
Okay.
So someone decided to strip the quotes from assoc lists. Which means they're no longer returned by default. So I stacked that condition onto the reader. Not sure if this is a good solution, but it works. The only thing to do other than this would be to redo the FSM to be a bit less stacked onto.
Map loading was to blame.
Basically. All vending machines which had custom instances defined in maps would have the associative list keys (code expects paths) loaded as strings. This traced back to DMMS casting all associate list keys into strings. The fix is to make list keys also run through the type inferring system, same as with values. The inferring system was updated with two special cases:
Keys cannot be numbers, this will otherwise break things.
If no valid type is given, instead of returning null, the original string is returned.
This will ensure that nothing that's been fine thus far breaks.
changes:
Maps are no longer compiled in, instead loaded directly from the DMMs at runtime.
Z level defines have been moved from the config to map datums.
Unit tests now use typecaches.
DMMS now actually works.
DMMS has been updated slightly.
DMMS is now capable of loading simple lists of non-text types.
DMMS is now faster when loading many types without mapped in attributes and when loading area instances.
Asteroid generation is now defined on the map datum instead of being hard-coded in SSasteroid.
Holodeck presets are now defined on the map datum.
Atmos machinery now uses Initialize().
Updates the DMM Suite from /tg/ upstream, adding the ability to load tgm format maps, tick-checks, and better compatibility with SSatoms / Initialize().
Also adds some framework for random ruin generation, though it is not functional yet.