re3/src/render/SpecialFX.h

130 lines
2.8 KiB
C
Raw Normal View History

#pragma once
class CSpecialFX
{
public:
static void Render(void);
2019-10-18 22:23:40 +00:00
static void Update(void);
};
2019-06-30 19:06:55 +00:00
class CMotionBlurStreaks
{
public:
static void RegisterStreak(int32 id, uint8 r, uint8 g, uint8 b, CVector p1, CVector p2);
};
2019-06-30 20:55:48 +00:00
struct CBulletTrace
{
2020-03-21 17:14:29 +00:00
CVector m_vecCurrentPos;
CVector m_vecTargetPos;
2019-06-30 20:55:48 +00:00
bool m_bInUse;
uint8 m_framesInUse;
uint8 m_lifeTime;
2020-03-21 17:14:29 +00:00
void Update(void);
2019-06-30 20:55:48 +00:00
};
class CBulletTraces
{
public:
2020-03-21 17:14:29 +00:00
enum {
NUM_BULLET_TRACES = 16
};
static CBulletTrace (&aTraces)[NUM_BULLET_TRACES];
2019-06-30 20:55:48 +00:00
static void Init(void);
2020-03-21 17:14:29 +00:00
static void AddTrace(CVector*, CVector*);
static void Render(void);
static void Update(void);
2019-06-30 20:55:48 +00:00
};
2019-07-24 16:55:43 +00:00
class CBrightLights
{
public:
static void RegisterOne(CVector pos, CVector up, CVector right, CVector fwd, uint8 type, uint8 unk1 = 0, uint8 unk2 = 0, uint8 unk3 = 0);
};
2019-10-16 23:22:39 +00:00
enum
{
MARKERTYPE_0 = 0,
MARKERTYPE_ARROW,
MARKERTYPE_2,
MARKERTYPE_3,
MARKERTYPE_CYLINDER,
NUMMARKERTYPES,
MARKERTYPE_INVALID = 0x101
};
class C3dMarker
{
public:
CMatrix m_Matrix;
RpAtomic *m_pAtomic;
RpMaterial *m_pMaterial;
uint16 m_nType;
bool m_bIsUsed;
uint32 m_nIdentifier;
RwRGBA m_Color;
uint16 m_nPulsePeriod;
2019-10-26 11:09:50 +00:00
int16 m_nRotateRate;
2019-10-16 23:22:39 +00:00
uint32 m_nStartTime;
float m_fPulseFraction;
float m_fStdSize;
float m_fSize;
float m_fBrightness;
float m_fCameraRange;
bool AddMarker(uint32 identifier, uint16 type, float fSize, uint8 r, uint8 g, uint8 b, uint8 a, uint16 pulsePeriod, float pulseFraction, int16 rotateRate);
void DeleteMarkerObject();
void Render();
};
2019-07-24 16:55:43 +00:00
class C3dMarkers
{
public:
2019-10-16 23:22:39 +00:00
static void Init();
static void Shutdown();
static C3dMarker *PlaceMarker(uint32 id, uint16 type, CVector &pos, float size, uint8 r, uint8 g, uint8 b, uint8 a, uint16 pulsePeriod, float pulseFraction, int16 rotateRate);
static void PlaceMarkerSet(uint32 id, uint16 type, CVector &pos, float size, uint8 r, uint8 g, uint8 b, uint8 a, uint16 pulsePeriod, float pulseFraction, int16 rotateRate);
static void Render();
static void Update();
static C3dMarker(&m_aMarkerArray)[NUM3DMARKERS];
static int32 &NumActiveMarkers;
static RpClump* (&m_pRpClumpArray)[NUMMARKERTYPES];
2019-10-10 16:17:35 +00:00
};
class CMoneyMessage
{
friend class CMoneyMessages;
uint32 m_nTimeRegistered;
CVector m_vecPosition;
wchar m_aText[16];
CRGBA m_Colour;
float m_fSize;
float m_fOpacity;
public:
void Render();
};
class CMoneyMessages
{
static CMoneyMessage aMoneyMessages[NUMMONEYMESSAGES];
public:
static void Init();
static void Render();
static void RegisterOne(CVector vecPos, const char *pText, uint8 bRed, uint8 bGreen, uint8 bBlue, float fSize, float fOpacity);
2020-02-16 20:08:54 +00:00
};
class CSpecialParticleStuff
{
static uint32 BoatFromStart;
public:
static void CreateFoamAroundObject(CMatrix*, float, float, float, int32);
static void StartBoatFoamAnimation();
static void UpdateBoatFoamAnimation(CMatrix*);
};