diff --git a/dGame/dComponents/CharacterComponent.cpp b/dGame/dComponents/CharacterComponent.cpp index 3daa437e..4e9f4318 100644 --- a/dGame/dComponents/CharacterComponent.cpp +++ b/dGame/dComponents/CharacterComponent.cpp @@ -256,7 +256,11 @@ void CharacterComponent::LoadFromXML() { Game::logger->Log("CharacterComponent", "Failed to find char tag while loading XML!\n"); return; } - + if (character->QueryAttribute("rpt", &m_Reputation) == tinyxml2::XML_NO_ATTRIBUTE) { + SetReputation(0); + } + + Game::logger->Log("CharacterComponent", "error is %i", character->QueryAttribute("rpt", &m_Reputation)); character->QueryInt64Attribute("ls", &m_Uscore); // Load the statistics @@ -378,6 +382,8 @@ void CharacterComponent::UpdateXml(tinyxml2::XMLDocument* doc) { } character->SetAttribute("ls", m_Uscore); + // Custom attribute to keep track of reputation. + character->SetAttribute("rpt", GetReputation()); character->SetAttribute("stt", StatisticsToString().c_str()); // Set the zone statistics of the form ... diff --git a/dGame/dComponents/CharacterComponent.h b/dGame/dComponents/CharacterComponent.h index 62076fad..04245bf9 100644 --- a/dGame/dComponents/CharacterComponent.h +++ b/dGame/dComponents/CharacterComponent.h @@ -146,6 +146,18 @@ public: */ bool GetPvpEnabled() const; + /** + * Returns the characters lifetime reputation + * @return The lifetime reputation of this character. + */ + int64_t GetReputation() { return m_Reputation; }; + + /** + * Sets the lifetime reputation of the character to newValue + * @param newValue the value to set reputation to + */ + void SetReputation(int64_t newValue) { m_Reputation = newValue; }; + /** * Sets the current value of PvP combat being enabled * @param value whether to enable PvP combat @@ -291,6 +303,11 @@ private: */ int64_t m_Uscore; + /** + * The lifetime reputation earned by the entity + */ + int64_t m_Reputation; + /** * Whether the character is landing by rocket */