class MyPlanet:CELBODY;
MyPlanet::MyPlanet
{
basePlanetModule = LoadLibrary("Earth.dll"); // or some other module
basePlanetInitFunc = GetProcAddress(BasePlanetModule,"InitInstance");
}
MyPlanet::clbkEphermeris(double mjd, int req, double *ret)
{
if (shipIsTooFarAwayToCare)
{
int retVal = basePlanet->clbkEphermeris(mjd,req,ret);
memcpy(retBuf,ret,12*sizeof(ret)); // buffer position for later use
}
else
memcpy(ret,retBuf,12*sizeof(ret));
retVal = toBeDetermined;
return retVal;
}
InitInstance(OBJHANDLE hBody)
{
myPlanet = new MyPlanet;
basePlanet = BasePlanetInitFunc(hBody);
return myPlanet;
}