This is a rather odd one; I have two distinct problems, the only similarity of which seem to be using the 'in world' operator. These are both with SS13 specifically.
First off, these are both client procs- Administrators have them added to their client.verbs list when they join.
So, there is a command called "Jump To Area", it looks like this:
/client/proc/Jump(area/A in return_sorted_areas())
set name = "Jump to Area"
set desc = "Area to jump to"
set category = "Admin"
if(!check_rights(R_ADMIN))
return
if(!A)
return
var/list/turfs = list()
for(var/turf/T in A)
if(T.density)
continue
if(locate(/obj/structure/grille, T)) // Quick check to not spawn in windows
continue
turfs.Add(T)
var/turf/T = pick_n_take(turfs)
if(!T)
src << "Nowhere to jump to!"
return
admin_forcemove(usr, T)
log_admin("[key_name(usr)] jumped to [A]")
message_admins("[key_name_admin(usr)] jumped to [A]")
feedback_add_details("admin_verb","JA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
//Returns: all the areas in the world
/proc/return_areas()
var/list/area/areas = list()
for(var/area/A in world)
areas += A
return areas
//Returns: all the areas in the world, sorted.
/proc/return_sorted_areas()
return sortAtom(return_areas())
The wrong/weird thing here, is, this functions perfectly fine in 508, every area in the (255x255x7) world shows up in the list. However, in 509, only about, maybe 20 areas out of the 300-400 available actually show up in the list- I can't actually see a difference between the areas it ignores and the areas it shows.
Next is something strange revolving around a very specific turf path, "/turf/space". Most admin verbs stop functioning entirely with space. Attempting to interact with it from any of the multiple right click verbs throws the same generic output error,
Sorry, the following is not valid: space.0x1005404
usage: Jump-to-Turf turf in world
Sorry, the following is not valid: space.0x10160f6
usage: View-Variables mob|obj|turf|area in world
This only happens with "/turf/space", the other two turf types in the game, "/turf/simulated" and "/turf/unsimulated" both work fine.
The thing is, there isn't that much of a difference between "/turf/space" and "/turf/unsimulated"- the difference is mostly in subprocs, not the primary definitions of them.
I have tried reproducing this in a test project, but everything I tried with a test project functioned completely fine- I have a suspicion it only happens on high instance-count worlds.
Sorry for not being able to produce many more details, most of the tests I could think to try really didn't yield any more information than "this was working, now it's not".
Expected Results:
Client verbs would function correctly, the same as they do with 508.
Actual Results:
They do not function correctly, as described above.
Does the problem occur:
Every time? Or how often? It consistently happens with SS13.
In other games? As mentioned, I can't reproduce this in a test case, but I suspect it's from a very high instance count.
In other user accounts? Yes.
On other computers? Not able to test this at the moment.
When does the problem NOT occur?
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.) 508 and below works fine.
Workarounds: None known.
Short of that, I think it'd help if you could package up the exact source you're working on and send that to me. Let me know what files I need to change to get the admin verbs you're using, and if you can provide a step-by-step guide (down to things like which turfs to click on, etc.) to reproduce either of these issues, I think I can possibly work with that.