//############################################################################//
#define STRICT
#define ORBITER_MODULE
#include "orbitersdk.h"
double max_accel;
//############################################################################//
DLLCLBK void InitModule (HINSTANCE hDLL)
{
FILE *fp;
char buf[255],val[255];
int i;
max_accel=100;
if((fp=fopen("Config\\autotime.cfg","r"))==NULL){
}else{
i=0;
while(!feof(fp)&&i++<100){
fscanf(fp,"%[^=]=%[^=^\n]\n",buf,val);
if(!strcmp(buf,"autopilot_accel_limit"))max_accel=atoi(val);
}
fclose(fp);
}
}
//############################################################################//
DLLCLBK void ExitModule(HINSTANCE hDLL){}
//############################################################################//
void clear_acc()
{
VESSEL *f;
if(oapiGetTimeAcceleration()>max_accel){
f=oapiGetFocusInterface();
if(f){
f->DeactivateNavmode(NAVMODE_KILLROT);
f->DeactivateNavmode(NAVMODE_HLEVEL);
f->DeactivateNavmode(NAVMODE_PROGRADE);
f->DeactivateNavmode(NAVMODE_RETROGRADE);
f->DeactivateNavmode(NAVMODE_NORMAL);
f->DeactivateNavmode(NAVMODE_ANTINORMAL);
f->DeactivateNavmode(NAVMODE_HOLDALT);
}
}
}
//############################################################################//
DLLCLBK void opcPreStep(double simt,double simdt,double mjd){clear_acc();}
DLLCLBK void opcPostStep(double simt,double simdt,double mjd){clear_acc();}
//############################################################################//