`reset_perspective` from tgstation.
Also adds various support for remote viewing lenses - like cameras not
transmitting xray vision, among other things
Recommit because we're using different compiler versions
The runtime occurred when get_icon_state() attempted to handle_alt_icon
on a head, even if if was a stump. Adds sanity to check if it's a stump
or if the organ's destroyed (as how it's handled in update_icons for
mobs) and resolves the runtime and #5863.
First bug: Changing your alt head in CMA wouldn't update it correctly.
You had to proc update_body(1, 1) twice in order to do it because of
where the head_organ.handle_alt_icon() proc call was placed in
organ_icons. Resolved
Second bug: Lack of sanity and inability to select head marking styles
with "all" alt heads allowed. Resolved
Previously, your markings would only randomize if you clicked the randomize button and were of a species that had body markings. Fixes that and tidies up the proc calls for marking randomization a bit.
Furthermore, a bug existed where if you changed a mob's species via CMA, the mob's cosmetic attributes (hair, hair colour, skin colour, skin tone, marking styles and colours, head accessory style and colour) will not have changed correctly. Delaying appearance update fixed that.
Finally, a mob's body will now correctly render as fat if they become fat and skinny if they become skinny and show deformities immediately.
Further explaining this fix: It required an override to be implemented in update_body that re-cached the mob's bodyparts in order to reflect changes to the limbs (i.e. fatness/slimness).
As for deformation, I just needed to modify the existing update_body() proc call.
Tajara ears are on their head now, fixes a crash bug with tail wagging
with body accessories that are split-rendered, adds secondary
hair/facial hair themes, fixes issues with human/skrell arm/lower body
sprites etc.
Admins can toy around with converting a character to text, and
placing them back elsewhere, independent of the round.
It's got a kink, though: The text given to you directly needs to be
printed once to remove all the escapes - otherwise the thing will choke.
I'd like advice on resolving that
You can now colour the webbing of webbed Unathi frills independently.
Morph and CMA support has been included.
Splits tigerhead sprites into 3 versions in order to better fit the
different ears of the three species that can use it.
Adds 5 more Tajaran hair styles, sprites from Polaris and fixes an issue
where Tajara and Vulpkanin couldn't be bald in character preferences.
The alt head prefs bug became prevalent if you spammed the 'reload slot'
button on certain characters. They'd get an alt head and if you switched
slots it wouldn't go away-- breaking head icon generation. Woops. Not a
problem anymore because the var isn't initialized to null and is
corrected in the prefs screen. Also refactors the morph ability to use
the change_whatever procs from appearance.dm. Removes redundant
update_body from force_update_limbs.
- Refactors action button backend
- Action buttons are no longer checked on Life(), items are responsible
for adding/removing/updating them.
- Item action buttons are no longer a static action_button_name define,
items define actions_types, which is a list of paths.
- Items can now have multiple action buttons.
- This is handled by new arguments to ui_action_click, the first
parameter is the user, the second is the path of the action datum
that was invoked.
- Refactored how internals function
- You may now directly switch internals without breaking anything.
- The internals icon has been updated to be more consistent.
- Added action buttons for jetpacks
- Added action buttons for oxygen tanks
- Uses-based implants now qdel() themselves when they run out of uses.
This is somewhat a buff to traitor implants, but it's such a minor
change. The actual reasoning is so that the action buttons are properly
removed.
- Fixed a bug with the "Boo" spell which resulted in IsAvailable failing
for certain ghosts.
- You can now shift-click on movable HUD elements to reset them to the
proper position (thank fucking christ)