summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/game')
-rw-r--r--src/game/bg_misc.c28
-rw-r--r--src/game/bg_public.h1
-rw-r--r--src/game/g_buildable.c6
-rw-r--r--src/game/g_client.c4
-rw-r--r--src/game/g_cmds.c20
-rw-r--r--src/game/g_combat.c2
-rw-r--r--src/game/g_maprotation.c2
-rw-r--r--src/game/g_weapon.c2
-rw-r--r--src/game/tremulous.h18
9 files changed, 52 insertions, 31 deletions
diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c
index 3eb2ca01..b793a38b 100644
--- a/src/game/bg_misc.c
+++ b/src/game/bg_misc.c
@@ -4117,6 +4117,7 @@ char *eventnames[ ] =
"EV_FALL_SHORT",
"EV_FALL_MEDIUM",
"EV_FALL_FAR",
+ "EV_FALLING",
"EV_JUMP_PAD", // boing sound at origin", jump sound on player
@@ -4144,14 +4145,12 @@ char *eventnames[ ] =
"EV_BULLET_HIT_FLESH",
"EV_BULLET_HIT_WALL",
- "EV_LAS_HIT_FLESH",
- "EV_LAS_HIT_WALL",
- "EV_MASS_DRIVER_HIT",
+
+ "EV_SHOTGUN",
"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
@@ -4163,20 +4162,29 @@ char *eventnames[ ] =
"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_ANIM", //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_HUMAN_BUILDABLE_DAMAGE",
+ "EV_ALIEN_BUILDABLE_DAMAGE",
+
+ "EV_ALIEN_EVOLVE",
"EV_DEBUG_LINE",
"EV_STOPLOOPINGSOUND",
"EV_TAUNT",
- "EV_BUILD_DELAY", //TA: can't build yet
- "EV_POISONCLOUD", //TA: client poisoned
- "EV_KNOCKOVER", //TA: client knocked over
- "EV_GETUP" //TA: client getting up
+ "EV_OVERMIND_ATTACK", //TA: overmind under attack
+ "EV_OVERMIND_DYING", //TA: overmind close to death
+ "EV_OVERMIND_SPAWNS", //TA: overmind needs spawns
+
+ "EV_RPTUSE_SOUND" //TA: trigger a sound
};
/*
diff --git a/src/game/bg_public.h b/src/game/bg_public.h
index 95892add..07a2862b 100644
--- a/src/game/bg_public.h
+++ b/src/game/bg_public.h
@@ -557,7 +557,6 @@ typedef enum
EV_OVERMIND_DYING, //TA: overmind close to death
EV_OVERMIND_SPAWNS, //TA: overmind needs spawns
- EV_POISONCLOUD, //TA: client poisoned
EV_RPTUSE_SOUND //TA: trigger a sound
} entity_event_t;
diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c
index 4eadaf12..b3af71e4 100644
--- a/src/game/g_buildable.c
+++ b/src/game/g_buildable.c
@@ -754,6 +754,9 @@ void AAcidTube_Think( gentity_t *self )
{
enemy = &g_entities[ entityList[ i ] ];
+ if( !G_Visible( self, enemy ) )
+ continue;
+
if( enemy->client && enemy->client->ps.stats[ STAT_PTEAM ] == PTE_HUMANS )
{
self->timestamp = level.time;
@@ -820,6 +823,9 @@ void AHive_Think( gentity_t *self )
if( enemy->health <= 0 )
continue;
+ if( !G_Visible( self, enemy ) )
+ continue;
+
if( enemy->client && enemy->client->ps.stats[ STAT_PTEAM ] == PTE_HUMANS )
{
self->active = qtrue;
diff --git a/src/game/g_client.c b/src/game/g_client.c
index cf66ae1e..688b730e 100644
--- a/src/game/g_client.c
+++ b/src/game/g_client.c
@@ -314,7 +314,7 @@ gentity_t *SelectAlienSpawnPoint( void )
continue;
//spawn is blocked
- if( tr.fraction < 1.0f )
+ if( tr.fraction < 1.0f || tr.startsolid )
continue;
spots[ count ] = spot;
@@ -377,7 +377,7 @@ gentity_t *SelectHumanSpawnPoint( void )
continue;
//spawn is blocked
- if( tr.fraction < 1.0f )
+ if( tr.fraction < 1.0f || tr.startsolid )
continue;
spots[ count ] = spot;
diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c
index 3662a8ab..684b2526 100644
--- a/src/game/g_cmds.c
+++ b/src/game/g_cmds.c
@@ -1381,13 +1381,19 @@ void Cmd_Buy_f( gentity_t *ent )
return;
}
- weaponAmmo = ent->client->ps.weapon;
-
- if( upgrade == UP_AMMO && !BG_FindUsesEnergyForWeapon( weaponAmmo ) )
+ if( upgrade == UP_AMMO )
{
- BG_FindAmmoForWeapon( weaponAmmo, &quan, &clips, &maxClips );
- BG_packAmmoArray( weaponAmmo, ent->client->ps.ammo, ent->client->ps.powerups,
- quan, clips, maxClips );
+ for( i = WP_NONE; i < WP_NUM_WEAPONS; i++ )
+ {
+ if( BG_gotWeapon( i, ent->client->ps.stats ) &&
+ !BG_FindUsesEnergyForWeapon( i ) &&
+ !BG_FindInfinteAmmoForWeapon( i ) )
+ {
+ BG_FindAmmoForWeapon( i, &quan, &clips, &maxClips );
+ BG_packAmmoArray( i, ent->client->ps.ammo, ent->client->ps.powerups,
+ quan, clips, maxClips );
+ }
+ }
}
else
{
@@ -1631,7 +1637,7 @@ void Cmd_Test_f( gentity_t *ent )
ent->client->ps.stats[ STAT_STATE ] |= SS_POISONCLOUDED;
ent->client->lastPoisonCloudedTime = level.time;
ent->client->lastPoisonCloudedClient = ent;
- G_AddPredictableEvent( ent, EV_POISONCLOUD, 0 );
+ trap_SendServerCommand( ent->client->ps.clientNum, "poisoncloud" );
}
/*
diff --git a/src/game/g_combat.c b/src/game/g_combat.c
index e95722c2..847b0606 100644
--- a/src/game/g_combat.c
+++ b/src/game/g_combat.c
@@ -120,6 +120,7 @@ char *modNames[ ] =
"MOD_HYDRA_PCLOUD",
"MOD_DRAGOON_CLAW",
"MOD_DRAGOON_POUNCE",
+ "MOD_DRAGOON_BOUNCEBALL",
"MOD_CHIMERA_CLAW",
"MOD_CHIMERA_ZAP",
"MOD_BMOFO_CLAW",
@@ -127,6 +128,7 @@ char *modNames[ ] =
"MOD_SLOWBLOB",
"MOD_POISON",
+ "MOD_SWARM",
"MOD_HSPAWN",
"MOD_TESLAGEN",
diff --git a/src/game/g_maprotation.c b/src/game/g_maprotation.c
index 38bbc325..b5f55522 100644
--- a/src/game/g_maprotation.c
+++ b/src/game/g_maprotation.c
@@ -466,7 +466,7 @@ static void G_IssueMapChange( int rotation )
int map = G_GetCurrentMap( rotation );
char cmd[ MAX_TOKEN_CHARS ];
- trap_SendConsoleCommand( EXEC_APPEND, va( "devmap %s\n",
+ trap_SendConsoleCommand( EXEC_APPEND, va( "map %s\n",
mapRotations.rotations[ rotation ].maps[ map ].name ) );
for( i = 0; i < mapRotations.rotations[ rotation ].maps[ map ].numCmds; i++ )
diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c
index 56a5a611..b5094a50 100644
--- a/src/game/g_weapon.c
+++ b/src/game/g_weapon.c
@@ -772,7 +772,7 @@ void poisonCloud( gentity_t *ent )
humanPlayer->client->ps.stats[ STAT_STATE ] |= SS_POISONCLOUDED;
humanPlayer->client->lastPoisonCloudedTime = level.time;
humanPlayer->client->lastPoisonCloudedClient = ent;
- G_AddPredictableEvent( humanPlayer, EV_POISONCLOUD, 0 );
+ trap_SendServerCommand( humanPlayer->client->ps.clientNum, "poisoncloud" );
}
}
}
diff --git a/src/game/tremulous.h b/src/game/tremulous.h
index ffcb9205..27d9f01b 100644
--- a/src/game/tremulous.h
+++ b/src/game/tremulous.h
@@ -37,7 +37,7 @@
#define ABUILDER_BLOB_SPEED_MOD 0.5f
#define ABUILDER_BLOB_TIME 5000
-#define SOLDIER_BITE_DMG ADM(34)
+#define SOLDIER_BITE_DMG ADM(50)
#define SOLDIER_BITE_RANGE 32.0f
#define SOLDIER_BITE_REPEAT 500
@@ -126,32 +126,32 @@
#define HYDRA_UPG_SPEED 1.25f
#define HYDRA_UPG_VALUE AVM(120)
#define HYDRA_UPG_HEALTH AHM(50)
-#define HYDRA_UPG_REGEN 3
+#define HYDRA_UPG_REGEN 2
#define CHIMERA_SPEED 1.2f
#define CHIMERA_VALUE AVM(200)
#define CHIMERA_HEALTH AHM(100)
-#define CHIMERA_REGEN 4
+#define CHIMERA_REGEN 3
#define CHIMERA_UPG_SPEED 1.2f
#define CHIMERA_UPG_VALUE AVM(340)
#define CHIMERA_UPG_HEALTH AHM(120)
-#define CHIMERA_UPG_REGEN 5
+#define CHIMERA_UPG_REGEN 4
#define DRAGOON_SPEED 1.2f
#define DRAGOON_VALUE AVM(300)
#define DRAGOON_HEALTH AHM(200)
-#define DRAGOON_REGEN 6
+#define DRAGOON_REGEN 5
#define DRAGOON_UPG_SPEED 1.2f
#define DRAGOON_UPG_VALUE AVM(360)
#define DRAGOON_UPG_HEALTH AHM(250)
-#define DRAGOON_UPG_REGEN 7
+#define DRAGOON_UPG_REGEN 6
#define BMOFO_SPEED 1.1f
#define BMOFO_VALUE AVM(400)
#define BMOFO_HEALTH AHM(400)
-#define BMOFO_REGEN 9
+#define BMOFO_REGEN 7
@@ -309,7 +309,7 @@
#define FLAMER_GAS 80
#define FLAMER_REPEAT 300
-#define FLAMER_PRICE 300
+#define FLAMER_PRICE 350
#define FLAMER_DMG HDM(30)
#define FLAMER_RADIUS 50
#define FLAMER_LIFETIME 1000.0f
@@ -368,7 +368,7 @@
* HUMAN upgrades
*/
-#define LIGHTARMOUR_PRICE 100
+#define LIGHTARMOUR_PRICE 70
#define HELMET_PRICE 90
#define HELMET_RANGE 1000.0f