diff options
author | Tim Angus <tim@ngus.net> | 2003-09-30 03:12:47 +0000 |
---|---|---|
committer | Tim Angus <tim@ngus.net> | 2003-09-30 03:12:47 +0000 |
commit | c760ccba1b81e343726f00cf405ae44c58488969 (patch) | |
tree | c36fd71e5f4f87807dfbdec891de2c6e3e0ad7a1 /src/game | |
parent | 7bebc75da4232a1e002102ac59b41868e39ce541 (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.c | 2 | ||||
-rw-r--r-- | src/game/bg_public.h | 14 | ||||
-rw-r--r-- | src/game/g_buildable.c | 32 | ||||
-rw-r--r-- | src/game/g_client.c | 5 | ||||
-rw-r--r-- | src/game/g_combat.c | 20 | ||||
-rw-r--r-- | src/game/tremulous.h | 2 |
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) |