20 #ifndef CHAR_APP_HEADER    21 #define CHAR_APP_HEADER    25 #include <csutil/csstring.h>    26 #include <csutil/list.h>    27 #include <csgeom/vector3.h>    28 #include <iengine/mesh.h>    29 #include <imesh/animesh.h>    30 #include <imesh/spritecal3d.h>    45 struct iTextureManager;
    48 struct iDocumentSystem;
    79     void SetMesh(iMeshWrapper* mesh);
    84     void FaceTexture(csString& faceMaterial);
    89     void HairMesh(csString& submesh);
    94     void BeardMesh(csString& submesh);
    99     void HairColor(csVector3 &shader);
   104     void EyeColor(csVector3 &shader);
   109     void ShowHair(
bool flag=
true);
   116     void ShowMeshes(csString& slot, csString& meshList, 
bool show=
true);
   122     void UpdateMeshShowStatus(csString& meshName);
   128     void SetSkinTone(csString& part, csString& material);
   134     void ApplyTraits(
const csString& traits);
   142     void ApplyEquipment(
const csString& equipment);
   148     void ApplyRider(iMeshWrapper* mesh);
   158     void Equip(csString& slotname, csString& mesh, csString& part, csString& subMesh, csString& texture, csString& removedMesh);
   169     bool Dequip(csString& slotname, csString& mesh, csString& part, csString& subMesh, csString& texture, csString& removedMesh);
   178     void ClearEquipment(
const char* slot = NULL);
   180     bool CheckLoadStatus();
   182     void SetSneak(
bool sneaking);
   192     bool ChangeMaterial(
const char* part, 
const char* materialName);
   204     csString ParseStrings(
const char *part, 
const char* str) 
const;
   212     bool SetTrait(
Trait * trait);
   220     bool ChangeMesh(
const char* partPattern, 
const char* newPart);
   229     bool Attach(
const char* socketName, 
const char* meshFactName, 
const char* materialName = NULL);
   236     bool Detach(
const char* socketName);
   241     void DefaultMaterial(csString& part);
   249     void DefaultMesh(
const char* part, 
const char *subMesh = NULL);
   256     void ProcessAttach(iThreadReturn* factory, iThreadReturn* material, 
const char* meshFactName, 
const char* socket);
   257     void ProcessAttach(iMeshWrapper* meshWrap, 
const char* socket);
   258     void ProcessAttach(iThreadReturn* material, 
const char* materialName, 
const char* partName);
   259     bool ProcessMaterial(iThreadReturn* material, 
const char* materialName, 
const char* partName);
   261     csRef<iMeshWrapper> baseMesh;                       
   263     csRef<iSpriteCal3DFactoryState>  stateFactory;      
   264     csRef<iSpriteCal3DState>    state;                  
   266     csRef<CS::Mesh::iAnimatedMeshFactory> animeshFactory; 
   267     csRef<CS::Mesh::iAnimatedMesh> animeshObject; 
   269     csRef<iShaderVarStringSet>  stringSet;              
   270     csRef<iStringSet> strings;                          
   275     csRef<iEngine>              engine;
   277     csRef<iGraphics3D>          g3d;
   278     csRef<iTextureManager>      txtmgr;
   279     csRef<iDocumentSystem>      xmlparser;
   280     csRef<iShaderManager>       shman;
   288     csVector3 hairShader;                               
   292     csHash<csString> removedMeshes;                     
   293     csHash<csRef<iThreadReturn>, csString> materials;   
   294     csHash<csRef<iThreadReturn>, csString> factories;   
   301     csString faceMaterial;                              
   302     csArray<SkinToneSet> skinToneSet;                   
   304     csArray<csString> usedSlots;                        
   305     csHash<int, csString> effectids;                    
   306     csHash<int, csString> lightids;                     
   317         csRef<iThreadReturn> factoryPtr;
   318         csString materialName;
   319         csRef<iThreadReturn> materialPtr;
   321         Attachment(
bool factory) : factory(factory)
   326     csList<Attachment> delayedAttach;
 
Defines a character trait. 
 
A manager class that handles all the details of a characters appearance. 
 
csString material
The material to place on that part. 
 
Holds a set of skin tone. 
 
csString part
The part of the model to adjust.