sof-sdk/Source/Game/player/w_equipment.h
2000-06-15 00:00:00 +00:00

122 lines
No EOL
3 KiB
C++

#ifndef __W_EQUIPMENT_H_
#define __W_EQUIPMENT_H_
#include "w_weapons.h"
#include "../strings/items.h"
class itemInfo_c
{
private:
public:
itemInfo_c(void){}
~itemInfo_c(void){}
virtual void setupModelInfo(void){};
virtual void frameUpdate(sharedEdict_t &ent, itemSlot_c &slot){}
virtual bool use(edict_t &ent, itemSlot_c &slot){return true;}
virtual void deactivate(edict_t &ent, itemSlot_c &slot){}
virtual int handleDamage(sharedEdict_t &ent, int curDamage, itemSlot_c &slot){return curDamage;}
virtual char *getName(void){return "";}
virtual int getNameIndex(void){return 0;}
virtual int itemExistsAsUnique(void){return 0;}
};
extern itemInfo_c *itInfo[SFE_NUMITEMS];
//------------------------------------------------------------------------------------
//
// Item Stuff
//
//------------------------------------------------------------------------------------
class flashpackInfo : public itemInfo_c
{
private:
public:
flashpackInfo(void);
bool use(edict_t &ent, itemSlot_c &slot);
char *getName(void){return "Flash Packs";} // naughty! should have been string packaged!
int getNameIndex(void){return ITEMS_FLASHPACK;}
};
class neuralGrenadeInfo : public itemInfo_c
{
private:
public:
neuralGrenadeInfo(void);
bool use(edict_t &ent, itemSlot_c &slot);
char *getName(void){return "Neural Pulse Grenades";}
int getNameIndex(void){return ITEMS_NEURAL_GRENADE;}
};
class c4Info : public itemInfo_c
{
private:
public:
c4Info(void);
bool use(edict_t &ent, itemSlot_c &slot);
char *getName(void){return "C4";}
int getNameIndex(void){return ITEMS_C4;}
};
class lightGogglesInfo : public itemInfo_c
{
private:
public:
lightGogglesInfo(void);
void frameUpdate(sharedEdict_t &ent, itemSlot_c &slot);
bool use(edict_t &ent, itemSlot_c &slot);
void deactivate(edict_t &ent, itemSlot_c &slot);
char *getName(void){return "Light Amplification Goggles";}
int itemExistsAsUnique(void){return 1;}
int getNameIndex(void){return ITEMS_LIGHT_GOGGLES;}
};
class claymoreInfo : public itemInfo_c
{
private:
public:
claymoreInfo(void);
bool use(edict_t &ent, itemSlot_c &slot);
char *getName(void){return "Claymore";}
int getNameIndex(void){return ITEMS_CLAYMORE;}
};
class medkitInfo : public itemInfo_c
{
private:
public:
medkitInfo(void);
void frameUpdate(sharedEdict_t &ent, itemSlot_c &slot);
bool use(edict_t &ent, itemSlot_c &slot);
char *getName(void){return "Medkit";}
int getNameIndex(void){return ITEMS_MEDKIT;}
};
class grenadeInfo : public itemInfo_c
{
private:
public:
grenadeInfo(void);
bool use(edict_t &ent, itemSlot_c &slot);
char *getName(void){return "Grenade";}
int getNameIndex(void){return ITEMS_GRENADE;}
};
class flagInfo : public itemInfo_c
{
private:
public:
flagInfo(void);
bool use(edict_t &ent, itemSlot_c &slot){return true;}
char *getName(void){return "Flag";}
int itemExistsAsUnique(void){return 1;}
int getNameIndex(void){return ITEMS_CTF_FLAG;}
};
#endif // __W_EQUIPMENT_H_