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_