Reversed LTModel [Latest]

Posts 1–2 of 2 · Page 1 of 1
Reversed LTModel [Latest]
Code:
class CLTModel
{
public:
    signed int GetSocket2(LTObject *hObj, const char *pSocketName, HMODELSOCKET &hSocket)
    {
        /*!
        \param hObj Model Reference.
        \param pSocketName name of the socket to be fetched.
        \param hSocket return parameter of socket handle.
        \return \b LT_NOTINITIALIZED if the Model Reference is invalid.
        \b LT_NOTFOUND if socket it not found in the model eference.
        Method used to get sockets handles from models by name.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetSocket2Fn)(void*, LTObject *hObj, const char *pSocketName, HMODELSOCKET &hSocket);
        return GetVFunc<GetSocket2Fn>(this, 6)(this, hObj, pSocketName, hSocket);
    }

    signed int GetSocket(LTObject *hObj, const char *pSocketName, HMODELSOCKET &hSocket)
    {
        /*!
        \param hObj Model Reference.
        \param pSocketName name of the socket to be fetched.
        \param hSocket return parameter of socket handle.
        \return \b LT_NOTINITIALIZED if the Model Reference is invalid.
        \b LT_NOTFOUND if socket it not found in the model eference.
        Method used to get sockets handles from models by name.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetSocketFn)(void*, LTObject *hObj, const char *pSocketName, HMODELSOCKET &hSocket);
        return GetVFunc<GetSocketFn>(this, 7)(this, hObj, pSocketName, hSocket);
    }

    signed int GetSocketTransform(LTObject *hObj, HMODELSOCKET hSocket, Transform &transform, bool bWorldSpace)
    {
        /*!
        \param hObj     Model instance handle.
        \param hSocket  Socket instance handle.
        \param transform  Transform
        \param bWorldSpace What space the transform is in in relation to parent, true is in world space, false the transform
        is local to model space.
        \return \b LT_OK if operation succeeded.
        \b LT_ERROR one of these caused the error :
        1. The transform hierarchy has become invalid, by having a transformation that
        is not invertable.
        2. the socket is invalid.
        \b LT_NOTINITIALIZED if there is no model associated with hObj.
        Fill \b pos and \b rot with the current transform for the socket. If
        \b bWorldSpace is \b TRUE, then the transform is returned in world
        space. Otherwise, the transform is local to the model (based on its
        position and rotation).
        \note This is potentially an expensive process: the model's animation has to be (partially)
        revaluated for every call to get GetSocketTransform. If this function is going to be called
        a lot, consider caching the animation data by enabling the transformation cache.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetSocketTransformFn)(void*, LTObject *hObj, HMODELSOCKET hSocket, Transform &transform, bool bWorldSpace);
        return GetVFunc<GetSocketTransformFn>(this, 8)(this, hObj, hSocket, transform, bWorldSpace);
    }

    signed int GetPiece(LTObject *hObj, const char *pPieceName, HMODELPIECE &hPiece)
    {
        /*!
        \param hObj       Model instance reference.
        \param pPieceName name of model piece.
        \param hPiece     return param handle.
        \return \b LT_OK is success .
        \b LT_NOTINITIALIZED if there is no model associated with hObj.
        \b LT_NOTFOUND  if the requested piece does not exist.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetPieceFn)(void*, LTObject *hObj, const char *pPieceName, HMODELPIECE &hPiece);
        return GetVFunc<GetPieceFn>(this, 10)(this, hObj, pPieceName, hPiece);
    }

    signed int GetPieceHideStatus(LTObject *hObj, HMODELPIECE hPiece, bool &bHidden)
    {
        /*!
        \param hObj   Model instance handle.
        \param hPiece Piece instance handle.
        \param bHidden return parameter on hidden status.
        \return \b LT_OK is success .
        \b LT_INVALIDPARAMS if hObj is not associated with an OT_MODEL
        Discover whether a piece on the model is hidden.  Only supports the
        first \em 32 pieces in the model.  SetPieceHideStatus() returns
        \b LT_NOCHANGE if the piece is already hidden (not an error).
        \see SetPieceHideStatus()
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetPieceHideStatusFn)(void*, LTObject *hObj, HMODELPIECE hPiece, bool &bHidden);
        return GetVFunc<GetPieceHideStatusFn>(this, 11)(this, hObj, hPiece, bHidden);
    }

    signed int SetPieceHideStatus(LTObject *hObj, HMODELPIECE hPiece, bool bHidden)
    {
        /*!
        \param hObj  Model instance handle.
        \param hPiece  Model piece instance handle.
        \param bHidden true/false param to switch the hidden status of piece.
        \return \b LT_OK is success .
        \b LT_INVALIDPARAMS if hObj is not associated with an OT_MODEL
        \b LT_NOCHANGE piece already hidden.
        Hide or unhide a piece on the model (they are all unhidden by
        default). Only supports the first \em 32 pieces in the model.
        SetPieceHideStatus() returns \b LT_NOCHANGE if the piece is already
        hidden (not an error).
        \see GetPieceHideStatus()
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* SetPieceHideStatusFn)(void*, LTObject *hObj, HMODELPIECE hPiece, bool bHidden);
        return GetVFunc<SetPieceHideStatusFn>(this, 12)(this, hObj, hPiece, bHidden);
    }

    signed int GetNode(LTObject *hObj, const char *pNodeName, UINT &hNode)
    {
        /*!
        \param hObj    Model instance name.
        \param pNodeName name of node in the model's model transformation hierarchy.
        \param hNode     return param holding a handle to node.
        \return \b LT_OK on success
        \b LT_INVALIDPARAMS if hObj is not an OT_MODEL
        \b LT_NOTINITIALIZED if hObj is not currently associated with a model.
        \b LT_NOTFOUND       if the requested node is not found.
        Get a handle on named node.
        \see GetNodeTransform
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetNodeFn)(void*, LTObject *hObj, const char *pNodeName, UINT &hNode);
        return GetVFunc<GetNodeFn>(this, 13)(this, hObj, pNodeName, hNode);
    }

    signed int GetNodeName(LTObject *hObj, UINT hNode, char *name, unsigned int maxlen)
    {
        /*!
        \param hObject Model to query.
        \param hNode Node to query.
        \param pName (return) Buffer to hold name.
        \param maxLen Length of buffer.
        \return \b LT_INVALIDPARAMS if a parameter is null, else \b LT_OK
        Get the name of a model transformation node.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetNodeNameFn)(void*, LTObject *hObj, UINT hNode, char *name, unsigned int maxlen);
        return GetVFunc<GetNodeNameFn>(this, 14)(this, hObj, hNode, name, maxlen);
    }

    signed int GetNodeTransform(LTObject *hObj, UINT hNode, Transform* transform, bool bWorldSpace)
    {
        /*!
        \param hObj Model instance handle.
        \param hNode    Model node handle.
        \param transform transform
        \param bWorldSpace
        \return \b LT_OK on success
        \b LT_INVALIDPARAMS if hObj is not an OT_MODEL
        \b LT_NOTINITIALIZED if hObj is not currently associated with a model.
        \b LT_ERROR if
        a) The transform hierarchy could not be evaluated for the model
        b) The resultant transformation is invalid.
        Get the transformation for a node on a model.  If \b bWorldSpace is \b
        TRUE, then the transform is returned in world space. Otherwise, the
        transform is local to the model.
        \see GetNode
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetNodeTransformFn)(void*, LTObject *hObj, UINT hNode, Transform* transform, bool bWorldSpace);
        return GetVFunc<GetNodeTransformFn>(this, 15)(this, hObj, hNode, transform, bWorldSpace);
    }

    signed int GetNextNode(LTObject *hObj, unsigned int hNode, unsigned int &pNext)
    {
        /*!
        \param hObject Model Instance.
        \param hNode Current node. Use \b INVALID_MODEL_NODE to get first node.
        \param pNext (return) Next node in list. \b LT_FINISHED means the end of the list.
        \return \b LT_FINISHED when there are no more; otherwise, returns \b LT_OK.
        Iterate through the nodes of the model. The order of the nodes is as if the
        hierarchy was traversed using pre-order traversal.
        \par    Example:
        \code
        HMODELNODE hCurNode = INVALID_MODEL_NODE;
        while (interface->GetNextModelNode(hModel, hCurNode, &hCurNode) == LT_OK)
        { ... }
        \endcode
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetNextNodeFn)(void*, LTObject *hObj, unsigned int hNode, unsigned int &pNext);
        return GetVFunc<GetNextNodeFn>(this, 16)(this, hObj, hNode, pNext);
    }

    signed int GetNumChildren(LTObject *hObj, unsigned int hNode, unsigned int &NumChildren)
    {
        /*!
        \param hObj ModelInstance handle
        \param hNode a handle to the node
        \param NumChildren return value of query.
        \return \bLT_INVALIDPARAMS if object is either invalid, or not an OT_MODEL
        Returns the number of children this node has. If it is a leaf in the transform hierarchy
        the value will be zero.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetNumChildrenFn)(void*, LTObject *hObj, unsigned int hNode, unsigned int &NumChildren);
        return GetVFunc<GetNumChildrenFn>(this, 18)(this, hObj, hNode, NumChildren);
    }

    signed int GetChild(LTObject *hObj, unsigned int parent, unsigned int index, unsigned int &child)
    {
        /*!
        \param hObj ModelInstance handle
        \param hNode a handle to the parent node
        \param index
        \param NumChildren return value of query.
        \return \bLT_INVALIDPARAMS if object is either invalid, or not an OT_MODEL
        GetChild returns a handle to the nth child of parent indicated.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetChildFn)(void*, LTObject *hObj, unsigned int parent, unsigned int index, unsigned int &child);
        return GetVFunc<GetChildFn>(this, 19)(this, hObj, parent, index, child);
    }

    signed int GetParent(LTObject *hObj, unsigned int node, unsigned int &parent)
    {
        /*!
        \param hObj ModelInstance handle
        \param hNode a handle to the node
        \param parent a handle to the parent of the node.
        \return \bLT_INVALIDPARAMS if object is either invalid, or not an OT_MODEL
        Given a node, return a handle to its parent. The value INVALID_MODEL_NODE will
        be returned if the node is the root node.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetParentFn)(void*, LTObject *hObj, unsigned int node, unsigned int &parent);
        return GetVFunc<GetParentFn>(this, 20)(this, hObj, node, parent);
    }

    signed int GetNumNodes(LTObject *hObj, unsigned int &num_nodes)
    {
        /*!
        \param hObj ModelInstance handle
        \param NumNodes return value.
        \return \bLT_INVALIDPARAMS if object is either invalid, or not an OT_MODEL
        Returns the number of transformation nodes the model has.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetNumNodesFn)(void*, LTObject *hObj, unsigned int &num_nodes);
        return GetVFunc<GetNumNodesFn>(this, 21)(this, hObj, num_nodes);
    }

    /*signed int SetNodeControlFn(LTObject *hObj)
    {
        typedef signed int(__thiscall* SetNodeControlFn)(void*, LTObject *hObj);
        return GetVFunc<SetNodeControlFn>(this, 26)(this, hObj);
    }*/

    signed int UpdateMainTracker(LTObject *hObj, float fUpdateDelta)
    {
        /*!
        \param pObj Model Instance handle.
        \param fUpdateDelta time in miliseconds.
        \return \b LT_INVALIDPARAMS on invalid hObj, otherwise \b LT_OK.
        Update the main anim tracker by \b fUpdateDelta seconds (This is useful
        for updating the animation on a model outside of a client update.)
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* UpdateMainTrackerFn)(void*, LTObject *hObj, float fUpdateDelta);
        return GetVFunc<UpdateMainTrackerFn>(this, 27)(this, hObj, fUpdateDelta);
    }

    /*signed int GetCurAnimNameAndKeyString(LTObject *hObj)
    {
        typedef signed int(__thiscall* GetCurAnimNameAndKeyStringFn)(void*, LTObject *hObj);
        return GetVFunc<GetCurAnimNameAndKeyStringFn>(this, 30)(this, hObj);
    }*/

    signed int GetWeightSet2(LTObject *hObj, ANIMTRACKERID TrackerID, HMODELWEIGHTSET &hSet)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier
        \param hSet    Model animation blending weight set handle.
        \return \b LT_OK operation succeeded.
        \b LT_INVALIDPARAMS TrackerID is invalid
        \b LT_INVALIDVERSION if \em not using SMP networking
        Get the weight set for this tracker.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetWeightSetFn)(void*, LTObject *hObj, ANIMTRACKERID TrackerID, HMODELWEIGHTSET &hSet);
        return GetVFunc<GetWeightSetFn>(this, 31)(this, hObj, TrackerID, hSet);
    }

