//----------------------------------------------------------------------------- // V12 Engine // // Copyright (c) 2001 GarageGames.Com // Portions Copyright (c) 2001 by Sierra Online, Inc. //----------------------------------------------------------------------------- #ifndef _STATICSHAPE_H_ #define _STATICSHAPE_H_ #ifndef _SHAPEBASE_H_ #include "game/shapeBase.h" #endif //---------------------------------------------------------------------------- struct StaticShapeData: public ShapeBaseData { typedef ShapeBaseData Parent; public: StaticShapeData(); bool noIndividualDamage; S32 dynamicTypeField; bool isShielded; F32 energyPerDamagePoint; // DECLARE_CONOBJECT(StaticShapeData); static void initPersistFields(); virtual void packData(BitStream* stream); virtual void unpackData(BitStream* stream); }; //---------------------------------------------------------------------------- class StaticShape: public ShapeBase { typedef ShapeBase Parent; StaticShapeData* mDataBlock; bool mPowered; void onUnmount(ShapeBase* obj,S32 node); protected: enum MaskBits { PositionMask = Parent::NextFreeMask, NextFreeMask = Parent::NextFreeMask << 1 }; public: DECLARE_CONOBJECT(StaticShape); StaticShape(); ~StaticShape(); bool onAdd(); void onRemove(); bool onNewDataBlock(GameBaseData* dptr); void processTick(const Move*); void interpolateTick(F32 dt); void setTransform(const MatrixF&); U32 packUpdate(NetConnection *, U32 mask, BitStream *stream); void unpackUpdate(NetConnection *, BitStream *stream); // power void setPowered(bool power) {mPowered = power;} bool isPowered() {return(mPowered);} static void consoleInit(); }; #endif