Profile results (total time)
Proc Name Self CPU Total CPU Real Time Calls
------------------------------ --------- --------- --------- ---------
/mob/verb/test 0.158 6.057 6.057 5
/proc/IsEnclosed_1 2.401 2.401 2.401 500
/proc/IsEnclosed_2 1.196 1.197 1.197 500
/proc/IsEnclosed_3 1.155 1.155 1.155 500
/proc/IsEnclosed_4 1.147 1.147 1.147 500
/mob/player/proc/update_screen 0.000 0.000 0.000 906
/mob/player/proc/movement 0.000 0.000 0.000 906
IsEnclosed_4() uses += and -= instead of .Add and .Remove
I.e, leaving Find() but still using +=? Like I said I haven't tested the other functions, but I'm 100% sure Add() is slower, when adding objects or not, so either something weird is happening with your code, or more likely, something else is speeding it up.