[Bug Fix] Fix does_augment_fit_slot method. (#2817)

* [Bug Fix] DoesAugmentFit finds if an Aug Slot is free, changed overload method to check if Aug fits slot.

* Tweak/add lua
This commit is contained in:
Aeadoin 2023-01-31 21:11:12 -05:00 committed by GitHub
parent f410c89815
commit f727c9f75a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 9 deletions

View File

@ -3981,7 +3981,7 @@ int8 Perl__does_augment_fit(EQ::ItemInstance* inst, uint32 augment_id)
return quest_manager.DoesAugmentFit(inst, augment_id);
}
int8 Perl__does_augment_fit(EQ::ItemInstance* inst, uint32 augment_id, uint8 augment_slot)
int8 Perl__does_augment_fit_slot(EQ::ItemInstance* inst, uint32 augment_id, uint8 augment_slot)
{
return quest_manager.DoesAugmentFit(inst, augment_id, augment_slot);
}
@ -4332,7 +4332,7 @@ void perl_register_quest()
package.add("doanim", (void(*)(int, int, bool, int))&Perl__doanim);
package.add("do_augment_slots_match", &Perl__do_augment_slots_match);
package.add("does_augment_fit", (int8(*)(EQ::ItemInstance*, uint32))&Perl__does_augment_fit);
package.add("does_augment_fit", (int8(*)(EQ::ItemInstance*, uint32, uint8))&Perl__does_augment_fit);
package.add("does_augment_fit_slot", (int8(*)(EQ::ItemInstance*, uint32, uint8))&Perl__does_augment_fit_slot);
package.add("echo", &Perl__echo);
package.add("emote", &Perl__emote);
package.add("enable_proximity_say", &Perl__enable_proximity_say);

View File

@ -3700,7 +3700,7 @@ int8 lua_does_augment_fit(Lua_ItemInst inst, uint32 augment_id)
return quest_manager.DoesAugmentFit(inst, augment_id);
}
int8 lua_does_augment_fit(Lua_ItemInst inst, uint32 augment_id, uint8 augment_slot)
int8 lua_does_augment_fit_slot(Lua_ItemInst inst, uint32 augment_id, uint8 augment_slot)
{
return quest_manager.DoesAugmentFit(inst, augment_id, augment_slot);
}
@ -4223,7 +4223,7 @@ luabind::scope lua_register_general() {
luabind::def("do_anim", (void(*)(int,int,bool,int))&lua_do_anim),
luabind::def("do_augment_slots_match", &lua_do_augment_slots_match),
luabind::def("does_augment_fit", (int8(*)(Lua_ItemInst, uint32))&lua_does_augment_fit),
luabind::def("does_augment_fit", (int8(*)(Lua_ItemInst, uint32, uint8))&lua_does_augment_fit),
luabind::def("does_augment_fit_slot", (int8(*)(Lua_ItemInst, uint32, uint8))&lua_does_augment_fit_slot),
/*
Cross Zone
*/

View File

@ -3980,11 +3980,8 @@ int8 QuestManager::DoesAugmentFit(EQ::ItemInstance* inst, uint32 augment_id, uin
return INVALID_INDEX;
}
if (
augment_slot != 255 &&
!inst->IsAugmentSlotAvailable(aug_inst->AugType, augment_slot)
) {
return INVALID_INDEX;
if (augment_slot != 255) {
return !inst->IsAugmentSlotAvailable(aug_inst->AugType, augment_slot) ? INVALID_INDEX : augment_slot;
}
return inst->AvailableAugmentSlot(aug_inst->AugType);