diff options
| -rw-r--r-- | src/cgame/cg_draw.c | 23 | ||||
| -rw-r--r-- | src/cgame/cg_predict.c | 7 | ||||
| -rw-r--r-- | src/cgame/cg_tutorial.c | 3 | ||||
| -rw-r--r-- | src/cgame/cg_weapons.c | 6 | ||||
| -rw-r--r-- | src/game/bg_misc.c | 48 | ||||
| -rw-r--r-- | src/game/bg_pmove.c | 16 | ||||
| -rw-r--r-- | src/game/bg_public.h | 4 | ||||
| -rw-r--r-- | src/game/g_active.c | 7 | ||||
| -rw-r--r-- | src/game/g_admin.c | 4 | ||||
| -rw-r--r-- | src/game/g_client.c | 3 | ||||
| -rw-r--r-- | src/game/g_cmds.c | 10 | ||||
| -rw-r--r-- | src/game/g_trigger.c | 8 | ||||
| -rw-r--r-- | src/game/g_weapon.c | 6 | ||||
| -rw-r--r-- | src/qcommon/q_shared.h | 12 | 
14 files changed, 57 insertions, 100 deletions
diff --git a/src/cgame/cg_draw.c b/src/cgame/cg_draw.c index 82df413..1a3ecae 100644 --- a/src/cgame/cg_draw.c +++ b/src/cgame/cg_draw.c @@ -855,7 +855,7 @@ static void CG_DrawPlayerPoisonBarbs( rectDef_t *rect, vec4_t color, qhandle_t s    qboolean      vertical;    int           iconsize, numBarbs, i; -  BG_UnpackAmmoArray( ps->weapon, ps->ammo, ps->powerups, &numBarbs, NULL ); +  numBarbs = ps->ammo;    if( height > width )    { @@ -940,7 +940,7 @@ static void CG_DrawPlayerAmmoValue( rectDef_t *rect, vec4_t color )          break;        default: -        BG_UnpackAmmoArray( cent->currentState.weapon, ps->ammo, ps->powerups, &value, NULL ); +        value = ps->ammo;          break;      } @@ -1099,7 +1099,7 @@ static void CG_DrawPlayerClipsValue( rectDef_t *rect, vec4_t color )          break;        default: -        BG_UnpackAmmoArray( cent->currentState.weapon, ps->ammo, ps->powerups, NULL, &value ); +        value = ps->clips;          if( value > -1 )          { @@ -1425,23 +1425,13 @@ float CG_GetValue( int ownerDraw )      case CG_PLAYER_AMMO_VALUE:        if( cent->currentState.weapon )        { -        int value; - -        BG_UnpackAmmoArray( cent->currentState.weapon, ps->ammo, ps->powerups, -           &value, NULL ); - -        return value; +        return ps->ammo;        }        break;      case CG_PLAYER_CLIPS_VALUE:        if( cent->currentState.weapon )        { -        int value; - -        BG_UnpackAmmoArray( cent->currentState.weapon, ps->ammo, ps->powerups, -           NULL, &value ); - -        return value; +        return ps->clips;        }        break;      case CG_PLAYER_HEALTH: @@ -2404,7 +2394,8 @@ void CG_DrawWeaponIcon( rectDef_t *rect, vec4_t color )    cent = &cg_entities[ cg.snap->ps.clientNum ];    ps = &cg.snap->ps; -  BG_UnpackAmmoArray( cent->currentState.weapon, ps->ammo, ps->powerups, &ammo, &clips ); +  ammo = ps->ammo; +  clips = ps->clips;    BG_FindAmmoForWeapon( cent->currentState.weapon, &maxAmmo, NULL );    // don't display if dead diff --git a/src/cgame/cg_predict.c b/src/cgame/cg_predict.c index 34f00c4..e20eb1d 100644 --- a/src/cgame/cg_predict.c +++ b/src/cgame/cg_predict.c @@ -504,11 +504,8 @@ static int CG_IsUnacceptableError( playerState_t *ps, playerState_t *pps )        return 16;    } -  for( i = 0; i < MAX_WEAPONS; i++ ) -  { -    if( pps->ammo[ i ] != ps->ammo[ i ] ) -      return 18; -  } +  if( pps->ammo != ps->ammo || pps->clips != ps->clips ) +    return 18;    if( pps->generic1 != ps->generic1 ||      pps->loopSound != ps->loopSound ) diff --git a/src/cgame/cg_tutorial.c b/src/cgame/cg_tutorial.c index 5ad29b7..c418726 100644 --- a/src/cgame/cg_tutorial.c +++ b/src/cgame/cg_tutorial.c @@ -407,7 +407,8 @@ static void CG_HumanText( char *text, playerState_t *ps )      upgrade = cg.weaponSelect - 32;    } -  BG_UnpackAmmoArray( ps->weapon, ps->ammo, ps->powerups, &ammo, &clips ); +  ammo = ps->ammo; +  clips = ps->clips;    if( !ammo && !clips && !BG_FindInfinteAmmoForWeapon( ps->weapon ) )    { diff --git a/src/cgame/cg_weapons.c b/src/cgame/cg_weapons.c index deae4e0..135e441 100644 --- a/src/cgame/cg_weapons.c +++ b/src/cgame/cg_weapons.c @@ -1111,7 +1111,8 @@ static qboolean CG_WeaponSelectable( weapon_t weapon )  {    //int ammo, clips;    // -  //BG_UnpackAmmoArray( i, cg.snap->ps.ammo, cg.snap->ps.powerups, &ammo, &clips ); +  //ammo = cg.snap->ps.ammo; +  //clips = cg.snap->ps.clips    //    // this is a pain in the ass    //if( !ammo && !clips && !BG_FindInfinteAmmoForWeapon( i ) ) @@ -1205,7 +1206,8 @@ void CG_DrawItemSelect( rectDef_t *rect, vec4_t color )      {        int ammo, clips; -      BG_UnpackAmmoArray( i, cg.snap->ps.ammo, cg.snap->ps.powerups, &ammo, &clips ); +      ammo = cg.snap->ps.ammo; +      clips = cg.snap->ps.clips;        if( !ammo && !clips && !BG_FindInfinteAmmoForWeapon( i ) )          colinfo[ numItems ] = 1; diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c index 1a55ed0..2641305 100644 --- a/src/game/bg_misc.c +++ b/src/game/bg_misc.c @@ -4959,62 +4959,16 @@ void BG_PlayerStateToEntityStateExtraPolate( playerState_t *ps, entityState_t *s  /*  ======================== -BG_UnpackAmmoArray - -Extract the ammo quantity from the array -======================== -*/ -void BG_UnpackAmmoArray( int weapon, int psAmmo[ ], int psAmmo2[ ], int *ammo, int *clips ) -{ -  int   ammoarray[ 32 ]; -  int   i; - -  for( i = 0; i <= 15; i++ ) -    ammoarray[ i ] = psAmmo[ i ]; - -  for( i = 16; i <= 31; i++ ) -    ammoarray[ i ] = psAmmo2[ i - 16 ]; - -  if( ammo != NULL ) -    *ammo = ammoarray[ weapon ] & 0x0FFF; - -  if( clips != NULL ) -    *clips = ( ammoarray[ weapon ] >> 12 ) & 0x0F; -} - -/* -======================== -BG_PackAmmoArray - -Pack the ammo quantity into the array -======================== -*/ -void BG_PackAmmoArray( int weapon, int psAmmo[ ], int psAmmo2[ ], int ammo, int clips ) -{ -  int   weaponvalue; - -  weaponvalue = ammo | ( clips << 12 ); - -  if( weapon <= 15 ) -    psAmmo[ weapon ] = weaponvalue; -  else if( weapon >= 16 ) -    psAmmo2[ weapon - 16 ] = weaponvalue; -} - -/* -========================  BG_WeaponIsFull  Check if a weapon has full ammo  ========================  */ -qboolean BG_WeaponIsFull( weapon_t weapon, int stats[ ], int psAmmo[ ], int psAmmo2[ ] ) +qboolean BG_WeaponIsFull( weapon_t weapon, int stats[ ], int ammo, int clips )  {    int maxAmmo, maxClips; -  int ammo, clips;    BG_FindAmmoForWeapon( weapon, &maxAmmo, &maxClips ); -  BG_UnpackAmmoArray( weapon, psAmmo, psAmmo2, &ammo, &clips );    if( BG_InventoryContainsUpgrade( UP_BATTPACK, stats ) )      maxAmmo = (int)( (float)maxAmmo * BATTPACK_MODIFIER ); diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c index 88707bd..73ee6d9 100644 --- a/src/game/bg_pmove.c +++ b/src/game/bg_pmove.c @@ -2796,8 +2796,8 @@ static void PM_Weapon( void )    }    // start the animation even if out of ammo - -  BG_UnpackAmmoArray( pm->ps->weapon, pm->ps->ammo, pm->ps->powerups, &ammo, &clips ); +  ammo = pm->ps->ammo; +  clips = pm->ps->clips;    BG_FindAmmoForWeapon( pm->ps->weapon, NULL, &maxClips );    // check for out of ammo @@ -2825,7 +2825,8 @@ static void PM_Weapon( void )          BG_InventoryContainsUpgrade( UP_BATTPACK, pm->ps->stats ) )        ammo = (int)( (float)ammo * BATTPACK_MODIFIER ); -    BG_PackAmmoArray( pm->ps->weapon, pm->ps->ammo, pm->ps->powerups, ammo, clips ); +    pm->ps->ammo = ammo; +    pm->ps->clips = clips;      //allow some time for the weapon to be raised      pm->ps->weaponstate = WEAPON_RAISING; @@ -3079,13 +3080,15 @@ static void PM_Weapon( void )      else        ammo--; -    BG_PackAmmoArray( pm->ps->weapon, pm->ps->ammo, pm->ps->powerups, ammo, clips ); +    pm->ps->ammo = ammo; +    pm->ps->clips = clips;    }    else if( pm->ps->weapon == WP_ALEVEL3_UPG && attack3 )    {      //special case for slowblob      ammo--; -    BG_PackAmmoArray( pm->ps->weapon, pm->ps->ammo, pm->ps->powerups, ammo, clips ); +    pm->ps->ammo = ammo; +    pm->ps->clips = clips;    }    //FIXME: predicted angles miss a problem?? @@ -3291,7 +3294,8 @@ void PmoveSingle( pmove_t *pmove )    pm = pmove; -  BG_UnpackAmmoArray( pm->ps->weapon, pm->ps->ammo, pm->ps->powerups, &ammo, &clips ); +  ammo = pm->ps->ammo; +  clips = pm->ps->clips;    // this counter lets us debug movement problems with a journal    // by setting a conditional breakpoint fot the previous frame diff --git a/src/game/bg_public.h b/src/game/bg_public.h index e0e6233..817b7aa 100644 --- a/src/game/bg_public.h +++ b/src/game/bg_public.h @@ -1109,9 +1109,7 @@ typedef struct  //TA: -void      BG_UnpackAmmoArray( int weapon, int psAmmo[ ], int psAmmo2[ ], int *ammo, int *clips ); -void      BG_PackAmmoArray( int weapon, int psAmmo[ ], int psAmmo2[ ], int ammo, int clips ); -qboolean  BG_WeaponIsFull( weapon_t weapon, int stats[ ], int psAmmo[ ], int psAmmo2[ ] ); +qboolean  BG_WeaponIsFull( weapon_t weapon, int stats[ ], int ammo, int clips );  void      BG_AddWeaponToInventory( int weapon, int stats[ ] );  void      BG_RemoveWeaponFromInventory( int weapon, int stats[ ] );  qboolean  BG_InventoryContainsWeapon( int weapon, int stats[ ] ); diff --git a/src/game/g_active.c b/src/game/g_active.c index 5b167a5..147aabc 100644 --- a/src/game/g_active.c +++ b/src/game/g_active.c @@ -800,7 +800,7 @@ void ClientTimerActions( gentity_t *ent, int msec )      {        int ammo; -      BG_UnpackAmmoArray( WP_LUCIFER_CANNON, client->ps.ammo, client->ps.powerups, &ammo, NULL ); +      ammo = client->ps.ammo;        if( client->ps.stats[ STAT_MISC ] < LCANNON_TOTAL_CHARGE && ucmd->buttons & BUTTON_ATTACK )          client->ps.stats[ STAT_MISC ] += ( 100.0f / LCANNON_CHARGE_TIME ) * LCANNON_TOTAL_CHARGE; @@ -1099,12 +1099,13 @@ void ClientTimerActions( gentity_t *ent, int msec )        int ammo, maxAmmo;        BG_FindAmmoForWeapon( WP_ALEVEL3_UPG, &maxAmmo, NULL ); -      BG_UnpackAmmoArray( WP_ALEVEL3_UPG, client->ps.ammo, client->ps.powerups, &ammo, NULL ); +      ammo = client->ps.ammo;        if( ammo < maxAmmo )        {          ammo++; -        BG_PackAmmoArray( WP_ALEVEL3_UPG, client->ps.ammo, client->ps.powerups, ammo, 0 ); +        client->ps.ammo = ammo; +        client->ps.clips = 0;        }      }    } diff --git a/src/game/g_admin.c b/src/game/g_admin.c index de59a47..5761586 100644 --- a/src/game/g_admin.c +++ b/src/game/g_admin.c @@ -4716,8 +4716,8 @@ qboolean G_admin_denyweapon( gentity_t *ent, int skiparg )            BG_AddWeaponToInventory( WP_MACHINEGUN, vic->client->ps.stats );            BG_FindAmmoForWeapon( WP_MACHINEGUN, &maxAmmo, &maxClips ); -          BG_PackAmmoArray( WP_MACHINEGUN, vic->client->ps.ammo, vic->client->ps.powerups, -                            maxAmmo, maxClips ); +          vic->client->ps.ammo = maxAmmo; +          vic->client->ps.clips = maxClips;            G_ForceWeaponChange( vic, WP_MACHINEGUN );            vic->client->ps.stats[ STAT_MISC ] = 0;            ClientUserinfoChanged( pids[ 0 ], qfalse ); diff --git a/src/game/g_client.c b/src/game/g_client.c index 00ed443..ef35f16 100644 --- a/src/game/g_client.c +++ b/src/game/g_client.c @@ -1847,7 +1847,8 @@ void ClientSpawn( gentity_t *ent, gentity_t *spawn, vec3_t origin, vec3_t angles    BG_FindAmmoForWeapon( weapon, &maxAmmo, &maxClips );    BG_AddWeaponToInventory( weapon, client->ps.stats ); -  BG_PackAmmoArray( weapon, client->ps.ammo, client->ps.powerups, maxAmmo, maxClips ); +  client->ps.ammo = maxAmmo; +  client->ps.clips = maxClips;    ent->client->ps.stats[ STAT_PCLASS ] = ent->client->pers.classSelection;    ent->client->ps.stats[ STAT_PTEAM ] = ent->client->pers.teamSelection; diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c index 5c5101b..1233e31 100644 --- a/src/game/g_cmds.c +++ b/src/game/g_cmds.c @@ -445,7 +445,8 @@ void Cmd_Give_f( gentity_t *ent )          BG_InventoryContainsUpgrade( UP_BATTPACK, client->ps.stats ) )        maxAmmo = (int)( (float)maxAmmo * BATTPACK_MODIFIER ); -    BG_PackAmmoArray( client->ps.weapon, client->ps.ammo, client->ps.powerups, maxAmmo, maxClips ); +    client->ps.ammo = maxAmmo; +    client->ps.clips = maxClips;    }  } @@ -3850,8 +3851,8 @@ void Cmd_Buy_f( gentity_t *ent )          BG_InventoryContainsUpgrade( UP_BATTPACK, ent->client->ps.stats ) )        maxAmmo = (int)( (float)maxAmmo * BATTPACK_MODIFIER ); -    BG_PackAmmoArray( weapon, ent->client->ps.ammo, ent->client->ps.powerups, -                      maxAmmo, maxClips ); +    ent->client->ps.ammo = maxAmmo; +    ent->client->ps.clips = maxClips;      G_ForceWeaponChange( ent, weapon ); @@ -4073,7 +4074,8 @@ void Cmd_Sell_f( gentity_t *ent )                  BG_FindUsesEnergyForWeapon( j ) &&                  !BG_FindInfinteAmmoForWeapon( j ) )              { -              BG_PackAmmoArray( j, ent->client->ps.ammo, ent->client->ps.powerups, 0, 0 ); +              ent->client->ps.ammo = 0; +              ent->client->ps.clips = 0;              }            }          } diff --git a/src/game/g_trigger.c b/src/game/g_trigger.c index 2b5b25a..0ac34bb 100644 --- a/src/game/g_trigger.c +++ b/src/game/g_trigger.c @@ -1099,8 +1099,8 @@ void trigger_ammo_touch( gentity_t *self, gentity_t *other, trace_t *trace )      self->timestamp = level.time + FRAMETIME;    BG_FindAmmoForWeapon( other->client->ps.weapon, &maxAmmo, &maxClips ); -  BG_UnpackAmmoArray( other->client->ps.weapon, other->client->ps.ammo, other->client->ps.powerups, -                      &ammo, &clips ); +  ammo = other->client->ps.ammo; +  clips = other->client->ps.clips;    if( ( ammo + self->damage ) > maxAmmo )    { @@ -1115,8 +1115,8 @@ void trigger_ammo_touch( gentity_t *self, gentity_t *other, trace_t *trace )    else      ammo += self->damage; -  BG_PackAmmoArray( other->client->ps.weapon, other->client->ps.ammo, other->client->ps.powerups, -                    ammo, clips ); +  other->client->ps.ammo = ammo; +  other->client->ps.clips = clips;  }  /* diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c index 4da6205..e2d0183 100644 --- a/src/game/g_weapon.c +++ b/src/game/g_weapon.c @@ -97,7 +97,7 @@ void G_GiveClientMaxAmmo( gentity_t *ent, qboolean buyingEnergyAmmo )      if( BG_InventoryContainsWeapon( i, ent->client->ps.stats ) &&          weaponType && !BG_FindInfinteAmmoForWeapon( i ) &&          !BG_WeaponIsFull( i, ent->client->ps.stats, -          ent->client->ps.ammo, ent->client->ps.powerups ) ) +          ent->client->ps.ammo, ent->client->ps.clips ) )      {        BG_FindAmmoForWeapon( i, &maxAmmo, &maxClips ); @@ -109,8 +109,8 @@ void G_GiveClientMaxAmmo( gentity_t *ent, qboolean buyingEnergyAmmo )            maxAmmo = (int)( (float)maxAmmo * BATTPACK_MODIFIER );        } -      BG_PackAmmoArray( i, ent->client->ps.ammo, ent->client->ps.powerups, -                        maxAmmo, maxClips ); +      ent->client->ps.ammo = maxAmmo; +      ent->client->ps.clips = maxClips;        restoredAmmo = qtrue;      } diff --git a/src/qcommon/q_shared.h b/src/qcommon/q_shared.h index 14f68c4..3d6a498 100644 --- a/src/qcommon/q_shared.h +++ b/src/qcommon/q_shared.h @@ -1063,7 +1063,11 @@ typedef struct playerState_s {  	int			torsoTimer;		// don't change low priority animations until this runs out  	int			torsoAnim;		// mask off ANIM_TOGGLEBIT -	int			movementDir;	// a number 0 to 7 that represents the reletive angle +	int			tauntTimer;		// don't allow another taunt until this runs out + +	int			weaponAnim;		// mask off ANIM_TOGGLEBIT + +	int			movementDir;	// a number 0 to 7 that represents the relative angle  								// of movement to the view angle (axial and diagonals)  								// when at rest, the value will remain unchanged  								// used to twist the legs during strafing @@ -1096,7 +1100,8 @@ typedef struct playerState_s {  	int			stats[MAX_STATS];  	int			persistant[MAX_PERSISTANT];	// stats that aren't cleared on death  	int			powerups[MAX_POWERUPS];	// level.time that the powerup runs out -	int			ammo[MAX_WEAPONS]; +	int			ammo;			// ammo held +	int			clips;			// clips held  	int			generic1;  	int			loopSound; @@ -1104,7 +1109,7 @@ typedef struct playerState_s {  	// not communicated over the net at all  	int			ping;			// server to game info for scoreboard -	int			pmove_framecount;	// FIXME: don't transmit over the network +	int			pmove_framecount;  	int			jumppad_frame;  	int			entityEventSequence;  } playerState_t; @@ -1218,6 +1223,7 @@ typedef struct entityState_s {  	int		weapon;			// determines weapon and flash model, etc  	int		legsAnim;		// mask off ANIM_TOGGLEBIT  	int		torsoAnim;		// mask off ANIM_TOGGLEBIT +	int		weaponAnim;		// mask off ANIM_TOGGLEBIT  	int		generic1;  } entityState_t;  | 
