#pragma once #include "Crawler.h" #include "DEFINES.h" #include "olcPixelGameEngine.h" #include "safemap.h" #include "Item.h" #include "MenuItemButton.h" #include "MenuLabel.h" #include "ScrollableWindowComponent.h" INCLUDE_GFX typedef Attribute A; void Menu::InitializeInventoryWindow(){ constexpr int invWidth=5; constexpr int initialInvHeight=3; constexpr int itemSpacing=8; constexpr int buttonSize=24; constexpr int totalSpacing=buttonSize+itemSpacing; vf2d windowSize={totalSpacing*invWidth-itemSpacing+2+24,totalSpacing*(3+1)-itemSpacing+24}; //Need space for the button. Menu*inventoryWindow=CreateMenu(INVENTORY,CENTERED,windowSize); ScrollableWindowComponent*inventory=new ScrollableWindowComponent(INVENTORY,{{1,0},{windowSize.x,totalSpacing*3-itemSpacing}},nullptr,[](MenuFuncData data){}); inventoryWindow->AddComponent("inventory",inventory); MenuFunc useItemFunc=[](MenuFuncData data){ MenuItemButton*button=(MenuItemButton*)data.component; button->UseItem(); }; for(int i=0;iAddComponent(inventoryWindow,"item"+std::to_string(itemIndex),button); } MenuLabel*itemNameLabel=new MenuLabel{INVENTORY,geom2d::rect(vf2d{2,initialInvHeight*totalSpacing-4},windowSize),"",false,true}; inventoryWindow->AddComponent("itemName",itemNameLabel); MenuLabel*itemDescriptionLabel=new MenuLabel{INVENTORY,geom2d::rect(vf2d{2,initialInvHeight*totalSpacing+itemSpacing},{windowSize.x-4,windowSize.y-108}),"",true,true}; inventoryWindow->AddComponent("itemDescription",itemDescriptionLabel); }