mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-02 16:32:26 +00:00
- License was intended to be GPLv3 per earlier commit of GPLv3 LICENSE FILE - This is confirmed by the inclusion of libraries that are incompatible with GPLv2 - This is also confirmed by KLS and the agreement of KLS's predecessors - Added GPLv3 license headers to the compilable source files - Removed Folly licensing in strings.h since the string functions do not match the Folly functions and are standard functions - this must have been left over from previous implementations - Removed individual contributor license headers since the project has been under the "developer" mantle for many years - Removed comments on files that were previously automatically generated since they've been manually modified multiple times and there are no automatic scripts referencing them (removed in 2023)
92 lines
3.0 KiB
C++
92 lines
3.0 KiB
C++
/* EQEmu: EQEmulator
|
|
|
|
Copyright (C) 2001-2026 EQEmu Development Team
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
#pragma once
|
|
|
|
#ifdef LUA_EQEMU
|
|
|
|
#include "zone/lua_ptr.h"
|
|
|
|
class Lua_ItemInst;
|
|
class Lua_Item;
|
|
|
|
namespace EQ
|
|
{
|
|
class InventoryProfile;
|
|
}
|
|
|
|
namespace luabind {
|
|
struct scope;
|
|
}
|
|
|
|
luabind::scope lua_register_inventory();
|
|
|
|
// This class should be deprecated due to the nature of inventory actions.
|
|
// Direct manipulation of the inventory system bypasses the client management
|
|
// of database calls and can lead to lost items, duplicated items and/or
|
|
// desync'd inventories, if not handled correctly.
|
|
|
|
class Lua_Inventory : public Lua_Ptr<EQ::InventoryProfile>
|
|
{
|
|
typedef EQ::InventoryProfile NativeType;
|
|
public:
|
|
Lua_Inventory() : Lua_Ptr(nullptr) { }
|
|
Lua_Inventory(EQ::InventoryProfile *d) : Lua_Ptr(d) { }
|
|
virtual ~Lua_Inventory() { }
|
|
|
|
operator EQ::InventoryProfile*() {
|
|
return reinterpret_cast<EQ::InventoryProfile*>(GetLuaPtrData());
|
|
}
|
|
|
|
Lua_ItemInst GetItem(int slot_id);
|
|
Lua_ItemInst GetItem(int slot_id, int bag_slot);
|
|
int PutItem(int slot_id, Lua_ItemInst item);
|
|
int PushCursor(Lua_ItemInst item);
|
|
bool SwapItem(int source_slot, int destination_slot);
|
|
bool DeleteItem(int slot_id);
|
|
bool DeleteItem(int slot_id, int quantity);
|
|
bool CheckNoDrop(int slot_id);
|
|
uint32 CountAugmentEquippedByID(uint32 item_id);
|
|
uint32 CountItemEquippedByID(uint32 item_id);
|
|
Lua_ItemInst PopItem(int slot_id);
|
|
bool HasAugmentEquippedByID(uint32 item_id);
|
|
bool HasItemEquippedByID(uint32 item_id);
|
|
int HasItem(int item_id);
|
|
int HasItem(int item_id, int quantity);
|
|
int HasItem(int item_id, int quantity, int where);
|
|
bool HasSpaceForItem(Lua_Item item, int quantity);
|
|
int HasItemByUse(int use);
|
|
int HasItemByUse(int use, uint8 quantity);
|
|
int HasItemByUse(int use, uint8 quantity, uint8 where);
|
|
int HasItemByLoreGroup(uint32 loregroup);
|
|
int HasItemByLoreGroup(uint32 loregroup, int where);
|
|
int FindFreeSlot(bool for_bag, bool try_cursor);
|
|
int FindFreeSlot(bool for_bag, bool try_cursor, int min_size);
|
|
int FindFreeSlot(bool for_bag, bool try_cursor, int min_size, bool is_arrow);
|
|
int CalcSlotId(int slot_id);
|
|
int CalcSlotId(int slot_id, int bag_slot);
|
|
int CalcBagIdx(int slot_id);
|
|
int CalcSlotFromMaterial(int material);
|
|
int CalcMaterialFromSlot(int equipslot);
|
|
bool CanItemFitInContainer(Lua_Item item, Lua_Item container);
|
|
bool SupportsContainers(int slot_id);
|
|
int GetSlotByItemInst(Lua_ItemInst inst);
|
|
luabind::object GetAugmentIDsBySlotID(lua_State* L, int16 slot_id);
|
|
};
|
|
|
|
#endif // LUA_EQEMU
|