#pragma once #include "Model.h" class HumanoidModel : public Model { public: ModelPart *head, *hair, *body, *jacket, *arm0, *sleeve0, *arm1, *sleeve1, *leg0, *pants0, *leg1, *pants1, *ear, *cloak; int holdingLeftHand; int holdingRightHand; bool idle; bool sneaking; bool bowAndArrow; bool eating; float eating_t; float eating_swing; unsigned int m_uiAnimOverrideBitmask; float m_fYOffset; enum animbits { eAnim_ArmsDown = 0, eAnim_ArmsOutFront, eAnim_NoLegAnim, eAnim_HasIdle, eAnim_ForceAnim, eAnim_SingleLegs, eAnim_SingleArms, eAnim_StatueOfLiberty, eAnim_DontRenderArmour, eAnim_NoBobbing, eAnim_DisableRenderHead, eAnim_DisableRenderArm0, eAnim_DisableRenderArm1, eAnim_DisableRenderTorso, eAnim_DisableRenderLeg0, eAnim_DisableRenderLeg1, eAnim_DisableRenderHair, eAnim_SmallModel, eAnim_DisableRenderJacket, eAnim_DisableRenderSleeve0, eAnim_DisableRenderSleeve1, eAnim_DisableRenderPants0, eAnim_DisableRenderPants1 }; static const unsigned int m_staticBitmaskIgnorePlayerCustomAnimSetting = (1 << HumanoidModel::eAnim_ForceAnim) | (1 << HumanoidModel::eAnim_DisableRenderArm0) | (1 << HumanoidModel::eAnim_DisableRenderArm1) | (1 << HumanoidModel::eAnim_DisableRenderTorso) | (1 << HumanoidModel::eAnim_DisableRenderLeg0) | (1 << HumanoidModel::eAnim_DisableRenderLeg1) | (1 << HumanoidModel::eAnim_DisableRenderHair) | (1 << HumanoidModel::eAnim_DisableRenderJacket) | (1 << HumanoidModel::eAnim_DisableRenderSleeve0) | (1 << HumanoidModel::eAnim_DisableRenderSleeve1) | (1 << HumanoidModel::eAnim_DisableRenderPants0) | (1 << HumanoidModel::eAnim_DisableRenderPants1); void _init(float g, float yOffset, int texWidth, int texHeight, bool slimHands, bool mirror, bool force32); HumanoidModel(); HumanoidModel(float g); HumanoidModel(float g, float yOffset, int texWidth, int texHeight); HumanoidModel(float g, float yOffset, int texWidth, int texHeight, bool slimHands); HumanoidModel(float g, float yOffset, int texWidth, int texHeight, bool slimHands, bool mirror); HumanoidModel(float g, float yOffset, int texWidth, int texHeight, bool slimHands, bool mirror, bool force32); virtual void render(shared_ptr entity, float time, float r, float bob, float yRot, float xRot, float scale, bool usecompiled); virtual void setupAnim(float time, float r, float bob, float yRot, float xRot, float scale, shared_ptr entity, unsigned int uiBitmaskOverrideAnim = 0); void renderHair(float scale, bool usecompiled); void renderEars(float scale, bool usecompiled); void renderCloak(float scale, bool usecompiled); void render(HumanoidModel* model, float scale, bool usecompiled); ModelPart* AddOrRetrievePart(SKIN_BOX* pBox); void setAllVisible(bool visible); void translateToHandItem(float scale); void copyPropertiesFrom(HumanoidModel* other); bool IsBodyPartDisabled(animbits bit); };