mob
Move(atom/newLoc,Dir=0,override=0)
if(override)
return ..()
if(!src.isCrafting)
//------------------------------
//cardinal directional movement only
var/d = get_dir(src,newLoc)
var/is_diagonal = dir & (dir-1)
if(is_diagonal)
var/d1 = d & (NORTH|SOUTH)
var/d2 = d & (EAST|WEST)
if(prob(50))
var/t = d1
d1 = d2
d2 = t
dir = d1
if(step(src,d1))
return 1
dir = d2
if(step(src,d2))
return 1
return 0
else return ..()
//-----------------------------
return FALSE
Problem description:
Above is the Move() override I use. If you pay attention to the "override" argument I have, I will tell you it is for when I want movement to succeed regardless of anything. My problem is this override argument after using it once. For some reason, the argument is then permanently set to 1, thereby making it look like the player is jumping around instead of smoothly sliding around like normal.
I noticed this after loading from a savefile, and in my mob/Read() proc I use the override argument to set the player's location to wherever they were when saved. I used the override like this in case they load when there is already another dense object where they would load into.
To me, this sounds like a bug, but I do not want to jump to conclusions since there might be something I am missing. I never used to have this problem I don't think.