| I have this at the moment, but it doesn't work very well, at somepoint it even does work correctly but then again... not. 
 
 
					wallAngle = ATan2(wll.getY1() - wll.getY2(), wll.getX1() - wll.getX2()) ' WALL  ANGLE
					objectAngle = ATan2(oy - obj.getY(), ox - obj.getX()) ' OBJECT ANGLE
					
					objectStepLength = Sqr((ox - obj.getX())^2 + (oy - obj.getY())^2)
					objectIntersectStepLength = Sqr((ox - intersect.getX())^2 + (oy - intersect.getY())^2)
					
					obj.setX(intersect.getX() + Cos(360 - (objectAngle - wallAngle)) * (objectStepLength - objectIntersectStepLength) )
					obj.setY(intersect.getY() + Sin(360 - (objectAngle - wallAngle)) * (objectStepLength - objectIntersectStepLength))
					
					obj.setXSpeed(Cos(360 - (objectAngle - wallAngle)) * objectStepLength)
					obj.setYSpeed(Sin(360 - (objectAngle - wallAngle)) * objectStepLength)
 
 basically it's: 360 - (object_moving_angle - wall_angle)
 
 
 |