TombEngine/TR5Main/Game/smoke.h

42 lines
1.1 KiB
C
Raw Normal View History

2020-05-23 14:26:06 +02:00
#pragma once
#include <d3d11.h>
#include <SimpleMath.h>
#include <array>
namespace T5M{
namespace Effects {
namespace Smoke {
struct SmokeParticle {
DirectX::SimpleMath::Vector4 sourceColor;
DirectX::SimpleMath::Vector4 destinationColor;
DirectX::SimpleMath::Vector4 color;
DirectX::SimpleMath::Vector3 position;
DirectX::SimpleMath::Vector3 velocity;
int room;
int sprite;
float gravity;
float friction;
float sourceSize;
float destinationSize;
float size;
float age;
float life;
float angularVelocity;
float angularDrag;
float rotation;
float terminalVelocity;
bool affectedByWind;
bool active;
};
2020-05-23 14:26:06 +02:00
extern std::array<SmokeParticle, 128> SmokeParticles;
2020-05-23 14:26:06 +02:00
void UpdateSmokeParticles();
void TriggerFlareSmoke(const DirectX::SimpleMath::Vector3& pos, DirectX::SimpleMath::Vector3& direction, int age, int room);
SmokeParticle& getFreeSmokeParticle();
void TriggerGunSmokeParticles(int x, int y, int z, short xv, short yv, short zv, byte initial, int weaponType, byte count);
}
}
}