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.