#pragma once #include "MenuIconButton.h" #include "DEFINES.h" #include "Crawler.h" #include "Item.h" #include "safemap.h" INCLUDE_game INCLUDE_ITEM_DATA class MenuItemButton:public MenuIconButton{ private: std::vector&invRef; int inventoryIndex=0; public: inline MenuItemButton(geom2d::rectrect,std::vector&invRef,int invIndex,MenuFunc onClick) :MenuIconButton(rect,invRef.size()>invIndex?ITEM_DATA.at(invRef[invIndex]).Decal():nullptr,onClick),invRef(invRef),inventoryIndex(invIndex){ draggable=true; } inline Item GetItem(){ return Inventory::GetItem(invRef.at(inventoryIndex)); } inline void UseItem(uint32_t amt=1){ if(invRef.size()<=inventoryIndex)return; return Inventory::UseItem(invRef.at(inventoryIndex),amt); } protected: virtual inline void Update(Crawler*game)override{ MenuIconButton::Update(game); } virtual inline void Draw(Crawler*game,vf2d parentPos,bool focused)override{ MenuIconButton::Draw(game,parentPos,focused); } };