namespace XFEEDToolBox.Plugin;
internal static unsafe partial class Navigation
{
// State 1 is the observed post-arrival cooldown. It does not own a
// charge/jump transition; ordinary target selection remains available.
private static bool LocalSelectionFsdReady(uint state,bool owned)=>!owned&&state is 1 or 2;
private static uint LocalCooldownSelfTest()
{
uint passed=0;
if(LocalSelectionFsdReady(2,false))passed|=1;
if(LocalSelectionFsdReady(1,false))passed|=2;
if(!LocalSelectionFsdReady(0,false))passed|=4;
if(!LocalSelectionFsdReady(3,false))passed|=8;
if(!LocalSelectionFsdReady(4,false)&&!LocalSelectionFsdReady(5,false))passed|=16;
if(!LocalSelectionFsdReady(1,true)&&!LocalSelectionFsdReady(2,true))passed|=32;
if(!LocalSelectionFsdReady(255,false))passed|=64;
if(Enumerable.Range(6,249).All(state=>!LocalSelectionFsdReady((uint)state,false)))passed|=128;
return passed;
}
#if PLUGIN_NAVIGATION
[UnmanagedCallersOnly(EntryPoint="XFENavigationLocalCooldownSelfTest")]
internal static uint ExportLocalCooldownSelfTest()=>RunTest(LocalCooldownSelfTest);
#endif
}
namespace XFEEDToolBox.Plugin;
internal static unsafe partial class Navigation
{
// State 1 is the observed post-arrival cooldown. It does not own a
// charge/jump transition; ordinary target selection remains available.
private static bool LocalSelectionFsdReady(uint state,bool owned)=>!owned&&state is 1 or 2;
private static uint LocalCooldownSelfTest()
{
uint passed=0;
if(LocalSelectionFsdReady(2,false))passed|=1;
if(LocalSelectionFsdReady(1,false))passed|=2;
if(!LocalSelectionFsdReady(0,false))passed|=4;
if(!LocalSelectionFsdReady(3,false))passed|=8;
if(!LocalSelectionFsdReady(4,false)&&!LocalSelectionFsdReady(5,false))passed|=16;
if(!LocalSelectionFsdReady(1,true)&&!LocalSelectionFsdReady(2,true))passed|=32;
if(!LocalSelectionFsdReady(255,false))passed|=64;
if(Enumerable.Range(6,249).All(state=>!LocalSelectionFsdReady((uint)state,false)))passed|=128;
return passed;
}
#if PLUGIN_NAVIGATION
[UnmanagedCallersOnly(EntryPoint="XFENavigationLocalCooldownSelfTest")]
internal static uint ExportLocalCooldownSelfTest()=>RunTest(LocalCooldownSelfTest);
#endif
}