summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/game')
-rw-r--r--src/game/bg_misc.c134
-rw-r--r--src/game/bg_mod.h5
-rw-r--r--src/game/bg_pmove.c34
-rw-r--r--src/game/bg_public.h6
-rw-r--r--src/game/g_active.c80
-rw-r--r--src/game/g_buildable.c35
-rw-r--r--src/game/g_cmds.c14
-rw-r--r--src/game/g_combat.c12
-rw-r--r--src/game/g_csw.h1
-rw-r--r--src/game/g_local.h2
-rw-r--r--src/game/g_missile.c80
-rw-r--r--src/game/g_weapon.c158
-rw-r--r--src/game/tremulous.h57
13 files changed, 7 insertions, 611 deletions
diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c
index 7f6a8a6..806f3bd 100644
--- a/src/game/bg_misc.c
+++ b/src/game/bg_misc.c
@@ -2288,74 +2288,11 @@ static const classAttributes_t bg_classList[ ] =
400.0f, //float stopSpeed;
250.0f, //float jumpMagnitude;
2.0f, //float knockbackScale;
- { PCL_ALIEN_LEVEL1, PCL_NONE }, //int children[ 3 ];
+ { PCL_ALIEN_LEVEL2, PCL_NONE }, //int children[ 3 ];
LEVEL0_COST, //int cost;
LEVEL0_VALUE, //int value;
},
{
- PCL_ALIEN_LEVEL1, //int classnum;
- "level1", //char *classname;
- "A support class able to crawl on walls and ceilings. Its melee "
- "attack is most effective when combined with the ability to grab "
- "and hold its victims in place. Provides a weak healing aura "
- "that accelerates the healing rate of nearby aliens. It also has "
- "an acid bomb that can be used to deal moderate area damage. "
- "The basilisk is also resistant to flamer.",
- STAGE_GE_1, //int stages
- LEVEL1_HEALTH, //int health;
- 0.0f, //float fallDamage;
- LEVEL1_REGEN, //float regenRate;
- SCA_FOVWARPS|SCA_WALLCLIMBER|SCA_ALIENSENSE, //int abilities;
- WP_ALEVEL1, //weapon_t startWeapon
- 0.0f, //float buildDist;
- 120, //int fov;
- 0.001f, //float bob;
- 1.8f, //float bobCycle;
- 60, //int steptime;
- LEVEL1_SPEED, //float speed;
- 10.0f, //float acceleration;
- 1.0f, //float airAcceleration;
- 6.0f, //float friction;
- 300.0f, //float stopSpeed;
- 310.0f, //float jumpMagnitude;
- 1.2f, //float knockbackScale;
- { PCL_ALIEN_LEVEL2, PCL_ALIEN_LEVEL1_UPG, PCL_NONE }, //int children[ 3 ];
- LEVEL1_COST, //int cost;
- LEVEL1_VALUE, //int value;
- },
- {
- PCL_ALIEN_LEVEL1_UPG, //int classnum;
- "level1upg", //char *classname;
- "In addition to the basic Basilisk abilities, the Advanced "
- "Basilisk sprays a poisonous gas which slows down and disorients "
- "nearby humans. Has a strong healing aura that that accelerates "
- "the healing rate of nearby aliens. It is invisible while staying "
- "still and at full health as long as there is an overmind around. "
- "It also has an acid bomb similar to basilisk's one but stronger."
- "The adv. basilisk is also resistant to flamer.",
- STAGE_GE_3, //int stages
- LEVEL1_UPG_HEALTH, //int health;
- 0.0f, //float fallDamage;
- LEVEL1_UPG_REGEN, //float regenRate;
- SCA_FOVWARPS|SCA_WALLCLIMBER|SCA_ALIENSENSE, //int abilities;
- WP_ALEVEL1_UPG, //weapon_t startWeapon
- 0.0f, //float buildDist;
- 120, //int fov;
- 0.001f, //float bob;
- 1.8f, //float bobCycle;
- 60, //int steptime;
- LEVEL1_UPG_SPEED, //float speed;
- 10.0f, //float acceleration;
- 1.0f, //float airAcceleration;
- 6.0f, //float friction;
- 300.0f, //float stopSpeed;
- 310.0f, //float jumpMagnitude;
- 1.1f, //float knockbackScale;
- { PCL_ALIEN_LEVEL2, PCL_NONE, PCL_NONE }, //int children[ 3 ];
- LEVEL1_UPG_COST, //int cost;
- LEVEL1_UPG_VALUE, //int value;
- },
- {
PCL_ALIEN_LEVEL2, //int classnum;
"level2", //char *classname;
"Has a melee attack and the ability to jump off walls. This "
@@ -3084,56 +3021,6 @@ static const weaponAttributes_t bg_weapons[ ] =
TEAM_ALIENS //team_t team;
},
{
- WP_ALEVEL1, //int weaponNum;
- 0, //int price;
- STAGE_GE_1, //int stages
- SLOT_WEAPON, //int slots;
- "level1", //char *weaponName;
- "Claws", //char *humanName;
- "",
- 1, //int maxAmmo;
- 0, //int maxClips;
- qtrue, //int infiniteAmmo;
- qfalse, //int usesEnergy;
- LEVEL1_CLAW_REPEAT, //int repeatRate1;
- 0, //int repeatRate2;
- ABOMB2_REPEAT, //int repeatRate3;
- 0, //int reloadTime;
- LEVEL1_CLAW_K_SCALE, //float knockbackScale;
- qfalse, //qboolean hasAltMode;
- qtrue, //qboolean hasThirdMode;
- qfalse, //qboolean canZoom;
- 90.0f, //float zoomFov;
- qfalse, //qboolean purchasable;
- qfalse, //qboolean longRanged;
- TEAM_ALIENS //team_t team;
- },
- {
- WP_ALEVEL1_UPG, //int weaponNum;
- 0, //int price;
- STAGE_GE_3, //int stages
- SLOT_WEAPON, //int slots;
- "level1upg", //char *weaponName;
- "Claws Upgrade", //char *humanName;
- "",
- 1, //int maxAmmo;
- 0, //int maxClips;
- qtrue, //int infiniteAmmo;
- qfalse, //int usesEnergy;
- LEVEL1_CLAW_U_REPEAT, //int repeatRate1;
- LEVEL1_PCLOUD_REPEAT, //int repeatRate2;
- ABOMB_REPEAT, //int repeatRate3;
- 0, //int reloadTime;
- LEVEL1_CLAW_U_K_SCALE,//float knockbackScale;
- qtrue, //qboolean hasAltMode;
- qtrue, //qboolean hasThirdMode;
- qfalse, //qboolean canZoom;
- 90.0f, //float zoomFov;
- qfalse, //qboolean purchasable;
- qtrue, //qboolean longRanged;
- TEAM_ALIENS //team_t team;
- },
- {
WP_ALEVEL2, //int weaponNum;
0, //int price;
STAGE_GE_2, //int stages
@@ -4854,25 +4741,6 @@ qboolean BG_PlayerCanChangeWeapon( playerState_t *ps )
/*
=================
-BG_PlayerPoisonCloudTime
-=================
-*/
-int BG_PlayerPoisonCloudTime( playerState_t *ps )
-{
- int time = LEVEL1_PCLOUD_TIME;
-
- if( BG_InventoryContainsUpgrade( UP_BATTLESUIT, ps->stats ) )
- time -= BSUIT_PCLOUD_PROTECTION;
- if( BG_InventoryContainsUpgrade( UP_HELMET, ps->stats ) )
- time -= HELMET_PCLOUD_PROTECTION;
- if( BG_InventoryContainsUpgrade( UP_LIGHTARMOUR, ps->stats ) )
- time -= LIGHTARMOUR_PCLOUD_PROTECTION;
-
- return time;
-}
-
-/*
-=================
BG_GetPlayerWeapon
Returns the players current weapon or the weapon they are switching to.
diff --git a/src/game/bg_mod.h b/src/game/bg_mod.h
index 9fa3908..a34b7f5 100644
--- a/src/game/bg_mod.h
+++ b/src/game/bg_mod.h
@@ -31,8 +31,6 @@ MOD( MOD_TARGET_LASER, CSW_UNKNOWN ),
MOD( MOD_TRIGGER_HURT, CSW_UNKNOWN ),
MOD( MOD_ABUILDER_CLAW, CSW_ABUILDER ),
MOD( MOD_LEVEL0_BITE, CSW_UNKNOWN ),
-MOD( MOD_LEVEL1_CLAW, CSW_LEVEL1 ),
-MOD( MOD_LEVEL1_PCLOUD, CSW_UNKNOWN ),
MOD( MOD_LEVEL3_CLAW, CSW_LEVEL3 ),
MOD( MOD_LEVEL3_POUNCE, CSW_UNKNOWN ),
MOD( MOD_LEVEL5_POUNCE, CSW_UNKNOWN ),
@@ -65,5 +63,4 @@ MOD( MOD_SLAP, CSW_UNKNOWN ),
MOD( MOD_DECONSTRUCT, CSW_UNKNOWN ),
MOD( MOD_REPLACE, CSW_UNKNOWN ),
MOD( MOD_NOCREEP, CSW_UNKNOWN ),
-MOD( MOD_NOBP, CSW_UNKNOWN ),
-MOD( MOD_ABOMB, CSW_UNKNOWN )
+MOD( MOD_NOBP, CSW_UNKNOWN )
diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c
index 0991bf6..16132c3 100644
--- a/src/game/bg_pmove.c
+++ b/src/game/bg_pmove.c
@@ -465,14 +465,6 @@ static float PM_CmdScale( usercmd_t *cmd )
else
modifier *= CREEP_MODIFIER;
}
- if( pm->ps->eFlags & EF_POISONCLOUDED )
- {
- if( BG_InventoryContainsUpgrade( UP_LIGHTARMOUR, pm->ps->stats ) ||
- BG_InventoryContainsUpgrade( UP_BATTLESUIT, pm->ps->stats ) )
- modifier *= PCLOUD_ARMOUR_MODIFIER;
- else
- modifier *= PCLOUD_MODIFIER;
- }
}
if( pm->ps->weapon == WP_ALEVEL4 && pm->ps->pm_flags & PMF_CHARGE )
@@ -3473,14 +3465,6 @@ static void PM_Weapon( void )
pm->ps->weaponTime += 200;
return;
}
-
- //hacky special case for acid bomb
- if( (pm->ps->weapon == WP_ALEVEL1 || pm->ps->weapon == WP_ALEVEL1_UPG) && !pm->ps->ammo )
- {
- pm->ps->weaponTime += 200;
- return;
- }
-
pm->ps->generic1 = WPM_TERTIARY;
PM_AddEvent( EV_FIRE_WEAPON3 );
@@ -3575,16 +3559,6 @@ static void PM_Weapon( void )
// weapon.cfg
switch( pm->ps->weapon )
{
- case WP_ALEVEL1_UPG:
- case WP_ALEVEL1:
- if( attack1 )
- {
- num /= RAND_MAX / 6 + 1;
- PM_ForceLegsAnim( NSPA_ATTACK1 );
- PM_StartWeaponAnim( WANIM_ATTACK1 + num );
- }
- break;
-
case WP_ALEVEL2_UPG:
if( attack2 )
{
@@ -3671,13 +3645,7 @@ static void PM_Weapon( void )
if( pm->ps->ammo < 0 )
pm->ps->ammo = 0;
}
- else if( (pm->ps->weapon == WP_ALEVEL1 || pm->ps->weapon == WP_ALEVEL1_UPG ) && attack3 )
- {
- pm->ps->ammo--;
- // Stay on the safe side
- if( pm->ps->ammo < 0 )
- pm->ps->ammo = 0;
- }
+
//FIXME: predicted angles miss a problem??
if( pm->ps->weapon == WP_CHAINGUN )
{
diff --git a/src/game/bg_public.h b/src/game/bg_public.h
index 602ec94..53e73cc 100644
--- a/src/game/bg_public.h
+++ b/src/game/bg_public.h
@@ -324,7 +324,6 @@ typedef enum
#define EF_FIRING2 0x0400 // alt fire
#define EF_FIRING3 0x0800 // third fire
#define EF_MOVER_STOP 0x1000 // will push otherwise
-#define EF_POISONCLOUDED 0x2000 // player hit with basilisk gas
#define EF_CONNECTION 0x4000 // draw a connection trouble sprite
#define EF_BLOBLOCKED 0x8000 // caught by a trapper
@@ -350,8 +349,6 @@ typedef enum
{
WP_NONE,
WP_ALEVEL0,
- WP_ALEVEL1,
- WP_ALEVEL1_UPG,
WP_ALEVEL2,
WP_ALEVEL2_UPG,
WP_ALEVEL5,
@@ -803,8 +800,6 @@ typedef enum
PCL_ALIEN_BUILDER0_UPG,
//offensive classes
PCL_ALIEN_LEVEL0,
- PCL_ALIEN_LEVEL1,
- PCL_ALIEN_LEVEL1_UPG,
PCL_ALIEN_LEVEL2,
PCL_ALIEN_LEVEL2_UPG,
PCL_ALIEN_LEVEL5,
@@ -1061,7 +1056,6 @@ void BG_PositionBuildableRelativeToPlayer( const playerState_t *ps,
vec3_t outOrigin, vec3_t outAngles, trace_t *tr );
int BG_GetValueOfPlayer( playerState_t *ps );
qboolean BG_PlayerCanChangeWeapon( playerState_t *ps );
-int BG_PlayerPoisonCloudTime( playerState_t *ps );
weapon_t BG_GetPlayerWeapon( playerState_t *ps );
qboolean BG_HasEnergyWeapon( playerState_t *ps );
diff --git a/src/game/g_active.c b/src/game/g_active.c
index 84cf017..1a28de7 100644
--- a/src/game/g_active.c
+++ b/src/game/g_active.c
@@ -790,23 +790,6 @@ void ClientTimerActions( gentity_t *ent, int msec )
client->time100 -= 100;
- // Client is not moving
- //client->ps.stats[ STAT_STATE ] &= ~SS_INVI;
- if( client->ps.weapon == WP_ALEVEL1_UPG )
- {
- client->ps.eFlags &= ~EF_MOVER_STOP;
-
- if( !G_Overmind( ) )
- client->ps.eFlags &= ~EF_MOVER_STOP;
- else
- if( stopped && !jumping && !( ucmd->buttons & BUTTON_ATTACK ) && ent->health >= 80 ){
- client->ps.eFlags |= EF_MOVER_STOP;
- client->ps.stats[ STAT_STATE ] |= SS_INVI;
- }
- else
- client->ps.stats[ STAT_STATE ] &= ~SS_INVI;
- }
-
// Restore or subtract stamina
if( stopped || client->ps.pm_type == PM_JETPACK )
client->ps.stats[ STAT_STAMINA ] += STAMINA_STOP_RESTORE;
@@ -991,11 +974,8 @@ void ClientTimerActions( gentity_t *ent, int msec )
client->pers.aliveSeconds % g_freeFundPeriod.integer == 0 )
{
// Give clients some credit periodically
- // Basilisks receive even after sudden death
const class_t class = client->ps.stats[ STAT_CLASS ];
- if( ( G_TimeTilSuddenDeath( ) > 0 ) ||
- ( class == PCL_ALIEN_LEVEL1 ) ||
- ( class == PCL_ALIEN_LEVEL1_UPG ) )
+ if( ( G_TimeTilSuddenDeath( ) > 0 ) )
{
if( client->ps.stats[ STAT_TEAM ] == TEAM_ALIENS )
G_AddCreditToClient( client, FREEKILL_ALIEN, qtrue );
@@ -1039,17 +1019,6 @@ void ClientTimerActions( gentity_t *ent, int msec )
{
AddScore( ent, HUMAN_BUILDER_SCOREINC );
}
-
- // Give score to basis that healed other aliens
- if( ent->client->pers.hasHealed )
- {
- if( client->ps.weapon == WP_ALEVEL1 )
- AddScore( ent, LEVEL1_REGEN_SCOREINC );
- else if( client->ps.weapon == WP_ALEVEL1_UPG )
- AddScore( ent, LEVEL1_UPG_REGEN_SCOREINC );
-
- ent->client->pers.hasHealed = qfalse;
- }
}
//LVL2UPG barb regen (new)
@@ -1097,30 +1066,6 @@ void ClientTimerActions( gentity_t *ent, int msec )
else
ent->timestamp = level.time;
}
-
-
- // Regenerate Basilisk acid bomb
- if( client->ps.weapon == WP_ALEVEL1 || client->ps.weapon == WP_ALEVEL1_UPG )
- {
- if( client->ps.ammo < BG_Weapon( WP_ALEVEL1 )->maxAmmo )
- {
- if( ent->timestamp + 45000 < level.time )
- {
- client->ps.ammo++;
- ent->timestamp = level.time;
- }
- }
- else if( client->ps.ammo < BG_Weapon( WP_ALEVEL1_UPG )->maxAmmo )
- {
- if( ent->timestamp + 45000 < level.time )
- {
- client->ps.ammo++;
- ent->timestamp = level.time;
- }
- }
- else
- ent->timestamp = level.time;
- }
// Regenerate Tyrant FireBreath
if( client->ps.weapon == WP_ALEVEL4 )
@@ -1725,12 +1670,6 @@ void ClientThink_real( gentity_t *ent )
client->ps.stats[ STAT_STATE ] |= SS_BOOSTEDWARNING;
}
- // Check if poison cloud has worn off
- if( ( client->ps.eFlags & EF_POISONCLOUDED ) &&
- BG_PlayerPoisonCloudTime( &client->ps ) - level.time +
- client->lastPoisonCloudedTime <= 0 )
- client->ps.eFlags &= ~EF_POISONCLOUDED;
-
if( client->ps.stats[ STAT_STATE ] & SS_POISONED &&
client->poisonExpiryTime < level.time )
client->ps.stats[ STAT_STATE ] &= ~SS_POISONED;
@@ -1809,18 +1748,6 @@ void ClientThink_real( gentity_t *ent )
class_t class = boost->client->ps.stats[ STAT_CLASS ];
qboolean didBoost = qfalse;
- if( class == PCL_ALIEN_LEVEL1 && modifier < LEVEL1_REGEN_MOD )
- {
- modifier = LEVEL1_REGEN_MOD;
- didBoost = qtrue;
- }
- else if( class == PCL_ALIEN_LEVEL1_UPG &&
- modifier < LEVEL1_UPG_REGEN_MOD )
- {
- modifier = LEVEL1_UPG_REGEN_MOD;
- didBoost = qtrue;
- }
-
if( didBoost && ent->health < client->ps.stats[ STAT_MAX_HEALTH ] )
boost->client->pers.hasHealed = qtrue;
}
@@ -1988,11 +1915,6 @@ void ClientThink_real( gentity_t *ent )
}
break;
- case WP_ALEVEL1:
- case WP_ALEVEL1_UPG:
- CheckGrabAttack( ent );
- break;
-
case WP_ALEVEL3:
case WP_ALEVEL3_UPG:
if( !CheckPounceAttack( ent ) )
diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c
index a6daffa..472c70f 100644
--- a/src/game/g_buildable.c
+++ b/src/game/g_buildable.c
@@ -1900,41 +1900,6 @@ void ASpitefulAbcess_Die( gentity_t *self, gentity_t *inflictor, gentity_t *atta
self->powered = qfalse; //free up power
self->s.eFlags &= ~EF_FIRING; //prevent any firing effects
- if ( self->spawned )
- {
- // Grab all entities around us
- VectorAdd(self->s.origin, range, maxs);
- VectorSubtract(self->s.origin, range, mins);
-
- total_entities = trap_EntitiesInBox(mins, maxs, entityList, MAX_GENTITIES);
-
- // Loop entities looking for an enemy body
- for( i = 0; i < total_entities; i++ )
- {
- target = &g_entities[entityList[i]];
- if( target->client && target->client->ps.stats[ STAT_TEAM ] == TEAM_HUMANS )
- {
- if( G_Visible( self, target, MASK_SHOT ) )
- {
- if( BG_InventoryContainsUpgrade( UP_LIGHTARMOUR, target->client->ps.stats ) )
- continue;
-
- if( BG_InventoryContainsUpgrade( UP_BATTLESUIT, target->client->ps.stats ) )
- continue;
-
- if( !( target->client->ps.eFlags & EF_POISONCLOUDED ) )
- {
- //target->client->ps.stats[ STAT_STATE ] |= SS_POISONCLOUDED;
- target->client->ps.eFlags |= EF_POISONCLOUDED;
- target->client->lastPoisonCloudedTime = level.time;
- //target->client->lastPoisonCloudedClient = self;
- trap_SendServerCommand( target->client->ps.clientNum, "poisoncloud" );
- }
- }
- }
- }
- }
-
//pretty events and item cleanup
self->s.eFlags |= EF_NODRAW; //don't draw the model once its destroyed
G_AddEvent( self, EV_ALIEN_BUILDABLE_EXPLOSION, DirToByte( dir ) );
diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c
index f75241c..33fff3f 100644
--- a/src/game/g_cmds.c
+++ b/src/game/g_cmds.c
@@ -505,14 +505,6 @@ void Cmd_Give_f( gentity_t *ent )
}
}
- if( Q_stricmp( name, "gas" ) == 0 )
- {
- ent->client->ps.eFlags |= EF_POISONCLOUDED;
- ent->client->lastPoisonCloudedTime = level.time;
- trap_SendServerCommand( ent->client->ps.clientNum,
- "poisoncloud" );
- }
-
if( give_all || Q_stricmp( name, "ammo" ) == 0 )
{
gclient_t *client = ent->client;
@@ -1835,7 +1827,6 @@ void Cmd_Class_f( gentity_t *ent )
if( ent->client->ps.stats[ STAT_STATE ] & SS_BOOSTED )
oldBoostTime = ent->client->boostedTime;
- oldTimeStamp = ( ent->client->ps.weapon == WP_ALEVEL1 ) ? ent->timestamp : 0;
ClientSpawn( ent, ent, ent->s.pos.trBase, ent->s.apos.trBase );
@@ -1845,11 +1836,6 @@ void Cmd_Class_f( gentity_t *ent )
ent->client->boostedTime = oldBoostTime;
ent->client->ps.stats[ STAT_STATE ] |= SS_BOOSTED;
}
- if( newClass == PCL_ALIEN_LEVEL1_UPG )
- {
- ent->timestamp = oldTimeStamp;
- ent->client->ps.ammo = 0;
- }
}
else
G_TriggerMenuArgs( clientNum, MN_A_CANTEVOLVE, newClass );
diff --git a/src/game/g_combat.c b/src/game/g_combat.c
index a8938f8..03b8d82 100644
--- a/src/game/g_combat.c
+++ b/src/game/g_combat.c
@@ -978,10 +978,6 @@ static float G_CalcDamageModifier( vec3_t point, gentity_t *targ, gentity_t *att
if( dflags & DAMAGE_NO_LOCDAMAGE )
{
const int mod = targ->client->lasthurt_mod;
- // basi - flamer protection
- if( ( ( mod == MOD_FLAMER ) || ( mod == MOD_FLAMER_SPLASH ) ) &&
- ( ( class == PCL_ALIEN_LEVEL1 ) || ( class == PCL_ALIEN_LEVEL1_UPG ) ) )
- return 0.1f;
return GetNonLocDamageModifier( targ, class );
}
@@ -1448,19 +1444,15 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker,
&& mod != MOD_POISON
&& mod != MOD_LEVEL2_ZAP
&& mod != MOD_LEVEL5_ZAP
- && mod != MOD_LEVEL1_PCLOUD
&& mod != MOD_HSPAWN
&& mod != MOD_ASPAWN
&& mod != MOD_LEVEL5_PRICKLES
&& mod != MOD_FLAMER_SPLASH)
poisonTime = level.time + ALIEN_POISON_TIME;
// no more zap poisen
- else if( mod == MOD_LEVEL1_CLAW && ( mod != MOD_LEVEL2_ZAP || mod != MOD_LEVEL5_ZAP || mod != MOD_FLAMES ))
+ else if( mod != MOD_LEVEL2_ZAP || mod != MOD_LEVEL5_ZAP || mod != MOD_FLAMES )
{
- if( attacker->client->ps.weapon == WP_ALEVEL1_UPG )
- poisonTime = level.time + g_basiPoisonTime.integer * 1000;
- else
- poisonTime = level.time + g_basiUpgPoisonTime.integer * 1000;
+ poisonTime = level.time + g_basiUpgPoisonTime.integer * 1000;
}
if( poisonTime > 0 )
{
diff --git a/src/game/g_csw.h b/src/game/g_csw.h
index 96158b7..49e2088 100644
--- a/src/game/g_csw.h
+++ b/src/game/g_csw.h
@@ -17,7 +17,6 @@ CSW( CSW_GRENADE, MOD_GRENADE, "Grenade", GRENADE_DAMAGE ),
CSW( CSW_ABUILDER, MOD_ABUILDER_CLAW, "Granger", ABUILDER_CLAW_DMG ),
CSW( CSW_ABUILDER_ALT, MOD_SLOWBLOB, "Granger Spit", ABUILDER_BLOB_DMG ),
-CSW( CSW_LEVEL1, MOD_LEVEL1_CLAW, "Basilisk", LEVEL1_CLAW_DMG ),
CSW( CSW_LEVEL2, MOD_LEVEL2_CLAW, "Marauder", LEVEL2_CLAW_DMG ),
CSW( CSW_LEVEL2_UPG, MOD_LEVEL2_CLAW_UPG, "Adv. Marauder", LEVEL2_CLAW_UPG_DMG ),
CSW( CSW_LEVEL2_ALT, MOD_LEVEL2_ZAP, "Marauder Zap", LEVEL2_AREAZAP_DMG ),
diff --git a/src/game/g_local.h b/src/game/g_local.h
index 1b602a6..925359c 100644
--- a/src/game/g_local.h
+++ b/src/game/g_local.h
@@ -1039,8 +1039,6 @@ gentity_t *launch_mine( gentity_t *self, vec3_t start, vec3_t dir );
gentity_t *launch_flames( gentity_t *self, vec3_t start, vec3_t dir );
gentity_t *launch_smoke( gentity_t *self, vec3_t start, vec3_t dir );
gentity_t *fire_rocket( gentity_t *self, vec3_t start, vec3_t dir );
-gentity_t *fire_acidBomb( gentity_t *self, vec3_t start, vec3_t dir, int wp );
-gentity_t *fire_acidBomb2( gentity_t *self, vec3_t start, vec3_t dir, int wp );
gentity_t *fire_fern( vec3_t origin, vec3_t angles, int lifespan );
gentity_t *Prickles_Fire( gentity_t *self, vec3_t start, vec3_t dir );
diff --git a/src/game/g_missile.c b/src/game/g_missile.c
index 3ac98f2..071d26d 100644
--- a/src/game/g_missile.c
+++ b/src/game/g_missile.c
@@ -1525,86 +1525,6 @@ gentity_t *fire_slowBlob( gentity_t *self, vec3_t start, vec3_t dir )
return bolt;
}
-/*
-=================
-fire_acidBomb2
-adv basi
-=================
-*/
-gentity_t *fire_acidBomb2( gentity_t *self, vec3_t start, vec3_t dir, int wp )
-{
- gentity_t *bolt;
-
- VectorNormalize ( dir );
-
- bolt = G_Spawn( );
- bolt->classname = "acidbomb";
- bolt->nextthink = level.time + 8000;
- bolt->think = G_ExplodeMissile;
- bolt->s.eType = ET_MISSILE;
- bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN;
- bolt->s.weapon = wp;
- bolt->s.eFlags = EF_BOUNCE_HALF;
- bolt->s.generic1 = self->s.generic1; //weaponMode
- bolt->r.ownerNum = self->s.number;
- bolt->parent = self;
- bolt->damage = ABOMB2_DMG;
- bolt->splashDamage = ABOMB2_SPLASH_DMG;
- bolt->splashRadius = ABOMB2_SPLASH_RADIUS;
- bolt->methodOfDeath = MOD_ABOMB;
- bolt->splashMethodOfDeath = MOD_ABOMB;
- bolt->clipmask = MASK_SHOT;
- bolt->target_ent = NULL;
- bolt->r.mins[ 0 ] = bolt->r.mins[ 1 ] = bolt->r.mins[ 2 ] = -5.0f;
- bolt->r.maxs[ 0 ] = bolt->r.maxs[ 1 ] = bolt->r.maxs[ 2 ] = 5.0f;
- bolt->s.pos.trType = TR_GRAVITY;
- bolt->s.pos.trTime = level.time - MISSILE_PRESTEP_TIME; // move a bit on the very first frame
- VectorCopy( start, bolt->s.pos.trBase );
- VectorScale( dir, ABOMB2_SPEED, bolt->s.pos.trDelta );
- SnapVector( bolt->s.pos.trDelta ); // save net bandwidth
- VectorCopy( start, bolt->r.currentOrigin );
- return bolt;
-}
-
-/*
-=================
-fire_acidBomb
-=================
-*/
-gentity_t *fire_acidBomb( gentity_t *self, vec3_t start, vec3_t dir, int wp )
-{
- gentity_t *bolt;
- VectorNormalize ( dir );
- bolt = G_Spawn( );
- bolt->classname = "acidbomb";
- bolt->nextthink = level.time + 8000;
- bolt->think = G_ExplodeMissile;
- bolt->s.eType = ET_MISSILE;
- bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN;
- bolt->s.weapon = wp;
- bolt->s.eFlags = EF_BOUNCE_HALF;
- bolt->s.generic1 = self->s.generic1; //weaponMode
- bolt->r.ownerNum = self->s.number;
- bolt->parent = self;
- bolt->damage = ABOMB_DMG;
- bolt->splashDamage = ABOMB_SPLASH_DMG;
- bolt->splashRadius = ABOMB_SPLASH_RADIUS;
- bolt->methodOfDeath = MOD_ABOMB;
- bolt->splashMethodOfDeath = MOD_ABOMB;
- bolt->clipmask = MASK_SHOT;
- bolt->target_ent = NULL;
- bolt->r.mins[ 0 ] = bolt->r.mins[ 1 ] = bolt->r.mins[ 2 ] = -5.0f;
- bolt->r.maxs[ 0 ] = bolt->r.maxs[ 1 ] = bolt->r.maxs[ 2 ] = 5.0f;
- bolt->s.pos.trType = TR_GRAVITY;
- bolt->s.pos.trTime = level.time - MISSILE_PRESTEP_TIME; // move a bit on the very first frame
- VectorCopy( start, bolt->s.pos.trBase );
- VectorScale( dir, ABOMB_SPEED, bolt->s.pos.trDelta );
- SnapVector( bolt->s.pos.trDelta ); // save net bandwidth
- VectorCopy( start, bolt->r.currentOrigin );
-
- return bolt;
-}
-
void mine_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int damage, int mod )
{
diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c
index 56f931a..b3a9440 100644
--- a/src/game/g_weapon.c
+++ b/src/game/g_weapon.c
@@ -695,21 +695,6 @@ void throwMine( gentity_t *ent )
/*
======================================================================
-ACID BOMBS
-======================================================================
-*/
-void acidBombFire( gentity_t *ent, int wp )
-{
- fire_acidBomb( ent, muzzle, forward, wp );
-}
-
-void acidBombFire2x( gentity_t *ent, int wp )
-{
- fire_acidBomb2( ent, muzzle, forward, wp );
-}
-
-/*
-======================================================================
LAS GUN
======================================================================
*/
@@ -1172,130 +1157,6 @@ qboolean CheckVenomAttack( gentity_t *ent )
/*
======================================================================
-LEVEL1
-======================================================================
-*/
-/*
-===============
-CheckGrabAttack
-===============
-*/
-void CheckGrabAttack( gentity_t *ent )
-{
- trace_t tr;
- vec3_t end, dir;
- float dot;
- gentity_t *traceEnt;
-
- // set aiming directions
- AngleVectors( ent->client->ps.viewangles, forward, right, up );
- CalcMuzzlePoint( ent, forward, right, up, muzzle );
-
- if( ent->client->ps.weapon == WP_ALEVEL1 )
- VectorMA( muzzle, LEVEL1_GRAB_RANGE, forward, end );
- else if( ent->client->ps.weapon == WP_ALEVEL1_UPG )
- VectorMA( muzzle, LEVEL1_GRAB_U_RANGE, forward, end );
-
- trap_Trace( &tr, muzzle, NULL, NULL, end, ent->s.number, MASK_SHOT );
- if( tr.surfaceFlags & SURF_NOIMPACT )
- return;
-
- traceEnt = &g_entities[ tr.entityNum ];
-
- if( !traceEnt->takedamage )
- return;
-
- if( traceEnt->client )
- {
- if( traceEnt->client->ps.stats[ STAT_TEAM ] == TEAM_ALIENS )
- return;
-
- if( traceEnt->client->ps.stats[ STAT_HEALTH ] <= 0 )
- return;
-
- // NOTE: Re-using end,dir for optimal/current target direction in the following
- if( !( traceEnt->client->ps.stats[ STAT_STATE ] & SS_GRABBED ) )
- {
- AngleVectors( traceEnt->client->ps.viewangles, dir, NULL, NULL );
- traceEnt->client->ps.stats[ STAT_VIEWLOCK ] = DirToByte( dir );
- VectorSubtract(traceEnt->client->ps.origin,ent->client->ps.origin,end);
- VectorNormalize(end);
- ent->client->ps.stats[ STAT_MISC ] = DotProduct(dir, end);
-
- //event for client side grab effect
- G_AddPredictableEvent( ent, EV_LEV1_GRAB, 0 );
- } else if (traceEnt->client->ps.pm_type == PM_JETPACK) {
- // jetpack enabled, do nothing
- } else if (ent->client->ps.stats[ STAT_MISC ] >= 0.9f) {
- VectorSubtract(traceEnt->client->ps.origin,ent->client->ps.origin,end);
- VectorNormalize(end);
- traceEnt->client->ps.stats[ STAT_VIEWLOCK ] = DirToByte( end );
- } else {
- VectorSubtract(traceEnt->client->ps.origin,ent->client->ps.origin,end);
- VectorNormalize(end);
-
- AngleVectors( traceEnt->client->ps.viewangles, dir, NULL, NULL );
- dot = DotProduct(dir, end);
-
- if (dot >= ent->client->ps.stats[ STAT_MISC ]) {
- traceEnt->client->ps.stats[ STAT_VIEWLOCK ] = DirToByte( end );
- ent->client->ps.stats[ STAT_MISC ] = dot;
- }
- }
-
- traceEnt->client->ps.stats[ STAT_STATE ] |= SS_GRABBED;
-
- if( ent->client->ps.weapon == WP_ALEVEL1 )
- traceEnt->client->grabExpiryTime = level.time + LEVEL1_GRAB_TIME;
- else if( ent->client->ps.weapon == WP_ALEVEL1_UPG )
- traceEnt->client->grabExpiryTime = level.time + LEVEL1_GRAB_U_TIME;
- }
-}
-
-/*
-===============
-poisonCloud
-===============
-*/
-void poisonCloud( gentity_t *ent )
-{
- int entityList[ MAX_GENTITIES ];
- vec3_t range = { LEVEL1_PCLOUD_RANGE, LEVEL1_PCLOUD_RANGE, LEVEL1_PCLOUD_RANGE };
- vec3_t mins, maxs;
- int i, num;
- gentity_t *humanPlayer;
- trace_t tr;
-
- VectorAdd( ent->client->ps.origin, range, maxs );
- VectorSubtract( ent->client->ps.origin, range, mins );
-
- G_UnlaggedOn( ent, ent->client->ps.origin, LEVEL1_PCLOUD_RANGE );
- num = trap_EntitiesInBox( mins, maxs, entityList, MAX_GENTITIES );
- for( i = 0; i < num; i++ )
- {
- humanPlayer = &g_entities[ entityList[ i ] ];
-
- if( humanPlayer->client &&
- humanPlayer->client->pers.teamSelection == TEAM_HUMANS )
- {
- trap_Trace( &tr, muzzle, NULL, NULL, humanPlayer->s.origin,
- humanPlayer->s.number, CONTENTS_SOLID );
-
- //can't see target from here
- if( tr.entityNum == ENTITYNUM_WORLD )
- continue;
-
- humanPlayer->client->ps.eFlags |= EF_POISONCLOUDED;
- humanPlayer->client->lastPoisonCloudedTime = level.time;
-
- trap_SendServerCommand( humanPlayer->client->ps.clientNum,"poisoncloud" );
- }
- }
- G_UnlaggedOff( );
-}
-
-/*
-======================================================================
LEVEL2
======================================================================
*/
@@ -1852,13 +1713,6 @@ void FireWeapon3( gentity_t *ent )
massDriverFire2( ent );
}
break;
-
- case WP_ALEVEL1:
- acidBombFire2x( ent, WP_ALEVEL1 );
- break;
- case WP_ALEVEL1_UPG:
- acidBombFire( ent, WP_ALEVEL1_UPG );
- break;
default:
break;
@@ -1891,10 +1745,6 @@ void FireWeapon2( gentity_t *ent )
case WP_MACHINEGUN:
bulletFire( ent, RIFLE_SPREAD2, RIFLE_DMG2, MOD_MACHINEGUN );
break;
-
- case WP_ALEVEL1_UPG:
- poisonCloud( ent );
- break;
case WP_ALEVEL2_UPG:
areaZapFire( ent );
@@ -1956,14 +1806,6 @@ void FireWeapon( gentity_t *ent )
// fire the specific weapon
switch( ent->s.weapon )
{
- case WP_ALEVEL1:
- meleeAttack( ent, LEVEL1_CLAW_RANGE, LEVEL1_CLAW_WIDTH, LEVEL1_CLAW_WIDTH,
- LEVEL1_CLAW_DMG, MOD_LEVEL1_CLAW );
- break;
- case WP_ALEVEL1_UPG:
- meleeAttack( ent, LEVEL1_CLAW_U_RANGE, LEVEL1_CLAW_WIDTH, LEVEL1_CLAW_WIDTH,
- LEVEL1_CLAW_DMG, MOD_LEVEL1_CLAW );
- break;
case WP_ALEVEL3:
meleeAttack( ent, LEVEL3_CLAW_RANGE, LEVEL3_CLAW_WIDTH, LEVEL3_CLAW_WIDTH,
LEVEL3_CLAW_DMG, MOD_LEVEL3_CLAW );
diff --git a/src/game/tremulous.h b/src/game/tremulous.h
index 9610077..7028ae7 100644
--- a/src/game/tremulous.h
+++ b/src/game/tremulous.h
@@ -74,8 +74,6 @@ TREMULOUS EDGE MOD SRC FILE
#define ALIEN_POISON_TIME 10000
#define ALIEN_POISON_DMG 5
#define ALIEN_POISON_DIVIDER (1.0f/1.32f) //about 1.0/(time`th root of damage)
-#define ALIEN_INFECTION_TIME 7000
-#define ALIEN_INFECTION_DMG 2
#define ALIEN_SPAWN_REPEAT_TIME 11000
#define ALIEN_REGEN_DAMAGE_TIME 2000 //msec since damage that regen starts again
#define ALIEN_REGEN_NOCREEP_MOD (1.0f/3.0f) //regen off creep
@@ -130,55 +128,12 @@ TREMULOUS EDGE MOD SRC FILE
#define LEVEL0_BITE_REPEAT 500
#define LEVEL0_BITE_K_SCALE 1.0f
-//Basilik
-#define LEVEL1_SPEED 1.25f
-#define LEVEL1_VALUE AVM(270)
-#define LEVEL1_HEALTH AHM(60)
-#define LEVEL1_REGEN (0.03f * LEVEL1_HEALTH)
-#define LEVEL1_COST 1
-#define LEVEL1_UPG_SPEED 1.25f
-#define LEVEL1_UPG_VALUE AVM(330)
-#define LEVEL1_UPG_HEALTH AHM(80)
-#define LEVEL1_UPG_REGEN (0.03f * LEVEL1_UPG_HEALTH)
-#define LEVEL1_UPG_COST 1
-
-#define LEVEL1_CLAW_DMG ADM(32)
-#define LEVEL1_CLAW_RANGE 64.0f
-#define LEVEL1_CLAW_U_RANGE LEVEL1_CLAW_RANGE + 3.0f
-#define LEVEL1_CLAW_WIDTH 10.0f
-#define LEVEL1_CLAW_REPEAT 600
-#define LEVEL1_CLAW_U_REPEAT 500
-#define LEVEL1_CLAW_K_SCALE 1.0f
-#define LEVEL1_CLAW_U_K_SCALE 1.0f
-#define LEVEL1_GRAB_RANGE 96.0f
-#define LEVEL1_GRAB_U_RANGE LEVEL1_GRAB_RANGE + 3.0f
-#define LEVEL1_GRAB_TIME 300
-#define LEVEL1_GRAB_U_TIME 300
-#define LEVEL1_PCLOUD_DMG ADM(5)
-#define LEVEL1_PCLOUD_RANGE 150.0f
-#define LEVEL1_PCLOUD_REPEAT 2000
-#define LEVEL1_PCLOUD_TIME 10000
-#define LEVEL1_REGEN_MOD 2.0f
-#define LEVEL1_UPG_REGEN_MOD 3.0f
-#define LEVEL1_REGEN_SCOREINC AVM(100) // score added for healing per 10s
-#define LEVEL1_UPG_REGEN_SCOREINC AVM(200)
-#define ABOMB_DMG ADM(60)
-#define ABOMB_SPLASH_DMG ADM(200)
-#define ABOMB_SPLASH_RADIUS 200
-#define ABOMB_SPEED 400.0f
-#define ABOMB_REPEAT 1000
-#define ABOMB2_DMG ADM(50)
-#define ABOMB2_SPLASH_DMG ADM(170)
-#define ABOMB2_SPLASH_RADIUS 180
-#define ABOMB2_SPEED 500.0f
-#define ABOMB2_REPEAT 1000
-
//Marauder
#define LEVEL2_SPEED 1.2f
#define LEVEL2_VALUE AVM(420)
#define LEVEL2_HEALTH AHM(150)
#define LEVEL2_REGEN (0.03f * LEVEL2_HEALTH)
-#define LEVEL2_COST 1
+#define LEVEL2_COST 2
#define LEVEL2_UPG_SPEED 1.2f
#define LEVEL2_UPG_VALUE AVM(540)
#define LEVEL2_UPG_HEALTH AHM(175)
@@ -550,14 +505,10 @@ TREMULOUS EDGE MOD SRC FILE
*/
#define LIGHTARMOUR_PRICE 50
#define LIGHTARMOUR_POISON_PROTECTION 1
-#define LIGHTARMOUR_INFECTION_PROTECTION 0
-#define LIGHTARMOUR_PCLOUD_PROTECTION 1000
#define HELMET_PRICE 80
#define HELMET_RANGE 1000.0f
#define HELMET_POISON_PROTECTION 1
-#define HELMET_INFECTION_PROTECTION 1
-#define HELMET_PCLOUD_PROTECTION 1000
#define SPAWN_WITH_MEDKIT 1
#define MEDKIT_PRICE 50
@@ -576,8 +527,6 @@ TREMULOUS EDGE MOD SRC FILE
#define BSUIT_PRICE 400
#define BSUIT_POISON_PROTECTION 3
-#define BSUIT_INFECTION_PROTECTION 1
-#define BSUIT_PCLOUD_PROTECTION 3000
#define MGCLIP_PRICE 0
@@ -591,7 +540,6 @@ TREMULOUS EDGE MOD SRC FILE
#define BIOKIT_PRICE 200
#define BIOKIT_POISON_PROTECTION 1
-#define BIOKIT_INFECTION_PROTECTION 3
#define BIOKIT_HEALTH_RATE 2.0 // 5000/BIOKIT_HEALTH_RATE = * msec before regenerate
#define BIOKIT_STAMINA_RATE 2
@@ -619,9 +567,6 @@ TREMULOUS EDGE MOD SRC FILE
#define CREEP_ARMOUR_MODIFIER 0.75f
#define CREEP_SCALEDOWN_TIME 3000
-#define PCLOUD_MODIFIER 0.5f
-#define PCLOUD_ARMOUR_MODIFIER 0.75f
-
#define ASPAWN_BP 10
#define ASPAWN_BT 15000
#define ASPAWN_HEALTH ABHM(250)