Refactor completed using new item lists.

master
sigonasr2 1 year ago
parent 220920b172
commit ee01343c4e
  1. 99
      FiestaCraftingCalculator/FiestaCraftingCalculator.cpp
  2. 2
      FiestaCraftingCalculator/FiestaCraftingCalculator.vcxproj
  3. 15161
      FiestaCraftingCalculator/assets/ItemInfo.txt
  4. BIN
      FiestaCraftingCalculator/assets/Prdct000.png
  5. 34
      FiestaCraftingCalculator/assets/Produce.txt
  6. 24
      FiestaCraftingCalculator/olcPixelGameEngine.h

@ -1,4 +1,3 @@
#define OLC_PGE_HEADLESS
#define OLC_PGE_APPLICATION #define OLC_PGE_APPLICATION
#include "olcPixelGameEngine.h" #include "olcPixelGameEngine.h"
#define OLC_PGEX_QUICKGUI #define OLC_PGEX_QUICKGUI
@ -17,15 +16,13 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
struct ItemData{ struct ItemData{
std::string name; std::string name;
Pixel borderCol; Pixel borderCol;
vi2d tilesheetPos={0,0};
std::pair<std::string,int> img; std::pair<std::string,int> img;
std::pair<std::string,int> grade; std::pair<std::string,int> grade;
void DrawIcon(PixelGameEngine*pge,vf2d pos){ void DrawIcon(PixelGameEngine*pge,vf2d pos){
Renderable*r=FilePathToImage[img.first]; Renderable*r=FilePathToImage[img.first];
tilesheetPos={img.second%7,img.second/7}; pge->DrawPartialDecal(pos,{32,32},r->Decal(),vi2d{img.second%8,img.second/8}*32,{32,32});
pge->DrawPartialDecal(pos,{32,32},r->Decal(),tilesheetPos*32,{32,32});
if(grade.first!="-"){ if(grade.first!="-"){
pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),vi2d{grade.second%7,grade.second/7}*32,{32,32}); pge->DrawPartialDecal(pos,FiestaCraftingCalculator::GradeIcons.Decal(),vi2d{grade.second%8,grade.second/8}*32,{32,32});
} }
pge->DrawRectDecal(pos,{32,32},borderCol); pge->DrawRectDecal(pos,{32,32},borderCol);
} }
@ -47,10 +44,16 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
ProduceIndex=data[1]; ProduceIndex=data[1];
DisplayName=data[2]; DisplayName=data[2];
Product=data[3]; Product=data[3];
if(IDToName.find(Product)==IDToName.end()){
IDToName[Product]=ItemData();
}
amt=stoi(data[4]); amt=stoi(data[4]);
for(int i=5;i<=20;i+=2){ for(int i=5;i<=20;i+=2){
if(data[i].size()>1){ if(data[i].size()>1){
requiredItems.push_back({data[i],stoi(data[i+1])}); requiredItems.push_back({data[i],stoi(data[i+1])});
if(IDToName.find(data[i])==IDToName.end()){
IDToName[data[i]]=ItemData();
}
} }
} }
expGained=stoi(data[22]); expGained=stoi(data[22]);
@ -86,11 +89,11 @@ class FiestaCraftingCalculator : public olc::PixelGameEngine
static bool disabledAllCalculators; static bool disabledAllCalculators;
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::ProductionIcons,false,displayPos+vi2d{10,10},{40,40},{192,128},{32,32});
StoneProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProdIcon,false,displayPos+vi2d{55,10},{40,40},{0,160},{32,32}); StoneProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProductionIcons,false,displayPos+vi2d{55,10},{40,40},{0,160},{32,32});
ScrollProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProdIcon,false,displayPos+vi2d{100,10},{40,40},{224,128},{32,32}); ScrollProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProductionIcons,false,displayPos+vi2d{100,10},{40,40},{224,128},{32,32});
CompProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProdIcon,false,displayPos+vi2d{145,10},{40,40},{96,160},{32,32}); CompProd=new ImageCheckBox(manager,FiestaCraftingCalculator::ProductionIcons,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::ProductionIcons,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},{300,140},16); RecipeList=new ListBox(manager,recipeItems,displayPos+vi2d{10,90},{300,140},16);
Amount=new TextBox(manager,"1",displayPos+vi2d{356,10},{68,24},{2,2}); Amount=new TextBox(manager,"1",displayPos+vi2d{356,10},{68,24},{2,2});
@ -281,7 +284,7 @@ public:
static std::vector<Calculator*>calculators; static std::vector<Calculator*>calculators;
Manager manager; Manager manager;
Button*AddButton; Button*AddButton;
static Renderable ProdIcon,CloseIcon,CloseBackIcon,ProductionIcons,CollectibleIcons,CollectibleIcons2,GradeIcons,PlusIcon,PlusBackIcon; static Renderable CloseIcon,CloseBackIcon,ProductionIcons,CollectibleIcons,CollectibleIcons2,GradeIcons,PlusIcon,PlusBackIcon;
public: public:
std::string slurp(std::ifstream& in) { std::string slurp(std::ifstream& in) {
std::ostringstream sstr; std::ostringstream sstr;
@ -302,7 +305,7 @@ public:
// 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::ifstream file=std::ifstream("assets/Produce.txt");
std::string fileContents=slurp(file); std::string fileContents=slurp(file);
fileContents+='\n';//HACK ALERT! Our parser does not deal with data until a '\n' character occurs. If the file has no \n on the last line, we won't process it. This hack fixes that.
std::string column=""; std::string column="";
std::vector<std::string>data; std::vector<std::string>data;
//HACK ALERT! If the number of recipes for any of these exceeds 300, a reallocation occurs and all pointers move... //HACK ALERT! If the number of recipes for any of these exceeds 300, a reallocation occurs and all pointers move...
@ -359,8 +362,9 @@ public:
} }
} }
file=std::ifstream("assets/Produce.txt"); file=std::ifstream("assets/ItemViewinfo.txt");
fileContents=slurp(file); fileContents=slurp(file);
fileContents+='\n';//HACK ALERT! Our parser does not deal with data until a '\n' character occurs. If the file has no \n on the last line, we won't process it. This hack fixes that.
column=""; column="";
data.clear(); data.clear();
for(int i=0;i<fileContents.size();i++){ for(int i=0;i<fileContents.size();i++){
@ -378,29 +382,14 @@ public:
} }
return false; return false;
} else { } else {
Recipe r(data); //Recipe r(data);
int index=stoi(data[0]); std::string product=data[1];
Recipe*foundRecipe; if(IDToName.find(product)!=IDToName.end()){
if(StoneProdRecipeLink.find(index)!=StoneProdRecipeLink.end()){ IDToName[product]=ItemData{product,{uint8_t(stoi(data[8])),uint8_t(stoi(data[9])),uint8_t(stoi(data[10]))},{data[3],stoi(data[2])},{data[5],stoi(data[4])}};
foundRecipe=StoneProdRecipeLink[index]; goto quitLoop;
} else
if(PotionProdRecipeLink.find(index)!=PotionProdRecipeLink.end()){
foundRecipe=PotionProdRecipeLink[index];
} else
if(ScrollProdRecipeLink.find(index)!=ScrollProdRecipeLink.end()){
foundRecipe=ScrollProdRecipeLink[index];
} else
if(CompRecipeLink.find(index)!=CompRecipeLink.end()){
foundRecipe=CompRecipeLink[index];
} else
if(DecompRecipeLink.find(index)!=DecompRecipeLink.end()){
foundRecipe=DecompRecipeLink[index];
} }
ItemData&item=IDToName[foundRecipe->ProduceIndex];
item.borderCol={uint8_t(stoi(data[8])),uint8_t(stoi(data[9])),uint8_t(stoi(data[10]))};
item.img={data[3],stoi(data[2])};
item.grade={data[5],stoi(data[4])};
} }
quitLoop:
data.clear(); data.clear();
} else { } else {
column+=fileContents[i]; column+=fileContents[i];
@ -408,6 +397,38 @@ public:
} }
file=std::ifstream("assets/ItemInfo.txt");
fileContents=slurp(file);
fileContents+='\n';//HACK ALERT! Our parser does not deal with data until a '\n' character occurs. If the file has no \n on the last line, we won't process it. This hack fixes that.
column="";
data.clear();
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()!=57){
std::cout<<"Data size was "<<data.size()<<"! Expected 57 columns..."<<std::endl;
for(int i=0;i<data.size();i++){
std::cout<<"Col "<<i+1<<":"<<data[i]<<std::endl;
}
return false;
} else {
//Recipe r(data);
std::string product=data[1];
if(IDToName.find(product)!=IDToName.end()){
IDToName[product].name=data[2];
}
}
data.clear();
} else {
column+=fileContents[i];
}
}
std::sort(StoneProdRecipes.begin(),StoneProdRecipes.end(),[](Recipe&r1,Recipe&r2){return r1.requiredExp<r2.requiredExp;}); 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(PotionProdRecipes.begin(),PotionProdRecipes.end(),[](Recipe&r1,Recipe&r2){return r1.requiredExp<r2.requiredExp;});
@ -422,14 +443,14 @@ public:
std::cout<<" "<<CompRecipes.size()<<" Composition Recipes"<<std::endl; std::cout<<" "<<CompRecipes.size()<<" Composition Recipes"<<std::endl;
std::cout<<" "<<DecompRecipes.size()<<" Decomposition Recipes"<<std::endl; std::cout<<" "<<DecompRecipes.size()<<" Decomposition Recipes"<<std::endl;
ProdIcon.Load("assets/production_icons.png",nullptr,true); ProductionIcons.Load("assets/Prdct000.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);
CloseBackIcon.Load("assets/button_mask.png",nullptr,true); CloseBackIcon.Load("assets/button_mask.png",nullptr,true);
ProductionIcons.Load("assets/production_icons.png",nullptr,true); ProductionIcons.Load("assets/production_icons.png",nullptr,true);
CollectibleIcons.Load("assets/collectibles.png",nullptr,true); CollectibleIcons.Load("assets/Cllct000.png",nullptr,true);
CollectibleIcons2.Load("assets/collectibles2.png",nullptr,true); CollectibleIcons2.Load("assets/QstItem000.png",nullptr,true);
GradeIcons.Load("assets/grade.png",nullptr,true); GradeIcons.Load("assets/ItemGrade.png",nullptr,true);
PlusIcon.Load("assets/plus_button.png",nullptr,true); PlusIcon.Load("assets/plus_button.png",nullptr,true);
PlusBackIcon.Load("assets/button_plus_mask.png",nullptr,true); PlusBackIcon.Load("assets/button_plus_mask.png",nullptr,true);
calculators.push_back(new Calculator()); calculators.push_back(new Calculator());
@ -480,7 +501,7 @@ public:
} }
}; };
Renderable FiestaCraftingCalculator::ProdIcon,FiestaCraftingCalculator::CloseIcon,FiestaCraftingCalculator::CloseBackIcon,FiestaCraftingCalculator::ProductionIcons,FiestaCraftingCalculator::CollectibleIcons,FiestaCraftingCalculator::CollectibleIcons2,FiestaCraftingCalculator::GradeIcons,FiestaCraftingCalculator::PlusIcon,FiestaCraftingCalculator::PlusBackIcon; Renderable FiestaCraftingCalculator::CloseIcon,FiestaCraftingCalculator::CloseBackIcon,FiestaCraftingCalculator::ProductionIcons,FiestaCraftingCalculator::CollectibleIcons,FiestaCraftingCalculator::CollectibleIcons2,FiestaCraftingCalculator::GradeIcons,FiestaCraftingCalculator::PlusIcon,FiestaCraftingCalculator::PlusBackIcon;
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::PotionProdRecipes; std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::PotionProdRecipes;
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::StoneProdRecipes; std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::StoneProdRecipes;
std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::ScrollProdRecipes; std::vector<FiestaCraftingCalculator::Recipe> FiestaCraftingCalculator::ScrollProdRecipes;

