Skip to content
This repository was archived by the owner on Sep 8, 2023. It is now read-only.

Commit b43652f

Browse files
Add Repo
1 parent 4ae6af8 commit b43652f

File tree

6 files changed

+1031
-851
lines changed

6 files changed

+1031
-851
lines changed

Inferno Mod Manager/Inferno Mod Manager.vcxproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,12 @@
144144
<Reference Include="System.Data">
145145
<Private>true</Private>
146146
</Reference>
147+
<Reference Include="System.DirectoryServices.AccountManagement">
148+
<HintPath>Lib\System.DirectoryServices.AccountManagement.dll</HintPath>
149+
</Reference>
147150
<Reference Include="System.Drawing">
148151
<Private>true</Private>
149152
</Reference>
150-
<Reference Include="System.Security">
151-
<HintPath>Lib\System.Security.dll</HintPath>
152-
</Reference>
153153
<Reference Include="System.Windows.Forms">
154154
<Private>true</Private>
155155
</Reference>
@@ -174,6 +174,7 @@
174174
</ClInclude>
175175
<ClInclude Include="Mod.h" />
176176
<ClInclude Include="ModManifest.h" />
177+
<ClInclude Include="Prompt.h" />
177178
<ClInclude Include="resource.h" />
178179
<ClInclude Include="resource1.h" />
179180
<ClInclude Include="Tags.h" />

Inferno Mod Manager/Inferno Mod Manager.vcxproj.filters

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@
6868
<ClInclude Include="resource1.h">
6969
<Filter>Header Files</Filter>
7070
</ClInclude>
71+
<ClInclude Include="Prompt.h">
72+
<Filter>Header Files</Filter>
73+
</ClInclude>
7174
</ItemGroup>
7275
<ItemGroup>
7376
<None Include="packages.config" />
Binary file not shown.

Inferno Mod Manager/MainForm.h

Lines changed: 99 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,13 @@
66
#include "WebDownloader.h"
77
#include "Mod.h"
88
#include "ModManifest.h"
9+
#include "Prompt.h"
910
#include <string>
1011
#include <Windows.h>
12+
#include <windows.h>
13+
#include <Lmcons.h>
14+
#include <msclr\marshal.h>
15+
#define string System::String^
1116

1217
#pragma once
1318

