2018-11-25 21:13:14 +01:00
|
|
|
#pragma once
|
|
|
|
#include "..\Global\global.h"
|
|
|
|
|
|
|
|
typedef struct QUAD_INFO {
|
|
|
|
__int32 velocity;
|
|
|
|
__int16 frontRot;
|
|
|
|
__int16 rearRot;
|
|
|
|
__int32 revs;
|
|
|
|
__int32 engineRevs;
|
|
|
|
__int16 trackMesh;
|
|
|
|
__int32 skidooTurn;
|
|
|
|
__int32 leftFallspeed;
|
|
|
|
__int32 rightFallspeed;
|
|
|
|
__int16 momentumAngle;
|
|
|
|
__int16 extraRotation;
|
|
|
|
__int32 pitch;
|
|
|
|
char flags;
|
|
|
|
};
|
|
|
|
|
2019-06-16 21:59:20 +02:00
|
|
|
typedef struct JEEP_INFO {
|
|
|
|
__int16 rot1;
|
|
|
|
__int16 rot2;
|
|
|
|
__int16 rot3;
|
|
|
|
__int16 rot4;
|
|
|
|
__int32 velocity;
|
|
|
|
__int32 revs;
|
|
|
|
__int16 engineRevs;
|
|
|
|
__int16 trackMesh;
|
|
|
|
__int32 jeepTurn;
|
|
|
|
__int32 fallSpeed;
|
|
|
|
__int16 momentumAngle;
|
|
|
|
__int16 extraRotation;
|
|
|
|
__int16 unknown0;
|
|
|
|
__int32 pitch;
|
|
|
|
__int16 flags;
|
|
|
|
__int16 unknown1;
|
|
|
|
__int16 unknown2;
|
|
|
|
};
|
|
|
|
|
2019-10-29 20:05:58 +01:00
|
|
|
typedef struct FISH_INFO
|
|
|
|
{
|
|
|
|
__int16 x;
|
|
|
|
__int16 y;
|
|
|
|
__int16 z;
|
|
|
|
__int32 angle;
|
|
|
|
__int16 destY;
|
|
|
|
__int16 angAdd;
|
|
|
|
byte speed;
|
|
|
|
byte acc;
|
|
|
|
byte swim;
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct FISH_LEADER_INFO
|
|
|
|
{
|
|
|
|
__int16 angle;
|
|
|
|
byte speed;
|
|
|
|
byte on;
|
|
|
|
__int16 angleTime;
|
|
|
|
__int16 speedTime;
|
|
|
|
__int16 xRange, yRange, zRange;
|
|
|
|
};
|
|
|
|
|
2019-11-20 11:24:36 +01:00
|
|
|
typedef struct BOAT_INFO
|
|
|
|
{
|
|
|
|
int boat_turn;
|
|
|
|
int left_fallspeed;
|
|
|
|
int right_fallspeed;
|
|
|
|
int water;
|
|
|
|
int pitch;
|
|
|
|
__int16 tilt_angle;
|
|
|
|
__int16 extra_rotation;
|
|
|
|
__int16 prop_rot;
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct SKIDOO_INFO
|
|
|
|
{
|
|
|
|
__int16 track_mesh;
|
|
|
|
int skidoo_turn;
|
|
|
|
int left_fallspeed, right_fallspeed;
|
|
|
|
__int16 momentum_angle, extra_rotation;
|
|
|
|
int pitch;
|
|
|
|
bool already_cd_played;
|
|
|
|
bool armed;
|
|
|
|
int flash_timer;
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef struct KAYAK_INFO {
|
|
|
|
int Vel;
|
|
|
|
int Rot;
|
|
|
|
int FallSpeedF;
|
|
|
|
int FallSpeedL;
|
|
|
|
int FallSpeedR;
|
|
|
|
int Water;
|
|
|
|
PHD_3DPOS OldPos;
|
|
|
|
char Turn;
|
|
|
|
char Forward;
|
|
|
|
char TrueWater;
|
|
|
|
char Flags;
|
|
|
|
};
|
|
|
|
|
2018-11-25 21:13:14 +01:00
|
|
|
void __cdecl ClampRotation(PHD_3DPOS *pos, __int16 angle, __int16 rot);
|
|
|
|
|
|
|
|
// TR1 objects
|
|
|
|
void __cdecl InitialiseWolf(__int16 itemNum);
|
|
|
|
void __cdecl WolfControl(__int16 itemNum);
|
|
|
|
void __cdecl BearControl(__int16 itemNum);
|
|
|
|
void __cdecl ApeControl(__int16 itemNum);
|
|
|
|
|
|
|
|
// TR2 objects
|
|
|
|
void __cdecl BarracudaControl(__int16 itemNum);
|
|
|
|
void __cdecl SharkControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseSpinningBlade(__int16 itemNum);
|
|
|
|
void __cdecl SpinningBlade(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseKillerStatue(__int16 itemNum);
|
|
|
|
void __cdecl KillerStatueControl(__int16 itemNum);
|
|
|
|
void __cdecl SpringBoardControl(__int16 itemNum);
|
|
|
|
void __cdecl RatControl(__int16 itemNum);
|
2019-11-14 14:09:43 +01:00
|
|
|
void __cdecl SilencerControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseYeti(short itemNum);
|
|
|
|
void __cdecl YetiControl(short itemNum);
|
2019-11-20 11:24:36 +01:00
|
|
|
void __cdecl InitialiseBoat(__int16 itemNum);
|
|
|
|
void __cdecl BoatCollision(__int16 itemNum, ITEM_INFO* litem, COLL_INFO* coll);
|
2019-11-20 14:12:21 +01:00
|
|
|
void __cdecl BoatControl(__int16 itemNumber);
|
2019-11-20 11:24:36 +01:00
|
|
|
void __cdecl InitialiseSkidoo(__int16 itemNum);
|
|
|
|
void __cdecl SkidooCollision(__int16 itemNum, ITEM_INFO* litem, COLL_INFO* coll);
|
|
|
|
int __cdecl SkidooControl();
|
|
|
|
void __cdecl DrawSkidoo(ITEM_INFO* item);
|
2019-11-21 11:29:54 +01:00
|
|
|
void __cdecl WorkerShotgunControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseWorkerShotgun(__int16 itemNum);
|
2018-11-25 21:13:14 +01:00
|
|
|
|
|
|
|
// TR3 objects
|
|
|
|
void __cdecl TigerControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseCobra(__int16 itemNum);
|
|
|
|
void __cdecl CobraControl(__int16 itemNum);
|
|
|
|
void __cdecl RaptorControl(__int16 itemNum);
|
|
|
|
__int32 __cdecl GetWaterSurface(__int32 x, __int32 y, __int32 z, __int16 roomNumber);
|
|
|
|
void __cdecl ShootHarpoon(ITEM_INFO* frogman, __int32 x, __int32 y, __int32 z, __int16 speed, __int16 yRot, __int16 roomNumber);
|
|
|
|
void __cdecl HarpoonControl(__int16 itemNum);
|
|
|
|
void __cdecl ScubaControl(__int16 itemNumber);
|
2019-05-06 23:48:35 +02:00
|
|
|
void __cdecl InitialiseEagle(__int16 itemNum);
|
|
|
|
void __cdecl EagleControl(__int16 itemNum);
|
2018-11-25 21:13:14 +01:00
|
|
|
void __cdecl TribemanAxeControl(__int16 itemNum);
|
|
|
|
void __cdecl TribesmanShotDart(ITEM_INFO* item);
|
|
|
|
void __cdecl TribesmanDartsControl(__int16 itemNum);
|
2019-05-06 23:48:35 +02:00
|
|
|
void __cdecl ControlSpikyWall(__int16 itemNum);
|
|
|
|
void __cdecl LaraTyrannosaurDeath(ITEM_INFO* item);
|
|
|
|
void __cdecl TyrannosaurControl(__int16 itemNum);
|
|
|
|
void __cdecl TriggerFlamethrowerFlame(__int32 x, __int32 y, __int32 z, __int32 xv, __int32 yv, __int32 zv, __int32 fxnum);
|
2019-05-08 08:00:02 +02:00
|
|
|
void __cdecl TriggerPilotFlame(__int32 itemnum);
|
2019-05-06 23:48:35 +02:00
|
|
|
__int16 __cdecl TriggerFlameThrower(ITEM_INFO* item, BITE_INFO* bite, __int16 speed);
|
2019-05-08 08:00:02 +02:00
|
|
|
void __cdecl FlameThrowerControl(__int16 itemNumber);
|
2019-05-06 23:48:35 +02:00
|
|
|
void __cdecl ControlSpikyCeiling(__int16 itemNumber);
|
2019-05-08 08:00:02 +02:00
|
|
|
void __cdecl InitialiseMonkey(__int16 itemNumber);
|
|
|
|
void __cdecl MonkeyControl(__int16 itemNumber);
|
2019-09-29 20:00:59 +02:00
|
|
|
void __cdecl MPGunControl(__int16 itemNumber);
|
2019-10-29 20:05:58 +01:00
|
|
|
void InitialiseMPStick(__int16 itemNumber);
|
|
|
|
void MPStickControl(__int16 itemNumber);
|
|
|
|
void __cdecl SetupShoal(__int32 shoalNumber);
|
|
|
|
void __cdecl SetupFish(__int32 leader, ITEM_INFO* item);
|
|
|
|
void ControlFish(__int16 itemNumber);
|
|
|
|
bool FishNearLara(PHD_3DPOS* pos, __int32 distance, ITEM_INFO* item);
|
2018-11-25 21:13:14 +01:00
|
|
|
|
2019-11-20 11:24:36 +01:00
|
|
|
void __cdecl QuadbikeExplode(ITEM_INFO* item);
|
|
|
|
__int32 __cdecl CanQuadbikeGetOff(__int32 direction);
|
|
|
|
__int32 __cdecl QuadCheckGetOff();
|
|
|
|
int GetOnQuadBike(__int16 itemNumber, COLL_INFO* coll);
|
|
|
|
void __cdecl QuadBaddieCollision(ITEM_INFO* quad);
|
|
|
|
__int32 __cdecl GetQuadCollisionAnim(ITEM_INFO* item, PHD_VECTOR* p);
|
|
|
|
__int32 __cdecl TestQuadHeight(ITEM_INFO* item, __int32 dz, __int32 dx, PHD_VECTOR* pos);
|
|
|
|
__int32 __cdecl DoQuadShift(ITEM_INFO* quad, PHD_VECTOR* pos, PHD_VECTOR* old);
|
|
|
|
__int32 __cdecl DoQuadDynamics(__int32 height, __int32 fallspeed, __int32* y);
|
2018-11-25 21:13:14 +01:00
|
|
|
__int32 __cdecl QuadDynamics(ITEM_INFO* item);
|
|
|
|
void __cdecl AnimateQuadBike(ITEM_INFO* item, __int32 collide, __int32 dead);
|
|
|
|
__int32 __cdecl QuadUserControl(ITEM_INFO* item, __int32 height, int* pitch);
|
2019-11-20 11:24:36 +01:00
|
|
|
void __cdecl TriggerQuadExhaustSmoke(__int32 x, __int32 y, __int32 z, __int16 angle, __int32 speed, __int32 moving);
|
2018-11-25 21:13:14 +01:00
|
|
|
void __cdecl InitialiseQuadBike(__int16 itemNumber);
|
|
|
|
void __cdecl QuadBikeCollision(__int16 itemNumber, ITEM_INFO* l, COLL_INFO* coll);
|
|
|
|
__int32 __cdecl QuadBikeControl();
|
2019-11-20 11:24:36 +01:00
|
|
|
|
|
|
|
void __cdecl InitialiseKayak(__int16 item_number);
|
|
|
|
void __cdecl DrawKayak(ITEM_INFO* kayak);
|
|
|
|
void __cdecl KayakCollision(__int16 item_number, ITEM_INFO* l, COLL_INFO* coll);
|
|
|
|
int __cdecl KayakControl();
|
2018-11-25 21:13:14 +01:00
|
|
|
|
|
|
|
// TR4 object
|
|
|
|
void __cdecl InitialiseWildBoar(__int16 itemNum);
|
|
|
|
void __cdecl WildBoarControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseSmallScorpion(__int16 itemNum);
|
|
|
|
void __cdecl SmallScorpionControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseBat(__int16 itemNum);
|
|
|
|
void __cdecl BatControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseBaddy(__int16 itemNum);
|
|
|
|
void __cdecl BaddyControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseSas(__int16 itemNum);
|
|
|
|
void __cdecl SasControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseMummy(__int16 itemNum);
|
|
|
|
void __cdecl MummyControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseSkeleton(__int16 itemNum);
|
|
|
|
void __cdecl SkeletonControl(__int16 itemNum);
|
2019-06-12 21:40:56 +02:00
|
|
|
void __cdecl WakeUpSkeleton(ITEM_INFO* item);
|
2018-11-25 21:13:14 +01:00
|
|
|
void __cdecl FourBladesControl(__int16 itemNum);
|
|
|
|
void __cdecl BirdBladeControl(__int16 itemNum);
|
|
|
|
void __cdecl CatwalkBlaldeControl(__int16 itemNum);
|
|
|
|
void __cdecl PlinthBladeControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseSethBlade(__int16 itemNum);
|
|
|
|
void __cdecl SethBladeControl(__int16 itemNum);
|
|
|
|
void __cdecl ChainControl(__int16 itemNum);
|
|
|
|
void __cdecl PloughControl(__int16 itemNum);
|
|
|
|
void __cdecl CogControl(__int16 itemNum);
|
|
|
|
void __cdecl SpikeballControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseKnightTemplar(__int16 itemNum);
|
|
|
|
void __cdecl KnightTemplarControl(__int16 itemNum);
|
|
|
|
void __cdecl StargateControl(__int16 itemNum);
|
|
|
|
void __cdecl StargateCollision(__int16 itemNum, ITEM_INFO* item, COLL_INFO* coll);
|
|
|
|
void __cdecl InitialiseSlicerDicer(__int16 itemNum);
|
|
|
|
void __cdecl SlicerDicerControl(__int16 itemNum);
|
|
|
|
void __cdecl BladeCollision(__int16 itemNum, ITEM_INFO* item, COLL_INFO* coll);
|
|
|
|
void __cdecl SarcophagusCollision(__int16 itemNum, ITEM_INFO* item, COLL_INFO* coll);
|
|
|
|
void __cdecl InitialiseScorpion(__int16 itemNum);
|
|
|
|
void __cdecl ScorpionControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseLaraDouble(__int16 itemNum);
|
|
|
|
void __cdecl LaraDoubleControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseDemigod(__int16 itemNum);
|
|
|
|
void __cdecl DemigodControl(__int16 itemNum);
|
|
|
|
void __cdecl DemigodThrowEnergyAttack(PHD_3DPOS* pos, __int16 roomNumber, __int32 something);
|
|
|
|
void __cdecl DemigodEnergyAttack(__int16 itemNum);
|
|
|
|
void __cdecl DemigodHammerAttack(__int32 x, __int32 y, __int32 z, __int32 something);
|
2018-11-26 23:01:24 +01:00
|
|
|
void __cdecl InitialiseMine(__int16 itemNum);
|
|
|
|
void __cdecl MineControl(__int16 itemNum);
|
|
|
|
void __cdecl MineCollision(__int16 itemNum, ITEM_INFO* item, COLL_INFO* coll);
|
|
|
|
void __cdecl InitialiseSentryGun(__int16 itemNum);
|
|
|
|
void __cdecl SentryGunControl(__int16 itemNum);
|
2018-12-09 15:55:55 +01:00
|
|
|
void __cdecl SentryGunThrowFire(ITEM_INFO* item);
|
2018-11-26 23:01:24 +01:00
|
|
|
void __cdecl InitialiseJeanYves(__int16 itemNum);
|
|
|
|
void __cdecl JeanYvesControl(__int16 itemNum);
|
2018-11-27 18:45:59 +01:00
|
|
|
void __cdecl ScalesControl(__int16 itemNum);
|
|
|
|
void __cdecl ScalesCollision(__int16 itemNum, ITEM_INFO* item, COLL_INFO* coll);
|
2018-11-28 13:19:01 +01:00
|
|
|
__int32 __cdecl RespawnAhmet(__int16 itemNum);
|
2018-11-28 20:51:20 +01:00
|
|
|
void __cdecl InitialiseLittleBeetle(__int16 itemNum);
|
|
|
|
void __cdecl LittleBeetleControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseTroops(__int16 itemNum);
|
|
|
|
void __cdecl TroopsControl(__int16 itemNum);
|
2018-11-30 00:25:33 +01:00
|
|
|
void __cdecl InitialiseHarpy(__int16 itemNum);
|
|
|
|
void __cdecl HarpyControl(__int16 itemNum);
|
|
|
|
void __cdecl HarpyBubbles(PHD_3DPOS* pos, __int16 roomNumber, __int32 count);
|
|
|
|
void __cdecl HarpyAttack(ITEM_INFO* item, __int16 itemNum);
|
|
|
|
void __cdecl HarpySparks1(__int16 itemNum, byte num, __int32 size);
|
|
|
|
void __cdecl HarpySparks2(__int32 x, __int32 y, __int32 z, __int32 xv, __int32 yv, __int32 zv);
|
2018-11-30 20:17:57 +01:00
|
|
|
void __cdecl InitialiseGuide(__int16 itemNum);
|
|
|
|
void __cdecl GuideControl(__int16 itemNum);
|
2018-11-30 22:02:25 +01:00
|
|
|
void __cdecl InitialiseCrocodile(__int16 itemNum);
|
|
|
|
void __cdecl CrocodileControl(__int16 itemNum);
|
2018-12-02 13:09:40 +01:00
|
|
|
void __cdecl InitialiseSphinx(__int16 itemNum);
|
|
|
|
void __cdecl SphinxControl(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseBurningFloor(__int16 itemNum);
|
|
|
|
void __cdecl BurningFloorControl(__int16 itemNum);
|
2019-05-06 23:48:35 +02:00
|
|
|
void __cdecl InitialiseHorse(__int16 itemNum);
|
|
|
|
void __cdecl InitialiseHorseman(__int16 itemNum);
|
|
|
|
void __cdecl HorsemanControl(__int16 itemNum);
|
2019-06-12 22:03:07 +02:00
|
|
|
void __cdecl HorsemanSparks(PHD_3DPOS* pos, __int32 param1, __int32 num);
|
2018-11-25 21:13:14 +01:00
|
|
|
|
2019-11-20 11:24:36 +01:00
|
|
|
__int32 __cdecl TestJeepHeight(ITEM_INFO* item, __int32 dz, __int32 dx, PHD_VECTOR* pos);
|
|
|
|
__int32 __cdecl DoJeepShift(ITEM_INFO* jeep, PHD_VECTOR* pos, PHD_VECTOR* old);
|
2019-06-16 21:59:20 +02:00
|
|
|
__int32 __cdecl DoJeepDynamics(__int32 height, __int32 speed, __int32* y, __int32 flags);
|
2019-11-20 11:24:36 +01:00
|
|
|
__int32 __cdecl JeepCanGetOff();
|
2019-06-16 21:59:20 +02:00
|
|
|
void __cdecl TriggerJeepExhaustSmoke(__int32 x, __int32 y, __int32 z, __int16 angle, __int16 speed, __int32 moving);
|
2019-11-20 11:24:36 +01:00
|
|
|
__int32 __cdecl JeepCheckGetOff();
|
2019-06-16 21:59:20 +02:00
|
|
|
__int32 __cdecl GetOnJeep(int itemNumber);
|
2019-06-18 21:21:11 +02:00
|
|
|
__int32 __cdecl GetJeepCollisionAnim(ITEM_INFO* item, PHD_VECTOR* p);
|
2019-06-20 13:50:56 +02:00
|
|
|
void __cdecl JeepBaddieCollision(ITEM_INFO* jeep);
|
2019-11-20 11:24:36 +01:00
|
|
|
void __cdecl JeepExplode(ITEM_INFO* item);
|
|
|
|
__int32 __cdecl JeepDynamics(ITEM_INFO* item);
|
|
|
|
__int32 __cdecl JeepUserControl(ITEM_INFO* item, __int32 height, __int32* pitch);
|
|
|
|
void __cdecl AnimateJeep(ITEM_INFO* item, __int32 collide, __int32 dead);
|
|
|
|
void __cdecl InitialiseJeep(__int16 itemNum);
|
|
|
|
__int32 __cdecl JeepControl();
|
|
|
|
void __cdecl JeepCollision(__int16 itemNumber, ITEM_INFO* l, COLL_INFO* coll);
|
2019-06-20 13:50:56 +02:00
|
|
|
|
|
|
|
void __cdecl InitialiseMotorbike(__int16 itemNum);
|
|
|
|
__int32 __cdecl MotorbikeControl();
|
|
|
|
__int32 __cdecl MotorbikeCheckGetOff();
|
|
|
|
__int32 __cdecl MotorbikeDynamics(ITEM_INFO* item);
|
|
|
|
__int32 __cdecl MotorbikeUserControl(ITEM_INFO* item, __int32 height, __int32* pitch);
|
|
|
|
void __cdecl AnimateMotorbike(ITEM_INFO* item, __int32 collide, __int32 dead);
|
|
|
|
void __cdecl MotorbikeExplode(ITEM_INFO* item);
|
|
|
|
__int32 __cdecl MotorbikeCanGetOff();
|
|
|
|
__int32 __cdecl DoMotorbikeDynamics(__int32 height, __int32 speed, __int32* y, __int32 flags);
|
|
|
|
void __cdecl TriggerMotorbikeExhaustSmoke(__int32 x, __int32 y, __int32 z, __int16 angle, __int16 speed, __int32 moving);
|
|
|
|
__int32 __cdecl GetOnMotorbike(int itemNumber);
|
|
|
|
void __cdecl MotorbikeCollision(__int16 itemNumber, ITEM_INFO* l, COLL_INFO* coll);
|
|
|
|
__int32 __cdecl GetOnMotorbike(int itemNumber);
|
|
|
|
__int32 __cdecl GetMotorbikeCollisionAnim(ITEM_INFO* item, PHD_VECTOR* p);
|
2019-09-22 21:14:43 +02:00
|
|
|
void __cdecl MotorbikeBaddieCollision(ITEM_INFO* jeep);
|
|
|
|
|
|
|
|
void __cdecl BubblesControl(__int16 fxNum);
|
|
|
|
__int32 __cdecl BubblesShatterFunction(FX_INFO* fx, __int32 param1, __int32 param2);
|
|
|
|
void __cdecl BubblesEffect1(__int16 fxNum, __int16 xVel, __int16 yVel, __int16 zVel);
|
|
|
|
void __cdecl BubblesEffect2(__int16 fxNum, __int16 xVel, __int16 yVel, __int16 zVel);
|
|
|
|
void __cdecl BubblesEffect3(__int16 fxNum, __int16 xVel, __int16 yVel, __int16 zVel);
|
2019-11-14 14:09:43 +01:00
|
|
|
void __cdecl BubblesEffect4(__int16 fxNum, __int16 xVel, __int16 yVel, __int16 zVel);
|