Vehicle Asset (MW3)
The vehicle asset is a was added on Modern Warfare 2 and has been on every Call of Duty game since except for Black Ops 1. The purpose of this asset is to declare vehicles, mostly used for killstreaks.
enum VehicleAxleType
{
VEH_AXLE_FRONT = 0x0,
VEH_AXLE_REAR = 0x1,
VEH_AXLE_ALL = 0x2,
VEH_AXLE_COUNT = 0x3,
};
struct VehiclePhysDef
{
int physicsEnabled;
const char *physPresetName;
PhysPreset *physPreset;
const char *accelGraphName;
VehicleAxleType steeringAxle;
VehicleAxleType powerAxle;
VehicleAxleType brakingAxle;
float topSpeed;
float reverseSpeed;
float maxVelocity;
float maxPitch;
float maxRoll;
float suspensionTravelFront;
float suspensionTravelRear;
float suspensionStrengthFront;
float suspensionDampingFront;
float suspensionStrengthRear;
float suspensionDampingRear;
float frictionBraking;
float frictionCoasting;
float frictionTopSpeed;
float frictionSide;
float frictionSideRear;
float velocityDependentSlip;
float rollStability;
float rollResistance;
float pitchResistance;
float yawResistance;
float uprightStrengthPitch;
float uprightStrengthRoll;
float targetAirPitch;
float airYawTorque;
float airPitchTorque;
float minimumMomentumForCollision;
float collisionLaunchForceScale;
float wreckedMassScale;
float wreckedBodyFriction;
float minimumJoltForNotify;
float slipThreshholdFront;
float slipThreshholdRear;
float slipFricScaleFront;
float slipFricScaleRear;
float slipFricRateFront;
float slipFricRateRear;
float slipYawTorque;
};
enum VehicleType : int
{
VEH_WHEELS_4 = 0x0,
VEH_TANK = 0x1,
VEH_PLANE = 0x2,
VEH_BOAT = 0x3,
VEH_ARTILLERY = 0x4,
VEH_HELICOPTER = 0x5,
VEH_SNOWMOBILE = 0x6,
VEH_TYPE_COUNT = 0x7,
};
enum VehicleTurretFireType
{
VEH_TURRET_SINGLE_FIRE = 0x0,
VEH_TURRET_DUAL_FIRE = 0x1,
VEH_TURRET_ALT_FIRE = 0x2,
VEH_TURRET_FIRE_TYPE_COUNT = 0x3,
};
struct VehicleDef
{
const char *name;
int type;
const char *useHintString;
int health;
int quadBarrel;
int hitClientScriptables;
float texScrollScale;
float topSpeed;
float accel;
float rotRate;
float rotAccel;
float maxBodyPitch;
float maxBodyRoll;
float fakeBodyAccelPitch;
float fakeBodyAccelRoll;
float fakeBodyVelPitch;
float fakeBodyVelRoll;
float fakeBodySideVelPitch;
float fakeBodySidePitchStrength;
float fakeBodyRollStrength;
float fakeBodyPitchDampening;
float fakeBodyRollDampening;
float fakeBodyBoatRockingAmplitude;
float fakeBodyBoatRockingPeriod;
float fakeBodyBoatRockingRotationPeriod;
float fakeBodyBoatRockingFadeoutSpeed;
float boatBouncingMinForce;
float boatBouncingMaxForce;
float boatBouncingRate;
float boatBouncingFadeinSpeed;
float boatBouncingFadeoutSteeringAngle;
float collisionDamage;
float collisionSpeed;
float killcamOffset[3];
int playerProtected;
int bulletDamage;
int armorPiercingDamage;
int grenadeDamage;
int projectileDamage;
int projectileSplashDamage;
int heavyExplosiveDamage;
VehiclePhysDef vehPhysDef;
char unknown2[0x120];
const char * turretWeaponName;
WeaponCompleteDef *turretWeapon;
float turretHorizSpanLeft;
float turretHorizSpanRight;
float turretVertSpanUp;
float turretVertSpanDown;
float turretHorizResistLeft;
float turretHorizResistRight;
float turretVertResistUp;
float turretVertResistDown;
float turretRotRate;
VehicleTurretFireType turretFireType;
snd_alias_list_name turretSpinSnd;
snd_alias_list_name turretStopSnd;
int trophyEnabled;
float trophyRadius;
float trophyInactiveRadius;
int trophyAmmoCount;
float trophyReloadTime;
ScriptString trophyTags[4];
FxEffectDef* trophyExplodeFx;
FxEffectDef* trophyFlashFx;
Material *compassFriendlyIcon;
Material *compassEnemyIcon;
Material *compassFriendlyAltIcon;
Material *compassEnemyAltIcon;
int compassIconWidth;
int compassIconHeight;
snd_alias_list_name idleLowSound;
snd_alias_list_name idleHighSound;
snd_alias_list_name engineLowSound;
snd_alias_list_name engineHighSound;
float engineSndSpeed;
ScriptString audioOriginTag;
snd_alias_list_name idleLowSndAlt;
snd_alias_list_name idleHighSndAlt;
snd_alias_list_name engineLowSndAlt;
snd_alias_list_name engineHighSndAlt;
float engineSndSpeedAlt;
ScriptString audioOriginTagAlt;
snd_alias_list_name turretSpinSndAlt;
snd_alias_list_name turretStopSndAlt;
snd_alias_list_name engineStartUpSnd;
int engineStartUpLength;
snd_alias_list_name engineShutdownSnd;
snd_alias_list_name engineIdleSnd;
snd_alias_list_name engineSustainSnd;
snd_alias_list_name engineRampUpSnd;
int engineRampUpLength;
snd_alias_list_name engineRampDownSnd;
int engineRampDownLength;
snd_alias_list_name suspensionSoftSnd;
float suspensionSoftCompression;
snd_alias_list_name suspensionHardSnd;
float suspensionHardConpression;
snd_alias_list_name collisionSnd;
float collisionBlendSpeed;
snd_alias_list_name speedSnd;
float speedSndBlendSpeed;
const char *surfaceSndPrefix;
snd_alias_list_name surfaceSounds[0x1F];
float surfaceSndBlendSpeed;
float slideVolume;
float slideBlendSpeed;
float inAirPitch;
};Source Format
The vehicle source files are raw text files with no extension, located at "raw/vehicles/". They use the same format as many other assets, with each setting name and value separated by a back-slash. The first setting identifies the file, and for vehicles the identifier string is "VEHICLEFILE".