We've discovered a few problems in one of our new implementations involving the sight flag SEE_PIXELS:
1. SEE_PIXELS overrides SEE_TURFS. Even though SEE_TURFS explicitly states that,
"// can see all turfs (and areas), no matter what"
turfs are covered with a darkness overlay when SEE_PIXELS and SEE_TURFS are enabled.
Associated image : http://puu.sh/plFwc/861bb9b582.png
Furthermore, SEE_TURFS only functions (while SEE_PIXELS is enabled), when both SEE_TURFS and SEE_OBJECTS are enabled.
2. SEE_PIXELS does not *fully* block out turfs below it (ie prevent click behavior). This allows players to use click behavior, particularly right click behavior, on turfs outside of their vision. Which gives them the ability to gather otherwise impossible information about the location of anything with a right click verb by right clicking over the darkness which is passed onto the turf.
Associated image: available on request
Numbered Steps to Reproduce Problem:
1. Apply SEE_PIXELS to the sight var of a mob
2. Try right clicking turfs obscured by darkness that are right clickable, or have objects that are right clickable and discover information about them such as name, sprite, location.
or
1. Apply SEE_TURFS to the sight var of a mob, view all turfs in view despite vision obscuration or luminosity
2. Apply SEE_PIXELS, turfs out of view and not luminous become obscured
3. Apply SEE_OBJS and turfs become visible again
Code Snippet (if applicable) to Reproduce Problem:
Test case can be created on request
Expected Results:
1. Turfs should never be obscured with the SEE_TURFS flag, regardless of SEE_PIXELS
2. SEE_PIXELS should prevent click behavior on obscured turfs
Actual Results:
1. Turfs are obscured when SEE_PIXELS and SEE_TURFS is combined, but not obscured when SEE_PIXELS, SEE_TURFS, and SEE_OBJS are combined.
2. SEE_PIXELS does not prevent any click behavior on obscured turfs
When does the problem NOT occur?
SEE_PIXELS does not break SEE_TURFS when SEE_OBJS is also enabled.
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.)
Currently unknown, can test prior version upon request
Workarounds:
None known
The flag combination issue is a trickier deal. You can't use SEE_PIXELS to block only one type of thing and not another; it doesn't play nice with infrared, either. It's designed strictly as a minimalist overlay to cover up a tile (in topdown mode only) so that atoms moving in and out of that tile can be properly obscured instead of disappearing/appearing suddenly.