ID:1932505
 
(See the best response by Super Saiyan X.)
Code:
mob
Move()
. = ..()
src.layer = MOB_LAYER + -(src.y / world.maxy)

attackable
player
var/frozen = 0

Move(var/loc, var/dir)
if(!frozen)
if(!..())
if(dir in list(NORTHWEST, SOUTHWEST, NORTHEAST, SOUTHEAST))
var/step1 = turn(dir, 45)
var/step2 = turn(dir, -45)
if(!step(src, step1))
step(src, step2)
else
//If successful, other shit goes here.
return 1


Problem description:
How would you go about controlling the mob under src.client.eye (assume it it set to something different than src.client.mob and is of type /mob/Soldier)?

Best response
What do you mean by 'under' src.client.eye?

Do you mean you want the user to control src.client.eye, or a mob in the same physical location as src.client.eye?

For the former, assuming you want src.client.eye to move without src moving:

client/Move(_loc, _dir)
. = (eye != mob)? step(eye, _dir) : ..()


That should pretty much do it.
In response to Super Saiyan X
Took me a while to figure out what was wrong. After an hour of on-off debugging, I looked at the end of the code and cursed multiple times.

mob
Move(_loc, _dir)
if(client)
. = (client.eye != src) ? step(client.eye, _dir) : ..()
else
. = ..()
src.layer = MOB_LAYER + -(src.y / world.maxy)


Thanks.
To be honest, from my perspective, it seems odd to put other-mobly behavior in your mob/Move.

In reality, you are trying to alter the mob that client.Move() will act upon, but instead doing an extra step by client.mob getting a move call, and then in that call telling client.eye to move instead.

Not telling you to change your code, but why did you opt to do it that way?
In response to Super Saiyan X
This is actually temporary since it runs for all mob types and I can get it in a "working" state for now. I'd actually like to keep the top-most code as simplistic as possible.

I plan on moving the ? : check to mob/attackable/player/Move() and giving mob/Soldier/Move() a collision check for doorways (step1/2 = turn(dir, +/-45)) so the user moves around it.

I hope this answered your question?