summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTim Angus <tim@ngus.net>2003-10-04 21:57:37 +0000
committerTim Angus <tim@ngus.net>2003-10-04 21:57:37 +0000
commit974e34b048c30a0592f26575e0d33252fc32c9bd (patch)
treef9b24686ff2f1f5c64203f212614f6ec0daab95e /src
parent924324982295c028f96f95b01e8463112b54da3b (diff)
* Switched Dragoon and Chimera in preparation for wall jumping
* Removed SCA_CANJUMP and replaced with BG_FindJumpMagnitudeForClass * Fixed bug where holding crouch on a non-crouching class distorted speed
Diffstat (limited to 'src')
-rw-r--r--src/game/bg_local.h2
-rw-r--r--src/game/bg_misc.c224
-rw-r--r--src/game/bg_pmove.c19
-rw-r--r--src/game/bg_public.h15
-rw-r--r--src/game/tremulous.h74
5 files changed, 165 insertions, 169 deletions
diff --git a/src/game/bg_local.h b/src/game/bg_local.h
index 778bebba..603d57a7 100644
--- a/src/game/bg_local.h
+++ b/src/game/bg_local.h
@@ -19,8 +19,6 @@
#define STEPSIZE 18
-#define JUMP_VELOCITY 270
-
#define TIMER_LAND 130
#define TIMER_GESTURE (34*66+50)
#define TIMER_ATTACK 500 //nonsegmented models
diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c
index 485bc7ce..043e28bf 100644
--- a/src/game/bg_misc.c
+++ b/src/game/bg_misc.c
@@ -1215,8 +1215,8 @@ classAttributes_t bg_classList[ ] =
10.0f, //float acceleration;
6.0f, //float friction;
100.0f, //float stopSpeed;
+ 130.0f, //float jumpMagnitude;
{ PCL_A_B_LEV1, PCL_NONE, PCL_NONE }, //int children[ 3 ];
- ABUILDER_TTE, //int timetoevolve;
ABUILDER_VALUE //int value;
},
{
@@ -1237,7 +1237,7 @@ classAttributes_t bg_classList[ ] =
ABUILDER_UPG_HEALTH, //int health;
0.0f, //float fallDamage;
ABUILDER_UPG_REGEN, //int regenRate;
- SCA_CANJUMP|SCA_FOVWARPS|SCA_WALLCLIMBER|
+ SCA_FOVWARPS|SCA_WALLCLIMBER|
SCA_NOFOOTSTEPS, //int abilities;
WP_ABUILD2, //weapon_t startWeapon
95.0f, //float buildDist;
@@ -1249,8 +1249,8 @@ classAttributes_t bg_classList[ ] =
10.0f, //float acceleration;
6.0f, //float friction;
100.0f, //float stopSpeed;
+ 270.0f, //float jumpMagnitude;
{ PCL_NONE, PCL_NONE, PCL_NONE }, //int children[ 3 ];
- 0, //int timetoevolve;
ABUILDER_UPG_VALUE //int value;
},
{
@@ -1271,7 +1271,7 @@ classAttributes_t bg_classList[ ] =
SOLDIER_HEALTH, //int health;
0.0f, //float fallDamage;
SOLDIER_REGEN, //int regenRate;
- SCA_WALLCLIMBER|SCA_CANJUMP|SCA_NOWEAPONDRIFT|
+ SCA_WALLCLIMBER|SCA_NOWEAPONDRIFT|
SCA_FOVWARPS|SCA_ALIENSENSE|SCA_NOFOOTSTEPS, //int abilities;
WP_VENOM, //weapon_t startWeapon
0.0f, //float buildDist;
@@ -1283,8 +1283,8 @@ classAttributes_t bg_classList[ ] =
10.0f, //float acceleration;
6.0f, //float friction;
400.0f, //float stopSpeed;
+ 270.0f, //float jumpMagnitude;
{ PCL_A_O_LEV1, PCL_NONE, PCL_NONE }, //int children[ 3 ];
- SOLDIER_TTE, //int timetoevolve;
SOLDIER_VALUE //int value;
},
{
@@ -1305,7 +1305,7 @@ classAttributes_t bg_classList[ ] =
HYDRA_HEALTH, //int health;
0.0f, //float fallDamage;
HYDRA_REGEN, //int regenRate;
- SCA_CANJUMP|SCA_NOWEAPONDRIFT|
+ SCA_NOWEAPONDRIFT|
SCA_FOVWARPS|SCA_WALLCLIMBER|SCA_ALIENSENSE|
SCA_NOFOOTSTEPS, //int abilities;
WP_GRAB_CLAW, //weapon_t startWeapon
@@ -1318,8 +1318,8 @@ classAttributes_t bg_classList[ ] =
10.0f, //float acceleration;
6.0f, //float friction;
300.0f, //float stopSpeed;
+ 270.0f, //float jumpMagnitude;
{ PCL_A_O_LEV2, PCL_A_O_LEV1_UPG, PCL_NONE }, //int children[ 3 ];
- HYDRA_TTE, //int timetoevolve;
HYDRA_VALUE //int value;
},
{
@@ -1340,7 +1340,7 @@ classAttributes_t bg_classList[ ] =
HYDRA_UPG_HEALTH, //int health;
0.0f, //float fallDamage;
HYDRA_UPG_REGEN, //int regenRate;
- SCA_CANJUMP|SCA_NOWEAPONDRIFT|SCA_FOVWARPS|
+ SCA_NOWEAPONDRIFT|SCA_FOVWARPS|
SCA_WALLCLIMBER|SCA_ALIENSENSE|
SCA_NOFOOTSTEPS, //int abilities;
WP_GRAB_CLAW_UPG, //weapon_t startWeapon
@@ -1353,80 +1353,12 @@ classAttributes_t bg_classList[ ] =
10.0f, //float acceleration;
6.0f, //float friction;
300.0f, //float stopSpeed;
+ 270.0f, //float jumpMagnitude;
{ PCL_A_O_LEV2, PCL_NONE, PCL_NONE }, //int children[ 3 ];
- HYDRA_UPG_TTE, //int timetoevolve;
HYDRA_UPG_VALUE //int value;
},
{
PCL_A_O_LEV2, //int classnum;
- "dragoon", //char *classname;
- "Dragoon", //char *humanname;
- "prowl", //char *modelname;
- 1.0f, //float modelScale;
- "default", //char *skinname;
- "alien_general_hud", //char *hudname;
- ( 1 << S1 )|( 1 << S2 )|( 1 << S3 ), //int stages
- { -32, -32, -21 }, //vec3_t mins;
- { 32, 32, 21 }, //vec3_t maxs;
- { 32, 32, 21 }, //vec3_t crouchmaxs;
- { -32, -32, -4 }, //vec3_t deadmins;
- { 32, 32, 4 }, //vec3_t deadmaxs;
- 24, 24, //int viewheight, crouchviewheight;
- DRAGOON_HEALTH, //int health;
- 0.0f, //float fallDamage;
- DRAGOON_REGEN, //int regenRate;
- SCA_CANJUMP|SCA_NOWEAPONDRIFT|
- SCA_FOVWARPS|SCA_ALIENSENSE|SCA_NOFOOTSTEPS, //int abilities;
- WP_POUNCE, //weapon_t startWeapon
- 0.0f, //float buildDist;
- 110, //int fov;
- 0.0005f, //float bob;
- 1.0f, //float bobCycle;
- 25, //int steptime;
- DRAGOON_SPEED, //float speed;
- 10.0f, //float acceleration;
- 6.0f, //float friction;
- 200.0f, //float stopSpeed;
- { PCL_A_O_LEV3, PCL_A_O_LEV2_UPG, PCL_NONE }, //int children[ 3 ];
- DRAGOON_TTE, //int timetoevolve;
- DRAGOON_VALUE //int value;
- },
- {
- PCL_A_O_LEV2_UPG, //int classnum;
- "dragoonupg", //char *classname;
- "Dragoon Upgrade", //char *humanname;
- "prowl", //char *modelname;
- 1.0f, //float modelScale;
- "default", //char *skinname;
- "alien_general_hud", //char *hudname;
- ( 1 << S1 )|( 1 << S2 )|( 1 << S3 ), //int stages
- { -32, -32, -21 }, //vec3_t mins;
- { 32, 32, 21 }, //vec3_t maxs;
- { 32, 32, 21 }, //vec3_t crouchmaxs;
- { -32, -32, -4 }, //vec3_t deadmins;
- { 32, 32, 4 }, //vec3_t deadmaxs;
- 27, 27, //int viewheight, crouchviewheight;
- DRAGOON_UPG_HEALTH, //int health;
- 0.0f, //float fallDamage;
- DRAGOON_UPG_REGEN, //int regenRate;
- SCA_CANJUMP|SCA_NOWEAPONDRIFT|
- SCA_FOVWARPS|SCA_ALIENSENSE|SCA_NOFOOTSTEPS, //int abilities;
- WP_POUNCE_UPG, //weapon_t startWeapon
- 0.0f, //float buildDist;
- 110, //int fov;
- 0.0005f, //float bob;
- 1.0f, //float bobCycle;
- 25, //int steptime;
- DRAGOON_UPG_SPEED, //float speed;
- 10.0f, //float acceleration;
- 6.0f, //float friction;
- 200.0f, //float stopSpeed;
- { PCL_A_O_LEV3, PCL_NONE, PCL_NONE }, //int children[ 3 ];
- DRAGOON_UPG_TTE, //int timetoevolve;
- DRAGOON_UPG_VALUE //int value;
- },
- {
- PCL_A_O_LEV3, //int classnum;
"chimera", //char *classname;
"Chimera", //char *humanname;
"tarantula", //char *modelname;
@@ -1443,7 +1375,7 @@ classAttributes_t bg_classList[ ] =
CHIMERA_HEALTH, //int health;
0.0f, //float fallDamage;
CHIMERA_REGEN, //int regenRate;
- SCA_CANJUMP|SCA_NOWEAPONDRIFT|
+ SCA_NOWEAPONDRIFT|SCA_WALLJUMPER|
SCA_FOVWARPS|SCA_ALIENSENSE|SCA_NOFOOTSTEPS, //int abilities;
WP_AREA_ZAP, //weapon_t startWeapon
0.0f, //float buildDist;
@@ -1455,12 +1387,12 @@ classAttributes_t bg_classList[ ] =
10.0f, //float acceleration;
6.0f, //float friction;
100.0f, //float stopSpeed;
- { PCL_A_O_LEV4, PCL_A_O_LEV3_UPG, PCL_NONE }, //int children[ 3 ];
- CHIMERA_TTE, //int timetoevolve;
+ 270.0f, //float jumpMagnitude;
+ { PCL_A_O_LEV3, PCL_A_O_LEV2_UPG, PCL_NONE }, //int children[ 3 ];
CHIMERA_VALUE //int value;
},
{
- PCL_A_O_LEV3_UPG, //int classnum;
+ PCL_A_O_LEV2_UPG, //int classnum;
"chimeraupg", //char *classname;
"Chimera Upgrade", //char *humanname;
"tarantula", //char *modelname;
@@ -1477,7 +1409,7 @@ classAttributes_t bg_classList[ ] =
CHIMERA_UPG_HEALTH, //int health;
0.0f, //float fallDamage;
CHIMERA_UPG_REGEN, //int regenRate;
- SCA_CANJUMP|SCA_NOWEAPONDRIFT|
+ SCA_NOWEAPONDRIFT|SCA_WALLJUMPER|
SCA_FOVWARPS|SCA_ALIENSENSE|SCA_NOFOOTSTEPS, //int abilities;
WP_DIRECT_ZAP, //weapon_t startWeapon
0.0f, //float buildDist;
@@ -1489,11 +1421,79 @@ classAttributes_t bg_classList[ ] =
10.0f, //float acceleration;
6.0f, //float friction;
100.0f, //float stopSpeed;
- { PCL_A_O_LEV4, PCL_NONE, PCL_NONE }, //int children[ 3 ];
- CHIMERA_UPG_TTE, //int timetoevolve;
+ 270.0f, //float jumpMagnitude;
+ { PCL_A_O_LEV3, PCL_NONE, PCL_NONE }, //int children[ 3 ];
CHIMERA_UPG_VALUE //int value;
},
{
+ PCL_A_O_LEV3, //int classnum;
+ "dragoon", //char *classname;
+ "Dragoon", //char *humanname;
+ "prowl", //char *modelname;
+ 1.0f, //float modelScale;
+ "default", //char *skinname;
+ "alien_general_hud", //char *hudname;
+ ( 1 << S1 )|( 1 << S2 )|( 1 << S3 ), //int stages
+ { -32, -32, -21 }, //vec3_t mins;
+ { 32, 32, 21 }, //vec3_t maxs;
+ { 32, 32, 21 }, //vec3_t crouchmaxs;
+ { -32, -32, -4 }, //vec3_t deadmins;
+ { 32, 32, 4 }, //vec3_t deadmaxs;
+ 24, 24, //int viewheight, crouchviewheight;
+ DRAGOON_HEALTH, //int health;
+ 0.0f, //float fallDamage;
+ DRAGOON_REGEN, //int regenRate;
+ SCA_NOWEAPONDRIFT|
+ SCA_FOVWARPS|SCA_ALIENSENSE|SCA_NOFOOTSTEPS, //int abilities;
+ WP_POUNCE, //weapon_t startWeapon
+ 0.0f, //float buildDist;
+ 110, //int fov;
+ 0.0005f, //float bob;
+ 1.0f, //float bobCycle;
+ 25, //int steptime;
+ DRAGOON_SPEED, //float speed;
+ 10.0f, //float acceleration;
+ 6.0f, //float friction;
+ 200.0f, //float stopSpeed;
+ 270.0f, //float jumpMagnitude;
+ { PCL_A_O_LEV4, PCL_A_O_LEV3_UPG, PCL_NONE }, //int children[ 3 ];
+ DRAGOON_VALUE //int value;
+ },
+ {
+ PCL_A_O_LEV3_UPG, //int classnum;
+ "dragoonupg", //char *classname;
+ "Dragoon Upgrade", //char *humanname;
+ "prowl", //char *modelname;
+ 1.0f, //float modelScale;
+ "default", //char *skinname;
+ "alien_general_hud", //char *hudname;
+ ( 1 << S1 )|( 1 << S2 )|( 1 << S3 ), //int stages
+ { -32, -32, -21 }, //vec3_t mins;
+ { 32, 32, 21 }, //vec3_t maxs;
+ { 32, 32, 21 }, //vec3_t crouchmaxs;
+ { -32, -32, -4 }, //vec3_t deadmins;
+ { 32, 32, 4 }, //vec3_t deadmaxs;
+ 27, 27, //int viewheight, crouchviewheight;
+ DRAGOON_UPG_HEALTH, //int health;
+ 0.0f, //float fallDamage;
+ DRAGOON_UPG_REGEN, //int regenRate;
+ SCA_NOWEAPONDRIFT|
+ SCA_FOVWARPS|SCA_ALIENSENSE|SCA_NOFOOTSTEPS, //int abilities;
+ WP_POUNCE_UPG, //weapon_t startWeapon
+ 0.0f, //float buildDist;
+ 110, //int fov;
+ 0.0005f, //float bob;
+ 1.0f, //float bobCycle;
+ 25, //int steptime;
+ DRAGOON_UPG_SPEED, //float speed;
+ 10.0f, //float acceleration;
+ 6.0f, //float friction;
+ 200.0f, //float stopSpeed;
+ 270.0f, //float jumpMagnitude;
+ { PCL_A_O_LEV4, PCL_NONE, PCL_NONE }, //int children[ 3 ];
+ DRAGOON_UPG_VALUE //int value;
+ },
+ {
PCL_A_O_LEV4, //int classnum;
"bigmofo", //char *classname;
"Big Mofo", //char *humanname;
@@ -1511,7 +1511,7 @@ classAttributes_t bg_classList[ ] =
BMOFO_HEALTH, //int health;
0.0f, //float fallDamage;
BMOFO_REGEN, //int regenRate;
- SCA_CANJUMP|SCA_NOWEAPONDRIFT|
+ SCA_NOWEAPONDRIFT|
SCA_FOVWARPS|SCA_ALIENSENSE|SCA_NOFOOTSTEPS, //int abilities;
WP_CHARGE, //weapon_t startWeapon
0.0f, //float buildDist;
@@ -1523,6 +1523,7 @@ classAttributes_t bg_classList[ ] =
5.0f, //float acceleration;
6.0f, //float friction;
100.0f, //float stopSpeed;
+ 270.0f, //float jumpMagnitude;
{ PCL_NONE, PCL_NONE, PCL_NONE }, //int children[ 3 ];
0, //int timetoevolve;
BMOFO_VALUE //int value;
@@ -1545,7 +1546,7 @@ classAttributes_t bg_classList[ ] =
100, //int health;
1.0f, //float fallDamage;
0, //int regenRate;
- SCA_TAKESFALLDAMAGE|SCA_CANJUMP|
+ SCA_TAKESFALLDAMAGE|
SCA_CANUSELADDERS, //int abilities;
WP_NONE, //special-cased in g_client.c //weapon_t startWeapon
110.0f, //float buildDist;
@@ -1557,6 +1558,7 @@ classAttributes_t bg_classList[ ] =
10.0f, //float acceleration;
6.0f, //float friction;
100.0f, //float stopSpeed;
+ 270.0f, //float jumpMagnitude;
{ PCL_NONE, PCL_NONE, PCL_NONE }, //int children[ 3 ];
0, //int timetoevolve;
0 //int value;
@@ -1572,7 +1574,7 @@ classAttributes_t bg_classList[ ] =
"bsuit", ( 1 << S1 )|( 1 << S2 )|( 1 << S3 ), { 0, 0, 0 }, { 0, 0, 0, },
{ 0, 0, 0, }, { 0, 0, 0, }, { 0, 0, 0, }, 0, 0, 0, 0.0f, 0, 0, WP_NONE, 0.0f, 0,
- 0.0f, 1.0f, 0, 1.0f, 1.0f, 1.0f, 1.0f, { PCL_NONE, PCL_NONE, PCL_NONE }, 0, 0
+ 0.0f, 1.0f, 0, 1.0f, 1.0f, 1.0f, 1.0f, 270.0f, { PCL_NONE, PCL_NONE, PCL_NONE }, 0, 0
}
};
@@ -2032,6 +2034,27 @@ float BG_FindStopSpeedForClass( int pclass )
/*
==============
+BG_FindJumpMagnitudeForClass
+==============
+*/
+float BG_FindJumpMagnitudeForClass( int pclass )
+{
+ int i;
+
+ for( i = 0; i < bg_numPclasses; i++ )
+ {
+ if( bg_classList[ i ].classNum == pclass )
+ {
+ return bg_classList[ i ].jumpMagnitude;
+ }
+ }
+
+ Com_Printf( S_COLOR_YELLOW "WARNING: fallthrough in BG_FindJumpMagnitudeForClass\n" );
+ return 270.0f;
+}
+
+/*
+==============
BG_FindSteptimeForClass
==============
*/
@@ -2068,11 +2091,7 @@ qboolean BG_ClassHasAbility( int pclass, int ability )
}
}
- //hack to get CANJUMP when a spectator
- if( ability == SCA_CANJUMP )
- return qtrue;
- else
- return qfalse;
+ return qfalse;
}
/*
@@ -2158,27 +2177,6 @@ int BG_ClassCanEvolveFromTo( int fclass, int tclass, int credits, int num )
/*
==============
-BG_FindEvolveTimeForClass
-==============
-*/
-int BG_FindEvolveTimeForClass( int pclass )
-{
- int i;
-
- for( i = 0; i < bg_numPclasses; i++ )
- {
- if( bg_classList[ i ].classNum == pclass )
- {
- return bg_classList[ i ].timeToEvolve;
- }
- }
-
- Com_Printf( S_COLOR_YELLOW "WARNING: fallthrough in BG_FindEvolveTimeForClass\n" );
- return 5000;
-}
-
-/*
-==============
BG_FindValueOfClass
==============
*/
diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c
index 3703cc86..50082514 100644
--- a/src/game/bg_pmove.c
+++ b/src/game/bg_pmove.c
@@ -388,8 +388,14 @@ static float PM_CmdScale( usercmd_t *cmd )
if( pm->ps->pm_type == PM_GRABBED )
modifier = 0.0f;
- if( !BG_ClassHasAbility( pm->ps->stats[ STAT_PCLASS ], SCA_CANJUMP ) )
- cmd->upmove = 0;
+ if( pm->ps->persistant[ PERS_TEAM ] != TEAM_SPECTATOR )
+ {
+ if( BG_FindJumpMagnitudeForClass( pm->ps->stats[ STAT_PCLASS ] ) == 0.0f )
+ cmd->upmove = 0;
+
+ if( !( pm->ps->pm_flags & PMF_DUCKED ) && cmd->upmove < 0 )
+ cmd->upmove = 0;
+ }
max = abs( cmd->forwardmove );
if( abs( cmd->rightmove ) > max )
@@ -508,7 +514,7 @@ static qboolean PM_CheckPounce( void )
AngleVectors( pm->ps->viewangles, forward, NULL, NULL );
VectorMA( pm->ps->velocity, pm->ps->stats[ STAT_MISC ], forward, pm->ps->velocity );
- pm->ps->velocity[ 2 ] += JUMP_VELOCITY / 2;
+ pm->ps->velocity[ 2 ] += BG_FindJumpMagnitudeForClass( pm->ps->stats[ STAT_PCLASS ] ) / 2.0f;
PM_AddEvent( EV_JUMP );
@@ -541,7 +547,7 @@ PM_CheckJump
*/
static qboolean PM_CheckJump( void )
{
- if( !BG_ClassHasAbility( pm->ps->stats[ STAT_PCLASS ], SCA_CANJUMP ) )
+ if( BG_FindJumpMagnitudeForClass( pm->ps->stats[ STAT_PCLASS ] ) == 0.0f )
return qfalse;
//can't jump and pounce charge at the same time
@@ -599,10 +605,11 @@ static qboolean PM_CheckJump( void )
if( !( pm->ps->stats[ STAT_STATE ] & SS_WALLCLIMBINGCEILING ) )
VectorCopy( pm->ps->grapplePoint, normal );
- VectorMA( pm->ps->velocity, JUMP_VELOCITY, normal, pm->ps->velocity );
+ VectorMA( pm->ps->velocity, BG_FindJumpMagnitudeForClass( pm->ps->stats[ STAT_PCLASS ] ),
+ normal, pm->ps->velocity );
}
else
- pm->ps->velocity[ 2 ] = JUMP_VELOCITY;
+ pm->ps->velocity[ 2 ] = BG_FindJumpMagnitudeForClass( pm->ps->stats[ STAT_PCLASS ] );
PM_AddEvent( EV_JUMP );
diff --git a/src/game/bg_public.h b/src/game/bg_public.h
index 876a2f7e..6fdb8546 100644
--- a/src/game/bg_public.h
+++ b/src/game/bg_public.h
@@ -214,12 +214,12 @@ typedef enum
#define SCA_WALLCLIMBER 0x00000001
#define SCA_TAKESFALLDAMAGE 0x00000002
#define SCA_CANZOOM 0x00000004
-#define SCA_CANJUMP 0x00000008
-#define SCA_NOWEAPONDRIFT 0x00000010
-#define SCA_FOVWARPS 0x00000020
-#define SCA_ALIENSENSE 0x00000040
-#define SCA_NOFOOTSTEPS 0x00000080
-#define SCA_CANUSELADDERS 0x00000100
+#define SCA_NOWEAPONDRIFT 0x00000008
+#define SCA_FOVWARPS 0x00000010
+#define SCA_ALIENSENSE 0x00000020
+#define SCA_NOFOOTSTEPS 0x00000040
+#define SCA_CANUSELADDERS 0x00000080
+#define SCA_WALLJUMPER 0x00000100
#define SS_WALLCLIMBING 0x00000001
#define SS_WALLCLIMBINGCEILING 0x00000002
@@ -897,6 +897,7 @@ typedef struct
float acceleration;
float friction;
float stopSpeed;
+ float jumpMagnitude;
int children[ 3 ];
int timeToEvolve;
@@ -1088,12 +1089,12 @@ float BG_FindSpeedForClass( int pclass );
float BG_FindAccelerationForClass( int pclass );
float BG_FindFrictionForClass( int pclass );
float BG_FindStopSpeedForClass( int pclass );
+float BG_FindJumpMagnitudeForClass( int pclass );
int BG_FindSteptimeForClass( int pclass );
qboolean BG_ClassHasAbility( int pclass, int ability );
weapon_t BG_FindStartWeaponForClass( int pclass );
float BG_FindBuildDistForClass( int pclass );
int BG_ClassCanEvolveFromTo( int fclass, int tclass, int credits, int num );
-int BG_FindEvolveTimeForClass( int pclass );
int BG_FindValueOfClass( int pclass );
int BG_FindPriceForWeapon( int weapon );
diff --git a/src/game/tremulous.h b/src/game/tremulous.h
index 692da42b..b0ec7341 100644
--- a/src/game/tremulous.h
+++ b/src/game/tremulous.h
@@ -27,7 +27,7 @@
#define ABUILDER_BUILD_REPEAT 500
#define ABUILDER_CLAW_DMG ADM(25)
-#define ABUILDER_CLAW_RANGE 48.0f
+#define ABUILDER_CLAW_RANGE 64.0f
#define ABUILDER_CLAW_REPEAT 1000
#define ABUILDER_BASE_DELAY 9000
#define ABUILDER_ADV_DELAY 4000
@@ -36,7 +36,7 @@
#define SOLDIER_BITE_RANGE 32.0f
#define SOLDIER_BITE_REPEAT 500
-#define HYDRA_CLAW_DMG ADM(50)
+#define HYDRA_CLAW_DMG ADM(40)
#define HYDRA_CLAW_RANGE 96.0f
#define HYDRA_CLAW_REPEAT 500
#define HYDRA_CLAW_U_REPEAT 500
@@ -47,12 +47,23 @@
#define HYDRA_PCLOUD_REPEAT 1000
#define HYDRA_PCLOUD_TIME 10000
+#define CHIMERA_CLAW_DMG ADM(50)
+#define CHIMERA_CLAW_RANGE 96.0f
+#define CHIMERA_CLAW_REPEAT 400
+#define CHIMERA_CLAW_U_REPEAT 300
+#define CHIMERA_AREAZAP_DMG ADM(75)
+#define CHIMERA_AREAZAP_RANGE 200.0f
+#define CHIMERA_AREAZAP_REPEAT 1500
+#define CHIMERA_DIRECTZAP_DMG ADM(100)
+#define CHIMERA_DIRECTZAP_RANGE 200.0f
+#define CHIMERA_DIRECTZAP_REPEAT 1500
+
#define DRAGOON_CLAW_DMG ADM(75)
-#define DRAGOON_CLAW_RANGE 48.0f
+#define DRAGOON_CLAW_RANGE 96.0f
#define DRAGOON_CLAW_REPEAT 750
-#define DRAGOON_CLAW_U_REPEAT 750
-#define DRAGOON_POUNCE_DMG ADM(100)
-#define DRAGOON_POUNCE_RANGE 48.0f
+#define DRAGOON_CLAW_U_REPEAT 500
+#define DRAGOON_POUNCE_DMG ADM(200)
+#define DRAGOON_POUNCE_RANGE 96.0f
#define DRAGOON_POUNCE_SPEED 750
#define DRAGOON_POUNCE_SPEED_MOD 0.75f
#define DRAGOON_POUNCE_TIME 1000
@@ -62,17 +73,6 @@
#define DRAGOON_SLOWBLOB_SPEED_MOD 0.5f
#define DRAGOON_SLOWBLOB_TIME 5000
-#define CHIMERA_CLAW_DMG ADM(75)
-#define CHIMERA_CLAW_RANGE 96.0f
-#define CHIMERA_CLAW_REPEAT 400
-#define CHIMERA_CLAW_U_REPEAT 300
-#define CHIMERA_AREAZAP_DMG ADM(75)
-#define CHIMERA_AREAZAP_RANGE 200.0f
-#define CHIMERA_AREAZAP_REPEAT 1500
-#define CHIMERA_DIRECTZAP_DMG ADM(75)
-#define CHIMERA_DIRECTZAP_RANGE 200.0f
-#define CHIMERA_DIRECTZAP_REPEAT 1500
-
#define BMOFO_CLAW_DMG ADM(150)
#define BMOFO_CLAW_RANGE 128.0f
#define BMOFO_CLAW_REPEAT 750
@@ -103,7 +103,6 @@
#define AVM(h) ((int)((float)h*ALIEN_VALUE_MODIFIER))
#define ABUILDER_SPEED 0.8f
-#define ABUILDER_TTE 2000
#define ABUILDER_VALUE AVM(50)
#define ABUILDER_HEALTH AHM(50)
#define ABUILDER_REGEN 2
@@ -114,46 +113,39 @@
#define ABUILDER_UPG_REGEN 3
#define SOLDIER_SPEED 1.3f
-#define SOLDIER_TTE 2000
#define SOLDIER_VALUE AVM(50)
#define SOLDIER_HEALTH AHM(25)
#define SOLDIER_REGEN 1
#define HYDRA_SPEED 1.25f
-#define HYDRA_TTE 3000
#define HYDRA_VALUE AVM(100)
#define HYDRA_HEALTH AHM(50)
#define HYDRA_REGEN 2
#define HYDRA_UPG_SPEED 1.25f
-#define HYDRA_UPG_TTE 3000
#define HYDRA_UPG_VALUE AVM(120)
#define HYDRA_UPG_HEALTH AHM(50)
#define HYDRA_UPG_REGEN 3
-#define DRAGOON_SPEED 1.2f
-#define DRAGOON_TTE 3000
-#define DRAGOON_VALUE AVM(200)
-#define DRAGOON_HEALTH AHM(100)
-#define DRAGOON_REGEN 4
-
-#define DRAGOON_UPG_SPEED 1.2f
-#define DRAGOON_UPG_TTE 3000
-#define DRAGOON_UPG_VALUE AVM(240)
-#define DRAGOON_UPG_HEALTH AHM(120)
-#define DRAGOON_UPG_REGEN 5
-
#define CHIMERA_SPEED 1.2f
-#define CHIMERA_TTE 3000
-#define CHIMERA_VALUE AVM(300)
-#define CHIMERA_HEALTH AHM(200)
-#define CHIMERA_REGEN 6
+#define CHIMERA_VALUE AVM(200)
+#define CHIMERA_HEALTH AHM(100)
+#define CHIMERA_REGEN 4
#define CHIMERA_UPG_SPEED 1.2f
-#define CHIMERA_UPG_TTE 3000
-#define CHIMERA_UPG_VALUE AVM(360)
-#define CHIMERA_UPG_HEALTH AHM(250)
-#define CHIMERA_UPG_REGEN 7
+#define CHIMERA_UPG_VALUE AVM(340)
+#define CHIMERA_UPG_HEALTH AHM(120)
+#define CHIMERA_UPG_REGEN 5
+
+#define DRAGOON_SPEED 1.2f
+#define DRAGOON_VALUE AVM(300)
+#define DRAGOON_HEALTH AHM(200)
+#define DRAGOON_REGEN 6
+
+#define DRAGOON_UPG_SPEED 1.2f
+#define DRAGOON_UPG_VALUE AVM(360)
+#define DRAGOON_UPG_HEALTH AHM(250)
+#define DRAGOON_UPG_REGEN 7
#define BMOFO_SPEED 1.1f
#define BMOFO_VALUE AVM(400)