class IEntity {
public:
virtual ~IEntity() = 0;//0
virtual EntityId GetId() = 0;//1
virtual void Function2() = 0;//2
virtual void Function3() = 0;//3
virtual void Function4() = 0;//4
virtual void SetFlags(uint32 flags) = 0;//5
virtual uint32 GetFlags() = 0;//6
virtual void AddFlags(uint32 flagsToAdd) = 0;//7
virtual void ClearFlags(uint32 flagsToClear) = 0;//8
virtual bool CheckFlags(uint32 flagsToCheck) = 0;//9
virtual bool IsGarbage() = 0;//10
virtual void SetName(const char* sName) = 0;//11
virtual const char* GetName() = 0;//12
virtual const char* GetEntityTextDescription() = 0;//13
virtual void Function14() = 0;//14
virtual void AttachChild(IEntity* pChildEntity, int nAttachFlags = 0) = 0;//15
virtual void DetachAll(int nDetachFlags = 0) = 0;//16
virtual void DetachThis(int nDetachFlags = 0, int nWhyFlags = 0) = 0;//17
virtual int GetChildCount() = 0;//18
virtual IEntity* GetChild(int nIndex) = 0;//19
virtual IEntity* GetParent() = 0;//20
virtual void SetWorldTM(const Matrix34& tm, int nWhyFlags = 0) = 0;//21
virtual void SetLocalTM(const Matrix34& tm, int nWhyFlags = 0) = 0;//22
virtual const Matrix34& GetWorldTM() = 0;//23
virtual Matrix34 GetLocalTM() = 0;//24
virtual void Function25() = 0;//25
virtual void Function26() = 0;//26
virtual void SetPos(const Vec3& vPos, int nWhyFlags = 0) = 0;//27
virtual const Vec3& GetPos() = 0;//28
virtual void SetRotation(const Quat& qRotation, int nWhyFlags = 0) = 0;//29
virtual const Quat& GetRotation() = 0;//30
virtual void SetScale(const Vec3& vScale, int nWhyFlags = 0) = 0;//31
virtual const Vec3& GetScale() = 0;//32
virtual void SetPosRotScale(const Vec3& vPos, const Quat& qRotation, const Vec3& vScale, int nWhyFlags = 0) = 0;//33
virtual Vec3 GetWorldPos() = 0;//34
virtual Quat GetWorldRotation() const = 0;//35
virtual const Vec3& GetForwardDir() const = 0;//36
virtual void Activate(bool bActive) = 0;//37
virtual bool IsActive() const = 0;//38
virtual void Function39() = 0;//39
virtual void PrePhysicsActivate(bool bActive) = 0;//40
virtual bool IsPrePhysicsActive() = 0;//41
virtual void Function42() = 0;//42
virtual void Function43() = 0;//43
virtual void SetTimer(int nTimerId, int nMilliSeconds) = 0;//44
virtual void KillTimer(int nTimerId) = 0;//45
virtual void Hide(bool bHide) = 0;//46
virtual bool IsHidden() = 0;//47
virtual void Invisible(bool bInvisible) = 0;//48
virtual bool IsInvisible() = 0;//49
virtual void Function50() = 0;//50
virtual void Function51() = 0;//51
virtual void Function52() = 0;//52
virtual bool isAiObject() = 0;//53
virtual int GetAiObjectId() = 0;//54
virtual void SetAiObjectId(int) = 0;//55
virtual void Function56() = 0;//56
virtual void Function57() = 0;//57
virtual void Function58() = 0;//58
virtual IEntityProxy* GetProxy(EEntityProxyFlags proxy) = 0;//59
virtual void SetProxy(EEntityProxyFlags proxy, IEntityProxy* pProxy) = 0;//60
virtual IEntityProxy* CreateProxy(EEntityProxyFlags proxy) = 0;//61
virtual void Function62() = 0;//62
virtual void Function63() = 0;//63
virtual void Function64() = 0;//64
virtual void UnphysicalizeSlot(int slot) = 0;//65
virtual void UpdateSlotPhysics(int slot) = 0;//66
virtual void Function67() = 0;//67
virtual void Function68() = 0;//68
virtual void Function69() = 0;//69
virtual bool IsSlotValid(int nIndex) = 0;//70
virtual void FreeSlot(int nIndex) = 0;//71
virtual int GetSlotCount() = 0;//72
virtual void Function73() = 0;//73
virtual const Matrix34& GetSlotWorldTM(int nSlot) = 0;//74
virtual const Matrix34& GetSlotLocalTM(int nSlot, bool bRelativeToParent) = 0;//75
virtual void SetSlotLocalTM(int nSlot, const Matrix34& localTM, int nWhyFlags = 0) = 0;//76
virtual void Function77() = 0;//77
virtual void SetSlotFlags(int nSlot, uint32 nFlags) = 0;//78
virtual uint32 GetSlotFlags(int nSlot) = 0;//79
virtual bool ShouldUpdateCharacter(int nSlot) = 0;//80
virtual void Function81() = 0;//81 return 0
virtual int SetCharacter(ICharacterInstance* pCharacter, int nSlot) = 0;//82
virtual ICharacterInstance* GetCharacter(int nSlot) = 0;// 83
//"GetCharacter" -> open 1st sub_ func over it -> int(__fastcall *) spec func ptr of 2nd lodword mtd ftbop -> LODWORD(v7) = (*(int (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v5 + 664i64))(v5, v3);
virtual void Function84() = 0;//84
virtual void Function85() = 0;//85
virtual void Function86() = 0;//86
//virtual IParticleEmitter* GetParticleEmitter(int nSlot) = 0;//86
virtual void Function87(); //87
virtual int LoadGeometry(int nSlot, const char* sFilename, const char* sGeomName = 0, int nLoadFlags = 0) = 0;//88
virtual int LoadCharacter(int nSlot, const char* sFilename, int nLoadFlags = 0) = 0;//89
virtual void Function90(); //90
virtual void Function91(); //91
virtual void Function92(); //92
virtual int LoadCloud(int nSlot, const char* sCloudFilename) = 0;//93
virtual void Function94(); //94
virtual void InvalidateTM(int nWhyFlags = 0) = 0;//95
virtual void EnablePhysics(bool enable) = 0;//96
virtual void Function97(); //97
virtual void Function98(); //98
virtual void Function99(); //99
virtual void RemoveAllEntityLinks() = 0;//100
virtual IEntity* UnmapAttachedChild(int& partId) = 0;//101
virtual bool IsInitialized() = 0;//102'
};