var h,v; h = 0 v = 0 do { var n,s,e,w,nw,ne,sw,se; n = place_meeting((x+h*8),(y+v*8)-1,gFloor) && !place_meeting((x+h*8),(y+v*8)-1,owall) s = place_meeting((x+h*8),(y+v*8)+1,gFloor) && !place_meeting((x+h*8),(y+v*8)+1,owall) e = place_meeting((x+h*8)+1,(y+v*8),gFloor) && !place_meeting((x+h*8)+1,(y+v*8),owall) w = place_meeting((x+h*8)-1,(y+v*8),gFloor) && !place_meeting((x+h*8)-1,(y+v*8),owall) nw = place_meeting((x+h*8)-1,(y+v*8)-1,gFloor) ne = place_meeting((x+h*8)+1,(y+v*8)-1,gFloor) sw = place_meeting((x+h*8)-1,(y+v*8)+1,gFloor) se = place_meeting((x+h*8)+1,(y+v*8)+1,gFloor) //inner corners (I think i got the order of the code wrong the last time) if nw && !n && !w{ tile_add(wall,8,8,8,8,(x+h*8),(y+v*8),-(y+v*8)+64)} if ne && !n && !e { tile_add(wall,0,8,8,8,(x+h*8),(y+v*8),-(y+v*8)+64)} if sw && !s && !w { tile_add(wall,8,0,8,8,(x+h*8),(y+v*8),-(y+v*8)+64)} if se && !s && !e { tile_add(wall,0,0,8,8,(x+h*8),(y+v*8),-(y+v*8)+64)} //normal walls if n { tile_add(wall,8,16,8,8,x+h*8,y+v*8,-(y+v*8)+64)} if s { tile_add(wall,8,32,8,8,x+h*8,y+v*8,-(y+v*8)+64)} if e { tile_add(wall,16,24,8,8,x+h*8,y+v*8,-(y+v*8)+64)} if w { tile_add(wall,0,24,8,8,x+h*8,y+v*8,-(y+v*8)+64)} //outer corners if n && w {tile_add(wall,0,16,8,8,x+h*8,y+v*8,-(y+v*8)+64)} if n && e {tile_add(wall,16,16,8,8,x+h*8,y+v*8,-(y+v*8)+64)} if s && w {tile_add(wall,0,32,8,8,x+h*8,y+v*8,-(y+v*8)+64)} if s && e {tile_add(wall,16,32,8,8,x+h*8,y+v*8,-(y+v*8)+64)} if h < image_xscale {h+=1} if h >= image_xscale && v < image_xscale {v +=1; h = 0} }until (v >= image_yscale)