ID:2185731
 
BYOND Version:511.1364
Operating System:Windows 7 Ultimate 64-bit
Web Browser:Chrome 54.0.2840.99
Applies to:Dream Daemon
Status: Unverified

Thus far we've been unable to verify or reproduce this bug. Or, it has been observed but it cannot be triggered with a reliable test case. You can help us out by editing your report or adding a comment with more information.
Code Snippet (if applicable) to Reproduce Problem:
#define TILE_WIDTH 32
#define TILE_HEIGHT 32
#define clamp(v,l,h) min(max(v,l),h)

world
New()
wmaxx = world.maxx*TILE_WIDTH
wmaxy = world.maxy*TILE_HEIGHT
var
wmaxx
wmaxy

got_loc
got_sx
got_sy
proc
getLoc(gx,gy,z)
gx = clamp(gx,0,wmaxx); gy = clamp(gy,0,wmaxy)
got_loc = locate(gx/TILE_WIDTH+1,gy/TILE_HEIGHT+1,z)
if(got_loc)
got_sx = gx%TILE_WIDTH
got_sy = gy%TILE_HEIGHT
else
got_sx = 0
got_sy = 0

atom/movable
//causes runtime errors:
Move(global_x,global_y,z,Dir=0)
getLoc(global_x,global_y,z)
return ..(got_loc,Dir,got_sx,got_sy)

/*does not cause runtime errors:
Move(global_x,global_y,z,Dir=0)
getLoc(global_x,global_y,z)
global_x = got_loc
global_y = Dir
z = got_sx
Dir = got_sy
return ..()*/


Expected Results:

Supplying the arguments of a supercall should effectively override the args of the supercalled proc. When the supercall is to an internal function, however, the internal function does not obey this rule.

Notice that this problem does not occur when we change the arguments manually.
Yeek. I wonder how long this sucker has been around. I'll look into it.
I've been looking back in the archives and stumbled on this bug. I tried a quick test to reproduce this and couldn't get it to happen in a test project.

world
maxx = 10
maxy = 10
maxz = 1

mob
Move(newloc, newdir)
if(newdir)
newdir = turn(newdir, 180)
var/turf/T = get_step(loc, newdir)
return T ? ..(T,newdir) : 0
return ..()

Since the problem isn't happening in my test, I think either the issue has been resolved since it was reported or else there's something else in the specific case here that caused the issue.
Lummox JR changed status to 'Unverified'