32#include "gamescript.h"
34extern Event EV_Item_Pickup;
35extern Event EV_Item_DropToFloor;
36extern Event EV_Item_Respawn;
37extern Event EV_Item_SetAmount;
38extern Event EV_Item_SetMaxAmount;
39extern Event EV_Item_RespawnSound;
40extern Event EV_Item_DialogNeeded;
41extern Event EV_Item_PickupDone;
43#define DROPPED_ITEM 0x00008000
44#define DROPPED_PLAYER_ITEM 0x00010000
46class Item :
public Trigger
62 void ItemTouch(
Event *ev);
66 qboolean m_bMOHPrefix;
68 CLASS_PROTOTYPE(Item);
72 void Delete(
void)
override;
73 void RemoveFromOwner(
void);
74 virtual void PlaceItem(
void);
75 virtual void SetOwner(
Sentient *ent);
77 void SetNoRemove(
Event *ev);
78 virtual void DropToFloor(
Event *ev);
79 virtual Item *ItemPickup(Entity *other, qboolean add_to_inventory = qtrue);
80 virtual void Respawn(
Event *ev);
81 virtual void setRespawn(qboolean flag);
82 void setRespawn(
Event *ev);
83 virtual qboolean Respawnable(
void);
84 virtual void setRespawnTime(
float time);
85 void setRespawnTime(
Event *ev);
86 virtual float RespawnTime(
void);
87 void RespawnDone(
Event *ev);
88 void PickupDone(
Event *ev);
90 virtual int GetItemIndex(
void) {
return item_index; };
92 virtual const char *GetItemName(
void) {
return item_name; };
94 virtual int getAmount(
void);
95 virtual void setAmount(
int startamount);
97 virtual int MaxAmount(
void);
98 virtual qboolean Pickupable(Entity *other);
100 virtual void setName(
const char *i);
101 virtual str getName(
void);
102 virtual int getIndex(
void);
103 virtual void SetAmountEvent(
Event *ev);
104 virtual void SetMaxAmount(
Event *ev);
105 virtual void SetDMAmountEvent(
Event *ev);
106 virtual void SetDMMaxAmount(
Event *ev);
107 virtual void SetItemName(
Event *ev);
108 void SetPickupSound(
Event *ev);
110 virtual void SetMax(
int maxamount);
111 virtual void Add(
int num);
112 virtual void Remove(
int num);
113 virtual qboolean Use(
int amount);
114 virtual qboolean Removable(
void);
115 virtual void Pickup(
Event *ev);
116 virtual qboolean Drop(
void);
117 virtual void RespawnSound(
Event *ev);
118 virtual void DialogNeeded(
Event *ev);
119 virtual str GetDialogNeeded(
void);
120 void Landed(
Event *ev);
122 void Archive(
Archiver& arc)
override;
129 Listener *GetScriptOwner()
override;
130 void SetScriptOwner(
Listener *newOwner)
override;
136 void EventViewModelPrefix(
Event *ev);
137 void updatePrefix(
Event *ev);
141inline void Item::Archive(
Archiver& arc)
143 Trigger::Archive(arc);
145 arc.ArchiveSafePointer(&owner);
146 arc.ArchiveBoolean(&respawnable);
147 arc.ArchiveBoolean(&playrespawn);
148 arc.ArchiveFloat(&respawntime);
149 arc.ArchiveString(&dialog_needed);
150 arc.ArchiveInteger(&item_index);
151 arc.ArchiveString(&item_name);
153 setName(item_name.c_str());
155 arc.ArchiveInteger(&maximum_amount);
156 arc.ArchiveInteger(&amount);
157 arc.ArchiveBoolean(&no_remove);
158 arc.ArchiveString(&sPickupSound);
161class DynItem :
public Item
169 CLASS_PROTOTYPE(DynItem);
173 void UnlinkItem(
Event *ev);
174 void DynItemTouched(
Event *ev);
175 void DynItemUse(
Event *ev);
176 void Archive(
Archiver& arc)
override;
179const char *GetItemName(
const char *prefix, qboolean *mohprefix = NULL);
180const char *GetItemPrefix(
const char *name, qboolean *mohprefix = NULL);
Definition listener.h:246
Definition listener.h:450