[nexuiz-commits] r7563 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sun Aug 30 16:45:16 EDT 2009
Author: lordhavoc
Date: 2009-08-30 16:45:16 -0400 (Sun, 30 Aug 2009)
New Revision: 7563
Modified:
trunk/data/qcsrc/server/t_items.qc
Log:
made items transparent when awaiting respawn, not invisible
Modified: trunk/data/qcsrc/server/t_items.qc
===================================================================
--- trunk/data/qcsrc/server/t_items.qc 2009-08-30 20:44:10 UTC (rev 7562)
+++ trunk/data/qcsrc/server/t_items.qc 2009-08-30 20:45:16 UTC (rev 7563)
@@ -41,10 +41,40 @@
.float max_armorvalue;
+void Item_Show (float visible)
+{
+ if (visible)
+ {
+ // make the item look normal, and be touchable
+ self.model = self.mdl;
+ self.solid = SOLID_TRIGGER;
+ self.effects = self.effects - (self.effects & (EF_ADDITIVE | EF_FULLBRIGHT));
+ //self.colormod = '0 0 0';
+ self.alpha = 1;
+
+ // special cases
+ if (self.strength_finished || self.invincible_finished)
+ self.effects = self.effects | EF_ADDITIVE | EF_FULLBRIGHT;
+ if (cvar("g_fullbrightitems"))
+ self.effects = self.effects | EF_FULLBRIGHT;
+ }
+ else
+ {
+ // make the item translucent green and not touchable
+ self.model = self.mdl;
+ self.solid = SOLID_NOT;
+ self.effects = self.effects | EF_ADDITIVE | EF_FULLBRIGHT;
+ //self.colormod = '0.2 1 0.2';
+ self.alpha = 0.1;
+ }
+
+ // relink entity (because solid may have changed)
+ setorigin(self, self.origin);
+}
+
void Item_Respawn (void)
{
- self.model = self.mdl; // restore original model
- self.solid = SOLID_TRIGGER; // allow it to be touched again
+ Item_Show(TRUE);
if(!g_minstagib && self.items == IT_STRENGTH)
sound (self, CHAN_TRIGGER, "misc/strength_respawn.wav", VOL_BASE, ATTN_NORM); // play respawn sound
else if(!g_minstagib && self.items == IT_INVINCIBLE)
@@ -138,6 +168,7 @@
void Item_ScheduleInitialRespawn(entity e)
{
+ Item_Show(FALSE);
Item_ScheduleRespawnIn(e, game_starttime - time + ITEM_RESPAWNTIME_INITIAL(e));
}
@@ -392,8 +423,7 @@
return;
else
{
- self.solid = SOLID_NOT;
- self.model = string_null;
+ Item_Show(FALSE);
if(self.team)
{
RandomSelection_Init();
@@ -426,44 +456,26 @@
if(head != e)
{
// make it a non-spawned item
- head.solid = SOLID_NOT;
- head.model = string_null;
+ Item_Show(FALSE);
head.state = 1; // state 1 = initially hidden item
}
head.effects &~= EF_NODRAW;
}
if(e.flags & FL_POWERUP) // do not spawn powerups initially!
- {
- e.solid = SOLID_NOT;
- e.model = string_null;
Item_ScheduleInitialRespawn(e);
- }
}
}
void Item_Reset()
{
- if(self.state == 1)
- {
- self.model = string_null;
- self.solid = SOLID_NOT;
- }
- else
- {
- self.model = self.mdl;
- self.solid = SOLID_TRIGGER;
- }
+ Item_Show(!self.state);
setorigin (self, self.origin);
self.think = SUB_Null;
self.nextthink = 0;
if(self.flags & FL_POWERUP) // do not spawn powerups initially!
- {
- self.solid = SOLID_NOT;
- self.model = string_null;
Item_ScheduleInitialRespawn(self);
- }
}
// Savage: used for item garbage-collection
@@ -600,7 +612,6 @@
self.reset = SUB_Remove;
// it's a dropped weapon
self.movetype = MOVETYPE_TOSS;
- self.solid = SOLID_TRIGGER;
// Savage: remove thrown items after a certain period of time ("garbage collection")
self.think = RemoveItem;
self.nextthink = time + 60;
@@ -623,7 +634,6 @@
self.movetype = MOVETYPE_NONE;
else
self.movetype = MOVETYPE_TOSS;
- self.solid = SOLID_TRIGGER;
// do item filtering according to game mode and other things
if (!self.noalign)
{
@@ -804,9 +814,7 @@
self.colormap = 1024; // color shirt=0 pants=0 grey
}
- if (cvar("g_fullbrightitems"))
- self.effects = self.effects | EF_FULLBRIGHT;
-
+ Item_Show(TRUE);
self.state = 0;
if(self.team)
{
@@ -816,11 +824,7 @@
InitializeEntity(self, Item_FindTeam, INITPRIO_FINDTARGET);
}
else if(self.flags & FL_POWERUP) // do not spawn powerups initially!
- {
- self.solid = SOLID_NOT;
- self.model = string_null;
Item_ScheduleInitialRespawn(self);
- }
}
/* replace items in minstagib
@@ -865,7 +869,6 @@
// replace with invis
if (itemid == IT_STRENGTH)
{
- self.effects = EF_ADDITIVE;
self.strength_finished = 30;
StartItem ("models/items/g_strength.md3",
"misc/powerup.wav", g_pickup_respawntime_powerup, g_pickup_respawntimejitter_powerup,
@@ -883,7 +886,6 @@
// replace with speed
if (itemid == IT_INVINCIBLE)
{
- self.effects = EF_ADDITIVE;
self.invincible_finished = 30;
StartItem ("models/items/g_invincible.md3",
"misc/powerup_shield.wav", g_pickup_respawntime_powerup, g_pickup_respawntimejitter_powerup,
@@ -1223,7 +1225,6 @@
} else {
precache_sound("weapons/strength_fire.wav");
self.strength_finished = 30;
- self.effects = EF_ADDITIVE;
StartItem ("models/items/g_strength.md3", "misc/powerup.wav", g_pickup_respawntime_powerup, g_pickup_respawntimejitter_powerup, "Strength Powerup", IT_STRENGTH, 0, FL_POWERUP, generic_pickupevalfunc, 100000);
}
}
@@ -1239,7 +1240,6 @@
minstagib_items(IT_INVINCIBLE);
} else {
self.invincible_finished = 30;
- self.effects = EF_ADDITIVE;
StartItem ("models/items/g_invincible.md3", "misc/powerup_shield.wav", g_pickup_respawntime_powerup, g_pickup_respawntimejitter_powerup, "Shield", IT_INVINCIBLE, 0, FL_POWERUP, generic_pickupevalfunc, 100000);
}
}
More information about the nexuiz-commits
mailing list