ID:2085475
 
Resolved
Extended (big-icon) turfs could be cleared away from the client and not properly restored in some cases. Additionally, the client did not properly handle images on extended turfs so that it could re-apply them if the turf reappeared.
BYOND Version:510.1343
Operating System:Windows 10 Enterprise 64-bit
Web Browser:Firefox 46.0
Applies to:Dream Daemon & Dream Seeker
Status: Resolved (510.1345)

This issue has been resolved.
Descriptive Problem Summary:

I have hidden areas in Lux that appear to be wall but are revealed when you enter them, and hide again when you leave them. To detect if the player is there, and to get the fading working for multiple tiles at once, I use areas.

When I set the area alpha to anything but it's initial value, images in the world (that are attached to turfs, in this case(1,1,z) tend to disappear and begin to reappear based on position. Checking the values for these images shows that Alpha, icon/icon-state/ etc do not change.

Numbered Steps to Reproduce Problem:

Attach an image to a turf (regardless of relative position to the area) and change the area's alpha.


Expected Results:

The two systems are completely unrelated

Actual Results:

Spooky interaction at a distance

Does the problem occur:
Every time? Or how often?
Every time
In other games?
Unsure
In other user accounts?
Yes
On other computers?
Yes

When does the problem NOT occur?

It does not affect images that are attached to mobs or objects.

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.)

I do not recall.

Workarounds:

None as of yet.


I will message LummoxJR with a debug source.
Can you point out to me where I can find an area that shows this in action?

[edit]
Even in a test project, I can't get this to happen.

mob/verb/AreaBug()
var/list/L = new
var/image/I
var/area/A = loc.loc
var/old = A.appearance
A.icon = 'floor.dmi'
A.icon_state = ""
A.layer = 50
for(var/turf/T in view(12,src))
if(prob(30))
I = new(loc=T, icon='items.dmi', icon_state="box")
L += I
client.images += I
src << "Made images"

sleep(10)
animate(A, alpha=125, time=20)
src << "Area alpha lowered"
sleep(50)
animate(A, alpha=255, time=20)
src << "Area alpha raised"
sleep(50)
for(I in L) del(I)
A.appearance = old
src << "Deleted images"

I don't really have an example of a place in your game where this happens yet to test, nor do I really know what's on the map at that spot.

It'd be best if you could find a way to distill this down into a simpler test case.
I'll try getting it down to a smaller test case, for the meantime though:

https://www.dropbox.com/s/3hnjp6g0ll47xe9/SAVE.sav?dl=0

Here is a savefile link that can be used with the debug source I provided earlier. Just drop it into the Save Files folder that is with the debug source.

And here is a webm showing how to get there and trigger it:

http://i.imgur.com/OUuC7Bk.webm

Lummox JR resolved issue with message:
Extended (big-icon) turfs could be cleared away from the client and not properly restored in some cases. Additionally, the client did not properly handle images on extended turfs so that it could re-apply them if the turf reappeared.
Although I'm glad it wasn't an issue with my coding I'm sorry that you had to deal with yet another bug with that system.

Thanks very much for all your work, you've been kicking ass.