#ifdef CSQC
void ItemDraw()
-{
+{SELFPARAM();
if(self.gravity)
{
Movetype_Physics_MatchServer(autocvar_cl_projectiles_sloppy);
}
void ItemDrawSimple()
-{
+{SELFPARAM();
if(self.gravity)
{
Movetype_Physics_MatchServer(autocvar_cl_projectiles_sloppy);
}
void Item_PreDraw()
-{
+{SELFPARAM();
vector org;
float alph;
org = getpropertyvec(VF_ORIGIN);
}
void ItemRead(float _IsNew)
-{
+{SELFPARAM();
int sf = ReadByte();
if(sf & ISF_LOCATION)
LOG_TRACE("^1WARNING!^7 self.mdl is unset for item ", self.classname, " tell tZork aboute this!\n");
precache_model(self.mdl);
- setmodel(self, self.mdl);
+ _setmodel(self, self.mdl);
}
if(sf & ISF_COLORMAP)
#ifdef SVQC
bool ItemSend(entity to, int sf)
-{
+{SELFPARAM();
if(self.gravity)
sf |= ISF_DROP;
else
}
float have_pickup_item(void)
-{
+{SELFPARAM();
if(self.flags & FL_POWERUP)
{
if(autocvar_g_powerups > 0)
}
void Item_Think()
-{
+{SELFPARAM();
self.nextthink = time;
if(self.origin != self.oldorigin)
{
void Item_ItemsTime_SetTimesForAllPlayers();
void Item_Respawn (void)
-{
+{SELFPARAM();
Item_Show(self, 1);
// this is ugly...
if(self.items == ITEM_Strength.m_itemid)
}
void Item_RespawnCountdown (void)
-{
+{SELFPARAM();
if(self.count >= ITEM_RESPAWN_TICKS)
{
if(self.waypointsprite_attached)
if(self.waypointsprite_attached)
{
+ setself(self.waypointsprite_attached);
entity e;
- entity it = self;
- self = self.waypointsprite_attached;
FOR_EACH_REALCLIENT(e)
if(self.waypointsprite_visible_for_player(e))
{
msg_entity = e;
- soundto(MSG_ONE, it, CH_TRIGGER, "misc/itemrespawncountdown.wav", VOL_BASE, ATTEN_NORM); // play respawn sound
+ soundto(MSG_ONE, this, CH_TRIGGER, "misc/itemrespawncountdown.wav", VOL_BASE, ATTEN_NORM); // play respawn sound
}
- self = it;
+ setself(this);
WaypointSprite_Ping(self.waypointsprite_attached);
//WaypointSprite_UpdateHealth(self.waypointsprite_attached, self.count);
}
void Item_RespawnThink()
-{
+{SELFPARAM();
self.nextthink = time;
if(self.origin != self.oldorigin)
{
}
void Item_Touch (void)
-{
+{SELFPARAM();
entity e, head;
// remove the item if it's currnetly in a NODROP brush or hits a NOIMPACT surface (such as sky)
}
void Item_Reset()
-{
+{SELFPARAM();
Item_Show(self, !self.state);
setorigin (self, self.origin);
}
void Item_FindTeam()
-{
+{SELFPARAM();
entity head, e;
if(self.effects & EF_NODRAW)
// Savage: used for item garbage-collection
// TODO: perhaps nice special effect?
void RemoveItem(void)
-{
+{SELFPARAM();
if(wasfreed(self) || !self) { return; }
Send_Effect(EFFECT_ITEM_PICKUP, CENTER_OR_VIEWOFS(self), '0 0 0', 1);
remove(self);
}
void StartItem (string itemmodel, string pickupsound, float defaultrespawntime, float defaultrespawntimejitter, string itemname, float itemid, float weaponid, float itemflags, float(entity player, entity item) pickupevalfunc, float pickupbasevalue)
-{
+{SELFPARAM();
startitem_failed = false;
if(self.model == "")
self.mdl = self.model;
self.netname = itemname;
self.touch = Item_Touch;
- setmodel(self, "null"); // precision set below
+ setmodel(self, MDL_Null); // precision set below
//self.effects |= EF_LOWPRECISION;
if((itemflags & FL_POWERUP) || self.health || self.armorvalue)
}
void StartItemA (entity a)
-{
+{SELFPARAM();
self.itemdef = a;
StartItem(Item_Model(a.m_model), a.m_sound, a.m_respawntime(), a.m_respawntimejitter(), a.m_name, a.m_itemid, 0, a.m_itemflags, a.m_pickupevalfunc, a.m_botvalue);
}
-void spawnfunc_item_rockets (void) {
+spawnfunc(item_rockets)
+{
if(!self.ammo_rockets)
self.ammo_rockets = g_pickup_rockets;
if(!self.pickup_anyway)
StartItemA (ITEM_Rockets);
}
-void spawnfunc_item_bullets (void) {
+spawnfunc(item_bullets)
+{
if(!weaponswapping)
if(autocvar_sv_q3acompat_machineshotgunswap)
if(self.classname != "droppedweapon")
{
weaponswapping = true;
- spawnfunc_item_shells();
+ spawnfunc_item_shells(this);
weaponswapping = false;
return;
}
StartItemA (ITEM_Bullets);
}
-void spawnfunc_item_cells (void) {
+spawnfunc(item_cells)
+{
if(!self.ammo_cells)
self.ammo_cells = g_pickup_cells;
if(!self.pickup_anyway)
StartItemA (ITEM_Cells);
}
-void spawnfunc_item_plasma()
+spawnfunc(item_plasma)
{
if(!self.ammo_plasma)
self.ammo_plasma = g_pickup_plasma;
StartItemA (ITEM_Plasma);
}
-void spawnfunc_item_shells (void) {
+spawnfunc(item_shells)
+{
if(!weaponswapping)
if(autocvar_sv_q3acompat_machineshotgunswap)
if(self.classname != "droppedweapon")
{
weaponswapping = true;
- spawnfunc_item_bullets();
+ spawnfunc_item_bullets(this);
weaponswapping = false;
return;
}
StartItemA (ITEM_Shells);
}
-void spawnfunc_item_armor_small (void) {
+spawnfunc(item_armor_small)
+{
if(!self.armorvalue)
self.armorvalue = g_pickup_armorsmall;
if(!self.max_armorvalue)
StartItemA (ITEM_ArmorSmall);
}
-void spawnfunc_item_armor_medium (void) {
+spawnfunc(item_armor_medium)
+{
if(!self.armorvalue)
self.armorvalue = g_pickup_armormedium;
if(!self.max_armorvalue)
StartItemA (ITEM_ArmorMedium);
}
-void spawnfunc_item_armor_big (void) {
+spawnfunc(item_armor_big)
+{
if(!self.armorvalue)
self.armorvalue = g_pickup_armorbig;
if(!self.max_armorvalue)
StartItemA (ITEM_ArmorLarge);
}
-void spawnfunc_item_armor_large (void) {
+spawnfunc(item_armor_large)
+{
if(!self.armorvalue)
self.armorvalue = g_pickup_armorlarge;
if(!self.max_armorvalue)
StartItemA (ITEM_ArmorMega);
}
-void spawnfunc_item_health_small (void) {
+spawnfunc(item_health_small)
+{
if(!self.max_health)
self.max_health = g_pickup_healthsmall_max;
if(!self.health)
StartItemA (ITEM_HealthSmall);
}
-void spawnfunc_item_health_medium (void) {
+spawnfunc(item_health_medium)
+{
if(!self.max_health)
self.max_health = g_pickup_healthmedium_max;
if(!self.health)
StartItemA (ITEM_HealthMedium);
}
-void spawnfunc_item_health_large (void) {
+spawnfunc(item_health_large)
+{
if(!self.max_health)
self.max_health = g_pickup_healthlarge_max;
if(!self.health)
StartItemA (ITEM_HealthLarge);
}
-void spawnfunc_item_health_mega (void) {
+spawnfunc(item_health_mega)
+{
if(!self.max_health)
self.max_health = g_pickup_healthmega_max;
if(!self.health)
}
// support old misnamed entities
-void spawnfunc_item_armor1() { spawnfunc_item_armor_small(); } // FIXME: in Quake this is green armor, in Xonotic maps it is an armor shard
-void spawnfunc_item_armor25() { spawnfunc_item_armor_large(); }
-void spawnfunc_item_health1() { spawnfunc_item_health_small(); }
-void spawnfunc_item_health25() { spawnfunc_item_health_medium(); }
-void spawnfunc_item_health100() { spawnfunc_item_health_mega(); }
+spawnfunc(item_armor1) { spawnfunc_item_armor_small(this); } // FIXME: in Quake this is green armor, in Xonotic maps it is an armor shard
+spawnfunc(item_armor25) { spawnfunc_item_armor_large(this); }
+spawnfunc(item_health1) { spawnfunc_item_health_small(this); }
+spawnfunc(item_health25) { spawnfunc_item_health_medium(this); }
+spawnfunc(item_health100) { spawnfunc_item_health_mega(this); }
-void spawnfunc_item_strength (void) {
+spawnfunc(item_strength)
+{
precache_sound("weapons/strength_fire.wav");
if(!self.strength_finished)
self.strength_finished = autocvar_g_balance_powerup_strength_time;
StartItemA (ITEM_Strength);
}
-void spawnfunc_item_invincible (void) {
+spawnfunc(item_invincible)
+{
if(!self.invincible_finished)
self.invincible_finished = autocvar_g_balance_powerup_invincible_time;
StartItemA (ITEM_Shield);
}
// compatibility:
-void spawnfunc_item_quad (void) {self.classname = "item_strength";spawnfunc_item_strength();}
+spawnfunc(item_quad) { self.classname = "item_strength";spawnfunc_item_strength(this);}
-void target_items_use (void)
-{
+void target_items_use()
+{SELFPARAM();
if(activator.classname == "droppedweapon")
{
EXACTTRIGGER_TOUCH;
centerprint(activator, self.message);
}
-void spawnfunc_target_items (void)
+spawnfunc(target_items)
{
float n, i, j;
entity e;
}
}
-void spawnfunc_item_fuel(void)
+spawnfunc(item_fuel)
{
if(!self.ammo_fuel)
self.ammo_fuel = g_pickup_fuel;
StartItemA (ITEM_JetpackFuel);
}
-void spawnfunc_item_fuel_regen(void)
+spawnfunc(item_fuel_regen)
{
if(start_items & ITEM_JetpackRegen.m_itemid)
{
- spawnfunc_item_fuel();
+ spawnfunc_item_fuel(this);
return;
}
StartItemA (ITEM_JetpackRegen);
}
-void spawnfunc_item_jetpack(void)
+spawnfunc(item_jetpack)
{
if(!self.ammo_fuel)
self.ammo_fuel = g_pickup_fuel_jetpack;
if(start_items & ITEM_Jetpack.m_itemid)
{
- spawnfunc_item_fuel();
+ spawnfunc_item_fuel(this);
return;
}
StartItemA (ITEM_Jetpack);
e.(regenfield) = max(e.(regenfield), time + regentime);
}
float GiveItems(entity e, float beginarg, float endarg)
-{
+{SELFPARAM();
float got, i, j, val, op;
float _switchweapon;
entity wi;