@@ -31,13 +31,11 @@ Armor::Armor(const std::string &type) :
3131 _type (type), _frontArmor(0 ), _sideArmor(0 ), _rearArmor(0 ), _underArmor(0 ),
3232 _drawingRoutine (0 ), _movementType(MT_WALK ), _size(1 ), _weight(0 ),
3333 _deathFrames (3 ), _constantAnimation(false ), _canHoldWeapon(false ),
34- _forcedTorso (TORSO_USE_GENDER ), _faceColorGroup(0 ), _hairColorGroup(0 )
34+ _forcedTorso (TORSO_USE_GENDER ),
35+ _faceColorGroup (0 ), _hairColorGroup(0 ), _utileColorGroup(0 ), _rankColorGroup(0 )
3536{
3637 for (int i=0 ; i < DAMAGE_TYPES ; i++)
3738 _damageModifier[i] = 1 .0f ;
38-
39- _faceColor.resize ((LOOK_AFRICAN + 1 ) * 2 );
40- _hairColor.resize ((LOOK_AFRICAN + 1 ) * 2 );
4139}
4240
4341/* *
@@ -113,16 +111,12 @@ void Armor::load(const YAML::Node &node)
113111
114112 _faceColorGroup = node[" spriteFaceGroup" ].as <int >(_faceColorGroup);
115113 _hairColorGroup = node[" spriteHairGroup" ].as <int >(_hairColorGroup);
116- if (const YAML ::Node& colors = node[" spriteFaceColor" ])
117- {
118- for (size_t i = 0 ; i < colors.size () && i < _faceColor.size (); ++i)
119- _faceColor[i] = colors[i].as <int >();
120- }
121- if (const YAML ::Node& colors = node[" spriteHairColor" ])
122- {
123- for (size_t i = 0 ; i < colors.size () && i < _hairColor.size (); ++i)
124- _hairColor[i] = colors[i].as <int >();
125- }
114+ _rankColorGroup = node[" spriteRankGroup" ].as <int >(_rankColorGroup);
115+ _utileColorGroup = node[" spriteUtileGroup" ].as <int >(_utileColorGroup);
116+ _faceColor = node[" spriteFaceColor" ].as <std::vector<int > >(_faceColor);
117+ _hairColor = node[" spriteHairColor" ].as <std::vector<int > >(_hairColor);
118+ _rankColor = node[" spriteRankColor" ].as <std::vector<int > >(_rankColor);
119+ _utileColor = node[" spriteUtileColor" ].as <std::vector<int > >(_utileColor);
126120}
127121
128122/* *
@@ -331,38 +325,103 @@ ForcedTorso Armor::getForcedTorso() const
331325}
332326
333327/* *
334- * Gets hair base color group for replacement, if -1 then don't replace colors.
335- * @return Color group or -1 .
328+ * Gets hair base color group for replacement, if 0 then don't replace colors.
329+ * @return Color group or 0 .
336330 */
337331int Armor::getFaceColorGroup () const
338332{
339333 return _faceColorGroup;
340334}
341335
342336/* *
343- * Gets hair base color group for replacement, if -1 then don't replace colors.
344- * @return Color group or -1 .
337+ * Gets hair base color group for replacement, if 0 then don't replace colors.
338+ * @return Color group or 0 .
345339 */
346340int Armor::getHairColorGroup () const
347341{
348342 return _hairColorGroup;
349343}
350344
351345/* *
352- * Gets new face colors for replacement.
353- * @return Vector with new values based on gender and race.
346+ * Gets utile base color group for replacement, if 0 then don't replace colors.
347+ * @return Color group or 0.
348+ */
349+ int Armor::getUtileColorGroup () const
350+ {
351+ return _utileColorGroup;
352+ }
353+
354+ /* *
355+ * Gets rank base color group for replacement, if 0 then don't replace colors.
356+ * @return Color group or 0.
357+ */
358+ int Armor::getRankColorGroup () const
359+ {
360+ return _rankColorGroup;
361+ }
362+
363+ /* *
364+ * Gets new face colors for replacement, if 0 then don't replace colors.
365+ * @return Color index or 0.
366+ */
367+ int Armor::getFaceColor (int i) const
368+ {
369+ if ((size_t )i < _faceColor.size ())
370+ {
371+ return _faceColor[i];
372+ }
373+ else
374+ {
375+ return 0 ;
376+ }
377+ }
378+
379+ /* *
380+ * Gets new hair colors for replacement, if 0 then don't replace colors.
381+ * @return Color index or 0.
354382 */
355- const std::vector< int >& Armor::getFaceColor ( ) const
383+ int Armor::getHairColor ( int i ) const
356384{
357- return _faceColor;
385+ if ((size_t )i < _hairColor.size ())
386+ {
387+ return _hairColor[i];
388+ }
389+ else
390+ {
391+ return 0 ;
392+ }
358393}
359394
360395/* *
361- * Gets new hair colors for replacement.
362- * @return Vector with new values based on gender and race .
396+ * Gets new utile colors for replacement, if 0 then don't replace colors .
397+ * @return Color index or 0 .
363398 */
364- const std::vector< int >& Armor::getHairColor ( ) const
399+ int Armor::getUtileColor ( int i ) const
365400{
366- return _hairColor;
401+ if ((size_t )i < _utileColor.size ())
402+ {
403+ return _utileColor[i];
404+ }
405+ else
406+ {
407+ return 0 ;
408+ }
367409}
410+
411+ /* *
412+ * Gets new rank colors for replacement, if 0 then don't replace colors.
413+ * @return Color index or 0.
414+ */
415+ int Armor::getRankColor (int i) const
416+ {
417+ if ((size_t )i < _rankColor.size ())
418+ {
419+ return _rankColor[i];
420+ }
421+ else
422+ {
423+ return 0 ;
424+ }
425+ }
426+
368427}
0 commit comments