Implemented controller compatibility for merchant menu. Release Build 7211.
This commit is contained in:
parent
0124d44a5c
commit
6db0aa3641
@ -41,7 +41,7 @@ enum MenuType{
|
|||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
/*DO NOT REMOVE!!*/ENUM_START,///////////////////////////////
|
/*DO NOT REMOVE!!*/ENUM_START,///////////////////////////////
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// 40% Controller Compatibility. (100 total items, 4 items per menu * 25 menus)
|
// 44% Controller Compatibility. (100 total items, 4 items per menu * 25 menus)
|
||||||
INVENTORY_CONSUMABLES, //100% Controller Compatibility
|
INVENTORY_CONSUMABLES, //100% Controller Compatibility
|
||||||
CLASS_INFO, //100% Controller Compatibility
|
CLASS_INFO, //100% Controller Compatibility
|
||||||
CLASS_SELECTION, //100% Controller Compatibility
|
CLASS_SELECTION, //100% Controller Compatibility
|
||||||
@ -52,7 +52,7 @@ enum MenuType{
|
|||||||
OVERWORLD_MENU, //100% Controller Compatibility
|
OVERWORLD_MENU, //100% Controller Compatibility
|
||||||
CHARACTER_MENU, //100% Controller Compatibility
|
CHARACTER_MENU, //100% Controller Compatibility
|
||||||
INVENTORY, //100% Controller Compatibility
|
INVENTORY, //100% Controller Compatibility
|
||||||
MERCHANT, //0% Controller Compatibility
|
MERCHANT, //100% Controller Compatibility
|
||||||
BUY_ITEM, //0% Controller Compatibility
|
BUY_ITEM, //0% Controller Compatibility
|
||||||
SELL_ITEM, //0% Controller Compatibility
|
SELL_ITEM, //0% Controller Compatibility
|
||||||
BLACKSMITH, //0% Controller Compatibility
|
BLACKSMITH, //0% Controller Compatibility
|
||||||
|
@ -43,6 +43,7 @@ All rights reserved.
|
|||||||
#include "MenuComponent.h"
|
#include "MenuComponent.h"
|
||||||
#include "PlayerMoneyLabel.h"
|
#include "PlayerMoneyLabel.h"
|
||||||
#include "ItemMenuLabel.h"
|
#include "ItemMenuLabel.h"
|
||||||
|
#include "SoundEffect.h"
|
||||||
|
|
||||||
INCLUDE_game
|
INCLUDE_game
|
||||||
INCLUDE_ITEM_CATEGORIES
|
INCLUDE_ITEM_CATEGORIES
|
||||||
@ -54,13 +55,18 @@ void Menu::InitializeMerchantWindow(){
|
|||||||
|
|
||||||
static std::string lastInventoryTypeOpened="";
|
static std::string lastInventoryTypeOpened="";
|
||||||
|
|
||||||
std::vector<std::pair<std::string,int>>categories;
|
auto GetSortedCategories=[](){
|
||||||
for(auto&[category,items]:ITEM_CATEGORIES){
|
std::vector<std::pair<std::string,int>>categories;
|
||||||
if(DATA["ItemCategory"][category].GetString(0)=="!HIDE")continue; //This category is meant to be hidden!
|
for(auto&[category,items]:ITEM_CATEGORIES){
|
||||||
categories.push_back({category,DATA["ItemCategory"][category].GetInt(0)}); //We assume the first value becomes the sort order we wish to use.
|
if(DATA["ItemCategory"][category].GetString(0)=="!HIDE")continue; //This category is meant to be hidden!
|
||||||
}
|
categories.push_back({category,DATA["ItemCategory"][category].GetInt(0)}); //We assume the first value becomes the sort order we wish to use.
|
||||||
std::sort(categories.begin(),categories.end(),[](std::pair<std::string,int>&cat1,std::pair<std::string,int>&cat2){return cat1.second<cat2.second;});
|
}
|
||||||
|
std::sort(categories.begin(),categories.end(),[](std::pair<std::string,int>&cat1,std::pair<std::string,int>&cat2){return cat1.second<cat2.second;});
|
||||||
|
return categories;
|
||||||
|
};
|
||||||
|
|
||||||
|
std::vector<std::pair<std::string,int>>categories=GetSortedCategories();
|
||||||
|
|
||||||
auto buyTab=merchantWindow->ADD("Buy Tab",MenuComponent)(geom2d::rect<float>{{2,0},{merchantWindow->size.x/2-4,24}},"Buy",[](MenuFuncData data){
|
auto buyTab=merchantWindow->ADD("Buy Tab",MenuComponent)(geom2d::rect<float>{{2,0},{merchantWindow->size.x/2-4,24}},"Buy",[](MenuFuncData data){
|
||||||
Component<RowInventoryScrollableWindowComponent>(MERCHANT,"Merchant Inventory Display")->Enable();
|
Component<RowInventoryScrollableWindowComponent>(MERCHANT,"Merchant Inventory Display")->Enable();
|
||||||
Component<MenuComponent>(MERCHANT,"Sell Tab")->selected=false;
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->selected=false;
|
||||||
@ -72,6 +78,7 @@ void Menu::InitializeMerchantWindow(){
|
|||||||
Component<RowInventoryScrollableWindowComponent>(data.menu.GetType(),"Inventory Display - "+data.menu.S(A::LAST_INVENTORY_TYPE_OPENED))->Disable();
|
Component<RowInventoryScrollableWindowComponent>(data.menu.GetType(),"Inventory Display - "+data.menu.S(A::LAST_INVENTORY_TYPE_OPENED))->Disable();
|
||||||
Component<MenuComponent>(data.menu.GetType(),data.menu.S(A::LAST_INVENTORY_TYPE_OPENED)+" Inventory Tab")->Disable();
|
Component<MenuComponent>(data.menu.GetType(),data.menu.S(A::LAST_INVENTORY_TYPE_OPENED)+" Inventory Tab")->Disable();
|
||||||
data.component.lock()->selected=true;
|
data.component.lock()->selected=true;
|
||||||
|
SoundEffect::PlaySFX("Button Click",SoundEffect::CENTERED);
|
||||||
return true;
|
return true;
|
||||||
})END;
|
})END;
|
||||||
buyTab->selected=true;
|
buyTab->selected=true;
|
||||||
@ -88,9 +95,12 @@ void Menu::InitializeMerchantWindow(){
|
|||||||
Component<RowInventoryScrollableWindowComponent>(data.menu.GetType(),"Inventory Display - "+data.menu.S(A::LAST_INVENTORY_TYPE_OPENED))->Enable();
|
Component<RowInventoryScrollableWindowComponent>(data.menu.GetType(),"Inventory Display - "+data.menu.S(A::LAST_INVENTORY_TYPE_OPENED))->Enable();
|
||||||
Component<MenuComponent>(data.menu.GetType(),data.menu.S(A::LAST_INVENTORY_TYPE_OPENED)+" Inventory Tab")->Enable();
|
Component<MenuComponent>(data.menu.GetType(),data.menu.S(A::LAST_INVENTORY_TYPE_OPENED)+" Inventory Tab")->Enable();
|
||||||
data.component.lock()->selected=true;
|
data.component.lock()->selected=true;
|
||||||
|
SoundEffect::PlaySFX("Button Click",SoundEffect::CENTERED);
|
||||||
return true;
|
return true;
|
||||||
})END;
|
})END;
|
||||||
sellTab->selectionType=SelectionType::HIGHLIGHT;
|
sellTab->selectionType=SelectionType::HIGHLIGHT;
|
||||||
|
|
||||||
|
merchantWindow->I(A::ITEM_SLOT)=0;
|
||||||
|
|
||||||
auto inventoryDisplay=merchantWindow->ADD("Merchant Inventory Display",RowInventoryScrollableWindowComponent)(geom2d::rect<float>{{2,28},{220,merchantWindow->size.y-44}},"Item Name Label","Item Description Label",
|
auto inventoryDisplay=merchantWindow->ADD("Merchant Inventory Display",RowInventoryScrollableWindowComponent)(geom2d::rect<float>{{2,28},{220,merchantWindow->size.y-44}},"Item Name Label","Item Description Label",
|
||||||
[](MenuFuncData data){
|
[](MenuFuncData data){
|
||||||
@ -112,6 +122,7 @@ void Menu::InitializeMerchantWindow(){
|
|||||||
},
|
},
|
||||||
[](MenuFuncData data){
|
[](MenuFuncData data){
|
||||||
Component<MenuItemItemButton>(data.menu.GetType(),"Item Icon")->SetItem(DYNAMIC_POINTER_CAST<RowItemDisplay>(data.component.lock())->GetItem());
|
Component<MenuItemItemButton>(data.menu.GetType(),"Item Icon")->SetItem(DYNAMIC_POINTER_CAST<RowItemDisplay>(data.component.lock())->GetItem());
|
||||||
|
data.menu.I(A::MERCHANT_ITEM_SLOT)=data.parentComponent.lock()->GetComponentIndex(data.component);
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
[](MenuFuncData data){
|
[](MenuFuncData data){
|
||||||
@ -128,8 +139,6 @@ void Menu::InitializeMerchantWindow(){
|
|||||||
|
|
||||||
merchantWindow->ADD("Inventory Tabs Outline",MenuComponent)(geom2d::rect<float>{{0,28},{72,merchantWindow->size.y-44}},"",DO_NOTHING,ButtonAttr::UNSELECTABLE)END;
|
merchantWindow->ADD("Inventory Tabs Outline",MenuComponent)(geom2d::rect<float>{{0,28},{72,merchantWindow->size.y-44}},"",DO_NOTHING,ButtonAttr::UNSELECTABLE)END;
|
||||||
|
|
||||||
std::sort(categories.begin(),categories.end(),[](std::pair<std::string,int>&cat1,std::pair<std::string,int>&cat2){return cat1.second<cat2.second;});
|
|
||||||
|
|
||||||
#pragma region Inventory Tabs
|
#pragma region Inventory Tabs
|
||||||
bool first=true;
|
bool first=true;
|
||||||
for(float yOffset=0;auto&[category,sortOrder]:categories){
|
for(float yOffset=0;auto&[category,sortOrder]:categories){
|
||||||
@ -145,6 +154,15 @@ void Menu::InitializeMerchantWindow(){
|
|||||||
Component<RowInventoryScrollableWindowComponent>(data.menu.GetType(),"Inventory Display - "+data.component.lock()->S(A::CATEGORY_NAME))->Enable();
|
Component<RowInventoryScrollableWindowComponent>(data.menu.GetType(),"Inventory Display - "+data.component.lock()->S(A::CATEGORY_NAME))->Enable();
|
||||||
Component<MenuComponent>(data.menu.GetType(),data.component.lock()->S(A::CATEGORY_NAME)+" Inventory Tab")->SetSelected(true);
|
Component<MenuComponent>(data.menu.GetType(),data.component.lock()->S(A::CATEGORY_NAME)+" Inventory Tab")->SetSelected(true);
|
||||||
data.menu.S(A::LAST_INVENTORY_TYPE_OPENED)=data.component.lock()->S(A::CATEGORY_NAME);
|
data.menu.S(A::LAST_INVENTORY_TYPE_OPENED)=data.component.lock()->S(A::CATEGORY_NAME);
|
||||||
|
if(Component<RowInventoryScrollableWindowComponent>(data.menu.GetType(),"Inventory Display - "+data.component.lock()->S(A::CATEGORY_NAME))->GetComponents().size()>0){
|
||||||
|
data.menu.I(A::ITEM_SLOT)=0;
|
||||||
|
}else{
|
||||||
|
data.menu.I(A::ITEM_SLOT)=-1;
|
||||||
|
}
|
||||||
|
if(data.menu.I(A::ITEM_SLOT)>=0){
|
||||||
|
data.menu.SetSelection(Component<RowInventoryScrollableWindowComponent>(data.menu.GetType(),"Inventory Display - "+data.component.lock()->S(A::CATEGORY_NAME))->GetComponents()[0],true);
|
||||||
|
}
|
||||||
|
SoundEffect::PlaySFX("Button Click",SoundEffect::CENTERED);
|
||||||
return true;
|
return true;
|
||||||
},vf2d{textScaling,1.f})END;
|
},vf2d{textScaling,1.f})END;
|
||||||
button->SetSelectionType(HIGHLIGHT);
|
button->SetSelectionType(HIGHLIGHT);
|
||||||
@ -172,6 +190,7 @@ void Menu::InitializeMerchantWindow(){
|
|||||||
},
|
},
|
||||||
[](MenuFuncData data){
|
[](MenuFuncData data){
|
||||||
Component<MenuItemItemButton>(data.menu.GetType(),"Item Icon")->SetItem(DYNAMIC_POINTER_CAST<RowItemDisplay>(data.component.lock())->GetItem());
|
Component<MenuItemItemButton>(data.menu.GetType(),"Item Icon")->SetItem(DYNAMIC_POINTER_CAST<RowItemDisplay>(data.component.lock())->GetItem());
|
||||||
|
data.menu.I(A::ITEM_SLOT)=data.parentComponent.lock()->GetComponentIndex(data.component);
|
||||||
return true;
|
return true;
|
||||||
},
|
},
|
||||||
[](MenuFuncData data){
|
[](MenuFuncData data){
|
||||||
@ -224,27 +243,570 @@ void Menu::InitializeMerchantWindow(){
|
|||||||
|
|
||||||
buyTab->onClick(MenuFuncData{*merchantWindow,game,buyTab});
|
buyTab->onClick(MenuFuncData{*merchantWindow,game,buyTab});
|
||||||
|
|
||||||
/*merchantWindow->SetupKeyboardNavigation(
|
merchantWindow->SetupKeyboardNavigation(
|
||||||
[](MenuType type,Data&returnData){ //On Open
|
[](MenuType type,Data&returnData){ //On Open
|
||||||
if(SaveFile::GetSaveFileCount()>0){
|
returnData=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display")->GetComponents()[0];
|
||||||
returnData="Load Game Button";
|
|
||||||
}else{
|
|
||||||
returnData="New Game Button";
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{ //Button Key
|
{ //Button Key
|
||||||
{game->KEY_BACK,{"Back",[](MenuType type){}}},
|
{game->KEY_BACK,{"Leave",[](MenuType type){
|
||||||
|
Menu::CloseMenu();
|
||||||
|
}}},
|
||||||
|
{game->KEY_FACELEFT,{[](MenuFuncData data){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
return "Sell Page";
|
||||||
|
}else{
|
||||||
|
return "Buy Page";
|
||||||
|
}
|
||||||
|
},[](MenuType type){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
Menu::menus[type]->SetSelection(merchantList->GetComponents()[merchantList->GetComponents().size()-1]);
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
Menu::menus[type]->SetSelection(inventory->GetComponents()[0]);
|
||||||
|
}else{
|
||||||
|
Menu::menus[type]->SetSelection(std::weak_ptr<MenuComponent>{Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)))});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}}},
|
||||||
|
{{game->KEY_SHOULDER,Pressed},{"Scroll Up/Down",[](MenuType type){}}},
|
||||||
|
{{game->KEY_FACEUP,Pressed},{[](MenuFuncData data){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
return "";
|
||||||
|
}else{
|
||||||
|
return "Change Category";
|
||||||
|
}
|
||||||
|
},[&](MenuType type){
|
||||||
|
auto categories=GetSortedCategories();
|
||||||
|
size_t index=0;
|
||||||
|
for(auto&[category,item]:categories){
|
||||||
|
if(category==Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED))break;
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
if(index<categories.size()){
|
||||||
|
index++;
|
||||||
|
if(index>=categories.size()){
|
||||||
|
index-=categories.size();
|
||||||
|
}
|
||||||
|
Component<MenuComponent>(type,std::format("{} Inventory Tab",categories[index].first))->Click();
|
||||||
|
}else ERR("WARNING! Could not find current category! THIS SHOULD NOT BE HAPPENING!");
|
||||||
|
}}},
|
||||||
|
{{game->KEY_FASTSCROLLDOWN,PressedDAS},{"",[&](MenuType type){
|
||||||
|
if(!Menu::menus[type]->GetSelection().expired()&&
|
||||||
|
!Menu::menus[type]->GetSelection().lock()->parentComponent.expired()){
|
||||||
|
Menu::menus[type]->GetSelection().lock()->parentComponent.lock()->IncreaseSelectionIndex(3.f);
|
||||||
|
}
|
||||||
|
}}},
|
||||||
|
{{game->KEY_FASTSCROLLUP,PressedDAS},{"",[&](MenuType type){
|
||||||
|
if(!Menu::menus[type]->GetSelection().expired()&&
|
||||||
|
!Menu::menus[type]->GetSelection().lock()->parentComponent.expired()){
|
||||||
|
Menu::menus[type]->GetSelection().lock()->parentComponent.lock()->IncreaseSelectionIndex(-3.f);
|
||||||
|
}
|
||||||
|
}}},
|
||||||
|
{{game->KEY_SCROLL,Pressed},{"Navigate",[](MenuType type){}}},
|
||||||
{game->KEY_CONFIRM,{"Select",[](MenuType type){}}},
|
{game->KEY_CONFIRM,{"Select",[](MenuType type){}}},
|
||||||
}
|
}
|
||||||
,{ //Button Navigation Rules
|
,{ //Button Navigation Rules
|
||||||
{"New Game Button",{
|
{"Leave Button",{
|
||||||
.up="Quit Game Button",
|
.up=[](MenuType type,Data&returnData){
|
||||||
.down="Load Game Button",}},
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
{"Load Game Button",{
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
.up="New Game Button",
|
returnData=merchantList->GetComponents()[merchantList->GetComponents().size()-1];
|
||||||
.down="Quit Game Button",}},
|
}else{
|
||||||
{"Quit Game Button",{
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
.up="Load Game Button",
|
if(inventory->GetComponents().size()>0){
|
||||||
.down="New Game Button",}},
|
returnData=inventory->GetComponents()[inventory->GetComponents().size()-1];
|
||||||
});*/
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.down=[](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.left=[](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.right=[](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}},
|
||||||
|
{"Inventory Display - Consumables",{
|
||||||
|
.up=[](MenuType type,Data&returnData){
|
||||||
|
Menu::menus[type]->I(A::ITEM_SLOT)--;
|
||||||
|
if(Menu::menus[type]->I(A::ITEM_SLOT)<0){
|
||||||
|
returnData="Leave Button";
|
||||||
|
}else returnData=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Consumables")->GetComponents()[Menu::menus[type]->I(A::ITEM_SLOT)];
|
||||||
|
},
|
||||||
|
.down=[](MenuType type,Data&returnData){
|
||||||
|
Menu::menus[type]->I(A::ITEM_SLOT)++;
|
||||||
|
if(Menu::menus[type]->I(A::ITEM_SLOT)>=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Consumables")->GetComponents().size()){
|
||||||
|
returnData="Leave Button";
|
||||||
|
}else returnData=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Consumables")->GetComponents()[Menu::menus[type]->I(A::ITEM_SLOT)];
|
||||||
|
},
|
||||||
|
.left=[](MenuType type,Data&returnData){
|
||||||
|
returnData=std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED));
|
||||||
|
},
|
||||||
|
.right=[](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
{"Inventory Display - Equipment",{
|
||||||
|
.up=[](MenuType type,Data&returnData){
|
||||||
|
Menu::menus[type]->I(A::ITEM_SLOT)--;
|
||||||
|
if(Menu::menus[type]->I(A::ITEM_SLOT)<0){
|
||||||
|
returnData="Leave Button";
|
||||||
|
}else returnData=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Equipment")->GetComponents()[Menu::menus[type]->I(A::ITEM_SLOT)];
|
||||||
|
},
|
||||||
|
.down=[](MenuType type,Data&returnData){
|
||||||
|
Menu::menus[type]->I(A::ITEM_SLOT)++;
|
||||||
|
if(Menu::menus[type]->I(A::ITEM_SLOT)>=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Equipment")->GetComponents().size()){
|
||||||
|
returnData="Leave Button";
|
||||||
|
}else returnData=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Equipment")->GetComponents()[Menu::menus[type]->I(A::ITEM_SLOT)];
|
||||||
|
},
|
||||||
|
.left=[](MenuType type,Data&returnData){
|
||||||
|
returnData=std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED));
|
||||||
|
},
|
||||||
|
.right=[](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
{"Inventory Display - Accessories",{
|
||||||
|
.up=[](MenuType type,Data&returnData){
|
||||||
|
Menu::menus[type]->I(A::ITEM_SLOT)--;
|
||||||
|
if(Menu::menus[type]->I(A::ITEM_SLOT)<0){
|
||||||
|
returnData="Leave Button";
|
||||||
|
}else returnData=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Accessories")->GetComponents()[Menu::menus[type]->I(A::ITEM_SLOT)];
|
||||||
|
},
|
||||||
|
.down=[](MenuType type,Data&returnData){
|
||||||
|
Menu::menus[type]->I(A::ITEM_SLOT)++;
|
||||||
|
if(Menu::menus[type]->I(A::ITEM_SLOT)>=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Accessories")->GetComponents().size()){
|
||||||
|
returnData="Leave Button";
|
||||||
|
}else returnData=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Accessories")->GetComponents()[Menu::menus[type]->I(A::ITEM_SLOT)];
|
||||||
|
},
|
||||||
|
.left=[](MenuType type,Data&returnData){
|
||||||
|
returnData=std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED));
|
||||||
|
},
|
||||||
|
.right=[](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
{"Inventory Display - Materials",{
|
||||||
|
.up=[](MenuType type,Data&returnData){
|
||||||
|
Menu::menus[type]->I(A::ITEM_SLOT)--;
|
||||||
|
if(Menu::menus[type]->I(A::ITEM_SLOT)<0){
|
||||||
|
returnData="Leave Button";
|
||||||
|
}else returnData=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Materials")->GetComponents()[Menu::menus[type]->I(A::ITEM_SLOT)];
|
||||||
|
},
|
||||||
|
.down=[](MenuType type,Data&returnData){
|
||||||
|
Menu::menus[type]->I(A::ITEM_SLOT)++;
|
||||||
|
if(Menu::menus[type]->I(A::ITEM_SLOT)>=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Materials")->GetComponents().size()){
|
||||||
|
returnData="Leave Button";
|
||||||
|
}else returnData=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Materials")->GetComponents()[Menu::menus[type]->I(A::ITEM_SLOT)];
|
||||||
|
},
|
||||||
|
.left=[](MenuType type,Data&returnData){
|
||||||
|
returnData=std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED));
|
||||||
|
},
|
||||||
|
.right=[](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}},
|
||||||
|
{"Merchant Inventory Display",{
|
||||||
|
.up=[](MenuType type,Data&returnData){
|
||||||
|
Menu::menus[type]->I(A::MERCHANT_ITEM_SLOT)--;
|
||||||
|
if(Menu::menus[type]->I(A::MERCHANT_ITEM_SLOT)<0){
|
||||||
|
returnData="Leave Button";
|
||||||
|
}else{
|
||||||
|
returnData=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display")->GetComponents()[Menu::menus[type]->I(A::MERCHANT_ITEM_SLOT)];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.down=[](MenuType type,Data&returnData){
|
||||||
|
Menu::menus[type]->I(A::MERCHANT_ITEM_SLOT)++;
|
||||||
|
if(Menu::menus[type]->I(A::MERCHANT_ITEM_SLOT)>=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display")->GetComponents().size()){
|
||||||
|
returnData="Leave Button";
|
||||||
|
}else{
|
||||||
|
returnData=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display")->GetComponents()[Menu::menus[type]->I(A::MERCHANT_ITEM_SLOT)];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.left=[](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.right=[](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}},
|
||||||
|
{"Consumables Inventory Tab",{
|
||||||
|
.up=[&](MenuType type,Data&returnData){
|
||||||
|
auto categories=GetSortedCategories();
|
||||||
|
size_t index=0;
|
||||||
|
for(auto&[category,item]:categories){
|
||||||
|
if(category=="Consumables")break;
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
if(index<categories.size()){
|
||||||
|
index--;
|
||||||
|
if(index>=categories.size()){
|
||||||
|
index=categories.size()-1;
|
||||||
|
}
|
||||||
|
Component<MenuComponent>(type,std::format("{} Inventory Tab",categories[index].first))->Click();
|
||||||
|
returnData=std::format("{} Inventory Tab",categories[index].first);
|
||||||
|
}else ERR("WARNING! Could not find current category! THIS SHOULD NOT BE HAPPENING!");
|
||||||
|
},
|
||||||
|
.down=[&](MenuType type,Data&returnData){
|
||||||
|
auto categories=GetSortedCategories();
|
||||||
|
size_t index=0;
|
||||||
|
for(auto&[category,item]:categories){
|
||||||
|
if(category=="Consumables")break;
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
if(index<categories.size()){
|
||||||
|
index++;
|
||||||
|
if(index>=categories.size()){
|
||||||
|
index-=categories.size();
|
||||||
|
}
|
||||||
|
Component<MenuComponent>(type,std::format("{} Inventory Tab",categories[index].first))->Click();
|
||||||
|
returnData=std::format("{} Inventory Tab",categories[index].first);
|
||||||
|
}else ERR("WARNING! Could not find current category! THIS SHOULD NOT BE HAPPENING!");
|
||||||
|
},
|
||||||
|
.left=[&](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.right=[&](MenuType type,Data&returnData){
|
||||||
|
if(Menu::menus[type]->I(A::ITEM_SLOT)>=0){
|
||||||
|
returnData=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Consumables")->GetComponents()[Menu::menus[type]->I(A::ITEM_SLOT)];
|
||||||
|
}else{
|
||||||
|
returnData="Consumables Inventory Tab";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}},
|
||||||
|
{"Equipment Inventory Tab",{
|
||||||
|
.up=[&](MenuType type,Data&returnData){
|
||||||
|
auto categories=GetSortedCategories();
|
||||||
|
size_t index=0;
|
||||||
|
for(auto&[category,item]:categories){
|
||||||
|
if(category=="Equipment")break;
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
if(index<categories.size()){
|
||||||
|
index--;
|
||||||
|
if(index>=categories.size()){
|
||||||
|
index=categories.size()-1;
|
||||||
|
}
|
||||||
|
Component<MenuComponent>(type,std::format("{} Inventory Tab",categories[index].first))->Click();
|
||||||
|
returnData=std::format("{} Inventory Tab",categories[index].first);
|
||||||
|
}else ERR("WARNING! Could not find current category! THIS SHOULD NOT BE HAPPENING!");
|
||||||
|
},
|
||||||
|
.down=[&](MenuType type,Data&returnData){
|
||||||
|
auto categories=GetSortedCategories();
|
||||||
|
size_t index=0;
|
||||||
|
for(auto&[category,item]:categories){
|
||||||
|
if(category=="Equipment")break;
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
if(index<categories.size()){
|
||||||
|
index++;
|
||||||
|
if(index>=categories.size()){
|
||||||
|
index-=categories.size();
|
||||||
|
}
|
||||||
|
Component<MenuComponent>(type,std::format("{} Inventory Tab",categories[index].first))->Click();
|
||||||
|
returnData=std::format("{} Inventory Tab",categories[index].first);
|
||||||
|
}else ERR("WARNING! Could not find current category! THIS SHOULD NOT BE HAPPENING!");
|
||||||
|
},
|
||||||
|
.left=[&](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.right=[&](MenuType type,Data&returnData){
|
||||||
|
if(Menu::menus[type]->I(A::ITEM_SLOT)>=0){
|
||||||
|
returnData=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Equipment")->GetComponents()[Menu::menus[type]->I(A::ITEM_SLOT)];
|
||||||
|
}else{
|
||||||
|
returnData="Equipment Inventory Tab";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}},
|
||||||
|
{"Accessories Inventory Tab",{
|
||||||
|
.up=[&](MenuType type,Data&returnData){
|
||||||
|
auto categories=GetSortedCategories();
|
||||||
|
size_t index=0;
|
||||||
|
for(auto&[category,item]:categories){
|
||||||
|
if(category=="Accessories")break;
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
if(index<categories.size()){
|
||||||
|
index--;
|
||||||
|
if(index>=categories.size()){
|
||||||
|
index=categories.size()-1;
|
||||||
|
}
|
||||||
|
Component<MenuComponent>(type,std::format("{} Inventory Tab",categories[index].first))->Click();
|
||||||
|
returnData=std::format("{} Inventory Tab",categories[index].first);
|
||||||
|
}else ERR("WARNING! Could not find current category! THIS SHOULD NOT BE HAPPENING!");
|
||||||
|
},
|
||||||
|
.down=[&](MenuType type,Data&returnData){
|
||||||
|
auto categories=GetSortedCategories();
|
||||||
|
size_t index=0;
|
||||||
|
for(auto&[category,item]:categories){
|
||||||
|
if(category=="Accessories")break;
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
if(index<categories.size()){
|
||||||
|
index++;
|
||||||
|
if(index>=categories.size()){
|
||||||
|
index-=categories.size();
|
||||||
|
}
|
||||||
|
Component<MenuComponent>(type,std::format("{} Inventory Tab",categories[index].first))->Click();
|
||||||
|
returnData=std::format("{} Inventory Tab",categories[index].first);
|
||||||
|
}else ERR("WARNING! Could not find current category! THIS SHOULD NOT BE HAPPENING!");
|
||||||
|
},
|
||||||
|
.left=[&](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.right=[&](MenuType type,Data&returnData){
|
||||||
|
if(Menu::menus[type]->I(A::ITEM_SLOT)>=0){
|
||||||
|
returnData=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Accessories")->GetComponents()[Menu::menus[type]->I(A::ITEM_SLOT)];
|
||||||
|
}else{
|
||||||
|
returnData="Accessories Inventory Tab";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}},
|
||||||
|
{"Materials Inventory Tab",{
|
||||||
|
.up=[&](MenuType type,Data&returnData){
|
||||||
|
auto categories=GetSortedCategories();
|
||||||
|
size_t index=0;
|
||||||
|
for(auto&[category,item]:categories){
|
||||||
|
if(category=="Materials")break;
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
if(index<categories.size()){
|
||||||
|
index--;
|
||||||
|
if(index>=categories.size()){
|
||||||
|
index=categories.size()-1;
|
||||||
|
}
|
||||||
|
Component<MenuComponent>(type,std::format("{} Inventory Tab",categories[index].first))->Click();
|
||||||
|
returnData=std::format("{} Inventory Tab",categories[index].first);
|
||||||
|
}else ERR("WARNING! Could not find current category! THIS SHOULD NOT BE HAPPENING!");
|
||||||
|
},
|
||||||
|
.down=[&](MenuType type,Data&returnData){
|
||||||
|
auto categories=GetSortedCategories();
|
||||||
|
size_t index=0;
|
||||||
|
for(auto&[category,item]:categories){
|
||||||
|
if(category=="Materials")break;
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
if(index<categories.size()){
|
||||||
|
index++;
|
||||||
|
if(index>=categories.size()){
|
||||||
|
index-=categories.size();
|
||||||
|
}
|
||||||
|
Component<MenuComponent>(type,std::format("{} Inventory Tab",categories[index].first))->Click();
|
||||||
|
returnData=std::format("{} Inventory Tab",categories[index].first);
|
||||||
|
}else ERR("WARNING! Could not find current category! THIS SHOULD NOT BE HAPPENING!");
|
||||||
|
},
|
||||||
|
.left=[&](MenuType type,Data&returnData){
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
Component<MenuComponent>(MERCHANT,"Sell Tab")->Click();
|
||||||
|
}else{
|
||||||
|
Component<MenuComponent>(MERCHANT,"Buy Tab")->Click();
|
||||||
|
}
|
||||||
|
if(Component<MenuComponent>(MERCHANT,"Buy Tab")->selected){
|
||||||
|
auto merchantList=Component<RowInventoryScrollableWindowComponent>(type,"Merchant Inventory Display");
|
||||||
|
returnData=merchantList->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
auto inventory=Component<RowInventoryScrollableWindowComponent>(type,std::format("Inventory Display - {}",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
if(inventory->GetComponents().size()>0){
|
||||||
|
returnData=inventory->GetComponents()[0];
|
||||||
|
}else{
|
||||||
|
returnData=Component<MenuComponent>(type,std::format("{} Inventory Tab",Menu::menus[type]->S(A::LAST_INVENTORY_TYPE_OPENED)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.right=[&](MenuType type,Data&returnData){
|
||||||
|
if(Menu::menus[type]->I(A::ITEM_SLOT)>=0){
|
||||||
|
returnData=Component<RowInventoryScrollableWindowComponent>(type,"Inventory Display - Materials")->GetComponents()[Menu::menus[type]->I(A::ITEM_SLOT)];
|
||||||
|
}else{
|
||||||
|
returnData="Materials Inventory Tab";
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}},
|
||||||
|
});
|
||||||
}
|
}
|
@ -98,4 +98,5 @@ enum class Attribute{
|
|||||||
IS_KEYBOARD,
|
IS_KEYBOARD,
|
||||||
KEYBIND,
|
KEYBIND,
|
||||||
ITEM_SLOT,
|
ITEM_SLOT,
|
||||||
|
MERCHANT_ITEM_SLOT,
|
||||||
};
|
};
|
@ -85,7 +85,7 @@ void Menu::InitializeOverworldMapLevelWindow(){
|
|||||||
{{game->KEY_FASTSCROLLDOWN,Held,InputEngageGroup::NOT_VISIBLE},{"Scroll Encounters",[](MenuType type){
|
{{game->KEY_FASTSCROLLDOWN,Held,InputEngageGroup::NOT_VISIBLE},{"Scroll Encounters",[](MenuType type){
|
||||||
Component<EncountersSpawnListScrollableWindowComponent>(type,"Spawns List")->Scroll(1.0f);
|
Component<EncountersSpawnListScrollableWindowComponent>(type,"Spawns List")->Scroll(1.0f);
|
||||||
}}},
|
}}},
|
||||||
{{game->KEY_SCROLLVERT_R,Analog},{"Scroll Encounters",[](MenuType type){
|
{{game->KEY_SCROLLVERT_R,Analog,InputEngageGroup::NOT_VISIBLE},{"Scroll Encounters",[](MenuType type){
|
||||||
Component<EncountersSpawnListScrollableWindowComponent>(type,"Spawns List")->Scroll(game->KEY_SCROLLVERT.Analog());
|
Component<EncountersSpawnListScrollableWindowComponent>(type,"Spawns List")->Scroll(game->KEY_SCROLLVERT.Analog());
|
||||||
}}},
|
}}},
|
||||||
{{game->KEY_SCROLLUP,Held},{"",[](MenuType type){
|
{{game->KEY_SCROLLUP,Held},{"",[](MenuType type){
|
||||||
|
@ -39,7 +39,7 @@ All rights reserved.
|
|||||||
#define VERSION_MAJOR 0
|
#define VERSION_MAJOR 0
|
||||||
#define VERSION_MINOR 3
|
#define VERSION_MINOR 3
|
||||||
#define VERSION_PATCH 0
|
#define VERSION_PATCH 0
|
||||||
#define VERSION_BUILD 7204
|
#define VERSION_BUILD 7211
|
||||||
|
|
||||||
#define stringify(a) stringify_(a)
|
#define stringify(a) stringify_(a)
|
||||||
#define stringify_(a) #a
|
#define stringify_(a) #a
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user