- Removed shadows from some projectile weapons: blaster,

hyperblaster, and rockets.
- Removed shadows from explosions.
- Updated TODO to reflect this change.
This commit is contained in:
Jamie Wilkinson 2002-05-03 10:18:50 +00:00
parent e6e56b43b3
commit 91d8ce1e74
6 changed files with 82 additions and 69 deletions

2
TODO
View file

@ -25,7 +25,7 @@ http://gozer.quakeforge.net/list-archives/quakeforge-cvs/2002-April/000151.html
from http://www.quakesrc.org/?Page=tutorials&Dir=Quake2 : from http://www.quakesrc.org/?Page=tutorials&Dir=Quake2 :
(replace - with X when done) (replace - with X when done)
- Removing shadows on certain objects X Removing shadows on certain objects
- Fixing dlight shine trough - Fixing dlight shine trough
- Fix for left over icons on windows taskbar - Fix for left over icons on windows taskbar
- Adding a clock to the console - Adding a clock to the console

View file

@ -1,25 +1,26 @@
/* /* $Id$
Copyright (C) 1997-2001 Id Software, Inc. *
* Copyright (C) 1997-2001 Id Software, Inc.
* Copyright (c) 2002 The Quakeforge Project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "g_local.h" #include "g_local.h"
/* /*
================= =================
check_dodge check_dodge
@ -374,6 +375,7 @@ void fire_blaster (edict_t *self, vec3_t start, vec3_t dir, int damage, int spee
bolt->think = G_FreeEdict; bolt->think = G_FreeEdict;
bolt->dmg = damage; bolt->dmg = damage;
bolt->classname = "bolt"; bolt->classname = "bolt";
bolt->s.renderfx = RF_NOSHADOW;
if (hyper) if (hyper)
bolt->spawnflags = 1; bolt->spawnflags = 1;
gi.linkentity (bolt); gi.linkentity (bolt);
@ -483,6 +485,7 @@ static void Grenade_Touch (edict_t *ent, edict_t *other, cplane_t *plane, csurfa
Grenade_Explode (ent); Grenade_Explode (ent);
} }
/* gren launcher */
void fire_grenade (edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, float timer, float damage_radius) void fire_grenade (edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, float timer, float damage_radius)
{ {
edict_t *grenade; edict_t *grenade;
@ -516,6 +519,7 @@ void fire_grenade (edict_t *self, vec3_t start, vec3_t aimdir, int damage, int s
gi.linkentity (grenade); gi.linkentity (grenade);
} }
/* hand grenade */
void fire_grenade2 (edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, float timer, float damage_radius, qboolean held) void fire_grenade2 (edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, float timer, float damage_radius, qboolean held)
{ {
edict_t *grenade; edict_t *grenade;
@ -642,6 +646,7 @@ void fire_rocket (edict_t *self, vec3_t start, vec3_t dir, int damage, int speed
rocket->dmg_radius = damage_radius; rocket->dmg_radius = damage_radius;
rocket->s.sound = gi.soundindex ("weapons/rockfly.wav"); rocket->s.sound = gi.soundindex ("weapons/rockfly.wav");
rocket->classname = "rocket"; rocket->classname = "rocket";
rocket->s.renderfx = RF_NOSHADOW;
if (self->client) if (self->client)
check_dodge (self, rocket->s.origin, dir, speed); check_dodge (self, rocket->s.origin, dir, speed);

View file

@ -1,23 +1,25 @@
/* /* $Id$
Copyright (C) 1997-2001 Id Software, Inc. *
* client side temporary entities
This program is free software; you can redistribute it and/or *
modify it under the terms of the GNU General Public License * Copyright (C) 1997-2001 Id Software, Inc.
as published by the Free Software Foundation; either version 2 * Copyright (c) 2002 The Quakeforge Project.
of the License, or (at your option) any later version. *
* This program is free software; you can redistribute it and/or
This program is distributed in the hope that it will be useful, * modify it under the terms of the GNU General Public License
but WITHOUT ANY WARRANTY; without even the implied warranty of * as published by the Free Software Foundation; either version 2
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * of the License, or (at your option) any later version.
*
See the GNU General Public License for more details. * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
You should have received a copy of the GNU General Public License * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
along with this program; if not, write to the Free Software *
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * See the GNU General Public License for more details.
*
*/ * You should have received a copy of the GNU General Public License
// cl_tent.c -- client side temporary entities * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "client.h" #include "client.h"
@ -839,7 +841,7 @@ void CL_ParseTEnt (void)
ex = CL_AllocExplosion (); ex = CL_AllocExplosion ();
VectorCopy (pos, ex->ent.origin); VectorCopy (pos, ex->ent.origin);
ex->type = ex_poly; ex->type = ex_poly;
ex->ent.flags = RF_FULLBRIGHT; ex->ent.flags = RF_FULLBRIGHT|RF_NOSHADOW;
ex->start = cl.frame.servertime - 100; ex->start = cl.frame.servertime - 100;
ex->light = 350; ex->light = 350;
ex->lightcolor[0] = 1.0; ex->lightcolor[0] = 1.0;
@ -862,7 +864,7 @@ void CL_ParseTEnt (void)
ex = CL_AllocExplosion (); ex = CL_AllocExplosion ();
VectorCopy (pos, ex->ent.origin); VectorCopy (pos, ex->ent.origin);
ex->type = ex_poly; ex->type = ex_poly;
ex->ent.flags = RF_FULLBRIGHT; ex->ent.flags = RF_FULLBRIGHT|RF_NOSHADOW;
ex->start = cl.frame.servertime - 100; ex->start = cl.frame.servertime - 100;
ex->light = 350; ex->light = 350;
ex->lightcolor[0] = 1.0; ex->lightcolor[0] = 1.0;
@ -887,7 +889,7 @@ void CL_ParseTEnt (void)
ex = CL_AllocExplosion (); ex = CL_AllocExplosion ();
VectorCopy (pos, ex->ent.origin); VectorCopy (pos, ex->ent.origin);
ex->type = ex_poly; ex->type = ex_poly;
ex->ent.flags = RF_FULLBRIGHT; ex->ent.flags = RF_FULLBRIGHT|RF_NOSHADOW;
ex->start = cl.frame.servertime - 100; ex->start = cl.frame.servertime - 100;
ex->light = 350; ex->light = 350;
ex->lightcolor[0] = 1.0; ex->lightcolor[0] = 1.0;
@ -914,7 +916,7 @@ void CL_ParseTEnt (void)
ex = CL_AllocExplosion (); ex = CL_AllocExplosion ();
VectorCopy (pos, ex->ent.origin); VectorCopy (pos, ex->ent.origin);
ex->type = ex_poly; ex->type = ex_poly;
ex->ent.flags = RF_FULLBRIGHT; ex->ent.flags = RF_FULLBRIGHT|RF_NOSHADOW;
ex->start = cl.frame.servertime - 100; ex->start = cl.frame.servertime - 100;
ex->light = 350; ex->light = 350;
ex->lightcolor[0] = 0.0; ex->lightcolor[0] = 0.0;
@ -1064,7 +1066,7 @@ void CL_ParseTEnt (void)
ex = CL_AllocExplosion (); ex = CL_AllocExplosion ();
VectorCopy (pos, ex->ent.origin); VectorCopy (pos, ex->ent.origin);
ex->type = ex_poly; ex->type = ex_poly;
ex->ent.flags = RF_FULLBRIGHT; ex->ent.flags = RF_FULLBRIGHT|RF_NOSHADOW;
ex->start = cl.frame.servertime - 100; ex->start = cl.frame.servertime - 100;
ex->light = 350; ex->light = 350;
ex->lightcolor[0] = 1.0; ex->lightcolor[0] = 1.0;

View file

@ -1,25 +1,26 @@
/* /* $Id$
Copyright (C) 1997-2001 Id Software, Inc. *
* Copyright (C) 1997-2001 Id Software, Inc.
* Copyright (c) 2002 The Quakeforge Project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "g_local.h" #include "g_local.h"
/* /*
================= =================
check_dodge check_dodge
@ -369,6 +370,7 @@ void fire_blaster (edict_t *self, vec3_t start, vec3_t dir, int damage, int spee
bolt->think = G_FreeEdict; bolt->think = G_FreeEdict;
bolt->dmg = damage; bolt->dmg = damage;
bolt->classname = "bolt"; bolt->classname = "bolt";
bolt->s.renderfx = RF_NOSHADOW;
if (hyper) if (hyper)
bolt->spawnflags = 1; bolt->spawnflags = 1;
gi.linkentity (bolt); gi.linkentity (bolt);
@ -478,6 +480,7 @@ static void Grenade_Touch (edict_t *ent, edict_t *other, cplane_t *plane, csurfa
Grenade_Explode (ent); Grenade_Explode (ent);
} }
/* gren launcher */
void fire_grenade (edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, float timer, float damage_radius) void fire_grenade (edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, float timer, float damage_radius)
{ {
edict_t *grenade; edict_t *grenade;
@ -511,6 +514,7 @@ void fire_grenade (edict_t *self, vec3_t start, vec3_t aimdir, int damage, int s
gi.linkentity (grenade); gi.linkentity (grenade);
} }
/* hand grenade */
void fire_grenade2 (edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, float timer, float damage_radius, qboolean held) void fire_grenade2 (edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, float timer, float damage_radius, qboolean held)
{ {
edict_t *grenade; edict_t *grenade;
@ -637,6 +641,7 @@ void fire_rocket (edict_t *self, vec3_t start, vec3_t dir, int damage, int speed
rocket->dmg_radius = damage_radius; rocket->dmg_radius = damage_radius;
rocket->s.sound = gi.soundindex ("weapons/rockfly.wav"); rocket->s.sound = gi.soundindex ("weapons/rockfly.wav");
rocket->classname = "rocket"; rocket->classname = "rocket";
rocket->s.renderfx = RF_NOSHADOW;
if (self->client) if (self->client)
check_dodge (self, rocket->s.origin, dir, speed); check_dodge (self, rocket->s.origin, dir, speed);

View file

@ -857,8 +857,8 @@ void R_DrawAliasModel (entity_t *e)
qglDepthRange (gldepthmin, gldepthmax); qglDepthRange (gldepthmin, gldepthmax);
//#if 1 //#if 1
if (gl_shadows->value && !(currententity->flags & (RF_TRANSLUCENT | RF_WEAPONMODEL))) if (gl_shadows->value &&
{ !(currententity->flags & (RF_TRANSLUCENT|RF_WEAPONMODEL|RF_NOSHADOW))) {
qglPushMatrix (); qglPushMatrix ();
/* don't rotate shadows on ungodly axes */ /* don't rotate shadows on ungodly axes */

View file

@ -1,4 +1,6 @@
/* $Id$ /* $Id$
*
* included first by ALL program modules
* *
* Copyright (C) 1997-2001 Id Software, Inc. * Copyright (C) 1997-2001 Id Software, Inc.
* Copyright (c) 2002 The Quakeforge Project. * Copyright (c) 2002 The Quakeforge Project.
@ -21,8 +23,6 @@
#include "gcc_attr.h" #include "gcc_attr.h"
// q_shared.h -- included first by ALL program modules
#ifdef _WIN32 #ifdef _WIN32
// unknown pragmas are SUPPOSED to be ignored, but.... // unknown pragmas are SUPPOSED to be ignored, but....
#pragma warning(disable : 4244) // MIPS #pragma warning(disable : 4244) // MIPS
@ -611,6 +611,7 @@ typedef struct
#define RF_SHELL_RED 1024 #define RF_SHELL_RED 1024
#define RF_SHELL_GREEN 2048 #define RF_SHELL_GREEN 2048
#define RF_SHELL_BLUE 4096 #define RF_SHELL_BLUE 4096
#define RF_NOSHADOW 8192 /* don't draw a shadow */
//ROGUE //ROGUE
#define RF_IR_VISIBLE 0x00008000 // 32768 #define RF_IR_VISIBLE 0x00008000 // 32768