Rev 197 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#include "..\StdAfx.h"
#include "StartUp.h"
namespace PluginManager {
bool StartUp::LoadDirectory()
{
if (_sDir->empty())
{
m_bLoaded = false;
return false;
}
bool ret = m_pPackages->read(*_sDir, 0);
if (ret)
{
m_pPackages->UpdatePackages();
m_pPackages->ReadGameLanguage(false);
}
m_bLoaded = ret;
return m_bLoaded;
}
void StartUp::Background_DoWork(System::Object ^Sender, DoWorkEventArgs ^E)
{
switch ( m_iLoadStatus )
{
case 0:
if (_sDir->empty())
m_bLoaded = false;
else if (m_pPackages->read(*_sDir, 0))
m_bLoaded = true;
break;
case 1:
m_pPackages->UpdatePackages(0);
break;
case 2:
m_pPackages->UpdatePackages(1, true);
break;
case 3:
m_pPackages->UpdatePackages(2);
break;
case 4:
m_pPackages->UpdatePackages(3);
break;
case 5:
break;
}
if ( m_iProgressMax )
backgroundWorker1->ReportProgress((int)(((float)m_iProgressCount / (float)m_iProgressMax) * 100.0f));
}
void StartUp::Background_Progress(System::Object ^Sender, ProgressChangedEventArgs ^E)
{
this->progressBar1->Value = E->ProgressPercentage;
}
void StartUp::Background_Finished(System::Object ^Sender, RunWorkerCompletedEventArgs ^E)
{
bool dontInc = false;
switch ( m_iLoadStatus )
{
case 0:
if (!m_bLoaded)
{
this->Close();
return;
}
else
{
this->label1->Text = "Checking for Original Files";
this->label2->Text = "Please Wait...";
}
break;
case 1:
this->label1->Text = "Updating Package";
m_pPackages->StartPackage();
m_iProgressCount = 1;
m_iProgressMax = m_pPackages->countPackages(TYPE_BASE, false);
this->progressBar1->Show();
this->progressBar1->Value = 0;
if ( m_pPackages->GetCurrentPackage() )
this->label2->Text = _US(m_pPackages->GetCurrentPackage()->getFullPackageName(m_pPackages->GetLanguage()));
else
++m_iLoadStatus;
break;
case 2:
++m_iProgressCount;
if ( m_pPackages->GetCurrentPackage() )
{
this->label2->Text = _US(m_pPackages->GetCurrentPackage()->getFullPackageName(m_pPackages->GetLanguage()));
dontInc = true;
}
else
{
this->label1->Text = "Reading Virtual File System";
this->label2->Text = "Please Wait...";
m_iProgressMax = 0;
this->progressBar1->Hide();
}
break;
case 3:
this->label1->Text = "Organising Save Games";
break;
case 4:
this->label1->Text = "Reading Game Type";
break;
case 5:
m_pPackages->ReadGameLanguage(false);
this->Close();
return;
default:
this->Close();
}
if ( !dontInc )
++m_iLoadStatus;
backgroundWorker1->RunWorkerAsync();
}
}