@@ -22,7 +27,6 @@ namespace InfernoModManager {
2227
MainForm(void)
2328
{
2429
InitializeComponent();
25-
2630
//double buffered renders all at once, therefore faster
2731
System::Windows::Forms::DataGridView::typeid->GetProperty("DoubleBuffered",
2832
System::Reflection::BindingFlags::Instance | System::Reflection::BindingFlags::NonPublic)
@@ -140,6 +144,8 @@ namespace InfernoModManager {
140144
private: System::Windows::Forms::Label^ label19;
141145
private: System::Windows::Forms::Label^ DownloadVersion;
142146
private: System::Windows::Forms::ProgressBar^ DownloadProgressBar;
147+
private: System::Windows::Forms::Label^ WelcomeBackUser;
148+
private: System::Windows::Forms::Button^ AddRepo;
143149

144150

145151

@@ -228,6 +234,7 @@ namespace InfernoModManager {
228234
this->ModTypeColumn = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());
229235
this->ModInfoColumn = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());
230236
this->ModVersion = (gcnew System::Windows::Forms::Label());
237+
this->WelcomeBackUser = (gcnew System::Windows::Forms::Label());
231238
this->DownloadsList = (gcnew System::Windows::Forms::DataGridView());
232239
this->InstalledColumn = (gcnew System::Windows::Forms::DataGridViewCheckBoxColumn());
233240
this->DownloadNameColumn = (gcnew System::Windows::Forms::DataGridViewTextBoxColumn());
@@ -245,14 +252,15 @@ namespace InfernoModManager {
245252
this->DownloadAuthor = (gcnew System::Windows::Forms::Label());
246253
this->DownloadVersion = (gcnew System::Windows::Forms::Label());
247254
this->DownloadDescription = (gcnew System::Windows::Forms::Label());
255+
this->DownloadProgressBar = (gcnew System::Windows::Forms::ProgressBar());
248256
this->CreditTab = (gcnew System::Windows::Forms::TabPage());
249257
this->CreditsLayout = (gcnew System::Windows::Forms::TableLayoutPanel());
250258
this->BaydockGithub = (gcnew System::Windows::Forms::Button());
251259
this->KosmicGithub = (gcnew System::Windows::Forms::Button());
252260
this->DiscordButton = (gcnew System::Windows::Forms::Button());
253261
this->BTD6FolderDialog = (gcnew System::Windows::Forms::FolderBrowserDialog());
254262
this->CheckBTD6Timer = (gcnew System::Windows::Forms::Timer(this->components));
255-
this->DownloadProgressBar = (gcnew System::Windows::Forms::ProgressBar());
263+
this->AddRepo = (gcnew System::Windows::Forms::Button());
256264
label1 = (gcnew System::Windows::Forms::Label());
257265
label2 = (gcnew System::Windows::Forms::Label());
258266
label3 = (gcnew System::Windows::Forms::Label());
@@ -745,6 +753,7 @@ namespace InfernoModManager {
745753
this->ModManager->Controls->Add(label3, 1, 9);
746754
this->ModManager->Controls->Add(label17, 1, 8);
747755
this->ModManager->Controls->Add(this->ModVersion, 2, 8);
756+
this->ModManager->Controls->Add(this->WelcomeBackUser, 1, 0);
748757
this->ModManager->Dock = System::Windows::Forms::DockStyle::Fill;
749758
this->ModManager->Location = System::Drawing::Point(0, 0);
750759
this->ModManager->Margin = System::Windows::Forms::Padding(2);
@@ -904,6 +913,15 @@ namespace InfernoModManager {
904913
this->ModVersion->TabIndex = 33;
905914
this->ModVersion->Text = L"Mod Version";
906915
//
916+
// WelcomeBackUser
917+
//
918+
this->WelcomeBackUser->AutoSize = true;
919+
this->WelcomeBackUser->Location = System::Drawing::Point(657, 0);
920+
this->WelcomeBackUser->Name = L"WelcomeBackUser";
921+
this->WelcomeBackUser->Size = System::Drawing::Size(0, 13);
922+
this->WelcomeBackUser->TabIndex = 34;
923+
this->WelcomeBackUser->TextAlign = System::Drawing::ContentAlignment::MiddleLeft;
924+
//
907925
// DownloadsList
908926
//
909927
this->DownloadsList->AllowUserToAddRows = false;
@@ -1031,6 +1049,7 @@ namespace InfernoModManager {
10311049
this->DownloadManager->Controls->Add(this->DownloadDescription, 1, 10);
10321050
this->DownloadManager->Controls->Add(label10, 1, 11);
10331051
this->DownloadManager->Controls->Add(this->DownloadProgressBar, 2, 0);
1052+
this->DownloadManager->Controls->Add(this->AddRepo, 1, 0);
10341053
this->DownloadManager->Dock = System::Windows::Forms::DockStyle::Fill;
10351054
this->DownloadManager->Location = System::Drawing::Point(0, 0);
10361055
this->DownloadManager->Margin = System::Windows::Forms::Padding(2);
@@ -1137,6 +1156,13 @@ namespace InfernoModManager {
11371156
this->DownloadDescription->TabIndex = 28;
11381157
this->DownloadDescription->Text = L"Download Description";
11391158
//
1159+
// DownloadProgressBar
1160+
//
1161+
this->DownloadProgressBar->Location = System::Drawing::Point(819, 3);
1162+
this->DownloadProgressBar->Name = L"DownloadProgressBar";
1163+
this->DownloadProgressBar->Size = System::Drawing::Size(158, 23);
1164+
this->DownloadProgressBar->TabIndex = 31;
1165+
//
11401166
// CreditTab
11411167
//
11421168
this->CreditTab->BackColor = System::Drawing::SystemColors::Window;
@@ -1240,12 +1266,15 @@ namespace InfernoModManager {
12401266
this->CheckBTD6Timer->Interval = 1000;
12411267
this->CheckBTD6Timer->Tick += gcnew System::EventHandler(this, &MainForm::CheckBTD6Open);
12421268
//
1243-
// DownloadProgressBar
1269+
// AddRepo
12441270
//
1245-
this->DownloadProgressBar->Location = System::Drawing::Point(819, 3);
1246-
this->DownloadProgressBar->Name = L"DownloadProgressBar";
1247-
this->DownloadProgressBar->Size = System::Drawing::Size(158, 23);
1248-
this->DownloadProgressBar->TabIndex = 31;
1271+
this->AddRepo->Location = System::Drawing::Point(656, 3);
1272+
this->AddRepo->Name = L"AddRepo";
1273+
this->AddRepo->Size = System::Drawing::Size(83, 23);
1274+
this->AddRepo->TabIndex = 32;
1275+
this->AddRepo->Text = L"Add Repo";
1276+
this->AddRepo->UseVisualStyleBackColor = true;
1277+
this->AddRepo->Click += gcnew System::EventHandler(this, &MainForm::AddRepo_Click);
12491278
//
12501279
// MainForm
12511280
//
@@ -1486,19 +1515,26 @@ namespace InfernoModManager {
14861515
}
14871516

14881517
private: System::Void UpdateModStats(InfernoModManager::Mod^ mod) {
1489-
try {
1490-
System::Net::HttpWebRequest^ request = (System::Net::HttpWebRequest^)System::Net::HttpWebRequest::Create(mod->PNGLoc);
1491-
request->AllowWriteStreamBuffering = true;
1492-
request->Timeout = 30000;
1518+
if (!mod->PNGLoc->ToLower()->Equals("nothingyet") && !mod->PNGLoc->Equals("")) {
1519+
try {
1520+
System::Net::HttpWebRequest^ request = (System::Net::HttpWebRequest^)System::Net::HttpWebRequest::Create(mod->PNGLoc);
1521+
request->AllowWriteStreamBuffering = true;
1522+
request->Timeout = 30000;
14931523

1494-
System::Net::WebResponse^ webResponse = request->GetResponse();
1524+
System::Net::WebResponse^ webResponse = request->GetResponse();
14951525

1496-
System::IO::Stream^ stream = webResponse->GetResponseStream();
1526+
System::IO::Stream^ stream = webResponse->GetResponseStream();
14971527

1498-
ModImage->Image = System::Drawing::Image::FromStream(stream);
1499-
delete stream;
1528+
ModImage->Image = System::Drawing::Image::FromStream(stream);
1529+
delete stream;
1530+
}
1531+
catch (System::Exception^)
1532+
{
1533+
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(MainForm::typeid));
1534+
ModImage->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"ModImage.ErrorImage")));
1535+
}
15001536
}
1501-
catch (System::Exception^)
1537+
else
15021538
{
15031539
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(MainForm::typeid));
15041540
ModImage->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"ModImage.ErrorImage")));
@@ -1518,19 +1554,26 @@ namespace InfernoModManager {
15181554
}
15191555

15201556
private: System::Void UpdateDownloadStats(InfernoModManager::Mod^ mod) {
1521-
try {
1522-
System::Net::HttpWebRequest^ request = (System::Net::HttpWebRequest^)System::Net::HttpWebRequest::Create(mod->PNGLoc);
1523-
request->AllowWriteStreamBuffering = true;
1524-
request->Timeout = 30000;
1557+
if (!mod->PNGLoc->ToLower()->Equals("nothingyet") && !mod->PNGLoc->Equals("")) {
1558+
try {
1559+
System::Net::HttpWebRequest^ request = (System::Net::HttpWebRequest^)System::Net::HttpWebRequest::Create(mod->PNGLoc);
1560+
request->AllowWriteStreamBuffering = true;
1561+
request->Timeout = 30000;
15251562

1526-
System::Net::WebResponse^ webResponse = request->GetResponse();
1563+
System::Net::WebResponse^ webResponse = request->GetResponse();
15271564

1528-
System::IO::Stream^ stream = webResponse->GetResponseStream();
1565+
System::IO::Stream^ stream = webResponse->GetResponseStream();
15291566

1530-
DownloadImage->Image = System::Drawing::Image::FromStream(stream);
1531-
delete stream;
1567+
DownloadImage->Image = System::Drawing::Image::FromStream(stream);
1568+
delete stream;
1569+
}
1570+
catch (System::Exception^)
1571+
{
1572+
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(MainForm::typeid));
1573+
DownloadImage->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"DownloadImage.ErrorImage")));
1574+
}
15321575
}
1533-
catch (System::Exception^)
1576+
else
15341577
{
15351578
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(MainForm::typeid));
15361579
DownloadImage->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"DownloadImage.ErrorImage")));
@@ -1562,5 +1605,35 @@ namespace InfernoModManager {
15621605
private: System::String^ GetDisabledDir() {
15631606
return btd6Install + "\\Mods\\Disabled";
15641607
}
1565-
};
1608+
1609+
private: System::Void AddRepo_Click(System::Object^ sender, System::EventArgs^ e) {
1610+
string s = Prompt::ShowDialog("Yes", "Enter URL for repo.");
1611+
bool shouldWarn = false;
1612+
if (!s->Equals(""))
1613+
{
1614+
try {
1615+
System::Net::HttpWebRequest^ request = (System::Net::HttpWebRequest^)System::Net::HttpWebRequest::Create(s);
1616+
request->Timeout = 30000;
1617+
1618+
System::Net::WebResponse^ webResponse = request->GetResponse();
1619+
}
1620+
catch (System::Exception^) {
1621+
shouldWarn = true;
1622+
}
1623+
}
1624+
else
1625+
shouldWarn = true;
1626+
1627+
if (shouldWarn) {
1628+
System::Windows::Forms::MessageBox::Show("Download completed!");
1629+
return;
1630+
}
1631+
1632+
System::Collections::Generic::List<string>^ list = Newtonsoft::Json::JsonConvert::DeserializeObject<System::Collections::Generic::List<string>^>(System::IO::File::ReadAllText("repos.json"));
1633+
list->Add(s);
1634+
InfernoModManager::WebDownloader::Repos = list;
1635+
System::IO::File::WriteAllText("repos.json", Newtonsoft::Json::JsonConvert::SerializeObject(InfernoModManager::WebDownloader::Repos));
1636+
PopulateDownloadsList();
1637+
}
1638+
};
15661639
}

0 commit comments

Comments
 (0)