From dc87cba52101aa4c6ad94c652460bff8520231bd Mon Sep 17 00:00:00 2001 From: Paweł Redman Date: Mon, 22 Jun 2015 01:02:01 +0200 Subject: Remove Advanced Dretch. --- src/game/bg_misc.c | 55 +-------------------------------------- src/game/bg_mod.h | 1 - src/game/bg_pmove.c | 34 +++--------------------- src/game/bg_public.h | 3 --- src/game/g_active.c | 68 +----------------------------------------------- src/game/g_buildable.c | 3 --- src/game/g_combat.c | 4 +-- src/game/g_team.c | 5 ---- src/game/g_weapon.c | 70 -------------------------------------------------- src/game/tremulous.h | 15 ----------- 10 files changed, 6 insertions(+), 252 deletions(-) (limited to 'src/game') 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,38 +2288,10 @@ 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; @@ -3111,31 +3083,6 @@ static const weaponAttributes_t bg_weapons[ ] = qfalse, //qboolean longRanged; 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; 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 @@ -1170,76 +1170,6 @@ qboolean CheckVenomAttack( gentity_t *ent ) return qtrue; } -/* -====================================================================== -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 -- cgit