SaveTool: add tier display to the research inventory.

Closes #11.
This commit is contained in:
Guillaume Jacquemin 2021-08-18 15:37:03 +02:00
parent ded5e9bcb7
commit c4fc910ab0
1 changed files with 47 additions and 42 deletions

View File

@ -292,22 +292,26 @@ void SaveTool::drawResearchInventory() {
return;
}
#define unavRow(name) \
ImGui::TableNextRow(); \
ImGui::TableSetColumnIndex(0); \
ImGui::TextUnformatted(name); \
ImGui::TableSetColumnIndex(1); \
ImGui::TextDisabled("Unavailable as of M.A.S.S. Builder version " SUPPORTED_GAME_VERSION);
#define unavRow(name, tier) \
ImGui::TableNextRow(); \
ImGui::TableSetColumnIndex(0); \
ImGui::TextUnformatted("T" #tier); \
ImGui::TableSetColumnIndex(1); \
ImGui::TextUnformatted(name); \
ImGui::TableSetColumnIndex(2); \
ImGui::TextDisabled("Unavailable as of game version " SUPPORTED_GAME_VERSION);
#define matRow(name, var, getter, setter) \
#define matRow(name, tier, var, getter, setter) \
ImGui::TableNextRow(); \
ImGui::TableSetColumnIndex(0); \
ImGui::TextUnformatted((name)); \
ImGui::TextUnformatted("T" #tier); \
ImGui::TableSetColumnIndex(1); \
ImGui::TextUnformatted(name); \
ImGui::TableSetColumnIndex(2); \
if(_currentProfile->getter() != -1) { \
ImGui::Text("%i", _currentProfile->getter()); \
if(_cheatMode) { \
ImGui::TableSetColumnIndex(2); \
ImGui::TableSetColumnIndex(3); \
ImGui::PushID(#setter); \
static Int var = _currentProfile->getter(); \
if(drawUnsafeWidget([]{ return ImGui::SmallButton(ICON_FA_EDIT); })) { \
@ -327,60 +331,61 @@ void SaveTool::drawResearchInventory() {
ImGui::TextDisabled("Not found in the save file"); \
}
if(ImGui::BeginTable("##ResearchInventoryTable", 3,
if(ImGui::BeginTable("##ResearchInventoryTable", 4,
ImGuiTableFlags_BordersOuter|ImGuiTableFlags_ScrollY|ImGuiTableFlags_RowBg))
{
ImGui::TableSetupColumn("##Tier", ImGuiTableColumnFlags_WidthFixed);
ImGui::TableSetupColumn("##Name", ImGuiTableColumnFlags_WidthFixed);
ImGui::TableSetupColumn("##Value", ImGuiTableColumnFlags_WidthStretch);
ImGui::TableSetupColumn("##Edit", ImGuiTableColumnFlags_WidthFixed);
ImGui::TableNextRow(ImGuiTableRowFlags_Headers);
ImGui::TableSetColumnIndex(0);
ImGui::TableSetColumnIndex(1);
ImGui::Text("Engine materials");
matRow("Verse steel", verse_steel, verseSteel, VerseSteel)
matRow("Undinium", undinium, undinium, Undinium)
matRow("Necrium alloy", necrium_alloy, necriumAlloy, NecriumAlloy)
matRow("Lunarite", lunarite, lunarite, Lunarite)
matRow("Asterite", asterite, asterite, Asterite)
unavRow("Hallite fragma")
unavRow("Unnoctinium")
matRow("Verse steel", 1, verse_steel, verseSteel, VerseSteel)
matRow("Undinium", 2, undinium, undinium, Undinium)
matRow("Necrium alloy", 3, necrium_alloy, necriumAlloy, NecriumAlloy)
matRow("Lunarite", 4, lunarite, lunarite, Lunarite)
matRow("Asterite", 5, asterite, asterite, Asterite)
unavRow("Hallite fragma", 6)
unavRow("Unnoctinium", 7)
ImGui::TableNextRow(ImGuiTableRowFlags_Headers);
ImGui::TableSetColumnIndex(0);
ImGui::TableSetColumnIndex(1);
ImGui::Text("OS materials");
matRow("Ednil", ednil, ednil, Ednil)
matRow("Nuflalt", nuflalt, nuflalt, Nuflalt)
matRow("Aurelene", aurelene, aurelene, Aurelene)
matRow("Soldus", soldus, soldus, Soldus)
matRow("Synthesized N", synthesized_n, synthesizedN, SynthesizedN)
unavRow("Nanoc")
unavRow("Abyssillite")
matRow("Ednil", 1, ednil, ednil, Ednil)
matRow("Nuflalt", 2, nuflalt, nuflalt, Nuflalt)
matRow("Aurelene", 3, aurelene, aurelene, Aurelene)
matRow("Soldus", 4, soldus, soldus, Soldus)
matRow("Synthesized N", 5, synthesized_n, synthesizedN, SynthesizedN)
unavRow("Nanoc", 6)
unavRow("Abyssillite", 7)
ImGui::TableNextRow(ImGuiTableRowFlags_Headers);
ImGui::TableSetColumnIndex(0);
ImGui::TableSetColumnIndex(1);
ImGui::Text("Architect materials");
matRow("Alcarbonite", alcarbonite, alcarbonite, Alcarbonite)
matRow("Keriphene", keriphene, keriphene, Keriphene)
matRow("Nitinol-CM", nitinol_cm, nitinolCM, NitinolCM)
matRow("Quarkium", quarkium, quarkium, Quarkium)
matRow("Alterene", alterene, alterene, Alterene)
unavRow("Cosmium")
unavRow("Purified quarkium")
matRow("Alcarbonite", 1, alcarbonite, alcarbonite, Alcarbonite)
matRow("Keriphene", 2, keriphene, keriphene, Keriphene)
matRow("Nitinol-CM", 3, nitinol_cm, nitinolCM, NitinolCM)
matRow("Quarkium", 4, quarkium, quarkium, Quarkium)
matRow("Alterene", 5, alterene, alterene, Alterene)
unavRow("Cosmium", 6)
unavRow("Purified quarkium", 7)
ImGui::TableNextRow(ImGuiTableRowFlags_Headers);
ImGui::TableSetColumnIndex(0);
ImGui::TableSetColumnIndex(1);
ImGui::Text("Quark data");
matRow("Mixed composition", mixed_composition, mixedComposition, MixedComposition)
matRow("Void residue", void_residue, voidResidue, VoidResidue)
matRow("Muscular construction", muscular_construction, muscularConstruction, MuscularConstruction)
matRow("Mineral exoskeletology", mineral_exoskeletology, mineralExoskeletology, MineralExoskeletology)
matRow("Carbonized skin", carbonized_skin, carbonizedSkin, CarbonizedSkin)
unavRow("Isolated void particle")
unavRow("Weaponised physiology")
matRow("Mixed composition", 1, mixed_composition, mixedComposition, MixedComposition)
matRow("Void residue", 2, void_residue, voidResidue, VoidResidue)
matRow("Muscular construction", 3, muscular_construction, muscularConstruction, MuscularConstruction)
matRow("Mineral exoskeletology", 4, mineral_exoskeletology, mineralExoskeletology, MineralExoskeletology)
matRow("Carbonized skin", 5, carbonized_skin, carbonizedSkin, CarbonizedSkin)
unavRow("Isolated void particle", 6)
unavRow("Weaponised physiology", 7)
ImGui::EndTable();
}