mirror of
https://github.com/tribes2/engine.git
synced 2026-01-24 21:54:45 +00:00
101 lines
2.6 KiB
C++
101 lines
2.6 KiB
C++
//-----------------------------------------------------------------------------
|
|
// V12 Engine
|
|
//
|
|
// Copyright (c) 2001 GarageGames.Com
|
|
// Portions Copyright (c) 2001 by Sierra Online, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef _H_STATIONFXPERSONAL
|
|
#define _H_STATIONFXPERSONAL
|
|
|
|
#ifndef _GAMEBASE_H_
|
|
#include "game/gameBase.h"
|
|
#endif
|
|
|
|
class ShapeBase;
|
|
|
|
|
|
//--------------------------------------------------------------------------
|
|
// StationFXPersonalData
|
|
//--------------------------------------------------------------------------
|
|
class StationFXPersonalData : public GameBaseData
|
|
{
|
|
public:
|
|
|
|
enum StationFXConsts
|
|
{
|
|
SFXC_NUM_TEX = 2,
|
|
};
|
|
|
|
|
|
typedef GameBaseData Parent;
|
|
|
|
F32 delay;
|
|
F32 fadeDelay;
|
|
F32 lifetime;
|
|
F32 height;
|
|
F32 leftRadius;
|
|
F32 rightRadius;
|
|
U32 numArcSegments;
|
|
F32 numDegrees;
|
|
F32 trailFadeTime;
|
|
|
|
StringTableEntry leftNodeName;
|
|
StringTableEntry rightNodeName;
|
|
|
|
StringTableEntry textureName[SFXC_NUM_TEX];
|
|
TextureHandle textureHandle[SFXC_NUM_TEX];
|
|
|
|
|
|
|
|
StationFXPersonalData();
|
|
DECLARE_CONOBJECT(StationFXPersonalData);
|
|
bool onAdd();
|
|
bool preload(bool server, char errorBuffer[256]);
|
|
static void initPersistFields();
|
|
virtual void packData(BitStream* stream);
|
|
virtual void unpackData(BitStream* stream);
|
|
};
|
|
|
|
|
|
|
|
//--------------------------------------------------------------------------
|
|
// StationFXPersonal
|
|
//--------------------------------------------------------------------------
|
|
class StationFXPersonal : public GameBase
|
|
{
|
|
typedef GameBase Parent;
|
|
|
|
private:
|
|
StationFXPersonalData * mDataBlock;
|
|
S32 mCurrMS;
|
|
S32 mStationObjectID;
|
|
SimObjectPtr<ShapeBase> mStationObject;
|
|
F32 mElapsedTime;
|
|
|
|
void renderWall( F32 numSegments, F32 radius, F32 height, StringTableEntry nodeName, F32 numDegrees );
|
|
|
|
protected:
|
|
bool onAdd();
|
|
void onRemove();
|
|
|
|
U32 packUpdate(NetConnection*, U32 mask, BitStream* stream);
|
|
void unpackUpdate(NetConnection*, BitStream* stream);
|
|
|
|
bool prepRenderImage(SceneState*, const U32, const U32, const bool);
|
|
void renderObject(SceneState*, SceneRenderImage*);
|
|
|
|
void advanceTime(F32);
|
|
bool onNewDataBlock(GameBaseData* dptr);
|
|
void processTick(const Move*);
|
|
|
|
public:
|
|
StationFXPersonal();
|
|
|
|
DECLARE_CONOBJECT(StationFXPersonal);
|
|
static void initPersistFields();
|
|
};
|
|
|
|
#endif // _H_STATIONFXPERSONAL
|
|
|