bbri06
2009-12-23 18:32:00
Made this for my Catherby Yew Cutter that I'm currently making(almost done :) ). Not sure if there is already something like this or not. I kind of hope there isn't because then I made it all for no reason lol.
It's opposite
//Trys to Radial walk from the RadialStart and RadialEnd then if it fails,
//adjusts the RadialStart by 2 until your MaxRadialAdj(Maximum radial to
//adjust to) is reached.
//Direction = true to Adj radial start counterclockwise, false to Adj radial start
//clockwise
//By Bbri06
Function AdjustableRadialStartWalk(Color, RadialStart, RadialEnd, Radius, Xmod, Ymod, MaxRadialAdj: integer; Direction: boolean): boolean;
var
RadialAdj: integer;
begin
if(RadialWalk(Color, RadialStart, RadialEnd, Radius, Xmod, Ymod))then
begin
result := true;
end else
begin
RadialAdj := 2;
repeat
if(RadialWalk(Color, RadialStart, RadialEnd, Radius, Xmod, Ymod))then
begin
result := true;
break;
end else
begin
if(Direction)then
begin
RadialStart := RadialStart - RadialAdj;
end else
RadialStart := RadialStart + RadialAdj;
end;
RadialAdj := RadialAdj + 2;
until(RadialAdj > MaxRadialAdj)
end;
if(RadialAdj > MaxRadialAdj)then
result := false;
end;
It's opposite
//Trys to Radial walk from the RadialStart and RadialEnd then if it fails,
//adjusts the RadialEnd by 2 until your MaxRadialAdj(Maximum radial to
//adjust to) is reached.
//Direction = true to Adj RadialEnd clockwise, false to Adj RadialEnd
//counterclockwise
//By Bbri06
Function AdjustableRadialEndWalk(Color, RadialStart, RadialEnd, Radius, Xmod, Ymod, MaxRadialAdj: integer; Direction: boolean): boolean;
var
RadialAdj: integer;
begin
if(RadialWalk(Color, RadialStart, RadialEnd, Radius, Xmod, Ymod))then
begin
result := true;
end else
begin
RadialAdj := 2;
repeat
if(RadialWalk(Color, RadialStart, RadialEnd, Radius, Xmod, Ymod))then
begin
result := true;
break;
end else
begin
if(Direction)then
begin
RadialEnd := RadialEnd + RadialAdj;
end else
RadialEnd := RadialEnd - RadialAdj;
end;
RadialAdj := RadialAdj + 2;
until(RadialAdj > MaxRadialAdj)
end;
if(RadialAdj > MaxRadialAdj)then
result := false;
end;