function fship::breakDir(%reg,%speed) { echo("FSHIP BREAK DIR"); %az = free::getShipData(%reg,"az",4); %axy = free::getShipData(%reg,"axy",4); echo("AZ " @ %az); echo("AXY " @ %axy); %x = 0; if (%axy == 0 || %axy == 360) { %x = 0; } if (%axy > 0 && %axy < 90) { %x = %axy / 90; %x = %x * 100; } if (%axy == 90) { %x = 100; } if (%axy > 90 && %axy < 180) { %n = %axy - 90; %n = 90 - %n; %n = %n / 90; %x = %n * 100; } if (%axy == 180) { %x = 0; } if (%axy > 180 && %axy < 270) { %n = %axy - 180; %n = %n / 90; %x = %n * 100; } if (%axy == 270) { %x = 100; } if (%axy > 270 && %axy < 360) { %n = %axy - 270; %n = 90 - %n; %n = %n / 90; %x = %n * 100; } %y = 0; if (%axy == 0 || %axy == 360) { %y = 100; } if (%axy > 0 && %axy < 90) { %n = 90 - %axy; %n = %n / 90; %y = %n * 100; } if (%axy == 90) { %y = 0; } if (%axy > 90 && %axy < 180) { %n = %axy - 90; %n = %n / 90; %y = %n * 100; } if (%axy == 180) { %y = 100; } if (%axy > 180 && %axy < 270) { %n = %axy - 180; %n = 90 - %n; %n = %n / 90; %y = %n * 100; } if (%axy == 270) { %y = 0; } if (%axy > 270 && %axy < 360) { %n = %axy - 270; %n = 90 - %n; %n = %n / 90; %y = %n * 100; } %z = 0; if (%az == 0) { %z = 0; } if (%az < 0 && %az > -90) { %n = 90 + %az; %n = -90 + %n; %n = fstring::negtopos(%n); %n = %n / 90; %z = %n * 100; } if (%az == -90) { %z = 100; %y = 0; %x = 0; } if (%az > 0 && %az < 90) { %n = %az / 90; %z = %n * 100; } if (%az == 90) { %z = 100; %y = 0; %x = 0; } echo("ZM " @ %zm); %zm = 0; %xm = 0; %ym = 0; %x = %x / 100; %xm = %speed * %x; if (%axy >= 0 && %axy <= 180) { %xm = %xm; } else { %xm = fstring::postoneg(%xm); } %y = %y / 100; %ym = %speed * %y; if (%axy >= 90 && %axy <= 270) { %ym = fstring::postoneg(%ym); } else { %ym = %ym; } %z = %z / 100; %zm = %speed * %z; if (%az <= 0) { %zm = fstring::postoneg(%zm); } else { %zm = %zm; } %z = %z * 100; echo("Z IS " @ %z); %xsub = 100 - %z; %xsub = %xsub / 100; echo("XM " @ %xm); echo("XSUB " @ %xsub); %xm = %xm * %xsub; %ysub = 100 - %z; %ysub = %ysub / 100; %ym = %ym * %ysub; return %xm @ " " @ %ym @ " " @ %zm; }