EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
CharacterAppearance Class Reference

#include "Character.h"

Collaboration diagram for CharacterAppearance:

Public Member Functions

void Build (uint32 ownerID, PyDict *data)
 

Private Attributes

CharacterDB m_db
 

Detailed Description

Container for character appearance stuff.

Definition at line 170 of file Character.h.

Member Function Documentation

void CharacterAppearance::Build ( uint32  ownerID,
PyDict data 
)

Definition at line 94 of file Character.cpp.

References PyRep::AsFloat(), PyRep::AsList(), PyRep::AsObjectEx(), PyRep::AsTuple(), PyList::begin(), PyList::end(), PyObjectEx_Type2::GetArgs(), PyTuple::GetItem(), PyDict::GetItemString(), PyRep::IntegerValue(), m_db, CharacterDB::SetAvatar(), CharacterDB::SetAvatarColors(), CharacterDB::SetAvatarModifiers(), CharacterDB::SetAvatarSculpts(), and PyFloat::value().

95 {
96  PyList* colors = data->GetItemString("colors")->AsList();
97  PyList::const_iterator color_cur = colors->begin();
98  for (; color_cur != colors->end(); ++color_cur) {
99  if ((*color_cur)->IsObjectEx()) {
100  PyObjectEx_Type2* color_obj = (PyObjectEx_Type2*)(*color_cur)->AsObjectEx();
101  PyTuple* color_tuple = color_obj->GetArgs()->AsTuple();
102  //color tuple data structure
103  //[0] PyToken
104  //[1] colorID
105  //[2] colorNameA
106  //[3] colorNameBC
107  //[4] weight
108  //[5] gloss
109 
110  m_db.SetAvatarColors(ownerID,
111  PyRep::IntegerValue(color_tuple->GetItem(1)),
112  PyRep::IntegerValue(color_tuple->GetItem(2)),
113  PyRep::IntegerValue(color_tuple->GetItem(3)),
114  color_tuple->GetItem(4)->AsFloat()->value(),
115  color_tuple->GetItem(5)->AsFloat()->value());
116  }
117  }
118 
119  PyObjectEx* appearance = data->GetItemString("appearance")->AsObjectEx();
120  PyObjectEx_Type2* app_obj = (PyObjectEx_Type2*)appearance;
121  PyTuple* app_tuple = app_obj->GetArgs()->AsTuple();
122 
123  m_db.SetAvatar(ownerID, app_tuple->GetItem(1));
124 
125  PyList* modifiers = data->GetItemString("modifiers")->AsList();
126  PyList::const_iterator modif_cur = modifiers->begin();
127  for (; modif_cur != modifiers->end(); ++modif_cur) {
128  if ((*modif_cur)->IsObjectEx()) {
129  PyObjectEx_Type2* modif_obj = (PyObjectEx_Type2*)(*modif_cur)->AsObjectEx();
130  PyTuple* modif_tuple = modif_obj->GetArgs()->AsTuple();
131 
132  //color tuple data structure
133  //[0] PyToken
134  //[1] modifierLocationID
135  //[2] paperdollResourceID
136  //[3] paperdollResourceVariation
137  m_db.SetAvatarModifiers(ownerID,
138  modif_tuple->GetItem(1),
139  modif_tuple->GetItem(2),
140  modif_tuple->GetItem(3));
141  }
142  }
143 
144  PyList* sculpts = data->GetItemString("sculpts")->AsList();
145  PyList::const_iterator sculpt_cur = sculpts->begin();
146  for (; sculpt_cur != sculpts->end(); sculpt_cur++) {
147  if ((*sculpt_cur)->IsObjectEx()) {
148  PyObjectEx_Type2* sculpt_obj = (PyObjectEx_Type2*)(*sculpt_cur)->AsObjectEx();
149  PyTuple* sculpt_tuple = sculpt_obj->GetArgs()->AsTuple();
150 
151  //sculpts tuple data structure
152  //[0] PyToken
153  //[1] sculptLocationID
154  //[2] weightUpDown
155  //[3] weightLeftRight
156  //[4] weightForwardBack
157  m_db.SetAvatarSculpts(ownerID,
158  sculpt_tuple->GetItem(1),
159  sculpt_tuple->GetItem(2),
160  sculpt_tuple->GetItem(3),
161  sculpt_tuple->GetItem(4));
162 
163  }
164  }
165 }
PyTuple * AsTuple()
Definition: PyRep.h:138
double value() const
Definition: PyRep.h:309
void SetAvatarColors(uint32 charID, uint32 colorID, uint32 colorNameA, uint32 colorNameBC, double weight, double gloss)
PyRep * GetItem(size_t index) const
Returns Python object.
Definition: PyRep.h:602
PyRep * GetItemString(const char *key) const
Obtains database entry based on given key string.
Definition: PyRep.cpp:702
void SetAvatarModifiers(uint32 charID, PyRep *modifierLocationID, PyRep *paperdollResourceID, PyRep *paperdollResourceVariation)
const_iterator begin() const
Definition: PyRep.h:660
storage_type::const_iterator const_iterator
Definition: PyRep.h:644
Python tuple.
Definition: PyRep.h:567
Python extended object.
Definition: PyRep.h:861
PyList * AsList()
Definition: PyRep.h:140
void SetAvatarSculpts(uint32 charID, PyRep *sculptLocationID, PyRep *weightUpDown, PyRep *weightLeftRight, PyRep *weightForwardBack)
const_iterator end() const
Definition: PyRep.h:661
void SetAvatar(uint32 charID, PyRep *hairDarkness)
PyTuple * GetArgs() const
Definition: PyRep.cpp:947
CharacterDB m_db
Definition: Character.h:192
static int64 IntegerValue(PyRep *pRep)
Definition: PyRep.cpp:118
PyFloat * AsFloat()
Definition: PyRep.h:126
PyObjectEx * AsObjectEx()
Definition: PyRep.h:154
Wrapper class for PyObjectEx of type 2.
Definition: PyRep.h:938
Python list.
Definition: PyRep.h:639

Here is the call graph for this function:

Member Data Documentation

CharacterDB CharacterAppearance::m_db
private

Definition at line 192 of file Character.h.

Referenced by Build().


The documentation for this class was generated from the following files: