diff options
| -rw-r--r-- | src/game/g_active.c | 6 | ||||
| -rw-r--r-- | src/game/g_client.c | 3 | ||||
| -rw-r--r-- | src/game/g_cmds.c | 2 | ||||
| -rw-r--r-- | src/game/g_combat.c | 3 | ||||
| -rw-r--r-- | src/game/g_local.h | 4 | ||||
| -rw-r--r-- | src/game/g_main.c | 2 | 
6 files changed, 13 insertions, 7 deletions
diff --git a/src/game/g_active.c b/src/game/g_active.c index 4aa38cb..e909ca6 100644 --- a/src/game/g_active.c +++ b/src/game/g_active.c @@ -1989,15 +1989,15 @@ void ClientThink_real( gentity_t *ent )    }    // Give clients some credit periodically -  if( ent->client->lastKillTime + FREEKILL_PERIOD < level.time ) +  if( ent->client->pers.lastFreekillTime + FREEKILL_PERIOD < level.time )    { -    if( !g_suddenDeath.integer ) { +    if( !g_suddenDeath.integer || g_gradualFreeFunds.integer ) {        if( ent->client->ps.stats[ STAT_PTEAM ] == PTE_ALIENS )          G_AddCreditToClient( ent->client, FREEKILL_ALIEN, qtrue );        if( ent->client->ps.stats[ STAT_PTEAM ] == PTE_HUMANS )          G_AddCreditToClient( ent->client, FREEKILL_HUMAN, qtrue );      } -    ent->client->lastKillTime = level.time; +    ent->client->pers.lastFreekillTime += FREEKILL_PERIOD;    }    // perform once-a-second actions diff --git a/src/game/g_client.c b/src/game/g_client.c index b6a3e0e..54c05df 100644 --- a/src/game/g_client.c +++ b/src/game/g_client.c @@ -1950,7 +1950,8 @@ 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; +  if( !g_gradualFreeFunds.integer ) +    client->pers.lastFreekillTime = 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 9ebb659..f93b2f8 100644 --- a/src/game/g_cmds.c +++ b/src/game/g_cmds.c @@ -654,6 +654,8 @@ void G_ChangeTeam( gentity_t *ent, pTeam_t newTeam )    G_LeaveTeam( ent );    ent->client->pers.teamSelection = newTeam; +  ent->client->pers.lastFreekillTime = level.time; +    // G_LeaveTeam() calls G_StopFollowing() which sets spec mode to free.     // Undo that in this case, or else people can freespec while in the spawn queue on their new team    if( newTeam != PTE_NONE ) diff --git a/src/game/g_combat.c b/src/game/g_combat.c index 0622ad8..4cf2722 100644 --- a/src/game/g_combat.c +++ b/src/game/g_combat.c @@ -288,7 +288,8 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int      {        AddScore( attacker, 1 ); -      attacker->client->lastKillTime = level.time; +      if( !g_gradualFreeFunds.integer ) +        attacker->client->pers.lastFreekillTime = level.time;        attacker->client->pers.statscounters.kills++;        attacker->client->pers.karma += 50;        if( attacker->client->pers.teamSelection == PTE_ALIENS )  diff --git a/src/game/g_local.h b/src/game/g_local.h index c655950..bd337da 100644 --- a/src/game/g_local.h +++ b/src/game/g_local.h @@ -409,6 +409,7 @@ typedef struct    int                 ping;    int                 lastTeamStatus; +  int                 lastFreekillTime;    int                 lastFloodTime;         // level.time of last flood-limited command    int                 floodDemerits;         // number of flood demerits accumulated @@ -497,8 +498,6 @@ struct gclient_s    int                 airOutTime; -  int                 lastKillTime;     // for multiple kill rewards -    qboolean            fireHeld;         // used for hook    qboolean            fire2Held;        // used for alt fire    gentity_t           *hook;            // grapple hook if out @@ -1423,6 +1422,7 @@ extern  vmCvar_t  g_disabledBuildables;  extern  vmCvar_t  g_buildPointsRecoverRate;  extern  vmCvar_t  g_dynamicBuildPoints;  extern  vmCvar_t  g_instantBuild; +extern  vmCvar_t  g_gradualFreeFunds;  extern  vmCvar_t  g_markDeconstruct;  extern  vmCvar_t  g_markDeconstructMode; diff --git a/src/game/g_main.c b/src/game/g_main.c index 68043d8..5f6bed8 100644 --- a/src/game/g_main.c +++ b/src/game/g_main.c @@ -157,6 +157,7 @@ vmCvar_t  g_disabledBuildables;  vmCvar_t  g_buildPointsRecoverRate;  vmCvar_t  g_dynamicBuildPoints;  vmCvar_t  g_instantBuild; +vmCvar_t  g_gradualFreeFunds;  vmCvar_t  g_markDeconstruct;  vmCvar_t  g_markDeconstructMode; @@ -424,6 +425,7 @@ static cvarTable_t   gameCvarTable[ ] =    { &g_buildPointsRecoverRate, "g_buildPointsRecoverRate", "0", CVAR_ARCHIVE, 0, qfalse  },    { &g_dynamicBuildPoints, "g_dynamicBuildPoints", "0", CVAR_ARCHIVE, 0, qfalse  },    { &g_instantBuild, "g_instantBuild", "0", CVAR_ARCHIVE, 0, qfalse  }, +  { &g_gradualFreeFunds, "g_gradualFreeFunds", "1", CVAR_ARCHIVE, 0, qtrue  },    { &g_chatTeamPrefix, "g_chatTeamPrefix", "1", CVAR_ARCHIVE  },    { &g_sayAreaRange, "g_sayAreaRange", "1000", CVAR_ARCHIVE, 0, qtrue },  | 
