Compare commits

...

2 Commits

  1. 587
      FiestaCraftingCalculator/FiestaCraftingCalculator.cpp
  2. 12
      FiestaCraftingCalculator/olcPixelGameEngine.h

@ -12,249 +12,110 @@ int PANEL_WIDTH=620;
int PANEL_HEIGHT=240; int PANEL_HEIGHT=240;
enum Image{
PRODUCTION,
COLLECTIBLE,
COLLECTIBLE2
};
enum Grade{ class FiestaCraftingCalculator : public olc::PixelGameEngine
GRADE_NONE, {
GRADEL,
GRADEM,
GRADEH,
GRADE1,
GRADE2,
GRADE3,
GRADE4,
GRADE5,
};
struct ItemData{
std::string name;
Pixel borderCol;
vi2d tilesheetPos={0,0};
Image img=COLLECTIBLE;
Grade grade=GRADE_NONE;
};
std::map<std::string,ItemData>IDToName={ enum Image{
{"El1",{"Elrue [1]",{0,0,0},{6,2},PRODUCTION,GRADE1}}, PRODUCTION,
{"El2",{"Elrue [2]",{0,0,0},{6,2},PRODUCTION,GRADE2}}, COLLECTIBLE,
{"El3",{"Elrue [3]",{0,0,0},{6,2},PRODUCTION,GRADE3}}, COLLECTIBLE2
{"El4",{"Elrue [4]",{0,0,0},{6,2},PRODUCTION,GRADE4}}, };
{"El5",{"Elrue [5]",{0,0,0},{6,2},PRODUCTION,GRADE5}},
{"Lix1",{"Lix [1]",{0,0,0},{1,3},PRODUCTION,GRADE1}},
{"Lix2",{"Lix [2]",{0,0,0},{1,3},PRODUCTION,GRADE2}},
{"Lix3",{"Lix [3]",{0,0,0},{1,3},PRODUCTION,GRADE3}},
{"Lix4",{"Lix [4]",{0,0,0},{1,3},PRODUCTION,GRADE4}},
{"Lix5",{"Lix [5]",{0,0,0},{1,3},PRODUCTION,GRADE5}},
{"Xir1",{"Xir [1]",{0,0,0},{4,3},PRODUCTION,GRADE1}},
{"Xir2",{"Xir [2]",{0,0,0},{4,3},PRODUCTION,GRADE2}},
{"Xir3",{"Xir [3]",{0,0,0},{4,3},PRODUCTION,GRADE3}},
{"Xir4",{"Xir [4]",{0,0,0},{4,3},PRODUCTION,GRADE4}},
{"Xir5",{"Xir [5]",{0,0,0},{4,3},PRODUCTION,GRADE5}},
{"BestLowHpPotion",{"HP Potion (Tier 1)",{0,0,0},{0,0},PRODUCTION}},
{"LowHpPotion",{"HP Potion (Tier 2)",{0,0,0},{0,0},PRODUCTION,GRADEL}},
{"NorHpPotion",{"HP Potion (Tier 3)",{0,0,0},{1,0},PRODUCTION,GRADEM}},
{"HighHpPotion",{"HP Potion (Tier 4)",{0,0,0},{1,0},PRODUCTION,GRADEH}},
{"BestHighHpPotion",{"HP Potion (Tier 5)",{0,0,0},{2,0},PRODUCTION}},
{"BestLowSpPotion",{"SP Potion (Tier 1)",{0,0,0},{3,0},PRODUCTION}},
{"LowSpPotion",{"SP Potion (Tier 2)",{0,0,0},{3,0},PRODUCTION,GRADEL}},
{"NorSpPotion",{"SP Potion (Tier 3)",{0,0,0},{4,0},PRODUCTION,GRADEM}},
{"HighSpPotion",{"SP Potion (Tier 4)",{0,0,0},{4,0},PRODUCTION,GRADEH}},
{"BestHighSpPotion",{"SP Potion (Tier 5)",{0,0,0},{5,0},PRODUCTION}},
{"BestLowConHPPotion",{"HP Regeneration Potion (Tier 1)",{0,0,0},{0,0},PRODUCTION}},
{"LowConHPPotion",{"HP Regeneration Potion (Tier 2)",{0,0,0},{0,0},PRODUCTION,GRADEL}},
{"NorConHPPotion",{"HP Regeneration Potion (Tier 3)",{0,0,0},{1,0},PRODUCTION,GRADEM}},
{"HighConHPPotion",{"HP Regeneration Potion (Tier 4)",{0,0,0},{1,0},PRODUCTION,GRADEH}},
{"BestHighConHPPotion",{"HP Regeneration Potion (Tier 5)",{0,0,0},{2,0},PRODUCTION}},
{"BestLowConSPPotion",{"SP Regeneration Potion (Tier 1)",{0,0,0},{3,0},PRODUCTION}},
{"LowConSPPotion",{"SP Regeneration Potion (Tier 2)",{0,0,0},{3,0},PRODUCTION,GRADEL}},
{"NorConSPPotion",{"SP Regeneration Potion (Tier 3)",{0,0,0},{4,0},PRODUCTION,GRADEM}},
{"HighConSPPotion",{"SP Regeneration Potion (Tier 4)",{0,0,0},{4,0},PRODUCTION,GRADEH}},
{"BestHighConSPPotion",{"SP Regeneration Potion (Tier 5)",{0,0,0},{5,0},PRODUCTION}},
{"BestLowTHScroll",{"Aim(Tier 1)",{0,0,0},{4,1},PRODUCTION}},
{"LowTHScroll",{"Aim(Tier 2)",{0,0,0},{4,1},PRODUCTION,GRADEL}},
{"NorTHScroll",{"Aim(Tier 3)",{0,0,0},{4,1},PRODUCTION,GRADEM}},
{"HighTHScroll",{"Aim(Tier 4)",{0,0,0},{4,1},PRODUCTION,GRADEH}},
{"BestHighTHScroll",{"Aim(Tier 5)",{0,0,0},{4,1},PRODUCTION}},
{"BestLowTBScroll",{"Nature's Agility (Tier 1)",{0,0,0},{5,1},PRODUCTION}},
{"LowTBScroll",{"Nature's Agility (Tier 2)",{0,0,0},{5,1},PRODUCTION,GRADEL}},
{"NorTBScroll",{"Nature's Agility (Tier 3)",{0,0,0},{5,1},PRODUCTION,GRADEM}},
{"HighTBScroll",{"Nature's Agility (Tier 4)",{0,0,0},{5,1},PRODUCTION,GRADEH}},
{"BestHighTBScroll",{"Nature's Agility (Tier 5)",{0,0,0},{5,1},PRODUCTION}},
{"BestLowMRScroll",{"Magical Defense (Tier 1)",{0,0,0},{6,1},PRODUCTION}},
{"LowMRScroll",{"Magical Defense (Tier 2)",{0,0,0},{6,1},PRODUCTION,GRADEL}},
{"NorMRScroll",{"Magical Defense (Tier 3)",{0,0,0},{6,1},PRODUCTION,GRADEM}},
{"HighMRScroll",{"Magical Defense (Tier 4)",{0,0,0},{6,1},PRODUCTION,GRADEH}},
{"BestHighMRScroll",{"Magical Defense (Tier 5)",{0,0,0},{6,1},PRODUCTION}},
{"BestLowACScroll",{"Shield Increase (Tier 1)",{0,0,0},{6,1},PRODUCTION}},
{"LowACScroll",{"Shield Increase (Tier 2)",{0,0,0},{6,1},PRODUCTION,GRADEL}},
{"NorACScroll",{"Shield Increase (Tier 3)",{0,0,0},{6,1},PRODUCTION,GRADEM}},
{"HighACScroll",{"Shield Increase (Tier 4)",{0,0,0},{6,1},PRODUCTION,GRADEH}},
{"BestHighACScroll",{"Shield Increase (Tier 5)",{0,0,0},{6,1},PRODUCTION}},
{"BestLowMaxHPScroll",{"Vitality (Tier 1)",{0,0,0},{0,2},PRODUCTION}},
{"LowMaxHPScroll",{"Vitality (Tier 2)",{0,0,0},{0,2},PRODUCTION,GRADEL}},
{"NorMaxHPScroll",{"Vitality (Tier 3)",{0,0,0},{0,2},PRODUCTION,GRADEM}},
{"HighMaxHPScroll",{"Vitality (Tier 4)",{0,0,0},{0,2},PRODUCTION,GRADEH}},
{"BestHighMaxHPScroll",{"Vitality (Tier 5)",{0,0,0},{0,2},PRODUCTION}},
{"BestLowMaxSPScroll",{"Mentality (Tier 1)",{0,0,0},{1,2},PRODUCTION}},
{"LowMaxSPScroll",{"Mentality (Tier 2)",{0,0,0},{1,2},PRODUCTION,GRADEL}},
{"NorMaxSPScroll",{"Mentality (Tier 3)",{0,0,0},{1,2},PRODUCTION,GRADEM}},
{"HighMaxSPScroll",{"Mentality (Tier 4)",{0,0,0},{1,2},PRODUCTION,GRADEH}},
{"BestHighMaxSPScroll",{"Mentality (Tier 5)",{0,0,0},{1,2},PRODUCTION}},
{"NorMSScroll",{"Speed Increase (Tier 3)",{0,0,0},{1,2},PRODUCTION,GRADEM}},
{"LowMSScroll",{"Speed Increase (Tier 2)",{0,0,0},{1,2},PRODUCTION,GRADEL}},
{"HighMSScroll",{"Speed Increase (Tier 4)",{0,0,0},{1,2},PRODUCTION,GRADEH}},
{"BestMSScroll",{"Speed Increase (Tier 5)",{0,0,0},{1,2},PRODUCTION}},
{"BestLowMSScroll",{"Speed Increase (Tier 1)",{0,0,0},{1,2},PRODUCTION}},
{"LowPsnResiPotion",{"Antitoxin (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}},
{"NorPsnResiPotion",{"Antitoxin (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}},
{"HighPsnResiPotion",{"Antitoxin (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}},
{"LowDssResiPotion",{"Antibiotic (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}},
{"NorDssResiPotion",{"Antibiotic (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}},
{"HighDssResiPotion",{"Antibiotic (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}},
{"LowCurResiPotion",{"Bless (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}},
{"NorCurResiPotion",{"Bless (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}},
{"HighCurResiPotion",{"Bless (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}},
{"LowPsnCurPotion",{"Antidote (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}},
{"NorPsnCurPotion",{"Antidote (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}},
{"HighPsnCurPotion",{"Antidote (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}},
{"LowDssCurPotion",{"Cure (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}},
{"NorDssCurPotion",{"Cure (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}},
{"HighDssCurPotion",{"Cure (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}},
{"BestLowCurScroll",{"Divine Magic (Tier 1)",{0,0,0},{2,2},PRODUCTION}},
{"LowCurScroll",{"Divine Magic (Tier 2)",{0,0,0},{2,2},PRODUCTION,GRADEL}},
{"NorCurScroll",{"Divine Magic (Tier 3)",{0,0,0},{2,2},PRODUCTION,GRADEM}},
{"HighCurScroll",{"Divine Magic (Tier 4)",{0,0,0},{2,2},PRODUCTION,GRADEH}},
{"BestHighCurScroll",{"Divine Magic (Tier 5)",{0,0,0},{2,2},PRODUCTION}},
{"NorBeastLeather",{"Beast Leather (Normal Quality)",{255,255,0},{7,1}}},
{"HighBeastLeather",{"Beast Leather (High Quality)",{0,255,0},{0,2}}},
{"BeastHead",{"Beast Head",{0,255,255},{1,2}}},
{"NorBeastTooth",{"Beast Dogtooth (Normal Quality)",{255,255,0},{5,1}}},
{"HighBeastTooth",{"Beast Dogtooth (High Quality)",{0,255,0},{6,1}}},
{"NorBrokenBone",{"Bone (Normal Quality)",{255,255,0},{4,0}}},
{"HighBrokenBone",{"Bone (High Quality)",{0,255,0},{4,0}}},
{"BestBrokenBone",{"Bone (Highest Quality)",{0,255,255},{4,0}}},
{"NorCleanWater",{"Spirit's Nectar (Normal Quality)",{255,255,0},{7,5}}},
{"HighCleanWater",{"Spirit's Nectar (High Quality)",{0,255,0},{0,6}}},
{"BestCleanWater",{"Spirit's Nectar (Highest Quality)",{0,255,255},{0,6}}},
{"IronBadge",{"Iron Badge",{255,255,0},{2,4}}},
{"NorCopperOre",{"Copper Ore (Normal Quality)",{255,255,0},{4,4}}},
{"HighCopperOre",{"Copper Ore (High Quality)",{0,255,0},{5,4}}},
{"NorGemDust",{"Gem Dust (Normal Quality)",{255,255,0},{6,0}}},
{"HighGemDust",{"Gem Dust (High Quality)",{0,255,0},{6,0}}},
{"BestGemDust",{"Gem Dust (Highest Quality)",{0,255,255},{6,0}}},
{"Violet",{"Vilolet",{0,0,0},{1,1},COLLECTIBLE2}},
{"Ramsear",{"Ramsear",{0,0,0},{1,1},COLLECTIBLE2}},
{"Salvia",{"Eucalyptus",{255,255,255},{5,7}}},
{"LowGoldOre",{"Gold Ore (Low Quality)",{255,255,255},{1,6}}},
{"NorGoldOre",{"Gold Ore (Normal Quality)",{255,255,0},{2,6}}},
{"HighGoldOre",{"Gold Ore (High Quality)",{0,255,0},{3,6}}},
{"NorKylinLeather",{"Summoned Beast Leather (Normal Quality)",{255,255,0},{3,2}}},
{"HighKylinLeather",{"Summoned Beast Leather (High Quality)",{0,255,0},{4,2}}},
{"KylinTooth",{"Summoned Beast's Tooth",{0,255,0},{7,2}}},
{"MermaidScale",{"Mermaid's Scale",{0,0,0},{2,3}}},
{"KylinFighterTail",{"Summoned Beast Fighter's Tail",{255,255,0},{6,2}}},
{"NorMagicCrystal",{"Magic Crystal (Normal Quality)",{255,255,0},{4,5}}},
{"HighMagicCrystal",{"Magic Crystal (High Quality)",{0,255,0},{5,5}}},
{"BestMagicCrystal",{"Magic Crystal (Highest Quality)",{0,255,255},{5,5}}},
{"NorMeat",{"Meat (Normal Quality)",{255,255,0},{1,0}}},
{"HighMeat",{"Meat (High Quality)",{0,255,0},{1,0}}},
{"BestMeat",{"Meat (Highest Quality)",{0,255,255},{1,0}}},
{"NorMushrooms",{"Mushroom (Normal Quality)",{255,255,0},{4,3}}},
{"HighMushrooms",{"Mushroom (High Quality)",{0,255,0},{4,3}}},
{"BestMushrooms",{"Mushroom (Highest Quality)",{0,255,255},{4,3}}},
{"NorPledge",{"Sign (Normal Quality)",{255,255,0},{3,0}}},
{"HighPledge",{"Sign (High Quality)",{0,255,0},{3,0}}},
{"BestPledge",{"Sign (Highest Quality)",{0,255,255},{3,0}}},
{"Rosemary",{"Rosemary",{0,255,0},{4,7}}},
{"Basil",{"Basil",{0,255,255},{5,7}}},
{"Marigold",{"Marigold",{0,0,255},{6,7}}},
{"LowSilverOre",{"Silver Ore (Low Quality)",{255,255,255},{6,4}}},
{"NorSilverOre",{"Silver Ore (Normal Quality)",{255,255,0},{7,4}}},
{"HighSilverOre",{"Silver Ore (High Quality)",{0,255,0},{0,5}}},
{"NorSkin",{"Leather (Normal Quality)",{255,255,0},{5,0}}},
{"HighSkin",{"Leather (High Quality)",{0,255,0},{5,0}}},
{"BestSkin",{"Leather (Highest Quality)",{0,255,255},{5,0}}},
{"NorSoulDust",{"Soul Dust (Normal Quality)",{255,255,0},{2,1}}},
{"HighSoulDust",{"Soul Dust (High Quality)",{0,255,0},{2,1}}},
{"BestSoulDust",{"Soul Dust (Highest Quality)",{0,255,255},{2,1}}},
{"NorSpiritDust",{"Spirit Dust (Normal Quality)",{255,255,0},{0,0}}},
{"HighSpiritDust",{"Spirit Dust (High Quality)",{0,255,0},{0,0}}},
{"BestSpiritDust",{"Spirit Dust (Highest Quality)",{0,255,255},{0,0}}},
{"NorToadStool",{"Toadstool (Normal Quality)",{255,255,0},{3,3}}},
{"HighToadStool",{"Toadstool (High Quality)",{0,255,0},{3,3}}},
{"BestToadStool",{"Toadstool (Highest Quality)",{0,255,255},{3,3}}},
{"Ruby",{"Ruby",{255,255,0},{2,5}}},
{"Sapphire",{"Sapphire",{0,255,0},{4,6}}},
{"NorWoodSab",{"Sap (Normal Quality)",{255,255,0},{6,6}}},
{"HighWoodSab",{"Sap (High Quality)",{0,255,0},{7,6}}},
{"BestWoodSab",{"Sap (Highest Quality)",{0,255,255},{0,7}}},
{"LowBeastLeather",{"Beast Leather (Low Quality)",{255,255,255},{7,1}}},
{"LowBeastTooth",{"Beast Dogtooth (Low Quality)",{255,255,255},{4,1}}},
{"LowBrokenBone",{"Bone (Low Quality)",{255,255,255},{4,0}}},
{"LowCleanWater",{"Spirit's Nectar (Low Quality)",{255,255,255},{6,5}}},
{"CommanderBadge",{"Master Commander's Badge",{255,255,255},{1,4}}},
{"LowCopperOre",{"Copper Ore (Low Quality)",{255,255,255},{3,4}}},
{"LowGemDust",{"Gem Dust (Low Quality)",{255,255,255},{6,0}}},
{"Geranium",{"Geranium",{0,0,0},{1,1},COLLECTIBLE2}},
{"LowKylinLeather",{"Summoned Beast Leather (Low Quality)",{255,255,255},{2,2}}},
{"KylinTail",{"Summoned Beast's Tail",{255,255,255},{5,2}}},
{"LowMagicCrystal",{"Magic Crystal (Low Quality)",{255,255,255},{3,5}}},
{"LowMeat",{"Meat (Low Quality)",{255,255,255},{1,0}}},
{"LowMushrooms",{"Mushroom (Low Quality)",{255,255,255},{4,3}}},
{"LowPledge",{"Sign (Low Quality)",{255,255,255},{3,0}}},
{"Sage",{"Sage",{255,255,0},{3,7}}},
{"LowSkin",{"Leather (Low Quality)",{255,255,255},{5,0}}},
{"LowSoulDust",{"Soul Dust (Low Quality)",{255,255,255},{2,1}}},
{"LowSpiritDust",{"Spirit Dust (Low Quality)",{255,255,255},{0,0}}},
{"LowToadStool",{"Toadstool (Low Quality)",{255,255,255},{3,3}}},
{"Topaz",{"Topaz",{255,255,255},{1,5}}},
{"LowWoodSab",{"Sap (Low Quality)",{255,255,255},{5,6}}},
{"LowSlimeJelly",{"Slime Jelly (Low Quality)",{255,255,255},{0,3}}},
{"HighSlimeJelly",{"Slime Jelly (High Quality)",{255,255,0},{1,3}}},
{"Converter1",{"Alchemy Stone[1]",{255,255,255},{4,2},PRODUCTION}},
{"Converter3",{"Alchemy Stone[3]",{0,255,0},{4,2},PRODUCTION}},
{"Converter5",{"Alchemy Stone[5]",{0,255,255},{4,2},PRODUCTION}},
{"Converter2",{"Alchemy Stone[2]",{255,255,0},{4,2},PRODUCTION}},
{"Converter4",{"Alchemy Stone[4]",{0,255,255},{4,2},PRODUCTION}},
};
class Recipe{ enum Grade{
public: GRADE_NONE,
std::string ProduceIndex; GRADEL,
std::string DisplayName; GRADEM,
std::string Product; GRADEH,
int amt; GRADE1,
std::vector<std::pair<std::string,int>>requiredItems; GRADE2,
int expGained; GRADE3,
int requiredExp; GRADE4,
Recipe(std::vector<std::string>&data){ GRADE5,
ProduceIndex=data[1]; };
DisplayName=data[2];
Product=data[3]; struct ItemData{
amt=stoi(data[4]); std::string name;
for(int i=5;i<=20;i+=2){ Pixel borderCol;
if(data[i].size()>1){ vi2d tilesheetPos={0,0};
requiredItems.push_back({data[i],stoi(data[i+1])}); Image img=COLLECTIBLE;
Grade grade=GRADE_NONE;
void DrawIcon(PixelGameEngine*pge,vf2d pos){
Renderable*r=nullptr;
switch(img){
case PRODUCTION:{
r=&FiestaCraftingCalculator::ProdIcon;
}break;
case COLLECTIBLE:{
r=&FiestaCraftingCalculator::CollectibleIcons;
}break;
case COLLECTIBLE2:{
r=&FiestaCraftingCalculator::CollectibleIcons2;
}break;
}
pge->DrawPartialDecal(pos,{32,32},r->Decal(),tilesheetPos*32,{32,32});
switch(grade){
case GRADEL:{
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{0,0},{32,32});
}break;
case GRADEM:{
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{32,0},{32,32});
}break;
case GRADEH:{
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{64,0},{32,32});
}break;
case GRADE1:{
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{96,0},{32,32});
}break;
case GRADE2:{
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{0,32},{32,32});
}break;
case GRADE3:{
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{32,32},{32,32});
}break;
case GRADE4:{
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{64,32},{32,32});
}break;
case GRADE5:{
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),{96,32},{32,32});
}break;
} }
pge->DrawRectDecal(pos,{32,32},borderCol);
} }
expGained=stoi(data[22]); };
requiredExp=stoi(data[24]);
}
};
std::vector<Recipe>PotionProdRecipes; static std::map<std::string,ItemData>IDToName;
std::vector<Recipe>StoneProdRecipes;
std::vector<Recipe>ScrollProdRecipes;
std::vector<Recipe>CompRecipes;
std::vector<Recipe>DecompRecipes;
class FiestaCraftingCalculator : public olc::PixelGameEngine class Recipe{
{ public:
static Renderable ProdIcon,CloseIcon,CloseBackIcon; std::string ProduceIndex;
std::string DisplayName;
std::string Product;
int amt;
std::vector<std::pair<std::string,int>>requiredItems;
int expGained;
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]);
}
};
static std::vector<Recipe>PotionProdRecipes;
static std::vector<Recipe>StoneProdRecipes;
static std::vector<Recipe>ScrollProdRecipes;
static std::vector<Recipe>CompRecipes;
static std::vector<Recipe>DecompRecipes;
class Calculator{ class Calculator{
Manager manager; Manager manager;
vf2d displayPos={10,10}; vf2d displayPos={10,10};
@ -268,6 +129,7 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
std::string DisplayProdText; std::string DisplayProdText;
std::string SelectedProdText; std::string SelectedProdText;
std::vector<std::string> recipeItems; std::vector<std::string> recipeItems;
Recipe*selectedItem;
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});
@ -303,8 +165,9 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
RecipeList->m_pSlider->fValue=0; RecipeList->m_pSlider->fValue=0;
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0; RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0;
for(Recipe&r:PotionProdRecipes){ for(Recipe&r:PotionProdRecipes){
recipeItems.push_back(r.DisplayName); recipeItems.push_back(IDToName[r.Product].name);
} }
selectedItem=&PotionProdRecipes[0];
} }
if(PotionProd->bHovered){ if(PotionProd->bHovered){
DisplayProdText="Potion Production"; DisplayProdText="Potion Production";
@ -317,8 +180,9 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
RecipeList->m_pSlider->fValue=0; RecipeList->m_pSlider->fValue=0;
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0; RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0;
for(Recipe&r:StoneProdRecipes){ for(Recipe&r:StoneProdRecipes){
recipeItems.push_back(r.DisplayName); recipeItems.push_back(IDToName[r.Product].name);
} }
selectedItem=&StoneProdRecipes[0];
} }
if(StoneProd->bHovered){ if(StoneProd->bHovered){
DisplayProdText="Stone Production"; DisplayProdText="Stone Production";
@ -331,8 +195,9 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
RecipeList->m_pSlider->fValue=0; RecipeList->m_pSlider->fValue=0;
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0; RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0;
for(Recipe&r:ScrollProdRecipes){ for(Recipe&r:ScrollProdRecipes){
recipeItems.push_back(r.DisplayName); recipeItems.push_back(IDToName[r.Product].name);
} }
selectedItem=&ScrollProdRecipes[0];
} }
if(ScrollProd->bHovered){ if(ScrollProd->bHovered){
DisplayProdText="Scroll Production"; DisplayProdText="Scroll Production";
@ -345,8 +210,9 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
RecipeList->m_pSlider->fValue=0; RecipeList->m_pSlider->fValue=0;
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0; RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0;
for(Recipe&r:CompRecipes){ for(Recipe&r:CompRecipes){
recipeItems.push_back(r.DisplayName); recipeItems.push_back(IDToName[r.Product].name);
} }
selectedItem=&CompRecipes[0];
} }
if(CompProd->bHovered){ if(CompProd->bHovered){
DisplayProdText="Material Composition"; DisplayProdText="Material Composition";
@ -359,15 +225,60 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
RecipeList->m_pSlider->fValue=0; RecipeList->m_pSlider->fValue=0;
RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0; RecipeList->nSelectedItem=RecipeList->nPreviouslySelectedItem=0;
for(Recipe&r:DecompRecipes){ for(Recipe&r:DecompRecipes){
recipeItems.push_back(r.DisplayName); recipeItems.push_back(IDToName[r.Product].name);
} }
selectedItem=&DecompRecipes[0];
} }
if(DecompProd->bHovered){ if(DecompProd->bHovered){
DisplayProdText="Material Decomposition"; DisplayProdText="Material Decomposition";
} }
if(RecipeList->bSelectionChanged){
if(PotionProd->bChecked){
selectedItem=&PotionProdRecipes[RecipeList->nSelectedItem];
}
if(StoneProd->bChecked){
selectedItem=&StoneProdRecipes[RecipeList->nSelectedItem];
}
if(ScrollProd->bChecked){
selectedItem=&ScrollProdRecipes[RecipeList->nSelectedItem];
}
if(CompProd->bChecked){
selectedItem=&CompRecipes[RecipeList->nSelectedItem];
}
if(DecompProd->bChecked){
selectedItem=&DecompRecipes[RecipeList->nSelectedItem];
}
}
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+54},DisplayProdText,WHITE,{2,2}); pge->DrawStringPropDecal(displayPos+vf2d{10,10+54},DisplayProdText,WHITE,{2,2});
if(RecipeList->bVisible){
ItemData data = IDToName[selectedItem->Product];
data.DrawIcon(pge,displayPos+vf2d{320,40});
float stringWidth=pge->GetTextSizeProp(data.name).x*2;
if(stringWidth>PANEL_WIDTH-356){
float scale=(PANEL_WIDTH-356)/stringWidth;
pge->DrawStringPropDecal(displayPos+vf2d{356,40},data.name,WHITE,{2*scale,2});
} else {
pge->DrawStringPropDecal(displayPos+vf2d{356,40},data.name,WHITE,{2,2});
}
pge->DrawStringPropDecal(displayPos+vf2d{360,58},"x "+std::to_string(selectedItem->amt),WHITE,{1.75,1.75});
pge->DrawStringDecal(displayPos+vf2d{320,80},"Requires:");
float yOffset=0;
for(std::pair<std::string,int>&item:selectedItem->requiredItems){
data = IDToName[item.first];
data.DrawIcon(pge,displayPos+vf2d{320,92+yOffset});
float stringWidth=pge->GetTextSizeProp(data.name).x*2;
if(stringWidth>PANEL_WIDTH-356){
float scale=(PANEL_WIDTH-356)/stringWidth;
pge->DrawStringPropDecal(displayPos+vf2d{356,92+yOffset},data.name,WHITE,{2*scale,2});
} else {
pge->DrawStringPropDecal(displayPos+vf2d{356,92+yOffset},data.name,WHITE,{2,2});
}
pge->DrawStringPropDecal(displayPos+vf2d{360,110+yOffset},"x "+std::to_string(item.second),WHITE,{1.75,1.75});
yOffset+=36;
}
}
manager.DrawDecal(pge); manager.DrawDecal(pge);
return true; return true;
} }
@ -380,6 +291,7 @@ public:
sAppName = "Fiesta Crafting Calculator"; sAppName = "Fiesta Crafting Calculator";
} }
static Renderable ProdIcon,CloseIcon,CloseBackIcon,ProductionIcons,CollectibleIcons,CollectibleIcons2,GradeIcons;
public: public:
std::string slurp(std::ifstream& in) { std::string slurp(std::ifstream& in) {
std::ostringstream sstr; std::ostringstream sstr;
@ -453,6 +365,10 @@ public:
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);
CloseBackIcon.Load("assets/button_mask.png",nullptr,true); CloseBackIcon.Load("assets/button_mask.png",nullptr,true);
ProductionIcons.Load("assets/production_icons.png",nullptr,true);
CollectibleIcons.Load("assets/collectibles.png",nullptr,true);
CollectibleIcons2.Load("assets/collectibles2.png",nullptr,true);
GradeIcons.Load("assets/grade.png",nullptr,true);
calculators.push_back(new Calculator()); calculators.push_back(new Calculator());
return true; return true;
} }
@ -478,8 +394,195 @@ public:
} }
}; };
Renderable FiestaCraftingCalculator::ProdIcon,FiestaCraftingCalculator::CloseIcon,FiestaCraftingCalculator::CloseBackIcon; Renderable FiestaCraftingCalculator::ProdIcon,FiestaCraftingCalculator::CloseIcon,FiestaCraftingCalculator::CloseBackIcon,FiestaCraftingCalculator::ProductionIcons,FiestaCraftingCalculator::CollectibleIcons,FiestaCraftingCalculator::CollectibleIcons2,FiestaCraftingCalculator::GradeIcons;
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::PotionProdRecipes;
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::StoneProdRecipes;
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::ScrollProdRecipes;
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::CompRecipes;
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::DecompRecipes;
std::map<std::string,FiestaCraftingCalculator::ItemData>FiestaCraftingCalculator::IDToName={
{"El1",{"Elrue [1]",{0,0,0},{6,2},PRODUCTION,GRADE1}},
{"El2",{"Elrue [2]",{0,0,0},{6,2},PRODUCTION,GRADE2}},
{"El3",{"Elrue [3]",{0,0,0},{6,2},PRODUCTION,GRADE3}},
{"El4",{"Elrue [4]",{0,0,0},{6,2},PRODUCTION,GRADE4}},
{"El5",{"Elrue [5]",{0,0,0},{6,2},PRODUCTION,GRADE5}},
{"Lix1",{"Lix [1]",{0,0,0},{1,3},PRODUCTION,GRADE1}},
{"Lix2",{"Lix [2]",{0,0,0},{1,3},PRODUCTION,GRADE2}},
{"Lix3",{"Lix [3]",{0,0,0},{1,3},PRODUCTION,GRADE3}},
{"Lix4",{"Lix [4]",{0,0,0},{1,3},PRODUCTION,GRADE4}},
{"Lix5",{"Lix [5]",{0,0,0},{1,3},PRODUCTION,GRADE5}},
{"Xir1",{"Xir [1]",{0,0,0},{4,3},PRODUCTION,GRADE1}},
{"Xir2",{"Xir [2]",{0,0,0},{4,3},PRODUCTION,GRADE2}},
{"Xir3",{"Xir [3]",{0,0,0},{4,3},PRODUCTION,GRADE3}},
{"Xir4",{"Xir [4]",{0,0,0},{4,3},PRODUCTION,GRADE4}},
{"Xir5",{"Xir [5]",{0,0,0},{4,3},PRODUCTION,GRADE5}},
{"BestLowHpPotion",{"HP Potion (Tier 1)",{0,0,0},{0,0},PRODUCTION}},
{"LowHpPotion",{"HP Potion (Tier 2)",{0,0,0},{0,0},PRODUCTION,GRADEL}},
{"NorHpPotion",{"HP Potion (Tier 3)",{0,0,0},{1,0},PRODUCTION,GRADEM}},
{"HighHpPotion",{"HP Potion (Tier 4)",{0,0,0},{1,0},PRODUCTION,GRADEH}},
{"BestHighHpPotion",{"HP Potion (Tier 5)",{0,0,0},{2,0},PRODUCTION}},
{"BestLowSpPotion",{"SP Potion (Tier 1)",{0,0,0},{3,0},PRODUCTION}},
{"LowSpPotion",{"SP Potion (Tier 2)",{0,0,0},{3,0},PRODUCTION,GRADEL}},
{"NorSpPotion",{"SP Potion (Tier 3)",{0,0,0},{4,0},PRODUCTION,GRADEM}},
{"HighSpPotion",{"SP Potion (Tier 4)",{0,0,0},{4,0},PRODUCTION,GRADEH}},
{"BestHighSpPotion",{"SP Potion (Tier 5)",{0,0,0},{5,0},PRODUCTION}},
{"BestLowConHPPotion",{"HP Regeneration Potion (Tier 1)",{0,0,0},{0,0},PRODUCTION}},
{"LowConHPPotion",{"HP Regeneration Potion (Tier 2)",{0,0,0},{0,0},PRODUCTION,GRADEL}},
{"NorConHPPotion",{"HP Regeneration Potion (Tier 3)",{0,0,0},{1,0},PRODUCTION,GRADEM}},
{"HighConHPPotion",{"HP Regeneration Potion (Tier 4)",{0,0,0},{1,0},PRODUCTION,GRADEH}},
{"BestHighConHPPotion",{"HP Regeneration Potion (Tier 5)",{0,0,0},{2,0},PRODUCTION}},
{"BestLowConSPPotion",{"SP Regeneration Potion (Tier 1)",{0,0,0},{3,0},PRODUCTION}},
{"LowConSPPotion",{"SP Regeneration Potion (Tier 2)",{0,0,0},{3,0},PRODUCTION,GRADEL}},
{"NorConSPPotion",{"SP Regeneration Potion (Tier 3)",{0,0,0},{4,0},PRODUCTION,GRADEM}},
{"HighConSPPotion",{"SP Regeneration Potion (Tier 4)",{0,0,0},{4,0},PRODUCTION,GRADEH}},
{"BestHighConSPPotion",{"SP Regeneration Potion (Tier 5)",{0,0,0},{5,0},PRODUCTION}},
{"BestLowTHScroll",{"Aim(Tier 1)",{0,0,0},{4,1},PRODUCTION}},
{"LowTHScroll",{"Aim(Tier 2)",{0,0,0},{4,1},PRODUCTION,GRADEL}},
{"NorTHScroll",{"Aim(Tier 3)",{0,0,0},{4,1},PRODUCTION,GRADEM}},
{"HighTHScroll",{"Aim(Tier 4)",{0,0,0},{4,1},PRODUCTION,GRADEH}},
{"BestHighTHScroll",{"Aim(Tier 5)",{0,0,0},{4,1},PRODUCTION}},
{"BestLowTBScroll",{"Nature's Agility (Tier 1)",{0,0,0},{5,1},PRODUCTION}},
{"LowTBScroll",{"Nature's Agility (Tier 2)",{0,0,0},{5,1},PRODUCTION,GRADEL}},
{"NorTBScroll",{"Nature's Agility (Tier 3)",{0,0,0},{5,1},PRODUCTION,GRADEM}},
{"HighTBScroll",{"Nature's Agility (Tier 4)",{0,0,0},{5,1},PRODUCTION,GRADEH}},
{"BestHighTBScroll",{"Nature's Agility (Tier 5)",{0,0,0},{5,1},PRODUCTION}},
{"BestLowMRScroll",{"Magical Defense (Tier 1)",{0,0,0},{6,1},PRODUCTION}},
{"LowMRScroll",{"Magical Defense (Tier 2)",{0,0,0},{6,1},PRODUCTION,GRADEL}},
{"NorMRScroll",{"Magical Defense (Tier 3)",{0,0,0},{6,1},PRODUCTION,GRADEM}},
{"HighMRScroll",{"Magical Defense (Tier 4)",{0,0,0},{6,1},PRODUCTION,GRADEH}},
{"BestHighMRScroll",{"Magical Defense (Tier 5)",{0,0,0},{6,1},PRODUCTION}},
{"BestLowACScroll",{"Shield Increase (Tier 1)",{0,0,0},{6,1},PRODUCTION}},
{"LowACScroll",{"Shield Increase (Tier 2)",{0,0,0},{6,1},PRODUCTION,GRADEL}},
{"NorACScroll",{"Shield Increase (Tier 3)",{0,0,0},{6,1},PRODUCTION,GRADEM}},
{"HighACScroll",{"Shield Increase (Tier 4)",{0,0,0},{6,1},PRODUCTION,GRADEH}},
{"BestHighACScroll",{"Shield Increase (Tier 5)",{0,0,0},{6,1},PRODUCTION}},
{"BestLowMaxHPScroll",{"Vitality (Tier 1)",{0,0,0},{0,2},PRODUCTION}},
{"LowMaxHPScroll",{"Vitality (Tier 2)",{0,0,0},{0,2},PRODUCTION,GRADEL}},
{"NorMaxHPScroll",{"Vitality (Tier 3)",{0,0,0},{0,2},PRODUCTION,GRADEM}},
{"HighMaxHPScroll",{"Vitality (Tier 4)",{0,0,0},{0,2},PRODUCTION,GRADEH}},
{"BestHighMaxHPScroll",{"Vitality (Tier 5)",{0,0,0},{0,2},PRODUCTION}},
{"BestLowMaxSPScroll",{"Mentality (Tier 1)",{0,0,0},{1,2},PRODUCTION}},
{"LowMaxSPScroll",{"Mentality (Tier 2)",{0,0,0},{1,2},PRODUCTION,GRADEL}},
{"NorMaxSPScroll",{"Mentality (Tier 3)",{0,0,0},{1,2},PRODUCTION,GRADEM}},
{"HighMaxSPScroll",{"Mentality (Tier 4)",{0,0,0},{1,2},PRODUCTION,GRADEH}},
{"BestHighMaxSPScroll",{"Mentality (Tier 5)",{0,0,0},{1,2},PRODUCTION}},
{"NorMSScroll",{"Speed Increase (Tier 3)",{0,0,0},{1,2},PRODUCTION,GRADEM}},
{"LowMSScroll",{"Speed Increase (Tier 2)",{0,0,0},{1,2},PRODUCTION,GRADEL}},
{"HighMSScroll",{"Speed Increase (Tier 4)",{0,0,0},{1,2},PRODUCTION,GRADEH}},
{"BestMSScroll",{"Speed Increase (Tier 5)",{0,0,0},{1,2},PRODUCTION}},
{"BestLowMSScroll",{"Speed Increase (Tier 1)",{0,0,0},{1,2},PRODUCTION}},
{"LowPsnResiPotion",{"Antitoxin (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}},
{"NorPsnResiPotion",{"Antitoxin (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}},
{"HighPsnResiPotion",{"Antitoxin (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}},
{"LowDssResiPotion",{"Antibiotic (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}},
{"NorDssResiPotion",{"Antibiotic (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}},
{"HighDssResiPotion",{"Antibiotic (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}},
{"LowCurResiPotion",{"Bless (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}},
{"NorCurResiPotion",{"Bless (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}},
{"HighCurResiPotion",{"Bless (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}},
{"LowPsnCurPotion",{"Antidote (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}},
{"NorPsnCurPotion",{"Antidote (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}},
{"HighPsnCurPotion",{"Antidote (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}},
{"LowDssCurPotion",{"Cure (Tier 1)",{0,0,0},{6,0},PRODUCTION,GRADEL}},
{"NorDssCurPotion",{"Cure (Tier 2)",{0,0,0},{7,0},PRODUCTION,GRADEM}},
{"HighDssCurPotion",{"Cure (Tier 3)",{0,0,0},{0,1},PRODUCTION,GRADEH}},
{"BestLowCurScroll",{"Divine Magic (Tier 1)",{0,0,0},{2,2},PRODUCTION}},
{"LowCurScroll",{"Divine Magic (Tier 2)",{0,0,0},{2,2},PRODUCTION,GRADEL}},
{"NorCurScroll",{"Divine Magic (Tier 3)",{0,0,0},{2,2},PRODUCTION,GRADEM}},
{"HighCurScroll",{"Divine Magic (Tier 4)",{0,0,0},{2,2},PRODUCTION,GRADEH}},
{"BestHighCurScroll",{"Divine Magic (Tier 5)",{0,0,0},{2,2},PRODUCTION}},
{"NorBeastLeather",{"Beast Leather (Normal Quality)",{255,255,0},{7,1}}},
{"HighBeastLeather",{"Beast Leather (High Quality)",{0,255,0},{0,2}}},
{"BeastHead",{"Beast Head",{0,255,255},{1,2}}},
{"NorBeastTooth",{"Beast Dogtooth (Normal Quality)",{255,255,0},{5,1}}},
{"HighBeastTooth",{"Beast Dogtooth (High Quality)",{0,255,0},{6,1}}},
{"NorBrokenBone",{"Bone (Normal Quality)",{255,255,0},{4,0}}},
{"HighBrokenBone",{"Bone (High Quality)",{0,255,0},{4,0}}},
{"BestBrokenBone",{"Bone (Highest Quality)",{0,255,255},{4,0}}},
{"NorCleanWater",{"Spirit's Nectar (Normal Quality)",{255,255,0},{7,5}}},
{"HighCleanWater",{"Spirit's Nectar (High Quality)",{0,255,0},{0,6}}},
{"BestCleanWater",{"Spirit's Nectar (Highest Quality)",{0,255,255},{0,6}}},
{"IronBadge",{"Iron Badge",{255,255,0},{2,4}}},
{"NorCopperOre",{"Copper Ore (Normal Quality)",{255,255,0},{4,4}}},
{"HighCopperOre",{"Copper Ore (High Quality)",{0,255,0},{5,4}}},
{"NorGemDust",{"Gem Dust (Normal Quality)",{255,255,0},{6,0}}},
{"HighGemDust",{"Gem Dust (High Quality)",{0,255,0},{6,0}}},
{"BestGemDust",{"Gem Dust (Highest Quality)",{0,255,255},{6,0}}},
{"Violet",{"Vilolet",{0,0,0},{1,1},COLLECTIBLE2}},
{"Ramsear",{"Ramsear",{0,0,0},{1,1},COLLECTIBLE2}},
{"Salvia",{"Eucalyptus",{255,255,255},{5,7}}},
{"LowGoldOre",{"Gold Ore (Low Quality)",{255,255,255},{1,6}}},
{"NorGoldOre",{"Gold Ore (Normal Quality)",{255,255,0},{2,6}}},
{"HighGoldOre",{"Gold Ore (High Quality)",{0,255,0},{3,6}}},
{"NorKylinLeather",{"Summoned Beast Leather (Normal Quality)",{255,255,0},{3,2}}},
{"HighKylinLeather",{"Summoned Beast Leather (High Quality)",{0,255,0},{4,2}}},
{"KylinTooth",{"Summoned Beast's Tooth",{0,255,0},{7,2}}},
{"MermaidScale",{"Mermaid's Scale",{0,0,0},{2,3}}},
{"KylinFighterTail",{"Summoned Beast Fighter's Tail",{255,255,0},{6,2}}},
{"NorMagicCrystal",{"Magic Crystal (Normal Quality)",{255,255,0},{4,5}}},
{"HighMagicCrystal",{"Magic Crystal (High Quality)",{0,255,0},{5,5}}},
{"BestMagicCrystal",{"Magic Crystal (Highest Quality)",{0,255,255},{5,5}}},
{"NorMeat",{"Meat (Normal Quality)",{255,255,0},{1,0}}},
{"HighMeat",{"Meat (High Quality)",{0,255,0},{1,0}}},
{"BestMeat",{"Meat (Highest Quality)",{0,255,255},{1,0}}},
{"NorMushrooms",{"Mushroom (Normal Quality)",{255,255,0},{4,3}}},
{"HighMushrooms",{"Mushroom (High Quality)",{0,255,0},{4,3}}},
{"BestMushrooms",{"Mushroom (Highest Quality)",{0,255,255},{4,3}}},
{"NorPledge",{"Sign (Normal Quality)",{255,255,0},{3,0}}},
{"HighPledge",{"Sign (High Quality)",{0,255,0},{3,0}}},
{"BestPledge",{"Sign (Highest Quality)",{0,255,255},{3,0}}},
{"Rosemary",{"Rosemary",{0,255,0},{4,7}}},
{"Basil",{"Basil",{0,255,255},{5,7}}},
{"Marigold",{"Marigold",{0,0,255},{6,7}}},
{"LowSilverOre",{"Silver Ore (Low Quality)",{255,255,255},{6,4}}},
{"NorSilverOre",{"Silver Ore (Normal Quality)",{255,255,0},{7,4}}},
{"HighSilverOre",{"Silver Ore (High Quality)",{0,255,0},{0,5}}},
{"NorSkin",{"Leather (Normal Quality)",{255,255,0},{5,0}}},
{"HighSkin",{"Leather (High Quality)",{0,255,0},{5,0}}},
{"BestSkin",{"Leather (Highest Quality)",{0,255,255},{5,0}}},
{"NorSoulDust",{"Soul Dust (Normal Quality)",{255,255,0},{2,1}}},
{"HighSoulDust",{"Soul Dust (High Quality)",{0,255,0},{2,1}}},
{"BestSoulDust",{"Soul Dust (Highest Quality)",{0,255,255},{2,1}}},
{"NorSpiritDust",{"Spirit Dust (Normal Quality)",{255,255,0},{0,0}}},
{"HighSpiritDust",{"Spirit Dust (High Quality)",{0,255,0},{0,0}}},
{"BestSpiritDust",{"Spirit Dust (Highest Quality)",{0,255,255},{0,0}}},
{"NorToadStool",{"Toadstool (Normal Quality)",{255,255,0},{3,3}}},
{"HighToadStool",{"Toadstool (High Quality)",{0,255,0},{3,3}}},
{"BestToadStool",{"Toadstool (Highest Quality)",{0,255,255},{3,3}}},
{"Ruby",{"Ruby",{255,255,0},{2,5}}},
{"Sapphire",{"Sapphire",{0,255,0},{4,6}}},
{"NorWoodSab",{"Sap (Normal Quality)",{255,255,0},{6,6}}},
{"HighWoodSab",{"Sap (High Quality)",{0,255,0},{7,6}}},
{"BestWoodSab",{"Sap (Highest Quality)",{0,255,255},{0,7}}},
{"LowBeastLeather",{"Beast Leather (Low Quality)",{255,255,255},{7,1}}},
{"LowBeastTooth",{"Beast Dogtooth (Low Quality)",{255,255,255},{4,1}}},
{"LowBrokenBone",{"Bone (Low Quality)",{255,255,255},{4,0}}},
{"LowCleanWater",{"Spirit's Nectar (Low Quality)",{255,255,255},{6,5}}},
{"CommanderBadge",{"Master Commander's Badge",{255,255,255},{1,4}}},
{"LowCopperOre",{"Copper Ore (Low Quality)",{255,255,255},{3,4}}},
{"LowGemDust",{"Gem Dust (Low Quality)",{255,255,255},{6,0}}},
{"Geranium",{"Geranium",{0,0,0},{1,1},COLLECTIBLE2}},
{"LowKylinLeather",{"Summoned Beast Leather (Low Quality)",{255,255,255},{2,2}}},
{"KylinTail",{"Summoned Beast's Tail",{255,255,255},{5,2}}},
{"LowMagicCrystal",{"Magic Crystal (Low Quality)",{255,255,255},{3,5}}},
{"LowMeat",{"Meat (Low Quality)",{255,255,255},{1,0}}},
{"LowMushrooms",{"Mushroom (Low Quality)",{255,255,255},{4,3}}},
{"LowPledge",{"Sign (Low Quality)",{255,255,255},{3,0}}},
{"Sage",{"Sage",{255,255,0},{3,7}}},
{"LowSkin",{"Leather (Low Quality)",{255,255,255},{5,0}}},
{"LowSoulDust",{"Soul Dust (Low Quality)",{255,255,255},{2,1}}},
{"LowSpiritDust",{"Spirit Dust (Low Quality)",{255,255,255},{0,0}}},
{"LowToadStool",{"Toadstool (Low Quality)",{255,255,255},{3,3}}},
{"Topaz",{"Topaz",{255,255,255},{1,5}}},
{"LowWoodSab",{"Sap (Low Quality)",{255,255,255},{5,6}}},
{"LowSlimeJelly",{"Slime Jelly (Low Quality)",{255,255,255},{0,3}}},
{"HighSlimeJelly",{"Slime Jelly (High Quality)",{255,255,0},{1,3}}},
{"Converter1",{"Alchemy Stone[1]",{255,255,255},{4,2},PRODUCTION}},
{"Converter3",{"Alchemy Stone[3]",{0,255,0},{4,2},PRODUCTION}},
{"Converter5",{"Alchemy Stone[5]",{0,255,255},{4,2},PRODUCTION}},
{"Converter2",{"Alchemy Stone[2]",{255,255,0},{4,2},PRODUCTION}},
{"Converter4",{"Alchemy Stone[4]",{0,255,255},{4,2},PRODUCTION}},
};
int main() int main()
{ {
FiestaCraftingCalculator calculator; FiestaCraftingCalculator calculator;

@ -5028,16 +5028,8 @@ namespace olc
glGenTextures(1, &id); glGenTextures(1, &id);
glBindTexture(GL_TEXTURE_2D, id); glBindTexture(GL_TEXTURE_2D, id);
if (filtered) glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
{ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
}
else
{
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
}
if (clamp) if (clamp)
{ {

Loading…
Cancel
Save