    signed int GetPlaybackState(LTObject *hObj, ANIMTRACKERID TrackerID, uint32 &flags)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier.
        \param flags     state flags.
        \return \b LT_INVALIDPARAMS on invalid hModel, \b LT_INVALIDVERSION if \em not using SMP networking, otherwise \b LT_OK.
        Fills in flags with a combination of the \b MS_ flags in basedefs_de.h.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetPlaybackStateFn)(void*, LTObject *hObj, ANIMTRACKERID TrackerID, uint32 &flags);
        return GetVFunc<GetPlaybackStateFn>(this, 33)(this, hObj, TrackerID, flags);
    }

    signed int AddTracker(LTObject *hObj, ANIMTRACKERID TrackerID)
    {
        /*!
        \param hModel     Model instance handle.
        \param hModel handle to a model.
        \param TrackerID  Animation tracker identifier to be associated with new tracker.
        \return \b LT_INVALIDPARAMS on invalid hModel,
        \b LT_OVERFLOW if there are already \b MAX_TRACKERS_PER_MODEL attached,
        \b LT_INVALIDVERSION if \em not using SMP networking,
        \b LT_ALREADYEXISTS if the TrackerID is already in use for the model instance,
        otherwise \b LT_OK.
        Add trackers on the model.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* AddTrackerFn)(void*, LTObject *hObj, ANIMTRACKERID TrackerID);
        return GetVFunc<AddTrackerFn>(this, 34)(this, hObj, TrackerID);
    }

    signed int RemoveTracker(LTObject *hObj, ANIMTRACKERID TrackerID)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier associated with tracker to remove.
        \return \b LT_INVALIDPARAMS on invalid hModel or if you try to remove the main tracker, \b LT_INVALIDVERSION if \em not using SMP networking, \b LT_NOTFOUND if TrackerID not in use for the model instance; otherwise \b LT_OK.
        Remove trackers on the model.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* RemoveTrackerFn)(void*, LTObject *hObj, ANIMTRACKERID TrackerID);
        return GetVFunc<RemoveTrackerFn>(this, 35)(this, hObj, TrackerID);
    }

    signed int GetAnimIndex(LTObject *hObj, const char *pAnimName, unsigned int &anim_index)
    {
        /*!
        \param hModel        Model instance handle.
        \param pAnimName    Name of the animation
        \param anim_index    return value: index of animation in model database.
        \return \b LT_INVALIDPARAMS on invalid hModel, or if there is no model database associated with hmodel.
        \b LT_OK
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetAnimIndexFn)(void*, LTObject *hObj, const char *pAnimName, unsigned int &anim_index);
        return GetVFunc<GetAnimIndexFn>(this, 36)(this, hObj, pAnimName, anim_index);
    }

    signed int GetCurAnim(LTObject *hObj, ANIMTRACKERID TrackerID, HMODELANIM  &Index)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier.
        \param hAnim    animation handle.
        \return \b LT_INVALIDPARAMS on invalid TrackerID, \b LT_INVALIDVERSION if \em not using SMP networking, otherwise \b LT_OK.
        Get the current animation for the tracker.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetCurAnimFn)(void*, LTObject *hObj, ANIMTRACKERID TrackerID, HMODELANIM  &Index);
        return GetVFunc<GetCurAnimFn>(this, 38)(this, hObj, TrackerID, Index);
    }

    signed int SetCurAnim(LTObject *hObj, UINT8 TrackerID, UINT8 Index)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier.
        \param hAnim    Animation Handle
        \return \b LT_INVALIDPARAMS on invalid TrackerID, \b LT_INVALIDVERSION if \em not using SMP networking, otherwise \b LT_OK.
        Set the current animation for the tracker.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* SetCurAnimFn)(void*, LTObject *hObj, UINT8 TrackerID, UINT8 Index);
        return GetVFunc<SetCurAnimFn>(this, 39)(this, hObj, TrackerID, Index);
    }

    signed int ResetAnim(LTObject *hObj, UINT8 TrackerID)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier.
        \return \b LT_INVALIDVERSION if \em not using SMP networking, otherwise LT_OK
        Resets all animation to first frame.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* ResetAnimFn)(void*, LTObject *hObj, UINT8 TrackerID);
        return GetVFunc<ResetAnimFn>(this, 40)(this, hObj, TrackerID);
    }

    signed int GetLooping(LTObject *hObj, UINT8 TrackerID)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier.
        \return \b LT_NO if not looping, or an error, \b LT_INVALIDVERSION if \em not using SMP networking; otherwise, returns \b LT_YES.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetLoopingFn)(void*, LTObject *hObj, UINT8 TrackerID);
        return GetVFunc<GetLoopingFn>(this, 41)(this, hObj, TrackerID);
    }

    signed int SetLooping(LTObject *hObj, UINT8 TrackerID, bool bLooping)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier.
        \param bLooping looping flag, \b LT_YES loops, \b LT_NO, stops looping.
        \return         \b LT_INVALIDVERSION if \em not using SMP networking, otherwise \b LT_OK
        Set whether the current animation on this tracker is looping.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* SetLoopingFn)(void*, LTObject *hObj, UINT8 TrackerID, bool bLooping);
        return GetVFunc<SetLoopingFn>(this, 42)(this, hObj, TrackerID, bLooping);
    }

    signed int GetPlaying(LTObject *hObj, UINT8 TrackerID)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier.
        \return \b LT_NO if not Playing, or an error, \b LT_INVALIDVERSION if \em not using SMP networking; otherwise, returns \b LT_YES.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetPlayingFn)(void*, LTObject *hObj, UINT8 TrackerID);
        return GetVFunc<GetPlayingFn>(this, 43)(this, hObj, TrackerID);
    }

    signed int SetPlaying(LTObject *hObj, UINT8 TrackerID, bool bPlaying)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier of choice.
        \param bPlaying boolean flag, true sets animtracker to play, false to not play.
        \return         \b LT_INVALIDPARAMS if TrackerID is invalid, \b LT_INVALIDVERSION if \em not using SMP networking, otherwise, returns \b LT_OK.
        Set whether this tracker is playing its animation.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* SetPlayingFn)(void*, LTObject *hObj, UINT8 TrackerID, bool bPlaying);
        return GetVFunc<SetPlayingFn>(this, 44)(this, hObj, TrackerID, bPlaying);
    }

    signed int GetCurAnimLength(LTObject *hObj, UINT8 TrackerID, unsigned int &length)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier of choice.
        \param length   the length in miliseconds of the animation.
        \return \b LT_OK operation succeeded.
        \b LT_INVALIDPARAMS if TrackerID is null.
        \b LT_NOTINITIALIZED if the TrackerID is not currently associated with animation data.
        \b LT_INVALIDVERSION if \em not using SMP networking.
        Get the length of the current animation (in milliseconds).
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetCurAnimLengthFn)(void*, LTObject *hObj, UINT8 TrackerID, unsigned int &length);
        return GetVFunc<GetCurAnimLengthFn>(this, 45)(this, hObj, TrackerID, length);
    }

    signed int GetCurAnimTime(LTObject *hObj, UINT8 TrackerID, unsigned int &curTime)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier of choice.
        \param length   the length in miliseconds of the animatoin.
        \return \b LT_OK operation succeeded.
        \b LT_INVALIDPARAMS if TrackerID is null.
        \b LT_NOTINITIALIZED if the TrackerID is not currently associated with animation data.
        \b LT_INVALIDVERSION if \em not using SMP networking.
        Get the length of the current animation (in milliseconds).
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetCurAnimTimeFn)(void*, LTObject *hObj, UINT8 TrackerID, unsigned int &curTime);
        return GetVFunc<GetCurAnimTimeFn>(this, 46)(this, hObj, TrackerID, curTime);
    }

    signed int SetCurAnimTime(LTObject *hObj, UINT8 TrackerID, unsigned int curTime)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier of choice.
        \param curTime time in miliseconds
        \return \b LT_OK or if TrackerID is invalid
        \b LT_INVALID_PARAMS  if TrackerID is null
        \b LT_NOTINITIALIZED if the TrackerID is not currently associated with animation data
        \b LT_INVALIDVERSION if \em not using SMP networking.
        Moves the animation's current time to curTime.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* SetCurAnimTimeFn)(void*, LTObject *hObj, UINT8 TrackerID, unsigned int curTime);
        return GetVFunc<SetCurAnimTimeFn>(this, 47)(this, hObj, TrackerID, curTime);
    }

    signed int SetAnimRate(LTObject *hObj, UINT8 TrackerID, float fRate)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier
        \param rate      a float value indicating the rate modifier on the animation.
        \return  \b LT_OK
        \b LT_INVALID_PARAMS. if TrackerID is invalid
        \b LT_INVALIDVERSION if \em not using SMP networking
        Sets the current rate of change between frames. Zero rate would stop the animation. Minus one, runs the animation backwards. This is effects only the rate during updates.
        Functional area: Model Animations.
        */
        typedef signed int(__thiscall* SetAnimRateFn)(void*, LTObject *hObj, UINT8 TrackerID, float fRate);
        return GetVFunc<SetAnimRateFn>(this, 49)(this, hObj, TrackerID, fRate);
    }

    signed int GetAnimRate(LTObject *hObj, UINT8 TrackerID, float &fRate)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier
        \param rate      a float return value indicating the rate modifier on the animation.
        \return  \b LT_INVALID_PARAMS if TrackerID is invalid, \b LT_INVALIDVERSION if \em not using SMP networking; otherwise, returns LT_OK.
        Gets the current rate of change between frames.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetAnimRateFn)(void*, LTObject *hObj, UINT8 TrackerID, float &fRate);
        return GetVFunc<GetAnimRateFn>(this, 50)(this, hObj, TrackerID, fRate);
    }

    signed int GetWeightSet(LTObject *hObj, ANIMTRACKERID TrackerID, HMODELWEIGHTSET &hSet)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier
        \param hSet    Model animation blending weight set handle.
        \return \b LT_OK operation succeeded.
        \b LT_INVALIDPARAMS TrackerID is invalid
        \b LT_INVALIDVERSION if \em not using SMP networking
        Get the weight set for this tracker.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* GetWeightSetFn)(void*, LTObject *hObj, ANIMTRACKERID TrackerID, HMODELWEIGHTSET &hSet);
        return GetVFunc<GetWeightSetFn>(this, 51)(this, hObj, TrackerID, hSet);
    }

    signed int SetWeightSet(LTObject *hObj, ANIMTRACKERID TrackerID, HMODELWEIGHTSET hSet)
    {
        /*!
        \param hModel     Model instance handle.
        \param TrackerID  Animation tracker identifier
        \param hSet     Model animation blending weight set handle.
        \return \b LT_OK operation succeeded.
        \b LT_INVALIDPARAMS TrackerID is invalid
        \b LT_INVALIDVERSION if \em not using SMP networking
        Set the animation blending weight set for this tracker.
        Used for: Models and Animation.
        */
        typedef signed int(__thiscall* SetWeightSetFn)(void*, LTObject *hObj, ANIMTRACKERID TrackerID, HMODELWEIGHTSET hSet);
        return GetVFunc<SetWeightSetFn>(this, 52)(this, hObj, TrackerID, hSet);
    }

    signed int GetNumLODs(LTObject *hObj, HMODELPIECE hPiece, uint32 &num_lods)
    {
        /*!
        \param hModel, model instance handle.
        \param hPiece, piece handle
        \param NumLODs, return value, number of lods in the piece indicated.
        \return \b LT_OK operation succeeded.
        \b LT_ERROR if hpiece is invalid.
        \b LT_INVALIDPARAMS hModel or hPiece is not valid.
        \b LT_FAIL if operation failed for some other reason.

        Returns the number of level of detail geometries the model piece has.
        Used for: Models and Animation
        */
        typedef signed int(__thiscall* GetNumLODsFn)(void*, LTObject *hObj, HMODELPIECE hPiece, uint32 &num_lods);
        return GetVFunc<GetNumLODsFn>(this, 53)(this, hObj, hPiece, num_lods);
    }

    signed int ApplyAnimations(LTObject *hObj)
    {
        /*!
        \param hModel, model instance handle
        \returns \bLT_OK, \bLT_ERROR
        Just update the current transformation in regards to the current animation state.
        */
        typedef signed int(__thiscall* ApplyAnimationsFn)(void*, LTObject *hObj);
        return GetVFunc<ApplyAnimationsFn>(this, 55)(this, hObj);
    }

    signed int GetModelOBBCopy(LTObject *hObj, ModelOBB * hOBB)
    {
        /*
        \param hOjb model to get obbs from
        \param modelobb obb buffer into which the internal obbs will be copied to.
        Get obbs, this fills an array with copies of the internal obbs. The OBB's space
        will be in the binding pose.
        */
        typedef signed int(__thiscall* GetModelOBBCopyFn)(void*, LTObject *hObj, ModelOBB * hOBB);
        return GetVFunc<GetModelOBBCopyFn>(this, 61)(this, hObj, hOBB);
    }
};
Credit(s)
» Geopulse
» Nancy (낸시)
» hkchenme
» ReClass
» ImGui
» Luizimloko
» NetworkFPS
» Dyon
» Aslan
» Hoàng Skyht
» Ngô Phong
» vaisefud3
Posts 1–2 of 2 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?