Jump to content

Allow IPC's to change their body color.


Spacemanspark

Recommended Posts

Believe it or not, IPC's can currently only change their monitor color. It'd be nice if they could change the body color as well (A feature Baycode has, I believe. Unfortunately, they don't have the options like we do to actually pick a color, and you have to spend a half hour clicking the 'randomize' button in the hopes you get the colors you want. *buzz.)

Link to comment
Share on other sites

  • 2 weeks later...

 

You know, I can see someone, maybe reasonable but most likely not, complain about this in a way that it will turn into more furry hate.

 

"Oh, IPCs can get their own body color but you want to limit the anthropomorphic character to certain colors? RAEG! IMA DDOS YOU ALL!"

 

But in all seriousness though this should be a thing. I don't play IPC (no karma ;( ) but it should be an option for customization. How hard would it be to make this happen?

 

Link to comment
Share on other sites

 

Unbound/BestRP had it, they run off of baycode last I checked, I vividly remember running around as a bright red IPC on their server when I played.

 

Unbound/BestRP code is massively out of date with baydev, if I recall correctly. This would have been easy-- before the whole organ overhaul.

 

Link to comment
Share on other sites

 

This has been brought up before (about 9 months ago).

 

It's a toggle that's disabled in the code, and is easily made selectable again.

 

So-and-so coder didn't want another "rainbow species" for some reason.

 

Link to comment
Share on other sites

 

This has been brought up before (about 9 months ago).

 

It's a toggle that's disabled in the code, and is easily made selectable again.

 

So-and-so coder didn't want another "rainbow species" for some reason.

It's definitely not that simple. I spent about an hour looking into this, and yes, I did try to just enable the has_body_color flag; It doesn't work.

 

Why don't I just give a detailed explanation of why it doesn't work?

So, first off- the HAS_BODY_COLOR flag does not actually control if you see the body color preference; it's snowflaked into races checks. But that's a simple solution. So, moving on.

You select a body color; When your character is made, their r_skin, b_skin, and g_skin variables are set according to the color you selected.

From there, it moves to the icon generating phase.

Human base icons are now generated at the organ level; https://github.com/ParadiseSS13/Paradis ... an_icon.dm

When humans want to make a new icon, first they check if anything has changed, or if they can use a cached icon that was already made. https://github.com/ParadiseSS13/Paradis ... #L231-L347

The specific part of this check that handles the actual base body, their arms, chest, head, so on, is here: https://github.com/ParadiseSS13/Paradis ... #L278-L297

That code calls organ.get_icon, which is here; https://github.com/ParadiseSS13/Paradis ... m#L72-L113

Colored parts are handled in organ.get_icon, specifically, right here; https://github.com/ParadiseSS13/Paradis ... on.dm#L108

If you notice, that part is behind an else; First, it has an if(skeletal), which means it returns the skeleton icon if that mob is supposed to be a skeleton.

Then, second, it has an else if (status & ORGAN_ROBOT), which returns just the robot icon, without ever calling the part that blends skin tone.

In order to fix this, we would have to add a color blend behind the else if (status & ORGAN_ROBOT) check; But, we can't do that. If we did, tajara and everything else with a skin color would color robotic limbs, which isn't desired.

 

Is that a good enough explanation of why this isn't feasible?

 

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Terms of Use