game-source/klik/mapents/items.qc
2003-10-28 21:20:34 +00:00

69 lines
1.1 KiB
C++

#include "common.qh"
#include "mapents_util.qh"
#include "misc.qh"
#include "items.qh"
.float() th_takeitem;
void() _item_regen_think = {
self.solid = SOLID_TRIGGER;
setmodel(self, self.model);
sound(self, CHAN_VOICE, self.noise7, 1, ATTN_NORM);
};
void() item_remove_regen = {
local float del;
self.solid = SOLID_NOT;
self.modelindex = 0;
del = self.wait + random()*self.delay;
if (del <= 0) {
safe_remove(self);
return;
}
self.think = _item_regen_think;
self.nextthink = time + del;
};
void() item_generic_touch = {
if (!other.th_takeitem)
return;
if (!util_check_targets()) return;
if (!switcheroo(other, self, other.th_takeitem))
return;
util_use_targets();
item_remove_regen();
};
void() item_generic = {
if (!self.noise7)
self.noise7 = "items/itembk2.wav";
if (sv_spawning)
precache_sound(self.noise7);
self.solid = SOLID_TRIGGER;
self.touch = item_generic_touch;
util_map_entity_init();
self.flags |= FL_ITEM;
if (!self.wait && !self.delay) {
self.wait = 20;
self.delay = 5;
}
if (sv_spawning) {
self.think = util_map_entity_drop;
self.nextthink = time + 0.2; // Let everything else drop to floor.
}
};