From ef29baaae4004e87e2fbdc76148dce69219a87c6 Mon Sep 17 00:00:00 2001 From: lordhavoc Date: Tue, 5 Jul 2005 13:53:27 +0000 Subject: [PATCH] fixed g_fullbrightplayers (so it actually works now - the powerup code was resetting it every frame) cleaned up .effects values for various projectiles and things, now more use EF_FULLBRIGHT and less use EF_ADDITIVE than before, also muzzleflashes now use EF_LOWPRECISION git-svn-id: svn://svn.icculus.org/nexuiz/trunk@480 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- qcsrc/gamec/cl_client.c | 6 +++--- qcsrc/gamec/extensions.h | 20 ++++++++++++++++++++ qcsrc/gamec/g_casings.c | 2 +- qcsrc/gamec/g_subs.c | 5 ++++- qcsrc/gamec/t_items.c | 7 ++----- qcsrc/gamec/w_common.c | 2 +- qcsrc/gamec/w_crylink.c | 6 ++---- qcsrc/gamec/w_electro.c | 8 ++++---- qcsrc/gamec/w_laser.c | 2 +- qcsrc/gamec/w_rocketlauncher.c | 2 +- qcsrc/gamec/w_uzi.c | 4 ++-- 11 files changed, 41 insertions(+), 23 deletions(-) diff --git a/qcsrc/gamec/cl_client.c b/qcsrc/gamec/cl_client.c index 12f9021a0..e687af346 100644 --- a/qcsrc/gamec/cl_client.c +++ b/qcsrc/gamec/cl_client.c @@ -178,6 +178,7 @@ void PutClientInServer (void) self.deadflag = DEAD_NO; self.angles = spot.angles; + self.angles_z = 0; // never spawn tilted even if the spot says to self.fixangle = TRUE; // turn this way immediately self.velocity = '0 0 0'; self.avelocity = '0 0 0'; @@ -231,9 +232,6 @@ void PutClientInServer (void) self.ammo_cells = 0; } - if (cvar("g_fullbrightplayers") == 1) - self.effects = EF_FULLBRIGHT; - self.event_damage = PlayerDamage; self.statdraintime = time + 5; @@ -482,6 +480,8 @@ void player_powerups (void) sprint(self, "^3Shield surrounds you\n"); } } + if (cvar("g_fullbrightplayers")) + self.effects = self.effects | EF_FULLBRIGHT; } void player_regen (void) diff --git a/qcsrc/gamec/extensions.h b/qcsrc/gamec/extensions.h index dfab61378..0f926decd 100644 --- a/qcsrc/gamec/extensions.h +++ b/qcsrc/gamec/extensions.h @@ -952,6 +952,26 @@ float EF_SELECTABLE = 16384; // allows cursor to highlight entity (brighten) //the selected entity highlights only if EF_SELECTABLE is set, a typical selection method would be doubling the brightness of the entity by some means (such as colormod[] *= 2). //intended to be used by Prydon Gate. +//TENEBRAE_GFX_DLIGHTS +//idea: Tenebrae +//darkplaces implementation: LordHavoc +//fields: +.float light_lev; // radius (does not affect brightness), typical value 350 +.vector color; // color (does not affect radius), typical value '1 1 1' (bright white), can be up to '255 255 255' (nuclear blast) +.float style; // light style (like normal light entities, flickering torches or switchable, etc) +.float pflags; // flags (see PFLAGS_ constants) +.vector angles; // orientation of the light +.float skin; // cubemap filter number, can be 1-255 (0 is assumed to be none, and tenebrae only allows 16-255), this selects a projective light filter, a value of 1 loads cubemaps/1posx.tga and cubemaps/1negx.tga and posy, negy, posz, and negz, similar to skybox but some sides need to be rotated or flipped +//constants: +float PFLAGS_NOSHADOW = 1; // light does not cast shadows +float PFLAGS_CORONA = 2; // light has a corona flare +float PFLAGS_FULLDYNAMIC = 128; // light enable (without this set no light is produced!) +//description: +//more powerful dynamic light settings +//warning: it is best not to use cubemaps on a light entity that has a model, as using a skin number that a model does not have will cause issues in glquake, and produce warnings in darkplaces (use developer 1 to see them) +//changes compared to tenebrae (because they're too 'leet' for standards): +//EF_FULLDYNAMIC effects flag replaced by PFLAGS_FULLDYNAMIC flag (EF_FULLDYNAMIC conflicts with EF_NODRAW) + //TW_SV_STEPCONTROL //idea: Transfusion //darkplaces implementation: LordHavoc diff --git a/qcsrc/gamec/g_casings.c b/qcsrc/gamec/g_casings.c index 74c6b5deb..4fd5233c9 100644 --- a/qcsrc/gamec/g_casings.c +++ b/qcsrc/gamec/g_casings.c @@ -65,7 +65,7 @@ void(vector org, vector vel, float randomvel, vector ang, vector avel, float ran e.think = casingthink; e.touch = casingtouch; //e.knockedloosefunc = casingknockedloosefunc; - //e.effects = EF_LOWPRECISION; + e.effects = EF_LOWPRECISION; e.createdtime = time; if (casingtype == 1) { diff --git a/qcsrc/gamec/g_subs.c b/qcsrc/gamec/g_subs.c index 293f0d752..bb3c129fb 100644 --- a/qcsrc/gamec/g_subs.c +++ b/qcsrc/gamec/g_subs.c @@ -34,7 +34,10 @@ void SUB_VanishOrRemove (entity ent) if (ent.flags & FL_CLIENT) { // vanish - ent.effects = EF_NODRAW; + ent.model = ""; + ent.effects = 0; + ent.glow_size = 0; + ent.pflags = 0; } else { diff --git a/qcsrc/gamec/t_items.c b/qcsrc/gamec/t_items.c index 153fbf7bf..1ed57bf82 100644 --- a/qcsrc/gamec/t_items.c +++ b/qcsrc/gamec/t_items.c @@ -139,9 +139,6 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime, self.solid = SOLID_TRIGGER; self.touch = Item_Touch; - if (itemflags & FL_POWERUP) - self.effects = self.effects | EF_ADDITIVE; - // Savage: remove thrown items after a certain period of time ("garbage collection") if (self.classname == "droppedweapon") { @@ -174,8 +171,8 @@ void item_health1 (void) {self.max_health = 5;StartItem ("models/items/g_h1.md3" void item_health25 (void) {self.max_health = 25;StartItem ("models/items/g_h25.md3", "misc/mediumhealth.wav", 15, "25 Health", 0, 0);} void item_health100 (void) {self.max_health = 100;StartItem ("models/items/g_h100.md3", "misc/megahealth.wav", 30, "100 Health", 0, 0);} -void item_strength (void) {self.strength_finished = 30;StartItem ("models/items/g_strength.md3", "misc/powerup.wav", 120, "Strength Powerup", IT_STRENGTH, FL_POWERUP);} -void item_invincible (void) {self.invincible_finished = 30;StartItem ("models/items/g_invincible.md3", "misc/powerup.wav", 120, "Invulnerability", IT_INVINCIBLE, FL_POWERUP);} +void item_strength (void) {self.strength_finished = 30;self.effects = EF_ADDITIVE;StartItem ("models/items/g_strength.md3", "misc/powerup.wav", 120, "Strength Powerup", IT_STRENGTH, FL_POWERUP);} +void item_invincible (void) {self.invincible_finished = 30;self.effects = EF_ADDITIVE;StartItem ("models/items/g_invincible.md3", "misc/powerup.wav", 120, "Invulnerability", IT_INVINCIBLE, FL_POWERUP);} //void item_speed (void) {self.speed_finished = 30;StartItem ("models/items/g_speed.md3", "misc/powerup.wav", 120, "Speed Powerup", IT_SPEED, FL_POWERUP);} //void item_slowmo (void) {self.slowmo_finished = 30;StartItem ("models/items/g_slowmo.md3", "misc/powerup.wav", 120, "Slow Motion", IT_SLOWMO, FL_POWERUP);} diff --git a/qcsrc/gamec/w_common.c b/qcsrc/gamec/w_common.c index 11f06b862..3d88e1481 100644 --- a/qcsrc/gamec/w_common.c +++ b/qcsrc/gamec/w_common.c @@ -500,7 +500,7 @@ void fireBullet (vector start, vector dir, float spread, float damage, float dty setmodel (e, "models/tracer.mdl"); setsize (e, '0 0 0', '0 0 0'); setorigin (e, start); - e.effects = e.effects | EF_ADDITIVE; + e.effects = e.effects | EF_ADDITIVE | EF_FULLBRIGHT; } // FIXME - causes excessive 'tinking'. Hopefully remove "tink1.wav" from the ricochets with csqc diff --git a/qcsrc/gamec/w_crylink.c b/qcsrc/gamec/w_crylink.c index 842786caf..f4841605a 100644 --- a/qcsrc/gamec/w_crylink.c +++ b/qcsrc/gamec/w_crylink.c @@ -49,7 +49,7 @@ void W_Crylink_Touch (void) self.glow_color = 0; self.think = SUB_Remove; self.movetype = MOVETYPE_NONE; - self.effects = EF_LOWPRECISION; + self.effects = EF_FULLBRIGHT | EF_LOWPRECISION; SUB_SetFade(self, time, 1); //remove (self); } @@ -95,9 +95,7 @@ void W_Crylink_Attack (void) //proj.glow_size = 20; - proj.effects = proj.effects | EF_FULLBRIGHT; - //proj.effects = proj.effects | EF_ADDITIVE; - proj.effects = proj.effects | EF_LOWPRECISION; + proj.effects = EF_FULLBRIGHT | EF_LOWPRECISION; counter = counter + 1; } } diff --git a/qcsrc/gamec/w_electro.c b/qcsrc/gamec/w_electro.c index 84f4ed8fa..49976a15f 100644 --- a/qcsrc/gamec/w_electro.c +++ b/qcsrc/gamec/w_electro.c @@ -109,7 +109,7 @@ void() W_Electro_Attack if (self.button3) { self.ammo_cells = self.ammo_cells - 1; - proj.effects = EF_ADDITIVE; + proj.effects = EF_FULLBRIGHT; proj.movetype = MOVETYPE_BOUNCE; proj.velocity = v_forward * cvar("g_balance_electro_ballspeed") + v_up * cvar("g_balance_electro_ballspeed_up"); proj.touch = W_Plasma_Touch; @@ -124,7 +124,7 @@ void() W_Electro_Attack */ { self.ammo_cells = self.ammo_cells - 2; - proj.effects = EF_BRIGHTFIELD | EF_ADDITIVE; + proj.effects = EF_BRIGHTFIELD | EF_FULLBRIGHT; proj.movetype = MOVETYPE_FLY; proj.velocity = v_forward * cvar("g_balance_electro_speed"); proj.angles = vectoangles(proj.velocity); @@ -173,7 +173,7 @@ void() W_Electro_Attack2 //if (self.button3) { self.ammo_cells = self.ammo_cells - 1; - proj.effects = EF_ADDITIVE; + proj.effects = EF_FULLBRIGHT; proj.movetype = MOVETYPE_BOUNCE; proj.velocity = v_forward * cvar("g_balance_electro_ballspeed") + v_up * cvar("g_balance_electro_ballspeed_up"); proj.touch = W_Plasma_Touch; @@ -188,7 +188,7 @@ void() W_Electro_Attack2 /* { self.ammo_cells = self.ammo_cells - 2; - proj.effects = EF_BRIGHTFIELD | EF_ADDITIVE; + proj.effects = EF_BRIGHTFIELD | EF_FULLBRIGHT; proj.movetype = MOVETYPE_FLY; proj.velocity = v_forward * cvar("g_balance_electro_speed"); proj.angles = vectoangles(proj.velocity); diff --git a/qcsrc/gamec/w_laser.c b/qcsrc/gamec/w_laser.c index e83b308ad..7c91632b4 100644 --- a/qcsrc/gamec/w_laser.c +++ b/qcsrc/gamec/w_laser.c @@ -85,7 +85,7 @@ void W_Laser_Attack (void) missile.think = SUB_Remove; missile.nextthink = time + 9; - missile.effects = EF_FULLBRIGHT | EF_ADDITIVE | EF_LOWPRECISION; + missile.effects = EF_FULLBRIGHT | EF_FULLBRIGHT | EF_LOWPRECISION; } // weapon frames diff --git a/qcsrc/gamec/w_rocketlauncher.c b/qcsrc/gamec/w_rocketlauncher.c index 36dfe35bb..855b0041f 100644 --- a/qcsrc/gamec/w_rocketlauncher.c +++ b/qcsrc/gamec/w_rocketlauncher.c @@ -116,7 +116,7 @@ void W_Rocket_Attack (void) flash.velocity = v_forward * 20; flash.angles = vectoangles (flash.velocity); SUB_SetFade (flash, time, 0.4); - flash.effects = flash.effects | EF_ADDITIVE | EF_FULLBRIGHT; + flash.effects = flash.effects | EF_ADDITIVE | EF_FULLBRIGHT | EF_LOWPRECISION; } // weapon frames diff --git a/qcsrc/gamec/w_uzi.c b/qcsrc/gamec/w_uzi.c index 85e7fa147..af534d8e5 100644 --- a/qcsrc/gamec/w_uzi.c +++ b/qcsrc/gamec/w_uzi.c @@ -60,11 +60,11 @@ void W_Uzi_Attack (void) setmodel (flash, "models/uziflash.md3"); flash.velocity = v_forward * 20; flash.angles = vectoangles (flash.velocity); - flash.angles_z=flash.v_angle_z + random () * 180; + flash.angles_z=flash.v_angle_z + random () * 180; flash.scale = 0.75; flash.alpha = 0.5; SUB_SetFade (flash, time, 0.2); - flash.effects = flash.effects | EF_ADDITIVE | EF_FULLBRIGHT; + flash.effects = flash.effects | EF_ADDITIVE | EF_FULLBRIGHT | EF_LOWPRECISION; } // weapon frames -- 2.39.2