diff --git a/zone/embparser_api.cpp b/zone/embparser_api.cpp index 169482683..c29c28e20 100644 --- a/zone/embparser_api.cpp +++ b/zone/embparser_api.cpp @@ -372,71 +372,98 @@ XS(XS__getinventoryslotid) { if (items != 1) Perl_croak(aTHX_ "Usage: quest::getinventoryslotid(string identifier)"); - int16 RETVAL; + int16 RETVAL = EQEmu::invslot::SLOT_INVALID; dXSTARG; std::string identifier = (Const_char *)SvPV_nolen(ST(0)); for (std::string::size_type i = 0; i < identifier.length(); ++i) identifier[i] = std::tolower(identifier[i]); - if (identifier == "invalid") RETVAL = EQEmu::invslot::SLOT_INVALID; - else if (identifier == "cursor") RETVAL = EQEmu::invslot::slotCursor; - else if (identifier == "possessions.begin") RETVAL = EQEmu::invslot::POSSESSIONS_BEGIN; - else if (identifier == "possessions.end") RETVAL = EQEmu::invslot::POSSESSIONS_END; - else if (identifier == "bank.begin") RETVAL = EQEmu::invslot::BANK_BEGIN; - else if (identifier == "bank.end") RETVAL = EQEmu::invslot::BANK_END; - else if (identifier == "sharedbank.begin") RETVAL = EQEmu::invslot::SHARED_BANK_BEGIN; - else if (identifier == "sharedbank.end") RETVAL = EQEmu::invslot::SHARED_BANK_END; - else if (identifier == "generalbags.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN; - else if (identifier == "generalbags.end") RETVAL = EQEmu::invbag::GENERAL_BAGS_END; - else if (identifier == "cursorbag.begin") RETVAL = EQEmu::invbag::CURSOR_BAG_BEGIN; - else if (identifier == "cursorbag.end") RETVAL = EQEmu::invbag::CURSOR_BAG_END; - else if (identifier == "bankbags.begin") RETVAL = EQEmu::invbag::BANK_BAGS_BEGIN; - else if (identifier == "bankbags.end") RETVAL = EQEmu::invbag::BANK_BAGS_END; - else if (identifier == "sharedbankbags.begin") RETVAL = EQEmu::invbag::SHARED_BANK_BAGS_BEGIN; - else if (identifier == "sharedbankbags.end") RETVAL = EQEmu::invbag::SHARED_BANK_BAGS_END; - else if (identifier == "bagslot.begin") RETVAL = EQEmu::invbag::SLOT_BEGIN; - else if (identifier == "bagslot.end") RETVAL = EQEmu::invbag::SLOT_END; - else if (identifier == "augsocket.begin") RETVAL = EQEmu::invaug::SOCKET_BEGIN; - else if (identifier == "augsocket.end") RETVAL = EQEmu::invaug::SOCKET_END; - else if (identifier == "equipment.begin") RETVAL = EQEmu::invslot::EQUIPMENT_BEGIN; - else if (identifier == "equipment.end") RETVAL = EQEmu::invslot::EQUIPMENT_END; - else if (identifier == "general.begin") RETVAL = EQEmu::invslot::GENERAL_BEGIN; - else if (identifier == "general.end") RETVAL = EQEmu::invslot::GENERAL_END; - else if (identifier == "charm") RETVAL = EQEmu::invslot::slotCharm; - else if (identifier == "ear1") RETVAL = EQEmu::invslot::slotEar1; - else if (identifier == "head") RETVAL = EQEmu::invslot::slotHead; - else if (identifier == "face") RETVAL = EQEmu::invslot::slotFace; - else if (identifier == "ear2") RETVAL = EQEmu::invslot::slotEar2; - else if (identifier == "neck") RETVAL = EQEmu::invslot::slotNeck; - else if (identifier == "shoulders") RETVAL = EQEmu::invslot::slotShoulders; - else if (identifier == "arms") RETVAL = EQEmu::invslot::slotArms; - else if (identifier == "back") RETVAL = EQEmu::invslot::slotBack; - else if (identifier == "wrist1") RETVAL = EQEmu::invslot::slotWrist1; - else if (identifier == "wrist2") RETVAL = EQEmu::invslot::slotWrist2; - else if (identifier == "range") RETVAL = EQEmu::invslot::slotRange; - else if (identifier == "hands") RETVAL = EQEmu::invslot::slotHands; - else if (identifier == "primary") RETVAL = EQEmu::invslot::slotPrimary; - else if (identifier == "secondary") RETVAL = EQEmu::invslot::slotSecondary; - else if (identifier == "finger1") RETVAL = EQEmu::invslot::slotFinger1; - else if (identifier == "finger2") RETVAL = EQEmu::invslot::slotFinger2; - else if (identifier == "chest") RETVAL = EQEmu::invslot::slotChest; - else if (identifier == "legs") RETVAL = EQEmu::invslot::slotLegs; - else if (identifier == "feet") RETVAL = EQEmu::invslot::slotFeet; - else if (identifier == "waist") RETVAL = EQEmu::invslot::slotWaist; - else if (identifier == "powersource") RETVAL = EQEmu::invslot::slotPowerSource; - else if (identifier == "ammo") RETVAL = EQEmu::invslot::slotAmmo; - else if (identifier == "general1") RETVAL = EQEmu::invslot::slotGeneral1; - else if (identifier == "general2") RETVAL = EQEmu::invslot::slotGeneral2; - else if (identifier == "general3") RETVAL = EQEmu::invslot::slotGeneral3; - else if (identifier == "general4") RETVAL = EQEmu::invslot::slotGeneral4; - else if (identifier == "general5") RETVAL = EQEmu::invslot::slotGeneral5; - else if (identifier == "general6") RETVAL = EQEmu::invslot::slotGeneral6; - else if (identifier == "general7") RETVAL = EQEmu::invslot::slotGeneral7; - else if (identifier == "general8") RETVAL = EQEmu::invslot::slotGeneral8; - else if (identifier == "general9") RETVAL = EQEmu::invslot::slotGeneral9; - else if (identifier == "general10") RETVAL = EQEmu::invslot::slotGeneral10; - else RETVAL = EQEmu::invslot::SLOT_INVALID; + if (identifier.find('.') == std::string::npos) { + if (identifier == "invalid") RETVAL = EQEmu::invslot::SLOT_INVALID; + else if (identifier == "charm") RETVAL = EQEmu::invslot::slotCharm; + else if (identifier == "ear1") RETVAL = EQEmu::invslot::slotEar1; + else if (identifier == "head") RETVAL = EQEmu::invslot::slotHead; + else if (identifier == "face") RETVAL = EQEmu::invslot::slotFace; + else if (identifier == "ear2") RETVAL = EQEmu::invslot::slotEar2; + else if (identifier == "neck") RETVAL = EQEmu::invslot::slotNeck; + else if (identifier == "shoulders") RETVAL = EQEmu::invslot::slotShoulders; + else if (identifier == "arms") RETVAL = EQEmu::invslot::slotArms; + else if (identifier == "back") RETVAL = EQEmu::invslot::slotBack; + else if (identifier == "wrist1") RETVAL = EQEmu::invslot::slotWrist1; + else if (identifier == "wrist2") RETVAL = EQEmu::invslot::slotWrist2; + else if (identifier == "range") RETVAL = EQEmu::invslot::slotRange; + else if (identifier == "hands") RETVAL = EQEmu::invslot::slotHands; + else if (identifier == "primary") RETVAL = EQEmu::invslot::slotPrimary; + else if (identifier == "secondary") RETVAL = EQEmu::invslot::slotSecondary; + else if (identifier == "finger1") RETVAL = EQEmu::invslot::slotFinger1; + else if (identifier == "finger2") RETVAL = EQEmu::invslot::slotFinger2; + else if (identifier == "chest") RETVAL = EQEmu::invslot::slotChest; + else if (identifier == "legs") RETVAL = EQEmu::invslot::slotLegs; + else if (identifier == "feet") RETVAL = EQEmu::invslot::slotFeet; + else if (identifier == "waist") RETVAL = EQEmu::invslot::slotWaist; + else if (identifier == "powersource") RETVAL = EQEmu::invslot::slotPowerSource; + else if (identifier == "ammo") RETVAL = EQEmu::invslot::slotAmmo; + else if (identifier == "general1") RETVAL = EQEmu::invslot::slotGeneral1; + else if (identifier == "general2") RETVAL = EQEmu::invslot::slotGeneral2; + else if (identifier == "general3") RETVAL = EQEmu::invslot::slotGeneral3; + else if (identifier == "general4") RETVAL = EQEmu::invslot::slotGeneral4; + else if (identifier == "general5") RETVAL = EQEmu::invslot::slotGeneral5; + else if (identifier == "general6") RETVAL = EQEmu::invslot::slotGeneral6; + else if (identifier == "general7") RETVAL = EQEmu::invslot::slotGeneral7; + else if (identifier == "general8") RETVAL = EQEmu::invslot::slotGeneral8; + else if (identifier == "general9") RETVAL = EQEmu::invslot::slotGeneral9; + else if (identifier == "general10") RETVAL = EQEmu::invslot::slotGeneral10; + else if (identifier == "cursor") RETVAL = EQEmu::invslot::slotCursor; + else if (identifier == "tradeskill") RETVAL = EQEmu::invslot::SLOT_TRADESKILL_EXPERIMENT_COMBINE; + else if (identifier == "augment") RETVAL = EQEmu::invslot::SLOT_AUGMENT_GENERIC_RETURN; + } + else { + if (identifier == "possessions.begin") RETVAL = EQEmu::invslot::POSSESSIONS_BEGIN; + else if (identifier == "possessions.end") RETVAL = EQEmu::invslot::POSSESSIONS_END; + else if (identifier == "equipment.begin") RETVAL = EQEmu::invslot::EQUIPMENT_BEGIN; + else if (identifier == "equipment.end") RETVAL = EQEmu::invslot::EQUIPMENT_END; + else if (identifier == "general.begin") RETVAL = EQEmu::invslot::GENERAL_BEGIN; + else if (identifier == "general.end") RETVAL = EQEmu::invslot::GENERAL_END; + else if (identifier == "possessionsbags.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN; + else if (identifier == "possessionsbags.end") RETVAL = EQEmu::invbag::CURSOR_BAG_END; + else if (identifier == "generalbags.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN; + else if (identifier == "generalbags.end") RETVAL = EQEmu::invbag::GENERAL_BAGS_END; + else if (identifier == "general1bag.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN; + else if (identifier == "general1bag.end") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 9; + else if (identifier == "general2bag.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 10; + else if (identifier == "general2bag.end") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 19; + else if (identifier == "general3bag.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 20; + else if (identifier == "general3bag.end") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 29; + else if (identifier == "general4bag.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 30; + else if (identifier == "general4bag.end") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 39; + else if (identifier == "general5bag.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 40; + else if (identifier == "general5bag.end") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 49; + else if (identifier == "general6bag.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 50; + else if (identifier == "general6bag.end") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 59; + else if (identifier == "general7bag.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 60; + else if (identifier == "general7bag.end") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 69; + else if (identifier == "general8bag.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 70; + else if (identifier == "general8bag.end") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 79; + else if (identifier == "general9bag.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 80; + else if (identifier == "general9bag.end") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 89; + else if (identifier == "general10bag.begin") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 90; + else if (identifier == "general10bag.end") RETVAL = EQEmu::invbag::GENERAL_BAGS_BEGIN + 99; + else if (identifier == "cursorbag.begin") RETVAL = EQEmu::invbag::CURSOR_BAG_BEGIN; + else if (identifier == "cursorbag.end") RETVAL = EQEmu::invbag::CURSOR_BAG_END; + else if (identifier == "bank.begin") RETVAL = EQEmu::invslot::BANK_BEGIN; + else if (identifier == "bank.end") RETVAL = EQEmu::invslot::BANK_END; + else if (identifier == "bankbags.begin") RETVAL = EQEmu::invbag::BANK_BAGS_BEGIN; + else if (identifier == "bankbags.end") RETVAL = EQEmu::invbag::BANK_BAGS_END; + else if (identifier == "sharedbank.begin") RETVAL = EQEmu::invslot::SHARED_BANK_BEGIN; + else if (identifier == "sharedbank.end") RETVAL = EQEmu::invslot::SHARED_BANK_END; + else if (identifier == "sharedbankbags.begin") RETVAL = EQEmu::invbag::SHARED_BANK_BAGS_BEGIN; + else if (identifier == "sharedbankbags.end") RETVAL = EQEmu::invbag::SHARED_BANK_BAGS_END; + else if (identifier == "bagslot.begin") RETVAL = EQEmu::invbag::SLOT_BEGIN; + else if (identifier == "bagslot.end") RETVAL = EQEmu::invbag::SLOT_END; + else if (identifier == "augsocket.begin") RETVAL = EQEmu::invaug::SOCKET_BEGIN; + else if (identifier == "augsocket.end") RETVAL = EQEmu::invaug::SOCKET_END; + } XSprePUSH; PUSHu((IV)RETVAL); diff --git a/zone/lua_general.cpp b/zone/lua_general.cpp index 8bc4d8215..7f714fd6b 100644 --- a/zone/lua_general.cpp +++ b/zone/lua_general.cpp @@ -1947,12 +1947,34 @@ luabind::scope lua_register_slot() { luabind::value("EquipmentEnd", static_cast(EQEmu::invslot::EQUIPMENT_END)), luabind::value("GeneralBegin", static_cast(EQEmu::invslot::GENERAL_BEGIN)), luabind::value("GeneralEnd", static_cast(EQEmu::invslot::GENERAL_END)), + luabind::value("PossessionsBagsBegin", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN)), + luabind::value("PossessionsBagsEnd", static_cast(EQEmu::invbag::CURSOR_BAG_END)), luabind::value("GeneralBagsBegin", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN)), luabind::value("GeneralBagsEnd", static_cast(EQEmu::invbag::GENERAL_BAGS_END)), + luabind::value("General1BagBegin", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN)), + luabind::value("General1BagEnd", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 9), + luabind::value("General2BagBegin", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 10), + luabind::value("General2BagEnd", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 19), + luabind::value("General3BagBegin", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 20), + luabind::value("General3BagEnd", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 29), + luabind::value("General4BagBegin", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 30), + luabind::value("General4BagEnd", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 39), + luabind::value("General5BagBegin", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 40), + luabind::value("General5BagEnd", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 49), + luabind::value("General6BagBegin", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 50), + luabind::value("General6BagEnd", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 59), + luabind::value("General7BagBegin", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 60), + luabind::value("General7BagEnd", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 69), + luabind::value("General8BagBegin", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 70), + luabind::value("General8BagEnd", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 79), + luabind::value("General9BagBegin", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 80), + luabind::value("General9BagEnd", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 89), + luabind::value("General10BagBegin", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 90), + luabind::value("General10BagEnd", static_cast(EQEmu::invbag::GENERAL_BAGS_BEGIN) + 99), luabind::value("CursorBagBegin", static_cast(EQEmu::invbag::CURSOR_BAG_BEGIN)), luabind::value("CursorBagEnd", static_cast(EQEmu::invbag::CURSOR_BAG_END)), luabind::value("Tradeskill", static_cast(EQEmu::invslot::SLOT_TRADESKILL_EXPERIMENT_COMBINE)), - luabind::value("Augment", static_cast(EQEmu::invslot::SLOT_AUGMENT_GENERIC_RETURN)), // will be revised out + luabind::value("Augment", static_cast(EQEmu::invslot::SLOT_AUGMENT_GENERIC_RETURN)), luabind::value("BankBegin", static_cast(EQEmu::invslot::BANK_BEGIN)), luabind::value("BankEnd", static_cast(EQEmu::invslot::BANK_END)), luabind::value("BankBagsBegin", static_cast(EQEmu::invbag::BANK_BAGS_BEGIN)),