proc
Create_Trackers()
switch(src.Piece)
if("Rook")
var/X = 4
var/Y = NORTH
while(X > 0)
var/obj/Tracker/A = new (get_step(src,Y),src)
A.Move(A.loc)
walk(A,Y,0)
A.density = 1
X --
Y = turn(Y, -90)
if("Bishop")
var/X = 4
var/Y = NORTHWEST
while(X > 0)
var/obj/Tracker/A = new (get_step(src,Y),src)
A.Move(A.loc)
walk(A,Y,0)
X --
Y = turn(Y, -90)
if("Queen")
var/X = 8
var/Y = NORTH
while(X > 0)
var/obj/Tracker/A = new (get_step(src,Y),src)
A.Move(A.loc)
walk(A,Y,0)
X --
Y = turn(Y,45)
if("Knight")
var/obj/Tracker/A = new (src.loc,src)
var/obj/Tracker/B = new (src.loc,src)
var/obj/Tracker/C = new (src.loc,src)
var/obj/Tracker/D = new (src.loc,src)
var/obj/Tracker/E = new (src.loc,src)
var/obj/Tracker/F = new (src.loc,src)
var/obj/Tracker/G = new (src.loc,src)
var/obj/Tracker/H = new (src.loc,src)
A.Move(locate(src.x - 1, src.y + 2, src.z))
B.Move(locate(src.x + 1, src.y + 2, src.z))
C.Move(locate(src.x + 2, src.y + 1, src.z))
D.Move(locate(src.x + 2, src.y - 1, src.z))
E.Move(locate(src.x + 1, src.y - 2, src.z))
F.Move(locate(src.x - 1, src.y - 2, src.z))
G.Move(locate(src.x - 2, src.y - 1, src.z))
H.Move(locate(src.x - 2, src.y + 1, src.z))
for(var/obj/O in world)
if(O.loc == src.loc)
del O
Problem description:
This is the code I use to create trackers in my game. Trackers are dense objects that tell you where you can go. This code works fine when only one mob does it, but when I have 2 mobs do it at the same time, the game crashes. What's up with that?
Edit: Woah, never noticed how bad my knight code was. I could've sworn I coded a dblstep proc to handle that O.O