Skip to content

Commit

Permalink
[Quest API] Add multiple inventory method short hands to client. (#2078)
Browse files Browse the repository at this point in the history
- Allows you to just directly use Client instead of having to grab reference to inventory.
- Add $client->CountAugmentEquippedByID(item_id) to Perl.
- Add $client->HasAugmentEquippedByID(item_id) to Perl.
- Add $client->CountItemEquippedByID(item_id) to Perl.
- Add $client->HasItemEquippedByID(item_id) to Perl.
- Add client:CountAugmentEquippedByID(item_id) to Lua.
- Add client:HasAugmentEquippedByID(item_id) to Lua
- Add client:CountItemEquippedByID(item_id) to Lua.
- Add client:HasItemEquippedByID(item_id) to Lua.
  • Loading branch information
Kinglykrab authored Apr 30, 2022
1 parent 9113508 commit c709a6a
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 0 deletions.
24 changes: 24 additions & 0 deletions zone/lua_client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2401,6 +2401,26 @@ void Lua_Client::AddItem(luabind::object item_table) {
);
}

int Lua_Client::CountAugmentEquippedByID(uint32 item_id) {
Lua_Safe_Call_Int();
return self->GetInv().CountAugmentEquippedByID(item_id);
}

bool Lua_Client::HasAugmentEquippedByID(uint32 item_id) {
Lua_Safe_Call_Bool();
return self->GetInv().HasAugmentEquippedByID(item_id);
}

int Lua_Client::CountItemEquippedByID(uint32 item_id) {
Lua_Safe_Call_Int();
return self->GetInv().CountItemEquippedByID(item_id);
}

bool Lua_Client::HasItemEquippedByID(uint32 item_id) {
Lua_Safe_Call_Bool();
return self->GetInv().HasItemEquippedByID(item_id);
}

