www.pudn.com > RCApp-src.zip > Defs.h


/* 
	RedEye Project (http://members.ozemail.com.au/~ndmcevoy/) 
	Copyright (C) 2003  Nick McEvoy 
 
	This library is free software; you can redistribute it and/or 
	modify it under the terms of the GNU Library General Public 
	License as published by the Free Software Foundation; either 
	version 2 of the License, or (at your option) any later version. 
 
	This library is distributed in the hope that it will be useful, 
	but WITHOUT ANY WARRANTY; without even the implied warranty of 
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
	Library General Public License for more details. 
 
	You should have received a copy of the GNU Library General Public 
	License along with this library; if not, write to the Free 
	Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 
 
	----------------------------------------------------------------- 
 
		Commented for use with Doxygen (http://www.doxygen.org) 
 
	----------------------------------------------------------------- 
*/ 
 
/*! \file Defs.h 
 *	\brief Game definitions. 
 * 
 *		This file contains game definitions. 
 */ 
 
#ifndef _RE_GAME_DEFS_H_ 
#define _RE_GAME_DEFS_H_ 
 
#define MAX_NAME_LEN		32 
#define MAX_FILE_NAME_LEN	32 
#define MAX_DESCRIPTION_LEN	256 
 
#define RE_MPS_TO_KPH	3.6 
 
// Platform names 
#define PLAYER_1					"Player1" 
#define PLAYER_TEST_SPHERE			"PlayerTestSphere" 
#define PLAYER_TEST_CUBE			"PlayerTestCube" 
#define PLAYER_TEST_TUX_BILLY_KART	"PlayerTestTuxBillyKart" 
#define PLAYER_TEST_SPACE_SHIP_A	"PlayerTestSpaceShipA" 
 
// Platform model names 
#define TEST_CUBE			"TestCube" 
#define TEST_SPHERE			"TestSphere" 
#define BILLY_CART_BODY		"BillyCartBody" 
#define BILLY_CART_WHEEL	"BillyCartWheel" 
#define SPACE_SHIP_TEST		"SpaceCraft" 
#define SPACE_SHIP_A		"SpaceShipA" 
#define SPACE_STATION_A		"SpaceStationA" 
#define SPACE_STATION_B		"SpaceStationB" 
 
// Weapon model names 
#define PLASMA_BOLT		"PlasmaBolt" 
 
// Resource model names 
#define ASTEROID		"Asteroid" 
 
enum eEntityType 
{ 
	eUnknown, 
	ePlatform, 
	eWeapon, 
	//eBuilding, 
	//eScenery, 
	//eEquipment, 
	eResource 
}; 
 
/*enum ePlatformType 
{ 
	eLand, 
	eWater, 
	eAir, 
	eSpace 
}; 
 
enum ePlatformProfile 
{ 
	eSpaceShip, 
	eSpaceStation 
};*/ 
 
// Physics types 
enum ePhysicsType 
{ 
	eNoPhysics, 
	eODEPhysics 
}; 
 
// Model data 
struct ModelData 
{ 
public: 
	char  msName[MAX_NAME_LEN]; 
	char  msFileName[MAX_FILE_NAME_LEN]; 
	char  msDescription[MAX_DESCRIPTION_LEN]; 
}; 
 
// Entity data 
struct EntityData 
{ 
public: 
	char  msName[MAX_NAME_LEN]; 
	char  msModelName[MAX_NAME_LEN]; 
	char  msDescription[MAX_DESCRIPTION_LEN]; 
 
	int   miCost;       // Cost (credits) 
	int   miTechLevel;  // Technology level 
	int   miMaxHP;      // Max hit points 
}; 
 
// Platform structure 
struct PlatformData 
{ 
public: 
	EntityData   mEntityData;      // Entity data 
 
	int          miMinCrew;        // Minimum crew required 
	int          miMaxPassengers;  // Max passenger capacity 
	float        mfMaxCargo;       // Max cargo capacity (kg) 
	int          miMaxWeapons;     // Max weapon mounting capacity 
	int          miMaxMissiles;    // Max missile capacity 
 
	float  mfMass;                   // Mass (kg) 
 
	float  mfMaxFuel;                // Max fuel capacity (l) 
	float  mfBurnRate;               // Fuel burn rate (l/s) 
 
	float  mfMaxForwardThrust;       // Max forward thrust (N) 
	float  mfMaxReverseThrust;       // Max reverse thrust (N) 
 
	float  mfMaxHeadingThrust;       // Max heading thrust (N) 
	float  mfMaxPitchThrust;         // Max pitch thrust (N) 
	float  mfMaxRollThrust;          // Max roll thrust (N) 
 
	float  mfPowerForwardFactor;     // Power forward factor (decimal %/s) 
	float  mfPowerReverseFactor;     // Power reverse factor (decimal %/s) 
	float  mfPowerBreakFactor;       // Power breaking factor (decimal %/s) 
	float  mfPowerDampFactor;        // Power damping factor (decimal %/s) 
 
	float  mfHeadingFactor;          // Heading factor (decimal %/s) 
	float  mfHeadingDampFactor;      // Heading damping factor (decimal %/s) 
	float  mfPitchFactor;            // Pitch factor (decimal %/s) 
	float  mfPitchDampFactor;        // Pitch damping factor (decimal %/s) 
	float  mfRollFactor;             // Roll factor (decimal %/s) 
	float  mfRollDampFactor;         // Roll damping factor (decimal %/s) 
}; 
 
// Weapons structure 
struct WeaponData 
{ 
public: 
	EntityData   mEntityData;      // Entity data 
	float        mfMass;           // Mass (kg) 
	float        miMinDamage;      // Min damage (HP) 
	float        miMaxDamage;      // Max damage (HP) 
	float        mfRange;          // Weapon range (km) 
}; 
 
// Building structure 
struct BuildingData 
{ 
public: 
	EntityData   mEntityData;      // Entity data 
}; 
 
// Scenery structure 
struct SceneryData 
{ 
public: 
	EntityData   mEntityData;      // Entity data 
}; 
 
// Equipment structure 
struct EquipmentData 
{ 
public: 
	EntityData   mEntityData;      // Entity data 
}; 
 
// Resource structure 
struct ResourceData 
{ 
public: 
	EntityData   mEntityData;      // Entity data 
}; 
 
#endif // _RE_GAME_DEFS_H_