I've been debugging `news_item_get_subject_location` today, and I realised we're comparing 4-byte integers (x) to 2-byte ones (0x8000). I'm a bit new to C, so which is more readable:

    if (*((uint8*)&x) == SPRITE_LOCATION_NULL)

or 

    if ((x & 0xFFFF) == SPRITE_LOCATION_NULL)

The option I guess is to modify `window_scroll_to_location` to take `sint16` rather than `int`.