ID:2611357
 
BYOND Version:513
Operating System:Windows 7 Ultimate 64-bit
Web Browser:Chrome 84.0.4147.135
Applies to:Dream Daemon
Status: Open

Issue hasn't been assigned a status value.
Descriptive Problem Summary:

If I pass an icon_state and a dir to icon(), that don't exist on the icon, it will produce either a blank icon or just return the while dmi.

On the client, when given an invalid icon_state, it will display the first icon_state or the "" blank icon state, icon() instead imports the entire dmi into the new icon. (this was observed on an icon with no "" state, when icon() was passed "" for the icon_state)

On the client, when given an invalid direction (such as something facing west but having an icon with only 1 direction) it will display the icon's only direction, icon() instead imports a empty icon_state.

The former is fixable, by checking icon_states(), but the latter is not, there is no way for code to know how many directions a given icon_state has.

This was observed in a system that will fcopy() the file on the server's filesystem.

As an aside, the md5() returned on these icons, even when converted into a fcopy_rsc file before hand, is different from the resulting file's actual md5. This is only true when the icon was made using icon() that was given invalid data.