#ifndef OBJECTAPPEARANCE_H #define OBJECTAPPEARANCE_H /*************************************************************************************************\ ObjectAppearance.h : Interface for the ObjectAppearance component, building and tree appearance keep their common elements here //---------------------------------------------------------------------------// // Copyright (C) Microsoft Corporation. All rights reserved. // //===========================================================================// \*************************************************************************************************/ #ifndef APPEARANCE_H #include "Appear.h" #endif #ifndef DSTD_H #include "dstd.h" #endif #ifndef OBJSTATUS_H #include "objstatus.h" #endif //************************************************************************************************* // WEAPON TYPES #define MECH3D_WEAPONTYPE_NONE -1 #define MECH3D_WEAPONTYPE_ANY 0 #define MECH3D_WEAPONTYPE_MISSILE 1 #define MECH3D_WEAPONTYPE_BALLISTIC 2 #define MECH3D_WEAPONTYPE_NONENERGY 3 #define MECH3D_WEAPONTYPE_ENERGY 4 #define MECH3D_WEAPONTYPE_DIRECT 5 // NOTES: // Each mech MUST have a place for each kind of weapon to fire. // I.e. There must be at least one zero OR at least a 3 and 4 OR at least a 1, 2 and 4 or its an ERROR!!!!!!!! typedef struct _NodeData { char *nodeId; //Used to determine where jumpjets, smoke and weapon fire come from. long weaponType; //What kind of weapon can use this node bool isRArmNode; //Used to stop firing from node when RArm is gone. bool isLArmNode; //Used to stop firing from node when LArm is gone. } NodeData; /************************************************************************************************** CLASS DESCRIPTION ObjectAppearance: **************************************************************************************************/ class ObjectAppearance: public Appearance { public: float lightIntensity; Stuff::Vector2DOf shapeMin; Stuff::Vector2DOf shapeMax; Stuff::Vector3D position; float rotation; long selected; // actually a bit field... long teamId; long homeTeamRelationship; float actualRotation; long objectNameId; long damage; long pilotNameID; char pilotName[32]; long paintScheme; MemoryPtr fadeTable; void setDamage( int Damage ) // editor uses this... nobody else should { damage = Damage; barStatus = Damage ? 0 : 1; if (Damage) setObjStatus(OBJECT_STATUS_DESTROYED); //Change the shape!! else setObjStatus(OBJECT_STATUS_NORMAL); //Change the shape!! } virtual void setHighlightColor( long argb ) { highlightColor = argb; } virtual long getObjectNameId () { return objectNameId; } virtual ~ObjectAppearance(){} protected: long highlightColor; ObjectAppearance(){ highlightColor = 0; damage = 0; lightIntensity = rotation = 0.0; selected = 0; pilotName[0] = 0;} /* private: ObjectAppearance( const ObjectAppearance& bjectAppearance ); ObjectAppearance& operator=( const ObjectAppearance& bjectAppearance ); */ }; //************************************************************************************************* #endif // end of file ( ObjectAppearance.h )