@ -76,6 +76,7 @@
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>
@ -90,6 +91,7 @@
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode> <ConformanceMode>true</ConformanceMode>
<LanguageStandard>stdcpp17</LanguageStandard>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Console</SubSystem> <SubSystem>Console</SubSystem>

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 113 KiB

@ -15,12 +15,12 @@
20014 Recipe_Xir5 Alchemy: Xir [5] Xir5 1 Lix5 3 HighGoldOre 3 Sapphire 1 - 0 - 0 - 0 - 0 - 0 0 0 0 100000 20014 Recipe_Xir5 Alchemy: Xir [5] Xir5 1 Lix5 3 HighGoldOre 3 Sapphire 1 - 0 - 0 - 0 - 0 - 0 0 0 0 100000
20100 Recipe_BestLowHpPotion Alchemy: HP Potion (Tier 1) BestLowHpPotion 1 LowMeat 2 LowCleanWater 1 - 0 - 0 - 0 - 0 - 0 - 0 1 2 1 0 20100 Recipe_BestLowHpPotion Alchemy: HP Potion (Tier 1) BestLowHpPotion 1 LowMeat 2 LowCleanWater 1 - 0 - 0 - 0 - 0 - 0 - 0 1 2 1 0
20101 Recipe_LowHpPotion Alchemy: HP Potion (Tier 2) LowHpPotion 1 LowMeat 3 NorCleanWater 2 NorPledge 2 Geranium 1 - 0 - 0 - 0 - 0 1 3 1 1000 20101 Recipe_LowHpPotion Alchemy: 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 Alchemy: HP Potion (Tier 3) NorHpPotion 1 NorMeat 3 NorCleanWater 2 NorPledge 3 Violet 1 - 0 - 0 - 0 - 0 1 5 1 11800 20102 Recipe_NorHpPotion Alchemy: HP Potion (Tier 3) NorHpPotion 1 NorMeat 3 NorCleanWater 2 NorPledge 3 Violet 1 - 0 - 0 - 0 - 0 1 5 1 10800
20103 Recipe_HighHpPotion Alchemy: HP Potion (Tier 4) HighHpPotion 1 HighMeat 2 HighCleanWater 2 HighPledge 3 Ramsear 1 - 0 - 0 - 0 - 0 1 12 1 33300 20103 Recipe_HighHpPotion Alchemy: 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 Alchemy: HP Potion (Tier 5) BestHighHpPotion 1 BestMeat 3 BestCleanWater 3 BestPledge 2 Salvia 1 - 0 - 0 - 0 - 0 1 20 1 83000 20104 Recipe_BestHighHpPotion Alchemy: 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 Alchemy: Sp Potion (Tier 1) BestLowSpPotion 1 LowMeat 1 LowMagicCrystal 2 - 0 - 0 - 0 - 0 - 0 - 0 1 2 1 0 20105 Recipe_BestLowSpPotion Alchemy: Sp Potion (Tier 1) BestLowSpPotion 1 LowMeat 1 LowMagicCrystal 2 - 0 - 0 - 0 - 0 - 0 - 0 1 2 1 0
20106 Recipe_LowSpPotion Alchemy: Sp Potion (Tier 2) LowSpPotion 1 NorMeat 1 NorMagicCrystal 1 NorPledge 2 Geranium 1 - 0 - 0 - 0 - 0 1 3 1 1000 20106 Recipe_LowSpPotion Alchemy: 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 Alchemy: Sp Potion (Tier 3) NorSpPotion 1 HighMeat 1 NorMagicCrystal 1 NorPledge 1 Violet 1 - 0 - 0 - 0 - 0 1 4 1 11800 20107 Recipe_NorSpPotion Alchemy: Sp Potion (Tier 3) NorSpPotion 1 HighMeat 1 NorMagicCrystal 1 NorPledge 1 Violet 1 - 0 - 0 - 0 - 0 1 4 1 10800
20108 Recipe_HighSpPotion Alchemy: Sp Potion (Tier 4) HighSpPotion 1 BestMeat 1 HighMagicCrystal 1 HighPledge 3 Ramsear 1 - 0 - 0 - 0 - 0 1 10 1 33700 20108 Recipe_HighSpPotion Alchemy: 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 Alchemy: Sp Potion (Tier 5) BestHighSpPotion 1 BestMeat 3 BestMagicCrystal 2 BestPledge 2 Salvia 1 - 0 - 0 - 0 - 0 1 19 1 74000 20109 Recipe_BestHighSpPotion Alchemy: 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 Alchemy: HP Regeneration Potion (Tier 1) BestLowConHPPotion 1 LowMeat 1 LowCleanWater 1 LowPledge 1 - 0 - 0 - 0 - 0 - 0 1 2 1 150 20110 Recipe_BestLowConHPPotion Alchemy: HP Regeneration Potion (Tier 1) BestLowConHPPotion 1 LowMeat 1 LowCleanWater 1 LowPledge 1 - 0 - 0 - 0 - 0 - 0 1 2 1 150
@ -69,17 +69,17 @@
20553 Recipe_BestMSScroll Alchemy: Speed Increase (Tier 5) BestMSScroll 1 BestSkin 4 HighSlimeJelly 6 KylinFighterTail 3 BestMushrooms 1 - 0 - 0 - 0 - 0 2 27 2 92000 20553 Recipe_BestMSScroll Alchemy: 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 Alchemy: Speed Increase (Tier 1) BestLowMSScroll 1 LowSkin 3 LowBeastLeather 1 LowBeastTooth 2 - 0 - 0 - 0 - 0 - 0 2 2 2 300 20554 Recipe_BestLowMSScroll Alchemy: Speed Increase (Tier 1) BestLowMSScroll 1 LowSkin 3 LowBeastLeather 1 LowBeastTooth 2 - 0 - 0 - 0 - 0 - 0 2 2 2 300
20800 Recipe_LowPsnResiPotion Alchemy: Antitoxin (Tier 1) LowPsnResiPotion 1 NorMeat 2 NorMagicCrystal 2 NorBrokenBone 3 Geranium 1 - 0 - 0 - 0 - 0 1 4 1 1000 20800 Recipe_LowPsnResiPotion Alchemy: Antitoxin (Tier 1) LowPsnResiPotion 1 NorMeat 2 NorMagicCrystal 2 NorBrokenBone 3 Geranium 1 - 0 - 0 - 0 - 0 1 4 1 1000
20801 Recipe_NorPsnResiPotion Alchemy: Antitoxin (Tier 2) NorPsnResiPotion 1 HighMeat 2 NorMagicCrystal 2 HighBrokenBone 1 Violet 1 - 0 - 0 - 0 - 0 1 10 1 11800 20801 Recipe_NorPsnResiPotion Alchemy: Antitoxin (Tier 2) NorPsnResiPotion 1 HighMeat 2 NorMagicCrystal 2 HighBrokenBone 1 Violet 1 - 0 - 0 - 0 - 0 1 10 1 10800
20802 Recipe_HighPsnResiPotion Alchemy: Antitoxin (Tier 3) HighPsnResiPotion 1 BestMeat 2 HighMagicCrystal 2 HighBrokenBone 3 Ramsear 1 - 0 - 0 - 0 - 0 1 16 1 33300 20802 Recipe_HighPsnResiPotion Alchemy: Antitoxin (Tier 3) HighPsnResiPotion 1 BestMeat 2 HighMagicCrystal 2 HighBrokenBone 3 Ramsear 1 - 0 - 0 - 0 - 0 1 16 1 33300
20803 Recipe_LowDssResiPotion Alchemy: Antibiotic (Tier 1) LowDssResiPotion 1 NorMeat 2 NorCleanWater 2 NorBrokenBone 3 Geranium 1 - 0 - 0 - 0 - 0 1 4 1 1000 20803 Recipe_LowDssResiPotion Alchemy: Antibiotic (Tier 1) LowDssResiPotion 1 NorMeat 2 NorCleanWater 2 NorBrokenBone 3 Geranium 1 - 0 - 0 - 0 - 0 1 4 1 1000
20804 Recipe_NorDssResiPotion Alchemy: Antibiotic (Tier 2) NorDssResiPotion 1 HighMeat 2 NorCleanWater 2 HighBrokenBone 1 Violet 1 - 0 - 0 - 0 - 0 1 10 1 11800 20804 Recipe_NorDssResiPotion Alchemy: Antibiotic (Tier 2) NorDssResiPotion 1 HighMeat 2 NorCleanWater 2 HighBrokenBone 1 Violet 1 - 0 - 0 - 0 - 0 1 10 1 10800
20805 Recipe_HighDssResiPotion Alchemy: Antibiotic (Tier 3) HighDssResiPotion 1 HighMeat 2 HighCleanWater 2 HighBrokenBone 4 Ramsear 1 - 0 - 0 - 0 - 0 1 13 1 32600 20805 Recipe_HighDssResiPotion Alchemy: Antibiotic (Tier 3) HighDssResiPotion 1 HighMeat 2 HighCleanWater 2 HighBrokenBone 4 Ramsear 1 - 0 - 0 - 0 - 0 1 13 1 32600
20806 Recipe_LowCurResiPotion Alchemy: Bless (Tier 1) LowCurResiPotion 1 NorMeat 2 NorMagicCrystal 2 NorPledge 2 Geranium 1 - 0 - 0 - 0 - 0 1 4 1 900 20806 Recipe_LowCurResiPotion Alchemy: Bless (Tier 1) LowCurResiPotion 1 NorMeat 2 NorMagicCrystal 2 NorPledge 2 Geranium 1 - 0 - 0 - 0 - 0 1 4 1 750
20807 Recipe_NorCurResiPotion Alchemy: Bless (Tier 2) NorCurResiPotion 1 HighMeat 2 NorMagicCrystal 2 NorPledge 5 Violet 1 - 0 - 0 - 0 - 0 1 10 1 11600 20807 Recipe_NorCurResiPotion Alchemy: Bless (Tier 2) NorCurResiPotion 1 HighMeat 2 NorMagicCrystal 2 NorPledge 5 Violet 1 - 0 - 0 - 0 - 0 1 10 1 10000
20808 Recipe_HighCurResiPotion Alchemy: Bless (Tier 3) HighCurResiPotion 1 HighMeat 2 HighMagicCrystal 2 HighPledge 4 Ramsear 1 - 0 - 0 - 0 - 0 1 13 1 38000 20808 Recipe_HighCurResiPotion Alchemy: Bless (Tier 3) HighCurResiPotion 1 HighMeat 2 HighMagicCrystal 2 HighPledge 4 Ramsear 1 - 0 - 0 - 0 - 0 1 13 1 38000
21000 Recipe_LowPsnCurPotion Alchemy: Antidote (Tier 1) LowPsnCurPotion 1 LowMeat 2 LowMagicCrystal 2 - 0 - 0 - 0 - 0 - 0 - 0 1 2 1 0 21000 Recipe_LowPsnCurPotion Alchemy: Antidote (Tier 1) LowPsnCurPotion 1 LowMeat 2 LowMagicCrystal 2 - 0 - 0 - 0 - 0 - 0 - 0 1 2 1 0
21001 Recipe_NorPsnCurPotion Alchemy: Antidote (Tier 2) NorPsnCurPotion 1 LowMeat 5 NorMagicCrystal 1 NorBrokenBone 2 Geranium 1 - 0 - 0 - 0 - 0 1 3 1 1000 21001 Recipe_NorPsnCurPotion Alchemy: Antidote (Tier 2) NorPsnCurPotion 1 LowMeat 5 NorMagicCrystal 1 NorBrokenBone 2 Geranium 1 - 0 - 0 - 0 - 0 1 3 1 1000
21002 Recipe_HighPsnCurPotion Alchemy: Antidote (Tier 3) HighPsnCurPotion 1 NorMeat 4 NorMagicCrystal 3 HighBrokenBone 2 Violet 1 - 0 - 0 - 0 - 0 1 10 1 11600 21002 Recipe_HighPsnCurPotion Alchemy: Antidote (Tier 3) HighPsnCurPotion 1 NorMeat 4 NorMagicCrystal 3 HighBrokenBone 2 Violet 1 - 0 - 0 - 0 - 0 1 10 1 10000
21003 Recipe_LowDssCurPotion Alchemy: Cure (Tier 1) LowDssCurPotion 1 LowMeat 2 LowMagicCrystal 1 LowBrokenBone 2 - 0 - 0 - 0 - 0 - 0 1 2 1 600 21003 Recipe_LowDssCurPotion Alchemy: Cure (Tier 1) LowDssCurPotion 1 LowMeat 2 LowMagicCrystal 1 LowBrokenBone 2 - 0 - 0 - 0 - 0 - 0 1 2 1 600
21004 Recipe_NorDssCurPotion Alchemy: Cure (Tier 2) NorDssCurPotion 1 LowMeat 5 NorMagicCrystal 1 NorBrokenBone 2 Geranium 1 - 0 - 0 - 0 - 0 1 3 1 1600 21004 Recipe_NorDssCurPotion Alchemy: Cure (Tier 2) NorDssCurPotion 1 LowMeat 5 NorMagicCrystal 1 NorBrokenBone 2 Geranium 1 - 0 - 0 - 0 - 0 1 3 1 1600
21005 Recipe_HighDssCurPotion Alchemy: Cure (Tier 3) HighDssCurPotion 1 NorMeat 4 NorMagicCrystal 3 HighBrokenBone 2 Violet 1 - 0 - 0 - 0 - 0 1 10 1 16800 21005 Recipe_HighDssCurPotion Alchemy: Cure (Tier 3) HighDssCurPotion 1 NorMeat 4 NorMagicCrystal 3 HighBrokenBone 2 Violet 1 - 0 - 0 - 0 - 0 1 10 1 16800
@ -214,3 +214,23 @@
24080 Recipe_R_LowWoodSab Material Decomposition : Sap (Low Quality) LowWoodSab 9 NorWoodSab 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 100 24080 Recipe_R_LowWoodSab Material Decomposition : Sap (Low Quality) LowWoodSab 9 NorWoodSab 1 Converter1 1 - 0 - 0 - 0 - 0 - 0 - 0 5 2 5 100
24081 Recipe_R_NorWoodSab Material Decomposition : Sap NorWoodSab 6 HighWoodSab 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 6 5 11000 24081 Recipe_R_NorWoodSab Material Decomposition : Sap NorWoodSab 6 HighWoodSab 1 Converter2 1 - 0 - 0 - 0 - 0 - 0 - 0 5 6 5 11000
24082 Recipe_R_HighWoodSab Material Decomposition : Sap (High Quality) HighWoodSab 1 BestWoodSab 1 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 5 40 5 85000 24082 Recipe_R_HighWoodSab Material Decomposition : Sap (High Quality) HighWoodSab 1 BestWoodSab 1 Converter4 1 - 0 - 0 - 0 - 0 - 0 - 0 5 40 5 85000
24083 Recipe_BestLowMaxINTScroll Scroll: Concentration Increase (Tier 1) BestLowCriScroll 1 LowSkin 2 LowKylinLeather 2 - 0 - 0 - 0 - 0 - 0 - 0 2 2 2 0
24084 Recipe_LowINTScroll Scroll: Concentration Increase (Tier 2) LowCriScroll 1 LowSkin 4 NorBeastLeather 2 NorBeastTooth 3 LowMushrooms 1 - 0 - 0 - 0 - 0 2 3 2 1700
24085 Recipe_NorINTScroll Scroll: Concentration Increase (Tier 3) NorCriScroll 1 NorSkin 3 NorBeastLeather 3 HighBeastTooth 2 NorMushrooms 1 - 0 - 0 - 0 - 0 2 4 2 14600
24086 Recipe_HighINTScroll Scroll: Concentration Increase (Tier 4) HighCriScroll 1 HighSkin 3 HighBeastLeather 3 HighBeastTooth 2 HighMushrooms 1 - 0 - 0 - 0 - 0 2 15 2 31200
24087 Recipe_BestHighMaxINTScroll Scroll: Concentration Increase (Tier 5) BestHighCriScroll 1 BestSkin 3 HighBeastLeather 2 BeastHead 2 BestMushrooms 1 - 0 - 0 - 0 - 0 2 23 2 93000
24088 Recipe_BestLowStrPotion Potion: Strength Increase (Tier 1) BestLowStrCriPotion 1 LowMeat 2 LowMagicCrystal 2 LowBrokenBone 3 Geranium 1 - 0 - 0 - 0 - 0 1 5 1 900
24089 Recipe_LowStrPotion Potion: Strength Increase (Tier 2) LowStrCriPotion 1 NorMeat 2 NorMagicCrystal 2 NorBrokenBone 3 Geranium 1 - 0 - 0 - 0 - 0 1 15 1 11500
24090 Recipe_NorStrPotion Potion: Strength Increase (Tier 3) NorStrCriPotion 1 HighMeat 2 NorMagicCrystal 2 HighBrokenBone 1 Violet 1 - 0 - 0 - 0 - 0 1 25 1 35000
24091 Recipe_HighStrPotion Potion: Strength Increase (Tier 4) HighStrCriPotion 1 BestMeat 2 HighMagicCrystal 2 HighBrokenBone 3 Ramsear 1 - 0 - 0 - 0 - 0 1 35 1 55000
24092 Recipe_BestHighStrPotion Potion: Strength Increase (Tier 5) BestHighStrCriPotion 1 BestMeat 2 BestMagicCrystal 2 BestBrokenBone 3 Salvia 1 - 0 - 0 - 0 - 0 1 40 1 95000
24093 Recipe_BestLowDexPotion Potion: Quickness (Tier 1) BestLowDEXPotion 1 LowMeat 2 LowCleanWater 2 LowBrokenBone 3 Geranium 1 - 0 - 0 - 0 - 0 1 4 1 700
24094 Recipe_LowDexPotion Potion: Quickness (Tier 2) LowDEXPotion 1 NorMeat 2 NorCleanWater 2 NorBrokenBone 3 Geranium 1 - 0 - 0 - 0 - 0 1 13 1 11000
24095 Recipe_NorDexPotion Potion: Quickness (Tier 3) NorDEXPotion 1 HighMeat 2 NorCleanWater 2 HighBrokenBone 1 Violet 1 - 0 - 0 - 0 - 0 1 22 1 32000
24096 Recipe_HighDexPotion Potion: Quickness (Tier 4) HighDEXPotion 1 HighMeat 2 HighCleanWater 2 HighBrokenBone 4 Ramsear 1 - 0 - 0 - 0 - 0 1 30 1 40000
24097 Recipe_BestHighDexPotion Potion: Quickness (Tier 5) BestHighDEXPotion 1 BestMeat 2 BestCleanWater 2 BestBrokenBone 3 Ramsear 3 - 0 - 0 - 0 - 0 1 35 1 80000
24098 Recipe_BestLowDefPotion Potion: Protection (Tier 1) BestLowACMRPotion 1 LowMeat 2 LowMagicCrystal 2 LowPledge 2 Geranium 1 - 0 - 0 - 0 - 0 1 4 1 800
24099 Recipe_LowDefPotion Potion: Protection (Tier 2) LowACMRPotion 1 NorMeat 2 NorMagicCrystal 2 NorPledge 2 Geranium 1 - 0 - 0 - 0 - 0 1 14 1 11500
24100 Recipe_NorDefPotion Potion: Protection (Tier 3) NorACMRPotion 1 HighMeat 2 NorMagicCrystal 2 NorPledge 5 Violet 1 - 0 - 0 - 0 - 0 1 24 1 34000
24101 Recipe_HighDefPotion Potion: Protection (Tier 4) HighACMRPotion 1 HighMeat 2 HighMagicCrystal 2 HighPledge 4 Ramsear 1 - 0 - 0 - 0 - 0 1 28 1 45000
24102 Recipe_BestHighDefPotion Potion: Protection (Tier 5) BestHighACMRPotion 1 BestMeat 2 BestMagicCrystal 2 BestPledge 3 Ramsear 3 - 0 - 0 - 0 - 0 1 38 1 90000

