2018-08-19 09:46:58 +02:00
|
|
|
#pragma once
|
2020-05-30 15:55:23 +02:00
|
|
|
#include "lara.h"
|
2018-08-19 09:46:58 +02:00
|
|
|
|
2020-06-04 13:40:44 +02:00
|
|
|
typedef enum FireWeaponType
|
2020-05-30 15:55:23 +02:00
|
|
|
{
|
|
|
|
FW_MISS = -1,
|
|
|
|
FW_NOAMMO = 0,
|
|
|
|
FW_MAYBEHIT = 1
|
|
|
|
};
|
2018-08-19 09:46:58 +02:00
|
|
|
|
2020-05-30 15:55:23 +02:00
|
|
|
typedef struct WEAPON_INFO
|
|
|
|
{
|
|
|
|
short lockAngles[4];
|
|
|
|
short leftAngles[4];
|
|
|
|
short rightAngles[4];
|
|
|
|
short aimSpeed;
|
|
|
|
short shotAccuracy;
|
|
|
|
short gunHeight;
|
|
|
|
short targetDist;
|
|
|
|
byte damage;
|
|
|
|
byte recoilFrame;
|
|
|
|
byte flashTime;
|
|
|
|
byte drawFrame;
|
|
|
|
short sampleNum;
|
|
|
|
};
|
2018-11-01 09:10:32 +01:00
|
|
|
extern WEAPON_INFO Weapons[NUM_WEAPONS];
|
2018-08-19 09:46:58 +02:00
|
|
|
|
2019-12-02 14:49:19 +01:00
|
|
|
void SmashItem(short itemNum);
|
|
|
|
int WeaponObject(int weaponType);
|
|
|
|
void LaraGun();
|
|
|
|
short* GetAmmo(int weaponType);
|
|
|
|
void InitialiseNewWeapon();
|
|
|
|
int WeaponObjectMesh(int weaponType);
|
|
|
|
void AimWeapon(WEAPON_INFO* winfo, LARA_ARM* arm);
|
|
|
|
void HitTarget(ITEM_INFO* item, GAME_VECTOR* hitPos, int damage, int flag);
|
2020-06-04 13:40:44 +02:00
|
|
|
FireWeaponType FireWeapon(int weaponType, ITEM_INFO* target, ITEM_INFO* src, short* angles);
|
2019-12-02 14:49:19 +01:00
|
|
|
void find_target_point(ITEM_INFO* item, GAME_VECTOR* target);
|
|
|
|
void LaraTargetInfo(WEAPON_INFO* weapon);
|
2020-05-30 15:55:23 +02:00
|
|
|
bool CheckForHoldingState(int state);
|
2020-06-05 14:01:22 +02:00
|
|
|
void LaraGetNewTarget(WEAPON_INFO* weapon);
|
2020-04-30 06:44:29 +02:00
|
|
|
void DoProperDetection(short itemNumber, int x, int y, int z, int xv, int yv, int zv);
|