mirror of
https://github.com/tribes2/engine.git
synced 2026-01-26 22:54:47 +00:00
95 lines
2.1 KiB
C++
95 lines
2.1 KiB
C++
//-----------------------------------------------------------------------------
|
|
// V12 Engine
|
|
//
|
|
// Copyright (c) 2001 GarageGames.Com
|
|
// Portions Copyright (c) 2001 by Sierra Online, Inc.
|
|
//-----------------------------------------------------------------------------
|
|
|
|
#ifndef _H_TRACERPROJECTILE
|
|
#define _H_TRACERPROJECTILE
|
|
|
|
#ifndef _LINEARPROJECTILE_H_
|
|
#include "game/linearProjectile.h"
|
|
#endif
|
|
#ifndef _COLOR_H_
|
|
#include "Core/color.h"
|
|
#endif
|
|
|
|
struct DebrisData;
|
|
|
|
// -------------------------------------------------------------------------
|
|
class TracerProjectileData : public LinearProjectileData
|
|
{
|
|
typedef LinearProjectileData Parent;
|
|
|
|
enum Constants
|
|
{
|
|
NUM_TEX = 2,
|
|
};
|
|
|
|
protected:
|
|
bool onAdd();
|
|
|
|
//-------------------------------------- Console set variables
|
|
public:
|
|
F32 tracerLength;
|
|
bool tracerAlpha;
|
|
F32 tracerMinPixels;
|
|
ColorF tracerColor;
|
|
F32 tracerWidth;
|
|
F32 crossViewAng;
|
|
F32 crossSize;
|
|
bool renderCross;
|
|
|
|
StringTableEntry textureName[NUM_TEX];
|
|
TextureHandle textureHandle[NUM_TEX];
|
|
|
|
public:
|
|
TracerProjectileData();
|
|
~TracerProjectileData();
|
|
|
|
void packData(BitStream*);
|
|
void unpackData(BitStream*);
|
|
bool preload(bool server, char errorBuffer[256]);
|
|
|
|
DECLARE_CONOBJECT(TracerProjectileData);
|
|
static void initPersistFields();
|
|
};
|
|
|
|
|
|
// -------------------------------------------------------------------------
|
|
class TracerProjectile : public LinearProjectile
|
|
{
|
|
typedef LinearProjectile Parent;
|
|
|
|
private:
|
|
TracerProjectileData* mDataBlock;
|
|
|
|
protected:
|
|
bool onAdd();
|
|
void onRemove();
|
|
bool onNewDataBlock(GameBaseData*);
|
|
|
|
// Rendering
|
|
protected:
|
|
bool prepRenderImage(SceneState*, const U32, const U32, const bool);
|
|
void renderObject(SceneState*, SceneRenderImage*);
|
|
void renderProjectile( const Point3F &camPos );
|
|
void renderCrossSection( const Point3F &camPos );
|
|
|
|
F32 mCurrLength;
|
|
|
|
public:
|
|
TracerProjectile();
|
|
~TracerProjectile();
|
|
|
|
// Time/Move Management
|
|
public:
|
|
void advanceTime(F32);
|
|
|
|
DECLARE_CONOBJECT(TracerProjectile);
|
|
};
|
|
|
|
#endif // _H_TRACERPROJECTILE
|
|
|