2019-11-12 12:28:54 +01:00
|
|
|
#pragma once
|
2019-11-26 15:55:37 +01:00
|
|
|
#include "../Global/global.h"
|
2019-11-12 12:28:54 +01:00
|
|
|
|
2020-03-15 09:05:43 +01:00
|
|
|
//#define GuardControl ((void (__cdecl*)(short)) 0x0046F5E0)
|
2020-01-30 07:33:53 +01:00
|
|
|
//#define ControlSubmarine ((void (__cdecl*)(short)) 0x0045D3F0)
|
2019-12-29 20:15:30 +01:00
|
|
|
//#define ControlDoberman ((void (__cdecl*)(short)) 0x00428A10)
|
2020-02-01 07:54:26 +01:00
|
|
|
//#define ControlDog ((void (__cdecl*)(short)) 0x0043B730)
|
2019-12-29 20:53:05 +01:00
|
|
|
//#define ControlReaper ((void (__cdecl*)(short)) 0x0045DAF0)
|
2019-12-30 09:37:50 +01:00
|
|
|
//#define ControlLarson ((void (__cdecl*)(short)) 0x0046A080)
|
2020-03-15 11:15:55 +01:00
|
|
|
//#define HitmanControl ((void (__cdecl*)(short)) 0x0043A340)
|
2020-03-15 09:05:43 +01:00
|
|
|
//#define SniperControl ((void (__cdecl*)(short)) 0x00478250)
|
2020-02-01 07:54:26 +01:00
|
|
|
//#define InitialiseChef ((void (__cdecl*)(short)) 0x00410990) // not used anymore !
|
|
|
|
//#define ControlChef ((void (__cdecl*)(short)) 0x00410A60) // not used anymore !
|
2020-03-15 09:05:43 +01:00
|
|
|
#define GuardControlLaser ((void (__cdecl*)(short)) 0x0048CDD0)
|
2020-02-08 17:27:54 +01:00
|
|
|
//#define ControlHydra ((void (__cdecl*)(short)) 0x0043BF70)
|
2019-12-29 21:22:21 +01:00
|
|
|
//#define ControlImp ((void (__cdecl*)(short)) 0x0043BEA0)
|
2019-11-27 15:12:35 +01:00
|
|
|
#define ControlLightingGuide ((void (__cdecl*)(short)) 0x0048E580)
|
2019-12-29 23:43:32 +01:00
|
|
|
//#define ControlBrowsBeast ((void (__cdecl*)(short)) 0x0048E960)
|
2020-02-01 07:54:26 +01:00
|
|
|
//#define InitialiseLagoonWitch ((void (__cdecl*)(short)) 0x0047D2D0) // not used anymore !
|
|
|
|
//#define ControlLagoonWitch ((void (__cdecl*)(short)) 0x0047D360) // not used anymore !
|
2019-12-29 23:43:32 +01:00
|
|
|
//#define ControlInvisibleGhost ((void (__cdecl*)(short)) 0x00477AB0)
|
2020-01-30 11:24:12 +01:00
|
|
|
//#define InitialiseLittleBats ((void (__cdecl*)(short)) 0x00407EC0)
|
|
|
|
//#define ControlLittleBats ((void (__cdecl*)(short)) 0x00407F50)
|
2020-02-14 07:42:20 +01:00
|
|
|
//#define InitialiseSpiders ((void (__cdecl*)(short)) 0x0043F2B0)
|
|
|
|
//#define ControlSpiders ((void (__cdecl*)(short)) 0x0047A200)
|
2019-12-29 23:43:32 +01:00
|
|
|
//#define ControlGladiator ((void (__cdecl*)(short)) 0x00436700)
|
2020-01-21 21:25:24 +01:00
|
|
|
//#define ControlRomanStatue ((void (__cdecl*)(short)) 0x0046BC10)
|
2020-02-10 10:38:00 +01:00
|
|
|
//#define ControlAutoGuns ((void (__cdecl*)(short)) 0x004078A0)
|
2020-02-08 16:55:32 +01:00
|
|
|
//#define ControlGunShip ((void (__cdecl*)(short)) 0x00487FF0)
|
2019-12-20 11:23:03 +01:00
|
|
|
|
2020-01-24 10:40:46 +01:00
|
|
|
//#define InitialiseRomanStatue ((void (__cdecl*)(short)) 0x0046BB00) // need to check a dword_ variable before decompiling
|
2019-12-20 11:23:03 +01:00
|
|
|
|
2020-02-14 07:42:20 +01:00
|
|
|
extern int NextBat;
|
2020-01-30 11:24:12 +01:00
|
|
|
extern BAT_STRUCT* Bats;
|
|
|
|
|
2020-02-14 07:42:20 +01:00
|
|
|
extern int NextSpider;
|
|
|
|
extern SPIDER_STRUCT* Spiders;
|
|
|
|
|
|
|
|
extern int NextRat;
|
|
|
|
extern RAT_STRUCT* Rats;
|
|
|
|
|
2019-12-20 11:23:03 +01:00
|
|
|
void InitialiseGuard(short itemNum);
|
2020-03-15 09:05:43 +01:00
|
|
|
void InitialiseSniper(short itemNum);
|
2019-12-20 11:23:03 +01:00
|
|
|
void InitialiseGuardLaser(short itemNum);
|
|
|
|
void InitialiseSubmarine(short itemNum);
|
|
|
|
void InitialiseDoberman(short itemNum);
|
|
|
|
void InitialiseDog(short itemNum);
|
|
|
|
void InitialiseReaper(short itemNum);
|
|
|
|
void InitialiseLarson(short itemNum);
|
2020-03-15 11:15:55 +01:00
|
|
|
void InitialiseHitman(short itemNum);
|
2019-12-20 11:23:03 +01:00
|
|
|
void InitialiseHydra(short itemNum);
|
|
|
|
void InitialiseImp(short itemNum);
|
|
|
|
void InitialiseLightingGuide(short itemNum);
|
|
|
|
void InitialiseBrownBeast(short itemNum);
|
|
|
|
void InitialiseInvisibleGhost(short itemNum);
|
|
|
|
void InitialiseGladiator(short itemNum);
|
|
|
|
/// void InitialiseRomanStatue(short itemNum)
|
2019-12-23 23:10:24 +01:00
|
|
|
void InitialiseAutoGuns(short itemNum);
|
|
|
|
void InitialisePushableBlock(short itemNum);
|
|
|
|
void ClearMovableBlockSplitters(int x, int y, int z, short roomNumber);
|
|
|
|
void PushableBlockControl(short itemNumber);
|
|
|
|
void PushableBlockCollision(short itemNum, ITEM_INFO* laraitem, COLL_INFO* coll);
|
|
|
|
int TestBlockMovable(ITEM_INFO* item, int blokhite);
|
|
|
|
int TestBlockPush(ITEM_INFO* item, int blokhite, unsigned short quadrant);
|
2019-12-24 13:52:22 +01:00
|
|
|
int TestBlockPull(ITEM_INFO* item, int blokhite, short quadrant);
|
2020-03-15 09:05:43 +01:00
|
|
|
void GuardControl(short itemNum);
|
2019-12-29 20:53:05 +01:00
|
|
|
void ControlDoberman(short itemNumber);
|
|
|
|
void ControlReaper(short itemNumber);
|
2020-03-15 09:05:43 +01:00
|
|
|
void SniperControl(short itemNumber);
|
2019-12-29 21:22:21 +01:00
|
|
|
void ImpThrowStones(ITEM_INFO* item);
|
|
|
|
void ControlImp(short itemNumber);
|
2019-12-29 23:43:32 +01:00
|
|
|
void ControlGladiator(short itemNumber);
|
|
|
|
void ControlBrowsBeast(short itemNumber);
|
|
|
|
void ControlInvisibleGhost(short itemNumber);
|
2019-12-29 23:53:48 +01:00
|
|
|
short GetNextRat();
|
|
|
|
void ControlLittleRats(short itemNumber);
|
2020-03-15 09:05:43 +01:00
|
|
|
void InitialiseMafia2(short itemNum);
|
|
|
|
void Mafia2Control(short itemNum);
|
2019-12-30 09:37:50 +01:00
|
|
|
void ControlDog(short itemNumber);
|
2020-01-05 07:52:30 +01:00
|
|
|
void ControlLarson(short itemNumber);
|
|
|
|
void InitialiseRaisingBlock(short itemNumber);
|
2020-01-05 10:11:54 +01:00
|
|
|
void ControlRaisingBlock(short itemNumber);
|
|
|
|
void InitialiseTeethSpikes(short itemNumber);
|
|
|
|
int CollidedWithTeethSpikes(ITEM_INFO* item);
|
|
|
|
void ControlTeethSpikes(short itemNumber);
|
2020-01-06 07:38:54 +01:00
|
|
|
void PulseLightControl(short itemNumber);
|
|
|
|
void TriggerAlertLight(int x, int y, int z, int r, int g, int b, int rot, __int16 roomNumber, __int16 falloff);
|
|
|
|
void StrobeLightControl(short itemNumber);
|
|
|
|
void ColorLightControl(short itemNumber);
|
|
|
|
void ElectricalLightControl(short itemNumber);
|
|
|
|
void BlinkingLightControl(short itemNumber);
|
2020-01-07 15:22:13 +01:00
|
|
|
void InitialiseTwoBlocksPlatform(short itemNumber);
|
|
|
|
void TwoBlocksPlatformControl(short itemNumber);
|
|
|
|
void TwoBlocksPlatformFloor(ITEM_INFO* item, int x, int y, int z, int* height);
|
|
|
|
void TwoBlocksPlatformCeiling(ITEM_INFO* item, int x, int y, int z, int* height);
|
|
|
|
int IsOnTwoBlocksPlatform(ITEM_INFO* item, int x, int z);
|
|
|
|
void InitialiseRaisingCog(short itemNumber);
|
|
|
|
void RaisingCogControl(short itemNumber);
|
2020-01-14 07:34:10 +01:00
|
|
|
void TriggerElectricityWiresSparks(int x, int z, char objNum, char node, int flags);
|
|
|
|
void TriggerLaraElectricitySparks(int flame);
|
|
|
|
int ElectricityWireCheckDeadlyBounds(PHD_VECTOR* pos, short delta);
|
|
|
|
void ElectricityWiresControl(short itemNumber);
|
|
|
|
void InitialiseRomeHammer(short itemNumber);
|
2020-01-20 07:29:37 +01:00
|
|
|
void InitialiseSmokeEmitter(short itemNumber);
|
|
|
|
void SmokeEmitterControl(short itemNumber);
|
2020-01-20 18:10:17 +01:00
|
|
|
void RomanStatueHitEffect(ITEM_INFO* item, PHD_VECTOR* pos, int joint);
|
|
|
|
void TriggerRomanStatueShockwaveAttackSparks(int x, int y, int z, int color);
|
|
|
|
void TriggerRomanStatueScreamingSparks(int x, int y, int z, short xv, short yv, short zv, int flags);
|
|
|
|
void TriggerRomanStatueAttackEffect1(short itemNum, int factor);
|
|
|
|
void RomanStatueAttack(PHD_3DPOS* pos, short roomNumber, short count);
|
2020-03-16 12:36:29 +01:00
|
|
|
void TriggerRomanStatueMissileSparks(PHD_VECTOR* pos, char fxObj);
|
2020-01-24 10:40:46 +01:00
|
|
|
void InitialiseRomanStatue(short itemNum);
|
2020-01-21 21:25:24 +01:00
|
|
|
void ControlRomanStatue(short itemNumber);
|
|
|
|
void InitialiseTeleporter(short itemNumber);
|
|
|
|
void ControlTeleporter(short itemNumber);
|
2020-01-22 21:22:35 +01:00
|
|
|
void InitialiseHighObject1(short itemNumber);
|
|
|
|
void ControlHighObject1(short itemNumber);
|
Decompiled ID_DARTS, ID_DART_EMITTER, ID_FALLING_CEILING, ID_PROPELLER_H, ID_PROPELLER_V, KillAllTriggersControl, InitialiseFlameEmitter, FlameEmitterCollision, InitialiseFlameEmitter2 , GenSlot1Control, InitialiseGenSlot3, InitialiseGenSlot4;
2020-01-28 07:30:58 +01:00
|
|
|
void VentilatorEffect(short* bounds, int intensity, short rot, int speed);
|
|
|
|
void InitialiseVentilator(short itemNumber);
|
|
|
|
void VentilatorControl(short itemNumber);
|
|
|
|
void GenSlot1Control(short itemNumber);
|
|
|
|
void InitialiseGenSlot3(short itemNumber);
|
|
|
|
void DartControl(short itemNumber);
|
|
|
|
void DartEmitterControl(short itemNumber);
|
|
|
|
void FallingCeilingControl(short itemNumber);
|
2020-01-29 07:16:33 +01:00
|
|
|
void RollingBallCollision(short itemNumber, ITEM_INFO* l, COLL_INFO* coll);
|
2020-01-29 08:29:15 +01:00
|
|
|
void RollingBallControl(short itemNumber);
|
|
|
|
void DeathSlideCollision(short itemNumber, ITEM_INFO* l, COLL_INFO* coll);
|
|
|
|
void ControlDeathSlide(short itemNumber);
|
|
|
|
void InitialiseDeathSlide(short itemNumber);
|
2020-01-30 07:33:53 +01:00
|
|
|
void ControlSubmarine(short itemNumber);
|
2020-01-30 11:24:12 +01:00
|
|
|
void TriggerTorpedoBubbles(PHD_VECTOR* pos1, PHD_VECTOR* pos2, char factor);
|
2020-01-30 07:33:53 +01:00
|
|
|
void TriggerSubmarineSparks(short itemNumber);
|
|
|
|
void SubmarineAttack(ITEM_INFO* item);
|
|
|
|
void TriggerTorpedoSparks2(PHD_VECTOR* pos1, PHD_VECTOR* pos2, char scale);
|
|
|
|
void ChaffFlareControl(short itemNumber);
|
2020-01-30 11:24:12 +01:00
|
|
|
void TorpedoControl(short itemNumber);
|
|
|
|
void InitialiseLittleBats(short itemNumber);
|
|
|
|
void ControlLittleBats(short itemNumber);
|
2020-02-14 07:42:20 +01:00
|
|
|
short GetNextBat();
|
2020-02-01 07:54:26 +01:00
|
|
|
void TriggerLittleBat(ITEM_INFO* item);
|
2020-03-15 11:15:55 +01:00
|
|
|
void TriggerHitmanSparks(int x, int y, int z, short xv, short yv, short zv);
|
|
|
|
void HitmanControl(short itemNumber);
|
2020-02-08 17:27:54 +01:00
|
|
|
void ControlGunShip(short itemNumber);
|
|
|
|
void ControlHydra(short itemNumber);
|
|
|
|
void TriggerHydraSparks(short itemNumber, int frame);
|
|
|
|
void HydraBubblesAttack(PHD_3DPOS* pos, short roomNumber, int count);
|
2020-03-16 12:36:29 +01:00
|
|
|
void TriggerHydraMissileSparks(PHD_VECTOR* pos, short xv, short yv, short zv);
|
2020-02-10 10:38:00 +01:00
|
|
|
void TriggerAutoGunSmoke(PHD_VECTOR* pos, char shade);
|
2020-02-13 19:17:42 +01:00
|
|
|
void ControlAutoGuns(short itemNumber);
|
2020-03-21 19:14:28 +01:00
|
|
|
void TriggerGuardianSparks(PHD_VECTOR* pos, int count, byte r, byte g, byte b, int unk);
|
2020-03-22 12:27:12 +01:00
|
|
|
void GuardianCharge(ITEM_INFO* item);
|
2020-02-14 07:42:20 +01:00
|
|
|
short GetNextSpider();
|
|
|
|
void ControlSpiders(short itemNumber);
|
|
|
|
void InitialiseSpiders(short itemNumber);
|
|
|
|
void ClearSpidersPatch(ITEM_INFO* item);
|
|
|
|
void ClearSpiders();
|
|
|
|
void InitialiseLittleRats(short itemNumber);
|
|
|
|
void ClearRats();
|
|
|
|
void UpdateSpiders();
|
|
|
|
void UpdateRats();
|
2020-03-16 12:36:29 +01:00
|
|
|
void UpdateBats();
|
2020-03-21 19:14:28 +01:00
|
|
|
void MissileControl(short itemNumber);
|
|
|
|
void InitialiseGuardian(short itemNumber);
|
|
|
|
void GuardianControl(short itemNumber);
|