From 38f6fff3fbe7c90899b319f53b08d48714a3c845 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 10 Nov 2013 15:16:43 +0100 Subject: Wolves can now be owned by an entity. They only sit when right clicked by their owner. They beg if the closest player has meat or bones in his hand. They follow their owner. They teleport to their owner if they are more then 30 blocks away. They don't attack players if they are not angry anymore. They don't move if they are sitting. --- source/Mobs/Wolf.h | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'source/Mobs/Wolf.h') diff --git a/source/Mobs/Wolf.h b/source/Mobs/Wolf.h index 98074ba11..e1ce25200 100644 --- a/source/Mobs/Wolf.h +++ b/source/Mobs/Wolf.h @@ -2,6 +2,7 @@ #pragma once #include "PassiveAggressiveMonster.h" +#include "../Entities/Entity.h" @@ -19,11 +20,21 @@ public: virtual void DoTakeDamage(TakeDamageInfo & a_TDI) override; virtual void OnRightClicked(cPlayer & a_Player) override; - - bool IsSitting(void) const { return m_bIsSitting; } - bool IsTame(void) const { return m_bIsTame; } - bool IsBegging(void) const { return m_bIsBegging; } - bool IsAngry(void) const { return m_bIsAngry; } + virtual void Tick(float a_Dt, cChunk & a_Chunk) override; + + // Get functions + bool IsSitting(void) const { return m_bIsSitting; } + bool IsTame(void) const { return m_bIsTame; } + bool IsBegging(void) const { return m_bIsBegging; } + bool IsAngry(void) const { return m_bIsAngry; } + cEntity * GetOwner(void) const { return m_bOwner; } + + // Set functions + void SetIsSitting(bool a_IsSitting) { m_bIsSitting = a_IsSitting; } + void SetIsTame(bool a_IsTame) { m_bIsTame = a_IsTame; } + void SetIsBegging(bool a_IsBegging) { m_bIsBegging = a_IsBegging; } + void SetIsAngry(bool a_IsAngry) { m_bIsAngry = a_IsAngry; } + void SetOwner(cEntity * a_Entity) { m_bOwner = a_Entity; } private: @@ -31,7 +42,7 @@ private: bool m_bIsTame; bool m_bIsBegging; bool m_bIsAngry; - + cEntity * m_bOwner; } ; -- cgit v1.2.3 From 4f11cd2f8a665dcda7f06c1b5e1c8b8cda7b38ad Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 10 Nov 2013 18:03:19 +0100 Subject: The owner object isn't stored anymore. Instead we use the name of the player. This means only players can now have a wolf, but it fixes the bug where when you log out the wolf isn't your wolf anymore. --- source/Mobs/Wolf.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/Mobs/Wolf.h') diff --git a/source/Mobs/Wolf.h b/source/Mobs/Wolf.h index e1ce25200..fb6bb2355 100644 --- a/source/Mobs/Wolf.h +++ b/source/Mobs/Wolf.h @@ -27,14 +27,14 @@ public: bool IsTame(void) const { return m_bIsTame; } bool IsBegging(void) const { return m_bIsBegging; } bool IsAngry(void) const { return m_bIsAngry; } - cEntity * GetOwner(void) const { return m_bOwner; } + AString GetOwner(void) const { return m_bOwner; } // Set functions void SetIsSitting(bool a_IsSitting) { m_bIsSitting = a_IsSitting; } void SetIsTame(bool a_IsTame) { m_bIsTame = a_IsTame; } void SetIsBegging(bool a_IsBegging) { m_bIsBegging = a_IsBegging; } void SetIsAngry(bool a_IsAngry) { m_bIsAngry = a_IsAngry; } - void SetOwner(cEntity * a_Entity) { m_bOwner = a_Entity; } + void SetOwner(AString a_NewOwner) { m_bOwner = a_NewOwner; } private: @@ -42,7 +42,7 @@ private: bool m_bIsTame; bool m_bIsBegging; bool m_bIsAngry; - cEntity * m_bOwner; + AString m_bOwner; } ; -- cgit v1.2.3 From e62858ec3d027de8c5c4605913ab6261ec19d624 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 10 Nov 2013 20:12:30 +0100 Subject: Using DoWithPlayer instead of FindAndDoWithPlayer for callbacks. You are able to dye the collar. --- source/Mobs/Wolf.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'source/Mobs/Wolf.h') diff --git a/source/Mobs/Wolf.h b/source/Mobs/Wolf.h index fb6bb2355..2afca8086 100644 --- a/source/Mobs/Wolf.h +++ b/source/Mobs/Wolf.h @@ -28,6 +28,7 @@ public: bool IsBegging(void) const { return m_bIsBegging; } bool IsAngry(void) const { return m_bIsAngry; } AString GetOwner(void) const { return m_bOwner; } + int GetCollarColor(void) const { return m_bCollar; } // Set functions void SetIsSitting(bool a_IsSitting) { m_bIsSitting = a_IsSitting; } @@ -38,11 +39,12 @@ public: private: - bool m_bIsSitting; - bool m_bIsTame; - bool m_bIsBegging; - bool m_bIsAngry; + bool m_bIsSitting; + bool m_bIsTame; + bool m_bIsBegging; + bool m_bIsAngry; AString m_bOwner; + int m_bCollar; } ; -- cgit v1.2.3 From 2ccf9b2b32cbc2b9df7bd89b5dd4077c7bc20b80 Mon Sep 17 00:00:00 2001 From: STRWarrior Date: Sun, 10 Nov 2013 21:24:36 +0100 Subject: Renamed variables in cWolf. --- source/Mobs/Wolf.h | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'source/Mobs/Wolf.h') diff --git a/source/Mobs/Wolf.h b/source/Mobs/Wolf.h index 2afca8086..bc26fbf9b 100644 --- a/source/Mobs/Wolf.h +++ b/source/Mobs/Wolf.h @@ -23,28 +23,28 @@ public: virtual void Tick(float a_Dt, cChunk & a_Chunk) override; // Get functions - bool IsSitting(void) const { return m_bIsSitting; } - bool IsTame(void) const { return m_bIsTame; } - bool IsBegging(void) const { return m_bIsBegging; } - bool IsAngry(void) const { return m_bIsAngry; } - AString GetOwner(void) const { return m_bOwner; } - int GetCollarColor(void) const { return m_bCollar; } + bool IsSitting(void) const { return m_IsSitting; } + bool IsTame(void) const { return m_IsTame; } + bool IsBegging(void) const { return m_IsBegging; } + bool IsAngry(void) const { return m_IsAngry; } + AString GetOwner(void) const { return m_Owner; } + int GetCollarColor(void) const { return m_Collar; } // Set functions - void SetIsSitting(bool a_IsSitting) { m_bIsSitting = a_IsSitting; } - void SetIsTame(bool a_IsTame) { m_bIsTame = a_IsTame; } - void SetIsBegging(bool a_IsBegging) { m_bIsBegging = a_IsBegging; } - void SetIsAngry(bool a_IsAngry) { m_bIsAngry = a_IsAngry; } - void SetOwner(AString a_NewOwner) { m_bOwner = a_NewOwner; } + void SetIsSitting(bool a_IsSitting) { m_IsSitting = a_IsSitting; } + void SetIsTame(bool a_IsTame) { m_IsTame = a_IsTame; } + void SetIsBegging(bool a_IsBegging) { m_IsBegging = a_IsBegging; } + void SetIsAngry(bool a_IsAngry) { m_IsAngry = a_IsAngry; } + void SetOwner(AString a_NewOwner) { m_Owner = a_NewOwner; } private: - bool m_bIsSitting; - bool m_bIsTame; - bool m_bIsBegging; - bool m_bIsAngry; - AString m_bOwner; - int m_bCollar; + bool m_IsSitting; + bool m_IsTame; + bool m_IsBegging; + bool m_IsAngry; + AString m_Owner; + int m_Collar; } ; -- cgit v1.2.3 From dadae874f20259e88d20e7ccbb34c8617e69bf40 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Sun, 10 Nov 2013 21:55:32 +0100 Subject: Small code-style fixes. --- source/Mobs/Wolf.h | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'source/Mobs/Wolf.h') diff --git a/source/Mobs/Wolf.h b/source/Mobs/Wolf.h index bc26fbf9b..d51d4e78a 100644 --- a/source/Mobs/Wolf.h +++ b/source/Mobs/Wolf.h @@ -23,28 +23,29 @@ public: virtual void Tick(float a_Dt, cChunk & a_Chunk) override; // Get functions - bool IsSitting(void) const { return m_IsSitting; } - bool IsTame(void) const { return m_IsTame; } - bool IsBegging(void) const { return m_IsBegging; } - bool IsAngry(void) const { return m_IsAngry; } - AString GetOwner(void) const { return m_Owner; } - int GetCollarColor(void) const { return m_Collar; } + bool IsSitting (void) const { return m_IsSitting; } + bool IsTame (void) const { return m_IsTame; } + bool IsBegging (void) const { return m_IsBegging; } + bool IsAngry (void) const { return m_IsAngry; } + AString GetOwner (void) const { return m_Owner; } + int GetCollarColor(void) const { return m_CollarColor; } // Set functions - void SetIsSitting(bool a_IsSitting) { m_IsSitting = a_IsSitting; } - void SetIsTame(bool a_IsTame) { m_IsTame = a_IsTame; } - void SetIsBegging(bool a_IsBegging) { m_IsBegging = a_IsBegging; } - void SetIsAngry(bool a_IsAngry) { m_IsAngry = a_IsAngry; } - void SetOwner(AString a_NewOwner) { m_Owner = a_NewOwner; } + void SetIsSitting (bool a_IsSitting) { m_IsSitting = a_IsSitting; } + void SetIsTame (bool a_IsTame) { m_IsTame = a_IsTame; } + void SetIsBegging (bool a_IsBegging) { m_IsBegging = a_IsBegging; } + void SetIsAngry (bool a_IsAngry) { m_IsAngry = a_IsAngry; } + void SetOwner (AString a_NewOwner) { m_Owner = a_NewOwner; } + void SetCollarColor(int a_CollarColor) { m_CollarColor = a_CollarColor; } -private: +protected: bool m_IsSitting; bool m_IsTame; bool m_IsBegging; bool m_IsAngry; AString m_Owner; - int m_Collar; + int m_CollarColor; } ; -- cgit v1.2.3