can_move golf, redux #14
| @@ -531,6 +531,8 @@ function level:get_latch(dx,dy,px,py) | ||||
| 	end | ||||
| end | ||||
|  | ||||
| ropecheck=split"-0.8,0.4,0.2" | ||||
|  | ||||
| function level:can_move( | ||||
|  is_player, | ||||
|  mx0,my0,dmx,dmy,exclude_src,exclude_dst | ||||
| @@ -542,17 +544,9 @@ function level:can_move( | ||||
|  if (self:mcoll(mx1,my1) or player.x==mx1 and player.y==my1) return false | ||||
|  | ||||
|  if player.rope then | ||||
|   local chk=false | ||||
|   local w,h=1.6,0.2 | ||||
|   if (dmx==0) w,h=0.2,1.6 | ||||
|  | ||||
|   local rectx,recty | ||||
|   if (dmy==-1) rectx,recty=0.4,-0.8 | ||||
|   if (dmy==1) rectx,recty=0.4,0.2 | ||||
|   if (dmx==-1) rectx,recty=-0.8,0.4 | ||||
|   if (dmx==1) rectx,recty=0.2,0.4 | ||||
|  | ||||
|   if (player.rope:collide_mrect(mx0+rectx,my0+recty,w,h,exclude_src,exclude_dst)) return false | ||||
|   if (player.rope:collide_mrect(mx0+ropecheck[dmx+2],my0+ropecheck[dmy+2],w,h,exclude_src,exclude_dst)) return false | ||||
|  end | ||||
|   | ||||
|  return true | ||||
|   | ||||
		Reference in New Issue
	
	Block a user