Files
tech5/source/engine/gamelib/effectphysics/effectphysicsdebrisemitter.h
T

43 lines
1.2 KiB
C++

#pragma once
#include "gamelib/effectphysics/effectphysicspieceemitter.h"
class idDeclBreakable;
class idEffectPhysicsDebrisEmitter {
public:
struct emitBufferItem_t {
idVec3 pos;
idVec3 normal;
int count;
};
idEffectPhysicsDebrisEmitter();
void Init(const idDeclBreakable* breakableDebris, int entityNumber,
idClip& clip, idRenderModelEffects* renderModelEffects);
void EmitDebris(idVec3 position, idVec3 velocity, idVec3 normal,
int count, int currentTime);
void Update(const idVec3& origin, const idMat3& axis,
const idVec3& drawScale3D, int currentTime, int gameMsPerFrame);
idEffectPhysicsPieceEmitter piecePhysics;
emitBufferItem_t emitBuffer[10];
int emitBufferPos;
int serializeEmitCount;
bool skipFirstFrame;
bool active;
idRandom2 random;
private:
void EmitBuffered(const emitBufferItem_t& item,
const idVec3& velocity, int currentTime);
};
static_assert(sizeof(idEffectPhysicsDebrisEmitter::emitBufferItem_t) == 28,
"Recovered debris emit-buffer ABI changed");
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(idEffectPhysicsDebrisEmitter) == 464,
"Recovered idEffectPhysicsDebrisEmitter ABI changed");
#endif