ID:2190542
 
Resolved
When a skin file was saved, map controls with a text-color of black did not save that value. (This applied to any parameter that was different from the default for its control type, but matched the default for generic controls.)
BYOND Version:511.1364
Operating System:Windows 10 Home
Web Browser:Chrome 55.0.2883.87
Applies to:Dream Maker
Status: Resolved (511.1367)

This issue has been resolved.
Descriptive Problem Summary: When deleting buttons from the skin interface, maptext gets kinda... fucky in the character creation menu. Nowhere in the code are these buttons mentioned. The same thing happens if their visibility is set to 0.

Numbered Steps to Reproduce Problem:
1. Delete buttons.
2. Compile.
3. Run.
4. Rage.

Code Snippet (if applicable) to Reproduce Problem:
N/A


Expected Results:
Buttons disappear. Nothing else changes.

Actual Results:
Buttons disappear. Maptext gets fucky.

Does the problem occur:
Every time? Or how often? Every time
In other games? No idea
In other user accounts? Unwanted4Murder and Guest
On other computers? Dunno

When does the problem NOT occur?
If I don't touch the button.

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
Didn't test yet.

Workarounds:
None.

BYOND version is actually beta 511.1364.

I've edited your report to show the correct version. You can simply select Other... from the list and specify for 511 builds.

Regarding this issue, are you certain that it's deleting the buttons that causes this, or could it simply be that you're running the game a second time? My working theory is that something is wrong with the maptext caching, and maybe something isn't being cleared correctly.

You could also test this by adding a test button that changes their visibility, so you could try maptext in the very same run to see if it changes then.

It would of course help if you sent me new source and specific instructions as to how to reproduce this issue.
It definitely doesn't happen without editing the skin. I actually tried to add a command to manually hide the buttons at runtime and then add it as a skin macro and the simple act of adding the macro had the same result, even without actually using the macro. This made me think you may have been right about the cache, so I ran through the character creation system with the original skin several times and it didn't happen, meaning it's definitely something to do with the skin.

I'll page you the source in a second.
Actually what you said about the macro only reinforces my idea that it's the maptext cache. There must be a reason this is going haywire when the skin changes.
Turns out I was wrong about the maptext cache; it's the editor that's the problem.

Default values for skin elements are supposed to be deleted now, which makes the skin file a lot simpler. However, the way defaults were being checked was incorrect, not respecting overridden defaults for inherited types. So although the map's default foreground color is white, other controls have black. When the map control saved, the part that saved color info was the generic IWindowElem routine that was checking against generic IWindowElem defaults, not against IMapElem defaults. Oops!

As a result of this, making any change to the skin and then saving it caused the color of the map control to change. The maptext on those screens is assuming the map control's color is black, and then another copy of the text is always white; but with the bug, the map had a white foreground color, which is why you see the double printing instead of the normal drop shadow effect.
Lummox JR resolved issue with message:
When a skin file was saved, map controls with a text-color of black did not save that value. (This applied to any parameter that was different from the default for its control type, but matched the default for generic controls.)