Argentum Online - Servidor
|
|
1 #ifndef ITEM_CONTAINER_H
2 #define ITEM_CONTAINER_H
7 #include "../../../include/nlohmann/json.hpp"
8 #include "../../../include/types.h"
19 const char* what()
const throw();
24 const char* what()
const throw();
29 const char* what()
const throw();
33 ItemId items_ids[INV_SIZE];
34 uint32_t items_stacks[INV_SIZE];
35 unsigned int current_gold;
38 inline void to_json(nlohmann::json& j,
const inventory_t& i) {
39 j[
"items_ids"] = i.items_ids;
40 j[
"items_stacks"] = i.items_stacks;
41 j[
"curr_gold"] = i.current_gold;
44 inline void from_json(
const nlohmann::json& j,
inventory_t& i) {
45 j[
"items_ids"].get_to(i.items_ids);
46 j[
"items_stacks"].get_to(i.items_stacks);
47 j[
"curr_gold"].get_to(i.current_gold);
53 std::vector<Item*> item_container;
54 std::map<ItemId, SlotId> item_id_to_slot;
55 nlohmann::json _get_data(
bool need_sprite_id)
const;
103 void add(
Item* item, uint32_t stack);
139 const Item& get_item(SlotId slot_id)
const;
140 bool slot_is_free(SlotId slot_id)
const;
141 bool has_item(ItemId item_id);
142 unsigned int get_gold_stack()
const;
177 bool is_in_range(SlotId slotId)
const;
178 bool has_slots_left()
const;
194 #endif // ITEM_CONTAINER_H
Definition: item_container.h:32
SlotId get_available_slot(ItemId item_id)
Devuelve el SlotId asignado/a asignar al item con item_id. Lanza FullContainerException en caso de qu...
Definition: item_container.cpp:183
Definition: item_container.h:22
nlohmann::json get_persist_data() const
Informacion para persistir el inventario en el personaje.
Definition: item_container.cpp:146
Definition: item_container.h:27
Definition: item_container.h:50
std::vector< Item * > remove_all()
Remueve todos los items del inventario, devolviendo un vector que los contiene a todos.
Definition: item_container.cpp:123
void add(Item *item)
Agrega el item entero (con todo su stack) al inventario. Lo invalida haciendo delete del puntero (en ...
Definition: item_container.cpp:69
~ItemContainer()
Se destruyen los items que quedaron almacenados en el inventario, junto con el oro.
Definition: item_container.cpp:62
Definition: item_container.h:17
void add_gold(Gold *gold)
Agrega la totalidad del stack del oro al inventario, seteando su stack en 0 (no invalida el puntero)
Definition: item_container.cpp:194
Gold * remove_gold()
Remueve la totalidad del oro del inventario (setea el stack en 0), devolviendo un nuevo puntero a Gol...
Definition: item_container.cpp:211
nlohmann::json get_data() const
Informacion a enviar al cliente.
Definition: item_container.cpp:132
Item * remove(SlotId slot_id)
Remueve en su totalidad el item que se encuentra en el slot_id, devolviendo un puntero a este....
Definition: item_container.cpp:98