diff options
-rw-r--r-- | src/game/g_active.c | 34 | ||||
-rw-r--r-- | src/game/g_buildable.c | 12 | ||||
-rw-r--r-- | src/game/g_client.c | 1 | ||||
-rw-r--r-- | src/game/g_cmds.c | 76 | ||||
-rw-r--r-- | src/game/g_local.h | 4 | ||||
-rw-r--r-- | src/game/g_weapon.c | 8 | ||||
-rw-r--r-- | src/game/tremulous.h | 7 |
7 files changed, 28 insertions, 114 deletions
diff --git a/src/game/g_active.c b/src/game/g_active.c index 3ae9c561..fbb746da 100644 --- a/src/game/g_active.c +++ b/src/game/g_active.c @@ -663,40 +663,6 @@ void ClientTimerActions( gentity_t *ent, int msec ) damage, 0, MOD_POISON ); } - if( client->campingAtTheArmoury ) - { - if( client->lastBoughtAmmoTime + HUMAN_ARMOURY_CAMP_TIME < level.time ) - client->campingAtTheArmoury = qfalse; - else - { - //check if there are no armouries in range - int entityList[ MAX_GENTITIES ]; - vec3_t range = { HUMAN_ARMOURY_CAMP_DISTANCE, - HUMAN_ARMOURY_CAMP_DISTANCE, HUMAN_ARMOURY_CAMP_DISTANCE }; - vec3_t mins, maxs; - int i, num; - gentity_t *armoury; - - VectorAdd( client->ps.origin, range, maxs ); - VectorSubtract( client->ps.origin, range, mins ); - - num = trap_EntitiesInBox( mins, maxs, entityList, MAX_GENTITIES ); - for( i = 0; i < num; i++ ) - { - armoury = &g_entities[ entityList[ i ] ]; - - if( armoury->s.eType == ET_BUILDABLE && - ( armoury->s.modelindex == BA_H_ARMOURY || - armoury->s.modelindex == BA_H_REACTOR || - armoury->s.modelindex == BA_H_REPEATER ) ) - break; - } - - if( i == num ) - client->campingAtTheArmoury = qfalse; - } - } - //replenish alien health if( client->ps.stats[ STAT_PTEAM ] == PTE_ALIENS ) { diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c index 92599d38..57480191 100644 --- a/src/game/g_buildable.c +++ b/src/game/g_buildable.c @@ -1520,8 +1520,7 @@ void HRpt_Use( gentity_t *self, gentity_t *other, gentity_t *activator ) if( !BG_FindUsesEnergyForWeapon( weapon ) ) return; - if( !other->client->campingAtTheArmoury && - !BG_WeaponIsFull( weapon, ps->ammo, ps->powerups ) ) + if( !BG_WeaponIsFull( weapon, ps->ammo, ps->powerups ) ) { BG_FindAmmoForWeapon( weapon, &maxAmmo, NULL, &maxClips ); @@ -1532,15 +1531,6 @@ void HRpt_Use( gentity_t *self, gentity_t *other, gentity_t *activator ) G_AddEvent( activator, EV_RPTUSE_SOUND, 0 ); activator->client->lastRefilTime = level.time; - - other->client->lastBoughtAmmoTime = level.time; - other->client->campingAtTheArmoury = qtrue; - } - else - { - trap_SendServerCommand( other-g_entities, - va( "print \"Move away or wait 45 seconds for ammo/energy\n\"" ) ); - return; } } diff --git a/src/game/g_client.c b/src/game/g_client.c index 5ca073b8..23fca525 100644 --- a/src/game/g_client.c +++ b/src/game/g_client.c @@ -1477,6 +1477,7 @@ void ClientSpawn( gentity_t *ent, gentity_t *spawn, vec3_t origin, vec3_t angles client->ps.pm_time = 100; client->respawnTime = level.time; + client->lastKillTime = level.time; client->inactivityTime = level.time + g_inactivity.integer * 1000; client->latched_buttons = 0; diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c index 3a826333..67720b40 100644 --- a/src/game/g_cmds.c +++ b/src/game/g_cmds.c @@ -1486,56 +1486,38 @@ G_GiveClientMaxAmmo */ static void G_GiveClientMaxAmmo( gentity_t *ent, qboolean buyingEnergyAmmo ) { - int i; - int quan, clips, maxClips; + int i; + int quan, clips, maxClips; + qboolean weaponType; - if( !ent->client->campingAtTheArmoury || !ent->client->firedWeapon ) + for( i = WP_NONE; i < WP_NUM_WEAPONS; i++ ) { - qboolean weaponType, successfullyBought = qfalse; - - for( i = WP_NONE; i < WP_NUM_WEAPONS; i++ ) + if( buyingEnergyAmmo ) + weaponType = BG_FindUsesEnergyForWeapon( i ); + else + weaponType = !BG_FindUsesEnergyForWeapon( i ); + + if( BG_InventoryContainsWeapon( i, ent->client->ps.stats ) && + weaponType && !BG_FindInfinteAmmoForWeapon( i ) && + !BG_WeaponIsFull( i, ent->client->ps.ammo, ent->client->ps.powerups ) ) { - if( buyingEnergyAmmo ) - weaponType = BG_FindUsesEnergyForWeapon( i ); - else - weaponType = !BG_FindUsesEnergyForWeapon( i ); + BG_FindAmmoForWeapon( i, &quan, &clips, &maxClips ); - if( BG_InventoryContainsWeapon( i, ent->client->ps.stats ) && - weaponType && !BG_FindInfinteAmmoForWeapon( i ) && - !BG_WeaponIsFull( i, ent->client->ps.ammo, ent->client->ps.powerups ) ) + if( buyingEnergyAmmo ) { - BG_FindAmmoForWeapon( i, &quan, &clips, &maxClips ); + G_AddEvent( ent, EV_RPTUSE_SOUND, 0 ); + ent->client->lastRefilTime = level.time; - if( buyingEnergyAmmo ) - { - G_AddEvent( ent, EV_RPTUSE_SOUND, 0 ); - ent->client->lastRefilTime = level.time; - - if( BG_InventoryContainsUpgrade( UP_BATTPACK, ent->client->ps.stats ) ) - quan = (int)( (float)quan * BATTPACK_MODIFIER ); - } - else - G_AddEvent( ent, EV_CHANGE_WEAPON, 0 ); - - BG_PackAmmoArray( i, ent->client->ps.ammo, ent->client->ps.powerups, - quan, clips, maxClips ); - - successfullyBought = qtrue; + if( BG_InventoryContainsUpgrade( UP_BATTPACK, ent->client->ps.stats ) ) + quan = (int)( (float)quan * BATTPACK_MODIFIER ); } - } + else + G_AddEvent( ent, EV_CHANGE_WEAPON, 0 ); - if( successfullyBought ) - { - ent->client->lastBoughtAmmoTime = level.time; - ent->client->campingAtTheArmoury = qtrue; + BG_PackAmmoArray( i, ent->client->ps.ammo, ent->client->ps.powerups, + quan, clips, maxClips ); } } - else - { - trap_SendServerCommand( ent-g_entities, - va( "print \"Move away or wait 45 seconds for ammo/energy\n\"" ) ); - return; - } } /* @@ -1648,14 +1630,8 @@ void Cmd_Buy_f( gentity_t *ent ) BG_InventoryContainsUpgrade( UP_BATTPACK, ent->client->ps.stats ) ) quan = (int)( (float)quan * BATTPACK_MODIFIER ); - if( ent->client->firedWeapon && ent->client->campingAtTheArmoury ) - BG_PackAmmoArray( weapon, ent->client->ps.ammo, ent->client->ps.powerups, - 0, 0, maxClips ); - else - BG_PackAmmoArray( weapon, ent->client->ps.ammo, ent->client->ps.powerups, - quan, clips, maxClips ); - - ent->client->firedWeapon = qfalse; + BG_PackAmmoArray( weapon, ent->client->ps.ammo, ent->client->ps.powerups, + quan, clips, maxClips ); //force a weapon change ent->client->ps.pm_flags |= PMF_WEAPON_SWITCH; @@ -1664,10 +1640,6 @@ void Cmd_Buy_f( gentity_t *ent ) //set build delay/pounce etc to 0 ent->client->ps.stats[ STAT_MISC ] = 0; - //prevent filling up ammo again soon - //ent->client->lastBoughtAmmoTime = level.time; - //ent->client->campingAtTheArmoury = qtrue; - //subtract from funds G_AddCreditToClient( ent->client, -(short)BG_FindPriceForWeapon( weapon ), qfalse ); } diff --git a/src/game/g_local.h b/src/game/g_local.h index dd5c3abf..80aa8375 100644 --- a/src/game/g_local.h +++ b/src/game/g_local.h @@ -417,10 +417,6 @@ struct gclient_s #define RAM_FRAMES 1 //TA: number of frames to wait before retriggering int retriggerArmouryMenu; //TA: frame number to retrigger the armoury menu - - int lastBoughtAmmoTime; - qboolean campingAtTheArmoury; - qboolean firedWeapon; }; diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c index 525bef97..607f6c3c 100644 --- a/src/game/g_weapon.c +++ b/src/game/g_weapon.c @@ -1218,35 +1218,27 @@ void FireWeapon( gentity_t *ent ) break; case WP_MACHINEGUN: bulletFire( ent, RIFLE_SPREAD, RIFLE_DMG, MOD_MACHINEGUN ); - if( ent->client ) ent->client->firedWeapon = qtrue; break; case WP_SHOTGUN: shotgunFire( ent ); - if( ent->client ) ent->client->firedWeapon = qtrue; break; case WP_CHAINGUN: bulletFire( ent, CHAINGUN_SPREAD, CHAINGUN_DMG, MOD_CHAINGUN ); - if( ent->client ) ent->client->firedWeapon = qtrue; break; case WP_FLAMER: flamerFire( ent ); - if( ent->client ) ent->client->firedWeapon = qtrue; break; case WP_PULSE_RIFLE: pulseRifleFire( ent ); - if( ent->client ) ent->client->firedWeapon = qtrue; break; case WP_MASS_DRIVER: massDriverFire( ent ); - if( ent->client ) ent->client->firedWeapon = qtrue; break; case WP_LUCIFER_CANNON: LCChargeFire( ent, qfalse ); - if( ent->client ) ent->client->firedWeapon = qtrue; break; case WP_LAS_GUN: lasGunFire( ent ); - if( ent->client ) ent->client->firedWeapon = qtrue; break; case WP_PAIN_SAW: painSawFire( ent ); diff --git a/src/game/tremulous.h b/src/game/tremulous.h index 0adb4595..b75959ca 100644 --- a/src/game/tremulous.h +++ b/src/game/tremulous.h @@ -49,7 +49,7 @@ #define LEVEL1_CLAW_REPEAT 600 #define LEVEL1_CLAW_U_REPEAT 500 #define LEVEL1_GRAB_RANGE 64.0f -#define LEVEL1_GRAB_TIME 1000 +#define LEVEL1_GRAB_TIME 800 #define LEVEL1_PCLOUD_DMG ADM(4) #define LEVEL1_PCLOUD_RANGE 200.0f #define LEVEL1_PCLOUD_REPEAT 2000 @@ -356,7 +356,7 @@ #define MDRIVER_CLIPSIZE 5 #define MDRIVER_SPAWNCLIPS 3 #define MDRIVER_MAXCLIPS 3 -#define MDRIVER_DMG HDM(31) +#define MDRIVER_DMG HDM(35) #define MDRIVER_REPEAT 1000 #define MDRIVER_RELOAD 2000 @@ -545,9 +545,6 @@ #define HUMAN_SPAWN_REPEAT_TIME 10000 -#define HUMAN_ARMOURY_CAMP_TIME 45000 -#define HUMAN_ARMOURY_CAMP_DISTANCE 256.0f - /* * Misc */ |