On our code base we added a way to change the client.view size using the mousewheel for certain mob types after mousewheel settings were added.
I first noticed on 509 that occasionally when rapidly scrolling the mousewheel so that client size was being reduced quickly (and going through each client.view size downwards) could break the map rendering.
Below is a visual display of what occurs when the map render is put into this broken state.
http://puu.sh/mMy8W/b77df8b598.flv
This can be fixed by once again increasing client.view size so it is not a major issue for us since it can be easily fixed. But it may occur for other programs so it seems useful to report it, the problem does not go away on it's own if left running.
Numbered Steps to Reproduce Problem:
1. Set client.view size arbitrarily high so that it can be reduced
2. Have client.view be reduced fairly rapidly, the code governing ours doesn't instantly change it but when a mousewheel calls it it will.
3. You should be able to reproduce this with our mousewheel scrolling within about 1 minute of increasing/reducing client.view
Code Snippet (if applicable) to Reproduce Problem:
/client/MouseWheel(object,delta_x,delta_y,location,control,params)
if(istype(mob,/mob/dead/observer) || buildmode) //Arbitrary code restricting use, can be removed in a test version
if(delta_y > 0)
view--
else
view++
view = max(view,1)
haszoomed = 1 //Arbitrary variable showing the mob has zoomed, can be removed in text version
..()
Expected Results:
The client.view size reduces normally without issue
Actual Results:
On the bottom half of the map render screen you'll visually see two bands of pixelated nonsense
Does the problem occur:
Every time? Or how often?
Can be reproduced within a few minutes of mousewheeling up/down for us fairly rapidly
In other games?
In other user accounts?
On other computers?
When does the problem NOT occur?
I haven't ever been able to reproduce it when changing client.view size slowly, so I assume if the time between client.view changes is either >world.tick_lag or >world.tick_lag/10 (I don't know which) you won't ever encounter this problem
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 don't believe this happened until version 509 but that may simply be the first time I encountered it.
Workarounds:
Simply increasing client.view size will reset the map render and fix the problem