| 877 | } |
| 878 | |
| 879 | static void DrawUpdateToSteamworks() { |
| 880 | ModInstance* target_modi = ModLoading::Instance().GetMod(update_to_sid); |
| 881 | ModInstance* source_modi = NULL; |
| 882 | |
| 883 | static int currently_selected_source = 0; |
| 884 | |
| 885 | ImGui::SetNextWindowSize(ImVec2(1024.0f, 768.0f), ImGuiCond_FirstUseEver); |
| 886 | ImGui::Begin("Steamworks Mod Update Upload", &show_update_to_steamworks); |
| 887 | #if ENABLE_STEAMWORKS |
| 888 | SteamworksUGC* ugc = Steamworks::Instance()->GetUGC(); |
| 889 | if (ugc && target_modi) { |
| 890 | SteamworksUGCItem* uploaded_ugc_item = target_modi->GetUGCItem(); |
| 891 | if (uploaded_ugc_item) { |
| 892 | std::vector<ModInstance*> possible_sources; |
| 893 | |
| 894 | if (strlen(target_modi->id) == 0) { |
| 895 | possible_sources = ModLoading::Instance().GetLocalMods(); |
| 896 | } else { |
| 897 | possible_sources = ModLoading::Instance().GetLocalModsMatchingID(target_modi->id.str()); |
| 898 | } |
| 899 | |
| 900 | if ((unsigned)currently_selected_source > possible_sources.size()) { |
| 901 | currently_selected_source = possible_sources.size(); |
| 902 | } |
| 903 | |
| 904 | std::vector<const char*> dropdown_names; |
| 905 | |
| 906 | for (unsigned i = 0; i < possible_sources.size(); i++) { |
| 907 | dropdown_names.push_back(possible_sources[i]->name); |
| 908 | } |
| 909 | |
| 910 | if (possible_sources.size() > 0 && currently_selected_source < (int)possible_sources.size()) { |
| 911 | source_modi = possible_sources[currently_selected_source]; |
| 912 | } |
| 913 | |
| 914 | if (source_modi) { |
| 915 | uploaded_ugc_item->SetIntendedUpdateModSource(source_modi->GetSid()); |
| 916 | } else { |
| 917 | uploaded_ugc_item->SetIntendedUpdateModSource(ModID()); |
| 918 | } |
| 919 | |
| 920 | uint32_t source_upload_status = 0ULL; |
| 921 | if (source_modi) { |
| 922 | source_upload_status = source_modi->GetUploadValidity(); |
| 923 | } |
| 924 | |
| 925 | uint32_t target_upload_status = uploaded_ugc_item->VerifyForUpload(); |
| 926 | |
| 927 | ImGui::Columns(1); |
| 928 | |
| 929 | ImGui::Combo("Local Source Mod", ¤tly_selected_source, &dropdown_names[0], dropdown_names.size(), 10); |
| 930 | |
| 931 | ImGui::Separator(); |
| 932 | |
| 933 | ImGui::Text("Source Mod"); |
| 934 | |
| 935 | ImGui::Separator(); |
| 936 |
no test coverage detected