Load recipes and names and internally sort and display the items.

master
sigonasr2 1 year ago
parent db5fca18fe
commit e490ca4e8a
  1. 307
      FiestaCraftingCalculator/FiestaCraftingCalculator.cpp
  2. 216
      FiestaCraftingCalculator/assets/Produce.txt
  3. 28
      FiestaCraftingCalculator/olcPGEX_QuickGUI.h

@ -11,7 +11,193 @@ using namespace olc::QuickGUI;
int PANEL_WIDTH=620; int PANEL_WIDTH=620;
int PANEL_HEIGHT=240; int PANEL_HEIGHT=240;
std::map<std::string,std::string>IDToName={
{"El1","Elrue [1]"},
{"El2","Elrue [2]"},
{"El3","Elrue [3]"},
{"El4","Elrue [4]"},
{"El5","Elrue [5]"},
{"Lix1","Lix [1]"},
{"Lix2","Lix [2]"},
{"Lix3","Lix [3]"},
{"Lix4","Lix [4]"},
{"Lix5","Lix [5]"},
{"Xir1","Xir [1]"},
{"Xir2","Xir [2]"},
{"Xir3","Xir [3]"},
{"Xir4","Xir [4]"},
{"Xir5","Xir [5]"},
{"BestLowHpPotion","HP Potion (Tier 1)"},
{"LowHpPotion","HP Potion (Tier 2)"},
{"NorHpPotion","HP Potion (Tier 3)"},
{"HighHpPotion","HP Potion (Tier 4)"},
{"BestHighHpPotion","HP Potion (Tier 5)"},
{"BestLowSpPotion","SP Potion (Tier 1)"},
{"LowSpPotion","SP Potion (Tier 2)"},
{"NorSpPotion","SP Potion (Tier 3)"},
{"HighSpPotion","SP Potion (Tier 4)"},
{"BestHighSpPotion","SP Potion (Tier 5)"},
{"BestLowConHPPotion","HP Regeneration Potion (Tier 1)"},
{"LowConHPPotion","HP Regeneration Potion (Tier 2)"},
{"NorConHPPotion","HP Regeneration Potion (Tier 3)"},
{"HighConHPPotion","HP Regeneration Potion (Tier 4)"},
{"BestHighConHPPotion","HP Regeneration Potion (Tier 5)"},
{"BestLowConSPPotion","SP Regeneration Potion (Tier 1)"},
{"LowConSPPotion","SP Regeneration Potion (Tier 2)"},
{"NorConSPPotion","SP Regeneration Potion (Tier 3)"},
{"HighConSPPotion","SP Regeneration Potion (Tier 4)"},
{"BestHighConSPPotion","SP Regeneration Potion (Tier 5)"},
{"BestLowTHScroll","Aim(Tier 1)"},
{"LowTHScroll","Aim(Tier 2)"},
{"NorTHScroll","Aim(Tier 3)"},
{"HighTHScroll","Aim(Tier 4)"},
{"BestHighTHScroll","Aim(Tier 5)"},
{"BestLowTBScroll","Nature's Agility (Tier 1)"},
{"LowTBScroll","Nature's Agility (Tier 2)"},
{"NorTBScroll","Nature's Agility (Tier 3)"},
{"HighTBScroll","Nature's Agility (Tier 4)"},
{"BestHighTBScroll","Nature's Agility (Tier 5)"},
{"BestLowMRScroll","Magical Defense (Tier 1)"},
{"LowMRScroll","Magical Defense (Tier 2)"},
{"NorMRScroll","Magical Defense (Tier 3)"},
{"HighMRScroll","Magical Defense (Tier 4)"},
{"BestHighMRScroll","Magical Defense (Tier 5)"},
{"BestLowACScroll","Shield Increase (Tier 1)"},
{"LowACScroll","Shield Increase (Tier 2)"},
{"NorACScroll","Shield Increase (Tier 3)"},
{"HighACScroll","Shield Increase (Tier 4)"},
{"BestHighACScroll","Shield Increase (Tier 5)"},
{"BestLowMaxHPScroll","Vitality (Tier 1)"},
{"LowMaxHPScroll","Vitality (Tier 2)"},
{"NorMaxHPScroll","Vitality (Tier 3)"},
{"HighMaxHPScroll","Vitality (Tier 4)"},
{"BestHighMaxHPScroll","Vitality (Tier 5)"},
{"BestLowMaxSPScroll","Mentality (Tier 1)"},
{"LowMaxSPScroll","Mentality (Tier 2)"},
{"NorMaxSPScroll","Mentality (Tier 3)"},
{"HighMaxSPScroll","Mentality (Tier 4)"},
{"BestHighMaxSPScroll","Mentality (Tier 5)"},
{"NorMSScroll","Speed Increase (Tier 3)"},
{"LowMSScroll","Speed Increase (Tier 2)"},
{"HighMSScroll","Speed Increase (Tier 4)"},
{"BestMSScroll","Speed Increase (Tier 5)"},
{"BestLowMSScroll","Speed Increase (Tier 1)"},
{"LowPsnResiPotion","Antitoxin (Tier 1)"},
{"NorPsnResiPotion","Antitoxin (Tier 2)"},
{"HighPsnResiPotion","Antitoxin (Tier 3)"},
{"LowDssResiPotion","Antibiotic (Tier 1)"},
{"NorDssResiPotion","Antibiotic (Tier 2)"},
{"HighDssResiPotion","Antibiotic (Tier 3)"},
{"LowCurResiPotion","Bless (Tier 1)"},
{"NorCurResiPotion","Bless (Tier 2)"},
{"HighCurResiPotion","Bless (Tier 3)"},
{"LowPsnCurPotion","Antidote (Tier 1)"},
{"NorPsnCurPotion","Antidote (Tier 2)"},
{"HighPsnCurPotion","Antidote (Tier 3)"},
{"LowDssCurPotion","Cure (Tier 1)"},
{"NorDssCurPotion","Cure (Tier 2)"},
{"HighDssCurPotion","Cure (Tier 3)"},
{"BestLowCurScroll","Divine Magic (Tier 1)"},
{"LowCurScroll","Divine Magic (Tier 2)"},
{"NorCurScroll","Divine Magic (Tier 3)"},
{"HighCurScroll","Divine Magic (Tier 4)"},
{"BestHighCurScroll","Divine Magic (Tier 5)"},
{"NorBeastLeather","Beast Leather (Normal Quality)"},
{"HighBeastLeather","Beast Leather (High Quality)"},
{"BeastHead","Beast Head"},
{"NorBeastTooth","Beast Dogtooth (Normal Quality)"},
{"HighBeastTooth","Beast Dogtooth (High Quality)"},
{"NorBrokenBone","Bone (Normal Quality)"},
{"HighBrokenBone","Bone (High Quality)"},
{"BestBrokenBone","Bone (Highest Quality)"},
{"NorCleanWater","Spirit's Nectar (Normal Quality)"},
{"HighCleanWater","Spirit's Nectar (High Quality)"},
{"BestCleanWater","Spirit's Nectar (Highest Quality)"},
{"IronBadge","Iron Badge"},
{"NorCopperOre","Copper Ore (Normal Quality)"},
{"HighCopperOre","Copper Ore (High Quality)"},
{"NorGemDust","Gem Dust (Normal Quality)"},
{"HighGemDust","Gem Dust (High Quality)"},
{"BestGemDust","Gem Dust (Highest Quality)"},
{"Violet","Vilolet"},
{"Ramsear","Ramsear"},
{"Salvia","Eucalyptus"},
{"LowGoldOre","Gold Ore (Low Quality)"},
{"NorGoldOre","Gold Ore (Normal Quality)"},
{"HighGoldOre","Gold Ore (High Quality)"},
{"NorKylinLeather","Summoned Beast Leather (Normal Quality)"},
{"HighKylinLeather","Summoned Beast Leather (High Quality)"},
{"KylinTooth","Summoned Beast's Tooth"},
{"MermaidScale","Mermaid's Scale"},
{"KylinFighterTail","Summoned Beast Fighter's Tail"},
{"NorMagicCrystal","Magic Crystal (Normal Quality)"},
{"HighMagicCrystal","Magic Crystal (High Quality)"},
{"BestMagicCrystal","Magic Crystal (Highest Quality)"},
{"NorMeat","Meat (Normal Quality)"},
{"HighMeat","Meat (High Quality)"},
{"BestMeat","Meat (Highest Quality)"},
{"NorMushrooms","Mushroom (Normal Quality)"},
{"HighMushrooms","Mushroom (High Quality)"},
{"BestMushrooms","Mushroom (Highest Quality)"},
{"NorPledge","Sign (Normal Quality)"},
{"HighPledge","Sign (High Quality)"},
{"BestPledge","Sign (Highest Quality)"},
{"Rosemary","Rosemary"},
{"Basil","Basil"},
{"Marigold","Marigold"},
{"LowSilverOre","Silver Ore (Low Quality)"},
{"NorSilverOre","Silver Ore (Normal Quality)"},
{"HighSilverOre","Silver Ore (High Quality)"},
{"NorSkin","Leather (Normal Quality)"},
{"HighSkin","Leather (High Quality)"},
{"BestSkin","Leather (Highest Quality)"},
{"NorSoulDust","Soul Dust (Normal Quality)"},
{"HighSoulDust","Soul Dust (High Quality)"},
{"BestSoulDust","Soul Dust (Highest Quality)"},
{"NorSpiritDust","Spirit Dust (Normal Quality)"},
{"HighSpiritDust","Spirit Dust (High Quality)"},
{"BestSpiritDust","Spirit Dust (Highest Quality)"},
{"NorToadStool","Toadstool (Normal Quality)"},
{"HighToadStool","Toadstool (High Quality)"},
{"BestToadStool","Toadstool (Highest Quality)"},
{"Ruby","Ruby"},
{"Sapphire","Sapphire"},
{"NorWoodSab","Sap (Normal Quality)"},
{"HighWoodSab","Sap (High Quality)"},
{"BestWoodSab","Sap (Highest Quality)"},
{"LowBeastLeather","Beast Leather (Low Quality)"},
{"NorBeastLeather","Beast Leather (Normal Quality)"},
{"HighBeastLeather","Beast Leather (High Quality)"},
{"LowBeastTooth","Beast Dogtooth (Low Quality)"},
{"NorBeastTooth","Beast Dogtooth (Normal Quality)"},
{"HighBeastTooth","Beast Dogtooth (High Quality)"},
{"LowBrokenBone","Bone (Low Quality)"},
{"NorBrokenBone","Bone (Normal Quality)"},
{"HighBrokenBone","Bone (High Quality)"},
{"LowCleanWater","Spirit's Nectar (Low Quality)"},
{"NorCleanWater","Spirit's Nectar (Normal Quality)"},
{"HighCleanWater","Spirit's Nectar (High Quality)"},
{"CommanderBadge","Master Commander's Badge"},
{"LowCopperOre","Copper Ore (Low Quality)"},
{"NorCopperOre","Copper Ore (Normal Quality)"},
{"HighCopperOre","Copper Ore (High Quality)"},
{"LowGemDust","Gem Dust (Low Quality)"},
{"NorGemDust","Gem Dust (Normal Quality)"},
{"HighGemDust","Gem Dust (High Quality)"},
{"Geranium","Geranium"},
{"Violet","Vilolet"},
{"Ramsear","Ramsear"},
{"LowGoldOre","Gold Ore (Low Quality)"},
{"NorGoldOre","Gold Ore (Normal Quality)"},
{"LowKylinLeather","Summoned Beast Leather (Low Quality)"},
{"NorKylinLeather","Summoned Beast Leather (Normal Quality)"},
{"HighKylinLeather","Summoned Beast Leather (High Quality)"},
{"KylinTail","Summoned Beast's Tail"},
{"LowMagicCrystal","Magic Crystal (Low Quality)"},
};
class Recipe{ class Recipe{
public:
std::string ProduceIndex; std::string ProduceIndex;
std::string DisplayName; std::string DisplayName;
std::string Product; std::string Product;
@ -19,6 +205,19 @@ class Recipe{
std::vector<std::pair<std::string,int>>requiredItems; std::vector<std::pair<std::string,int>>requiredItems;
int expGained; int expGained;
int requiredExp; int requiredExp;
Recipe(std::vector<std::string>&data){
ProduceIndex=data[1];
DisplayName=data[2];
Product=data[3];
amt=stoi(data[4]);
for(int i=5;i<=20;i+=2){
if(data[i].size()>1){
requiredItems.push_back({data[i],stoi(data[i+1])});
}
}
expGained=stoi(data[22]);
requiredExp=stoi(data[24]);
}
}; };
std::vector<Recipe>PotionProdRecipes; std::vector<Recipe>PotionProdRecipes;
@ -42,6 +241,7 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
ListBox*RecipeList; ListBox*RecipeList;
std::string DisplayProdText; std::string DisplayProdText;
std::string SelectedProdText; std::string SelectedProdText;
std::vector<std::string> recipeItems;
public: public:
Calculator(){ Calculator(){
PotionProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProdIcon,false,displayPos+vi2d{10,10},{40,40},{192,128},{32,32}); PotionProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProdIcon,false,displayPos+vi2d{10,10},{40,40},{192,128},{32,32});
@ -50,6 +250,8 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
CompProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProdIcon,false,displayPos+vi2d{145,10},{40,40},{96,160},{32,32}); CompProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProdIcon,false,displayPos+vi2d{145,10},{40,40},{96,160},{32,32});
DecompProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProdIcon,false,displayPos+vi2d{190,10},{40,40},{64,160},{32,32}); DecompProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProdIcon,false,displayPos+vi2d{190,10},{40,40},{64,160},{32,32});
CloseButton=new CustomButton(manager,FiestaCraftingCalculator::CloseIcon,FiestaCraftingCalculator::CloseBackIcon,displayPos+vf2d{PANEL_WIDTH-30.f,0},{26,26},{0,0},{26,26}); CloseButton=new CustomButton(manager,FiestaCraftingCalculator::CloseIcon,FiestaCraftingCalculator::CloseBackIcon,displayPos+vf2d{PANEL_WIDTH-30.f,0},{26,26},{0,0},{26,26});
RecipeList=new ListBox(manager,recipeItems,displayPos+vi2d{10,90},{240,140});
RecipeList->bVisible=false;
} }
bool Update(FiestaCraftingCalculator*pge,int panelNumber){ bool Update(FiestaCraftingCalculator*pge,int panelNumber){
displayPos=vf2d{float(10+panelNumber%2*PANEL_WIDTH),float(10+panelNumber/2*PANEL_HEIGHT)}; displayPos=vf2d{float(10+panelNumber%2*PANEL_WIDTH),float(10+panelNumber/2*PANEL_HEIGHT)};
@ -59,6 +261,9 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
CompProd->vPos=displayPos+vi2d{145,10}; CompProd->vPos=displayPos+vi2d{145,10};
DecompProd->vPos=displayPos+vi2d{190,10}; DecompProd->vPos=displayPos+vi2d{190,10};
CloseButton->vPos=displayPos+vf2d{PANEL_WIDTH-30.f,0}; CloseButton->vPos=displayPos+vf2d{PANEL_WIDTH-30.f,0};
RecipeList->vPos=displayPos+vi2d{10,90};
RecipeList->m_pSlider->vPosMin=displayPos+vi2d{10,90}+vf2d{240 - manager.fGrabRad - 1,manager.fGrabRad + 1 };
RecipeList->m_pSlider->vPosMax=displayPos+vi2d{10,90}+vf2d{240 - manager.fGrabRad - 1,140-manager.fGrabRad - 1 };
manager.Update(pge); manager.Update(pge);
DisplayProdText=SelectedProdText; DisplayProdText=SelectedProdText;
if(CloseButton->bPressed){ if(CloseButton->bPressed){
@ -67,6 +272,13 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
if(PotionProd->bPressed){ if(PotionProd->bPressed){
StoneProd->bChecked=ScrollProd->bChecked=CompProd->bChecked=DecompProd->bChecked=false; StoneProd->bChecked=ScrollProd->bChecked=CompProd->bChecked=DecompProd->bChecked=false;
SelectedProdText="Potion Production"; SelectedProdText="Potion Production";
RecipeList->bVisible=true;
recipeItems.clear();
RecipeList->m_pSlider->fValue=0;
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0;
for(Recipe&r:PotionProdRecipes){
recipeItems.push_back(r.DisplayName);
}
} }
if(PotionProd->bHovered){ if(PotionProd->bHovered){
DisplayProdText="Potion Production"; DisplayProdText="Potion Production";
@ -74,6 +286,13 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
if(StoneProd->bPressed){ if(StoneProd->bPressed){
PotionProd->bChecked=ScrollProd->bChecked=CompProd->bChecked=DecompProd->bChecked=false; PotionProd->bChecked=ScrollProd->bChecked=CompProd->bChecked=DecompProd->bChecked=false;
SelectedProdText="Stone Production"; SelectedProdText="Stone Production";
RecipeList->bVisible=true;
recipeItems.clear();
RecipeList->m_pSlider->fValue=0;
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0;
for(Recipe&r:StoneProdRecipes){
recipeItems.push_back(r.DisplayName);
}
} }
if(StoneProd->bHovered){ if(StoneProd->bHovered){
DisplayProdText="Stone Production"; DisplayProdText="Stone Production";
@ -81,6 +300,13 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
if(ScrollProd->bPressed){ if(ScrollProd->bPressed){
StoneProd->bChecked=PotionProd->bChecked=CompProd->bChecked=DecompProd->bChecked=false; StoneProd->bChecked=PotionProd->bChecked=CompProd->bChecked=DecompProd->bChecked=false;
SelectedProdText="Scroll Production"; SelectedProdText="Scroll Production";
RecipeList->bVisible=true;
recipeItems.clear();
RecipeList->m_pSlider->fValue=0;
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0;
for(Recipe&r:ScrollProdRecipes){
recipeItems.push_back(r.DisplayName);
}
} }
if(ScrollProd->bHovered){ if(ScrollProd->bHovered){
DisplayProdText="Scroll Production"; DisplayProdText="Scroll Production";
@ -88,6 +314,13 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
if(CompProd->bPressed){ if(CompProd->bPressed){
StoneProd->bChecked=ScrollProd->bChecked=PotionProd->bChecked=DecompProd->bChecked=false; StoneProd->bChecked=ScrollProd->bChecked=PotionProd->bChecked=DecompProd->bChecked=false;
SelectedProdText="Material Composition"; SelectedProdText="Material Composition";
RecipeList->bVisible=true;
recipeItems.clear();
RecipeList->m_pSlider->fValue=0;
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0;
for(Recipe&r:CompRecipes){
recipeItems.push_back(r.DisplayName);
}
} }
if(CompProd->bHovered){ if(CompProd->bHovered){
DisplayProdText="Material Composition"; DisplayProdText="Material Composition";
@ -95,13 +328,20 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
if(DecompProd->bPressed){ if(DecompProd->bPressed){
StoneProd->bChecked=ScrollProd->bChecked=CompProd->bChecked=PotionProd->bChecked=false; StoneProd->bChecked=ScrollProd->bChecked=CompProd->bChecked=PotionProd->bChecked=false;
SelectedProdText="Material Decomposition"; SelectedProdText="Material Decomposition";
RecipeList->bVisible=true;
recipeItems.clear();
RecipeList->m_pSlider->fValue=0;
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0;
for(Recipe&r:DecompRecipes){
recipeItems.push_back(r.DisplayName);
}
} }
if(DecompProd->bHovered){ if(DecompProd->bHovered){
DisplayProdText="Material Decomposition"; DisplayProdText="Material Decomposition";
} }
pge->GradientFillRectDecal(displayPos-vf2d{2,2},{float(PANEL_WIDTH),float(PANEL_HEIGHT)},{49, 32, 61,216},{0,0,0,216},{0,0,0,216},{49, 32, 61,216}); pge->GradientFillRectDecal(displayPos-vf2d{2,2},{float(PANEL_WIDTH),float(PANEL_HEIGHT)},{49, 32, 61,216},{0,0,0,216},{0,0,0,216},{49, 32, 61,216});
pge->DrawRectDecal(displayPos-vf2d{1,1},{float(PANEL_WIDTH),float(PANEL_HEIGHT)},{131, 90, 161}); pge->DrawRectDecal(displayPos-vf2d{1,1},{float(PANEL_WIDTH),float(PANEL_HEIGHT)},{131, 90, 161});
pge->DrawStringPropDecal(displayPos+vf2d{10,10+60},DisplayProdText,WHITE,{2,2}); pge->DrawStringPropDecal(displayPos+vf2d{10,10+54},DisplayProdText,WHITE,{2,2});
manager.DrawDecal(pge); manager.DrawDecal(pge);
return true; return true;
} }
@ -115,9 +355,74 @@ public:
} }
public: public:
std::string slurp(std::ifstream& in) {
std::ostringstream sstr;
sstr << in.rdbuf();
return sstr.str();
}
bool OnUserCreate() override bool OnUserCreate() override
{ {
// Called once at the start, so create things here // Called once at the start, so create things here
std::ifstream file=std::ifstream("assets/Produce.txt");
std::string fileContents=slurp(file);
std::string column="";
std::vector<std::string>data;
for(int i=0;i<fileContents.size();i++){
if(fileContents[i]=='\t'){
data.push_back(column);
column="";
} else
if(fileContents[i]=='\n'){
data.push_back(column);
column="";
if(data.size()!=25){
std::cout<<"Data size was "<<data.size()<<"! Expected 25 columns..."<<std::endl;
for(int i=0;i<data.size();i++){
std::cout<<"Col "<<i+1<<":"<<data[i]<<std::endl;
}
return false;
} else {
switch(stoi(data[21])){
case 0:{
StoneProdRecipes.push_back(Recipe(data));
}break;
case 1:{
PotionProdRecipes.push_back(Recipe(data));
}break;
case 2:{
ScrollProdRecipes.push_back(Recipe(data));
}break;
//For some reason 3 is skipped in the game's data.
case 4:{
CompRecipes.push_back(Recipe(data));
}break;
case 5:{
DecompRecipes.push_back(Recipe(data));
}break;
}
}
data.clear();
} else {
column+=fileContents[i];
}
}
std::sort(StoneProdRecipes.begin(),StoneProdRecipes.end(),[](Recipe&r1,Recipe&r2){return r1.requiredExp<r2.requiredExp;});
std::sort(PotionProdRecipes.begin(),PotionProdRecipes.end(),[](Recipe&r1,Recipe&r2){return r1.requiredExp<r2.requiredExp;});
std::sort(ScrollProdRecipes.begin(),ScrollProdRecipes.end(),[](Recipe&r1,Recipe&r2){return r1.requiredExp<r2.requiredExp;});
std::sort(CompRecipes.begin(),CompRecipes.end(),[](Recipe&r1,Recipe&r2){return r1.requiredExp<r2.requiredExp;});
std::sort(DecompRecipes.begin(),DecompRecipes.end(),[](Recipe&r1,Recipe&r2){return r1.requiredExp<r2.requiredExp;});
std::cout<<"Loaded:"<<std::endl;
std::cout<<" "<<PotionProdRecipes.size()<<" Potion Recipes"<<std::endl;
std::cout<<" "<<StoneProdRecipes.size()<<" Stone Recipes"<<std::endl;
std::cout<<" "<<ScrollProdRecipes.size()<<" Scroll Recipes"<<std::endl;
std::cout<<" "<<CompRecipes.size()<<" Composition Recipes"<<std::endl;
std::cout<<" "<<DecompRecipes.size()<<" Decomposition Recipes"<<std::endl;
ProdIcon.Load("assets/production_icons.png",nullptr,true); ProdIcon.Load("assets/production_icons.png",nullptr,true);
Karen.Load("assets/AdlF_Karen.png",nullptr,true); Karen.Load("assets/AdlF_Karen.png",nullptr,true);
CloseIcon.Load("assets/close_button.png",nullptr,true); CloseIcon.Load("assets/close_button.png",nullptr,true);

@ -0,0 +1,216 @@
20000 Recipe_El1 Elrue [1] El1 1 LowSpiritDust 3 LowGemDust 3 LowSoulDust 3 - 0 - 0 - 0 - 0 - 0 0 2 0 0
20001 Recipe_El2 Elrue [2] El2 1 NorSpiritDust 3 NorGemDust 3 NorSoulDust 3 - 0 - 0 - 0 - 0 - 0 0 3 0 1500
20002 Recipe_El3 Elrue [3] El3 1 HighSpiritDust 3 HighGemDust 3 HighSoulDust 3 - 0 - 0 - 0 - 0 - 0 0 10 0 17800
20003 Recipe_El4 Elrue [4] El4 1 HighSpiritDust 6 HighGemDust 6 HighSoulDust 6 - 0 - 0 - 0 - 0 - 0 0 16 0 60900
20004 Recipe_El5 Elrue [5] El5 1 BestSpiritDust 6 BestGemDust 6 BestSoulDust 6 - 0 - 0 - 0 - 0 - 0 0 0 0 100000
20005 Recipe_Lix1 Lix [1] Lix1 1 El1 3 LowCopperOre 3 - 0 - 0 - 0 - 0 - 0 - 0 0 4 0 200
20006 Recipe_Lix2 Lix [2] Lix2 1 El2 3 HighCopperOre 1 - 0 - 0 - 0 - 0 - 0 - 0 0 10 0 2500
20007 Recipe_Lix3 Lix [3] Lix3 1 El3 3 NorSilverOre 1 Ruby 1 - 0 - 0 - 0 - 0 - 0 0 32 0 34000
20008 Recipe_Lix4 Lix [4] Lix4 1 El4 5 LowGoldOre 1 Sapphire 1 - 0 - 0 - 0 - 0 - 0 0 82 0 70000
20009 Recipe_Lix5 Lix [5] Lix5 1 El5 10 HighGoldOre 1 Sapphire 1 - 0 - 0 - 0 - 0 - 0 0 0 0 100000
20010 Recipe_Xir1 Xir [1] Xir1 1 Lix1 3 NorCopperOre 2 Topaz 1 - 0 - 0 - 0 - 0 - 0 0 12 0 500
20011 Recipe_Xir2 Xir [2] Xir2 1 Lix2 3 LowSilverOre 1 Topaz 1 - 0 - 0 - 0 - 0 - 0 0 32 0 3900
20012 Recipe_Xir3 Xir [3] Xir3 1 Lix3 3 HighSilverOre 1 Ruby 1 - 0 - 0 - 0 - 0 - 0 0 99 0 50000
20013 Recipe_Xir4 Xir [4] Xir4 1 Lix4 5 NorGoldOre 1 Sapphire 1 - 0 - 0 - 0 - 0 - 0 0 416 0 80000
20014 Recipe_Xir5 Xir [5] Xir5 1 Lix5 10 HighGoldOre 3 Sapphire 1 - 0 - 0 - 0 - 0 - 0 0 0 0 100000
20100 Recipe_BestLowHpPotion HP Potion (Tier 1) BestLowHpPotion 1 LowMeat 2 LowCleanWater 1 - 0 - 0 - 0 - 0 - 0 - 0 1 2 1 0
20101 Recipe_LowHpPotion HP Potion (Tier 2) LowHpPotion 1 LowMeat 3 NorCleanWater 2 NorPledge 2 Geranium 1 - 0 - 0 - 0 - 0 1 3 1 1000
20102 Recipe_NorHpPotion HP Potion (Tier 3) NorHpPotion 1 NorMeat 3 NorCleanWater 2 NorPledge 3 Violet 1 - 0 - 0 - 0 - 0 1 5 1 11800
20103 Recipe_HighHpPotion HP Potion (Tier 4) HighHpPotion 1 HighMeat 2 HighCleanWater 2 HighPledge 3 Ramsear 1 - 0 - 0 - 0 - 0 1 12 1 33300
20104 Recipe_BestHighHpPotion HP Potion (Tier 5) BestHighHpPotion 1 BestMeat 3 BestCleanWater 3 BestPledge 2 Salvia 1 - 0 - 0 - 0 - 0 1 20 1 83000
20105 Recipe_BestLowSpPotion Sp Potion (Tier 1) BestLowSpPotion 1 LowMeat 1 LowMagicCrystal 2 - 0 - 0 - 0 - 0 - 0 - 0 1 2 1 0
20106 Recipe_LowSpPotion Sp Potion (Tier 2) LowSpPotion 1 NorMeat 1 NorMagicCrystal 1 NorPledge 2 Geranium 1 - 0 - 0 - 0 - 0 1 3 1 1000
20107 Recipe_NorSpPotion Sp Potion (Tier 3) NorSpPotion 1 HighMeat 1 NorMagicCrystal 1 NorPledge 1 Violet 1 - 0 - 0 - 0 - 0 1 4 1 11800
20108 Recipe_HighSpPotion Sp Potion (Tier 4) HighSpPotion 1 BestMeat 1 HighMagicCrystal 1 HighPledge 3 Ramsear 1 - 0 - 0 - 0 - 0 1 10 1 33700
20109 Recipe_BestHighSpPotion Sp Potion (Tier 5) BestHighSpPotion 1 BestMeat 3 BestMagicCrystal 2 BestPledge 2 Salvia 1 - 0 - 0 - 0 - 0 1 19 1 74000
20110 Recipe_BestLowConHPPotion HP Regeneration Potion (Tier 1) BestLowConHPPotion 1 LowMeat 1 LowCleanWater 1 LowPledge 1 - 0 - 0 - 0 - 0 - 0 1 2 1 150
20111 Recipe_LowConHPPotion HP Regeneration Potion (Tier 2) LowConHPPotion 1 LowMeat 3 NorCleanWater 2 NorPledge 2 Sage 1 - 0 - 0 - 0 - 0 1 3 1 1300
20112 Recipe_NorConHPPotion HP Regeneration Potion (Tier 3) NorConHPPotion 1 NorMeat 3 NorCleanWater 2 NorPledge 3 Rosemary 1 - 0 - 0 - 0 - 0 1 5 1 13700
20113 Recipe_HighConHPPotion HP Regeneration Potion (Tier 4) HighConHPPotion 1 HighMeat 2 HighCleanWater 2 HighPledge 3 Basil 1 - 0 - 0 - 0 - 0 1 12 1 34300
20114 Recipe_BestHighConHPPotion HP Regeneration Potion (Tier 5) BestHighConHPPotion 1 BestMeat 3 BestCleanWater 3 BestPledge 2 Marigold 1 - 0 - 0 - 0 - 0 1 20 1 85000
20115 Recipe_BestLowConSPPotion Sp Potion (Tier 1) BestLowConSPPotion 1 LowMeat 1 LowMagicCrystal 1 LowPledge 1 - 0 - 0 - 0 - 0 - 0 1 2 1 150
20116 Recipe_LowConSPPotion Sp Potion (Tier 2) LowConSPPotion 1 NorMeat 1 NorMagicCrystal 1 NorPledge 2 Sage 1 - 0 - 0 - 0 - 0 1 3 1 1400
20117 Recipe_NorConSPPotion Sp Potion (Tier 3) NorConSPPotion 1 HighMeat 1 NorMagicCrystal 1 NorPledge 1 Rosemary 1 - 0 - 0 - 0 - 0 1 4 1 13800
20118 Recipe_HighConSPPotion Sp Potion (Tier 4) HighConSPPotion 1 BestMeat 1 HighMagicCrystal 1 HighPledge 3 Basil 1 - 0 - 0 - 0 - 0 1 11 1 35200
20119 Recipe_BestHighConSPPotion Sp Potion (Tier 5) BestHighConSPPotion 1 BestMeat 3 BestMagicCrystal 2 BestPledge 2 Marigold 1 - 0 - 0 - 0 - 0 1 19 1 75000
20500 Recipe_BestLowTHScroll Power (Tier 1) BestLowTHScroll 1 LowSkin 3 LowKylinLeather 2 - 0 - 0 - 0 - 0 - 0 - 0 2 2 2 0
20501 Recipe_LowTHScroll Power (Tier 2) LowTHScroll 1 LowSkin 3 NorKylinLeather 2 KylinTail 3 LowWoodSab 1 - 0 - 0 - 0 - 0 2 3 2 1300
20502 Recipe_NorTHScroll Power (Tier 3) NorTHScroll 1 NorSkin 4 NorKylinLeather 6 KylinTail 4 NorWoodSab 1 - 0 - 0 - 0 - 0 2 5 2 12300
20503 Recipe_HighTHScroll Power (Tier 4) HighTHScroll 1 HighSkin 2 HighKylinLeather 2 KylinFighterTail 2 HighWoodSab 1 - 0 - 0 - 0 - 0 2 12 2 32700
20504 Recipe_BestHighTHScroll Power (Tier 5) BestHighTHScroll 1 BestSkin 2 HighKylinLeather 2 MermaidScale 2 BestWoodSab 1 - 0 - 0 - 0 - 0 2 20 2 74000
20505 Recipe_BestLowTBScroll Nature's Agility (Tier 1) BestLowTBScroll 1 LowSkin 2 LowKylinLeather 3 LowBeastTooth 1 - 0 - 0 - 0 - 0 - 0 2 2 2 200
20506 Recipe_LowTBScroll Nature's Agility (Tier 2) LowTBScroll 1 LowSkin 4 NorKylinLeather 2 NorBeastTooth 3 LowWoodSab 1 - 0 - 0 - 0 - 0 2 3 2 1300
20507 Recipe_NorTBScroll Nature's Agility (Tier 3) NorTBScroll 1 NorSkin 3 NorKylinLeather 3 HighBeastTooth 2 NorWoodSab 1 - 0 - 0 - 0 - 0 2 4 2 12100
20508 Recipe_HighTBScroll Nature's Agility (Tier 4) HighTBScroll 1 HighSkin 3 HighKylinLeather 3 HighBeastTooth 2 HighWoodSab 1 - 0 - 0 - 0 - 0 2 15 2 38200
20509 Recipe_BestHighTBScroll Nature's Agility (Tier 5) BestHighTBScroll 1 BestSkin 3 HighKylinLeather 2 BeastHead 2 BestWoodSab 1 - 0 - 0 - 0 - 0 2 23 2 81000
20510 Recipe_BestLowMRScroll Magical Defense (Tier 1) BestLowMRScroll 1 LowSkin 3 LowKylinLeather 1 LowBeastTooth 2 - 0 - 0 - 0 - 0 - 0 2 2 2 100
20511 Recipe_LowMRScroll Magical Defense (Tier 2) LowMRScroll 1 LowSkin 3 NorKylinLeather 3 KylinTail 2 LowWoodSab 1 - 0 - 0 - 0 - 0 2 3 2 1200
20512 Recipe_NorMRScroll Magical Defense (Tier 3) NorMRScroll 1 NorSkin 4 NorKylinLeather 6 KylinTail 3 NorWoodSab 1 - 0 - 0 - 0 - 0 2 4 2 14700
20513 Recipe_HighMRScroll Magical Defense (Tier 4) HighMRScroll 1 HighSkin 2 HighKylinLeather 1 KylinFighterTail 2 HighWoodSab 1 - 0 - 0 - 0 - 0 2 10 2 44800
20514 Recipe_BestHighMRScroll Magical Defense (Tier 5) BestHighMRScroll 1 BestSkin 2 HighKylinLeather 3 KylinTooth 1 BestWoodSab 1 - 0 - 0 - 0 - 0 2 18 2 95000
20515 Recipe_BestLowACScroll Shield Increase (Tier 1) BestLowACScroll 1 LowSkin 1 LowKylinLeather 2 - 0 - 0 - 0 - 0 - 0 - 0 2 2 2 0
20516 Recipe_LowACScroll Shield Increase (Tier 2) LowACScroll 1 LowSkin 4 NorKylinLeather 3 NorBeastTooth 2 LowToadStool 1 - 0 - 0 - 0 - 0 2 3 2 1200
20517 Recipe_NorACScroll Shield Increase (Tier 3) NorACScroll 1 NorSkin 3 NorKylinLeather 4 HighBeastTooth 1 NorToadStool 1 - 0 - 0 - 0 - 0 2 4 2 15900
20518 Recipe_HighACScroll Shield Increase (Tier 4) HighACScroll 1 HighSkin 3 HighKylinLeather 2 HighBeastTooth 2 HighToadStool 1 - 0 - 0 - 0 - 0 2 13 2 44100
20519 Recipe_BestHighACScroll Shield Increase (Tier 5) BestHighACScroll 1 BestSkin 3 HighKylinLeather 3 MermaidScale 1 BestToadStool 1 - 0 - 0 - 0 - 0 2 21 2 94000
20525 Recipe_BestLowMaxHPScroll Vitality (Tier 1) BestLowMaxHPScroll 1 LowSkin 3 LowBeastLeather 1 LowBeastTooth 2 - 0 - 0 - 0 - 0 - 0 2 2 2 300
20526 Recipe_LowMaxHPScroll Vitality (Tier 2) LowMaxHPScroll 1 LowSkin 4 NorBeastLeather 3 NorBeastTooth 2 LowToadStool 1 - 0 - 0 - 0 - 0 2 3 2 1600
20527 Recipe_NorMaxHPScroll Vitality (Tier 3) NorMaxHPScroll 1 NorSkin 3 NorBeastLeather 4 HighBeastTooth 2 NorToadStool 1 - 0 - 0 - 0 - 0 2 4 2 12900
20528 Recipe_HighMaxHPScroll Vitality (Tier 4) HighMaxHPScroll 1 HighSkin 3 HighBeastLeather 1 HighBeastTooth 2 HighToadStool 1 - 0 - 0 - 0 - 0 2 12 2 36900
20529 Recipe_BestHighMaxHPScroll Vitality (Tier 5) BestHighMaxHPScroll 1 BestSkin 3 HighBeastLeather 3 KylinTooth 1 BestToadStool 1 - 0 - 0 - 0 - 0 2 20 2 94000
20530 Recipe_BestLowMaxSPScroll Mentality (Tier 1) BestLowMaxSPScroll 1 LowSkin 1 LowBeastLeather 2 LowBeastTooth 3 - 0 - 0 - 0 - 0 - 0 2 2 2 300
20531 Recipe_LowMaxSPScroll Mentality (Tier 2) LowMaxSPScroll 1 LowSkin 3 NorBeastLeather 2 KylinTail 3 LowMushrooms 1 - 0 - 0 - 0 - 0 2 3 2 1600
20532 Recipe_NorMaxSPScroll Mentality (Tier 3) NorMaxSPScroll 1 NorSkin 4 NorBeastLeather 5 KylinTail 4 NorMushrooms 1 - 0 - 0 - 0 - 0 2 4 2 14300
20533 Recipe_HighMaxSPScroll Mentality (Tier 4) HighMaxSPScroll 1 HighSkin 2 HighBeastLeather 2 KylinFighterTail 2 HighMushrooms 1 - 0 - 0 - 0 - 0 2 11 2 35900
20534 Recipe_BestHighMaxSPScroll Mentality (Tier 5) BestHighMaxSPScroll 1 BestSkin 2 HighBeastLeather 2 MermaidScale 2 BestMushrooms 1 - 0 - 0 - 0 - 0 2 19 2 94000
20550 Recipe_NorMSScroll Speed Increase (Tier 3) NorMSScroll 1 NorSkin 3 LowSlimeJelly 5 KylinTail 4 HighMushrooms 1 - 0 - 0 - 0 - 0 2 6 2 27000
20551 Recipe_LowMSScroll Speed Increase (Tier 2) LowMSScroll 1 LowSkin 3 LowSlimeJelly 3 KylinTail 2 NorMushrooms 1 - 0 - 0 - 0 - 0 2 5 2 1300
20552 Recipe_HighMSScroll Speed Increase (Tier 4) HighMSScroll 1 HighSkin 2 HighSlimeJelly 5 KylinFighterTail 2 HighMushrooms 1 - 0 - 0 - 0 - 0 2 19 2 58700
20553 Recipe_BestMSScroll Speed Increase (Tier 5) BestMSScroll 1 BestSkin 4 HighSlimeJelly 6 KylinFighterTail 3 BestMushrooms 1 - 0 - 0 - 0 - 0 2 27 2 92000
20554 Recipe_BestLowMSScroll Speed Increase (Tier 1) BestLowMSScroll 1 LowSkin 3 LowBeastLeather 1 LowBeastTooth 2 - 0 - 0 - 0 - 0 - 0 2 2 2 300
20800 Recipe_LowPsnResiPotion Antitoxin (Tier 1) LowPsnResiPotion 1 NorMeat 2 NorMagicCrystal 2 NorBrokenBone 3 Geranium 1 - 0 - 0 - 0 - 0 1 4 1 1000
20801 Recipe_NorPsnResiPotion Antitoxin (Tier 2) NorPsnResiPotion 1 HighMeat 2 NorMagicCrystal 2 HighBrokenBone 1 Violet 1 - 0 - 0 - 0 - 0 1 10 1 11800
20802 Recipe_HighPsnResiPotion Antitoxin (Tier 3) HighPsnResiPotion 1 BestMeat 2 HighMagicCrystal 2 HighBrokenBone 3 Ramsear 1 - 0 - 0 - 0 - 0 1 16 1 33300
20803 Recipe_LowDssResiPotion Antibiotic (Tier 1) LowDssResiPotion 1 NorMeat 2 NorCleanWater 2 NorBrokenBone 3 Geranium 1 - 0 - 0 - 0 - 0 1 4 1 1000
20804 Recipe_NorDssResiPotion Antibiotic (Tier 2) NorDssResiPotion 1 HighMeat 2 NorCleanWater 2 HighBrokenBone 1 Violet 1 - 0 - 0 - 0 - 0 1 10 1 11800
20805 Recipe_HighDssResiPotion Antibiotic (Tier 3) HighDssResiPotion 1 HighMeat 2 HighCleanWater 2 HighBrokenBone 4 Ramsear 1 - 0 - 0 - 0 - 0 1 13 1 32600
20806 Recipe_LowCurResiPotion Bless (Tier 1) LowCurResiPotion 1 NorMeat 2 NorMagicCrystal 2 NorPledge 2 Geranium 1 - 0 - 0 - 0 - 0 1 4 1 900
20807 Recipe_NorCurResiPotion Bless (Tier 2) NorCurResiPotion 1 HighMeat 2 NorMagicCrystal 2 NorPledge 5 Violet 1 - 0 - 0 - 0 - 0 1 10 1 11600
20808 Recipe_HighCurResiPotion Bless (Tier 3) HighCurResiPotion 1 HighMeat 2 HighMagicCrystal 2 HighPledge 4 Ramsear 1 - 0 - 0 - 0 - 0 1 13 1 38000
21000 Recipe_LowPsnCurPotion Antidote (Tier 1) LowPsnCurPotion 1 LowMeat 2 LowMagicCrystal 2 - 0 - 0 - 0 - 0 - 0 - 0 1 2 1 0
21001 Recipe_NorPsnCurPotion Antidote (Tier 2) NorPsnCurPotion 1 LowMeat 5 NorMagicCrystal 1 NorBrokenBone 2 Geranium 1 - 0 - 0 - 0 - 0 1 3 1 1000
21002 Recipe_HighPsnCurPotion Antidote (Tier 3) HighPsnCurPotion 1 NorMeat 4 NorMagicCrystal 3 HighBrokenBone 2 Violet 1 - 0 - 0 - 0 - 0 1 10 1 11600
21003 Recipe_LowDssCurPotion Cure (Tier 1) LowDssCurPotion 1 LowMeat 2 LowMagicCrystal 1 LowBrokenBone 2 - 0 - 0 - 0 - 0 - 0 1 2 1 600
21004 Recipe_NorDssCurPotion Cure (Tier 2) NorDssCurPotion 1 LowMeat 5 NorMagicCrystal 1 NorBrokenBone 2 Geranium 1 - 0 - 0 - 0 - 0 1 3 1 1600
21005 Recipe_HighDssCurPotion Cure (Tier 3) HighDssCurPotion 1 NorMeat 4 NorMagicCrystal 3 HighBrokenBone 2 Violet 1 - 0 - 0 - 0 - 0 1 10 1 16800
21006 Recipe_BestLowCurScroll Divine Magic (Tier 1) BestLowCurScroll 1 LowSkin 2 LowKylinLeather 2 - 0 - 0 - 0 - 0 - 0 - 0 2 2 2 0
21007 Recipe_LowCurScroll Divine Magic (Tier 2) LowCurScroll 1 LowSkin 4 NorBeastLeather 2 NorBeastTooth 3 LowMushrooms 1 - 0 - 0 - 0 - 0 2 3 2 1700
21008 Recipe_NorCurScroll Divine Magic (Tier 3) NorCurScroll 1 NorSkin 3 NorBeastLeather 3 HighBeastTooth 2 NorMushrooms 1 - 0 - 0 - 0 - 0 2 4 2 14600
21009 Recipe_HighCurScroll Divine Magic (Tier 4) HighCurScroll 1 HighSkin 3 HighBeastLeather 3 HighBeastTooth 2 HighMushrooms 1 - 0 - 0 - 0 - 0 2 15 2 31200
21010 Recipe_BestHighCurScroll Divine Magic (Tier 5) BestHighCurScroll 1 BestSkin 3 HighBeastLeather 2 BeastHead 2 BestMushrooms 1 - 0 - 0 - 0 - 0 2 23 2 93000
23003 Recipe_C_NorBeastLeather Beast Leather NorBeastLeather 1 LowBeastLeather 18 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 3 4 400
23004 Recipe_C_HighBeastLeather Beast Leather (High Quality) HighBeastLeather 1 NorBeastLeather 5 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 13 4 16000
23005 Recipe_C_BeastHead Beast Head BeastHead 1 HighBeastTooth 4 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 40 4 100000
23006 Recipe_C_NorBeastTooth Beast Dogtooth NorBeastTooth 1 LowBeastTooth 18 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 3 4 400
23007 Recipe_C_HighBeastTooth Beast Dogtooth (High Quality) HighBeastTooth 1 NorBeastTooth 5 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 13 4 18000
23011 Recipe_C_NorBrokenBone Broken Bone NorBrokenBone 1 LowBrokenBone 22 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 4 4 4 2000
23012 Recipe_C_HighBrokenBone Intact Bone HighBrokenBone 1 NorBrokenBone 6 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 20 4 32000
23013 Recipe_C_BestBrokenBone Strong Bone BestBrokenBone 1 HighBrokenBone 3 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 46 4 100000
23017 Recipe_C_NorCleanWater Spirit's Fruit NorCleanWater 1 LowCleanWater 16 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 4 4 800
23018 Recipe_C_HighCleanWater Clean Water (High Quality) HighCleanWater 1 NorCleanWater 6 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 4 20 4 35000
23019 Recipe_C_BestCleanWater Spirit's Fruit (Highest Quality) BestCleanWater 1 HighCleanWater 3 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 46 4 100000
23020 Recipe_C_IronBadge Iron Badge IronBadge 1 CommanderBadge 4 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 13 4 24000
23021 Recipe_C_NorCopperOre Copper Ore NorCopperOre 1 LowCopperOre 4 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 2 4 0
23022 Recipe_C_HighCopperOre Copper Ore (High Quality) HighCopperOre 1 NorCopperOre 2 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 2 4 0
23023 Recipe_C_NorGemDust Dim Gem Dust NorGemDust 1 LowGemDust 25 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 4 4 4 5000
23024 Recipe_C_HighGemDust Lustered Gem Dust HighGemDust 1 NorGemDust 5 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 20 4 28000
23025 Recipe_C_BestGemDust Shining Gem Dust BestGemDust 1 HighGemDust 3 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 53 4 100000
23026 Recipe_C_Violet Violet Violet 1 Geranium 9 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 3 4 300
23027 Recipe_C_Ramsear Ramsear Ramsear 1 Violet 3 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 4 6 4 9000
23028 Recipe_C_Salvia Salvia Salvia 1 Ramsear 5 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 4 26 4 75000
23032 Recipe_C_LowGoldOre Gold Ore (Low Quality) LowGoldOre 1 HighSilverOre 3 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 13 4 12000
23033 Recipe_C_NorGoldOre Gold Ore NorGoldOre 1 LowGoldOre 2 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 4 20 4 45000
23034 Recipe_C_HighGoldOre Gold Ore (High Quality) HighGoldOre 1 NorGoldOre 2 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 4 26 4 80000
23035 Recipe_C_NorKylinLeather Summoned Beast Leather NorKylinLeather 1 LowKylinLeather 16 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 4 4 4 1000
23036 Recipe_C_HighKylinLeather Summoned Beast Leather (High Quality) HighKylinLeather 1 NorKylinLeather 4 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 13 4 14000
23037 Recipe_C_KylinTooth Summoned Beast's Tooth KylinTooth 1 HighKylinLeather 4 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 40 4 100000
23038 Recipe_C_MermaidScale Mermaid's Scale MermaidScale 1 HighBeastLeather 4 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 46 4 100000
23039 Recipe_C_KylinFighterTail Summoned Beast Fighter's tail KylinFighterTail 1 KylinTail 5 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 13 4 22000
23040 Recipe_C_NorMagicCrystal Magic Crystal NorMagicCrystal 1 LowMagicCrystal 22 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 4 4 4 2000
23041 Recipe_C_HighMagicCrystal Magic Crystal (High Quality) HighMagicCrystal 1 NorMagicCrystal 6 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 4 20 4 35000
23042 Recipe_C_BestMagicCrystal Magic Crystal (Highest Quality) BestMagicCrystal 1 HighMagicCrystal 3 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 46 4 100000
23043 Recipe_C_NorMeat Tender Meat NorMeat 1 LowMeat 14 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 3 4 500
23044 Recipe_C_HighMeat Chewy Meat HighMeat 1 NorMeat 7 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 20 4 30000
23045 Recipe_C_BestMeat Tasty Meat BestMeat 1 HighMeat 3 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 46 4 100000
23049 Recipe_C_NorMushrooms Common Mushroom NorMushrooms 1 LowMushrooms 11 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 3 4 100
23050 Recipe_C_HighMushrooms Fragrant Mushroom HighMushrooms 1 NorMushrooms 4 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 4 6 4 10000
23051 Recipe_C_BestMushrooms Premium Mushroom BestMushrooms 1 HighMushrooms 5 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 4 26 4 55000
23052 Recipe_C_NorPledge Sign of Trace NorPledge 1 LowPledge 16 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 4 4 4 1000
23053 Recipe_C_HighPledge Preserved Sign HighPledge 1 NorPledge 6 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 4 20 4 40000
23054 Recipe_C_BestPledge Ancient Sign BestPledge 1 HighPledge 3 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 46 4 100000
23055 Recipe_C_Rosemary Rosemary Rosemary 1 Sage 8 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 3 4 300
23056 Recipe_C_Basil Basil Basil 1 Rosemary 6 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 13 4 14000
23057 Recipe_C_Marigold Marigold Marigold 1 Basil 3 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 4 33 4 90000
23061 Recipe_C_LowSilverOre Silver Ore (Low Quality) LowSilverOre 1 HighCopperOre 4 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 3 4 200
23062 Recipe_C_NorSilverOre Silver Ore NorSilverOre 1 LowSilverOre 2 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 3 4 700
23063 Recipe_C_HighSilverOre Silver Ore (High Quality) HighSilverOre 1 NorSilverOre 2 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 4 5 4 6000
23064 Recipe_C_NorSkin Crude Leather NorSkin 1 LowSkin 14 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 3 4 600
23065 Recipe_C_HighSkin Tough Leather HighSkin 1 NorSkin 7 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 20 4 32000
23066 Recipe_C_BestSkin Premium Leather BestSkin 1 HighSkin 3 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 46 4 100000
23067 Recipe_C_NorSoulDust Dim Soul Dust NorSoulDust 1 LowSoulDust 22 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 4 4 4 3000
23068 Recipe_C_HighSoulDust Lustered Soul Dust HighSoulDust 1 NorSoulDust 6 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 4 20 4 40000
23069 Recipe_C_BestSoulDust Shining Soul Dust BestSoulDust 1 HighSoulDust 3 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 46 4 100000
23070 Recipe_C_NorSpiritDust Dim Spirit Dust NorSpiritDust 1 LowSpiritDust 18 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 3 4 500
23071 Recipe_C_HighSpiritDust Glowing Spirit Dust HighSpiritDust 1 NorSpiritDust 5 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 13 4 20000
23072 Recipe_C_BestSpiritDust Shining Spirit Dust BestSpiritDust 1 HighSpiritDust 4 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 46 4 100000
23073 Recipe_C_NorToadStool Common ToadStool NorToadStool 1 LowToadStool 11 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 3 4 100
23074 Recipe_C_HighToadStool Dangerous ToadStool HighToadStool 1 NorToadStool 4 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 4 6 4 10000
23075 Recipe_C_BestToadStool Deadly ToadStool BestToadStool 1 HighToadStool 5 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 4 26 4 60000
23076 Recipe_C_Ruby Ruby Ruby 1 Topaz 6 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 4 6 4 11000
23077 Recipe_C_Sapphire Sapphire Sapphire 1 Ruby 6 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 4 33 4 100000
23079 Recipe_C_NorWoodSab Sap NorWoodSab 1 LowWoodSab 11 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 4 3 4 200
23080 Recipe_C_HighWoodSab Sap (High Quality) HighWoodSab 1 NorWoodSab 8 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 4 13 4 16000
23081 Recipe_C_BestWoodSab Sap (Highest Quality) BestWoodSab 1 HighWoodSab 3 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 4 26 4 85000
24003 Recipe_R_LowBeastLeather Beast Leather (Low Quality) LowBeastLeather 15 NorBeastLeather 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 200
24004 Recipe_R_NorBeastLeather Beast Leather NorBeastLeather 3 HighBeastLeather 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 10 5 14000
24005 Recipe_R_HighBeastLeather Beast Leather (High Quality) HighBeastLeather 3 MermaidScale 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 40 5 100000
24006 Recipe_R_LowBeastTooth Beast Dogtooth (Low Quality) LowBeastTooth 15 NorBeastTooth 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 200
24007 Recipe_R_NorBeastTooth Beast Dogtooth NorBeastTooth 3 HighBeastTooth 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 10 5 16000
24008 Recipe_R_HighBeastTooth Beast Dogtooth (High Quality) HighBeastTooth 2 BeastHead 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 40 5 100000
24012 Recipe_R_LowBrokenBone Crushed Bone LowBrokenBone 19 NorBrokenBone 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 300
24013 Recipe_R_NorBrokenBone Broken Bone NorBrokenBone 4 HighBrokenBone 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 12 5 26000
24014 Recipe_R_HighBrokenBone Intact Bone HighBrokenBone 2 BestBrokenBone 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 60 5 100000
24019 Recipe_R_LowCleanWater Spirit's Fruit (Low Quality) LowCleanWater 14 NorCleanWater 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 800
24020 Recipe_R_NorCleanWater Spirit's Fruit NorCleanWater 4 HighCleanWater 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 12 5 28000
24021 Recipe_R_HighCleanWater Clean Water (High Quality) HighCleanWater 2 BestCleanWater 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 60 5 100000
24022 Recipe_R_CommanderBadge Master Commander's Badge CommanderBadge 2 IronBadge 1 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 5 14 5 35000
24023 Recipe_R_LowCopperOre Copper Ore (Low Quality) LowCopperOre 2 NorCopperOre 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 0
24024 Recipe_R_NorCopperOre Copper Ore NorCopperOre 1 HighCopperOre 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 7000
24025 Recipe_R_HighCopperOre Copper Ore (High Quality) HighCopperOre 2 LowSilverOre 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 3 5 8000
24026 Recipe_R_LowGemDust Old Gem Dust LowGemDust 22 NorGemDust 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 500
24027 Recipe_R_NorGemDust Dim Gem Dust NorGemDust 4 HighGemDust 1 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 5 14 5 40000
24028 Recipe_R_HighGemDust Lustered Gem Dust HighGemDust 2 BestGemDust 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 60 5 100000
24029 Recipe_R_Geranium Geranium Geranium 7 Violet 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 2000
24030 Recipe_R_Violet Violet Violet 2 Ramsear 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 8 5 12000
24031 Recipe_R_Ramsear Ramsear Ramsear 3 Salvia 1 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 5 20 5 50000
24035 Recipe_R_LowGoldOre Gold Ore (Low Quality) LowGoldOre 1 NorGoldOre 1 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 5 40 5 80000
24036 Recipe_R_NorGoldOre Gold Ore NorGoldOre 1 HighGoldOre 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 60 5 100000
24038 Recipe_R_LowKylinLeather Summoned Beast Leather (Low Quality) LowKylinLeather 14 NorKylinLeather 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 1000
24039 Recipe_R_NorKylinLeather Summoned Beast Leather NorKylinLeather 3 HighKylinLeather 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 12 5 24000
24040 Recipe_R_HighKylinLeather Material Decomposition :Summoned Beast Leather (High Quality) HighKylinLeather 2 KylinTooth 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 40 5 100000
24041 Recipe_R_KylinTail Summoned Beast's Tail KylinTail 3 KylinFighterTail 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 10 5 18000
24042 Recipe_R_LowMagicCrystal Magic Crystal (Low Quality) LowMagicCrystal 19 NorMagicCrystal 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 400
24043 Recipe_R_NorMagicCrystal Magic Crystal NorMagicCrystal 4 HighMagicCrystal 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 12 5 30000
24044 Recipe_R_HighMagicCrystal Magic Crystal (High Quality) HighMagicCrystal 2 BestMagicCrystal 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 60 5 100000
24045 Recipe_R_LowMeat Tough Meat LowMeat 11 NorMeat 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 600
24046 Recipe_R_NorMeat Tender Meat NorMeat 5 HighMeat 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 10 5 20000
24047 Recipe_R_HighMeat Chewy Meat HighMeat 2 BestMeat 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 60 5 100000
24050 Recipe_R_LowMushrooms Spoiled Mushroom LowMushrooms 9 NorMushrooms 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 0
24051 Recipe_R_NorMushrooms Common Mushroom NorMushrooms 3 HighMushrooms 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 6 5 10000
24052 Recipe_R_HighMushrooms Fragrant Mushroom HighMushrooms 3 BestMushrooms 1 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 5 20 5 55000
24053 Recipe_R_LowPledge Vanished Sign LowPledge 14 NorPledge 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 1000
24054 Recipe_R_NorPledge Sign of Trace NorPledge 4 HighPledge 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 12 5 32000
24055 Recipe_R_HighPledge Preserved Sign HighPledge 2 BestPledge 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 60 5 100000
24056 Recipe_R_Sage Sage Sage 6 Rosemary 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 3000
24057 Recipe_R_Rosemary Rosemary Rosemary 4 Basil 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 8 5 12000
24058 Recipe_R_Basil Basil Basil 2 Marigold 1 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 5 40 5 90000
24062 Recipe_R_LowSilverOre Silver Ore (Low Quality) LowSilverOre 1 NorSilverOre 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 6 5 10000
24063 Recipe_R_NorSilverOre Silver Ore NorSilverOre 1 HighSilverOre 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 10 5 14000
24064 Recipe_R_HighSilverOre Silver Ore (High Quality) HighSilverOre 2 LowGoldOre 1 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 5 16 5 40000
24065 Recipe_R_LowSkin Torn Leather LowSkin 11 NorSkin 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 700
24066 Recipe_R_NorSkin Crude Leather NorSkin 5 HighSkin 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 10 5 22000
24067 Recipe_R_HighSkin Tough Leather HighSkin 2 BestSkin 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 60 5 100000
24068 Recipe_R_LowSoulDust Old Soul Dust LowSoulDust 19 NorSoulDust 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 400
24069 Recipe_R_NorSoulDust Dim Soul Dust NorSoulDust 4 HighSoulDust 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 12 5 32000
24070 Recipe_R_HighSoulDust Lustered Soul Dust HighSoulDust 2 BestSoulDust 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 60 5 100000
24071 Recipe_R_LowSpiritDust Old Spirit Dust LowSpiritDust 15 NorSpiritDust 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 300
24072 Recipe_R_NorSpiritDust Dim Spirit Dust NorSpiritDust 3 HighSpiritDust 1 Converter3 1 - 0 - 0 - 0 - 0 - 0 - 0 5 10 5 16000
24073 Recipe_R_HighSpiritDust Glowing Spirit Dust HighSpiritDust 3 BestSpiritDust 1 Converter5 1 - 0 - 0 - 0 - 0 - 0 - 0 5 40 5 100000
24074 Recipe_R_LowToadStool Plain ToadStool LowToadStool 9 NorToadStool 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 100
24075 Recipe_R_NorToadStool Common ToadStool NorToadStool 3 HighToadStool 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 6 5 11000
24076 Recipe_R_HighToadStool Dangerous ToadStool HighToadStool 3 BestToadStool 1 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 5 20 5 60000
24077 Recipe_R_Topaz Topaz Topaz 4 Ruby 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 4 5 9000
24078 Recipe_R_Ruby Ruby Ruby 4 Sapphire 1 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 5 20 5 65000
24080 Recipe_R_LowWoodSab Sap (Low Quality) LowWoodSab 9 NorWoodSab 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 100
24081 Recipe_R_NorWoodSab Sap NorWoodSab 6 HighWoodSab 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 6 5 11000
24082 Recipe_R_HighWoodSab Sap (High Quality) HighWoodSab 1 BestWoodSab 1 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 5 40 5 85000

@ -1093,9 +1093,16 @@ namespace olc::QuickGUI
if (m_state == State::Disabled || !bVisible) if (m_state == State::Disabled || !bVisible)
return; return;
nPreviouslySelectedItem = nSelectedItem; nPreviouslySelectedItem = nSelectedItem;
olc::vf2d vMouse = pge->GetMousePos() - vPos + olc::vi2d(2,0); olc::vf2d vMouse = pge->GetMousePos() - vPos + olc::vi2d(2,0);
bHovered=pge->GetMouseX() >= vPos.x && pge->GetMouseX() < vPos.x + vSize.x &&
pge->GetMouseY() >= vPos.y && pge->GetMouseY() < vPos.y + vSize.y;
if(bHovered){
std::cout<<"Hovering"<<std::endl;
}
if (pge->GetMouse(olc::Mouse::LEFT).bPressed) if (pge->GetMouse(olc::Mouse::LEFT).bPressed)
{ {
if (vMouse.x >= 0 && vMouse.x < vSize.x - (m_group.fGrabRad * 2) && vMouse.y >= 0 && vMouse.y < vSize.y) if (vMouse.x >= 0 && vMouse.x < vSize.x - (m_group.fGrabRad * 2) && vMouse.y >= 0 && vMouse.y < vSize.y)
@ -1110,7 +1117,16 @@ namespace olc::QuickGUI
bSelectionChanged = nSelectedItem != nPreviouslySelectedItem; bSelectionChanged = nSelectedItem != nPreviouslySelectedItem;
m_pSlider->fMax = float(m_vList.size()); m_pSlider->fMax = float(m_vList.size()-vSize.y/10+1);
if(bHovered&&pge->GetMouseWheel()!=0){
if(pge->GetMouseWheel()>0){
m_pSlider->fValue=std::clamp(m_pSlider->fValue-1, m_pSlider->fMin, m_pSlider->fMax);
} else {
m_pSlider->fValue=std::clamp(m_pSlider->fValue+1, m_pSlider->fMin, m_pSlider->fMax);
}
}
m_group.Update(pge); m_group.Update(pge);
} }
@ -1135,8 +1151,8 @@ namespace olc::QuickGUI
for (size_t idx = idx0; idx < idx1; idx++) for (size_t idx = idx0; idx < idx1; idx++)
{ {
if (idx == nSelectedItem) if (idx == nSelectedItem)
pge->FillRect(vTextPos - olc::vi2d(1,1), {int32_t(vSize.x - m_group.fGrabRad * 2), 10}, m_group.colHover); pge->FillRect(vTextPos - olc::vi2d(1,-1), {int32_t(vSize.x - m_group.fGrabRad * 2), 10}, m_group.colHover);
pge->DrawStringProp(vTextPos, m_vList[idx]); pge->DrawStringProp(vTextPos + olc::vi2d(0,2), m_vList[idx]);
vTextPos.y += 10; vTextPos.y += 10;
} }
@ -1158,8 +1174,8 @@ namespace olc::QuickGUI
for (size_t idx = idx0; idx < idx1; idx++) for (size_t idx = idx0; idx < idx1; idx++)
{ {
if (idx == nSelectedItem) if (idx == nSelectedItem)
pge->FillRectDecal(vTextPos - olc::vi2d(1, 1), { vSize.x - m_group.fGrabRad * 2.0f, 10.0f }, m_group.colHover); pge->FillRectDecal(vTextPos - olc::vi2d(1, -1), { vSize.x - m_group.fGrabRad * 2.0f, 10.0f }, m_group.colHover);
pge->DrawStringPropDecal(vTextPos, m_vList[idx]); pge->DrawStringPropDecal(vTextPos + olc::vi2d(0,2), m_vList[idx]);
vTextPos.y += 10; vTextPos.y += 10;
} }

Loading…
Cancel
Save