ID:2807286
 
Resolved
mutable_appearance.invisibility was read incorrectly.
BYOND Version:514
Operating System:Windows 10 Pro 64-bit
Web Browser:Chrome 103.0.5060.134
Applies to:Dream Daemon
Status: Resolved (515.1642)

This issue has been resolved.
Descriptive Problem Summary: Invisibility isn't handled on mutable_appearances right, it'll always be 1, regardless of what the passed appearance has set. It also can't be set to anything BUT 1.

Numbered Steps to Reproduce Problem:

Code Snippet (if applicable) to Reproduce Problem:
mob
verb
AppearanceBug()
var/mutable_appearance/app = new(src.appearance)
world << "Mob: [usr.invisibility]"
world << "App: [app.invisibility]"
usr.appearance = app
world << "Mob2: [usr.invisibility]"
app.invisibility = 0
world << "App2: [app.invisibility]"


Expected Results:
Mob: 0
App: 0
Mob2: 0
App2: 0

Actual Results:
Mob: 0
App: 1
Mob2: 0
App2: 1

Workarounds:

Set invisibility back to 0 after setting the appearance.

Descriptive Problem Summary:

Mutable appearances seem to clone with invisibility set to 1:

var/obj/o = new()
var/mutable_appearance/a = new(o)
world.log << a:vars["invisibility"]
world.log << o:vars["invisibility"]


Expected output:
0
0

Actual output:
1
0

Similarly, the values of the deprecated visibility variable do not appear to be copied quite right. I see 0 for the appearance, and 1 for the object after cloning.
In response to Ter13
In response to Ter13
pls merge thread.
Reattached.

Also pls fix papa Lum
Lummox JR resolved issue with message:
mutable_appearance.invisibility was read incorrectly.