Subversion Repositories spk

Rev

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