CSWeapon: cache firing values at the (now) proper location.
This commit is contained in:
parent
db351e7b19
commit
ae515b67db
1 changed files with 47 additions and 29 deletions
|
@ -30,10 +30,26 @@ public:
|
|||
#endif
|
||||
|
||||
virtual bool CanFire(void);
|
||||
virtual void Draw(void);
|
||||
virtual void Release(void);
|
||||
virtual void FiredWeaponAttack(string);
|
||||
virtual void SwitchedToWeapon(void);
|
||||
virtual void UpdateFireInfoCache(void);
|
||||
|
||||
int numProjectiles;
|
||||
string traceInfo;
|
||||
float accuracy;
|
||||
float flAccuracyDivisor;
|
||||
float flAccuracyMovementPenalty;
|
||||
float flAccuracyMultiplier;
|
||||
float flAccuracyAdd;
|
||||
float flRangeModifier;
|
||||
float flPenetrationPower;
|
||||
float flBulletStrength;
|
||||
float flMultiplierShots;
|
||||
float flMultiplierStrength;
|
||||
float flMultiplierInaccuracy;
|
||||
vector bulletSpread;
|
||||
|
||||
};
|
||||
|
||||
void
|
||||
|
@ -72,21 +88,7 @@ CSWeapon::FiredWeaponAttack(string defName)
|
|||
return;
|
||||
}
|
||||
|
||||
int numProjectiles = GetSubDefInt(defName, "numProjectiles");
|
||||
string traceInfo = GetSubDefString(defName, "def_onFire");
|
||||
float flAccuracyDivisor = GetSubDefFloat(defName,"accuracyDivisor");
|
||||
float flAccuracyMovementPenalty = GetSubDefFloat(defName,"accuracyMovementPenalty");
|
||||
float flAccuracyMultiplier = GetSubDefFloat(defName,"accuracyMultiplier");
|
||||
float flAccuracyAdd= GetSubDefFloat(defName,"accuracyAdd");
|
||||
float flRangeModifier = GetSubDefFloat(defName,"rangeModifier");
|
||||
float flPenetrationPower = GetSubDefFloat(defName,"penetrationPower");
|
||||
float flBulletStrength = GetSubDefFloat(defName,"bulletStrength");
|
||||
float flMultiplierShots = GetSubDefFloat(defName,"multiplierShots");
|
||||
float flMultiplierStrength = GetSubDefFloat(defName,"multiplierStrength");
|
||||
float flMultiplierInaccuracy = GetSubDefFloat(defName,"multiplierInaccuracy");
|
||||
float accuracy = Cstrike_CalculateAccuracy(ourOwner, flAccuracyDivisor, flAccuracyMovementPenalty) / flAccuracyMultiplier;
|
||||
accuracy += flAccuracyAdd;
|
||||
vector bulletSpread = [accuracy, accuracy];
|
||||
|
||||
|
||||
/* always fire at least 1 */
|
||||
if (numProjectiles <= 0i) {
|
||||
|
@ -120,19 +122,6 @@ CSWeapon::FiredWeaponAttack(string defName)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
CSWeapon::Draw(void)
|
||||
{
|
||||
super::Draw();
|
||||
|
||||
#ifdef CLIENT
|
||||
CSPlayer ourOwner = (CSPlayer)owner;
|
||||
ourOwner.cs_cross_mindist = GetDefInt("crossMinDist");
|
||||
ourOwner.cs_cross_deltadist = GetDefInt("crossDeltaDist");
|
||||
CStrikeView_UpdateGeomset(ourOwner);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
CSWeapon::Release(void)
|
||||
{
|
||||
|
@ -142,6 +131,35 @@ CSWeapon::Release(void)
|
|||
super::Release();
|
||||
}
|
||||
|
||||
void
|
||||
CSWeapon::UpdateFireInfoCache(void)
|
||||
{
|
||||
super::UpdateFireInfoCache();
|
||||
|
||||
numProjectiles = GetSubDefInt(m_strLastFireInfo, "numProjectiles");
|
||||
traceInfo = GetSubDefString(m_strLastFireInfo, "def_onFire");
|
||||
flAccuracyDivisor = GetSubDefFloat(m_strLastFireInfo,"accuracyDivisor");
|
||||
flAccuracyMovementPenalty = GetSubDefFloat(m_strLastFireInfo,"accuracyMovementPenalty");
|
||||
flAccuracyMultiplier = GetSubDefFloat(m_strLastFireInfo,"accuracyMultiplier");
|
||||
flAccuracyAdd= GetSubDefFloat(m_strLastFireInfo,"accuracyAdd");
|
||||
flRangeModifier = GetSubDefFloat(m_strLastFireInfo,"rangeModifier");
|
||||
flPenetrationPower = GetSubDefFloat(m_strLastFireInfo,"penetrationPower");
|
||||
flBulletStrength = GetSubDefFloat(m_strLastFireInfo,"bulletStrength");
|
||||
flMultiplierShots = GetSubDefFloat(m_strLastFireInfo,"multiplierShots");
|
||||
flMultiplierStrength = GetSubDefFloat(m_strLastFireInfo,"multiplierStrength");
|
||||
flMultiplierInaccuracy = GetSubDefFloat(m_strLastFireInfo,"multiplierInaccuracy");
|
||||
accuracy = Cstrike_CalculateAccuracy(owner, flAccuracyDivisor, flAccuracyMovementPenalty) / flAccuracyMultiplier;
|
||||
accuracy += flAccuracyAdd;
|
||||
bulletSpread = [accuracy, accuracy];
|
||||
|
||||
#ifdef CLIENT
|
||||
CSPlayer ourOwner = (CSPlayer)owner;
|
||||
ourOwner.cs_cross_mindist = GetSubDefInt(m_strLastFireInfo, "crossMinDist");
|
||||
ourOwner.cs_cross_deltadist = GetSubDefInt(m_strLastFireInfo, "crossDeltaDist");
|
||||
CStrikeView_UpdateGeomset(ourOwner);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef CLIENT
|
||||
void
|
||||
CSWeapon::AddedToInventory(void)
|
||||
|
|
Loading…
Reference in a new issue