Descriptive Problem Summary:
Creating an /icon object with no file argument caused subsequent Insert() operations to show strange artifacts, as if an icon had been scaled down and then restored to full size, making it blocky.
Code Snippet (if applicable) to Reproduce Problem:
var/icon/iconz = new()
for(var/a=0;a<360;a+=45)
var/fangle = 270-a
if(fangle < 0) fangle += 360
fangle = round(fangle/45,1)+1
var/f = file("[graphic]000[fangle].png")
iconz.Insert(f,"[a]")
sleep(1)
src.icon = iconz
Expected Results:
icon.Insert() is supposed to scale the icon being modified if inserting an icon of a different size, and this should not result in artifacts except in cases of programmer error.
Actual Results:
The inserted icon appears to have been rescaled several times, so it ends up as a pixelated version of itself.
When does the problem NOT occur?
Creating the main icon from a blank file with a proper size setting will not cause this issue.
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked?
Because this bug concerns big icons, it does not apply to versions prior to 455.
Workarounds:
Use a template icon file, or one of the inserted files, as a base before inserting any other icons.