My Project
CustomCharCommon.h
1 #pragma once
2 #include "TextureEntity.h"
3 
4 namespace ParaEngine
5 {
6  enum CharRegions {
7  // character skin regions
8  CR_BASE = 0,
9  CR_ARM_UPPER,
10  CR_ARM_LOWER,
11  CR_HAND,
12  CR_FACE_UPPER,
13  CR_FACE_LOWER,
14  CR_TORSO_UPPER,
15  CR_TORSO_LOWER,
16  CR_LEG_UPPER,
17  CR_LEG_LOWER,
18  CR_FOOT,
19  CR_WINGS, // newly added by andy -- 2009.5.11, we use the face lower texture region for wing texture
20 
21  // character face regions
22  CR_FACE_BASE,
23  CR_FACE_WRINKLE,
24  CR_FACE_EYE_RIGHT,
25  //CR_FACE_EYE_LEFT,
26  CR_FACE_EYEBROW_RIGHT,
27  //CR_FACE_EYEBROW_LEFT,
28  CR_FACE_MOUTH,
29  CR_FACE_NOSE,
30  CR_FACE_MARKS,
31 
32  // aries character skin regions
33  CR_ARIES_CHAR_SHIRT,
34  CR_ARIES_CHAR_SHIRT_OVERLAYER,
35  CR_ARIES_CHAR_PANT,
36  CR_ARIES_CHAR_HAND,
37  CR_ARIES_CHAR_FOOT,
38  CR_ARIES_CHAR_GLASS,
39 
40  // aries pet skin regions
41  CR_ARIES_PET_HEAD,
42  CR_ARIES_PET_BODY,
43  CR_ARIES_PET_TAIL,
44  CR_ARIES_PET_WING,
45 
46  CR_ARIES_CHAR_SHIRT_TEEN,
47 
48  NUM_REGIONS,
49 
50  // character object regions
51  CR_CAPE,
52  CR_HEAD,
53  CR_SHOULDER,
54  CR_WEAPON,
55  CR_SHIELD,
56  CR_SKIRT,
57  CR_FACE_ADDON,
58 
59  // aries character object regions
60  CR_ARIES_CHAR_WING,
61  CR_ARIES_CHAR_BACK,
62  CR_ARIES_CHAR_GROUND_EFFECT,
63  CR_ARIES_CHAR_GEM_BUFF_EFFECT,
64 
65  NUM_REGION_PATHS,
66  };
67 
69  int xpos, ypos, xsize, ysize;
70  };
71 
72  enum ItemTypes {
73  IT_ALL = 0,
74  IT_HEAD = 1,
75  IT_NECK,
76  IT_SHOULDER,
77  IT_SHIRT,
78  IT_CHEST,
79  IT_BELT,
80  IT_PANTS,
81  IT_BOOTS,
82  IT_BRACERS,
83  IT_GLOVES,
84  IT_RINGS,
85  IT_OFFHAND,
86  IT_DAGGER,
87  IT_SHIELD,
88  IT_BOW,
89  IT_CAPE,
90  IT_2HANDED,
91  IT_QUIVER,
92  IT_TABARD,
93  IT_ROBE,
94  IT_1HANDED,
95  IT_CLAW,
96  IT_ACCESSORY,
97  IT_THROWN,
98  IT_GUN,
99  IT_MASK, // CS_FACE_ADDON
100  IT_WINGS, // CS_WINGS
101 
102  IT_ARIES_CHAR_SHIRT,
103  IT_ARIES_CHAR_PANT,
104  IT_ARIES_CHAR_HAND,
105  IT_ARIES_CHAR_FOOT,
106  IT_ARIES_CHAR_GLASS,
107  IT_ARIES_CHAR_WING,
108  IT_ARIES_PET_HEAD,
109  IT_ARIES_PET_BODY,
110  IT_ARIES_PET_TAIL,
111  IT_ARIES_PET_WING,
112  IT_ARIES_CHAR_BACK,
113  IT_ARIES_CHAR_GROUND_EFFECT,
114 
115  IT_ARIES_CHAR_SHIRT_TEEN,
116 
117  IT_ARIES_CHAR_GEM_BUFF_EFFECT,
118 
119  NUM_ITEM_TYPES
120  };
121 
124  {
125  ATT_ID_SHIELD = 0,
126  ATT_ID_HAND_RIGHT = 1,
127  ATT_ID_HAND_LEFT = 2,
128  ATT_ID_TEXT = 3,
129  ATT_ID_GROUND = 4,
130  ATT_ID_SHOULDER_RIGHT = 5,
131  ATT_ID_SHOULDER_LEFT = 6,
132  ATT_ID_HEAD = 11,
133  ATT_ID_FACE_ADDON = 12,
134  ATT_ID_EAR_LEFT_ADDON = 13,
135  ATT_ID_EAR_RIGHT_ADDON = 14,
136  ATT_ID_BACK_ADDON = 15,
137  ATT_ID_WAIST = 16,
138  ATT_ID_NECK = 17,
139  ATT_ID_BOOTS = 18,
140  ATT_ID_MOUTH = 19,
141  ATT_ID_MOUNT1 = 20,
142  ATT_ID_MOUNT2,
143  ATT_ID_MOUNT3,
144  ATT_ID_MOUNT4,
145  ATT_ID_MOUNT5,
146  ATT_ID_MOUNT6,
147  ATT_ID_MOUNT7,
148  ATT_ID_MOUNT8,
149  ATT_ID_MOUNT9,
150  ATT_ID_MOUNT10,
151  ATT_ID_MOUNT11,
152  ATT_ID_MOUNT12,
153  ATT_ID_MOUNT13,
154  ATT_ID_MOUNT14,
155  ATT_ID_MOUNT15,
156  ATT_ID_MOUNT16,
157  ATT_ID_MOUNT17,
158  ATT_ID_MOUNT18,
159  ATT_ID_MOUNT19,
160  ATT_ID_MOUNT20,
161  ATT_ID_MOUNT00 = 0xffff, // this is same as ATT_ID_SHIELD or MOUNT0
162  };
163 
167  enum CharSlots {
168  CS_HEAD = 0,
169  CS_NECK = 1,
170  CS_SHOULDER = 2,
171  CS_BOOTS = 3,
172  CS_BELT = 4,
173  CS_SHIRT = 5,
174  CS_PANTS = 6,
175  CS_CHEST = 7,
176  CS_BRACERS = 8,
177  CS_GLOVES = 9,
178  CS_HAND_RIGHT = 10,
179  CS_HAND_LEFT = 11,
180  CS_CAPE = 12,
181  CS_TABARD = 13,
182  CS_FACE_ADDON = 14,
183  CS_WINGS = 15,
184  CS_ARIES_CHAR_SHIRT = 16,
185  CS_ARIES_CHAR_PANT = 17,
186  CS_ARIES_CHAR_HAND = 18,
187  CS_ARIES_CHAR_FOOT = 19,
188  CS_ARIES_CHAR_GLASS = 20,
189  CS_ARIES_CHAR_WING = 21,
190  CS_ARIES_PET_HEAD = 22,
191  CS_ARIES_PET_BODY = 23,
192  CS_ARIES_PET_TAIL = 24,
193  CS_ARIES_PET_WING = 25,
194  CS_ARIES_CHAR_BACK = 26,
195  CS_ARIES_CHAR_GROUND_EFFECT = 27,
196  CS_ARIES_CHAR_SHIRT_TEEN = 28,
197  CS_ARIES_CHAR_GEM_BUFF_EFFECT = 29,
198  CS_ARIES_CHAR_RING_BUFF_EFFECT = 30,
199 
200  NUM_CHAR_SLOTS
201  };
202 
205  {
206  CFS_FACE = 0,
207  CFS_WRINKLE = 1,
208  CFS_EYE = 2,
209  CFS_EYEBROW = 3,
210  CFS_MOUTH = 4,
211  CFS_NOSE = 5,
212  CFS_MARKS = 6,
213 
214  CFS_TOTAL_NUM,
215  };
216 
219  {
220  BP_SKINCOLOR = 0,
221  BP_FACETYPE = 1,
222  BP_HAIRCOLOR = 2,
223  BP_HAIRSTYLE = 3,
224  BP_FACIALHAIR = 4
225  };
226 
227 
230  {
231  DO_SHOWUNDERWEAR = 0,
232  DO_SHOWEARS = 1,
233  DO_SHOWHAIR = 2
234  };
235 
237  {
238  std::string name;
239  ref_ptr<TextureEntity> m_texture;
240  int region;
241  int layer;
242  DWORD m_dwColor;
243 
245 
246  const bool operator<(const CharTextureComponent& c) const
247  {
248  return layer < c.layer;
249  }
250 
252  DWORD GetColor() const;
253 
255  void SetColor(DWORD color);
256 
263  bool GetPixels(byte* pBuffer, int* nWidth, int* nHeight);
264 
266  bool CheckLoad();
267  };
268 
269  struct CharTexture
270  {
271  public:
272  CharTexture();
273  ~CharTexture();
274 
275  std::vector<CharTextureComponent> components;
276  void addLayer(const char* fn, int region, int layer, DWORD dwColor = 0xffffffff)
277  {
278  if (fn == 0 || strlen(fn) == 0) return;
280  ct.name = fn;
281  ct.region = region;
282  ct.layer = layer;
283  ct.m_dwColor = dwColor;
284  components.push_back(ct);
285  m_bNeedUpdateCache = true;
286  }
288  const string& GetCacheFileName();
289 
291  void Reset();
292 
295  void compose(asset_ptr<TextureEntity>& tex, CharModelInstance* pCharInst);
296 
297  private:
298  string m_sCachedFileName;
299  bool m_bNeedUpdateCache;
300  bool m_bNeedUpdate;
301  };
302 }
303 
304 #include "CustomCharSettings.h"
BodyParamsType
body parameter type on the character
Definition: CustomCharCommon.h:218
different physics engine has different winding order.
Definition: EventBinding.h:32
character animation instance: it includes both the animation and model display information.
Definition: CustomCharModelInstance.h:17
Definition: CustomCharCommon.h:68
DisplayOptionType
display option type on the character
Definition: CustomCharCommon.h:229
CharSlots
slots ID on the character
Definition: CustomCharCommon.h:167
The ref_ptr class template stores a pointer to a dynamically allocated (AssetEntity|CRefCounted|BaseA...
Definition: PERefPtr.h:13
CartoonFaceSlots
cartoon face slots on the face of the character
Definition: CustomCharCommon.h:204
Definition: CustomCharCommon.h:236
ATTACHMENT_ID
attachment ID for character models
Definition: CustomCharCommon.h:123
Definition: CustomCharCommon.h:269