Realized I didn't think this one through all too well after all since this would only affect actually hitting that reset slot button. Probably won't fix the connection issues due to being irrelevant outside slot resets, but you know how it is with spaghetti
I managed to trigger the most likely circumstances leading to the loss of languages on character and found out it happens whenever you join the game without manually loading a character from your roster. Looking into this, I found a racent-ish change that looks like it removed a key line required in language preservation from the automatic character loading (such as what happens when you join the game witohut opening the char setup), and that very same line was still present in the manual character slot loading code, which would explain why it isn't always broken, and why it in my case was broken exceptionally rarely due to my indecisiveness and full roster usually taking up its sweet time before I hit the join button.
- Instead of using expensive getFlatIcon() calls, character previews are now shown using screen objects in a second map window.
- Edited skin to add a named window for preferences setup that contains a browser plus a new map window to show the previews.
- Mannequins are still generated the same way, but now a MA is applied to four screen objects which are shown in the second map window.
- The screen objects are deleted on close of the preferences window. So we do make sure to close it when spawning.
Adds client verb to access the character setup screen from anywhere.
Moves name validation to species level, making it possible for IPCs to have numbers in their name.
Adds gender validation, also adds support to add neuter/plural genders in the future if ever desired.
Now sanitizes preferences before applying them to a mob.
Fixes#11433.
(cherry picked from commit e40246e9dfc9feb28b8c5a0a7ce765fd063c4f7e)
Begins breaking down the large character setup in more manageable modules, allowing for easier additions, edits, and removals.
(cherry picked from commit e116721977)
Conflicts:
code/modules/client/preferences.dm
code/modules/client/preferences_savefile.dm
polaris.dme
Makes radio and language key overlaps possible.
It is possible to configure the default language keys server side.
Pending: The possibility for players to configure their own language keys.
Adds ability to wear female underwear as male and vice versa.
Changes 'underwear'/'undershirt' vars to hold iconstate instead of esoteric dances with array indexes.