Updated FileWeaponInfo_t for L4D2, along with L4D2's CCSWeaponInfo and CTerrorWeaponInfo...
Patch for FileWeapoInfo_t on hl2sdk-l4d2:
https://bugs.alliedmods.net/show_bug.cgi?id=4744
CCSWeaponInfo + CTerrorWeaponInfo:
PHP Code:
class CCSWeaponInfo : public FileWeaponInfo_t { // 866 bytes
public:
float m_fMaxPlayerSpeed; // 2192
int m_nWeaponType; // 2196
int m_nTeam; // 2200 // ANY = 0, TR = 2, CT = 3
float m_fBotAudiblerange; // 2204
float m_fWeaponArmorRatio; // 2208
int m_nCrosshairMinDistance; // 2212
int m_nCrosshariDeltaDistance; // 2216
bool m_bCanEquipWithShield; // 2220
char m_aWrongTeamMsg[32]; // 2221
char m_aPlayerAnimationExtension[16]; // 2253
char m_aShieldViewModel[64]; // 2269
char m_aAddonModel[80]; // 2333
char m_aAddonAttachment[80]; // 2413
int m_nMuzzleFlashStyle; // 2496 (not confirmed)
float m_fMuzzleFlashScale; // 2500
int m_nPenetration; // 2504
int m_nDamage; // 2508
float m_fRange; // 2512
float m_fRangeModifier; // 2516
int m_nBullets; // 2520
float m_fCycleTime; // 2524
int m_nAccuracyQuadratic; // 2528
float m_fAccuracyDivisor; // 2532
float m_fAccuracyOffset; // 2536
float m_fMaxInaccuracy; // 2540
float m_fTimeToIdle; // 2544
float m_fIdleInterval; // 2548
float m_fNoiseFactor; // 2552
int m_nBlackMarketPrice; // 2556
int m_nBlackMarketPrice2; // 2560
int m_nBlackMarketPreviousPrice; // 2564 (not confirmed)
char m_aResponseRulesName[80]; // 2568
char m_aMuzzleFlashEffect_1stPerson[80]; // 2648
char m_aMuzzleFlashEffect_3rdPerson[80]; // 2728
char m_aEjectBrassEffect[80]; // 2808
char m_aDisplayName[80]; // 2888
char m_aDisplayNameAllCaps[80]; // 2968
int m_iTier; // 3048
float m_fMusicDynamicSpeed; // 3052
bool m_bNewInL4D2; // 3056
bool m_bCSWeapon; // 3057
};
class CTerrorWeaponInfo : public CCSWeaponInfo {
public:
int m_iLoadoutSlots; // 3060
float m_fMaxAutoAimDeflection1; // 3064
float m_fMaxAutoAimRange1; // 3068
float m_fWeaponAutoAimScale; // 3072
float m_fVerticalPunch; // 3076
float m_fHorizontalPunch; // 3080
float m_fHorizontalPunchDirChance; // 3084
float m_fSpreadPerShot; // 3088
float m_fMaxSpread; // 3092
float m_fSpreadDecay; // 3096
float m_fMinDuckingSpread; // 3100
float m_fMinStandingSpread; // 3104
float m_fMinInAirSpread; // 3108
float m_fMaxMovementSpread; // 3112
float m_fPelletScatterPitch; // 3116
float m_fPelletScatterYaw; // 3120
float m_fUnknown; // 3124
float m_fReloadDuration; // 3128
float m_fDualReloadDuration; // 3132
float m_fDeployDuration; // 3136
float m_fDualDeployDuration; // 3140
float m_fPenetrationNumLayers; // 3144
float m_fPenetrationPower; // 3148
float m_fPenetrationMaxDistance; // 3152
float m_fCharacterPenetrationMaxDistance; // 3156
float m_fGainRange; // 3160
CUtlDict<const char*, unsigned short> m_tCharacterViewmodelAddon; // 3164
char m_aViewModelDual[80]; // 3192
char m_aPlayerModelDual[80]; // 3272
char m_aAddonAttachment2[80]; // 3352 Why is this duplicated from 2413
Vector m_vAddonOffest; // 3432 vector
Vector m_vAddonAngles; // 3444 vector
char m_aWorldModel[80]; // 3456
};
Wazz's code for finding the database should still work. The sig seems fine to me for l4d2. I can't seem to make it work in windows, though. I probably typo'd something in the gamedata.