ID:68192
 
Resolved
Fixed in 442
BYOND Version:440
Operating System:Windows XP Home
Web Browser:Firefox 3.0.10
Status: Resolved (442)

This issue has been resolved.
Descriptive Problem Summary:

icon_states(I,1) lists coordinate states for icons with dimensions of 32X64

Numbered Steps to Reproduce Problem:
Use the snippet below to test "big" icons with a single named icon state.

Code Snippet (if applicable) to Reproduce Problem:
mob/verb/Test(icon/I as file)
var/l[] = icon_states(I,1)
for(var/v in l)
src << v


Expected/Actual Results:

Icons with dimensions of 64X64 and 96X96 work correctly.
Using an icon with dimensions 32X64 gives 3 lines of output. e.g. for a single 32X64 icon state named "state", the output would be:
state
state 0,0
state 0,1

Workarounds:
use findtext to filter out states with coordinates
As a simpler work-around, shouldn't list[1] always contain the desired state name?
In the example, yes.
When I'm using this for its intended purpose, an icon with multiple 32X64 icon states is cycled through a for() loop, so in that case no.
This seems to only occur when one dimension is 32 and the other isn't; formally I'd say it's a bug where icon_states(icon, mode) treats all icons of dimensions 32xN or Nx32 (where N != 32) as if the mode is 2.