ID:1763636
 
Applies to:DM Language
Status: Open

Issue hasn't been assigned a status value.

As I was toying with transform, I saw how it will effect underlays and overlays and sometimes you don't want it to effect every underlay and overlay attached to the atom.

My problem is described here but while I'm searching for a workaround I figured this could be made a feature.

I thought there could be a variable containing bit flags to disable a certain function like color, alpha, blend mode or transform. This way I can set the object before adding to overlays/underlays and add them without worrying about it later.

For example:
var/obj/o = new
o.icon = 'something.dmi'
o.disable_function = COLOR|TRANSFORM


Support, I'm sure this is will come in handy.
As I read this post in developer help I realized blend mode already has something that accomplishes this only it's just for blend mode.

Maybe setting blend_mode to BLEND_OVERLAY could also impact color/alpha/transform to not inherit from the parent.

I realize it doesn't give much control and isn't all that intuitive but it does avoid using multiple vars.

I suppose there could also be a special value given to each of those variable that also accomplishes something similar to blend_mode for example: alpha = -1 (or maybe any negative).
I don't think that'd be feasible for color, alpha, and transform. Bitflags are probably the better option.
For lack of a better name, I've created a new appearance_flags var for 509. The following flags are defined in my working draft:

LONG_GLIDE
RESET_COLOR
RESET_TRANSFORM

I'm not sure if alpha should be handled separately from color here. At the moment I'm handling color and alpha together.
Can we flip those RESET flags?

INHERIT_COLOR
INHERIT_TRANSFORM

Make more sense than RESET_COLOR IMO.

By default, those two flags would be on, indicating the the appearance inherits the color and transformation of its parent.
Defaulting off actually makes more sense for a lot of legacy reasons.
Alright, how about OVERRIDE, rather than RESET? It makes more sense from a semantic standpoint.
I dunno; I think they're equivalent, plus OVERRIDE could be confused with the override var.
I've decided to split out RESET_COLOR and RESET_ALPHA after all. It makes more sense for a lot of reasons, and I may as well do it right from the get-go.