PhysConstraints Asset: Difference between revisions

From COD Engine Research
mNo edit summary
mNo edit summary
Line 3: Line 3:
[[Category:BO1]]
[[Category:BO1]]
[[Category:BO2]]
[[Category:BO2]]
The physconstraints asset holds physical constraint settings for dynamic models. This asset exists only in Black Ops 1 and Black Ops 2.
The physconstraints asset holds physical constraint settings for dynamic models. This asset exists only in World at War, Black Ops 1 and Black Ops 2.
<syntaxhighlight lang="cpp">
<syntaxhighlight lang="cpp">
enum ConstraintType
enum ConstraintType
Line 52: Line 52:
float max_angle;
float max_angle;
Material *material;
Material *material;
  char unknownData4[0x18];
  char unknownData4[8];
#ifdef BO1 || BO2
  int unknown5[4];
#endif
};
};



Revision as of 06:32, 16 January 2014

The physconstraints asset holds physical constraint settings for dynamic models. This asset exists only in World at War, Black Ops 1 and Black Ops 2.

enum ConstraintType
{
	CONSTRAINT_NONE = 0x0,
	CONSTRAINT_POINT = 0x1,
	CONSTRAINT_DISTANCE = 0x2,
	CONSTRAINT_HINGE = 0x3,
	CONSTRAINT_JOINT = 0x4,
	CONSTRAINT_ACTUATOR = 0x5,
	CONSTRAINT_FAKE_SHAKE = 0x6,
	CONSTRAINT_LAUNCH = 0x7,
	CONSTRAINT_ROPE = 0x8,
	CONSTRAINT_LIGHT = 0x9,
	NUM_CONSTRAINT_TYPES
};

struct PhysConstraint	// 0xA8
{
	   ScriptString scriptString1;
	   short unknownShort1;
	ConstraintType type;
	   char unknownData1[8];
	   ScriptString scriptString2;
	   short unknownShort2;
	char * bone1_name;
	   char unknownData2[8];
	   ScriptString scriptString3;
	   short unknownShort3;
	char * bone2_name;
	float offsetX;
	float offsetY;
	float offsetZ;
	   float unknown1[3];
	   float unknown2[3];
	   float unknown3[3];
	int timeout;
	int min_health;
	int max_health;
	    int unknown4;
	float damp;
	float power;
	float shakescalex;
	float shakescaley;
	float shakescalez;
	float spin_scale;
	float min_angle;
	float max_angle;
	Material *material;
	   char unknownData4[8];
#ifdef BO1 || BO2
	   int unknown5[4];
#endif
};

struct PhysConstraints	// 0xA88
{
	char * name;
	int usedConstraints;
	PhysConstraint contraints[0x10];
};

Source Format

The physconstraints source files are raw text files with no extension, located at "raw/physconstraints/". 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 physconstraints the identifier string is "PHYSCONSTRAINTS". For example, here is "veh_car_launch_glass_f_mp" from BO1:

PHYSCONSTRAINTS\c1_type\launch\c1_bone1_name\\c1_bone2_name\\c1_timeout\0\c1_offsetX\0\c1_offsetY\0\c1_offsetZ\0\c1_min_health\-10000\c1_max_health\10000\c1_damp\2\c1_power\2\c1_shakescalex\0.5\c1_shakescaley\0.5\c1_shakescalez\1\c1_min_angle\0\c1_max_angle\0\c1_yaw\0\c1_pitch\45\c1_spin_scale\3\c2_type\none\c2_bone1_name\\c2_bone2_name\\c2_timeout\0\c2_offsetX\0\c2_offsetY\0\c2_offsetZ\0\c2_min_health\-10000\c2_max_health\10000\c2_damp\0\c2_power\0\c2_min_angle\0\c2_max_angle\0\c3_type\none\c3_bone1_name\\c3_bone2_name\\c3_timeout\0\c3_offsetX\0\c3_offsetY\0\c3_offsetZ\0\c3_min_health\-10000\c3_max_health\10000\c3_damp\0\c3_power\0\c3_min_angle\0\c3_max_angle\0\c4_type\none\c4_bone1_name\\c4_bone2_name\\c4_timeout\0\c4_offsetX\0\c4_offsetY\0\c4_offsetZ\0\c4_min_health\-10000\c4_max_health\10000\c4_damp\0\c4_power\0\c4_min_angle\0\c4_max_angle\0