summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authorPaweł Redman <pawel.redman@gmail.com>2015-06-22 01:02:01 +0200
committerPaweł Redman <pawel.redman@gmail.com>2015-06-22 01:02:01 +0200
commitdc87cba52101aa4c6ad94c652460bff8520231bd (patch)
tree0add2e6edf633a2f7c7a137f0c5238466e1f323f /src/game
parent88e570be6c8b732d81cdb69ce0235ef9e8ef5885 (diff)
Remove Advanced Dretch.
Diffstat (limited to 'src/game')
-rw-r--r--src/game/bg_misc.c55
-rw-r--r--src/game/bg_mod.h1
-rw-r--r--src/game/bg_pmove.c34
-rw-r--r--src/game/bg_public.h3
-rw-r--r--src/game/g_active.c68
-rw-r--r--src/game/g_buildable.c3
-rw-r--r--src/game/g_combat.c4
-rw-r--r--src/game/g_team.c5
-rw-r--r--src/game/g_weapon.c70
-rw-r--r--src/game/tremulous.h15
10 files changed, 6 insertions, 252 deletions
diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c
index 7971aa8..7f6a8a6 100644
--- a/src/game/bg_misc.c
+++ b/src/game/bg_misc.c
@@ -2288,39 +2288,11 @@ static const classAttributes_t bg_classList[ ] =
400.0f, //float stopSpeed;
250.0f, //float jumpMagnitude;
2.0f, //float knockbackScale;
- { PCL_ALIEN_LEVEL1, PCL_ALIEN_LEVEL0_UPG, PCL_NONE }, //int children[ 3 ];
+ { PCL_ALIEN_LEVEL1, PCL_NONE }, //int children[ 3 ];
LEVEL0_COST, //int cost;
LEVEL0_VALUE, //int value;
},
{
- PCL_ALIEN_LEVEL0_UPG, //int classnum;
- "level0upg", //char *classname;
- "In addition to the basic Dretch abilities, the Advanced "
- "Dretch has the ability to pounce and spread infections. "
- "Advanced Dretch can also damage defensive structures.",
- STAGE_GE_2, //int stages
- LEVEL0_UPG_HEALTH, //int health;
- 0.0f, //float fallDamage;
- LEVEL0_UPG_REGEN, //float regenRate;
- SCA_WALLCLIMBER|SCA_FOVWARPS|SCA_ALIENSENSE, //int abilities;
- WP_ALEVEL0_UPG, //weapon_t startWeapon
- 0.0f, //float buildDist;
- 140, //int fov;
- 0.0f, //float bob;
- 2.5f, //float bobCycle;
- 25, //int steptime;
- LEVEL0_UPG_SPEED, //float speed;
- 10.0f, //float acceleration;
- 1.0f, //float airAcceleration;
- 6.0f, //float friction;
- 400.0f, //float stopSpeed;
- 250.0f, //float jumpMagnitude;
- 2.0f, //float knockbackScale;
- { PCL_ALIEN_LEVEL1, PCL_NONE, PCL_NONE }, //int children[ 3 ];
- LEVEL0_UPG_COST, //int cost;
- LEVEL0_UPG_VALUE //int value;
- },
- {
PCL_ALIEN_LEVEL1, //int classnum;
"level1", //char *classname;
"A support class able to crawl on walls and ceilings. Its melee "
@@ -3112,31 +3084,6 @@ static const weaponAttributes_t bg_weapons[ ] =
TEAM_ALIENS //team_t team;
},
{
- WP_ALEVEL0_UPG, //int weaponNum;
- 0, //int price;
- STAGE_GE_2, //int stages
- SLOT_WEAPON, //int slots;
- "level0upg", //char *weaponName;
- "Bite Upgrade", //char *humanName;
- "",
- 0, //int maxAmmo;
- 0, //int maxClips;
- qtrue, //int infiniteAmmo;
- qfalse, //int usesEnergy;
- LEVEL0_BITE_REPEAT, //int repeatRate1;
- 0, //int repeatRate2;
- 0, //int repeatRate3;
- 0, //int reloadTime;
- LEVEL0_BITE_K_SCALE, //float knockbackScale;
- qfalse, //qboolean hasAltMode;
- qfalse, //qboolean hasThirdMode;
- qfalse, //qboolean canZoom;
- 90.0f, //float zoomFov;
- qfalse, //qboolean purchasable;
- qfalse, //qboolean longRanged;
- TEAM_ALIENS //team_t team;
- },
- {
WP_ALEVEL1, //int weaponNum;
0, //int price;
STAGE_GE_1, //int stages
diff --git a/src/game/bg_mod.h b/src/game/bg_mod.h
index 5ab9fb2..9fa3908 100644
--- a/src/game/bg_mod.h
+++ b/src/game/bg_mod.h
@@ -51,7 +51,6 @@ MOD( MOD_LEVEL4_CRUSH, CSW_UNKNOWN ),
MOD( MOD_LEVEL4_FLAMES, CSW_LEVEL4_ALT ),
MOD( MOD_SLOWBLOB, CSW_UNKNOWN ),
MOD( MOD_POISON, CSW_UNKNOWN ),
-MOD( MOD_INFECTION, CSW_UNKNOWN ),
MOD( MOD_SWARM, CSW_UNKNOWN ),
MOD( MOD_MD2, CSW_UNKNOWN ),
MOD( MOD_HSPAWN, CSW_UNKNOWN ),
diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c
index 49eb793..0991bf6 100644
--- a/src/game/bg_pmove.c
+++ b/src/game/bg_pmove.c
@@ -495,10 +495,6 @@ static float PM_CmdScale( usercmd_t *cmd )
//slow player if using 2nd rifle mode
else if( pm->ps->weapon == WP_MACHINEGUN && pm->ps->weaponstate != WEAPON_RELOADING )
modifier *= RIFLE_2NDMOD;
-
- //slow player if charging up for a drill
- else if( pm->ps->weapon == WP_ALEVEL0_UPG )
- modifier *= LEVEL0_DRILL_SPEED_MOD;
}
//slow the player if slow locked
if( pm->ps->stats[ STAT_STATE ] & SS_SLOWLOCKED )
@@ -638,8 +634,7 @@ static qboolean PM_CheckPounce( void )
{
int jumpMagnitude;
- if( pm->ps->weapon != WP_ALEVEL0_UPG &&
- pm->ps->weapon != WP_ALEVEL3 &&
+ if( pm->ps->weapon != WP_ALEVEL3 &&
pm->ps->weapon != WP_ALEVEL3_UPG)
return qfalse;
@@ -648,10 +643,7 @@ static qboolean PM_CheckPounce( void )
( pm->ps->pm_flags & PMF_CHARGE ) )
{
pm->ps->pm_flags &= ~PMF_CHARGE;
- if( pm->ps->weapon != WP_ALEVEL0_UPG )
pm->ps->weaponTime += LEVEL3_POUNCE_REPEAT;
- else
- pm->ps->weaponTime += LEVEL0_DRILL_REPEAT;
return qfalse;
}
@@ -663,28 +655,17 @@ static qboolean PM_CheckPounce( void )
}
// Can't start a pounce
- if( pm->ps->weapon != WP_ALEVEL0_UPG )
- {
if( ( pm->ps->pm_flags & PMF_CHARGE ) ||
pm->ps->stats[ STAT_MISC ] < LEVEL3_POUNCE_TIME_MIN ||
pm->ps->groundEntityNum == ENTITYNUM_NONE )
return qfalse;
- }
- else
- {
- if( ( pm->ps->pm_flags & PMF_CHARGE ) || pm->ps->stats[ STAT_MISC ] < LEVEL0_DRILL_TIME_MIN || pm->ps->groundEntityNum == ENTITYNUM_NONE )
- return qfalse;
- }
// Give the player forward velocity and simulate a jump
pml.groundPlane = qfalse;
pml.walking = qfalse;
pm->ps->pm_flags |= PMF_CHARGE;
pm->ps->groundEntityNum = ENTITYNUM_NONE;
- if( pm->ps->weapon == WP_ALEVEL0_UPG )
- jumpMagnitude = pm->ps->stats[ STAT_MISC ] *
- LEVEL0_DRILL_JUMP_MAG / LEVEL0_DRILL_TIME;
- else if( pm->ps->weapon == WP_ALEVEL3 )
+ if( pm->ps->weapon == WP_ALEVEL3 )
jumpMagnitude = pm->ps->stats[ STAT_MISC ] *
LEVEL3_POUNCE_JUMP_MAG / LEVEL3_POUNCE_TIME;
else
@@ -943,10 +924,6 @@ static qboolean PM_CheckJump( void )
return qfalse;
//can't jump and pounce at the same time
- if( pm->ps->weapon == WP_ALEVEL0_UPG &&
- pm->ps->stats[ STAT_MISC ] > 0 )
- return qfalse;
-
if( ( pm->ps->weapon == WP_ALEVEL3 ||
pm->ps->weapon == WP_ALEVEL3_UPG ) &&
pm->ps->stats[ STAT_MISC ] > 0 )
@@ -3001,7 +2978,7 @@ static void PM_Weapon( void )
// Charging for or canceling a pounce/drill attack
if( pm->ps->weapon == WP_ALEVEL3 || pm->ps->weapon == WP_ALEVEL3_UPG ||
- pm->ps->weapon == WP_ALEVEL5 || pm->ps->weapon == WP_ALEVEL0_UPG )
+ pm->ps->weapon == WP_ALEVEL5 )
{
int max;
@@ -3015,9 +2992,6 @@ static void PM_Weapon( void )
case WP_ALEVEL5:
max = LEVEL5_POUNCE_TIME;
break;
- default:
- max = LEVEL0_DRILL_TIME;
- break;
}
if( attack2 )
@@ -3309,7 +3283,6 @@ static void PM_Weapon( void )
switch( pm->ps->weapon )
{
case WP_ALEVEL0:
- case WP_ALEVEL0_UPG:
//venom is only autohit
return;
@@ -3554,7 +3527,6 @@ static void PM_Weapon( void )
switch( pm->ps->weapon )
{
case WP_ALEVEL0:
- case WP_ALEVEL0_UPG:
pm->ps->generic1 = WPM_PRIMARY;
PM_AddEvent( EV_FIRE_WEAPON );
addTime = BG_Weapon( pm->ps->weapon )->repeatRate1;
diff --git a/src/game/bg_public.h b/src/game/bg_public.h
index d839cec..602ec94 100644
--- a/src/game/bg_public.h
+++ b/src/game/bg_public.h
@@ -260,7 +260,6 @@ typedef enum
#define SS_GRABBED 0x00000008
#define SS_BLOBLOCKED 0x00000010
#define SS_POISONED 0x00000020
-#define SS_INFECTED 0x00000040
#define SS_BOOSTED 0x00000080
#define SS_INVI 0x00008000
@@ -351,7 +350,6 @@ typedef enum
{
WP_NONE,
WP_ALEVEL0,
- WP_ALEVEL0_UPG,
WP_ALEVEL1,
WP_ALEVEL1_UPG,
WP_ALEVEL2,
@@ -805,7 +803,6 @@ typedef enum
PCL_ALIEN_BUILDER0_UPG,
//offensive classes
PCL_ALIEN_LEVEL0,
- PCL_ALIEN_LEVEL0_UPG,
PCL_ALIEN_LEVEL1,
PCL_ALIEN_LEVEL1_UPG,
PCL_ALIEN_LEVEL2,
diff --git a/src/game/g_active.c b/src/game/g_active.c
index 42a2773..84cf017 100644
--- a/src/game/g_active.c
+++ b/src/game/g_active.c
@@ -521,7 +521,7 @@ void G_UseMedkit( gentity_t *ent )
BG_RemoveUpgradeFromInventory( UP_MEDKIT, client->ps.stats );
// don't poison and/or infect the client anymore
- tclient->ps.stats[ STAT_STATE ] &= ~( SS_POISONED | SS_INFECTED );
+ tclient->ps.stats[ STAT_STATE ] &= ~SS_POISONED;
tclient->poisonImmunityTime = level.time + MEDKIT_POISON_IMMUNITY_TIME;
tclient->ps.stats[ STAT_STATE ] |= SS_HEALING_2X;
@@ -966,60 +966,6 @@ void ClientTimerActions( gentity_t *ent, int msec )
0, damage, 0, MOD_POISON );
}
- //client is infected
- if( client->ps.stats[ STAT_STATE ] & SS_INFECTED )
- {
- int time = ALIEN_INFECTION_TIME;
- int damage = ALIEN_INFECTION_DMG;
-
- if( BG_InventoryContainsUpgrade( UP_BIOKIT, client->ps.stats ) )
- {
- time = ALIEN_INFECTION_TIME/2;
- damage -= BIOKIT_INFECTION_PROTECTION;
- }
-
- if( BG_InventoryContainsUpgrade( UP_BATTLESUIT, client->ps.stats ) )
- damage -= BSUIT_INFECTION_PROTECTION;
-
- if( BG_InventoryContainsUpgrade( UP_HELMET, client->ps.stats ) )
- damage -= HELMET_INFECTION_PROTECTION;
-
- if( BG_InventoryContainsUpgrade( UP_LIGHTARMOUR, client->ps.stats ) )
- damage -= LIGHTARMOUR_INFECTION_PROTECTION;
-
- //infect others who comes into contact with you
- if( client->lastInfectionTime + time > level.time )
- {
- int i, num, entityList[ MAX_GENTITIES ];
- vec3_t range = { 150, 150, 150 }, mins, maxs;
- gentity_t *target;
-
- VectorAdd( ent->s.origin, range, maxs );
- VectorSubtract( ent->s.origin, range, mins );
- num = trap_EntitiesInBox( mins, maxs, entityList, MAX_GENTITIES );
- for( i = 0; i < num; i++ )
- {
- target = &g_entities[ entityList[ i ] ];
-
- // client + not infected + human + visible + not the same + has health
- if( target->client && !( target->client->ps.stats[ STAT_STATE ] & SS_INFECTED ) &&
- target->client->ps.stats[ STAT_TEAM ] == TEAM_HUMANS &&
- G_Visible( ent, target, CONTENTS_SOLID || CONTENTS_FOG ) &&
- ent != target && target->health > 0 )
- {
- target->client->ps.stats[ STAT_STATE ] |= SS_INFECTED;
- target->client->lastInfectionTime = level.time;
- target->client->lastInfectionClient = client->lastInfectionClient;
- }
- }
- G_Damage( ent, client->lastInfectionClient, client->lastInfectionClient, NULL,
- 0, damage, 0, MOD_INFECTION );
- }
- // it's over until the next one
- else
- client->ps.stats[ STAT_STATE ] &= ~SS_INFECTED;
- }
-
// turn off life support when a team admits defeat
if( client->ps.stats[ STAT_TEAM ] == TEAM_ALIENS &&
level.surrenderTeam == TEAM_ALIENS )
@@ -2042,18 +1988,6 @@ void ClientThink_real( gentity_t *ent )
}
break;
- case WP_ALEVEL0_UPG:
- if( !CheckVenomAttack2( ent ) )
- {
- client->ps.weaponstate = WEAPON_READY;
- }
- else
- {
- client->ps.generic1 = WPM_PRIMARY;
- G_AddEvent( ent, EV_FIRE_WEAPON, 0 );
- }
- break;
-
case WP_ALEVEL1:
case WP_ALEVEL1_UPG:
CheckGrabAttack( ent );
diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c
index e6d4dd5..a6daffa 100644
--- a/src/game/g_buildable.c
+++ b/src/game/g_buildable.c
@@ -2762,9 +2762,6 @@ void HMedistat_Think( gentity_t *self )
if( player->client && player->client->ps.stats[ STAT_STATE ] & SS_POISONED )
player->client->ps.stats[ STAT_STATE ] &= ~SS_POISONED;
- if( player->client && player->client->ps.stats[ STAT_STATE ] & SS_INFECTED )
- player->client->ps.stats[ STAT_STATE ] &= ~SS_INFECTED;
-
if( self->enemy == player && player->client &&
player->client->ps.stats[ STAT_TEAM ] == TEAM_HUMANS &&
player->health < player->client->ps.stats[ STAT_MAX_HEALTH ] &&
diff --git a/src/game/g_combat.c b/src/game/g_combat.c
index d0e381b..a8938f8 100644
--- a/src/game/g_combat.c
+++ b/src/game/g_combat.c
@@ -1159,7 +1159,6 @@ void G_SpawnDamageIndicator( gentity_t *ent, gentity_t *inflictor,
switch( mod )
{
case MOD_POISON:
- case MOD_INFECTION:
di->flags |= DIF_INDIRECT | DIF_PERSISTENT;
break;
@@ -1332,8 +1331,7 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker,
// if dretchpunt is enabled and this is a dretch, do dretchpunt instead of damage
if( g_dretchPunt.integer &&
- ( targ->client->ps.stats[ STAT_CLASS ] == PCL_ALIEN_LEVEL0 ||
- targ->client->ps.stats[ STAT_CLASS ] == PCL_ALIEN_LEVEL0_UPG ) )
+ targ->client->ps.stats[ STAT_CLASS ] == PCL_ALIEN_LEVEL0 )
{
vec3_t dir, push;
diff --git a/src/game/g_team.c b/src/game/g_team.c
index ce83c11..81e2e0e 100644
--- a/src/game/g_team.c
+++ b/src/game/g_team.c
@@ -206,11 +206,6 @@ void G_LeaveTeamReal( gentity_t *self, qboolean reset_score )
if( ent->client->ps.stats[ STAT_STATE ] & SS_POISONED &&
ent->client->lastPoisonClient == self )
ent->client->ps.stats[ STAT_STATE ] &= ~SS_POISONED;
-
- // cure infection
- if( ent->client->ps.stats[ STAT_STATE ] & SS_INFECTED &&
- ent->client->lastInfectionClient == self )
- ent->client->ps.stats[ STAT_STATE ] &= ~SS_INFECTED;
}
else if( ent->s.eType == ET_MISSILE && ent->r.ownerNum == self->s.number )
G_FreeEntity( ent );
diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c
index cbe4fd8..56f931a 100644
--- a/src/game/g_weapon.c
+++ b/src/game/g_weapon.c
@@ -1172,76 +1172,6 @@ qboolean CheckVenomAttack( gentity_t *ent )
/*
======================================================================
-LEVEL0_UPG
-======================================================================
-*/
-/*
-===============
-CheckVenomAttack2
-Adv Dretch
-===============
-*/
-qboolean CheckVenomAttack2( gentity_t *ent )
-{
- trace_t tr;
- gentity_t *traceEnt;
- int damage = LEVEL0_BITE_DMG_UPG;
-
- if( ent->client->ps.weaponTime )
- return qfalse;
-
- // Calculate muzzle point
- AngleVectors( ent->client->ps.viewangles, forward, right, up );
- CalcMuzzlePoint( ent, forward, right, up, muzzle );
-
- G_WideTrace( &tr, ent, LEVEL0_UPG_BITE_RANGE, LEVEL0_UPG_BITE_WIDTH,LEVEL0_UPG_BITE_WIDTH, &traceEnt );
-
- if( traceEnt == NULL )
- return qfalse;
-
- if( !traceEnt->takedamage )
- return qfalse;
-
- if( traceEnt->health <= 0 )
- return qfalse;
-
- // only allow bites to work against buildings as they are constructing
- if( traceEnt->s.eType == ET_BUILDABLE )
- {
- if( traceEnt->buildableTeam == TEAM_ALIENS )
- return qfalse;
-
- if ( !( traceEnt->s.modelindex == BA_H_MGTURRET || traceEnt->s.modelindex == BA_H_MGTURRET2 || traceEnt->s.modelindex == BA_H_TESLAGEN || !traceEnt->spawned ) )
- damage = (int)(damage * g_DretchBuildingDamage.value);
- else
- damage = (int)(damage * g_DretchTurretDamage.value);
-
- if (damage <= 0)
- return qfalse;
- }
-
- if( traceEnt->client )
- {
- if( traceEnt->client->ps.stats[ STAT_TEAM ] == TEAM_ALIENS )
- return qfalse;
- if( traceEnt->client->ps.stats[ STAT_HEALTH ] <= 0 )
- return qfalse;
- if( !( traceEnt->client->ps.stats[ STAT_STATE ] & SS_INFECTED ) )
- {
- traceEnt->client->ps.stats[ STAT_STATE ] |= SS_INFECTED;
- traceEnt->client->lastInfectionTime = level.time;
- traceEnt->client->lastInfectionClient = ent;
- }
- }
- // send blood impact
- WideBloodSpurt( ent, traceEnt, &tr, MOD_LEVEL0_BITE );
- G_Damage( traceEnt, ent, ent, forward, tr.endpos, damage, DAMAGE_NO_KNOCKBACK, MOD_LEVEL0_BITE );
- ent->client->ps.weaponTime += LEVEL0_BITE_REPEAT;
- return qtrue;
-}
-
-/*
-======================================================================
LEVEL1
======================================================================
*/
diff --git a/src/game/tremulous.h b/src/game/tremulous.h
index ce09033..9610077 100644
--- a/src/game/tremulous.h
+++ b/src/game/tremulous.h
@@ -123,27 +123,12 @@ TREMULOUS EDGE MOD SRC FILE
#define LEVEL0_HEALTH AHM(30)
#define LEVEL0_REGEN (0.05f * LEVEL0_HEALTH)
#define LEVEL0_COST 0
-#define LEVEL0_UPG_SPEED 1.5f
-#define LEVEL0_UPG_VALUE AVM(200)
-#define LEVEL0_UPG_HEALTH AHM(40)
-#define LEVEL0_UPG_REGEN (0.06f * LEVEL0_UPG_HEALTH)
-#define LEVEL0_UPG_COST 1
-#define LEVEL0_UPG_BITE_RANGE 70.0f
-#define LEVEL0_UPG_BITE_WIDTH 8.0f
#define LEVEL0_BITE_DMG ADM(40)
-#define LEVEL0_BITE_DMG_UPG ADM(45)
#define LEVEL0_BITE_RANGE 64.0f
#define LEVEL0_BITE_WIDTH 6.0f
#define LEVEL0_BITE_REPEAT 500
#define LEVEL0_BITE_K_SCALE 1.0f
-#define LEVEL0_DRILL_RANGE 48.0f
-#define LEVEL0_DRILL_WIDTH 14.0f
-#define LEVEL0_DRILL_TIME 600 // msec for full Dretch pounce
-#define LEVEL0_DRILL_TIME_MIN 200 // msec before which pounce cancels
-#define LEVEL0_DRILL_REPEAT 320 // msec before a new pounce starts
-#define LEVEL0_DRILL_SPEED_MOD 0.75f // walking speed modifier for pounce charging
-#define LEVEL0_DRILL_JUMP_MAG 500 // Dretch pounce jump power
//Basilik
#define LEVEL1_SPEED 1.25f