Files

50 lines
1.3 KiB
C++

#pragma once
#include "idlib/math/vector.h"
class idMaterial;
class idRenderModelEffects;
class idSerializer;
class idTracerManager {
public:
struct tracerBufferItem_t {
int startTime;
int lifeTime;
float speed;
idVec3 origin;
idVec3 dir;
float length;
float height;
const idMaterial* mat;
idVec3 maxDist;
bool ensureVisual;
float fractionInsured;
int playerIndex;
};
idTracerManager();
void Init(idRenderModelEffects* effectsModel, int playerIndex);
void AddTracer(const idMaterial* material, const idVec3& origin,
const idVec3& direction, const idVec3& maxDistance, float speed,
float length, float height, bool ensureVisual,
float fractionInsured, int playerIndex);
void Update(int time);
void Serialize(idSerializer& serializer);
idRenderModelEffects* effectsModel;
tracerBufferItem_t tracerBuffer[4];
int tracerBufferPos;
int serializeTracerCount;
bool catchingUp;
int localPlayerIndex;
};
static_assert(sizeof(idTracerManager::tracerBufferItem_t) == 72,
"Recovered tracer buffer ABI changed");
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(idTracerManager) == 308,
"Recovered idTracerManager ABI changed");
#endif