summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authorTim Angus <tim@ngus.net>2003-09-30 03:12:47 +0000
committerTim Angus <tim@ngus.net>2003-09-30 03:12:47 +0000
commitc760ccba1b81e343726f00cf405ae44c58488969 (patch)
treec36fd71e5f4f87807dfbdec891de2c6e3e0ad7a1 /src/game
parent7bebc75da4232a1e002102ac59b41868e39ce541 (diff)
* Human and alien buildable destructions are now particle system powered
* Acid tube effect is now particle system powered * Disabled hitSound * Sound other random tidyups
Diffstat (limited to 'src/game')
-rw-r--r--src/game/bg_misc.c2
-rw-r--r--src/game/bg_public.h14
-rw-r--r--src/game/g_buildable.c32
-rw-r--r--src/game/g_client.c5
-rw-r--r--src/game/g_combat.c20
-rw-r--r--src/game/tremulous.h2
6 files changed, 27 insertions, 48 deletions
diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c
index 70136c4d..e23dc962 100644
--- a/src/game/bg_misc.c
+++ b/src/game/bg_misc.c
@@ -135,7 +135,7 @@ buildableAttributes_t bg_buildableList[ ] =
ACIDTUBE_REGEN, //int regenRate;
ACIDTUBE_SPLASHDAMAGE, //int splashDamage;
ACIDTUBE_SPLASHRADIUS, //int splashRadius;
- MOD_ASPAWN, //int meansOfDeath;
+ MOD_ATUBE, //int meansOfDeath;
BIT_ALIENS, //int team;
( 1 << WP_ABUILD )|( 1 << WP_ABUILD2 ), //weapon_t buildWeapon;
BANIM_IDLE1, //int idleAnim;
diff --git a/src/game/bg_public.h b/src/game/bg_public.h
index def97d26..8a505c1a 100644
--- a/src/game/bg_public.h
+++ b/src/game/bg_public.h
@@ -521,7 +521,6 @@ typedef enum
EV_MISSILE_HIT,
EV_MISSILE_MISS,
EV_MISSILE_MISS_METAL,
- EV_BUILDABLE_EXPLOSION, //TA: human item explosions
EV_TESLATRAIL,
EV_ALIENZAP,
EV_BULLET, // otherEntity is the shooter
@@ -533,19 +532,22 @@ typedef enum
EV_OBITUARY,
EV_GIB_PLAYER, // gib a previously living player
- EV_GIB_ALIEN, //TA: generic green gib for aliens
EV_BUILD_CONSTRUCT, //TA
EV_BUILD_DESTROY, //TA
+ EV_BUILD_DELAY, //TA: can't build yet
+ EV_BUILD_REPAIR, //TA: repairing buildable
+ EV_BUILD_REPAIRED, //TA: buildable has full health
+ EV_HUMAN_BUILDABLE_EXPLOSION,
+ EV_ALIEN_BUILDABLE_EXPLOSION,
+ EV_ALIEN_ACIDTUBE,
+
+ EV_ALIEN_EVOLVE,
EV_DEBUG_LINE,
EV_STOPLOOPINGSOUND,
EV_TAUNT,
- EV_BUILD_DELAY, //TA: can't build yet
- EV_BUILD_REPAIR, //TA: repairing buildable
- EV_BUILD_REPAIRED, //TA: buildable has full health
-
EV_OVERMIND_ATTACK, //TA: overmind under attack
EV_OVERMIND_DYING, //TA: overmind close to death
EV_OVERMIND_SPAWNS, //TA: overmind needs spawns
diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c
index 2d4a19c7..84e25106 100644
--- a/src/game/g_buildable.c
+++ b/src/game/g_buildable.c
@@ -407,17 +407,15 @@ void ASpawn_Blast( gentity_t *self )
{
vec3_t dir;
- // we don't have a valid direction, so just point straight up
- dir[ 0 ] = dir[ 1 ] = 0;
- dir[ 2 ] = 1;
+ VectorCopy( self->s.origin2, dir );
//do a bit of radius damage
G_SelectiveRadiusDamage( self->s.pos.trBase, self->parent, self->splashDamage,
self->splashRadius, self, self->splashMethodOfDeath, PTE_ALIENS );
//pretty events and item cleanup
- self->s.eFlags |= EF_NODRAW; //don't draw the model once its destroyed
- G_AddEvent( self, EV_GIB_ALIEN, DirToByte( dir ) );
+ self->s.eFlags |= EF_NODRAW; //don't draw the model once it's destroyed
+ G_AddEvent( self, EV_ALIEN_BUILDABLE_EXPLOSION, DirToByte( dir ) );
self->timestamp = level.time;
self->think = ASpawn_Melt;
self->nextthink = level.time + 500; //wait .5 seconds before damaging others
@@ -623,9 +621,7 @@ void ABarricade_Blast( gentity_t *self )
{
vec3_t dir;
- // we don't have a valid direction, so just point straight up
- dir[ 0 ] = dir[ 1 ] = 0;
- dir[ 2 ] = 1;
+ VectorCopy( self->s.origin2, dir );
//do a bit of radius damage
G_SelectiveRadiusDamage( self->s.pos.trBase, self->parent, self->splashDamage,
@@ -633,7 +629,7 @@ void ABarricade_Blast( gentity_t *self )
//pretty events and item cleanup
self->s.eFlags |= EF_NODRAW; //don't draw the model once its destroyed
- G_AddEvent( self, EV_GIB_ALIEN, DirToByte( dir ) );
+ G_AddEvent( self, EV_ALIEN_BUILDABLE_EXPLOSION, DirToByte( dir ) );
self->timestamp = level.time;
self->think = A_CreepRecede;
self->nextthink = level.time + 500; //wait .5 seconds before damaging others
@@ -704,7 +700,7 @@ void AAcidTube_Damage( gentity_t *self )
if( !( self->s.eFlags & EF_FIRING ) )
{
self->s.eFlags |= EF_FIRING;
- G_AddEvent( self, EV_GIB_ALIEN, DirToByte( self->s.origin2 ) );
+ G_AddEvent( self, EV_ALIEN_ACIDTUBE, DirToByte( self->s.origin2 ) );
}
if( ( self->timestamp + ACIDTUBE_REPEAT ) > level.time )
@@ -987,9 +983,7 @@ void AHovel_Die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int
{
vec3_t dir;
- // we don't have a valid direction, so just point straight up
- dir[ 0 ] = dir[ 1 ] = 0;
- dir[ 2 ] = 1;
+ VectorCopy( self->s.origin2, dir );
//do a bit of radius damage
G_SelectiveRadiusDamage( self->s.pos.trBase, self->parent, self->splashDamage,
@@ -997,7 +991,7 @@ void AHovel_Die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int
//pretty events and item cleanup
self->s.eFlags |= EF_NODRAW; //don't draw the model once its destroyed
- G_AddEvent( self, EV_GIB_ALIEN, DirToByte( dir ) );
+ G_AddEvent( self, EV_ALIEN_BUILDABLE_EXPLOSION, DirToByte( dir ) );
self->timestamp = level.time;
self->think = ASpawn_Melt;
self->nextthink = level.time + 500; //wait .5 seconds before damaging others
@@ -1492,13 +1486,13 @@ qboolean HMGTurret_TrackEnemy( gentity_t *self )
if( self->dcced )
{
- accuracyTolerance = MGTURRET_ACCURACYTOLERANCE;
- angularSpeed = MGTURRET_ANGULARSPEED;
+ accuracyTolerance = MGTURRET_DCC_ACCURACYTOLERANCE;
+ angularSpeed = MGTURRET_DCC_ANGULARSPEED;
}
else
{
- accuracyTolerance = MGTURRET_DCC_ACCURACYTOLERANCE;
- angularSpeed = MGTURRET_DCC_ANGULARSPEED;
+ accuracyTolerance = MGTURRET_ACCURACYTOLERANCE;
+ angularSpeed = MGTURRET_ANGULARSPEED;
}
VectorSubtract( self->enemy->s.pos.trBase, self->s.pos.trBase, dirToTarget );
@@ -1807,7 +1801,7 @@ void HSpawn_Blast( gentity_t *self )
dir[ 2 ] = 1;
self->s.eFlags |= EF_NODRAW; //don't draw the model once its destroyed
- G_AddEvent( self, EV_BUILDABLE_EXPLOSION, DirToByte( dir ) );
+ G_AddEvent( self, EV_HUMAN_BUILDABLE_EXPLOSION, DirToByte( dir ) );
self->timestamp = level.time;
//do some radius damage
diff --git a/src/game/g_client.c b/src/game/g_client.c
index f56267c5..cf66ae1e 100644
--- a/src/game/g_client.c
+++ b/src/game/g_client.c
@@ -1473,7 +1473,10 @@ void ClientSpawn( gentity_t *ent, gentity_t *spawn, vec3_t origin, vec3_t angles
VectorScale( dir, UP_VEL, client->ps.velocity );
}
else
- G_AddPredictableEvent( ent, EV_GIB_ALIEN, DirToByte( up ) );
+ {
+ //evolution particle system
+ G_AddPredictableEvent( ent, EV_ALIEN_EVOLVE, DirToByte( up ) );
+ }
}
// the respawned flag will be cleared after the attack and jump keys come up
diff --git a/src/game/g_combat.c b/src/game/g_combat.c
index 3a04ad44..3d57b5b0 100644
--- a/src/game/g_combat.c
+++ b/src/game/g_combat.c
@@ -72,23 +72,6 @@ void LookAtKiller( gentity_t *self, gentity_t *inflictor, gentity_t *attacker )
/*
==================
-GibEntity
-==================
-*/
-void GibEntity( gentity_t *self, int killer )
-{
- if( self->client->ps.stats[ STAT_PTEAM ] == PTE_HUMANS )
- G_AddEvent( self, EV_GIB_PLAYER, killer );
- else
- G_AddEvent( self, EV_GIB_ALIEN, killer );
-
- self->takedamage = qfalse;
- self->s.eType = ET_INVISIBLE;
- self->r.contents = 0;
-}
-
-/*
-==================
body_die
==================
*/
@@ -102,9 +85,6 @@ void body_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int d
self->health = GIB_HEALTH + 1;
return;
}
-
- //TA: no gibbing
- //GibEntity( self, 0 );
}
diff --git a/src/game/tremulous.h b/src/game/tremulous.h
index 3ee4bbd7..b030e6d5 100644
--- a/src/game/tremulous.h
+++ b/src/game/tremulous.h
@@ -213,7 +213,7 @@
#define ACIDTUBE_SPLASHRADIUS 200
#define ACIDTUBE_CREEPSIZE 120
#define ACIDTUBE_RANGE 200.0f
-#define ACIDTUBE_REPEAT 10000
+#define ACIDTUBE_REPEAT 3000
#define HIVE_BP 50
#define HIVE_HEALTH ABHM(100)