* Ports #9294 and #9322 from VG: 'Yi' to Vox-pidgin and Framework for Icon-based Skin Tone (Feat. Vox) and Glasses/Goggles for Vox.
Both ported PRs by Intigracy.
Also adds all remaining in-use glasses/goggle sprites for Vox. I cleaned up the code a bit while I was in there. Otherwise, that's it.
Furthermore, randomizing skin tone doesn't seem to work for Vox despite their being specified in the conditional lists and s_tone being not null.
* Morph Support
* CMA Support
* Ports Intigracy's vgstation13/pull/9460, Noir Vision No Longer Greys Out HUD.
* Fixes Positioning of Vox Jensen Shades East+West facing Sprites.
Fixes Heist Goofery
Game-mode (not one-click antag) Heist tweaked and returned to working order now that I've found out how to test the actual game-mode (after temporarily adjusting the population requirement).
Vox Raiders won't spawn in with whatever socks were in their selected spawn-character's preferences anymore.
Additionally, the set_species proc now zeroes out skin tone if the species doesn't have skin tone to avoid goofing up the icons on initial generation.
Also condenses the code in preferences_setup character creation icon generation. Made it use the individual species' skin-tone handling procs instead of code snowflaked into preferences_setup.dm.
* No More Vox Tail Colours, but they can Colour Their Hair.
* Removes unneeded 'src's and retroactively prohibits colouring tails on species without HAS_SKIN_COLOR.
Colouration won't be applied to src's tail unless HAS_SKIN_COLOR is in
src's species bodyflags.
* Tidies up some Lists in CharPrefs and Retroactively Prohibits Vox Hair Colouration
* Reverts unnecessary commenting out of vox armalis post-spawn handling parent call.
* Adds Emerald and Azure Vox Skin Tones.
* Stealthy Wryn Typo Fixed.
* Greyscales Vox Head+Facial Hair and Adds More Default Colours in Species Definitions
* Gives Vox Raiders Default Hair Colour and Fixes Bug where Roundstart Raiders don't get Random Skin
- Adds blank icons with standardized timings for species tail wagging,
used in icon generation.
- Fixes tails overlapping arms/limbs + gloves, etc. when facing EAST or
WEST.
- Ensures tails will overlap stuff as normal only when facing NORTH so
as to avoid unwanted interference with the base sprite.
- Tails now appear in ID cards, overlaying things correctly.
- Tails now overlay and are overlaid by things correctly in preview
icons.
- Modifies the positioning of tail icon generation in the ID card
preview icon generation file.
- Modifies the positioning of tail icon generation in the player
preferences preview icon generation file.
- Breaks limb generation into its own layer, breaks tail generation into
a second layer that can be overlaid by limbs.
- TAIL_LAYER will now overlay the NORTH direction sprite of a tail now,
while TAIL_UNDERLIMBS_LAYER gets all remaining directions.
**AIMS TO DO THE FOLLOWING:**
- *ELIMINATE THE ISSUE IN #3183 WITH DUPLICATE TAIL ICON GENERATION*
- *ELIMINATE THE ISSUE IN #3183 WITH TAILS WAGGING TOO FAST/INCORRECTLY*
- *ELIMINATE THE ISSUE IN #3183 WITH BODY ICONS NOT RENDERING*
Missed a spot
Occurred when reformatting the code and reducing the number of pointless
variables
Missed a spot 2
Crash Fix
Fixes Spontaneous Tail Overlapping Limbs
Tiny Unathi Sprite Corrections
One pixel on the Unathi right arm east direction sprite was miscoloured
(used left arm west direction as a reference), and the animated Unathi
tails previously did not meet the body while naked-- appearing to float.
Fixes both
Finalizes Changelog
Cleans up Vox puke
Accommodates Admin Overrides to body_accessory Species Checks & Fix
Does the above
Elaborating on accommodation: Species getting body accessories that
wouldn't normally be getting body accessories will inherit the
Vulpkanin's default animation template as those are currently the only
tails we have to worry about right now
Elaborating on Fix: Adds a default animation template for Vulpkanin in
body_accessory as the animation timings for Vulpkanin tails there are
different from those in effects/species.dmi
Unathi Static Tail Fix
Adjusts north-direction Unathi static tail sprite, now attaches to the
body in the correct location.
This PR is now on Sale!
Significantly cheaper.
Now, it will only generate tail icons on a per-direction basis if the
user's species is flagged to have a tail that is overlapped by limbs
(TAIL_OVERLAPPED).
Otherwise, it just uses the traditional cheapo method of icon
generation.
This way, we have fixed wagging Voxtails at a lower cost.
Even Cheaper
If the user's species isn't flagged to have a tail that needs to be
overlapped by limbs, it won't divert limbs into their own layer as it's
unnecessary. Tested by spawning a member of every species, walking
around to see if there was any directional issues, wagging and *swagging
all tails-- all is still working as it should be.
Turns horns into head accessories, fixes some species checks, gets
Tajara and Vulpkanin into the mix, ensures the system cannot be
exploited, adds species-specific body markings for Tajara, Vulpkanin and
Unathi.
I'd missed this bit before where for the preview icon (only) it was
still using the skin colour to generate the horns. Fixed it up so the
preview icon is accurate.
Cuts tail markings to be implemented in another PR, adds the ability to
change the horn colour independent of the body colour and reworks the
code accordingly, drops the preferences_savefile.dm as it's unused
(@crazylemon64), adds some species checks just for uniformity
Breaks Facial Hair updates into their own proc and puts facial hair on
its own layer.
Works through everything that calls update_hair with the intention of
updating facial hair and adds update_fhair
Fixes the sprite names and colouring on all 'facial' and 'body marking'
aspects.
Fixes/implements proper ID photo/preferences preview picture generation.
To do: Tail marking customization possible rework, gutting in the
meantime
This commit overhauls the underwear/undershirt system to -tg-'s text-based
version. No more magic numbers, just text states.
Note, this modifies the SQL Schema, and existing databases must be
modified by the following SQL:
ALTER TABLE server_db.characters
CHANGE underwear underwear MEDIUMTEXT NOT NULL,
CHANGE undershirt undershirt MEDIUMTEXT NOT NULL;