View difference between Paste ID: iHJGJQEX and z5vaBPHL
SHOW: | | - or go back to the newest paste.
1
// sequence descriptions
2
struct mstudioseqdesc37_t
3
{
4
	int	szlabelindex;
5
	inline char * const pszLabel( void ) const { return ((char *)this) + szlabelindex; }
6
7
	int	szactivitynameindex;
8
	inline char * const pszActivityName( void ) const { return ((char *)this) + szactivitynameindex; }
9
10
	int	flags;		// looping/non-looping flags
11
12
	int	activity;	// initialized at loadtime to game DLL values
13
	int	actweight;
14
15
	int	numevents;
16
	int	eventindex;
17
	inline mstudioevent_t *pEvent( int i ) const { return (mstudioevent_t *)(((byte *)this) + eventindex) + i; };
18
19
	Vector	bbmin;		// per sequence bounding box
20
	Vector	bbmax;		
21
22
	int	numblends;
23
24
	int					blendindex;	// [blend] float array for blended movement
25
	inline				unsigned short *pBlend( int i ) const { return (unsigned short *)(((byte *)this) + blendindex) + i; };
26
27
	int					seqgroup;	// sequence group for demand loading
28
29
	int	groupsize[2];
30
	int	paramindex[2];	// X, Y, Z, XR, YR, ZR
31
	float	paramstart[2];	// local (0..1) starting value
32
	float	paramend[2];	// local (0..1) ending value
33
	int	paramparent;
34
35
36
	float	fadeintime;	// ideal cross fate in time (0.2 default)
37
	float	fadeouttime;	// ideal cross fade out time (0.2 default)
38
39
	int	entrynode;	// transition node at entry
40
	int	exitnode;	// transition node at exit
41
	int	nodeflags;	// transition rules
42
43
	float	entryphase;	// used to match entry gait
44
	float	exitphase;	// used to match exit gait
45
	
46
	float	lastframe;	// frame that should generation EndOfSequence
47
48
	int	nextseq;	// auto advancing sequences
49
	int	pose;		// index of delta animation between end and nextseq
50
51
	int	numikrules;
52
53
	int	numautolayers;
54
	int	autolayerindex;
55
	inline mstudioautolayer_t *pAutolayer( int i ) const { return (mstudioautolayer_t *)(((byte *)this) + autolayerindex) + i; };
56
57
	int	weightlistindex;
58
	float	*pBoneweight( int i ) const { return ((float *)(((byte *)this) + weightlistindex) + i); };
59
	float	weight( int i ) const { return *(pBoneweight( i)); };
60
61
	int	posekeyindex;
62
	float				*pPoseKey( int iParam, int iAnim ) const { return (float *)(((byte *)this) + posekeyindex) + iParam * groupsize[0] + iAnim; }
63
	float				poseKey( int iParam, int iAnim ) const { return *(pPoseKey( iParam, iAnim )); }
64
65
	int	numiklocks;
66
	int	iklockindex;
67
	inline mstudioiklock_t *pIKLock( int i ) const { return (mstudioiklock_t *)(((byte *)this) + iklockindex) + i; };
68
69
	// Key values
70
	int	keyvalueindex;
71
	int	keyvaluesize;
72
	inline const char * KeyValueText( void ) const { return keyvaluesize != 0 ? ((char *)this) + keyvalueindex : NULL; }
73
74
	int	unused[3];		// remove/add as appropriate
75
};