TombEngine/TR5Main/Objects/newobjects.h

369 lines
14 KiB
C
Raw Normal View History

#pragma once
#include "../Global/global.h"
typedef struct QUAD_INFO {
int velocity;
short frontRot;
short rearRot;
int revs;
int engineRevs;
short trackMesh;
int skidooTurn;
int leftFallspeed;
int rightFallspeed;
short momentumAngle;
short extraRotation;
int pitch;
char flags;
};
typedef struct JEEP_INFO {
short rot1;
short rot2;
short rot3;
short rot4;
int velocity;
int revs;
short engineRevs;
short trackMesh;
int jeepTurn;
int fallSpeed;
short momentumAngle;
short extraRotation;
short unknown0;
int pitch;
short flags;
short unknown1;
short unknown2;
};
typedef struct SUB_INFO {
int Vel;
int Rot;
int RotX;
short FanRot;
char Flags;
char WeaponTimer;
};
typedef struct FISH_INFO
{
short x;
short y;
short z;
int angle;
short destY;
short angAdd;
byte speed;
byte acc;
byte swim;
};
typedef struct FISH_LEADER_INFO
{
short angle;
byte speed;
byte on;
short angleTime;
short speedTime;
short xRange, yRange, zRange;
};
typedef struct BOAT_INFO
{
int boat_turn;
int left_fallspeed;
int right_fallspeed;
int water;
int pitch;
short tilt_angle;
short extra_rotation;
short prop_rot;
};
typedef struct SKIDOO_INFO
{
short track_mesh;
int skidoo_turn;
int left_fallspeed, right_fallspeed;
short 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;
};
typedef struct BOSS_STRUCT
{
short attack_count;
short death_count;
byte attack_flag;
byte attack_type;
byte attack_head_count;
byte ring_count;
short explode_count;
short lizman_item, lizman_room;
short hp_counter;
short dropped_icon;
byte charged;
byte dead;
PHD_VECTOR BeamTarget;
};
void __cdecl ClampRotation(PHD_3DPOS *pos, short angle, short rot);
// TR1 objects
void __cdecl InitialiseWolf(short itemNum);
void __cdecl WolfControl(short itemNum);
void __cdecl BearControl(short itemNum);
void __cdecl ApeControl(short itemNum);
// TR2 objects
void __cdecl BarracudaControl(short itemNum);
void __cdecl SharkControl(short itemNum);
void __cdecl InitialiseSpinningBlade(short itemNum);
void __cdecl SpinningBlade(short itemNum);
void __cdecl InitialiseKillerStatue(short itemNum);
void __cdecl KillerStatueControl(short itemNum);
void __cdecl SpringBoardControl(short itemNum);
void __cdecl RatControl(short itemNum);
void __cdecl SilencerControl(short itemNum);
void __cdecl InitialiseYeti(short itemNum);
void __cdecl YetiControl(short itemNum);
void __cdecl WorkerShotgunControl(short itemNum);
void __cdecl InitialiseWorkerShotgun(short itemNum);
void __cdecl WorkerMachineGunControl(short itemNum);
void __cdecl InitialiseWorkerMachineGun(short itemNum);
void __cdecl SmallSpiderControl(short itemNum);
void __cdecl BigSpiderControl(short itemNum);
void __cdecl WorkerDualGunControl(short itemNum);
void __cdecl BirdMonsterControl(short itemNum);
void __cdecl WorkerFlamethrower(short itemNum);
void __cdecl InitialiseWorkerFlamethrower(short itemNum);
void __cdecl KnifethrowerControl(short itemNum);
void __cdecl KnifeControl(short fxNum);
void __cdecl MercenaryUziControl(short itemNum);
void __cdecl MercenaryAutoPistolControl(short itemNum);
void __cdecl MonkControl(short itemNum);
void __cdecl DrawStatue(ITEM_INFO* item); // compatible with all statue :)
void __cdecl InitialiseSwordGuardian(short itemNum);
void __cdecl SwordGuardianFly(ITEM_INFO* item); // only effect to fly
void __cdecl SwordGuardianControl(short itemNum);
void __cdecl InitialiseSpearGuardian(short itemNum);
void __cdecl SpearGuardianControl(short itemNum);
void __cdecl DragonCollision(short itemNum, ITEM_INFO* laraitem, COLL_INFO* coll);
void __cdecl DragonControl(short backNum);
void __cdecl InitialiseBartoli(short itemNum);
void __cdecl BartoliControl(short itemNum);
void __cdecl InitialiseSkidman(short itemNum);
void __cdecl SkidManCollision(short itemNum, ITEM_INFO* laraitem, COLL_INFO* coll);
void __cdecl SkidManControl(short riderNum);
// TR3 objects
void __cdecl TigerControl(short itemNum);
void __cdecl InitialiseCobra(short itemNum);
void __cdecl CobraControl(short itemNum);
void __cdecl RaptorControl(short itemNum);
int __cdecl GetWaterSurface(int x, int y, int z, short roomNumber);
void __cdecl ShootHarpoon(ITEM_INFO* frogman, int x, int y, int z, short speed, short yRot, short roomNumber);
void __cdecl HarpoonControl(short itemNum);
void __cdecl ScubaControl(short itemNumber);
void __cdecl InitialiseEagle(short itemNum);
void __cdecl EagleControl(short itemNum);
void __cdecl TribemanAxeControl(short itemNum);
void __cdecl TribesmanShotDart(ITEM_INFO* item);
void __cdecl TribesmanDartsControl(short itemNum);
void __cdecl ControlSpikyWall(short itemNum);
void __cdecl LaraTyrannosaurDeath(ITEM_INFO* item);
void __cdecl TyrannosaurControl(short itemNum);
void __cdecl TriggerFlamethrowerFlame(int x, int y, int z, int xv, int yv, int zv, int fxnum);
void __cdecl TriggerPilotFlame(int itemnum);
short __cdecl TriggerFlameThrower(ITEM_INFO* item, BITE_INFO* bite, short speed);
void __cdecl FlameThrowerControl(short itemNumber);
void __cdecl ControlSpikyCeiling(short itemNumber);
void __cdecl InitialiseMonkey(short itemNumber);
void __cdecl MonkeyControl(short itemNumber);
void __cdecl MPGunControl(short itemNumber);
void InitialiseMPStick(short itemNumber);
void MPStickControl(short itemNumber);
void __cdecl SetupShoal(int shoalNumber);
void __cdecl SetupFish(int leader, ITEM_INFO* item);
void ControlFish(short itemNumber);
bool FishNearLara(PHD_3DPOS* pos, int distance, ITEM_INFO* item);
void __cdecl InitialiseTony(short itemNum);
void __cdecl TonyControl(short itemNum);
void __cdecl DrawTony(ITEM_INFO* item);
void __cdecl TonyFireBallControl(short fxNumber);
void __cdecl InitialiseShiva(short itemNum);
void __cdecl ShivaControl(short itemNum);
// TR4 object
void __cdecl InitialiseWildBoar(short itemNum);
void __cdecl WildBoarControl(short itemNum);
void __cdecl InitialiseSmallScorpion(short itemNum);
void __cdecl SmallScorpionControl(short itemNum);
void __cdecl InitialiseBat(short itemNum);
void __cdecl BatControl(short itemNum);
void __cdecl InitialiseBaddy(short itemNum);
void __cdecl BaddyControl(short itemNum);
void __cdecl InitialiseSas(short itemNum);
void __cdecl SasControl(short itemNum);
void __cdecl InitialiseMummy(short itemNum);
void __cdecl MummyControl(short itemNum);
void __cdecl InitialiseSkeleton(short itemNum);
void __cdecl SkeletonControl(short itemNum);
2019-06-12 21:40:56 +02:00
void __cdecl WakeUpSkeleton(ITEM_INFO* item);
void __cdecl FourBladesControl(short itemNum);
void __cdecl BirdBladeControl(short itemNum);
void __cdecl CatwalkBlaldeControl(short itemNum);
void __cdecl PlinthBladeControl(short itemNum);
void __cdecl InitialiseSethBlade(short itemNum);
void __cdecl SethBladeControl(short itemNum);
void __cdecl ChainControl(short itemNum);
void __cdecl PloughControl(short itemNum);
void __cdecl CogControl(short itemNum);
void __cdecl SpikeballControl(short itemNum);
void __cdecl InitialiseKnightTemplar(short itemNum);
void __cdecl KnightTemplarControl(short itemNum);
void __cdecl StargateControl(short itemNum);
void __cdecl StargateCollision(short itemNum, ITEM_INFO* item, COLL_INFO* coll);
void __cdecl InitialiseSlicerDicer(short itemNum);
void __cdecl SlicerDicerControl(short itemNum);
void __cdecl BladeCollision(short itemNum, ITEM_INFO* item, COLL_INFO* coll);
void __cdecl SarcophagusCollision(short itemNum, ITEM_INFO* item, COLL_INFO* coll);
void __cdecl InitialiseScorpion(short itemNum);
void __cdecl ScorpionControl(short itemNum);
void __cdecl InitialiseLaraDouble(short itemNum);
void __cdecl LaraDoubleControl(short itemNum);
void __cdecl InitialiseDemigod(short itemNum);
void __cdecl DemigodControl(short itemNum);
void __cdecl DemigodThrowEnergyAttack(PHD_3DPOS* pos, short roomNumber, int something);
void __cdecl DemigodEnergyAttack(short itemNum);
void __cdecl DemigodHammerAttack(int x, int y, int z, int something);
void __cdecl InitialiseMine(short itemNum);
void __cdecl MineControl(short itemNum);
void __cdecl MineCollision(short itemNum, ITEM_INFO* item, COLL_INFO* coll);
void __cdecl InitialiseSentryGun(short itemNum);
void __cdecl SentryGunControl(short itemNum);
void __cdecl SentryGunThrowFire(ITEM_INFO* item);
void __cdecl InitialiseJeanYves(short itemNum);
void __cdecl JeanYvesControl(short itemNum);
void __cdecl ScalesControl(short itemNum);
void __cdecl ScalesCollision(short itemNum, ITEM_INFO* item, COLL_INFO* coll);
int __cdecl RespawnAhmet(short itemNum);
void __cdecl InitialiseLittleBeetle(short itemNum);
void __cdecl LittleBeetleControl(short itemNum);
void __cdecl InitialiseTroops(short itemNum);
void __cdecl TroopsControl(short itemNum);
void __cdecl InitialiseHarpy(short itemNum);
void __cdecl HarpyControl(short itemNum);
void __cdecl HarpyBubbles(PHD_3DPOS* pos, short roomNumber, int count);
void __cdecl HarpyAttack(ITEM_INFO* item, short itemNum);
void __cdecl HarpySparks1(short itemNum, byte num, int size);
void __cdecl HarpySparks2(int x, int y, int z, int xv, int yv, int zv);
void __cdecl InitialiseGuide(short itemNum);
void __cdecl GuideControl(short itemNum);
void __cdecl InitialiseCrocodile(short itemNum);
void __cdecl CrocodileControl(short itemNum);
void __cdecl InitialiseSphinx(short itemNum);
void __cdecl SphinxControl(short itemNum);
void __cdecl InitialiseBurningFloor(short itemNum);
void __cdecl BurningFloorControl(short itemNum);
void __cdecl InitialiseHorse(short itemNum);
void __cdecl InitialiseHorseman(short itemNum);
void __cdecl HorsemanControl(short itemNum);
void __cdecl HorsemanSparks(PHD_3DPOS* pos, int param1, int num);
void __cdecl BubblesControl(short fxNum);
int __cdecl BubblesShatterFunction(FX_INFO* fx, int param1, int param2);
void __cdecl BubblesEffect1(short fxNum, short xVel, short yVel, short zVel);
void __cdecl BubblesEffect2(short fxNum, short xVel, short yVel, short zVel);
void __cdecl BubblesEffect3(short fxNum, short xVel, short yVel, short zVel);
void __cdecl BubblesEffect4(short fxNum, short xVel, short yVel, short zVel);
2019-11-22 13:25:13 +01:00
/* Vehicles: */
// TODO: the boat is bugged, need to be fixed !
void __cdecl InitialiseBoat(short itemNum);
void __cdecl BoatCollision(short itemNum, ITEM_INFO* litem, COLL_INFO* coll);
void __cdecl BoatControl(short itemNumber);
2019-11-22 13:25:13 +01:00
void __cdecl InitialiseSkidoo(short itemNum);
void __cdecl SkidooCollision(short itemNum, ITEM_INFO* litem, COLL_INFO* coll);
2019-11-22 13:25:13 +01:00
int __cdecl SkidooControl();
void __cdecl DrawSkidoo(ITEM_INFO* item);
void __cdecl QuadbikeExplode(ITEM_INFO* item);
int __cdecl CanQuadbikeGetOff(int direction);
int __cdecl QuadCheckGetOff();
int GetOnQuadBike(short itemNumber, COLL_INFO* coll);
2019-11-22 13:25:13 +01:00
void __cdecl QuadBaddieCollision(ITEM_INFO* quad);
int __cdecl GetQuadCollisionAnim(ITEM_INFO* item, PHD_VECTOR* p);
int __cdecl TestQuadHeight(ITEM_INFO* item, int dz, int dx, PHD_VECTOR* pos);
int __cdecl DoQuadShift(ITEM_INFO* quad, PHD_VECTOR* pos, PHD_VECTOR* old);
int __cdecl DoQuadDynamics(int height, int fallspeed, int* y);
int __cdecl QuadDynamics(ITEM_INFO* item);
void __cdecl AnimateQuadBike(ITEM_INFO* item, int collide, int dead);
int __cdecl QuadUserControl(ITEM_INFO* item, int height, int* pitch);
void __cdecl TriggerQuadExhaustSmoke(int x, int y, int z, short angle, int speed, int moving);
void __cdecl InitialiseQuadBike(short itemNumber);
void __cdecl QuadBikeCollision(short itemNumber, ITEM_INFO* l, COLL_INFO* coll);
int __cdecl QuadBikeControl();
2019-11-22 13:25:13 +01:00
// TODO: the kayak is bugged, need to be fixed !
void __cdecl InitialiseKayak(short item_number);
2019-11-22 13:25:13 +01:00
void __cdecl DrawKayak(ITEM_INFO* kayak);
void __cdecl KayakCollision(short item_number, ITEM_INFO* l, COLL_INFO* coll);
2019-11-22 13:25:13 +01:00
int __cdecl KayakControl();
/// Underwater Propeller
void __cdecl SubInitialise(short itemNum);
void __cdecl SubCollision(short itemNum, ITEM_INFO* l, COLL_INFO* coll);
int __cdecl SubControl();
void __cdecl SubEffects(short item_number);
int __cdecl TestJeepHeight(ITEM_INFO* item, int dz, int dx, PHD_VECTOR* pos);
int __cdecl DoJeepShift(ITEM_INFO* jeep, PHD_VECTOR* pos, PHD_VECTOR* old);
int __cdecl DoJeepDynamics(int height, int speed, int* y, int flags);
int __cdecl JeepCanGetOff();
void __cdecl TriggerJeepExhaustSmoke(int x, int y, int z, short angle, short speed, int moving);
int __cdecl JeepCheckGetOff();
int __cdecl GetOnJeep(int itemNumber);
int __cdecl GetJeepCollisionAnim(ITEM_INFO* item, PHD_VECTOR* p);
void __cdecl JeepBaddieCollision(ITEM_INFO* jeep);
void __cdecl JeepExplode(ITEM_INFO* item);
int __cdecl JeepDynamics(ITEM_INFO* item);
int __cdecl JeepUserControl(ITEM_INFO* item, int height, int* pitch);
void __cdecl AnimateJeep(ITEM_INFO* item, int collide, int dead);
void __cdecl InitialiseJeep(short itemNum);
int __cdecl JeepControl();
void __cdecl JeepCollision(short itemNumber, ITEM_INFO* l, COLL_INFO* coll);
void __cdecl InitialiseMotorbike(short itemNum);
int __cdecl MotorbikeControl();
int __cdecl MotorbikeCheckGetOff();
int __cdecl MotorbikeDynamics(ITEM_INFO* item);
int __cdecl MotorbikeUserControl(ITEM_INFO* item, int height, int* pitch);
void __cdecl AnimateMotorbike(ITEM_INFO* item, int collide, int dead);
void __cdecl MotorbikeExplode(ITEM_INFO* item);
int __cdecl MotorbikeCanGetOff();
int __cdecl DoMotorbikeDynamics(int height, int speed, int* y, int flags);
void __cdecl TriggerMotorbikeExhaustSmoke(int x, int y, int z, short angle, short speed, int moving);
int __cdecl GetOnMotorbike(int itemNumber);
void __cdecl MotorbikeCollision(short itemNumber, ITEM_INFO* l, COLL_INFO* coll);
int __cdecl GetOnMotorbike(int itemNumber);
int __cdecl GetMotorbikeCollisionAnim(ITEM_INFO* item, PHD_VECTOR* p);
2019-11-22 13:25:13 +01:00
void __cdecl MotorbikeBaddieCollision(ITEM_INFO* jeep);