Add Checkbox to allow removing items from list directly.
This commit is contained in:
parent
2b8690efbc
commit
82414a49bd
|
@ -542,6 +542,8 @@ void DrawTimeSplitOptions() {
|
|||
splitPreviousBest[i] = splitBest[i];
|
||||
}
|
||||
}
|
||||
status = "Splits updated";
|
||||
statusColor = COLOR_GREEN;
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Reset List")) {
|
||||
|
@ -553,6 +555,7 @@ void DrawTimeSplitOptions() {
|
|||
status = "List has been reset";
|
||||
statusColor = COLOR_RED;
|
||||
}
|
||||
UIWidgets::EnhancementCheckbox("Enable Removals", "gTimeSplit.EnableEdits", false);
|
||||
ImGui::TextColored(statusColor, status.c_str());
|
||||
UIWidgets::PaddedSeparator();
|
||||
}
|
||||
|
@ -601,6 +604,49 @@ void DrawTimeSplitSplits(){
|
|||
if (ImGui::CollapsingHeader("Time Splitter")) {
|
||||
DrawTimeSplitOptions();
|
||||
}
|
||||
//List Removals
|
||||
if (CVarGetInteger("gTimeSplit.EnableEdits", 0)) {
|
||||
ImGui::BeginTable("Remove Entries", 2);
|
||||
ImGui::TableSetupColumn("Item Image", ImGuiTableColumnFlags_WidthFixed | ImGuiTableColumnFlags_NoHeaderLabel, (28.0f * uiScale));
|
||||
ImGui::TableSetupColumn("Item Name");
|
||||
ImGui::TableHeadersRow();
|
||||
ImGui::TableNextColumn();
|
||||
for (int i = 0; i < splitItem.size(); i++) {
|
||||
for (const auto& obj : splitObjects) {
|
||||
if (obj.itemID == splitItem[i]) {
|
||||
itemNum = obj.itemID;
|
||||
itemImager = obj.itemImage;
|
||||
itemNamer = obj.itemName;
|
||||
TimeSplitColorTint();
|
||||
}
|
||||
}
|
||||
ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.75f, 0.0f, 0.0f, 1.0f));
|
||||
if (ImGui::ImageButton(std::to_string(i).c_str(), LUS::Context::GetInstance()->GetWindow()->GetGui()->GetTextureByName(itemImager),
|
||||
ImVec2(26.0f * uiScale, 26.0f *uiScale), ImVec2(0, 0), ImVec2(1, 1), ImVec4(0, 0, 0, 0), pieceTint)) {
|
||||
splitItem.erase(splitItem.begin() + i);
|
||||
splitTime.erase(splitTime.begin() + i);
|
||||
splitPreviousBest.erase(splitPreviousBest.begin() + i);
|
||||
splitBest.erase(splitBest.begin() + i);
|
||||
splitStatus.erase(splitStatus.begin() + i);
|
||||
}
|
||||
ImGui::PopStyleColor();
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0.0f, 5.0f * uiScale));
|
||||
ImGui::AlignTextToFramePadding();
|
||||
if (itemNum == ITEM_SKULL_TOKEN) {
|
||||
std::string skullText = itemNamer.c_str();
|
||||
skullText += " (";
|
||||
skullText += std::to_string(splitTokens).c_str();
|
||||
skullText += ")";
|
||||
ImGui::TextWrapped(skullText.c_str());
|
||||
} else {
|
||||
ImGui::TextWrapped(itemNamer.c_str());
|
||||
}
|
||||
ImGui::PopStyleVar();
|
||||
ImGui::TableNextColumn();
|
||||
}
|
||||
ImGui::EndTable();
|
||||
} else {
|
||||
totalPreviousBest = 0;
|
||||
for (int i = 0; i < splitItem.size(); i++) {
|
||||
totalPreviousBest += splitPreviousBest[i];
|
||||
|
@ -614,9 +660,9 @@ void DrawTimeSplitSplits(){
|
|||
ImGui::TableSetupColumn("+/-", ImGuiTableColumnFlags_WidthFixed, (80.0f * uiScale));
|
||||
ImGui::TableSetupColumn("Prev. Best", ImGuiTableColumnFlags_WidthFixed, (90.0f * uiScale));
|
||||
ImGui::TableHeadersRow();
|
||||
|
||||
for (auto& str : splitItem) {
|
||||
ImGui::TableNextColumn();
|
||||
// Item Image
|
||||
for (const auto& obj : splitObjects) {
|
||||
if (obj.itemID == splitItem[loopCounter]) {
|
||||
itemNum = obj.itemID;
|
||||
|
@ -625,6 +671,7 @@ void DrawTimeSplitSplits(){
|
|||
TimeSplitColorTint();
|
||||
}
|
||||
}
|
||||
// Item Image
|
||||
if (splitStatus[buttonID] == 2) {
|
||||
ImGui::TableSetBgColor(ImGuiTableBgTarget_RowBg0, IM_COL32(47, 79, 90, 255));
|
||||
}
|
||||
|
@ -694,15 +741,15 @@ void DrawTimeSplitSplits(){
|
|||
ImGui::TextWrapped(itemNamer.c_str());
|
||||
}
|
||||
ImGui::TableNextColumn();
|
||||
// Current Time
|
||||
if (splitStatus[loopCounter] == 2) {
|
||||
// Current Time (Active)
|
||||
if (splitTime[loopCounter] == 0) {
|
||||
ImGui::Text(formatTimestampTimeSplit(GAMEPLAYSTAT_TOTAL_TIME).c_str());
|
||||
} else {
|
||||
ImGui::Text(formatTimestampTimeSplit(splitTime[loopCounter]).c_str());
|
||||
}
|
||||
ImGui::TableNextColumn();
|
||||
// +/-
|
||||
if (splitStatus[loopCounter] != 1) {
|
||||
// +/- (active)
|
||||
if (splitPreviousBest[loopCounter] == 0) {
|
||||
ImGui::TextColored(COLOR_WHITE, formatTimestampTimeSplit(GAMEPLAYSTAT_TOTAL_TIME).c_str());
|
||||
} else {
|
||||
|
@ -714,9 +761,16 @@ void DrawTimeSplitSplits(){
|
|||
ImGui::TextColored(COLOR_LIGHT_RED, formatTimestampTimeSplit(GAMEPLAYSTAT_TOTAL_TIME - splitPreviousBest[loopCounter]).c_str());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ImGui::TableNextColumn();
|
||||
// Previous Best (Active)
|
||||
ImGui::Text(formatTimestampTimeSplit(splitPreviousBest[loopCounter]).c_str());
|
||||
} else if (splitStatus[loopCounter] == 1) {
|
||||
// Current (Collected)
|
||||
ImGui::Text(formatTimestampTimeSplit(splitTime[loopCounter]).c_str());
|
||||
ImGui::TableNextColumn();
|
||||
// +/- (Collected)
|
||||
if (splitPreviousBest[loopCounter] == 0) {
|
||||
ImGui::TextColored(COLOR_GREEN, formatTimestampTimeSplit(splitTime[loopCounter]).c_str());
|
||||
ImGui::TextColored(COLOR_WHITE, formatTimestampTimeSplit(splitTime[loopCounter]).c_str());
|
||||
} else {
|
||||
if (splitTime[loopCounter] < splitPreviousBest[loopCounter]) {
|
||||
ImGui::TextColored(COLOR_GREEN, formatTimestampTimeSplit(splitPreviousBest[loopCounter] - splitTime[loopCounter]).c_str());
|
||||
|
@ -726,16 +780,25 @@ void DrawTimeSplitSplits(){
|
|||
ImGui::TextColored(COLOR_RED, formatTimestampTimeSplit(splitTime[loopCounter] - splitPreviousBest[loopCounter]).c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
ImGui::TableNextColumn();
|
||||
// Previous Best
|
||||
// Previous Best (Collected)
|
||||
ImGui::Text(formatTimestampTimeSplit(splitPreviousBest[loopCounter]).c_str());
|
||||
} else {
|
||||
// Current Time (Inactive)
|
||||
ImGui::Text("-:--:--.-");
|
||||
ImGui::TableNextColumn();
|
||||
// +/- (Inactive)
|
||||
ImGui::Text("-:--:--.-");
|
||||
ImGui::TableNextColumn();
|
||||
// Previous Best (Inactive)
|
||||
ImGui::Text("-:--:--.-");
|
||||
}
|
||||
ImGui::PopStyleVar();
|
||||
loopCounter++;
|
||||
buttonID++;
|
||||
}
|
||||
ImGui::EndTable();
|
||||
ImGui::PopStyleVar(1);
|
||||
ImGui::PopStyleVar();
|
||||
UIWidgets::PaddedSeparator();
|
||||
ImGui::SetCursorPosX(ImGui::GetWindowWidth() -
|
||||
ImGui::CalcTextSize(formatTimestampTimeSplit(GAMEPLAYSTAT_TOTAL_TIME).c_str()).x -
|
||||
|
@ -751,6 +814,7 @@ void DrawTimeSplitSplits(){
|
|||
ImGui::Text(formatTimestampTimeSplit(totalPreviousBest).c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void InitializeSplitFile() {
|
||||
if (!std::filesystem::exists("splitdata.json")) {
|
||||
|
@ -1217,7 +1281,7 @@ void TimeSplitWindow::DrawElement() {
|
|||
}
|
||||
ImGui::EndTabBar();
|
||||
ImGui::End();
|
||||
ImGui::PopStyleColor(1);
|
||||
ImGui::PopStyleColor();
|
||||
}
|
||||
|
||||
void TimeSplitWindow::InitElement() {
|
||||
|
|
Loading…
Reference in New Issue