Redline/source/entities.h

117 lines
2.1 KiB
C
Raw Normal View History

#ifndef __ENTITIES
#define __ENTITIES
#include "vectors.h"
#include "fileio.h"
enum{
kRenderTypeNone=0,
kRenderTypeModel,
kRenderTypeCar,
kRenderTypeGhost
};
enum{
kPhysicsTypeNone=0,
kPhysicsTypeCar,
kPhysicsTypeSolid,
kPhysicsTypeGhost
};
enum{
kPhysicsNone=0,
kPhysicsLocal,
kPhysicsRemote
};
enum{
kControlTypeNone=0,
kControlTypeUserInput,
kControlTypeAIInput
};
enum{
kPathTypeCircular=0,
kPathTypeSin
};
typedef struct{
tVector3 tfr,tfl,trl,trr,bfr,bfl,brl,brr;
} tCollBox;
enum{
kLightTypeDot=0,
kLightTypeSpot,
kLightTypeDotRefelective,
kLightTypeDirectionlessDot,
kLightTypeDirectionlessDotReflective,
kLightTypeSpecularDot
};
typedef struct{
tVector3 pos,dir,rgb;
float size,radius;
int type;
int onFlags;
int offFlags;
} tLightDefinition;
typedef struct{
int model;
int shadowModel;
float maxCollRadius;
int numCollBoxes;
int numColors;
int sparks;
int randomColor;
tCollBox *coll;
tVector3 massCenter;
int movable,followPath,pathType,liquid,particleStick;
tFileRef particle;
tFileRef sound;
int numSounds;
float particleAmount,particleSize;
float pathSize,pathVelo;
float mass,inertia;
int numLights;
tLightDefinition *lights;
} tSolidEntityPhysics;
#define kNumAvgRVelos 32
typedef struct{
void *next,*prev;
tVector3 pos,velo,oldPos,netVelo,collVelo,netPos,accel;
tMatrix3 dir,rVelo,oldDir,netDir,netRVelo;
tMatrix3 lastRVelos[kNumAvgRVelos];
tVector3 lastVelos[kNumAvgRVelos];
tVector3 lastAccel[kNumAvgRVelos];
tVector3 remoteCameraPos;
int renderType,renderData;
int physicsType,physicsData,physicsMachine;
int untouchable;
int controlType;
void *soundSource;
int id;
int lastFrame;
int lastRoadIndex;
int lastActivity;
int lastPacketSent;
tVector3 lastVeloSent;
tVector3 lastRZSent;
tVector3 lastDirZSent;
int lastPacketSaved;
tVector3 lastVeloSaved;
tVector3 lastRZSaved;
tVector3 lastDirZSaved;
float zDist;
void *physics;
void *regData;
} tGameEntity;
extern tGameEntity *gFirstEntity,*gCameraEntity,*gViewedEntity;
void EntityResetCount();
tGameEntity *EntityNew(tGameEntity *prev);
#endif