mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2024-11-22 20:31:11 +00:00
cleaned up the powerup code
This commit is contained in:
parent
2c80feef38
commit
862df910c1
14 changed files with 87 additions and 431 deletions
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.60 2002/07/22 06:31:32 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.59 2002/07/19 04:34:48 niceass
|
||||
// drawping fixed
|
||||
//
|
||||
|
@ -1865,10 +1868,7 @@ static void CG_ScanForCrosshairEntity(void)
|
|||
if (content & CONTENTS_FOG) {
|
||||
return;
|
||||
}
|
||||
// if the player is invisible, don't show it
|
||||
if (cg_entities[trace.entityNum].currentState.powerups & (1 << PW_INVIS)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// update the fade timer
|
||||
cg.crosshairClientNum = trace.entityNum;
|
||||
cg.crosshairClientTime = cg.time;
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.67 2002/07/22 06:31:11 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.66 2002/07/07 18:36:13 jbravo
|
||||
// Added an AntiIdle system. Can play insane sounds for idle players, drop them
|
||||
// from teams or kick them. Upped version to Beta 2.1
|
||||
|
@ -1336,30 +1339,6 @@ void CG_EntityEvent(centity_t * cent, vec3_t position)
|
|||
//
|
||||
// powerup events
|
||||
//
|
||||
case EV_POWERUP_QUAD:
|
||||
DEBUGNAME("EV_POWERUP_QUAD");
|
||||
if (es->number == cg.snap->ps.clientNum) {
|
||||
cg.powerupActive = PW_QUAD;
|
||||
cg.powerupTime = cg.time;
|
||||
}
|
||||
trap_S_StartSound(NULL, es->number, CHAN_ITEM, cgs.media.quadSound);
|
||||
break;
|
||||
case EV_POWERUP_BATTLESUIT:
|
||||
DEBUGNAME("EV_POWERUP_BATTLESUIT");
|
||||
if (es->number == cg.snap->ps.clientNum) {
|
||||
cg.powerupActive = PW_BATTLESUIT;
|
||||
cg.powerupTime = cg.time;
|
||||
}
|
||||
trap_S_StartSound(NULL, es->number, CHAN_ITEM, cgs.media.protectSound);
|
||||
break;
|
||||
case EV_POWERUP_REGEN:
|
||||
DEBUGNAME("EV_POWERUP_REGEN");
|
||||
if (es->number == cg.snap->ps.clientNum) {
|
||||
cg.powerupActive = PW_REGEN;
|
||||
cg.powerupTime = cg.time;
|
||||
}
|
||||
trap_S_StartSound(NULL, es->number, CHAN_ITEM, cgs.media.regenSound);
|
||||
break;
|
||||
|
||||
case EV_GIB_PLAYER:
|
||||
DEBUGNAME("EV_GIB_PLAYER");
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.41 2002/07/22 06:30:52 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.40 2002/07/11 16:29:16 makro
|
||||
// Dust has a different color for snow surfaces now
|
||||
//
|
||||
|
@ -1506,11 +1509,7 @@ static void CG_PlayerAnimation(centity_t * cent, int *legsOld, int *legs, float
|
|||
return;
|
||||
}
|
||||
|
||||
if (cent->currentState.powerups & (1 << PW_HASTE)) {
|
||||
speedScale = 1.5;
|
||||
} else {
|
||||
speedScale = 1;
|
||||
}
|
||||
speedScale = 1;
|
||||
|
||||
ci = &cgs.clientinfo[clientNum];
|
||||
|
||||
|
@ -1796,39 +1795,6 @@ static void CG_HCSmokeTrail(centity_t * cent)
|
|||
smoke->leType = LE_SCALE_FADE;
|
||||
}
|
||||
|
||||
/*
|
||||
===============
|
||||
CG_HasteTrail
|
||||
===============
|
||||
*/
|
||||
static void CG_HasteTrail(centity_t * cent)
|
||||
{
|
||||
localEntity_t *smoke;
|
||||
vec3_t origin;
|
||||
int anim;
|
||||
|
||||
if (cent->trailTime > cg.time) {
|
||||
return;
|
||||
}
|
||||
anim = cent->pe.legs.animationNumber & ~ANIM_TOGGLEBIT;
|
||||
if (anim != LEGS_RUN && anim != LEGS_BACK) {
|
||||
return;
|
||||
}
|
||||
|
||||
cent->trailTime += 100;
|
||||
if (cent->trailTime < cg.time) {
|
||||
cent->trailTime = cg.time;
|
||||
}
|
||||
|
||||
VectorCopy(cent->lerpOrigin, origin);
|
||||
origin[2] -= 16;
|
||||
|
||||
smoke = CG_SmokePuff(origin, vec3_origin, 8, 1, 1, 1, 1, 500, cg.time, 0, 0, cgs.media.hastePuffShader);
|
||||
|
||||
// use the optimized local entity add
|
||||
smoke->leType = LE_SCALE_FADE;
|
||||
}
|
||||
|
||||
/*
|
||||
===============
|
||||
CG_BreathPuffs
|
||||
|
@ -2109,15 +2075,6 @@ static void CG_PlayerPowerups(centity_t * cent, refEntity_t * torso)
|
|||
if (!powerups) {
|
||||
return;
|
||||
}
|
||||
// quad gives a dlight
|
||||
if (powerups & (1 << PW_QUAD)) {
|
||||
trap_R_AddLightToScene(cent->lerpOrigin, 200 + (rand() & 31), 0.2f, 0.2f, 1);
|
||||
}
|
||||
// flight plays a looped sound
|
||||
if (powerups & (1 << PW_FLIGHT)) {
|
||||
trap_S_AddLoopingSound(cent->currentState.number, cent->lerpOrigin, vec3_origin, cgs.media.flightSound);
|
||||
}
|
||||
|
||||
ci = &cgs.clientinfo[cent->currentState.clientNum];
|
||||
// redflag
|
||||
if (powerups & (1 << PW_REDFLAG)) {
|
||||
|
@ -2146,10 +2103,6 @@ static void CG_PlayerPowerups(centity_t * cent, refEntity_t * torso)
|
|||
}
|
||||
trap_R_AddLightToScene(cent->lerpOrigin, 200 + (rand() & 31), 1.0, 1.0, 1.0);
|
||||
}
|
||||
// haste leaves smoke trails
|
||||
if (powerups & (1 << PW_HASTE)) {
|
||||
CG_HasteTrail(cent);
|
||||
}
|
||||
// Elder: HC Smoke
|
||||
//if ( powerups & ( 1 << PW_HANDCANNON_SMOKED) ) {
|
||||
//CG_HCSmokeTrail( cent );
|
||||
|
@ -2282,10 +2235,7 @@ static qboolean CG_PlayerShadow(centity_t * cent, float *shadowPlane)
|
|||
if (cg_shadows.integer == 0) {
|
||||
return qfalse;
|
||||
}
|
||||
// no shadows when invisible
|
||||
if (cent->currentState.powerups & (1 << PW_INVIS)) {
|
||||
return qfalse;
|
||||
}
|
||||
|
||||
// send a trace down from the player to the ground
|
||||
VectorCopy(cent->lerpOrigin, end);
|
||||
end[2] -= SHADOW_DISTANCE;
|
||||
|
@ -2413,48 +2363,25 @@ Also called by CG_Missile for quad rockets, but nobody can tell...
|
|||
void CG_AddRefEntityWithPowerups(refEntity_t * ent, entityState_t * state, int team)
|
||||
{
|
||||
|
||||
if (state->powerups & (1 << PW_INVIS)) {
|
||||
ent->customShader = cgs.media.invisShader;
|
||||
trap_R_AddRefEntityToScene(ent);
|
||||
} else {
|
||||
/*
|
||||
if ( state->eFlags & EF_KAMIKAZE ) {
|
||||
if (team == TEAM_BLUE)
|
||||
ent->customShader = cgs.media.blueKamikazeShader;
|
||||
else
|
||||
ent->customShader = cgs.media.redKamikazeShader;
|
||||
trap_R_AddRefEntityToScene( ent );
|
||||
}
|
||||
else { */
|
||||
trap_R_AddRefEntityToScene(ent);
|
||||
//}
|
||||
/*
|
||||
if ( state->eFlags & EF_KAMIKAZE ) {
|
||||
if (team == TEAM_BLUE)
|
||||
ent->customShader = cgs.media.blueKamikazeShader;
|
||||
else
|
||||
ent->customShader = cgs.media.redKamikazeShader;
|
||||
trap_R_AddRefEntityToScene( ent );
|
||||
}
|
||||
else { */
|
||||
trap_R_AddRefEntityToScene(ent);
|
||||
//}
|
||||
|
||||
if (state->powerups & (1 << PW_QUAD)) {
|
||||
if (team == TEAM_RED)
|
||||
ent->customShader = cgs.media.redQuadShader;
|
||||
else
|
||||
ent->customShader = cgs.media.quadShader;
|
||||
//Elder: IR Vision -- only on players that are alive
|
||||
if (state->eType == ET_PLAYER) {
|
||||
if (bg_itemlist[cg.snap->ps.stats[STAT_HOLDABLE_ITEM]].giTag == HI_BANDOLIER &&
|
||||
cg.rq3_irvision && !(state->eFlags & EF_DEAD)) {
|
||||
ent->customShader = cgs.media.irPlayerShader;
|
||||
trap_R_AddRefEntityToScene(ent);
|
||||
}
|
||||
if (state->powerups & (1 << PW_REGEN)) {
|
||||
if (((cg.time / 100) % 10) == 1) {
|
||||
ent->customShader = cgs.media.regenShader;
|
||||
trap_R_AddRefEntityToScene(ent);
|
||||
}
|
||||
}
|
||||
if (state->powerups & (1 << PW_BATTLESUIT)) {
|
||||
ent->customShader = cgs.media.battleSuitShader;
|
||||
trap_R_AddRefEntityToScene(ent);
|
||||
}
|
||||
//Elder: IR Vision -- only on players that are alive
|
||||
if (state->eType == ET_PLAYER) {
|
||||
if (bg_itemlist[cg.snap->ps.stats[STAT_HOLDABLE_ITEM]].giTag == HI_BANDOLIER &&
|
||||
cg.rq3_irvision && !(state->eFlags & EF_DEAD)) {
|
||||
ent->customShader = cgs.media.irPlayerShader;
|
||||
trap_R_AddRefEntityToScene(ent);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.91 2002/07/22 06:30:12 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.90 2002/07/13 22:42:18 makro
|
||||
// Semi-working fog hull, semi-working sky portals (cgame code commented out)
|
||||
// Basically, semi-working stuff :P
|
||||
|
@ -1375,22 +1378,7 @@ CG_AddWeaponWithPowerups
|
|||
*/
|
||||
static void CG_AddWeaponWithPowerups(refEntity_t * gun, int powerups)
|
||||
{
|
||||
// add powerup effects
|
||||
if (powerups & (1 << PW_INVIS)) {
|
||||
gun->customShader = cgs.media.invisShader;
|
||||
trap_R_AddRefEntityToScene(gun);
|
||||
} else {
|
||||
trap_R_AddRefEntityToScene(gun);
|
||||
|
||||
if (powerups & (1 << PW_BATTLESUIT)) {
|
||||
gun->customShader = cgs.media.battleWeaponShader;
|
||||
trap_R_AddRefEntityToScene(gun);
|
||||
}
|
||||
if (powerups & (1 << PW_QUAD)) {
|
||||
gun->customShader = cgs.media.quadWeaponShader;
|
||||
trap_R_AddRefEntityToScene(gun);
|
||||
}
|
||||
}
|
||||
trap_R_AddRefEntityToScene(gun);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1750,6 +1738,7 @@ void CG_AddPlayerWeapon(refEntity_t * parent, playerState_t * ps, centity_t * ce
|
|||
cent->ejectBrassTime = 0;
|
||||
}
|
||||
|
||||
|
||||
if ( cent->currentState.number != cg.predictedPlayerState.clientNum ) {
|
||||
refEntity_t muzzle;
|
||||
memset(&muzzle, 0, sizeof(muzzle));
|
||||
|
@ -2715,10 +2704,6 @@ void CG_FireWeapon(centity_t * cent, int weapModification)
|
|||
}
|
||||
*/
|
||||
|
||||
// play quad sound if needed
|
||||
if (cent->currentState.powerups & (1 << PW_QUAD)) {
|
||||
trap_S_StartSound(NULL, cent->currentState.number, CHAN_ITEM, cgs.media.quadSound);
|
||||
}
|
||||
//Elder: silencer stuff
|
||||
if (weapModification == RQ3_WPMOD_SILENCER) {
|
||||
trap_S_StartSound(NULL, ent->number, CHAN_WEAPON, cgs.media.silencerSound);
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.9 2002/07/22 06:35:03 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.8 2002/06/16 20:06:13 jbravo
|
||||
// Reindented all the source files with "indent -kr -ut -i8 -l120 -lc120 -sob -bad -bap"
|
||||
//
|
||||
|
@ -489,11 +492,7 @@ int BotValidChatPosition(bot_state_t * bs)
|
|||
//if the bot is dead all positions are valid
|
||||
if (BotIsDead(bs))
|
||||
return qtrue;
|
||||
//never start chatting with a powerup
|
||||
if (bs->inventory[INVENTORY_QUAD] ||
|
||||
bs->inventory[INVENTORY_HASTE] ||
|
||||
bs->inventory[INVENTORY_INVISIBILITY] || bs->inventory[INVENTORY_REGEN] || bs->inventory[INVENTORY_FLIGHT])
|
||||
return qfalse;
|
||||
|
||||
//must be on the ground
|
||||
//if (bs->cur_ps.groundEntityNum != ENTITYNUM_NONE) return qfalse;
|
||||
//do not chat if in lava or slime
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.50 2002/07/22 06:34:46 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.49 2002/07/02 20:22:35 jbravo
|
||||
// Changed the files to use the right ui.
|
||||
//
|
||||
|
@ -768,9 +771,7 @@ qboolean EntityIsInvisible(aas_entityinfo_t * entinfo)
|
|||
if (EntityCarriesFlag(entinfo)) {
|
||||
return qfalse;
|
||||
}
|
||||
if (entinfo->powerups & (1 << PW_INVIS)) {
|
||||
return qtrue;
|
||||
}
|
||||
|
||||
return qfalse;
|
||||
}
|
||||
|
||||
|
@ -807,9 +808,6 @@ EntityHasQuad
|
|||
*/
|
||||
qboolean EntityHasQuad(aas_entityinfo_t * entinfo)
|
||||
{
|
||||
if (entinfo->powerups & (1 << PW_QUAD)) {
|
||||
return qtrue;
|
||||
}
|
||||
return qfalse;
|
||||
}
|
||||
|
||||
|
@ -1815,12 +1813,6 @@ void BotUpdateInventory(bot_state_t * bs)
|
|||
bs->inventory[INVENTORY_HEALTH] = bs->cur_ps.stats[STAT_HEALTH];
|
||||
//bs->inventory[INVENTORY_TELEPORTER] = bs->cur_ps.stats[STAT_HOLDABLE_ITEM] == MODELINDEX_TELEPORTER;
|
||||
//bs->inventory[INVENTORY_MEDKIT] = bs->cur_ps.stats[STAT_HOLDABLE_ITEM] == MODELINDEX_MEDKIT;
|
||||
bs->inventory[INVENTORY_QUAD] = bs->cur_ps.powerups[PW_QUAD] != 0;
|
||||
bs->inventory[INVENTORY_ENVIRONMENTSUIT] = bs->cur_ps.powerups[PW_BATTLESUIT] != 0;
|
||||
bs->inventory[INVENTORY_HASTE] = bs->cur_ps.powerups[PW_HASTE] != 0;
|
||||
bs->inventory[INVENTORY_INVISIBILITY] = bs->cur_ps.powerups[PW_INVIS] != 0;
|
||||
bs->inventory[INVENTORY_REGEN] = bs->cur_ps.powerups[PW_REGEN] != 0;
|
||||
bs->inventory[INVENTORY_FLIGHT] = bs->cur_ps.powerups[PW_FLIGHT] != 0;
|
||||
bs->inventory[INVENTORY_REDFLAG] = bs->cur_ps.powerups[PW_REDFLAG] != 0;
|
||||
bs->inventory[INVENTORY_BLUEFLAG] = bs->cur_ps.powerups[PW_BLUEFLAG] != 0;
|
||||
|
||||
|
@ -2143,14 +2135,6 @@ BotAggression
|
|||
*/
|
||||
float BotAggression(bot_state_t * bs)
|
||||
{
|
||||
//if the bot has quad
|
||||
if (bs->inventory[INVENTORY_QUAD]) {
|
||||
//if the bot is not holding the gauntlet or the enemy is really nearby
|
||||
//Blaze: Check for knife probably same logic as slashing as gauntlet???
|
||||
if (bs->weaponnum != WP_KNIFE || bs->inventory[ENEMY_HORIZONTAL_DIST] < 80) {
|
||||
return 70;
|
||||
}
|
||||
}
|
||||
//if the enemy is located way higher than the bot
|
||||
if (bs->inventory[ENEMY_HEIGHT] > 200)
|
||||
return 0;
|
||||
|
@ -5173,11 +5157,6 @@ BotCheckAir
|
|||
*/
|
||||
void BotCheckAir(bot_state_t * bs)
|
||||
{
|
||||
if (bs->inventory[INVENTORY_ENVIRONMENTSUIT] <= 0) {
|
||||
if (trap_AAS_PointContents(bs->eye) & (CONTENTS_WATER | CONTENTS_SLIME | CONTENTS_LAVA)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
bs->lastair_time = FloatTime();
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.44 2002/07/22 06:34:13 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.43 2002/07/01 02:18:42 jbravo
|
||||
// Small fixes to CTB and possible fix for subs and limchasecam
|
||||
//
|
||||
|
@ -1158,10 +1161,6 @@ char *eventnames[] = {
|
|||
"EV_OBITUARY_STOMACH",
|
||||
"EV_OBITUARY_LEGS",
|
||||
|
||||
"EV_POWERUP_QUAD",
|
||||
"EV_POWERUP_BATTLESUIT",
|
||||
"EV_POWERUP_REGEN",
|
||||
|
||||
"EV_GIB_PLAYER", // gib a previously living player
|
||||
"EV_BREAK_GLASS1", // Blaze: Breakable glass
|
||||
"EV_BREAK_GLASS2",
|
||||
|
@ -1230,10 +1229,7 @@ void BG_TouchJumpPad(playerState_t * ps, entityState_t * jumppad)
|
|||
if (ps->pm_type != PM_NORMAL) {
|
||||
return;
|
||||
}
|
||||
// flying characters don't hit bounce pads
|
||||
if (ps->powerups[PW_FLIGHT]) {
|
||||
return;
|
||||
}
|
||||
|
||||
//Makro - disable all this for bot only triggers
|
||||
if (!jumppad->powerups) {
|
||||
// if we didn't hit this same jumppad the previous frame
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.87 2002/07/22 06:33:58 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.86 2002/07/21 18:52:39 niceass
|
||||
// weapon prediction stuff
|
||||
//
|
||||
|
@ -361,10 +364,6 @@ static void PM_Friction(void)
|
|||
if (pm->waterlevel) {
|
||||
drop += speed * pm_waterfriction * pm->waterlevel * pml.frametime;
|
||||
}
|
||||
// apply flying friction
|
||||
if (pm->ps->powerups[PW_FLIGHT]) {
|
||||
drop += speed * pm_flightfriction * pml.frametime;
|
||||
}
|
||||
|
||||
if (pml.ladder) // If they're on a ladder...
|
||||
{
|
||||
|
@ -1399,21 +1398,6 @@ static void PM_CheckDuck(void)
|
|||
trace_t trace;
|
||||
vec3_t point; // NiceAss: Added for FUNKY CODE ALERT section
|
||||
|
||||
if (pm->ps->powerups[PW_INVULNERABILITY]) {
|
||||
if (pm->ps->pm_flags & PMF_INVULEXPAND) {
|
||||
// invulnerability sphere has a 42 units radius
|
||||
VectorSet(pm->mins, -42, -42, -42);
|
||||
VectorSet(pm->maxs, 42, 42, 42);
|
||||
} else {
|
||||
VectorSet(pm->mins, -15, -15, MINS_Z);
|
||||
VectorSet(pm->maxs, 15, 15, 16);
|
||||
}
|
||||
pm->ps->pm_flags |= PMF_DUCKED;
|
||||
pm->ps->viewheight = CROUCH_VIEWHEIGHT;
|
||||
return;
|
||||
}
|
||||
pm->ps->pm_flags &= ~PMF_INVULEXPAND;
|
||||
|
||||
pm->mins[0] = -15;
|
||||
pm->mins[1] = -15;
|
||||
|
||||
|
@ -1486,10 +1470,6 @@ static void PM_Footsteps(void)
|
|||
+ pm->ps->velocity[1] * pm->ps->velocity[1]);
|
||||
|
||||
if (pm->ps->groundEntityNum == ENTITYNUM_NONE) {
|
||||
|
||||
if (pm->ps->powerups[PW_INVULNERABILITY]) {
|
||||
PM_ContinueLegsAnim(LEGS_IDLECR);
|
||||
}
|
||||
// airborne leaves position in cycle intact, but doesn't advance
|
||||
if (pm->waterlevel > 1) {
|
||||
PM_ContinueLegsAnim(LEGS_SWIM);
|
||||
|
@ -2539,10 +2519,6 @@ static void PM_Weapon(void)
|
|||
break;
|
||||
}
|
||||
|
||||
if (pm->ps->powerups[PW_HASTE]) {
|
||||
addTime /= 1.3;
|
||||
}
|
||||
|
||||
pm->ps->weaponTime += addTime;
|
||||
|
||||
//Auto-switch when out of ammo with grenade or knife
|
||||
|
@ -2938,10 +2914,7 @@ void PmoveSingle(pmove_t * pmove)
|
|||
PM_DropTimers();
|
||||
CheckLadder(); // ARTHUR TOMLIN check and see if they're on a ladder
|
||||
|
||||
if (pm->ps->powerups[PW_FLIGHT]) {
|
||||
// flight powerup doesn't allow jump and has different friction
|
||||
PM_FlyMove();
|
||||
} else if (pm->ps->pm_flags & PMF_GRAPPLE_PULL) {
|
||||
if (pm->ps->pm_flags & PMF_GRAPPLE_PULL) {
|
||||
PM_GrappleMove();
|
||||
// We can wiggle a bit
|
||||
PM_AirMove();
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.89 2002/07/22 06:33:34 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.88 2002/07/21 18:48:24 niceass
|
||||
// weapon prediction stuff
|
||||
//
|
||||
|
@ -629,7 +632,7 @@ typedef enum {
|
|||
#define PMF_GRAPPLE_PULL 2048 // pull towards grapple location
|
||||
#define PMF_FOLLOW 4096 // spectate following another player
|
||||
#define PMF_SCOREBOARD 8192 // spectate as a scoreboard
|
||||
#define PMF_INVULEXPAND 16384 // invulnerability sphere set to full size
|
||||
// NiceAss: Room for something right here, value 16384
|
||||
#define PMF_RELOAD_HELD 32768 // Elder: new reload code
|
||||
|
||||
#define PMF_ALL_TIMES (PMF_TIME_WATERJUMP|PMF_TIME_LAND|PMF_TIME_KNOCKBACK)
|
||||
|
@ -783,23 +786,10 @@ typedef enum {
|
|||
typedef enum {
|
||||
PW_NONE,
|
||||
|
||||
PW_QUAD,
|
||||
PW_BATTLESUIT,
|
||||
PW_HASTE,
|
||||
PW_INVIS,
|
||||
PW_REGEN,
|
||||
PW_FLIGHT,
|
||||
|
||||
PW_REDFLAG,
|
||||
PW_BLUEFLAG,
|
||||
PW_NEUTRALFLAG,
|
||||
|
||||
PW_SCOUT,
|
||||
PW_GUARD,
|
||||
PW_DOUBLER,
|
||||
PW_AMMOREGEN,
|
||||
PW_INVULNERABILITY,
|
||||
|
||||
PW_NUM_POWERUPS
|
||||
} powerup_t;
|
||||
|
||||
|
@ -1088,10 +1078,6 @@ typedef enum {
|
|||
EV_OBITUARY_STOMACH,
|
||||
EV_OBITUARY_LEGS,
|
||||
|
||||
EV_POWERUP_QUAD,
|
||||
EV_POWERUP_BATTLESUIT,
|
||||
EV_POWERUP_REGEN,
|
||||
|
||||
EV_GIB_PLAYER, // gib a previously living player
|
||||
EV_GIB_PLAYER_HEADSHOT, // JBravo: for sniper head shots
|
||||
EV_GIB_PLAYER_STOMACH, // JBravo: for sniper stomach shots
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.85 2002/07/22 06:33:04 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.84 2002/07/21 18:48:06 niceass
|
||||
// weapon prediction stuff
|
||||
//
|
||||
|
@ -264,7 +267,6 @@ Check for lava / slime contents and drowning
|
|||
*/
|
||||
void P_WorldEffects(gentity_t * ent)
|
||||
{
|
||||
qboolean envirosuit;
|
||||
int waterlevel;
|
||||
|
||||
if (ent->client->noclip) {
|
||||
|
@ -274,16 +276,11 @@ void P_WorldEffects(gentity_t * ent)
|
|||
|
||||
waterlevel = ent->waterlevel;
|
||||
|
||||
envirosuit = ent->client->ps.powerups[PW_BATTLESUIT] > level.time;
|
||||
|
||||
//
|
||||
// check for drowning
|
||||
//
|
||||
if (waterlevel == 3) {
|
||||
// envirosuit give air
|
||||
if (envirosuit) {
|
||||
ent->client->airOutTime = level.time + 10000;
|
||||
}
|
||||
|
||||
// if out of air, start drowning
|
||||
if (ent->client->airOutTime < level.time) {
|
||||
// drown!
|
||||
|
@ -320,19 +317,15 @@ void P_WorldEffects(gentity_t * ent)
|
|||
if (waterlevel && (ent->watertype & (CONTENTS_LAVA | CONTENTS_SLIME))) {
|
||||
// Elder: changed around a bit -- using timestamp variable
|
||||
if (ent->health > 0 && level.time > ent->timestamp) {
|
||||
if (envirosuit) {
|
||||
G_AddEvent(ent, EV_POWERUP_BATTLESUIT, 0);
|
||||
} else {
|
||||
if (ent->watertype & CONTENTS_LAVA) {
|
||||
G_Damage(ent, NULL, NULL, NULL, NULL, 3 * waterlevel, 0, MOD_LAVA);
|
||||
}
|
||||
|
||||
if (ent->watertype & CONTENTS_SLIME) {
|
||||
G_Damage(ent, NULL, NULL, NULL, NULL, waterlevel, 0, MOD_SLIME);
|
||||
}
|
||||
// Elder: added
|
||||
ent->timestamp = level.time + FRAMETIME;
|
||||
if (ent->watertype & CONTENTS_LAVA) {
|
||||
G_Damage(ent, NULL, NULL, NULL, NULL, 3 * waterlevel, 0, MOD_LAVA);
|
||||
}
|
||||
|
||||
if (ent->watertype & CONTENTS_SLIME) {
|
||||
G_Damage(ent, NULL, NULL, NULL, NULL, waterlevel, 0, MOD_SLIME);
|
||||
}
|
||||
// Elder: added
|
||||
ent->timestamp = level.time + FRAMETIME;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -636,26 +629,9 @@ void ClientTimerActions(gentity_t * ent, int msec)
|
|||
while (client->timeResidual >= 1000) {
|
||||
client->timeResidual -= 1000;
|
||||
|
||||
// regenerate
|
||||
if (client->ps.powerups[PW_REGEN]) {
|
||||
if (ent->health < 100) { //max health 100 client->ps.stats[STAT_MAX_HEALTH]) {
|
||||
ent->health += 15;
|
||||
if (ent->health > 110) { //max health is 100x1.1 client->ps.stats[STAT_MAX_HEALTH] * 1.1 ) {
|
||||
ent->health = 110; //max health is 100x1.1 client->ps.stats[STAT_MAX_HEALTH] * 1.1;
|
||||
}
|
||||
G_AddEvent(ent, EV_POWERUP_REGEN, 0);
|
||||
} else if (ent->health < 200) { //max health is 200 in this case client->ps.stats[STAT_MAX_HEALTH] * 2) {
|
||||
ent->health += 5;
|
||||
if (ent->health > 200) { // max health is 200 client->ps.stats[STAT_MAX_HEALTH] * 2 ) {
|
||||
ent->health = 200; //max health is 200 client->ps.stats[STAT_MAX_HEALTH] * 2;
|
||||
}
|
||||
G_AddEvent(ent, EV_POWERUP_REGEN, 0);
|
||||
}
|
||||
} else {
|
||||
// count down health when over max
|
||||
if (ent->health > 100) { //max is 100 client->ps.stats[STAT_MAX_HEALTH] ) {
|
||||
ent->health--;
|
||||
}
|
||||
// count down health when over max
|
||||
if (ent->health > 100) { //max is 100 client->ps.stats[STAT_MAX_HEALTH] ) {
|
||||
ent->health--;
|
||||
}
|
||||
|
||||
// count down armor when over max
|
||||
|
@ -1086,9 +1062,6 @@ void ClientThink_real(gentity_t * ent)
|
|||
// set speed
|
||||
client->ps.speed = g_speed.value;
|
||||
|
||||
if (client->ps.powerups[PW_HASTE]) {
|
||||
client->ps.speed *= 1.3;
|
||||
}
|
||||
// set up for pmove
|
||||
oldEventSequence = client->ps.eventSequence;
|
||||
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.6 2002/07/22 06:32:43 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.5 2002/06/16 20:06:14 jbravo
|
||||
// Reindented all the source files with "indent -kr -ut -i8 -l120 -lc120 -sob -bad -bap"
|
||||
//
|
||||
|
@ -813,29 +816,6 @@ void G_RankPickupPowerup(int self, int powerup)
|
|||
}
|
||||
|
||||
trap_RankReportInt(self, -1, QGR_KEY_POWERUP, 1, 1);
|
||||
|
||||
switch (powerup) {
|
||||
case PW_QUAD:
|
||||
trap_RankReportInt(self, -1, QGR_KEY_QUAD, 1, 1);
|
||||
break;
|
||||
case PW_BATTLESUIT:
|
||||
trap_RankReportInt(self, -1, QGR_KEY_SUIT, 1, 1);
|
||||
break;
|
||||
case PW_HASTE:
|
||||
trap_RankReportInt(self, -1, QGR_KEY_HASTE, 1, 1);
|
||||
break;
|
||||
case PW_INVIS:
|
||||
trap_RankReportInt(self, -1, QGR_KEY_INVIS, 1, 1);
|
||||
break;
|
||||
case PW_REGEN:
|
||||
trap_RankReportInt(self, -1, QGR_KEY_REGEN, 1, 1);
|
||||
break;
|
||||
case PW_FLIGHT:
|
||||
trap_RankReportInt(self, -1, QGR_KEY_FLIGHT, 1, 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.24 2002/07/22 06:32:27 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.23 2002/06/16 20:06:14 jbravo
|
||||
// Reindented all the source files with "indent -kr -ut -i8 -l120 -lc120 -sob -bad -bap"
|
||||
//
|
||||
|
@ -308,9 +311,6 @@ void Use_target_push(gentity_t * self, gentity_t * other, gentity_t * activator)
|
|||
if (activator->client->ps.pm_type != PM_NORMAL) {
|
||||
return;
|
||||
}
|
||||
if (activator->client->ps.powerups[PW_FLIGHT]) {
|
||||
return;
|
||||
}
|
||||
|
||||
VectorCopy(self->s.origin2, activator->client->ps.velocity);
|
||||
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.76 2002/07/22 06:32:15 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.75 2002/07/09 05:41:23 niceass
|
||||
// fix to kicking in CTB
|
||||
//
|
||||
|
@ -156,7 +159,6 @@ int GetMaterialFromFlag(int flag);
|
|||
qboolean IsMetalMat(int Material);
|
||||
qboolean IsMetalFlag(int flag);
|
||||
|
||||
static float s_quadFactor;
|
||||
static vec3_t forward, right, up;
|
||||
static vec3_t muzzle;
|
||||
|
||||
|
@ -272,17 +274,7 @@ qboolean JumpKick(gentity_t * ent)
|
|||
}
|
||||
//end Makro
|
||||
|
||||
//Makro - client check
|
||||
if (ent->client) {
|
||||
if (ent->client->ps.powerups[PW_QUAD]) {
|
||||
G_AddEvent(ent, EV_POWERUP_QUAD, 0);
|
||||
s_quadFactor = g_quadfactor.value;
|
||||
} else {
|
||||
s_quadFactor = 1;
|
||||
}
|
||||
}
|
||||
//Makro - moved some code up by a few lines to allow breakables to be kicked
|
||||
|
||||
if (traceEnt->client != NULL && traceEnt->takedamage) {
|
||||
tent = G_TempEntity(tr.endpos, EV_JUMPKICK);
|
||||
tent->s.otherEntityNum = traceEnt->s.number;
|
||||
|
@ -412,14 +404,7 @@ qboolean CheckGauntletAttack(gentity_t * ent)
|
|||
return qfalse;
|
||||
}
|
||||
|
||||
if (ent->client->ps.powerups[PW_QUAD]) {
|
||||
G_AddEvent(ent, EV_POWERUP_QUAD, 0);
|
||||
s_quadFactor = g_quadfactor.value;
|
||||
} else {
|
||||
s_quadFactor = 1;
|
||||
}
|
||||
|
||||
damage = 50 * s_quadFactor;
|
||||
damage = 50;
|
||||
G_Damage(traceEnt, ent, ent, forward, tr.endpos, damage, 0, MOD_GAUNTLET);
|
||||
|
||||
return qtrue;
|
||||
|
@ -493,9 +478,6 @@ void Bullet_Fire(gentity_t * ent, float spread, int damage, int MOD)
|
|||
break;
|
||||
}
|
||||
}
|
||||
//Elder: removed - for some reason it's set to 0
|
||||
//damage *= s_quadFactor;
|
||||
|
||||
/* Original AQ2 code
|
||||
vectoangles (aimdir, dir);
|
||||
AngleVectors (dir, forward, right, up);
|
||||
|
@ -675,26 +657,6 @@ void Bullet_Fire(gentity_t * ent, float spread, int damage, int MOD)
|
|||
/*
|
||||
======================================================================
|
||||
|
||||
BFG
|
||||
|
||||
======================================================================
|
||||
*/
|
||||
//Blaze: No more BFG
|
||||
/*
|
||||
void BFG_Fire ( gentity_t *ent ) {
|
||||
gentity_t *m;
|
||||
|
||||
m = fire_bfg (ent, muzzle, forward);
|
||||
m->damage *= s_quadFactor;
|
||||
m->splashDamage *= s_quadFactor;
|
||||
|
||||
// VectorAdd( m->s.pos.trDelta, ent->client->ps.velocity, m->s.pos.trDelta ); // "real" physics
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
======================================================================
|
||||
|
||||
SHOTGUN
|
||||
|
||||
======================================================================
|
||||
|
@ -850,68 +812,6 @@ void weapon_supershotgun_fire(gentity_t * ent)
|
|||
/*
|
||||
======================================================================
|
||||
|
||||
GRENADE LAUNCHER
|
||||
|
||||
======================================================================
|
||||
*/
|
||||
//Blaze: No more grenade launcher, no need for fire function
|
||||
/*
|
||||
void weapon_grenadelauncher_fire (gentity_t *ent) {
|
||||
gentity_t *m;
|
||||
|
||||
// extra vertical velocity
|
||||
forward[2] += 0.2f;
|
||||
VectorNormalize( forward );
|
||||
|
||||
m = fire_grenade (ent, muzzle, forward);
|
||||
m->damage *= s_quadFactor;
|
||||
m->splashDamage *= s_quadFactor;
|
||||
|
||||
// VectorAdd( m->s.pos.trDelta, ent->client->ps.velocity, m->s.pos.trDelta ); // "real" physics
|
||||
}
|
||||
*/
|
||||
/*
|
||||
======================================================================
|
||||
|
||||
ROCKET
|
||||
|
||||
======================================================================
|
||||
*/
|
||||
//Blaze: No more rocket launcher, no need for this function
|
||||
/*
|
||||
void Weapon_RocketLauncher_Fire (gentity_t *ent) {
|
||||
gentity_t *m;
|
||||
|
||||
m = fire_rocket (ent, muzzle, forward);
|
||||
m->damage *= s_quadFactor;
|
||||
m->splashDamage *= s_quadFactor;
|
||||
|
||||
// VectorAdd( m->s.pos.trDelta, ent->client->ps.velocity, m->s.pos.trDelta ); // "real" physics
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
======================================================================
|
||||
|
||||
PLASMA GUN
|
||||
|
||||
======================================================================
|
||||
*/
|
||||
//Blaze: No plasma gun, no need for this function
|
||||
/*
|
||||
void Weapon_Plasmagun_Fire (gentity_t *ent) {
|
||||
gentity_t *m;
|
||||
|
||||
m = fire_plasma (ent, muzzle, forward);
|
||||
m->damage *= s_quadFactor;
|
||||
m->splashDamage *= s_quadFactor;
|
||||
|
||||
// VectorAdd( m->s.pos.trDelta, ent->client->ps.velocity, m->s.pos.trDelta ); // "real" physics
|
||||
}
|
||||
*/
|
||||
/*
|
||||
======================================================================
|
||||
|
||||
RAILGUN
|
||||
|
||||
======================================================================
|
||||
|
@ -936,7 +836,7 @@ void weapon_railgun_fire(gentity_t * ent)
|
|||
int passent;
|
||||
gentity_t *unlinkedEntities[MAX_RAIL_HITS];
|
||||
|
||||
damage = 100 * s_quadFactor;
|
||||
damage = 100;
|
||||
|
||||
VectorMA(muzzle, 8192, forward, end);
|
||||
|
||||
|
@ -1075,7 +975,7 @@ void Weapon_LightningFire(gentity_t * ent)
|
|||
gentity_t *traceEnt, *tent;
|
||||
int damage, i, passent;
|
||||
|
||||
damage = 8 * s_quadFactor;
|
||||
damage = 8;
|
||||
|
||||
passent = ent->s.number;
|
||||
for (i = 0; i < 10; i++) {
|
||||
|
@ -1360,11 +1260,8 @@ void Weapon_Knife_Fire(gentity_t * ent)
|
|||
// JBravo: ff
|
||||
if (g_gametype.integer == GT_TEAMPLAY || g_gametype.integer == GT_CTF)
|
||||
setFFState(ent);
|
||||
m = fire_knife(ent, muzzle, forward);
|
||||
// m->damage *= s_quadFactor;
|
||||
// m->splashDamage *= s_quadFactor;
|
||||
// ^^^^ Homer: got quad?
|
||||
|
||||
m = fire_knife(ent, muzzle, forward);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1517,7 +1414,6 @@ void Weapon_SSG3000_Fire(gentity_t * ent)
|
|||
VectorMA(end, u, up, end);
|
||||
}
|
||||
|
||||
//damage = 100 * s_quadFactor;
|
||||
damage = SNIPER_DAMAGE;
|
||||
|
||||
//VectorMA (muzzle, 8192*16, forward, end);
|
||||
|
@ -1942,12 +1838,10 @@ void Weapon_Grenade_Fire(gentity_t * ent)
|
|||
// JBravo: ff
|
||||
if (g_gametype.integer == GT_TEAMPLAY || g_gametype.integer == GT_CTF)
|
||||
setFFState(ent);
|
||||
|
||||
m = fire_grenade(ent, muzzle, forward);
|
||||
//Elder: removed
|
||||
//m->damage *= s_quadFactor;
|
||||
//m->splashDamage *= s_quadFactor;
|
||||
|
||||
// VectorAdd( m->s.pos.trDelta, ent->client->ps.velocity, m->s.pos.trDelta ); // "real" physics
|
||||
// VectorAdd( m->s.pos.trDelta, ent->client->ps.velocity, m->s.pos.trDelta ); // "real" physics
|
||||
|
||||
}
|
||||
|
||||
|
@ -2033,14 +1927,6 @@ FireWeapon
|
|||
*/
|
||||
void FireWeapon(gentity_t * ent)
|
||||
{
|
||||
/* Homer: got quad?
|
||||
if (ent->client->ps.powerups[PW_QUAD] ) {
|
||||
s_quadFactor = g_quadfactor.value;
|
||||
} else { */
|
||||
//Elder: uncommented so it won't be zero!
|
||||
s_quadFactor = 1;
|
||||
//}
|
||||
|
||||
// track shots taken for accuracy tracking. Grapple is not a weapon and gauntet is just not tracked
|
||||
//Blaze: dont record accuracy for knife
|
||||
// if( ent->s.weapon != WP_KNIFE) {
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.13 2002/07/22 06:31:47 niceass
|
||||
// cleaned up the powerup code
|
||||
//
|
||||
// Revision 1.12 2002/06/16 20:06:14 jbravo
|
||||
// Reindented all the source files with "indent -kr -ut -i8 -l120 -lc120 -sob -bad -bap"
|
||||
//
|
||||
|
@ -90,17 +93,7 @@
|
|||
#define INVENTORY_KAMIKAZE 32
|
||||
#define INVENTORY_PORTAL 33
|
||||
#define INVENTORY_INVULNERABILITY 34
|
||||
#define INVENTORY_QUAD 35
|
||||
#define INVENTORY_ENVIRONMENTSUIT 36
|
||||
#define INVENTORY_HASTE 37
|
||||
#define INVENTORY_INVISIBILITY 38
|
||||
#define INVENTORY_REGEN 39
|
||||
#define INVENTORY_FLIGHT 40
|
||||
#define INVENTORY_SCOUT 41
|
||||
#define INVENTORY_GUARD 42
|
||||
#define INVENTORY_DOUBLER 43
|
||||
#define INVENTORY_AMMOREGEN 44
|
||||
|
||||
//
|
||||
#define INVENTORY_REDFLAG 45
|
||||
#define INVENTORY_BLUEFLAG 46
|
||||
#define INVENTORY_NEUTRALFLAG 47
|
||||
|
|
Loading…
Reference in a new issue