diff options
Diffstat (limited to 'src/game')
-rw-r--r-- | src/game/bg_misc.c | 28 | ||||
-rw-r--r-- | src/game/bg_public.h | 6 | ||||
-rw-r--r-- | src/game/g_buildable.c | 62 | ||||
-rw-r--r-- | src/game/g_cmds.c | 8 | ||||
-rw-r--r-- | src/game/g_local.h | 4 | ||||
-rw-r--r-- | src/game/tremulous.h | 8 |
6 files changed, 61 insertions, 55 deletions
diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c index f5037629..d13bf40b 100644 --- a/src/game/bg_misc.c +++ b/src/game/bg_misc.c @@ -181,10 +181,10 @@ buildableAttributes_t bg_buildableList[ ] = qfalse //qboolean reactorTest; }, { - BA_A_HIVEMIND, //int buildNum; - "hivemind", //char *buildName; + BA_A_OVERMIND, //int buildNum; + "overmind", //char *buildName; "Overmind", //char *humanName; - "team_alien_hivemind", //char *entityName; + "team_alien_overmind", //char *entityName; { "models/buildables/hivemind/hivemind.md3", 0, 0, 0 }, { -45, -45, -15 }, //vec3_t mins; { 45, 45, 95 }, //vec3_t maxs; @@ -205,7 +205,7 @@ buildableAttributes_t bg_buildableList[ ] = 0, //int turretRange; 0, //int turretFireSpeed; WP_NONE, //weapon_t turretProjType; - 0.707f, //float minNormal; + 0.95f, //float minNormal; qfalse, //qboolean invertNormal; qfalse, //qboolean creepTest; OVERMIND_CREEPSIZE, //int creepSize; @@ -269,7 +269,7 @@ buildableAttributes_t bg_buildableList[ ] = 0, //int turretRange; 0, //int turretFireSpeed; WP_NONE, //weapon_t turretProjType; - 0.907f, //float minNormal; + 0.95f, //float minNormal; qfalse, //qboolean invertNormal; qfalse, //qboolean creepTest; 0, //int creepSize; @@ -301,7 +301,7 @@ buildableAttributes_t bg_buildableList[ ] = 0, //int turretRange; 0, //int turretFireSpeed; WP_NONE, //weapon_t turretProjType; - 0.907f, //float minNormal; + 0.95f, //float minNormal; qfalse, //qboolean invertNormal; qfalse, //qboolean creepTest; 0, //int creepSize; @@ -335,7 +335,7 @@ buildableAttributes_t bg_buildableList[ ] = MGTURRET_RANGE, //int turretRange; MGTURRET_REPEAT, //int turretFireSpeed; WP_MACHINEGUN, //weapon_t turretProjType; - 0.907f, //float minNormal; + 0.95f, //float minNormal; qfalse, //qboolean invertNormal; qfalse, //qboolean creepTest; 0, //int creepSize; @@ -367,7 +367,7 @@ buildableAttributes_t bg_buildableList[ ] = TESLAGEN_RANGE, //int turretRange; TESLAGEN_REPEAT, //int turretFireSpeed; WP_TESLAGEN, //weapon_t turretProjType; - 0.907f, //float minNormal; + 0.95f, //float minNormal; qfalse, //qboolean invertNormal; qfalse, //qboolean creepTest; 0, //int creepSize; @@ -399,7 +399,7 @@ buildableAttributes_t bg_buildableList[ ] = 0, //int turretRange; 0, //int turretFireSpeed; WP_NONE, //weapon_t turretProjType; - 0.907f, //float minNormal; + 0.95f, //float minNormal; qfalse, //qboolean invertNormal; qfalse, //qboolean creepTest; 0, //int creepSize; @@ -432,7 +432,7 @@ buildableAttributes_t bg_buildableList[ ] = 0, //int turretRange; 0, //int turretFireSpeed; WP_NONE, //weapon_t turretProjType; - 0.907f, //float minNormal; + 0.95f, //float minNormal; qfalse, //qboolean invertNormal; qfalse, //qboolean creepTest; 0, //int creepSize; @@ -464,7 +464,7 @@ buildableAttributes_t bg_buildableList[ ] = 0, //int turretRange; 0, //int turretFireSpeed; WP_NONE, //weapon_t turretProjType; - 0.907f, //float minNormal; + 0.95f, //float minNormal; qfalse, //qboolean invertNormal; qfalse, //qboolean creepTest; 0, //int creepSize; @@ -496,7 +496,7 @@ buildableAttributes_t bg_buildableList[ ] = 0, //int turretRange; 0, //int turretFireSpeed; WP_NONE, //weapon_t turretProjType; - 0.907f, //float minNormal; + 0.95f, //float minNormal; qfalse, //qboolean invertNormal; qfalse, //qboolean creepTest; 0, //int creepSize; @@ -528,7 +528,7 @@ buildableAttributes_t bg_buildableList[ ] = 0, //int turretRange; 0, //int turretFireSpeed; WP_NONE, //weapon_t turretProjType; - 0.907f, //float minNormal; + 0.95f, //float minNormal; qfalse, //qboolean invertNormal; qfalse, //qboolean creepTest; 0, //int creepSize; @@ -2991,7 +2991,7 @@ upgradeAttributes_t bg_upgrades[ ] = UP_BATTLESUIT, //int upgradeNum; BSUIT_PRICE, //int price; ( 1 << S1 )|( 1 << S2 )|( 1 << S3 ), //int stages - SLOT_HEAD|SLOT_TORSO|SLOT_ARMS|SLOT_LEGS, //int slots; + SLOT_HEAD|SLOT_TORSO|SLOT_ARMS|SLOT_LEGS|SLOT_BACKPACK, //int slots; "bsuit", //char *upgradeName; "Battlesuit", //char *upgradeHumanName; "icons/iconu_bsuit", diff --git a/src/game/bg_public.h b/src/game/bg_public.h index 9ca3d6a1..c914643a 100644 --- a/src/game/bg_public.h +++ b/src/game/bg_public.h @@ -388,7 +388,7 @@ typedef enum BA_NONE, BA_A_SPAWN, - BA_A_HIVEMIND, + BA_A_OVERMIND, BA_A_BARRICADE, BA_A_ACIDTUBE, @@ -544,8 +544,8 @@ typedef enum MN_A_INFEST, MN_A_NOROOM, MN_A_NOCREEP, - MN_A_NOHVMND, - MN_A_HIVEMIND, + MN_A_NOOVMND, + MN_A_OVERMIND, MN_A_NOASSERT, MN_A_SPWNWARN, MN_A_NORMAL, diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c index b27b1064..93514727 100644 --- a/src/game/g_buildable.c +++ b/src/game/g_buildable.c @@ -231,7 +231,7 @@ static qboolean findCreep( gentity_t *self ) if( !ent->classname || ent->s.eType != ET_BUILDABLE ) continue; - if( ent->s.modelindex == BA_A_SPAWN || ent->s.modelindex == BA_A_HIVEMIND ) + if( ent->s.modelindex == BA_A_SPAWN || ent->s.modelindex == BA_A_OVERMIND ) { VectorSubtract( self->s.origin, ent->s.origin, temp_v ); distance = VectorLength( temp_v ); @@ -530,18 +530,21 @@ void AOvermind_Think( gentity_t *self ) VectorAdd( self->s.origin, range, maxs ); VectorSubtract( self->s.origin, range, mins ); - //do some damage - num = trap_EntitiesInBox( mins, maxs, entityList, MAX_GENTITIES ); - for( i = 0; i < num; i++ ) + if( self->health > 0 ) { - enemy = &g_entities[ entityList[ i ] ]; - - if( enemy->client && enemy->client->ps.stats[ STAT_PTEAM ] == PTE_HUMANS ) + //do some damage + num = trap_EntitiesInBox( mins, maxs, entityList, MAX_GENTITIES ); + for( i = 0; i < num; i++ ) { - self->timestamp = level.time; - G_SelectiveRadiusDamage( self->s.pos.trBase, self, self->splashDamage, - self->splashRadius, self, MOD_SHOTGUN, PTE_ALIENS ); - G_setBuildableAnim( self, BANIM_ATTACK1, qfalse ); + enemy = &g_entities[ entityList[ i ] ]; + + if( enemy->client && enemy->client->ps.stats[ STAT_PTEAM ] == PTE_HUMANS ) + { + self->timestamp = level.time; + G_SelectiveRadiusDamage( self->s.pos.trBase, self, self->splashDamage, + self->splashRadius, self, MOD_SHOTGUN, PTE_ALIENS ); + G_setBuildableAnim( self, BANIM_ATTACK1, qfalse ); + } } } @@ -1759,6 +1762,8 @@ itemBuildError_t G_itemFits( gentity_t *ent, buildable_t buildable, int distance gentity_t *tempent, *closestPower; int minDistance = 10000; int templength; + float minNormal; + qboolean invert; if( ent->client->ps.stats[ STAT_STATE ] & SS_WALLCLIMBING ) { @@ -1801,17 +1806,18 @@ itemBuildError_t G_itemFits( gentity_t *ent, buildable_t buildable, int distance if( tr2.fraction < 1.0 || tr3.fraction < 1.0 ) return IBE_NOROOM; //NO other reason is allowed to override this + VectorCopy( tr1.plane.normal, normal ); + minNormal = BG_FindMinNormalForBuildable( buildable ); + invert = BG_FindInvertNormalForBuildable( buildable ); + + //can we build at this angle? + if( !( normal[ 2 ] >= minNormal || ( invert && normal[ 2 ] <= -minNormal ) ) ) + return IBE_NORMAL; + if( ent->client->ps.stats[ STAT_PTEAM ] == PTE_ALIENS ) { //alien criteria - float minNormal = BG_FindMinNormalForBuildable( buildable ); - qboolean invert = BG_FindInvertNormalForBuildable( buildable ); - - //can we build at this angle? - if( !( normal[ 2 ] >= minNormal || ( invert && normal[ 2 ] <= -minNormal ) ) ) - return IBE_NORMAL; - //check there is creep near by for building on if( BG_FindCreepTestForBuildable( buildable ) ) @@ -1825,17 +1831,17 @@ itemBuildError_t G_itemFits( gentity_t *ent, buildable_t buildable, int distance { if( !tempent->classname || tempent->s.eType != ET_BUILDABLE ) continue; - if( tempent->s.modelindex == BA_A_HIVEMIND ) + if( tempent->s.modelindex == BA_A_OVERMIND ) break; } //if none found... - if( i >= level.num_entities && buildable != BA_A_HIVEMIND ) + if( i >= level.num_entities && buildable != BA_A_OVERMIND ) { if( buildable == BA_A_SPAWN ) reason = IBE_SPWNWARN; else - reason = IBE_NOHIVEMIND; + reason = IBE_NOOVERMIND; } //can we only have one of these? @@ -1846,9 +1852,9 @@ itemBuildError_t G_itemFits( gentity_t *ent, buildable_t buildable, int distance if( !tempent->classname || tempent->s.eType != ET_BUILDABLE ) continue; - if( tempent->s.modelindex == BA_A_HIVEMIND ) + if( tempent->s.modelindex == BA_A_OVERMIND ) { - reason = IBE_HIVEMIND; + reason = IBE_OVERMIND; break; } } @@ -1982,7 +1988,7 @@ gentity_t *G_buildItem( gentity_t *builder, buildable_t buildable, vec3_t origin built->pain = ASpawn_Pain; break; - case BA_A_HIVEMIND: + case BA_A_OVERMIND: built->die = ASpawn_Die; built->think = AOvermind_Think; built->pain = ASpawn_Pain; @@ -2129,12 +2135,12 @@ qboolean G_ValidateBuild( gentity_t *ent, buildable_t buildable ) G_TriggerMenu( ent->client->ps.clientNum, MN_A_NOASSERT ); return qfalse; - case IBE_NOHIVEMIND: - G_TriggerMenu( ent->client->ps.clientNum, MN_A_NOHVMND ); + case IBE_NOOVERMIND: + G_TriggerMenu( ent->client->ps.clientNum, MN_A_NOOVMND ); return qfalse; - case IBE_HIVEMIND: - G_TriggerMenu( ent->client->ps.clientNum, MN_A_HIVEMIND ); + case IBE_OVERMIND: + G_TriggerMenu( ent->client->ps.clientNum, MN_A_OVERMIND ); return qfalse; case IBE_NORMAL: diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c index 8ac5bf79..009caf81 100644 --- a/src/game/g_cmds.c +++ b/src/game/g_cmds.c @@ -1728,12 +1728,12 @@ void Cmd_Build_f( gentity_t *ent ) G_TriggerMenu( ent->client->ps.clientNum, MN_A_NOASSERT ); break; - case IBE_NOHIVEMIND: - G_TriggerMenu( ent->client->ps.clientNum, MN_A_NOHVMND ); + case IBE_NOOVERMIND: + G_TriggerMenu( ent->client->ps.clientNum, MN_A_NOOVMND ); break; - case IBE_HIVEMIND: - G_TriggerMenu( ent->client->ps.clientNum, MN_A_HIVEMIND ); + case IBE_OVERMIND: + G_TriggerMenu( ent->client->ps.clientNum, MN_A_OVERMIND ); break; case IBE_REACTOR: diff --git a/src/game/g_local.h b/src/game/g_local.h index 966fad93..5eb10512 100644 --- a/src/game/g_local.h +++ b/src/game/g_local.h @@ -534,8 +534,8 @@ typedef enum IBE_NONE, IBE_NOROOM, - IBE_NOHIVEMIND, - IBE_HIVEMIND, + IBE_NOOVERMIND, + IBE_OVERMIND, IBE_NOASSERT, IBE_SPWNWARN, IBE_REACTOR, diff --git a/src/game/tremulous.h b/src/game/tremulous.h index d3561a6e..016600ac 100644 --- a/src/game/tremulous.h +++ b/src/game/tremulous.h @@ -313,9 +313,9 @@ #define PRIFLE_SPAWNCLIPS 3 #define PRIFLE_MAXCLIPS 3 #define PRIFLE_PRICE 250 -#define PRIFLE_REPEAT 50 +#define PRIFLE_REPEAT 100 #define PRIFLE_RELOAD 2000 -#define PRIFLE_DMG HDM(20) +#define PRIFLE_DMG HDM(15) #define PRIFLE_SPEED 1500 #define LCANNON_PRICE 400 @@ -364,8 +364,8 @@ #define BATTPACK_MODIFIER 2.0f //modifier for extra energy storage available #define JETPACK_PRICE 120 -#define JETPACK_FLOAT_SPEED 256.0f //up movement speed -#define JETPACK_SINK_SPEED 384.0f //down movement speed +#define JETPACK_FLOAT_SPEED 128.0f //up movement speed +#define JETPACK_SINK_SPEED 192.0f //down movement speed #define BSUIT_PRICE 200 |