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 | }; |