Subversion Repositories spk

Rev

Rev 197 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 cycrow 1
#include "..\StdAfx.h"
2
#include "StartUp.h"
3
 
4
namespace PluginManager {
5
 
6
	bool StartUp::LoadDirectory()
7
	{
121 cycrow 8
		if (_sDir->empty())
9
		{
10
			m_bLoaded = false;
11
			return false;
12
		}
1 cycrow 13
 
224 cycrow 14
		bool ret = m_pPackages->read(*_sDir, 0);
121 cycrow 15
		if (ret)
1 cycrow 16
		{
17
			m_pPackages->UpdatePackages();
18
			m_pPackages->ReadGameLanguage(false);
19
		}
20
 
21
		m_bLoaded = ret;
22
		return m_bLoaded;
23
	}
24
 
25
	void StartUp::Background_DoWork(System::Object ^Sender, DoWorkEventArgs ^E)
26
	{
27
		switch ( m_iLoadStatus )
28
		{
29
			case 0:
121 cycrow 30
				if (_sDir->empty())
31
					m_bLoaded = false;
197 cycrow 32
				else if (m_pPackages->read(*_sDir, 0))
1 cycrow 33
					m_bLoaded = true;
34
				break;
35
 
36
			case 1:
37
				m_pPackages->UpdatePackages(0);
38
				break;
39
 
40
			case 2:
41
				m_pPackages->UpdatePackages(1, true);
42
				break;
43
 
44
			case 3:
45
				m_pPackages->UpdatePackages(2);
46
				break;
47
 
48
			case 4:
49
				m_pPackages->UpdatePackages(3);
50
				break;
51
 
52
			case 5:
53
				break;				
54
		}
55
 
56
		if ( m_iProgressMax )
57
			backgroundWorker1->ReportProgress((int)(((float)m_iProgressCount / (float)m_iProgressMax) * 100.0f));
58
	}
59
 
60
	void StartUp::Background_Progress(System::Object ^Sender, ProgressChangedEventArgs ^E)
61
	{
62
		this->progressBar1->Value = E->ProgressPercentage;
63
	}
64
 
65
	void StartUp::Background_Finished(System::Object ^Sender, RunWorkerCompletedEventArgs ^E)
66
	{
67
		bool dontInc = false;
68
		switch ( m_iLoadStatus )
69
		{
70
			case 0:
121 cycrow 71
				if (!m_bLoaded)
72
				{
1 cycrow 73
					this->Close();
121 cycrow 74
					return;
75
				}
1 cycrow 76
				else
77
				{
78
					this->label1->Text = "Checking for Original Files";
79
					this->label2->Text = "Please Wait...";
80
				}
81
				break;
82
 
83
			case 1:
84
				this->label1->Text = "Updating Package";
85
				m_pPackages->StartPackage();
86
				m_iProgressCount = 1;
179 cycrow 87
				m_iProgressMax = m_pPackages->countPackages(TYPE_BASE, false);
1 cycrow 88
				this->progressBar1->Show();
89
				this->progressBar1->Value = 0;
90
				if ( m_pPackages->GetCurrentPackage() )
170 cycrow 91
					this->label2->Text = _US(m_pPackages->GetCurrentPackage()->getFullPackageName(m_pPackages->GetLanguage()));
1 cycrow 92
				else
93
					++m_iLoadStatus;
94
				break;
95
 
96
			case 2:
97
				++m_iProgressCount;
98
				if ( m_pPackages->GetCurrentPackage() )
99
				{
170 cycrow 100
					this->label2->Text = _US(m_pPackages->GetCurrentPackage()->getFullPackageName(m_pPackages->GetLanguage()));
1 cycrow 101
					dontInc = true;
102
				}
103
				else
104
				{
105
					this->label1->Text = "Reading Virtual File System";
106
					this->label2->Text = "Please Wait...";
107
					m_iProgressMax = 0;
108
					this->progressBar1->Hide();
109
				}
110
				break;
111
 
112
			case 3:
113
				this->label1->Text = "Organising Save Games";
114
				break;
115
 
116
			case 4:
117
				this->label1->Text = "Reading Game Type";
118
				break;
119
 
120
			case 5:
121
				m_pPackages->ReadGameLanguage(false);
122
				this->Close();
123
				return;
124
 
125
			default:
126
				this->Close();
127
		}
128
 
129
		if ( !dontInc )
130
			++m_iLoadStatus;
131
		backgroundWorker1->RunWorkerAsync();
132
	}
133
}