OpenMW
components/esm/loadbody.hpp
Go to the documentation of this file.
00001 #ifndef OPENMW_ESM_BODY_H
00002 #define OPENMW_ESM_BODY_H
00003 
00004 #include <string>
00005 
00006 namespace ESM
00007 {
00008 
00009 class ESMReader;
00010 class ESMWriter;
00011 
00012 struct BodyPart
00013 {
00014     static unsigned int sRecordId;
00015 
00016     enum MeshPart
00017     {
00018         MP_Head = 0,
00019         MP_Hair = 1,
00020         MP_Neck = 2,
00021         MP_Chest = 3,
00022         MP_Groin = 4,
00023         MP_Hand = 5,
00024         MP_Wrist = 6,
00025         MP_Forearm = 7,
00026         MP_Upperarm = 8,
00027         MP_Foot = 9,
00028         MP_Ankle = 10,
00029         MP_Knee = 11,
00030         MP_Upperleg = 12,
00031         MP_Clavicle = 13,
00032         MP_Tail = 14,
00033 
00034         MP_Count = 15
00035     };
00036 
00037     enum Flags
00038     {
00039         BPF_Female = 1,
00040         BPF_NotPlayable = 2
00041     };
00042 
00043     enum MeshType
00044     {
00045         MT_Skin = 0,
00046         MT_Clothing = 1,
00047         MT_Armor = 2
00048     };
00049 
00050     struct BYDTstruct
00051     {
00052         char mPart;
00053         char mVampire;
00054         char mFlags;
00055         char mType;
00056     };
00057 
00058     BYDTstruct mData;
00059     std::string mId, mModel, mRace;
00060 
00061     void load(ESMReader &esm);
00062     void save(ESMWriter &esm) const;
00063 };
00064 }
00065 #endif