From ce1de9997b877950416ff76c7807a3132544a17b Mon Sep 17 00:00:00 2001 From: Alex King <89047260+Kinglykrab@users.noreply.github.com> Date: Sun, 7 May 2023 20:13:26 -0400 Subject: [PATCH] [Quest API] Add GetPet() to Perl (#3309) # Perl - Add `$mob->GetPet()`. # Notes - This exists in Lua, but not Perl. --- zone/perl_mob.cpp | 6 ++++++ zone/pets.cpp | 21 +++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/zone/perl_mob.cpp b/zone/perl_mob.cpp index 9410c4905..7542c1a3d 100644 --- a/zone/perl_mob.cpp +++ b/zone/perl_mob.cpp @@ -1054,6 +1054,11 @@ void Perl_Mob_SetPetID(Mob* self, uint16 new_pet_id) // @categories Pet self->SetPetID(new_pet_id); } +Mob* Perl_Mob_GetPet(Mob* self) // @categories Script Utility, Pet +{ + return self->GetPet(); +} + int Perl_Mob_GetPetID(Mob* self) // @categories Script Utility, Pet { return self->GetPetID(); @@ -3242,6 +3247,7 @@ void perl_register_mob() package.add("GetOwner", &Perl_Mob_GetOwner); package.add("GetOwnerID", &Perl_Mob_GetOwnerID); package.add("GetPR", &Perl_Mob_GetPR); + package.add("GetPet", &Perl_Mob_GetPet); package.add("GetPetID", &Perl_Mob_GetPetID); package.add("GetPetOrder", &Perl_Mob_GetPetOrder); package.add("GetPetType", &Perl_Mob_GetPetType); diff --git a/zone/pets.cpp b/zone/pets.cpp index 0d14c413b..a96b0faca 100644 --- a/zone/pets.cpp +++ b/zone/pets.cpp @@ -406,21 +406,22 @@ bool ZoneDatabase::GetPoweredPetEntry(const char *pet_type, int16 petpower, PetR } Mob* Mob::GetPet() { - if(GetPetID() == 0) - return(nullptr); - - Mob* tmp = entity_list.GetMob(GetPetID()); - if(tmp == nullptr) { - SetPetID(0); - return(nullptr); + if (!GetPetID()) { + return nullptr; } - if(tmp->GetOwnerID() != GetID()) { + const auto m = entity_list.GetMob(GetPetID()); + if (!m) { SetPetID(0); - return(nullptr); + return nullptr; } - return(tmp); + if (m->GetOwnerID() != GetID()) { + SetPetID(0); + return nullptr; + } + + return m; } bool Mob::HasPet() const {