//-------------------------------------- //--- 010 Editor v5.0 Binary Template // // File: // Author: // Revision: // Purpose: //-------------------------------------- enum EParmType { kPT_Int32, kPT_Uint32, kPT_Real32, kPT_Bool, kPT_Enum }; enum EWeightFunction { kWF_ExactMatch, kWF_PercentError, kWF_AngularPercent, kWF_NoWeight, }; struct CPASParmInfo { EParmType type; EWeightFunction weightFunction; float weight; switch(type) { case kPT_Int32: int min; int max; break; case kPT_Uint32: uint min; uint max; break; case kPT_Real32: float min; float max; break; case kPT_Bool: byte min; byte max; break; case kPT_Enum: uint min; uint max; break; } }; struct CPASAnimState { uint stateId; uint parmInfoCount; uint animInfoCount; CPASParmInfo parmInfo[parmInfoCount] ; local uint i; struct PASAnimInfo { uint animId; for (i = 0; i < parmInfoCount; i++) { switch(parmInfo[i].type) { case kPT_Int32: int val; break; case kPT_Uint32: uint val; break; case kPT_Real32: float val; break; case kPT_Bool: byte val; break; case kPT_Enum: uint val; break; } } } animInfo[animInfoCount] ; }; struct CPASDatabase { uint magic; uint animStateCount; uint defaultState; CPASAnimState animStates[animStateCount] ; };