no message

This commit is contained in:
Andrei Drexler 2003-07-30 16:05:47 +00:00
parent 52a0334ac5
commit d0a517306e
19 changed files with 500 additions and 47 deletions

View file

@ -1,5 +1,6 @@
# List fixes here for the 3.1 release
* No more
* Added a Zoom Sensitivity Lock during fire sequence of ssg to improve aiming
* Added local cvar cg_RQ3_ssgZoomSensLock to enable or disable the feature above (default enable)
* Upgraded the gamesource RQ3 is built on from 1.29h to 1.32b
@ -16,8 +17,8 @@
# List fixes here for the 3.0 release
* It is now possible to soectate in DM.
* Added cg_RQ3_zcam_stfu to stop zcam printing who its following or tracking.
* It is now possible to spectate in DM.
* Added cg_RQ3_zcam_stfu to stop zcam printing who it's following or tracking.
* Fixed bug where dropping the bandolier would not reduce amount of ammo
* Its now impossible to change nicks to avoide votekicks.
* Reactionmale is now the default model
@ -46,14 +47,14 @@
* Fixed the UI to report correct teamnames in the join menu.
* Bumped the version to 2.3
* Added a helmet. (g_RQ3_haveHelmet 1 to activate it)
* Repositioned the lasersight in the UI item preview. Its now centered.
* Repositioned the lasersight in the UI item preview. It's now centered.
* Resized the Lasersight and Silencer in the UI item preview.
* Added g_RQ3_tdmMode (0 = TP style, 1 = DM style) including UI support.
* Added cg_RQ3_weaponname (cg_RQ3_knife, cg_RQ3_mk23, etc) to allow people to implement weapon replacements.
* Fixed the HC+Bandolier ammo bug
* TeamDM is now working RQ3 style.
* Added g_RQ3_allWeapons and g_RQ3_allItems.
* Enhanced the give command so give all now gives all items. give items now exsists also.
* Enhanced the give command so give all now gives all items. give items now exists also.
* Added PunkBuster client and server support to the UI
* Replaced the item code. We now can do multiple items. g_RQ3_maxItems controls how many
* MM: Changed g_RQ3_refPass to g_RQ3_RefPassword

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.73 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.72 2003/03/28 22:25:10 makro
// no message
//
@ -2456,19 +2459,20 @@ static void CG_DrawTourneyScoreboard()
CG_DrawDamageBlend
Elder: Does a fullscreen alpha blend like Quake 2 when hurt
Makro - changed to 0..1 instead of 0/1
=====================
*/
#define MAX_DAMAGE_ALPHA 0.75
#define MAX_BLEND_TIME 1500
static void CG_DrawDamageBlend()
{
float dmg;
float dmg, blend = Com_Clamp(0, 1, cg_RQ3_painblend.value);
vec4_t damageColor;
//CG_Printf("CG_DrawDamageBlend: trueDamage (%i)\n", cg.rq3_trueDamage);
//Leave if no true damage, disabled, or ragepro
if (!cg_RQ3_painblend.integer)
if (!blend)
return;
if (!cg.rq3_trueDamage || cgs.glconfig.hardwareType == GLHW_RAGEPRO)
@ -2492,7 +2496,7 @@ static void CG_DrawDamageBlend()
if (dmg > 100)
dmg = 100;
damageColor[3] = MAX_DAMAGE_ALPHA * (dmg / 100.0) * (1.0 - (cg.time - cg.damageTime) / cg.rq3_blendTime);
damageColor[3] = blend * MAX_DAMAGE_ALPHA * (dmg / 100.0) * (1.0 - (cg.time - cg.damageTime) / cg.rq3_blendTime);
if (damageColor[3] > MAX_DAMAGE_ALPHA)
damageColor[3] = MAX_DAMAGE_ALPHA;

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.73 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.72 2003/04/07 02:18:49 jbravo
// Removed more unlagged stuff that was messing up impact marks and fixed a
// booboo in the UI ssg xhair previews.
@ -456,6 +459,8 @@ void CG_EntityEvent(centity_t * cent, vec3_t position)
vec3_t dir; //, viewDir;
const char *s;
int clientNum;
//Makro - added
int soundType;
clientInfo_t *ci;
es = &cent->currentState;
@ -992,8 +997,14 @@ void CG_EntityEvent(centity_t * cent, vec3_t position)
break;
case EV_KNIFE_MISS:
DEBUGNAME("EV_KNIFE_MISS");
if (es->powerups == MAT_GRASS)
soundType = IMPACTSOUND_GRASS;
else if (IsSnowMat(es->powerups))
soundType = IMPACTSOUND_SNOW;
else
soundType = IMPACTSOUND_METAL;
ByteToDir(es->eventParm, dir);
CG_MissileHitWall(es->weapon, 0, position, dir, IMPACTSOUND_METAL, RQ3_WPMOD_KNIFESLASH);
CG_MissileHitWall(es->weapon, 0, position, dir, soundType, RQ3_WPMOD_KNIFESLASH);
break;
case EV_RAILTRAIL:
@ -1047,6 +1058,20 @@ void CG_EntityEvent(centity_t * cent, vec3_t position)
CG_Bullet(es->pos.trBase, es->otherEntityNum, dir, qfalse, ENTITYNUM_WORLD, IMPACTSOUND_CERAMIC);
break;
//Makro - added
case EV_BULLET_HIT_SNOW:
DEBUGNAME("EV_BULLET_HIT_SNOW");
ByteToDir(es->eventParm, dir);
CG_Bullet(es->pos.trBase, es->otherEntityNum, dir, qfalse, ENTITYNUM_WORLD, IMPACTSOUND_SNOW);
break;
//Makro - added
case EV_BULLET_HIT_GRASS:
DEBUGNAME("EV_BULLET_HIT_GRASS");
ByteToDir(es->eventParm, dir);
CG_Bullet(es->pos.trBase, es->otherEntityNum, dir, qfalse, ENTITYNUM_WORLD, IMPACTSOUND_GRASS);
break;
case EV_BULLET_HIT_KEVLAR:
DEBUGNAME("EV_BULLET_HIT_KEVLAR");
ByteToDir(es->eventParm, dir);

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.148 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.147 2003/04/23 17:49:38 slicer
// Added new cvar cg_RQ3_ssgZoomSensLock
//
@ -486,7 +489,9 @@ typedef enum {
//Makro - added
IMPACTSOUND_BRICK,
IMPACTSOUND_WOOD,
IMPACTSOUND_CERAMIC
IMPACTSOUND_CERAMIC,
IMPACTSOUND_SNOW,
IMPACTSOUND_GRASS
} impactSound_t;
//Blaze: anti cheat stuff
@ -1286,8 +1291,8 @@ typedef struct {
qhandle_t slashMarkShader;
qhandle_t glassMarkShader;
qhandle_t metalMarkShader;
// Makro - new mark
//qhandle_t tileMarkShader;
//Makro - new mark
qhandle_t snowMarkShader;
// powerup shaders
qhandle_t quadShader;
@ -2455,3 +2460,6 @@ int CG_NewParticleArea(int num);
//Makro - added
void CG_DrawBigPolygon(void);
void CG_ParticleHitSnow(vec3_t org, vec3_t vel, int duration, float x, float y, float speed, float scale);
void CG_ParticleHitGrass(vec3_t org, vec3_t vel, int duration, float x, float y, float speed, float scale);

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.137 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.136 2003/04/23 17:49:38 slicer
// Added new cvar cg_RQ3_ssgZoomSensLock
//
@ -2243,7 +2246,7 @@ static void CG_RegisterGraphics(void)
cgs.media.glassMarkShader = trap_R_RegisterShader("gfx/damage/glass_mrk");
cgs.media.metalMarkShader = trap_R_RegisterShader("gfx/damage/metal_mrk");
// Makro - added
//cgs.media.tileMarkShader = trap_R_RegisterShader("gfx/damage/tile_mrk");
cgs.media.snowMarkShader = trap_R_RegisterShader("gfx/damage/snow_mrk");
// NiceAss: for foglaser
cgs.media.railCoreShader = trap_R_RegisterShader("fogLaser");

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.19 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.18 2003/03/29 18:53:41 jbravo
// Fixed ammo bug when dropping bandolier. Added color to more errormessages
//
@ -324,6 +327,8 @@ void CG_AddMarks(void)
#define GREY75 4
#define LIGHT_BLUE_WATER 5
#define DARK_BLUE_WATER 6
//Makro - added
#define GRASS 7
typedef struct particle_s {
struct particle_s *next;
@ -674,6 +679,9 @@ void CG_AddParticleToScene(cparticle_t * p, vec3_t org, float alpha)
VectorSet(color, 0.8f, 0.8f, 1.0f);
else if (p->color == DARK_BLUE_WATER)
VectorSet(color, 0.6f, 0.8f, 1.0f);
//Makro - added
else if (p->color == GRASS)
VectorSet(color, 0.4f, 0.5f, 0.4f);
else if (p->color == GREY75) {
float len;
float greyit;
@ -2131,6 +2139,102 @@ void CG_ParticleSparks(vec3_t org, vec3_t vel, int duration, float x, float y, f
}
//Makro - snow
void CG_ParticleHitSnow(vec3_t org, vec3_t vel, int duration, float x, float y, float speed, float scale)
{
cparticle_t *p;
if (!free_particles)
return;
p = free_particles;
free_particles = p->next;
p->next = active_particles;
active_particles = p;
p->time = cg.time;
p->endtime = cg.time + duration;
//p->startfade = cg.time + duration * 0.75;
p->color = GREY75;
p->alpha = 0.4f;
p->alphavel = 0;
p->height = 4;
p->width = 4;
p->endheight = 8;
p->endwidth = 8;
p->pshader = cgs.media.smokePuffAnimShader;
p->type = P_SMOKE;
VectorCopy(org, p->org);
p->org[0] += (crandom() * x);
p->org[1] += (crandom() * y);
p->vel[0] = vel[0];
p->vel[1] = vel[1];
p->vel[2] = vel[2];
p->accel[0] = crandom() * 6;
p->accel[1] = crandom() * 6;
p->accel[2] = -PARTICLE_GRAVITY * 4;
p->vel[0] += (crandom() * 12);
p->vel[1] += (crandom() * 12);
//p->vel[2] += (20 + (crandom() * 10)) * speed;
}
//Makro - grass
void CG_ParticleHitGrass(vec3_t org, vec3_t vel, int duration, float x, float y, float speed, float scale)
{
cparticle_t *p;
if (!free_particles)
return;
p = free_particles;
free_particles = p->next;
p->next = active_particles;
active_particles = p;
p->time = cg.time;
p->endtime = cg.time + duration;
p->startfade = cg.time + duration * 0.75;
p->color = GRASS;
p->alpha = 0.5f;
p->alphavel = 0;
p->height = 4;
p->width = 4;
p->endheight = 8;
p->endwidth = 8;
p->pshader = cgs.media.smokePuffShader;
p->type = P_SMOKE;
VectorCopy(org, p->org);
p->org[0] += (crandom() * x);
p->org[1] += (crandom() * y);
p->vel[0] = vel[0];
p->vel[1] = vel[1];
p->vel[2] = vel[2];
p->accel[0] = crandom() * 6;
p->accel[1] = crandom() * 6;
p->accel[2] = -PARTICLE_GRAVITY * 4;
p->vel[0] += (crandom() * 12);
p->vel[1] += (crandom() * 12);
//p->vel[2] += (20 + (crandom() * 10)) * speed;
}
void CG_ParticleDust(centity_t * cent, vec3_t origin, vec3_t dir)
{
float length;

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.61 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.60 2003/04/07 18:21:34 niceass
// teamplay irvision
//
@ -1950,7 +1953,7 @@ static void CG_DustTrail(centity_t * cent)
return;
//Makro - if the surface has a snow texture, use a different color for the dust puff
Material = GetMaterialFromFlag(tr.surfaceFlags);
if (Material == MAT_SNOW || Material == MAT_SNOW2) {
if (IsSnowMat(Material)) {
color[0] = color[1] = color[2] = 1.0f;
}

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.27 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.26 2002/06/17 15:27:41 slicer
// Added the fix for the FOV bug when selecting the ssg at spawn
//
@ -568,7 +571,8 @@ void CG_TransitionPlayerState(playerState_t * ps, playerState_t * ops)
*ops = *ps;
}
// damage events (player is getting wounded)
if (ps->damageEvent != ops->damageEvent && ps->damageCount) {
//Makro - not if wearing kevlar
if (ps->damageEvent != ops->damageEvent && ps->damageCount && !(cg.snap->ps.stats[STAT_HOLDABLE_ITEM] & (1 << HI_KEVLAR))) {
CG_DamageFeedback(ps->damageYaw, ps->damagePitch, ps->damageCount);
}
// respawning

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.118 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.117 2003/04/26 15:23:57 jbravo
// grenade replacement fix. Version bumped to 3.1
//
@ -1467,18 +1470,32 @@ void CG_AddPlayerWeapon( refEntity_t * parent, playerState_t * ps, centity_t * c
trap_R_AddRefEntityToScene( &silencer );
// NiceAss: Add a puff of smoke at the end of the silencer when fired.
//Makro - changed a bit, might look cooler
if (cent->muzzleFlashTime == -1) {
localEntity_t *smoke;
#define NUM_SILENCER_PUFFS 3
localEntity_t *smoke[NUM_SILENCER_PUFFS];
int i;
vec3_t up;
// Move the puff over to center on silencer end.
VectorMA(silencerEnd, 5, cg.refdef.viewaxis[1], silencerEnd);
VectorMA(silencerEnd, 5, cg.refdef.viewaxis[2], silencerEnd);
/*
VectorSet(up, 0.0f, 0.0f, 15.0f);
smoke = CG_SmokePuff(silencerEnd, up, 0.5f, 1, 1, 1, 0.5f, 300, cg.time, 0, 0,
cgs.media.shotgunSmokePuffShader);
smoke->leType = LE_SCALE_FADE;
*/
//VectorSet(up, 0.0f, 45.0f, 0.0f);
for (i=0; i<NUM_SILENCER_PUFFS; i++)
{
VectorScale(silencer.axis[1], -(20+random()*50), up);
smoke[i] = CG_SmokePuff(silencerEnd, up, 0.2f, 1, 1, 1, 0.2f, 200+random()*200, cg.time, 0, 0,
cgs.media.shotgunSmokePuffShader);
smoke[i]->leType = LE_MOVE_SCALE_FADE;
smoke[i]->lifeRate = 0.75 / (smoke[i]->endTime - smoke[i]->startTime);
}
cent->muzzleFlashTime = 0;
}
@ -2469,6 +2486,12 @@ void CG_MissileHitWall(int weapon, int clientNum, vec3_t origin,
sfx = cgs.media.sfx_ceramicric2;
else
sfx = cgs.media.sfx_ceramicric3;
}
//Makro - added
else if (soundType == IMPACTSOUND_SNOW) {
radius = 3;
mark = cgs.media.snowMarkShader;
sfx = cgs.media.footsteps[FOOTSTEP_SNOW2][rand()%4];
} else {
mark = cgs.media.bulletMarkShader;
if (r == 0)
@ -2485,15 +2508,18 @@ void CG_MissileHitWall(int weapon, int clientNum, vec3_t origin,
duration = 200;
mod = cgs.media.hitSparkModel;
shader = cgs.media.hitSparkShader;
sfx = 0;
radius = 4;
if (soundType == IMPACTSOUND_GLASS)
mark = cgs.media.glassMarkShader;
else if (soundType == IMPACTSOUND_METAL)
mark = cgs.media.metalMarkShader;
//Makro - added
else
else if (soundType == IMPACTSOUND_SNOW) {
mark = cgs.media.snowMarkShader;
radius = 2;
} else
mark = cgs.media.bulletMarkShader;
sfx = 0;
radius = 4;
break;
case WP_GRENADE:
@ -2511,8 +2537,15 @@ void CG_MissileHitWall(int weapon, int clientNum, vec3_t origin,
duration = 100;
mod = cgs.media.hitSparkModel;
shader = cgs.media.hitSparkShader;
mark = cgs.media.slashMarkShader;
sfx = cgs.media.knifeClankSound;
//Makro - added for snow/grass
if (soundType == IMPACTSOUND_GRASS) {
sfx = cgs.media.footsteps[FOOTSTEP_GRASS][rand()%4];
} else if (soundType == IMPACTSOUND_SNOW) {
sfx = cgs.media.footsteps[FOOTSTEP_SNOW][rand()%4];
} else {
mark = cgs.media.slashMarkShader;
sfx = cgs.media.knifeClankSound;
}
radius = rand() % 4 + 6;
} else {
duration = 180;
@ -2626,12 +2659,16 @@ void CG_MissileHitWall(int weapon, int clientNum, vec3_t origin,
//
// impact mark
//
alphaFade = (mark == cgs.media.energyMarkShader /* || mark == cgs.media.tileMarkShader */ ); // plasma fades alpha, all others fade color
alphaFade = (mark == cgs.media.energyMarkShader || mark == cgs.media.snowMarkShader ); // plasma fades alpha, all others fade color
// Elder: Our knife slashes are vertical
if (weapon == WP_KNIFE)
angle = random() * 90;
else
if (weapon == WP_KNIFE) {
//Makro - changed
//angle = random() * 90;
angle = -45 + random() * 90;
if (angle < 0)
angle +=360;
} else
angle = random() * 360;
if (mark)
@ -2644,7 +2681,8 @@ void CG_MissileHitWall(int weapon, int clientNum, vec3_t origin,
//Elder: 75% of the time render a smoke puff
i = rand() % 4;
if (cg_RQ3_impactEffects.integer && i < 3) {
//Makro - not for snow or grass surfaces
if (cg_RQ3_impactEffects.integer && i < 3 && soundType != IMPACTSOUND_SNOW && soundType != IMPACTSOUND_GRASS) {
contentType = trap_CM_PointContents(origin, 0);
// no puff in water
if (!(contentType & CONTENTS_WATER)) {
@ -2702,6 +2740,50 @@ void CG_MissileHitWall(int weapon, int clientNum, vec3_t origin,
}
}
}
//Makro: snow surfaces
if (cg_RQ3_impactEffects.integer && soundType == IMPACTSOUND_SNOW) {
if (weapon != WP_GRENADE) {
if (weapon == WP_M3 || weapon == WP_HANDCANNON)
sparkCount = 5 + rand() % 5;
else if (weapon == WP_KNIFE)
sparkCount = 10 + rand() % 10;
else if (weapon == WP_SSG3000)
sparkCount = 25 + rand() % 20;
else
sparkCount = 15 + rand() % 15;
// Generate the particles
for (i = 0; i < sparkCount; i++) {
if (weapon == WP_KNIFE)
VectorScale(dir, 60 + rand() % 20, velocity);
else
VectorScale(dir, 75 + rand() % 25, velocity);
CG_ParticleHitSnow(origin, velocity, 500 + rand() % 150, 2, 2, -5, 1);
}
}
}
//Makro: grass surfaces
if (cg_RQ3_impactEffects.integer && soundType == IMPACTSOUND_GRASS) {
if (weapon != WP_GRENADE) {
if (weapon == WP_M3 || weapon == WP_HANDCANNON)
sparkCount = 5 + rand() % 5;
else if (weapon == WP_KNIFE)
sparkCount = 10 + rand() % 10;
else if (weapon == WP_SSG3000)
sparkCount = 25 + rand() % 20;
else
sparkCount = 15 + rand() % 15;
// Generate the particles
for (i = 0; i < sparkCount; i++) {
if (weapon == WP_KNIFE)
VectorScale(dir, 60 + rand() % 20, velocity);
else
VectorScale(dir, 75 + rand() % 25, velocity);
CG_ParticleHitGrass(origin, velocity, 500 + rand() % 150, 2, 2, -5, 1);
}
}
}
// Elder: grenade explosion
if (cg_RQ3_impactEffects.integer && weapon == WP_GRENADE) {
@ -2869,6 +2951,26 @@ static void CG_ShotgunPellet(vec3_t start, vec3_t end, int skipNum, int shellWea
//Elder: show only approximately every other impact mark
CG_MissileHitWall(WP_HANDCANNON, 0, tr.endpos, tr.plane.normal, IMPACTSOUND_CERAMIC, 0);
}
}
//Makro - added
else if (IsSnowMat(Material)) {
//Blaze: Changed WP_SHOTGUN to WP_M3
if (shellWeapon == WP_M3)
CG_MissileHitWall(WP_M3, 0, tr.endpos, tr.plane.normal, IMPACTSOUND_SNOW, 0);
else if (shellWeapon == WP_HANDCANNON && crandom() > 0.5) {
//Elder: show only approximately every other impact mark
CG_MissileHitWall(WP_HANDCANNON, 0, tr.endpos, tr.plane.normal, IMPACTSOUND_SNOW, 0);
}
}
//Makro - added
else if (Material == MAT_GRASS) {
//Blaze: Changed WP_SHOTGUN to WP_M3
if (shellWeapon == WP_M3)
CG_MissileHitWall(WP_M3, 0, tr.endpos, tr.plane.normal, IMPACTSOUND_GRASS, 0);
else if (shellWeapon == WP_HANDCANNON && crandom() > 0.5) {
//Elder: show only approximately every other impact mark
CG_MissileHitWall(WP_HANDCANNON, 0, tr.endpos, tr.plane.normal, IMPACTSOUND_GRASS, 0);
}
} else {
// Elder: By default, the M3 and HC will spark on all surfaces
// Blaze: Changed WP_SHOTGUN to WP_M3

View file

@ -11,6 +11,24 @@
<h3>Results</h3>
cgamex86.dll - 0 error(s), 0 warning(s)
<h3>
--------------------Configuration: game - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
<h3>Results</h3>
qagamex86.dll - 0 error(s), 0 warning(s)
<h3>
--------------------Configuration: ui - Win32 Release TA--------------------
</h3>
<h3>Command Lines</h3>
<h3>Results</h3>
uix86.dll - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.55 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.54 2003/04/02 22:23:51 jbravo
// More replacements tweaks. Added zcam_stfu
//
@ -1182,6 +1185,8 @@ char *eventnames[] = {
"EV_BULLET_HIT_WOOD", // Makro: new sound
"EV_BULLET_HIT_BRICK", // Makro: new sound
"EV_BULLET_HIT_CERAMIC", // Makro: new sound
"EV_BULLET_HIT_SNOW", // Makro: new fx
"EV_BULLET_HIT_GRASS", // Makro: new fx
"EV_SSG3000_HIT_FLESH", // Elder: SSG3000 blood spray
"EV_JUMPKICK", // Elder: sound + jumpkick message
"EV_EJECTBLOOD", // Elder: when bleeding, every 2s release blood
@ -1619,6 +1624,20 @@ qboolean IsWoodFlag(int flag)
return IsWoodMat(GetMaterialFromFlag(flag));
}
//snow
qboolean IsSnowMat(int Material)
{
if (Material == MAT_SNOW || Material == MAT_SNOW2) {
return qtrue;
}
return qfalse;
}
qboolean IsSnowFlag(int flag)
{
return IsSnowMat(GetMaterialFromFlag(flag));
}
//Makro - added
/* char *modelFromStr(char *s)
{

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.107 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.106 2003/04/26 15:23:57 jbravo
// grenade replacement fix. Version bumped to 3.1
//
@ -1137,6 +1140,8 @@ typedef enum {
EV_BULLET_HIT_WOOD, // Makro: new sound
EV_BULLET_HIT_BRICK, // Makro: new sound
EV_BULLET_HIT_CERAMIC, // Makro: new sound
EV_BULLET_HIT_SNOW, // Makro: new fx
EV_BULLET_HIT_GRASS, // Makro: new fx
EV_SSG3000_HIT_FLESH,
EV_JUMPKICK, // Elder: sound + jumpkick message
EV_EJECTBLOOD, // Elder: when bleeding, every 2s release blood
@ -1543,6 +1548,8 @@ qboolean IsMetalMat(int Material);
qboolean IsMetalFlag(int flag);
qboolean IsWoodMat(int Material);
qboolean IsWoodFlag(int flag);
qboolean IsSnowMat(int Material);
qboolean IsSnowFlag(int flag);
holdable_t CharToItem(char *name, holdable_t defitem);
weapon_t CharToWeapon(char *name, weapon_t defweapon);

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.142 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.141 2003/04/26 22:33:06 jbravo
// Wratted all calls to G_FreeEnt() to avoid crashing and provide debugging
//
@ -472,6 +475,8 @@ struct gentity_s {
int sound2to1;
int soundPos2;
int soundLoop;
//Makro - added
int soundInactive;
gentity_t *parent;
gentity_t *nextTrain;
gentity_t *prevTrain;

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.72 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.71 2003/04/26 22:33:06 jbravo
// Wratted all calls to G_FreeEnt() to avoid crashing and provide debugging
//
@ -765,8 +768,12 @@ void Use_Breakable(gentity_t * self, gentity_t * other, gentity_t * activator)
//else
//{
//make sure it breaks
self->health = 0;
G_BreakGlass(self, activator, activator, self->s.origin, MOD_TRIGGER_HURT, self->health);
//Makro - added check
if (!self->exploded)
{
self->health = 0;
G_BreakGlass(self, activator, activator, self->s.origin, MOD_TRIGGER_HURT, self->health);
}
// }
}

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.59 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.58 2003/04/26 22:33:06 jbravo
// Wratted all calls to G_FreeEnt() to avoid crashing and provide debugging
//
@ -889,8 +892,12 @@ void Use_BinaryMover(gentity_t * ent, gentity_t * other, gentity_t * activator)
return;
}
//Makro - do nothing if the mover is not active
//Makro - if the mover is not active
if (ent->inactive) {
//play "inactive" sound, if set
if (ent->soundInactive) {
G_AddEvent(ent, EV_GENERAL_SOUND, ent->soundInactive);
}
return;
}
@ -1437,12 +1444,17 @@ void SP_func_door(gentity_t * ent)
char *sSndMove;
char *sSndStop;
char *sSndStart;
//Makro - added
char *sSndInactive;
//Elder: can set sounds from here
//Blaze: changed default path as per Sze
G_SpawnString("soundstart", "sound/movers/door_start.wav", &sSndStart);
G_SpawnString("soundstop", "sound/movers/door_stop.wav", &sSndStop);
G_SpawnString("soundmove", "sound/misc/silence.wav", &sSndMove);
//Makro - for inactive doors
if (G_SpawnString("soundinactive", "", &sSndInactive))
ent->soundInactive = G_SoundIndex(sSndInactive);
ent->sound1to2 = ent->sound2to1 = G_SoundIndex(sSndMove);
ent->soundPos1 = G_SoundIndex(sSndStart);
@ -1561,6 +1573,8 @@ void SP_func_door_rotating(gentity_t * ent)
char *sSndMove;
char *sSndStop;
char *sSndStart;
//Makro - added
char *sSndInactive;
//Elder: can set sounds from here
G_SpawnString("soundstart", "sound/movers/rdoor_stop.wav", &sSndStart);
@ -1570,6 +1584,9 @@ void SP_func_door_rotating(gentity_t * ent)
ent->sound1to2 = ent->sound2to1 = G_SoundIndex(sSndMove);
ent->soundPos1 = G_SoundIndex(sSndStart);
ent->soundPos2 = G_SoundIndex(sSndStop);
//Makro - for inactive doors
if (G_SpawnString("soundinactive", "", &sSndInactive))
ent->soundInactive = G_SoundIndex(sSndInactive);
//ent->sound1to2 = ent->sound2to1 = G_SoundIndex("sound/movers/doors/dr1_strt.wav");
//ent->soundPos1 = ent->soundPos2 = G_SoundIndex("sound/movers/doors/dr1_end.wav");

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.27 2003/07/30 16:05:46 makro
// no message
//
// Revision 1.26 2003/04/26 22:33:07 jbravo
// Wratted all calls to G_FreeEnt() to avoid crashing and provide debugging
//
@ -102,6 +105,10 @@ void multi_trigger(gentity_t * ent, gentity_t * activator)
if (ent->nextthink) {
return; // can't retrigger until the wait is over
}
//Makro - inactive trigger ?
if (ent->inactive) {
return;
}
//Makro - added check; Q3 crashed in archives when playing
//with .dll's and shooting one of the barrels
if (activator != NULL) {

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.90 2003/07/30 16:05:47 makro
// no message
//
// Revision 1.89 2003/04/26 22:33:07 jbravo
// Wratted all calls to G_FreeEnt() to avoid crashing and provide debugging
//
@ -596,6 +599,18 @@ void Bullet_Fire(gentity_t * ent, float spread, int damage, int MOD)
tent->s.eventParm = DirToByte(tr.plane.normal);
tent->s.otherEntityNum = ent->s.number;
tent->s.clientNum = ent->s.clientNum;
//Makro - new fx
} else if (IsSnowMat(Material)) {
tent = G_TempEntity(tr.endpos, EV_BULLET_HIT_SNOW);
tent->s.eventParm = DirToByte(tr.plane.normal);
tent->s.otherEntityNum = ent->s.number;
tent->s.clientNum = ent->s.clientNum;
//Makro - new fx
} else if (Material == MAT_GRASS) {
tent = G_TempEntity(tr.endpos, EV_BULLET_HIT_GRASS);
tent->s.eventParm = DirToByte(tr.plane.normal);
tent->s.otherEntityNum = ent->s.number;
tent->s.clientNum = ent->s.clientNum;
} else {
tent = G_TempEntity(tr.endpos, EV_BULLET_HIT_WALL);
tent->s.eventParm = DirToByte(tr.plane.normal);
@ -1003,6 +1018,8 @@ void Knife_Attack(gentity_t * self, int damage)
tent = G_TempEntity(tr.endpos, EV_KNIFE_MISS);
tent->s.eventParm = DirToByte(tr.plane.normal);
tent->s.weapon = WP_KNIFE;
//Makro - added
tent->s.powerups = GetMaterialFromFlag(tr.surfaceFlags);;
} else if (self->client->knife_sound == -2) { // Hit player
tent = G_TempEntity(tr.endpos, EV_RQ3_SOUND);
tent->s.eventParm = RQ3_SOUND_KNIFEHIT;
@ -1318,6 +1335,10 @@ void Weapon_SSG3000_Fire(gentity_t * ent)
tent = G_TempEntity(trace.endpos, EV_BULLET_HIT_BRICK);
else if (Material == MAT_CERAMIC)
tent = G_TempEntity(trace.endpos, EV_BULLET_HIT_CERAMIC);
else if (IsSnowMat(Material))
tent = G_TempEntity(trace.endpos, EV_BULLET_HIT_SNOW);
else if (Material == MAT_GRASS)
tent = G_TempEntity(trace.endpos, EV_BULLET_HIT_GRASS);
else
tent = G_TempEntity(trace.endpos, EV_BULLET_HIT_WALL);
@ -1356,6 +1377,10 @@ void Weapon_SSG3000_Fire(gentity_t * ent)
tent = G_TempEntity(trace.endpos, EV_BULLET_HIT_BRICK);
else if (Material == MAT_CERAMIC)
tent = G_TempEntity(trace.endpos, EV_BULLET_HIT_CERAMIC);
else if (IsSnowMat(Material))
tent = G_TempEntity(trace.endpos, EV_BULLET_HIT_SNOW);
else if (Material == MAT_GRASS)
tent = G_TempEntity(trace.endpos, EV_BULLET_HIT_GRASS);
else
tent = G_TempEntity(trace.endpos, EV_BULLET_HIT_WALL);
@ -1409,6 +1434,10 @@ void Weapon_SSG3000_Fire(gentity_t * ent)
tentWall = G_TempEntity(trace.endpos, EV_BULLET_HIT_BRICK);
else if (Material == MAT_CERAMIC)
tentWall = G_TempEntity(trace.endpos, EV_BULLET_HIT_CERAMIC);
else if (IsSnowMat(Material))
tentWall = G_TempEntity(trace.endpos, EV_BULLET_HIT_SNOW);
else if (Material == MAT_GRASS)
tentWall = G_TempEntity(trace.endpos, EV_BULLET_HIT_GRASS);
else
tentWall = G_TempEntity(trace.endpos, EV_BULLET_HIT_WALL);

View file

@ -6,6 +6,49 @@
--------------------Configuration: cgame - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPF0.tmp" with contents
[
/nologo /G6 /ML /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fp"Release/cgame.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
"C:\Games\Quake3\rq3source\reaction\cgame\cg_event.c"
]
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPF0.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPF1.tmp" with contents
[
/nologo /base:"0x30000000" /subsystem:windows /dll /incremental:no /pdb:"Release/cgamex86.pdb" /map:"Release/cgamex86.map" /machine:I386 /def:".\cgame.def" /out:"../Release/cgamex86.dll" /implib:"Release/cgamex86.lib"
.\Release\bg_misc.obj
.\Release\bg_pmove.obj
.\Release\bg_slidemove.obj
.\Release\cg_atmospheric.obj
.\Release\cg_consolecmds.obj
.\Release\cg_draw.obj
.\Release\cg_drawtools.obj
.\Release\cg_effects.obj
.\Release\cg_ents.obj
.\Release\cg_event.obj
.\Release\cg_info.obj
.\Release\cg_localents.obj
.\Release\cg_main.obj
.\Release\cg_marks.obj
.\Release\cg_players.obj
.\Release\cg_playerstate.obj
.\Release\cg_predict.obj
.\Release\cg_scoreboard.obj
.\Release\cg_servercmds.obj
.\Release\cg_snapshot.obj
.\Release\cg_syscalls.obj
.\Release\cg_unlagged.obj
.\Release\cg_view.obj
.\Release\cg_weapons.obj
.\Release\q_math.obj
.\Release\q_shared.obj
.\Release\ui_shared.obj
]
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPF1.tmp"
<h3>Output Window</h3>
Compiling...
cg_event.c
Linking...
Creating library Release/cgamex86.lib and object Release/cgamex86.exp
@ -15,13 +58,13 @@ cgamex86.dll - 0 error(s), 0 warning(s)
--------------------Configuration: game - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP38.tmp" with contents
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPF5.tmp" with contents
[
/nologo /G6 /ML /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR"c:\reactionoutput/" /Fp"c:\reactionoutput/game.pch" /YX /Fo"c:\reactionoutput/" /Fd"c:\reactionoutput/" /FD /c
"C:\Games\Quake3\rq3source\reaction\game\g_misc.c"
"C:\Games\Quake3\rq3source\reaction\game\g_weapon.c"
]
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP38.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP39.tmp" with contents
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPF5.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPF6.tmp" with contents
[
kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows /dll /incremental:no /pdb:"c:\reactionoutput/qagamex86.pdb" /map:"c:\reactionoutput/qagamex86.map" /machine:I386 /def:".\game.def" /out:"..\Release/qagamex86.dll" /implib:"c:\reactionoutput/qagamex86.lib"
\reactionoutput\ai_chat.obj
@ -56,6 +99,7 @@ kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows
\reactionoutput\g_team.obj
\reactionoutput\g_teamplay.obj
\reactionoutput\g_trigger.obj
\reactionoutput\g_unlagged.obj
\reactionoutput\g_utils.obj
\reactionoutput\g_weapon.obj
\reactionoutput\q_math.obj
@ -63,19 +107,65 @@ kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows
\reactionoutput\rxn_game.obj
\reactionoutput\zcam.obj
\reactionoutput\zcam_target.obj
\reactionoutput\g_unlagged.obj
]
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP39.tmp"
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPF6.tmp"
<h3>Output Window</h3>
Compiling...
g_misc.c
g_weapon.c
C:\Games\Quake3\rq3source\reaction\game\g_weapon.c(1939) : warning C4701: local variable 'tr' may be used without having been initialized
Linking...
Creating library c:\reactionoutput/qagamex86.lib and object c:\reactionoutput/qagamex86.exp
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPFA.tmp" with contents
[
/nologo /o"c:\reactionoutput/game.bsc"
\reactionoutput\ai_chat.sbr
\reactionoutput\ai_cmd.sbr
\reactionoutput\ai_dmnet.sbr
\reactionoutput\ai_dmq3.sbr
\reactionoutput\ai_main.sbr
\reactionoutput\ai_team.sbr
\reactionoutput\ai_vcmd.sbr
\reactionoutput\bg_misc.sbr
\reactionoutput\bg_pmove.sbr
\reactionoutput\bg_slidemove.sbr
\reactionoutput\g_active.sbr
\reactionoutput\g_arenas.sbr
\reactionoutput\g_bot.sbr
\reactionoutput\g_client.sbr
\reactionoutput\g_cmds.sbr
\reactionoutput\g_combat.sbr
\reactionoutput\g_fileio.sbr
\reactionoutput\g_items.sbr
\reactionoutput\g_main.sbr
\reactionoutput\g_matchmode.sbr
\reactionoutput\g_mem.sbr
\reactionoutput\g_misc.sbr
\reactionoutput\g_missile.sbr
\reactionoutput\g_mover.sbr
\reactionoutput\g_session.sbr
\reactionoutput\g_spawn.sbr
\reactionoutput\g_svcmds.sbr
\reactionoutput\g_syscalls.sbr
\reactionoutput\g_target.sbr
\reactionoutput\g_team.sbr
\reactionoutput\g_teamplay.sbr
\reactionoutput\g_trigger.sbr
\reactionoutput\g_unlagged.sbr
\reactionoutput\g_utils.sbr
\reactionoutput\g_weapon.sbr
\reactionoutput\q_math.sbr
\reactionoutput\q_shared.sbr
\reactionoutput\rxn_game.sbr
\reactionoutput\zcam.sbr
\reactionoutput\zcam_target.sbr]
Creating command line "bscmake.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSPFA.tmp"
Creating browse info file...
<h3>Output Window</h3>
<h3>Results</h3>
qagamex86.dll - 0 error(s), 0 warning(s)
qagamex86.dll - 0 error(s), 1 warning(s)
<h3>
--------------------Configuration: ui - Win32 Release TA--------------------
</h3>

View file

@ -7,7 +7,7 @@
visible 0
fullscreen 0
outOfBoundsClick // this closes the window if it gets a click out of the rectangle
rect 184 64 140 140
rect 176 64 180 140
disableColor .5 .5 .5 1
focusColor 1 .75 0 1 // Menu focus color for text and items
style 1
@ -17,7 +17,7 @@
//Window
itemdef {
rect 0 0 140 140
rect 0 0 180 140
style WINDOW_STYLE_FILLED
backcolor Ig_Window_Color
visible 1
@ -28,7 +28,7 @@
}
itemdef {
rect 21 1 120 24
rect 61 1 120 24
style WINDOW_STYLE_SHADER
background "ui/assets/rq3-ingame-title"
visible 1
@ -36,7 +36,7 @@
}
itemdef {
rect 21 1 120 24
rect 61 1 120 24
style WINDOW_STYLE_EMPTY
forecolor Ig_Window_TitleColor
textstyle ITEM_TEXTSTYLE_NORMAL
@ -61,7 +61,7 @@
//type ITEM_TYPE_BUTTON
style WINDOW_STYLE_EMPTY
textstyle ITEM_TEXTSTYLE_NORMAL
rect 8 36 128 20
rect 8 36 132 20
textalign ITEM_ALIGN_LEFT
textalignx 16
textaligny 18
@ -78,7 +78,7 @@
type ITEM_TYPE_NUMERICFIELD
style WINDOW_STYLE_EMPTY
textstyle ITEM_TEXTSTYLE_NORMAL
rect 100 36 32 20
rect 140 36 32 20
textalign ITEM_ALIGN_LEFT
textalignx 16
textaligny 18
@ -98,7 +98,7 @@
//type ITEM_TYPE_BUTTON
style WINDOW_STYLE_EMPTY
textstyle ITEM_TEXTSTYLE_NORMAL
rect 8 56 128 20
rect 8 56 132 20
textalign ITEM_ALIGN_LEFT
textalignx 16
textaligny 18
@ -115,7 +115,7 @@
type ITEM_TYPE_NUMERICFIELD
style WINDOW_STYLE_EMPTY
textstyle ITEM_TEXTSTYLE_NORMAL
rect 100 56 32 20
rect 140 56 32 20
textalign ITEM_ALIGN_LEFT
textalignx 16
textaligny 18
@ -134,7 +134,7 @@
type ITEM_TYPE_BUTTON
style WINDOW_STYLE_EMPTY
textstyle ITEM_TEXTSTYLE_NORMAL
rect 8 76 128 20
rect 8 76 132 20
textalign ITEM_ALIGN_LEFT
textalignx 16
textaligny 18
@ -153,7 +153,7 @@
type ITEM_TYPE_BUTTON
style WINDOW_STYLE_EMPTY
textstyle ITEM_TEXTSTYLE_NORMAL
rect 8 96 128 20
rect 8 96 132 20
textalign ITEM_ALIGN_LEFT
textalignx 16
textaligny 18
@ -170,7 +170,7 @@
type ITEM_TYPE_NUMERICFIELD
style WINDOW_STYLE_EMPTY
textstyle ITEM_TEXTSTYLE_NORMAL
rect 100 96 32 20
rect 140 96 32 20
textalign ITEM_ALIGN_LEFT
textalignx 16
textaligny 18