not worked version of inventory choosing

This commit is contained in:
maka70vv 2025-03-02 16:48:31 +06:00
parent d79a684868
commit 70f30b8b3a
4 changed files with 33 additions and 3 deletions

View File

@ -13,6 +13,7 @@ const float GameObjectManager::INVENTORY_MARGIN = 10.0f;
void GameObjectManager::initialize() { void GameObjectManager::initialize() {
current_room_index = 0; current_room_index = 0;
objects_in_inventory = 0;
coneTexturePtr = std::make_shared<Texture>(CreateTextureDataFromBmp24("./conus.bmp")); coneTexturePtr = std::make_shared<Texture>(CreateTextureDataFromBmp24("./conus.bmp"));
@ -145,7 +146,8 @@ void GameObjectManager::handleEvent(const SDL_Event& event) {
continue; continue;
} }
AddItemToInventory(ao->name, ao->activeObjectTexturePtr); AddItemToInventory(ao->name, ao->activeObjectTexturePtr, objects_in_inventory+1);
objects_in_inventory++;
aoMgr.removeByName(ao->name); aoMgr.removeByName(ao->name);
} }
@ -234,6 +236,30 @@ void GameObjectManager::handleEvent(const SDL_Event& event) {
Environment::violaLastWalkFrame = -1; Environment::violaLastWalkFrame = -1;
} }
break; break;
case SDLK_1:
{
int hot_key = 1;
std::string keyStr = std::to_string(hot_key);
auto it = gInventory.find(keyStr);
if (it != gInventory.end()) {
it->second.isSelected = true;
}
std::cout << keyStr << std::endl;
} break;
case SDLK_2:
{
int hot_key = 2;
std::string keyStr = std::to_string(hot_key);
auto it = gInventory.find(keyStr);
if (it != gInventory.end()) {
it->second.isSelected = true;
}
} break;
// ...handle other keys... // ...handle other keys...
} }
} }

View File

@ -55,6 +55,7 @@ public:
static const float INVENTORY_ICON_SIZE; static const float INVENTORY_ICON_SIZE;
static const float INVENTORY_MARGIN; static const float INVENTORY_MARGIN;
ActiveObjectManager aoMgr; ActiveObjectManager aoMgr;
int objects_in_inventory;
private: private:
//int animationCounter = 0; //int animationCounter = 0;

View File

@ -5,11 +5,12 @@ namespace ZL
// Определяем глобальную переменную // Определяем глобальную переменную
std::unordered_map<std::string, InventoryItem> gInventoryMap; std::unordered_map<std::string, InventoryItem> gInventoryMap;
void AddItemToInventory(const std::string& name, std::shared_ptr<Texture> tex) void AddItemToInventory(const std::string& name, std::shared_ptr<Texture> tex, int hot_key)
{ {
InventoryItem item; InventoryItem item;
item.name = name; item.name = name;
item.texture = tex; item.texture = tex;
item.hot_key = hot_key;
// Вставляем или перезаписываем (operator[] так сделает). // Вставляем или перезаписываем (operator[] так сделает).
gInventoryMap[name] = item; gInventoryMap[name] = item;

View File

@ -12,13 +12,15 @@ namespace ZL
{ {
std::string name; std::string name;
std::shared_ptr<Texture> texture; std::shared_ptr<Texture> texture;
bool isSelected = false;
int hot_key;
}; };
// Глобальное хранилище предметов // Глобальное хранилище предметов
extern std::unordered_map<std::string, InventoryItem> gInventory; extern std::unordered_map<std::string, InventoryItem> gInventory;
// Добавить предмет в инвентарь // Добавить предмет в инвентарь
void AddItemToInventory(const std::string& name, std::shared_ptr<Texture> tex); void AddItemToInventory(const std::string& name, std::shared_ptr<Texture> tex, int hot_key);
// Удалить предмет из инвентаря // Удалить предмет из инвентаря
void RemoveItemFromInventory(const std::string& name); void RemoveItemFromInventory(const std::string& name);