Latest Reversed ILTModel Functions
Hi again

I'm going to share ILTModel Functions with you

Code:
class ILTModel
{
public:
LTRESULT GetPiece(HOBJECT hObj, const char *pPieceName, HMODELPIECE &hPiece) //0x0028
{
typedef LTRESULT(__thiscall* GetPieceFn)(void*, HOBJECT hObj, const char *pPieceName, HMODELPIECE &hPiece);
return GetVFunc<GetPieceFn>(this, 10)(this, hObj, pPieceName, hPiece);
}
LTRESULT GetPieceHideStatus(HOBJECT hObj, HMODELPIECE hPiece, bool &bHidden) //0x002C
{
typedef LTRESULT(__thiscall* GetPieceHideStatusFn)(void*, HOBJECT hObj, HMODELPIECE hPiece, bool &bHidden);
return GetVFunc<GetPieceHideStatusFn>(this, 11)(this, hObj, hPiece, bHidden);
}
LTRESULT SetPieceHideStatus(HOBJECT hObj, HMODELPIECE hPiece, bool bHidden)
{
typedef LTRESULT(__thiscall* SetPieceHideStatusFn)(void*, HOBJECT hObj, HMODELPIECE hPiece, bool bHidden);
return GetVFunc<SetPieceHideStatusFn>(this, 12)(this, hObj, hPiece, bHidden);
}
LTRESULT GetNode(HOBJECT hObj, const char *pNodeName, HMODELNODE &hNode) //0x0034
{
typedef LTRESULT(__thiscall* GetNodeFn)(void*, HOBJECT hObj, const char *pNodeName, HMODELNODE &hNode);
return GetVFunc<GetNodeFn>(this, 13)(this, hObj, pNodeName, hNode);
}
LTRESULT GetNodeName(HOBJECT hObj, HMODELNODE hNode, char *name, uint32 maxlen) //0x0038
{
typedef LTRESULT(__thiscall* GetNodeNameFn)(void*, HOBJECT hObj, HMODELNODE hNode, char *name, uint32 maxlen);
return GetVFunc<GetNodeNameFn>(this, 14)(this, hObj, hNode, name, maxlen);
}
LTRESULT GetNodeTransform(HOBJECT hObj, HMODELNODE hNode, LTransform &transform, bool bWorldSpace) //0x003C
{
typedef LTRESULT(__thiscall* GetNodeTransformFn)(void*, HOBJECT hObj, HMODELNODE hNode, LTransform &transform, bool bWorldSpace);
return GetVFunc<GetNodeTransformFn>(this, 15)(this, hObj, hNode, transform, bWorldSpace);
}
LTRESULT GetNumChildren(HOBJECT hObj, HMODELNODE hNode, uint32 &NumChildren) //0x0048
{
typedef LTRESULT(__thiscall* GetNumChildrenFn)(void*, HOBJECT hObj, HMODELNODE hNode, uint32 &NumChildren);
return GetVFunc<GetNumChildrenFn>(this, 18)(this, hObj, hNode, NumChildren);
}
LTRESULT GetChild(HOBJECT hObj, HMODELNODE parent, uint32 index, HMODELNODE &child) //0x004C
{
typedef LTRESULT(__thiscall* GetChildFn)(void*, HOBJECT hObj, HMODELNODE parent, uint32 index, HMODELNODE &child);
return GetVFunc<GetChildFn>(this, 19)(this, hObj, parent, index, child);
}
LTRESULT GetParent(HOBJECT hObj, HMODELNODE node, HMODELNODE &parent) //0x0050
{
typedef LTRESULT(__thiscall* GetParentFn)(void*, HOBJECT hObj, HMODELNODE node, HMODELNODE &parent);
return GetVFunc<GetParentFn>(this, 20)(this, hObj, node, parent);
}
LTRESULT GetNumNodes(HOBJECT hObj, uint32 &num_nodes) //0x0058
{
typedef LTRESULT(__thiscall* GetNumNodesFn)(void*, HOBJECT hObj, uint32 &num_nodes);
return GetVFunc<GetNumNodesFn>(this, 22)(this, hObj, num_nodes);
}
LTRESULT UpdateMainTracker(HOBJECT hObj, float fUpdateDelta) //0x006C
{
typedef LTRESULT(__thiscall* UpdateMainTrackerFn)(void*, HOBJECT hObj, float fUpdateDelta);
return GetVFunc<UpdateMainTrackerFn>(this, 27)(this, hObj, fUpdateDelta);
}
LTRESULT GetCurAnimLength(HOBJECT hModel, ANIMTRACKERID TrackerID, uint32 &length) //0x0074
{
typedef LTRESULT(__thiscall* GetCurAnimLengthFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID, uint32 &length);
return GetVFunc<GetCurAnimLengthFn>(this, 29)(this, hModel, TrackerID, length);
}
LTRESULT GetWeightSet( HOBJECT hModel, ANIMTRACKERID TrackerID, HMODELWEIGHTSET &hSet) //0x007C
{
typedef LTRESULT(__thiscall* GetWeightSetFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID, HMODELWEIGHTSET &hSet);
return GetVFunc<GetWeightSetFn>(this, 31)(this, hModel, TrackerID, hSet);
}
LTRESULT GetPlaybackState(HOBJECT hModel, ANIMTRACKERID TrackerID, uint32 &flags) //0x0084
{
typedef LTRESULT(__thiscall* GetPlaybackStateFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID, uint32 &flags);
return GetVFunc<GetPlaybackStateFn>(this, 33)(this, hModel, TrackerID, flags);
}
LTRESULT AddTracker(HOBJECT hModel, ANIMTRACKERID TrackerID) //0x0088
{
typedef LTRESULT(__thiscall* AddTrackerFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID);
return GetVFunc<AddTrackerFn>(this, 34)(this, hModel, TrackerID);
}
LTRESULT RemoveTracker(HOBJECT hModel, ANIMTRACKERID TrackerID) //0x008C
{
typedef LTRESULT(__thiscall* RemoveTrackerFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID);
return GetVFunc<RemoveTrackerFn>(this, 35)(this, hModel, TrackerID);
}
LTRESULT GetAnimIndex(HOBJECT hModel, const char *pAnimName, uint32 & anim_index) //0x0090
{
typedef LTRESULT(__thiscall* GetAnimIndexFn)(void*, HOBJECT hModel, const char *pAnimName, uint32 & anim_index);
return GetVFunc<GetAnimIndexFn>(this, 36)(this, hModel, pAnimName, anim_index);
}
LTRESULT GetCurAnim(HOBJECT hModel, ANIMTRACKERID TrackerID, HMODELANIM &hAnim) //0x0098
{
typedef LTRESULT(__thiscall* GetCurAnimFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID, HMODELANIM &hAnim);
return GetVFunc<GetCurAnimFn>(this, 38)(this, hModel, TrackerID, hAnim);
}
LTRESULT ResetAnim(HOBJECT hModel, ANIMTRACKERID TrackerID) //0x00A0
{
typedef LTRESULT(__thiscall* ResetAnimFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID);
return GetVFunc<ResetAnimFn>(this, 40)(this, hModel, TrackerID);
}
LTRESULT GetLooping(HOBJECT hModel, ANIMTRACKERID TrackerID) //0x00A4
{
typedef LTRESULT(__thiscall* GetLoopingFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID);
return GetVFunc<GetLoopingFn>(this, 41)(this, hModel, TrackerID);
}
LTRESULT SetLooping(HOBJECT hModel, ANIMTRACKERID TrackerID, bool bLooping) //0x00A8
{
typedef LTRESULT(__thiscall* SetLoopingFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID, bool bLooping);
return GetVFunc<SetLoopingFn>(this, 42)(this, hModel, TrackerID, bLooping);
}
LTRESULT GetPlaying(HOBJECT hModel, ANIMTRACKERID TrackerID) //0x00AC
{
typedef LTRESULT(__thiscall* GetPlayingFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID);
return GetVFunc<GetPlayingFn>(this, 43)(this, hModel, TrackerID);
}
LTRESULT SetPlaying(HOBJECT hModel, ANIMTRACKERID TrackerID, bool bPlaying) //0x00B0
{
typedef LTRESULT(__thiscall* SetPlayingFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID, bool bPlaying);
return GetVFunc<SetPlayingFn>(this, 44)(this, hModel, TrackerID, bPlaying);
}
LTRESULT GetCurAnimTime(HOBJECT hModel, ANIMTRACKERID TrackerID, uint32 &curTime) //0x00B8
{
typedef LTRESULT(__thiscall* GetCurAnimTimeFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID, uint32 &curTime);
return GetVFunc<GetCurAnimTimeFn>(this, 46)(this, hModel, TrackerID, curTime);
}
LTRESULT SetCurAnimTime( HOBJECT hModel, ANIMTRACKERID TrackerID, uint32 curTime) //0x00C0
{
typedef LTRESULT(__thiscall* SetCurAnimTimeFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID, uint32 &curTime);
return GetVFunc<SetCurAnimTimeFn>(this, 48)(this, hModel, TrackerID, curTime);
}
LTRESULT SetAnimRate(HOBJECT hModel, ANIMTRACKERID TrackerID, float fRate) //0x00C4
{
typedef LTRESULT(__thiscall* SetAnimRateFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID, float fRate);
return GetVFunc<SetAnimRateFn>(this, 49)(this, hModel, TrackerID, fRate);
}
LTRESULT GetAnimRate(HOBJECT hModel, ANIMTRACKERID TrackerID, float &fRate) //0x00C8
{
typedef LTRESULT(__thiscall* GetAnimRateFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID, float fRate);
return GetVFunc<GetAnimRateFn>(this, 50)(this, hModel, TrackerID, fRate);
}
LTRESULT SetWeightSet(HOBJECT hModel, ANIMTRACKERID TrackerID, HMODELWEIGHTSET hSet) //0x00D0
{
typedef LTRESULT(__thiscall* SetWeightSetFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID, HMODELWEIGHTSET hSet);
return GetVFunc<SetWeightSetFn>(this, 52)(this, hModel, TrackerID, hSet);
}
LTRESULT GetNumLODs(HOBJECT hModel, HMODELPIECE hPiece, uint32 &num_lods) //0x00D4
{
typedef LTRESULT(__thiscall* GetNumLODsFn)(void*, HOBJECT hModel, HMODELPIECE hPiece, uint32 &num_lods);
return GetVFunc<GetNumLODsFn>(this, 53)(this, hModel, hPiece, num_lods);
}
LTRESULT GetLODValFromDist(HOBJECT hModel, HMODELPIECE hPiece, float dist, uint32 &lod_index) //0x00D8
{
typedef LTRESULT(__thiscall* GetLODValFromDistFn)(void*, HOBJECT hModel, HMODELPIECE hPiece, float dist, uint32 &lod_index);
return GetVFunc<GetLODValFromDistFn>(this, 54)(this, hModel, hPiece, dist, lod_index);
}
LTRESULT ApplyAnimations(HOBJECT hModel) //0x00DC
{
typedef LTRESULT(__thiscall* ApplyAnimationsFn)(void*, HOBJECT hModel);
return GetVFunc<ApplyAnimationsFn>(this, 55)(this, hModel);
}
LTRESULT GetFilenames(HOBJECT hObj, char *pFilename, uint32 fileBufLen, char *pSkinName, uint32 skinBufLen)
{
typedef LTRESULT(__thiscall* GetFilenamesFn)(void*, HOBJECT hObj, char *pFilename, uint32 fileBufLen, char *pSkinName, uint32 skinBufLen);
return GetVFunc<GetFilenamesFn>(this, 56)(this, hObj, pFilename, fileBufLen, pSkinName, skinBufLen);
}
LTRESULT GetNumModelOBBs(HOBJECT hObj, uint32 & num_obbs) //0x00EC
{
typedef LTRESULT(__thiscall* GetNumModelOBBsFn)(void*, HOBJECT hObj, uint32 & num_obbs);
return GetVFunc<GetNumModelOBBsFn>(this, 59)(this, hObj, num_obbs);
}
LTRESULT GetModelOBBCopy(HOBJECT hObj, ModelOBB *name_obb) //0x00F0
{
typedef LTRESULT(__thiscall* GetModelOBBCopyFn)(void*, HOBJECT hObj, ModelOBB *name_obb);
return GetVFunc<GetModelOBBCopyFn>(this, 60)(this, hObj, name_obb);
}
LTRESULT GetRenderStyle(HOBJECT hModel, uint32 hPiece, CRenderStyle** ppRenderStyle)//0x0134
{
typedef LTRESULT(__thiscall* GetRenderStyleFn)(void*, HOBJECT hModel, uint32 hPiece, CRenderStyle** ppRenderStyle);
return GetVFunc<GetRenderStyleFn>(this, 77)(this, hModel, hPiece, ppRenderStyle);
}
LTRESULT SetRenderStyle(HOBJECT pModel, uint32 hPiece, CRenderStyle* pRenderStyle)//0x0138
{
typedef LTRESULT(__thiscall* SetRenderStyleFn)(void*, HOBJECT pModel, uint32 hPiece, CRenderStyle* pRenderStyle);
return GetVFunc<SetRenderStyleFn>(this, 78)(this, pModel, hPiece, pRenderStyle);
}
LTRESULT GetSocket(HOBJECT hObj, const char *pSocketName, HMODELSOCKET &hSocket) //0x0168
{
typedef LTRESULT(__thiscall* GetSocketFn)(void*, HOBJECT hObj, const char *pSocketName, HMODELSOCKET &hSocket);
return GetVFunc<GetSocketFn>(this, 90)(this, hObj, pSocketName, hSocket);
}
LTRESULT GetSocketTransform(HOBJECT hObj, HMODELSOCKET hSocket, LTransform &transform, bool bWorldSpace) //0x016C
{
typedef LTRESULT(__thiscall* GetSocketTransformFn)(void*, HOBJECT hObj, HMODELSOCKET hSocket, LTransform &transform, bool bWorldSpace);
return GetVFunc<GetSocketTransformFn>(this, 91)(this, hObj, hSocket, transform, bWorldSpace);
}
LTRESULT SetCurAnim(HOBJECT hModel, ANIMTRACKERID TrackerID, HMODELANIM hAnim) //0x01E8
{
typedef LTRESULT(__thiscall* SetCurAnimFn)(void*, HOBJECT hModel, ANIMTRACKERID TrackerID, HMODELANIM hAnim);
return GetVFunc<SetCurAnimFn>(this, 122)(this, hModel, TrackerID, hAnim);
}
}; //Size: 0x0844
This functions for Crossfire NA/West
I Hope I gave helpfully things
Credits: jsj2008, Google , REClass and Me

