r5593 - in trunk/data/qcsrc: client common server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sat Jan 17 13:39:58 EST 2009
Author: div0
Date: 2009-01-17 13:39:56 -0500 (Sat, 17 Jan 2009)
New Revision: 5593
Modified:
trunk/data/qcsrc/client/damage.qc
trunk/data/qcsrc/client/gibs.qc
trunk/data/qcsrc/common/constants.qh
trunk/data/qcsrc/server/constants.qh
trunk/data/qcsrc/server/g_damage.qc
trunk/data/qcsrc/server/g_violence.qc
trunk/data/qcsrc/server/w_crylink.qc
Log:
make crylink no longer use an impact sound and effect, instead do this on csqc
Modified: trunk/data/qcsrc/client/damage.qc
===================================================================
--- trunk/data/qcsrc/client/damage.qc 2009-01-17 18:17:10 UTC (rev 5592)
+++ trunk/data/qcsrc/client/damage.qc 2009-01-17 18:39:56 UTC (rev 5593)
@@ -49,4 +49,31 @@
self = oldself;
// TODO spawn particle effects and sounds based on hittype
+
+ print("hit: ", ftos(hittype), "\n");
+
+ if(!DEATH_ISSPECIAL(hittype))
+ {
+ float hitwep, secondary;
+ hitwep = DEATH_WEAPONOFWEAPONDEATH(hittype);
+ secondary = hittype & HITTYPE_SECONDARY;
+
+ print("hit: ", ftos(hitwep), "\n");
+
+ switch(hitwep)
+ {
+ case WEP_CRYLINK:
+ if(secondary)
+ {
+ sound (self, CHAN_PROJECTILE, "weapons/crylink_impact2.wav", VOL_BASE, ATTN_NORM);
+ pointparticles(particleeffectnum("crylink_impact"), org, '0 0 0', 1);
+ }
+ else
+ {
+ sound (self, CHAN_PROJECTILE, "weapons/crylink_impact.wav", VOL_BASE, ATTN_NORM);
+ pointparticles(particleeffectnum("crylink_impactbig"), org, '0 0 0', 1);
+ }
+ break;
+ }
+ }
}
Modified: trunk/data/qcsrc/client/gibs.qc
===================================================================
--- trunk/data/qcsrc/client/gibs.qc 2009-01-17 18:17:10 UTC (rev 5592)
+++ trunk/data/qcsrc/client/gibs.qc 2009-01-17 18:39:56 UTC (rev 5593)
@@ -62,8 +62,8 @@
float c, gibfactor, randomvalue;
+ type = ReadByte(); // gibbage type
amount = ReadByte() / 16.0; // gibbage amount
- type = ReadByte(); // gibbage type
org_x = ReadShort() * 4 + 2;
org_y = ReadShort() * 4 + 2;
org_z = ReadShort() * 4 + 2;
@@ -71,8 +71,8 @@
mi = decompressShortVector(ReadShort());
ma = decompressShortVector(ReadShort());
- isgentle = (type & 0x8000 || cvar("cl_gentle"));
- type = type & 0x7FFF;
+ isgentle = (type & 0x80 || cvar("cl_gentle"));
+ type = type & 0x7F;
gibfactor = 1 - cvar("cl_nogibs");
Modified: trunk/data/qcsrc/common/constants.qh
===================================================================
--- trunk/data/qcsrc/common/constants.qh 2009-01-17 18:17:10 UTC (rev 5592)
+++ trunk/data/qcsrc/common/constants.qh 2009-01-17 18:39:56 UTC (rev 5593)
@@ -373,3 +373,39 @@
float PROJECTILE_HOOKBOMB = 15;
float PROJECTILE_HAGAR = 16;
float PROJECTILE_HAGAR_BOUNCING = 17;
+
+// Deathtypes (weapon deathtypes are the IT_* constants below)
+// NOTE: when adding death types, please add an explanation to Docs/spamlog.txt too.
+float DEATH_SPECIAL_START = 10000;
+float DEATH_FALL = 10000;
+float DEATH_TELEFRAG = 10001;
+float DEATH_DROWN = 10002;
+float DEATH_HURTTRIGGER = 10003;
+float DEATH_LAVA = 10004;
+float DEATH_SLIME = 10005;
+float DEATH_KILL = 10006;
+float DEATH_NOAMMO = 10007;
+float DEATH_SWAMP = 10008;
+float DEATH_TEAMCHANGE = 10009;
+float DEATH_AUTOTEAMCHANGE = 10010;
+float DEATH_CAMP = 10011;
+float DEATH_SHOOTING_STAR = 10012;
+float DEATH_ROT = 10013;
+float DEATH_MIRRORDAMAGE = 10014;
+float DEATH_TOUCHEXPLODE = 10015;
+float DEATH_TURRET = 10100;
+
+float DEATH_WEAPONMASK = 0xFF;
+float DEATH_HITTYPEMASK = 0x1F00; // which is WAY below 10000 used for normal deaths
+float HITTYPE_SECONDARY = 0x100;
+float HITTYPE_SPLASH = 0x200;
+float HITTYPE_BOUNCE = 0x400;
+float HITTYPE_HEADSHOT = 0x800;
+float HITTYPE_RESERVED = 0x1000; // unused yet
+
+// macros to access these
+#define DEATH_ISSPECIAL(t) ((t) >= DEATH_SPECIAL_START)
+#define DEATH_WEAPONOFWEAPONDEATH(t) ((t) & DEATH_WEAPONMASK)
+#define DEATH_ISWEAPON(t,w) (!DEATH_ISSPECIAL(t) && DEATH_WEAPONOFWEAPONDEATH(t) == (w))
+#define DEATH_WEAPONOF(t) (DEATH_ISSPECIAL(t) ? 0 : DEATH_WEAPONOFWEAPONDEATH(t))
+#define WEP_VALID(w) ((w) >= WEP_FIRST && (w) <= WEP_LAST)
Modified: trunk/data/qcsrc/server/constants.qh
===================================================================
--- trunk/data/qcsrc/server/constants.qh 2009-01-17 18:17:10 UTC (rev 5592)
+++ trunk/data/qcsrc/server/constants.qh 2009-01-17 18:39:56 UTC (rev 5593)
@@ -126,42 +126,6 @@
float MSG_INIT = 3; // initialization
float MSG_ENTITY = 5; // csqc
-// Deathtypes (weapon deathtypes are the IT_* constants below)
-// NOTE: when adding death types, please add an explanation to Docs/spamlog.txt too.
-float DEATH_SPECIAL_START = 10000;
-float DEATH_FALL = 10000;
-float DEATH_TELEFRAG = 10001;
-float DEATH_DROWN = 10002;
-float DEATH_HURTTRIGGER = 10003;
-float DEATH_LAVA = 10004;
-float DEATH_SLIME = 10005;
-float DEATH_KILL = 10006;
-float DEATH_NOAMMO = 10007;
-float DEATH_SWAMP = 10008;
-float DEATH_TEAMCHANGE = 10009;
-float DEATH_AUTOTEAMCHANGE = 10010;
-float DEATH_CAMP = 10011;
-float DEATH_SHOOTING_STAR = 10012;
-float DEATH_ROT = 10013;
-float DEATH_MIRRORDAMAGE = 10014;
-float DEATH_TOUCHEXPLODE = 10015;
-float DEATH_TURRET = 10100;
-
-float DEATH_WEAPONMASK = 0xFF;
-float DEATH_HITTYPEMASK = 0x1F00; // which is WAY below 10000 used for normal deaths
-float HITTYPE_SECONDARY = 0x100;
-float HITTYPE_SPLASH = 0x200;
-float HITTYPE_BOUNCE = 0x400;
-float HITTYPE_HEADSHOT = 0x800;
-float HITTYPE_RESERVED = 0x1000; // unused yet
-
-// macros to access these
-#define DEATH_ISSPECIAL(t) ((t) >= DEATH_SPECIAL_START)
-#define DEATH_WEAPONOFWEAPONDEATH(t) ((t) & DEATH_WEAPONMASK)
-#define DEATH_ISWEAPON(t,w) (!DEATH_ISSPECIAL(t) && DEATH_WEAPONOFWEAPONDEATH(t) == (w))
-#define DEATH_WEAPONOF(t) (DEATH_ISSPECIAL(t) ? 0 : DEATH_WEAPONOFWEAPONDEATH(t))
-#define WEP_VALID(w) ((w) >= WEP_FIRST && (w) <= WEP_LAST)
-
vector PL_VIEW_OFS = '0 0 35';
vector PL_MIN = '-16 -16 -24';
vector PL_MAX = '16 16 45';
Modified: trunk/data/qcsrc/server/g_damage.qc
===================================================================
--- trunk/data/qcsrc/server/g_damage.qc 2009-01-17 18:17:10 UTC (rev 5592)
+++ trunk/data/qcsrc/server/g_damage.qc 2009-01-17 18:39:56 UTC (rev 5593)
@@ -948,7 +948,7 @@
blastorigin = (inflictor.origin + (inflictor.mins + inflictor.maxs) * 0.5);
total_damage_to_creatures = 0;
- if(deathtype == WEP_HOOK | HITTYPE_SECONDARY | HITTYPE_BOUNCE) // only send gravity bomb damage once
+ if(deathtype != (WEP_HOOK | HITTYPE_SECONDARY | HITTYPE_BOUNCE)) // only send gravity bomb damage once
Damage_DamageInfo(blastorigin, coredamage, edgedamage, rad, forceintensity * '0 0 1', deathtype);
targ = findradius (blastorigin, rad);
Modified: trunk/data/qcsrc/server/g_violence.qc
===================================================================
--- trunk/data/qcsrc/server/g_violence.qc 2009-01-17 18:17:10 UTC (rev 5592)
+++ trunk/data/qcsrc/server/g_violence.qc 2009-01-17 18:39:56 UTC (rev 5593)
@@ -1,8 +1,8 @@
float Violence_GibSplash_SendEntity(entity to, float sf)
{
WriteByte(MSG_ENTITY, ENT_CLIENT_GIBSPLASH);
+ WriteByte(MSG_ENTITY, self.state); // actually type
WriteByte(MSG_ENTITY, bound(1, self.cnt * 16, 255)); // gibbage amount multiplier
- WriteByte(MSG_ENTITY, self.state); // actually type
WriteShort(MSG_ENTITY, floor(self.origin_x / 4)); // not using a coord here, as gibs don't need this accuracy
WriteShort(MSG_ENTITY, floor(self.origin_y / 4)); // not using a coord here, as gibs don't need this accuracy
WriteShort(MSG_ENTITY, floor(self.origin_z / 4)); // not using a coord here, as gibs don't need this accuracy
@@ -22,7 +22,7 @@
e.cnt = amount;
e.state = type;
if(sv_gentle)
- e.state |= 0x8000; // "force gentle" bit
+ e.state |= 0x80; // "force gentle" bit
e.SendEntity = Violence_GibSplash_SendEntity;
e.nextthink = time + 0.2;
e.think = SUB_Remove;
Modified: trunk/data/qcsrc/server/w_crylink.qc
===================================================================
--- trunk/data/qcsrc/server/w_crylink.qc 2009-01-17 18:17:10 UTC (rev 5592)
+++ trunk/data/qcsrc/server/w_crylink.qc 2009-01-17 18:39:56 UTC (rev 5593)
@@ -7,8 +7,6 @@
float finalhit;
float f;
PROJECTILE_TOUCH;
- sound (self, CHAN_PROJECTILE, "weapons/crylink_impact.wav", VOL_BASE, ATTN_NORM);
- pointparticles(particleeffectnum("crylink_impactbig"), self.origin, '0 0 0', 1);
finalhit = ((self.cnt <= 0) || (other.takedamage != DAMAGE_NO));
if(finalhit)
f = 1;
@@ -36,8 +34,6 @@
float finalhit;
float f;
PROJECTILE_TOUCH;
- sound (self, CHAN_PROJECTILE, "weapons/crylink_impact2.wav", VOL_BASE, ATTN_NORM);
- pointparticles(particleeffectnum("crylink_impact"), self.origin, '0 0 0', 1);
finalhit = ((self.cnt <= 0) || (other.takedamage != DAMAGE_NO));
if(finalhit)
f = 1;
More information about the nexuiz-commits
mailing list