void Lua_Client::AddPlatinum(uint32 platinum) {
Lua_Safe_Call_Void();
self->AddPlatinum(platinum);
Expand Down Expand Up @@ -2471,7 +2491,9 @@ luabind::scope lua_register_client() {
.def("ClearCompassMark",(void(Lua_Client::*)(void))&Lua_Client::ClearCompassMark)
.def("ClearZoneFlag", (void(Lua_Client::*)(int))&Lua_Client::ClearZoneFlag)
.def("Connected", (bool(Lua_Client::*)(void))&Lua_Client::Connected)
.def("CountAugmentEquippedByID", (int(Lua_Client::*)(uint32))&Lua_Client::CountAugmentEquippedByID)
.def("CountItem", (int(Lua_Client::*)(uint32))&Lua_Client::CountItem)
.def("CountItemEquippedByID", (int(Lua_Client::*)(uint32))&Lua_Client::CountItemEquippedByID)
.def("CreateExpedition", (Lua_Expedition(Lua_Client::*)(luabind::object))&Lua_Client::CreateExpedition)
.def("CreateExpedition", (Lua_Expedition(Lua_Client::*)(std::string, uint32, uint32, std::string, uint32, uint32))&Lua_Client::CreateExpedition)
.def("CreateExpedition", (Lua_Expedition(Lua_Client::*)(std::string, uint32, uint32, std::string, uint32, uint32, bool))&Lua_Client::CreateExpedition)
Expand Down Expand Up @@ -2620,8 +2642,10 @@ luabind::scope lua_register_client() {
.def("GrantAlternateAdvancementAbility", (bool(Lua_Client::*)(int, int, bool))&Lua_Client::GrantAlternateAdvancementAbility)
.def("GuildID", (uint32(Lua_Client::*)(void))&Lua_Client::GuildID)
.def("GuildRank", (int(Lua_Client::*)(void))&Lua_Client::GuildRank)
.def("HasAugmentEquippedByID", (bool(Lua_Client::*)(uint32))&Lua_Client::HasAugmentEquippedByID)
.def("HasDisciplineLearned", (bool(Lua_Client::*)(uint16))&Lua_Client::HasDisciplineLearned)
.def("HasExpeditionLockout", (bool(Lua_Client::*)(std::string, std::string))&Lua_Client::HasExpeditionLockout)
.def("HasItemEquippedByID", (bool(Lua_Client::*)(uint32))&Lua_Client::HasItemEquippedByID)
.def("HasSkill", (bool(Lua_Client::*)(int))&Lua_Client::HasSkill)
.def("HasSpellScribed", (bool(Lua_Client::*)(int))&Lua_Client::HasSpellScribed)
.def("HasZoneFlag", (bool(Lua_Client::*)(int))&Lua_Client::HasZoneFlag)
Expand Down
4 changes: 4 additions & 0 deletions zone/lua_client.h
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,10 @@ class Lua_Client : public Lua_Mob
void RemoveItem(uint32 item_id, uint32 quantity);
void SetGMStatus(uint32 newStatus);
void AddItem(luabind::object item_table);
int CountAugmentEquippedByID(uint32 item_id);
int CountItemEquippedByID(uint32 item_id);
bool HasAugmentEquippedByID(uint32 item_id);
bool HasItemEquippedByID(uint32 item_id);

int GetEnvironmentDamageModifier();
void SetEnvironmentDamageModifier(int value);
Expand Down
74 changes: 74 additions & 0 deletions zone/perl_client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6122,6 +6122,41 @@ XS(XS_Client_AddItem) {
XSRETURN_EMPTY;
}

XS(XS_Client_HasAugmentEquippedByID);
XS(XS_Client_HasAugmentEquippedByID) {
dXSARGS;
if (items != 2)
Perl_croak(aTHX_ "Usage: Client::HasAugmentEquippedByID(THIS, uint32 item_id)");
{
Client *THIS;
bool has_equipped = false;
uint32 item_id = (uint32) SvUV(ST(1));
VALIDATE_THIS_IS_CLIENT;
has_equipped = THIS->GetInv().HasAugmentEquippedByID(item_id);
ST(0) = boolSV(has_equipped);
sv_2mortal(ST(0));
}
XSRETURN(1);
}

XS(XS_Client_CountAugmentEquippedByID);
XS(XS_Client_CountAugmentEquippedByID) {
dXSARGS;
if (items != 2)
Perl_croak(aTHX_ "Usage: Client::CountAugmentEquippedByID(THIS, uint32 item_id)");
{
Client *THIS;
int quantity = 0;
uint32 item_id = (uint32) SvUV(ST(1));
dXSTARG;
VALIDATE_THIS_IS_CLIENT;
quantity = THIS->GetInv().CountAugmentEquippedByID(item_id);
XSprePUSH;
PUSHi((IV)quantity);
}
XSRETURN(1);
}

XS(XS_Client_AddPlatinum); /* prototype to pass -Wmissing-prototypes */
XS(XS_Client_AddPlatinum) {
dXSARGS;
Expand Down Expand Up @@ -6159,6 +6194,41 @@ XS(XS_Client_GetCarriedPlatinum) {
XSRETURN(1);
}

XS(XS_Client_HasItemEquippedByID);
XS(XS_Client_HasItemEquippedByID) {
dXSARGS;
if (items != 2)
Perl_croak(aTHX_ "Usage: Client::HasItemEquippedByID(THIS, uint32 item_id)");
{
Client *THIS;
bool has_equipped = false;
uint32 item_id = (uint32) SvUV(ST(1));
VALIDATE_THIS_IS_CLIENT;
has_equipped = THIS->GetInv().HasItemEquippedByID(item_id);
ST(0) = boolSV(has_equipped);
sv_2mortal(ST(0));
}
XSRETURN(1);
}

XS(XS_Client_CountItemEquippedByID);
XS(XS_Client_CountItemEquippedByID) {
dXSARGS;
if (items != 2)
Perl_croak(aTHX_ "Usage: Client::CountItemEquippedByID(THIS, uint32 item_id)");
{
Client *THIS;
int quantity = 0;
uint32 item_id = (uint32) SvUV(ST(1));
dXSTARG;
VALIDATE_THIS_IS_CLIENT;
quantity = THIS->GetInv().CountItemEquippedByID(item_id);
XSprePUSH;
PUSHi((IV)quantity);
}
XSRETURN(1);
}

XS(XS_Client_TakePlatinum); /* prototype to pass -Wmissing-prototypes */
XS(XS_Client_TakePlatinum) {
dXSARGS;
Expand Down Expand Up @@ -6230,7 +6300,9 @@ XS(boot_Client) {
newXSproto(strcpy(buf, "ClearCompassMark"), XS_Client_ClearCompassMark, file, "$");
newXSproto(strcpy(buf, "ClearZoneFlag"), XS_Client_ClearZoneFlag, file, "$$");
newXSproto(strcpy(buf, "Connected"), XS_Client_Connected, file, "$");
newXSproto(strcpy(buf, "CountAugmentEquippedByID"), XS_Client_CountAugmentEquippedByID, file, "$$");
newXSproto(strcpy(buf, "CountItem"), XS_Client_CountItem, file, "$$");
newXSproto(strcpy(buf, "CountItemEquippedByID"), XS_Client_CountItemEquippedByID, file, "$$");
newXSproto(strcpy(buf, "CreateExpedition"), XS_Client_CreateExpedition, file, "$$$$$$$;$");
newXSproto(strcpy(buf, "CreateTaskDynamicZone"), XS_Client_CreateTaskDynamicZone, file, "$$");
newXSproto(strcpy(buf, "DecreaseByID"), XS_Client_DecreaseByID, file, "$$$");
Expand Down Expand Up @@ -6360,8 +6432,10 @@ XS(boot_Client) {
newXSproto(strcpy(buf, "GrantAlternateAdvancementAbility"), XS_Client_GrantAlternateAdvancementAbility, file, "$$$;$");
newXSproto(strcpy(buf, "GuildID"), XS_Client_GuildID, file, "$");
newXSproto(strcpy(buf, "GuildRank"), XS_Client_GuildRank, file, "$");
newXSproto(strcpy(buf, "HasAugmentEquippedByID"), XS_Client_HasAugmentEquippedByID, file, "$$");
newXSproto(strcpy(buf, "HasDisciplineLearned"), XS_Client_HasDisciplineLearned, file, "$$");
newXSproto(strcpy(buf, "HasExpeditionLockout"), XS_Client_HasExpeditionLockout, file, "$$$");
newXSproto(strcpy(buf, "HasItemEquippedByID"), XS_Client_HasItemEquippedByID, file, "$$");
newXSproto(strcpy(buf, "HasSkill"), XS_Client_HasSkill, file, "$$");
newXSproto(strcpy(buf, "HasSpellScribed"), XS_Client_HasSkill, file, "$$");
newXSproto(strcpy(buf, "HasZoneFlag"), XS_Client_HasZoneFlag, file, "$$");
Expand Down

0 comments on commit c709a6a

Please sign in to comment.