123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- //---------------------------------------------------------------------------
- //
- // cevfx.h - This file contains the class declarations for the VFX Shape Element
- //
- //---------------------------------------------------------------------------//
- // Copyright (C) Microsoft Corporation. All rights reserved. //
- //===========================================================================//
- #ifndef CEVFX_H
- #define CEVFX_H
- //---------------------------------------------------------------------------
- // Include files
- #ifndef CELEMENT_H
- #include "celement.h"
- #endif
- #include <float.h>
- #include <gameos.hpp>
- //---------------------------------------------------------------------------
- class VFXElement : public Element
- {
- public:
-
- MemoryPtr shapeTable;
- long frameNum;
- long x,y;
- bool reverse;
- MemoryPtr fadeTable;
- bool noScaleDraw;
- bool scaleUp;
- VFXElement (void)
- {
- shapeTable = NULL;
- frameNum = 0;
- x = y = 0;
- reverse = FALSE;
-
- fadeTable = NULL;
-
- noScaleDraw = FALSE;
- scaleUp = FALSE;
- }
- VFXElement (MemoryPtr _shape, long _x, long _y, long frame, bool rev, MemoryPtr fTable = NULL, bool noScale = FALSE, bool scaleUp = FALSE);
- VFXElement (MemoryPtr _shape, float _x, float _y, long frame, bool rev, MemoryPtr fTable = NULL, bool noScale = FALSE, bool scaleUp = FALSE);
- virtual void draw (void);
- };
- #define MAX_ELEMENT_SHAPES 4
- //---------------------------------------------------------------------------
- class VFXShapeElement : public Element
- {
- public:
-
- //---------------------------------------
- // This new element class combines all of
- // the shapes into a single Texture for
- // rendering. Can be used for vehicles
- // and mechs in MechCmdr 2.
- MemoryPtr shapeTable[MAX_ELEMENT_SHAPES];
- long frameNum[MAX_ELEMENT_SHAPES];
- bool reverse[MAX_ELEMENT_SHAPES];
- long x,y,xHS,yHS;
- unsigned long *fadeTable;
- DWORD textureMemoryHandle;
- long actualHeight;
- float textureFactor;
- DWORD lightRGB;
- DWORD fogRGB;
- float z,topZ;
- VFXShapeElement (void)
- {
- shapeTable[0] = shapeTable[1] = shapeTable[2] = shapeTable[3] = NULL;
- frameNum[0] = frameNum[1] = frameNum[2] = frameNum[3] = 0;
- x = y = 0;
- reverse[0] = reverse[1] = reverse[2] = reverse[3] = FALSE;
-
- fadeTable = NULL;
- textureMemoryHandle = 0xffffffff;
- actualHeight = -1;
-
- lightRGB = 0xffffffff; //Fully Lit
- fogRGB = 0xffffffff; //NO Fog
- }
- void init (MemoryPtr _shape, long _x, long _y, long frame, bool rev, unsigned long *fTable = NULL, float _z = 0.0, float tZ = 0.0);
- long getTextureHandle (long height = -1); //Return the block of memory so I store it for this mech/vehicle,etc.
- void setTextureHandle (DWORD handle, long height = -1);
- void setLight (DWORD light)
- {
- lightRGB = light;
- }
- void setFog (DWORD fog)
- {
- fogRGB = fog;
- }
- void drawShape (void);
-
- virtual void draw (void);
- };
- //---------------------------------------------------------------------------
- class TextureElement : public Element
- {
- public:
-
- //-----------------------------------------
- // This just draws a textured face.
- // Texture is passed in when inited.
- // For use with Cards. Not real 3D faces!
- long x, y, xHS, yHS;
- float tWidth;
- float z,topZ;
- DWORD textureMemoryHandle;
- DWORD lightRGB;
- DWORD fogRGB;
- TextureElement (void)
- {
- x = y = 0;
- topZ = z = 0.0;
- textureMemoryHandle = 0xffffffff;
- lightRGB = 0xffffffff;
- }
- void setLight (DWORD light)
- {
- lightRGB = light;
- }
- void setFog (DWORD fog)
- {
- fogRGB = fog;
- }
-
- void init (DWORD textureHandle, long _x, long _y, long hsx, long hsy, float tWidth, float _z, float tZ);
- virtual void draw (void);
- };
- //---------------------------------------------------------------------------
- class PolygonQuadElement : public Element
- {
- public:
-
- //--------------------------------
- // This draws any untextured face.
- // Useful for status bars, etc.
- gos_VERTEX vertices[4];
-
- PolygonQuadElement (void)
- {
- }
-
- void init (gos_VERTEX *v);
-
- virtual void draw (void);
- };
- //---------------------------------------------------------------------------
- class PolygonTriElement : public Element
- {
- public:
-
- //--------------------------------
- // This draws any untextured face.
- // Useful for status bars, etc.
- gos_VERTEX vertices[3];
-
- PolygonTriElement (void)
- {
- }
-
- void init (gos_VERTEX *v);
-
- virtual void draw (void);
- };
- //---------------------------------------------------------------------------
- class TexturedPolygonQuadElement : public PolygonQuadElement
- {
- public:
-
- //--------------------------------
- // This draws any untextured face.
- // Useful everywhere
- DWORD textureHandle;
- bool zWrite;
- bool zComp;
-
- TexturedPolygonQuadElement (void)
- {
- }
-
- void init (gos_VERTEX *v, DWORD tHandle, bool writeZ = true, bool compZ = true);
-
- virtual void draw (void);
- };
- //---------------------------------------------------------------------------
- class TexturedPolygonTriElement : public PolygonTriElement
- {
- public:
-
- //--------------------------------
- // This draws any textured face.
- // Useful everywhere.
- DWORD textureHandle;
-
- TexturedPolygonTriElement (void)
- {
- }
-
- void init (gos_VERTEX *v, DWORD tHandle);
-
- virtual void draw (void);
- };
- //---------------------------------------------------------------------------
- #endif
|