@ -1204,8 +1204,6 @@ namespace olc
#endif #endif
public: // Branding public: // Branding
std::string sAppName; std::string sAppName;
std::string sTextEntryString = "";
int32_t nTextEntryCursor = 0;
private: // Inner mysterious workings private: // Inner mysterious workings
olc::Sprite* pDrawTarget = nullptr; olc::Sprite* pDrawTarget = nullptr;
@ -1262,6 +1260,10 @@ namespace olc
// Text Entry Specific // Text Entry Specific
bool bTextEntryEnable = false; bool bTextEntryEnable = false;
public:
std::string sTextEntryString = "";
int32_t nTextEntryCursor = 0;
private:
std::vector<std::tuple<olc::Key, std::string, std::string>> vKeyboardMap; std::vector<std::tuple<olc::Key, std::string, std::string>> vKeyboardMap;
@ -5028,8 +5030,16 @@ namespace olc
glGenTextures(1, &id); glGenTextures(1, &id);
glBindTexture(GL_TEXTURE_2D, id); glBindTexture(GL_TEXTURE_2D, id);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); if (filtered)
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)
{ {
@ -5406,11 +5416,7 @@ namespace olc
virtual olc::rcode CreateWindowPane(const olc::vi2d& vWindowPos, olc::vi2d& vWindowSize, bool bFullScreen) override virtual olc::rcode CreateWindowPane(const olc::vi2d& vWindowPos, olc::vi2d& vWindowSize, bool bFullScreen) override
{ {
WNDCLASS wc; WNDCLASS wc;
wc.hIcon = static_cast<HICON>(::LoadImage(GetModuleHandle(nullptr), wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
MAKEINTRESOURCE(101),
IMAGE_ICON,
48, 48,
LR_DEFAULTCOLOR));;
wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
wc.hInstance = GetModuleHandle(nullptr); wc.hInstance = GetModuleHandle(nullptr);

Loading…
Cancel
Save