
class AeroData
{
public:
~AeroData
(void) {delete mach; delete alpha; delete clift;
delete
cdrag; delete cy; };
int
numMach;
int
numAlpha;
float
*mach;
float
*alpha;
float
*clift;
float
*cdrag;
float
*cy;
float
clFactor;
float
cdFactor;
float
cyFactor;
#ifdef USE_SH_POOLS
public:
// Overload new/delete to
use a SmartHeap fixed size pool
void *operator new(size_t
size) { return MemAllocPtr(AirframeDataPool, size, 0);
};
void operator delete(void
*mem) { if (mem) MemFreePtr(mem); };
#endif
};
/*------------------*/
/* Engine Data Type */
/*------------------*/
class EngineData
{
public:
~EngineData(void)
{delete mach; delete alt; delete thrust[0];
delete
thrust[1]; delete thrust[2];};
float
thrustFactor;
float
fuelFlowFactor;
int
numMach;
int
numAlt;
float
*mach;
float
*alt;
float
*thrust[3];
#ifdef USE_SH_POOLS
public:
// Overload new/delete to
use a SmartHeap fixed size pool
void *operator new(size_t
size) { return MemAllocPtr(AirframeDataPool, size, 0);
};
void operator delete(void
*mem) { if (mem) MemFreePtr(mem); };
#endif
};
/*---------------------*/
/* Roll Rate Data Type */
/*---------------------*/
class RollData
{
public:
~RollData(void)
{delete alpha; delete qbar; delete roll;};
int
numAlpha;
int
numQbar;
float
*alpha;
float
*qbar;
float
*roll;
#ifdef USE_SH_POOLS
public:
// Overload new/delete to
use a SmartHeap fixed size pool
void *operator new(size_t
size) { return MemAllocPtr(AirframeDataPool, size, 0);
};
void operator delete(void
*mem) { if (mem) MemFreePtr(mem); };
#endif
};
class GearData
{
public:
enum GearFlags{
GearStuck = 0x01,
GearBroken = 0x02,
DoorStuck = 0x04,
DoorBroken = 0x08,
GearProblem = 0x0F,
};
GearData(void);
~GearData(void)
{}
float
strength; //how many hitpoints it has
left
float
vel;
//at what rate is it currently compressing/extending in ft/s
float
obstacle; //rock height/rut depth
uint
flags; //gear stuck/broken,
door stuck/broken,
#ifdef USE_SH_POOLS
public:
// Overload new/delete to
use a SmartHeap fixed size pool
void *operator new(size_t
size) { return MemAllocPtr(AirframeDataPool, size, 0);
};
void operator delete(void
*mem) { if (mem) MemFreePtr(mem); };
#endif
};