TombEngine/TR5Main/Game/tomb4fx.h

85 lines
2.8 KiB
C
Raw Normal View History

2018-08-19 09:46:58 +02:00
#pragma once
#include "..\Global\types.h"
2020-01-20 18:10:17 +01:00
#include "..\Global\constants.h"
2018-08-19 09:46:58 +02:00
struct ENERGY_ARC
{
PHD_VECTOR pos1; // 0
short rotation; // 12
short filler[5];
PHD_VECTOR pos3; // 24
PHD_VECTOR pos4; // 36
byte r; // 48
byte g; // 49
byte b; // 50
2020-03-18 20:22:58 +01:00
short sLife; // 52
short life; // 51
short amplitude;
short segmentSize; // 64
short sAmplitude; // 53
byte type; // 61
byte flags; // 62
signed char direction; // 63
};
#define ENERGY_ARC_STRAIGHT_LINE 0
#define ENERGY_ARC_CIRCLE 1
extern int LaserSightX;
extern int LaserSightY;
extern int LaserSightZ;
extern char LaserSightActive;
extern char LaserSightCol;
extern int NextFireSpark;
extern int NextSmokeSpark;
extern int NextBubble;
extern int NextDrip;
extern int NextBlood;
extern int NextSpider;
extern int NextGunShell;
2020-01-20 18:10:17 +01:00
extern SMOKE_SPARKS SmokeSparks[MAX_SPARKS_SMOKE];
extern ENERGY_ARC EnergyArcs[MAX_ENERGY_ARCS];
2020-01-20 18:10:17 +01:00
void TriggerBlood(int x, int y, int z, int unk, int num);
void TriggerExplosionBubble(int x, int y, int z, short roomNum);
int GetFreeFireSpark();
void TriggerGlobalStaticFlame();
void TriggerGlobalFireSmoke();
void TriggerGlobalFireFlame();
void keep_those_fires_burning();
void ClearFires();
void AddFire(int x, int y, int z, char size, short roomNum, short on);
void UpdateFireSparks();
int GetFreeSmokeSpark();
void UpdateSmoke();
byte TriggerGunSmoke_SubFunction(int weaponType);
void TriggerGunSmoke(int x, int y, int z, short xv, short yv, short zv, byte initial, int weaponType, byte count);
void TriggerShatterSmoke(int x, int y, int z);
int GetFreeBlood();
void TriggerBlood(int x, int y, int z, int unk, int num);
void UpdateBlood();
int GetFreeGunshell();
void TriggerGunShell(short hand, short objNum, int weaponType);
void UpdateGunShells();
void AddWaterSparks(int x, int y, int z, int num);
int GetFreeBubble();
void CreateBubble(PHD_VECTOR* pos, short roomNum, int unk1, int unk2, int flags, int xv, int yv, int zv);
void LaraBubbles(ITEM_INFO* item);
void UpdateBubbles();
int GetFreeDrip();
void UpdateDrips();
void TriggerLaraDrips();
int ExplodingDeath2(short itemNumber, int meshBits, short damage);
int GetFreeShockwave();
void TriggerShockwave(PHD_3DPOS* pos, short innerRad, short outerRad, int speed, char r, char g, char b, char life, short angle, short flags);
void TriggerShockwaveHitEffect(int x, int y, int z, int color, short rot, int vel);
void UpdateShockwaves();
void TriggerSmallSplash(int x, int y, int z, int num);
2019-12-28 15:29:33 +01:00
void SetFadeClip(short height, short speed);
void TriggerLightningGlow(int x, int y, int z, int rgb);
void TriggerEnergyArc(PHD_VECTOR* start, PHD_VECTOR* end, byte r, byte g, byte b, short segmentSize, short life, short amplitude, byte type);
void UpdateEnergyArcs();
void Inject_Tomb4FX();