From 2b80614c3425ce16a39073798b848b8c2b1e840c Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C4=81nis=20R=C5=ABcis?= Date: Thu, 6 May 2010 17:55:55 +0300 Subject: [PATCH] Add cvars for bouncefactor/bouncestop of GL secondary --- balance.cfg | 2 ++ balance25.cfg | 2 ++ balanceNexrun.cfg | 2 ++ balanceSamual.cfg | 2 ++ qcsrc/client/projectile.qc | 14 +++++++++++++- qcsrc/server/csqcprojectile.qc | 16 ++++++++++++++++ qcsrc/server/w_grenadelauncher.qc | 2 ++ 7 files changed, 39 insertions(+), 1 deletion(-) diff --git a/balance.cfg b/balance.cfg index 37a36e8d9d..6bed581448 100644 --- a/balance.cfg +++ b/balance.cfg @@ -309,6 +309,8 @@ set g_balance_grenadelauncher_secondary_animtime 0.3 set g_balance_grenadelauncher_secondary_ammo 2 set g_balance_grenadelauncher_secondary_health 70 set g_balance_grenadelauncher_secondary_damageforcescale 4 +set g_balance_grenadelauncher_secondary_bouncefactor 0.5 +set g_balance_grenadelauncher_secondary_bouncestop 0.075 // }}} // {{{ electro set g_balance_electro_lightning 0 diff --git a/balance25.cfg b/balance25.cfg index 11cc3a40ba..e3e7b7678d 100644 --- a/balance25.cfg +++ b/balance25.cfg @@ -309,6 +309,8 @@ set g_balance_grenadelauncher_secondary_animtime 0.3 set g_balance_grenadelauncher_secondary_ammo 2 set g_balance_grenadelauncher_secondary_health 10 set g_balance_grenadelauncher_secondary_damageforcescale 4 +set g_balance_grenadelauncher_secondary_bouncefactor 0.5 +set g_balance_grenadelauncher_secondary_bouncestop 0.075 // }}} // {{{ electro set g_balance_electro_lightning 0 diff --git a/balanceNexrun.cfg b/balanceNexrun.cfg index a23e9b462c..384f457197 100644 --- a/balanceNexrun.cfg +++ b/balanceNexrun.cfg @@ -309,6 +309,8 @@ set g_balance_grenadelauncher_secondary_animtime 0.5 set g_balance_grenadelauncher_secondary_ammo 2 set g_balance_grenadelauncher_secondary_health 0 set g_balance_grenadelauncher_secondary_damageforcescale 0 +set g_balance_grenadelauncher_secondary_bouncefactor 0.5 +set g_balance_grenadelauncher_secondary_bouncestop 0.075 // }}} // {{{ electro set g_balance_electro_lightning 1 diff --git a/balanceSamual.cfg b/balanceSamual.cfg index 19f7896188..2357d8bb1c 100644 --- a/balanceSamual.cfg +++ b/balanceSamual.cfg @@ -309,6 +309,8 @@ set g_balance_grenadelauncher_secondary_animtime 0.3 set g_balance_grenadelauncher_secondary_ammo 2 set g_balance_grenadelauncher_secondary_health 70 set g_balance_grenadelauncher_secondary_damageforcescale 4 +set g_balance_grenadelauncher_secondary_bouncefactor 0.5 +set g_balance_grenadelauncher_secondary_bouncestop 0.075 // }}} // {{{ electro set g_balance_electro_lightning 0 diff --git a/qcsrc/client/projectile.qc b/qcsrc/client/projectile.qc index 2730a322d2..b22a5b9dbd 100644 --- a/qcsrc/client/projectile.qc +++ b/qcsrc/client/projectile.qc @@ -158,9 +158,11 @@ void Ent_RemoveProjectile() } } +.float bouncefactor; +.float bouncestop; void Ent_Projectile() { - float f; + float f, s; // projectile properties: // kind (interpolated, or clientside) @@ -215,8 +217,18 @@ void Ent_Projectile() self.velocity_z = ReadCoord(); self.gravity = ReadCoord(); + s = ReadByte(); + + if (s & 1) + { + self.bouncefactor = ReadCoord(); + self.bouncestop = ReadCoord(); + } + self.move_origin = self.origin; self.move_velocity = self.velocity; + self.move_bounce_factor = self.bouncefactor; + self.move_bounce_stopspeed = self.bouncestop; } if(time == self.spawntime || (self.count & 0x80) || (f & 0x10)) diff --git a/qcsrc/server/csqcprojectile.qc b/qcsrc/server/csqcprojectile.qc index e585b1e379..aecdcf7f2f 100644 --- a/qcsrc/server/csqcprojectile.qc +++ b/qcsrc/server/csqcprojectile.qc @@ -3,6 +3,7 @@ float CSQCProjectile_SendEntity(entity to, float sf) { float ft, fr; + float s; // note: flag 0x10 = no trail please sf = sf & 0x1F; @@ -21,6 +22,13 @@ float CSQCProjectile_SendEntity(entity to, float sf) sf |= 0x20; } + // HACK: subflags for sendflags = 0x80 + + s = 0; + + if (self.movetype == MOVETYPE_BOUNCEMISSILE || self.movetype == MOVETYPE_BOUNCE) + s |= 1; + WriteByte(MSG_ENTITY, ENT_CLIENT_PROJECTILE); WriteByte(MSG_ENTITY, sf); @@ -36,6 +44,14 @@ float CSQCProjectile_SendEntity(entity to, float sf) WriteCoord(MSG_ENTITY, self.velocity_y); WriteCoord(MSG_ENTITY, self.velocity_z); WriteCoord(MSG_ENTITY, self.gravity); + + WriteByte(MSG_ENTITY, s); + + if (s & 1) + { + WriteCoord(MSG_ENTITY, self.bouncefactor); + WriteCoord(MSG_ENTITY, self.bouncestop); + } } if(sf & 0x20) diff --git a/qcsrc/server/w_grenadelauncher.qc b/qcsrc/server/w_grenadelauncher.qc index 80b7020130..559ced33d8 100644 --- a/qcsrc/server/w_grenadelauncher.qc +++ b/qcsrc/server/w_grenadelauncher.qc @@ -127,6 +127,8 @@ void W_Grenade_Attack2 (void) gren.bot_dodge = TRUE; gren.bot_dodgerating = cvar("g_balance_grenadelauncher_secondary_damage"); gren.movetype = MOVETYPE_BOUNCE; + gren.bouncefactor = cvar("g_balance_grenadelauncher_secondary_bouncefactor"); + gren.bouncestop = cvar("g_balance_grenadelauncher_secondary_bouncestop"); PROJECTILE_MAKETRIGGER(gren); gren.projectiledeathtype = WEP_GRENADE_LAUNCHER | HITTYPE_SECONDARY; setsize(gren, '0 0 -3', '0 0 -3'); -- 2.39.2