From fecfd0d69d3e8062ac27f083159e80425abba32a Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Thu, 26 Apr 2012 13:55:02 +0200 Subject: [PATCH] fix a few bugs the analyzer found --- qcsrc/server/cl_player.qc | 9 +++++---- qcsrc/server/cl_weaponsystem.qc | 1 + qcsrc/server/g_damage.qc | 9 ++++++--- qcsrc/server/g_world.qc | 12 ++++++++---- qcsrc/server/miscfunctions.qc | 2 +- qcsrc/server/w_crylink.qc | 13 +++++-------- qcsrc/server/w_hagar.qc | 4 +--- qcsrc/server/w_minelayer.qc | 4 ++-- qcsrc/warpzonelib/common.qc | 2 +- qcsrc/warpzonelib/server.qc | 2 +- 10 files changed, 31 insertions(+), 27 deletions(-) diff --git a/qcsrc/server/cl_player.qc b/qcsrc/server/cl_player.qc index 05ce2f9e4..fd14d42b8 100644 --- a/qcsrc/server/cl_player.qc +++ b/qcsrc/server/cl_player.qc @@ -599,6 +599,8 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht vbot = (clienttype(self) == CLIENTTYPE_BOT); valid_damage_for_weaponstats = 0; + awep = 0; + if(vbot || clienttype(self) == CLIENTTYPE_REAL) if(abot || clienttype(attacker) == CLIENTTYPE_REAL) if(attacker && self != attacker) @@ -610,8 +612,6 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht awep = DEATH_WEAPONOF(deathtype); valid_damage_for_weaponstats = 1; } - else - awep = 0; if(valid_damage_for_weaponstats) { @@ -807,11 +807,12 @@ float Say(entity source, float teamsay, entity privatesay, string msgin, float f // 0 = reject // -1 = fake accept { - string msgstr, colorstr, cmsgstr, namestr, fullmsgstr, sourcemsgstr, fullcmsgstr, sourcecmsgstr, privatemsgprefix; - float flood, privatemsgprefixlen; + string msgstr, colorstr, cmsgstr, namestr, fullmsgstr, sourcemsgstr, fullcmsgstr, sourcecmsgstr; + float flood; var .float flood_field; entity head; float ret; + string privatemsgprefix = string_null; float privatemsgprefixlen = 0; if(!teamsay && !privatesay) if(substring(msgin, 0, 1) == " ") diff --git a/qcsrc/server/cl_weaponsystem.qc b/qcsrc/server/cl_weaponsystem.qc index d2c2546d2..824266db0 100644 --- a/qcsrc/server/cl_weaponsystem.qc +++ b/qcsrc/server/cl_weaponsystem.qc @@ -69,6 +69,7 @@ vector W_HitPlotNormalizedUntransform(vector org, entity targ, vector screenforw // x = 0..1 relative to hitbox; y = 0..1 relative to hitbox; z = distance + mi = ma = targ.origin + 0.5 * (targ.mins + targ.maxs); for(i = 0; i < 2; ++i) for(j = 0; j < 2; ++j) for(k = 0; k < 2; ++k) { thisv = targ.origin; diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc index 9c686a011..f0ace5ea8 100644 --- a/qcsrc/server/g_damage.qc +++ b/qcsrc/server/g_damage.qc @@ -428,11 +428,12 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype) attacker.taunt_soundtime = time + 1; - // TODO: fix this? - if (deathtype == DEATH_CUSTOM) + if (deathtype == DEATH_HURTTRIGGER && inflictor.message2 != "") + msg = inflictor.message2; + else if (deathtype == DEATH_CUSTOM) msg = deathmessage; else - msg = inflictor.message2; + msg = ""; if(strstrofs(msg, "%", 0) < 0) msg = strcat("%s ", msg, " by %s"); @@ -509,6 +510,8 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype) msg = inflictor.message; else if (deathtype == DEATH_CUSTOM) msg = deathmessage; + else + msg = ""; if(strstrofs(msg, "%", 0) < 0) msg = strcat("%s ", msg); diff --git a/qcsrc/server/g_world.qc b/qcsrc/server/g_world.qc index e126e4cb3..f2ce29701 100644 --- a/qcsrc/server/g_world.qc +++ b/qcsrc/server/g_world.qc @@ -2074,10 +2074,14 @@ float WinningCondition_RanOutOfSpawns() else if(team1_score + team2_score + team3_score + team4_score == 1) { float t, i; - if(team1_score) t = COLOR_TEAM1; - if(team2_score) t = COLOR_TEAM2; - if(team3_score) t = COLOR_TEAM3; - if(team4_score) t = COLOR_TEAM4; + if(team1_score) + t = COLOR_TEAM1; + else if(team2_score) + t = COLOR_TEAM2; + else if(team3_score) + t = COLOR_TEAM3; + else // if(team4_score) + t = COLOR_TEAM4; CheckAllowedTeams(world); for(i = 0; i < MAX_TEAMSCORE; ++i) { diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index b913e0645..df175ac8d 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -2179,7 +2179,7 @@ float MoveToRandomMapLocation(entity e, float goodcontents, float badcontents, f org = world.mins; delta = world.maxs - world.mins; - start = org; + start = end = org; for (i = 0; i < attempts; ++i) { diff --git a/qcsrc/server/w_crylink.qc b/qcsrc/server/w_crylink.qc index 0b3118bb6..e748987cb 100644 --- a/qcsrc/server/w_crylink.qc +++ b/qcsrc/server/w_crylink.qc @@ -133,6 +133,7 @@ vector W_Crylink_LinkJoin(entity e, float jspeed, float jtime) p.velocity = WarpZone_RefSys_TransformVelocity(e, p, avg_velocity); UpdateCSQCProjectile(p); } + targ_origin = avg_origin + 1000000000 * normalize(avg_velocity); // HUUUUUUGE } else { @@ -335,8 +336,8 @@ void W_Crylink_Attack (void) shots = autocvar_g_balance_crylink_primary_shots; pointparticles(particleeffectnum("crylink_muzzleflash"), w_shotorg, w_shotdir * 1000, shots); - proj = world; - while (counter < shots) + proj = prevproj = firstproj = world; + for(counter = 0; counter < shots; ++counter) { proj = spawn (); proj.reset = W_Crylink_Reset; @@ -412,8 +413,6 @@ void W_Crylink_Attack (void) CSQCProjectile(proj, TRUE, (proj.cnt ? PROJECTILE_CRYLINK_BOUNCING : PROJECTILE_CRYLINK), TRUE); other = proj; MUTATOR_CALLHOOK(EditProjectile); - - counter = counter + 1; } if(autocvar_g_balance_crylink_primary_joinspread != 0 || autocvar_g_balance_crylink_primary_jointime != 0) { @@ -440,8 +439,8 @@ void W_Crylink_Attack2 (void) shots = autocvar_g_balance_crylink_secondary_shots; pointparticles(particleeffectnum("crylink_muzzleflash"), w_shotorg, w_shotdir * 1000, shots); - proj = world; - while (counter < shots) + proj = prevproj = firstproj = world; + for(counter = 0; counter < shots; ++counter) { proj = spawn (); proj.reset = W_Crylink_Reset; @@ -505,8 +504,6 @@ void W_Crylink_Attack2 (void) CSQCProjectile(proj, TRUE, (proj.cnt ? PROJECTILE_CRYLINK_BOUNCING : PROJECTILE_CRYLINK), TRUE); other = proj; MUTATOR_CALLHOOK(EditProjectile); - - counter = counter + 1; } if(autocvar_g_balance_crylink_secondary_joinspread != 0 || autocvar_g_balance_crylink_secondary_jointime != 0) { diff --git a/qcsrc/server/w_hagar.qc b/qcsrc/server/w_hagar.qc index 76103f347..f3a200f1c 100644 --- a/qcsrc/server/w_hagar.qc +++ b/qcsrc/server/w_hagar.qc @@ -174,7 +174,7 @@ void W_Hagar_Attack2_Load_Release (void) shots = self.hagar_load; missile = world; - while (counter < shots) + for(counter = 0; counter < shots; ++counter) { missile = spawn (); missile.owner = missile.realowner = self; @@ -223,8 +223,6 @@ void W_Hagar_Attack2_Load_Release (void) CSQCProjectile(missile, TRUE, PROJECTILE_HAGAR, TRUE); other = missile; MUTATOR_CALLHOOK(EditProjectile); - - counter = counter + 1; } weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_hagar_secondary_load_animtime, w_ready); diff --git a/qcsrc/server/w_minelayer.qc b/qcsrc/server/w_minelayer.qc index 0e73ba717..5bf98d752 100644 --- a/qcsrc/server/w_minelayer.qc +++ b/qcsrc/server/w_minelayer.qc @@ -149,7 +149,7 @@ void W_Mine_ProximityExplode () float W_Mine_Count(entity e) { - float minecount; + float minecount = 0; entity mine; for(mine = world; (mine = find(mine, classname, "mine")); ) if(mine.realowner == e) minecount += 1; @@ -328,7 +328,7 @@ void W_Mine_Attack (void) float W_PlacedMines(float detonate) { entity mine; - float minfound; + float minfound = 0; for(mine = world; (mine = find(mine, classname, "mine")); ) if(mine.realowner == self) { diff --git a/qcsrc/warpzonelib/common.qc b/qcsrc/warpzonelib/common.qc index f09f25bdc..7bbebdc9c 100644 --- a/qcsrc/warpzonelib/common.qc +++ b/qcsrc/warpzonelib/common.qc @@ -334,6 +334,7 @@ void WarpZone_TraceToss_ThroughZone(entity e, entity forent, entity zone, WarpZo o0 = e.origin; v0 = e.velocity; + g = cvar("sv_gravity") * e.gravity; WarpZone_trace_forent = forent; WarpZone_trace_firstzone = world; @@ -376,7 +377,6 @@ void WarpZone_TraceToss_ThroughZone(entity e, entity forent, entity zone, WarpZo e.velocity = WarpZone_TransformVelocity(wz, e.velocity); } WarpZone_MakeAllSolid(); - g = cvar("sv_gravity") * e.gravity; i = 16; for(;;) { diff --git a/qcsrc/warpzonelib/server.qc b/qcsrc/warpzonelib/server.qc index 89c4b72b5..9b94640b5 100644 --- a/qcsrc/warpzonelib/server.qc +++ b/qcsrc/warpzonelib/server.qc @@ -259,7 +259,7 @@ float WarpZone_Send(entity to, float sendflags) float WarpZone_Camera_Send(entity to, float sendflags) { - float f; + float f = 0; WriteByte(MSG_ENTITY, ENT_CLIENT_WARPZONE_CAMERA); if(self.warpzone_fadestart) -- 2.39.2