From c4fc910ab08f47478fc81a03e729a4ee575389a4 Mon Sep 17 00:00:00 2001 From: William JCM Date: Wed, 18 Aug 2021 15:37:03 +0200 Subject: [PATCH] SaveTool: add tier display to the research inventory. Closes #11. --- src/SaveTool/SaveTool_MainManager.cpp | 89 ++++++++++++++------------- 1 file changed, 47 insertions(+), 42 deletions(-) diff --git a/src/SaveTool/SaveTool_MainManager.cpp b/src/SaveTool/SaveTool_MainManager.cpp index 0e5ee5b..69c4e8f 100644 --- a/src/SaveTool/SaveTool_MainManager.cpp +++ b/src/SaveTool/SaveTool_MainManager.cpp @@ -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(); }