2020-05-27 09:21:20 +02:00
|
|
|
#pragma once
|
2020-06-04 11:00:08 +02:00
|
|
|
#include "items.h"
|
2020-05-27 09:21:20 +02:00
|
|
|
#include "control.h"
|
|
|
|
|
2020-06-04 11:00:08 +02:00
|
|
|
#define EffectFunction void(ITEM_INFO* item)
|
|
|
|
|
2020-05-30 15:55:23 +02:00
|
|
|
struct FX_INFO
|
|
|
|
{
|
|
|
|
PHD_3DPOS pos;
|
|
|
|
short roomNumber;
|
|
|
|
short objectNumber;
|
|
|
|
short nextFx;
|
|
|
|
short nextActive;
|
|
|
|
short speed;
|
|
|
|
short fallspeed;
|
|
|
|
short frameNumber;
|
|
|
|
short counter;
|
|
|
|
short shade;
|
|
|
|
short flag1;
|
|
|
|
short flag2;
|
|
|
|
};
|
2020-06-04 11:00:08 +02:00
|
|
|
|
2020-06-18 15:54:08 +02:00
|
|
|
extern std::function<EffectFunction> effect_routines[];
|
2020-06-21 14:27:12 +02:00
|
|
|
extern FX_INFO* EffectList;
|
2020-05-27 09:21:20 +02:00
|
|
|
|
2020-06-10 21:38:25 +02:00
|
|
|
bool ItemNearLara(PHD_3DPOS* pos, int radius);
|
|
|
|
bool ItemNearTarget(PHD_3DPOS* src, ITEM_INFO* target, int radius);
|
2020-05-27 09:21:20 +02:00
|
|
|
void StopSoundEffect(short sampleIndex);
|
|
|
|
short DoBloodSplat(int x, int y, int z, short speed, short yRot, short roomNumber);
|
|
|
|
void AddFootprint(ITEM_INFO* item);
|
|
|
|
void ControlWaterfallMist(short itemNumber);
|
|
|
|
void void_effect(ITEM_INFO* item);
|
|
|
|
void finish_level_effect(ITEM_INFO* item);
|
|
|
|
void turn180_effect(ITEM_INFO* item);
|
|
|
|
void floor_shake_effect(ITEM_INFO* item);
|
|
|
|
void SoundFlipEffect(ITEM_INFO* item);
|
|
|
|
void RubbleFX(ITEM_INFO* item);
|
|
|
|
void PoseidonSFX(ITEM_INFO* item);
|
|
|
|
void ActivateCamera(ITEM_INFO* item);
|
|
|
|
void ActivateKey(ITEM_INFO* item);
|
|
|
|
void SwapCrowbar(ITEM_INFO* item);
|
|
|
|
void ExplosionFX(ITEM_INFO* item);
|
|
|
|
void LaraLocation(ITEM_INFO* item);
|
|
|
|
void LaraLocationPad(ITEM_INFO* item);
|
|
|
|
void ResetTest(ITEM_INFO* item);
|
|
|
|
void KillActiveBaddies(ITEM_INFO* item);
|
|
|
|
void lara_hands_free(ITEM_INFO* item);
|
|
|
|
void shoot_right_gun(ITEM_INFO* item);
|
|
|
|
void shoot_left_gun(ITEM_INFO* item);
|
|
|
|
void SetFog(ITEM_INFO* item);
|
|
|
|
void invisibility_on(ITEM_INFO* item);
|
|
|
|
void invisibility_off(ITEM_INFO* item);
|
|
|
|
void reset_hair(ITEM_INFO* item);
|
|
|
|
void Richochet(PHD_3DPOS* pos);
|
|
|
|
void DoLotsOfBlood(int x, int y, int z, int speed, short direction, short roomNumber, int count);
|
2020-06-15 00:32:58 -05:00
|
|
|
void pickup(ITEM_INFO* item);
|
2020-07-23 15:29:02 -05:00
|
|
|
void puzzle(ITEM_INFO* item);
|