1 #ifndef _kshape_h_ /* Is this your first time? */ 2 #define _kshape_h_ 1 3 4 #include "particle.h" 5 #include "sphere.h" 6 7 8 typedef struct 9 { 10 /* base coords */ 11 int X; 12 int Y; 13 int Z; 14 15 /* texels and intensity */ 16 int U; 17 int V; 18 19 /* coloured components */ 20 unsigned char R; 21 unsigned char G; 22 unsigned char B; 23 24 /* alpha component */ 25 unsigned char A; 26 27 /* specular colour */ 28 unsigned char SpecularR; 29 unsigned char SpecularG; 30 unsigned char SpecularB; 31 32 /* fog component */ 33 unsigned char Fog; 34 35 } RENDERVERTEX; 36 37 typedef struct 38 { 39 /* stamp used for lazy evaluation */ 40 int Stamp; 41 42 /* colour scalings */ 43 unsigned char R; 44 unsigned char G; 45 unsigned char B; 46 47 /* specular colour */ 48 unsigned char SpecularR; 49 unsigned char SpecularG; 50 unsigned char SpecularB; 51 52 /* fog component */ 53 unsigned char Fog; 54 55 } COLOURINTENSITIES; 56 57 58 typedef struct 59 { 60 RENDERVERTEX Vertices[maxpolypts]; 61 62 unsigned int NumberOfVertices; 63 64 unsigned int MinZ; 65 unsigned int MaxZ; 66 67 int ImageIndex; 68 69 unsigned char IsTextured :1; 70 unsigned char IsLit :1; 71 unsigned char IsSpecularLit :1; 72 enum TRANSLUCENCY_TYPE TranslucencyMode; 73 74 } RENDERPOLYGON; 75 76 extern RENDERVERTEX VerticesBuffer[9]; 77 extern RENDERPOLYGON RenderPolygon; 78 79 80 81 82 enum LIGHTING_MODEL_ID 83 { 84 LIGHTING_MODEL_STANDARD, 85 LIGHTING_MODEL_HIERARCHICAL, 86 LIGHTING_MODEL_PRELIT, 87 }; 88 89 90 extern void InitialiseLightIntensityStamps(void); 91 92 extern int FindHeatSourcesInHModel(DISPLAYBLOCK *dispPtr); 93 94 95 extern void TranslationSetup(void); 96 extern void TranslatePointIntoViewspace(VECTORCH *pointPtr); 97 98 extern void CheckRenderStatesForModule(MODULE *modulePtr); 99 100 101 extern void RenderDecal(DECAL *decalPtr); 102 extern void RenderParticle(PARTICLE *particlePtr); 103 void RenderInsideAlienTongue(int offset); 104 void RenderPredatorTargetingSegment(int theta, int scale, int drawInRed); 105 void RenderPredatorPlasmaCasterCharge(int value, VECTORCH *worldOffsetPtr, MATRIXCH *orientationPtr); 106 void CreateStarArray(void); 107 void OutputTranslucentPolyList(void); 108 void RenderLightFlare(VECTORCH *positionPtr, unsigned int colour); 109 extern void RenderFlechetteParticle(PARTICLE *particlePtr); 110 void RenderExplosionSurface(VOLUMETRIC_EXPLOSION *explosionPtr); 111 void ClearTranslucentPolyList(void); 112 void AddHierarchicalShape(DISPLAYBLOCK *dptr, VIEWDESCRIPTORBLOCK *VDB_Ptr); 113 114 /* KJL 10:25:44 7/23/97 - this offset is used to push back the normal game gfx, 115 so that the HUD can be drawn over the top without sinking into walls, etc. */ 116 extern int HeadUpDisplayZOffset; 117 118 /* KJL 16:17:13 11/02/98 - heat source containment */ 119 typedef struct 120 { 121 VECTORCH Position; 122 } HEATSOURCE; 123 124 #define MAX_NUMBER_OF_HEAT_SOURCES 10 125 extern HEATSOURCE HeatSourceList[]; 126 extern int NumberOfHeatSources; 127 128 #define MIRRORING_ON 1 129 130 #if MIRRORING_ON 131 extern int MirroringActive; 132 extern int MirroringAxis; 133 #endif 134 135 #endif 136