1
0
Fork 0
mirror of https://git.rip/DMCA_FUCKER/re3.git synced 2024-06-08 03:48:31 +00:00
re3/src/weapons/Weapon.h
eray orçunus 0e7a471b82 CPed...
Signed-off-by: eray orçunus <erayorcunus@gmail.com>
2019-07-06 01:44:49 +03:00

64 lines
1.2 KiB
C++

#pragma once
#include "Entity.h"
enum eWeaponType : uint32
{
WEAPONTYPE_UNARMED = 0,
WEAPONTYPE_BASEBALLBAT,
WEAPONTYPE_COLT45,
WEAPONTYPE_UZI,
WEAPONTYPE_SHOTGUN,
WEAPONTYPE_AK47,
WEAPONTYPE_M16,
WEAPONTYPE_SNIPERRIFLE,
WEAPONTYPE_ROCKETLAUNCHER,
WEAPONTYPE_FLAMETHROWER,
WEAPONTYPE_MOLOTOV,
WEAPONTYPE_GRENADE,
WEAPONTYPE_DETONATOR,
NUM_PED_WEAPONTYPES = 13,
WEAPONTYPE_HELICANNON = 13,
NUM_WEAPONTYPES,
NO_STORED_WEAPON = 22
};
enum eWeaponFire {
WEAPON_FIRE_MELEE,
WEAPON_FIRE_INSTANT_HIT,
WEAPON_FIRE_PROJECTILE,
WEAPON_FIRE_AREA_EFFECT,
WEAPON_FIRE_USE
};
// Taken from MTA SA, seems it's unchanged
enum eWeaponState
{
WEAPONSTATE_READY,
WEAPONSTATE_FIRING,
WEAPONSTATE_RELOADING,
WEAPONSTATE_OUT_OF_AMMO,
WEAPONSTATE_MELEE_MADECONTACT
};
class CWeapon
{
public:
eWeaponType m_eWeaponType;
eWeaponState m_eWeaponState;
uint32 m_nAmmoInClip;
uint32 m_nAmmoTotal;
uint32 m_nTimer;
bool m_bAddRotOffset;
CWeapon() {
m_bAddRotOffset = false;
}
void Initialise(eWeaponType type, int ammo);
void Reload(void);
bool Fire(CEntity*, CVector*);
void AddGunshell(CEntity*, CVector const&, CVector2D const&, float);
bool IsTypeMelee(void);
};
static_assert(sizeof(CWeapon) == 0x18, "CWeapon: error");