UFO: Alien Invasion
|
General actor related inventory function for are used in every game mode. More...
#include "client.h"
#include "cl_inventory.h"
#include "cl_inventory_callbacks.h"
#include "../shared/parse.h"
#include "ui/ui_popup.h"
#include "cgame/cl_game.h"
Go to the source code of this file.
Functions | |
const equipDef_t * | INV_GetEquipmentDefinitionByID (const char *name) |
Gets equipment definition by id. More... | |
bool | INV_MoveItem (Inventory *inv, const invDef_t *toContainer, int toX, int toY, const invDef_t *fromContainer, Item *fItem, Item **uponItem) |
Move item between containers. More... | |
bool | INV_LoadWeapon (const Item *weaponList, Inventory *inv, const invDef_t *srcContainer, const invDef_t *destContainer) |
Load a weapon with ammo. More... | |
bool | INV_UnloadWeapon (Item *weapon, Inventory *inv, const invDef_t *container) |
Unload a weapon and put the ammo in a container. More... | |
static bool | INV_EquipmentDefSanityCheck (void) |
Make sure equipment definitions used to generate teams are proper. More... | |
itemFilterTypes_t | INV_GetFilterFromItem (const objDef_t *obj) |
bool | INV_ItemMatchesFilter (const objDef_t *obj, const itemFilterTypes_t filterType) |
Checks if the given object/item matched the given filter type. More... | |
Item * | INV_SearchInInventoryWithFilter (const Inventory *const inv, const invDef_t *container, const objDef_t *itemType, const itemFilterTypes_t filterType) |
Searches if there is an item at location (x/y) in a scrollable container. You can also provide an item to search for directly (x/y is ignored in that case). More... | |
CASSERT (lengthof(filterTypeNames)==MAX_FILTERTYPES) | |
itemFilterTypes_t | INV_GetFilterTypeID (const char *filterTypeID) |
Searches for a filter type name (as used in console functions) and returns the matching itemFilterTypes_t enum. More... | |
const char * | INV_GetFilterType (itemFilterTypes_t id) |
void | INV_InitStartup (void) |
Variables | |
static char const *const | filterTypeNames [] |
General actor related inventory function for are used in every game mode.
Definition in file cl_inventory.cpp.
CASSERT | ( | lengthof(filterTypeNames) | = =MAX_FILTERTYPES | ) |
|
static |
Make sure equipment definitions used to generate teams are proper.
Definition at line 187 of file cl_inventory.cpp.
References Com_Printf(), csi, objDef_s::deplete, csi_s::eds, FILTER_S_ARMOUR, FILTER_S_HEAVY, FILTER_S_PRIMARY, FILTER_S_SECONDARY, objDef_s::fireTwoHanded, i, equipDef_s::id, INV_ItemMatchesFilter(), INVSH_GetItemByIDX(), objDef_s::isReloadable(), csi_s::numEDs, equipDef_s::numItems, csi_s::numODs, Q_strstart(), and objDef_s::weapon.
Referenced by INV_InitStartup().
const equipDef_t* INV_GetEquipmentDefinitionByID | ( | const char * | name | ) |
Gets equipment definition by id.
[in] | name | An id taken from scripts. |
equipDef_t
or nullptr
if no equipment definition found. Definition at line 39 of file cl_inventory.cpp.
References Com_Error(), csi, csi_s::eds, ERR_DROP, i, equipDef_s::id, csi_s::numEDs, and Q_streq.
Referenced by GAME_AutoTeam(), GAME_ChangeEquip(), GAME_GetCGameAPI(), GAME_GetEquipment(), GAME_GetImportData(), and GAME_Spawn().
itemFilterTypes_t INV_GetFilterFromItem | ( | const objDef_t * | obj | ) |
Definition at line 240 of file cl_inventory.cpp.
References FILTER_S_ARMOUR, FILTER_S_HEAVY, FILTER_S_IMPLANT, FILTER_S_MISC, FILTER_S_PRIMARY, FILTER_S_SECONDARY, objDef_s::id, objDef_s::implant, objDef_s::isArmour(), objDef_s::isHeavy, objDef_s::isMisc, objDef_s::isPrimary, objDef_s::isSecondary, and Sys_Error().
Referenced by INV_LoadWeapon(), and INV_UpdateObject_f().
const char* INV_GetFilterType | ( | itemFilterTypes_t | id | ) |
[in] | id | The filter type index |
Definition at line 419 of file cl_inventory.cpp.
References MAX_FILTERTYPES.
Referenced by GAME_GetImportData().
itemFilterTypes_t INV_GetFilterTypeID | ( | const char * | filterTypeID | ) |
Searches for a filter type name (as used in console functions) and returns the matching itemFilterTypes_t enum.
[in] | filterTypeID | Filter type name so search for. |
Definition at line 397 of file cl_inventory.cpp.
References FILTER_S_PRIMARY, i, MAX_FILTERTYPES, and Q_streq.
Referenced by GAME_GetImportData().
Definition at line 425 of file cl_inventory.cpp.
References Cmd_AddCommand(), INV_EquipmentDefSanityCheck(), and INV_InitCallbacks().
Referenced by CL_InitLocal().
bool INV_ItemMatchesFilter | ( | const objDef_t * | obj, |
const itemFilterTypes_t | filterType | ||
) |
Checks if the given object/item matched the given filter type.
[in] | obj | A pointer to an objDef_t item. |
[in] | filterType | Filter type to check against. |
true
if obj is in filterType Definition at line 268 of file cl_inventory.cpp.
References Com_Printf(), FILTER_AIRCRAFT, FILTER_CRAFTITEM, FILTER_DISASSEMBLY, FILTER_DUMMY, FILTER_ENSURE_32BIT, FILTER_S_ARMOUR, FILTER_S_HEAVY, FILTER_S_IMPLANT, FILTER_S_MISC, FILTER_S_PRIMARY, FILTER_S_SECONDARY, FILTER_UGVITEM, i, objDef_s::implant, INV_ItemMatchesFilter(), objDef_s::isArmour(), objDef_s::isCraftItem(), objDef_s::isDummy, objDef_s::isHeavy, objDef_s::isMisc, objDef_s::isPrimary, objDef_s::isSecondary, objDef_s::isUGVitem, MAX_FILTERTYPES, MAX_SOLDIER_FILTERTYPES, objDef_s::numWeapons, Q_streq, objDef_s::type, and objDef_s::weapons.
Referenced by GAME_GetImportData(), INV_EquipmentDefSanityCheck(), INV_ItemMatchesFilter(), INV_SearchInInventoryWithFilter(), and UI_ContainerItemIteratorNext().
bool INV_LoadWeapon | ( | const Item * | weaponList, |
Inventory * | inv, | ||
const invDef_t * | srcContainer, | ||
const invDef_t * | destContainer | ||
) |
Load a weapon with ammo.
[in] | weaponList | Pointer to weapon to load. |
[in] | inv | Pointer to inventory where the change happen. |
[in] | srcContainer | Pointer to inventorydef where to search ammo. |
[in] | destContainer | Pointer to inventorydef where the weapon is. |
Definition at line 99 of file cl_inventory.cpp.
References objDef_s::ammo, objDef_s::ammos, Item::def(), Item::getFirstShapePosition(), Inventory::getItemAtPos(), Item::getX(), Item::getY(), i, INV_GetFilterFromItem(), INV_MoveItem(), INV_SearchInInventoryWithFilter(), objDef_s::isReloadable(), objDef_s::numAmmos, Item::setAmmoDef(), Item::setAmmoLeft(), and objDef_s::weapons.
Referenced by uiContainerNode::onDndFinished(), and UI_ContainerNodeAutoPlaceItem().
bool INV_MoveItem | ( | Inventory * | inv, |
const invDef_t * | toContainer, | ||
int | toX, | ||
int | toY, | ||
const invDef_t * | fromContainer, | ||
Item * | fItem, | ||
Item ** | uponItem | ||
) |
Move item between containers.
[in] | inv | Pointer to the inventory we are working on. |
[in] | toContainer | Pointer to target container, to place the item in. |
[in] | toX | target x position in the toContainer container. |
[in] | toY | target y position in the toContainer container. |
[in] | fromContainer | Pointer to source container, the item is in. |
[in] | fItem | Pointer to item being moved. |
[out] | uponItem | The item the moving item is eventually dropped upon. |
Definition at line 63 of file cl_inventory.cpp.
References _, Inventory::canHoldItemWeight(), cls, GAME_GetChrMaxLoad(), GAME_GetSelectedChr(), client_static_s::i, IA_ARMOUR, IA_MOVE, IA_RELOAD, IA_RELOAD_SWAP, invDef_s::id, InventoryInterface::moveInInventory(), SHAPE_BIG_MAX_HEIGHT, SHAPE_BIG_MAX_WIDTH, and UI_Popup().
Referenced by INV_LoadWeapon(), uiContainerNode::onDndFinished(), UI_ContainerNodeAddItem(), and UI_ContainerNodeAutoPlaceItem().
Item* INV_SearchInInventoryWithFilter | ( | const Inventory *const | inv, |
const invDef_t * | container, | ||
const objDef_t * | itemType, | ||
const itemFilterTypes_t | filterType | ||
) |
Searches if there is an item at location (x/y) in a scrollable container. You can also provide an item to search for directly (x/y is ignored in that case).
[in] | inv | Pointer to the inventory where we will search. |
[in] | container | Container in the inventory. |
[in] | itemType | The item to search. Will ignore "x" and "y" if set, it'll also search invisible items. |
[in] | filterType | Enum definition of type (types of items for filtering purposes). |
Item
Pointer to the Item/item that is located at x/y or equals "item". Definition at line 357 of file cl_inventory.cpp.
References Inventory::getContainer2(), Item::getNext(), invDef_s::id, INV_ItemMatchesFilter(), and MAX_FILTERTYPES.
Referenced by INV_LoadWeapon(), uiContainerNode::onDndFinished(), and UI_ContainerNodeGetExistingItem().
Unload a weapon and put the ammo in a container.
[in,out] | weapon | The weapon to unload ammo. |
[in,out] | inv | inventory where the change happen. |
[in] | container | Inventory definition where to put the removed ammo. |
true
if the ammo was moved to the container, false
otherwise Definition at line 136 of file cl_inventory.cpp.
References InventoryInterface::addToInventory(), Item::ammoDef(), cls, Item::def(), Item::getAmmoLeft(), client_static_s::i, NONE, Item::setAmmoDef(), and Item::setAmmoLeft().
Referenced by uiContainerNode::onDndFinished(), and UI_ContainerNodeAutoPlaceItem().
|
static |
Names of the filter types as used in console function. e.g. in .ufo files.
Definition at line 377 of file cl_inventory.cpp.