Subversion Repositories spk

Rev

Rev 94 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 cycrow 1
#include "../StdAfx.h"
2
#include "CustomiseInfo.h"
3
 
4
namespace Creator {
5
	String ^CustomiseInfo::AddText(String ^text, String ^def) { return ((CustomiseShip ^)m_pParent)->AddText(text, def); }
6
	String ^CustomiseInfo::FindText(int game, int page, int id) { return ((CustomiseShip ^)m_pParent)->FindText(game, page, id); }
7
 
8
	void CustomiseInfo::UpdateDisplay()
9
	{
10
		m_bUpdateing = true;
11
		this->ComboClass->SelectedIndex = CShipData::ConvertShipClassToNum(m_pShipData->iClass);
12
		this->ComboRace->SelectedIndex = m_pShipData->iRace - 1;
13
		this->ComboVariation->SelectedIndex = m_pShipData->iVariation;
14
		this->NumDock->Value = m_pShipData->iDocking;
15
		this->NumCargoMin->Value = m_pShipData->iCargoMin;
16
		this->NumCargoMax->Value = m_pShipData->iCargoMax;
17
		this->ComboCargo->SelectedIndex = m_pShipData->iCargoClass;
18
		this->NumPriceNPC->Value = m_pShipData->iRelVal;
19
		this->NumPricePlayer->Value = m_pShipData->iRelValPlayer;
20
		this->NumNoto->Value = m_pShipData->iMinNoto;
21
		this->ComboSubType->SelectedIndex = m_pShipData->iSubType;
22
		m_bUpdateing = false;
23
	}
24
 
25
	void CustomiseInfo::UpdateInfo()
26
	{
27
		m_bUpdateing = true;
28
		// fill race entries
29
		this->ComboRace->Items->Clear();
30
		for ( int i = 1; i <= 19; i++ )
31
		{
32
			if ( i == 10 ) // special case for player
33
				this->ComboRace->Items->Add("Player");
34
			else
35
				this->ComboRace->Items->Add(this->AddText(this->FindText(-1, TEXTPAGE_RACE, i), Convert::ToString(i)));
36
		}
37
 
38
		// fill variation entries
39
		this->ComboVariation->Items->Clear();
40
		this->ComboVariation->Items->Add("Standard");
41
		for ( int i = 1; i <= 20; i++ )
42
			this->ComboVariation->Items->Add(this->AddText(this->FindText(-1, TEXTPAGE_OBJECTS, 10000 + i), Convert::ToString(i)));
43
 
44
		// fill ship class entries
45
		this->ComboClass->Items->Clear();
46
		for ( int i = 0; i < OBJ_SHIP_MAX; i++ )
47
			this->ComboClass->Items->Add(this->AddText(this->FindText(-1, TEXTPAGE_CLASS, CShipData::GetShipClassFromNum(i)), SystemStringFromCyString(CShipData::ConvertShipClass(CShipData::GetShipClassFromNum(i)))));
48
 
49
		// the cargo class
50
		this->ComboCargo->Items->Clear();
51
		for ( int i = 0; i < 6; i++ )
52
		{
53
			String ^findText = this->FindText(-1, TEXTPAGE_CARGOCLASS, i + 10);
54
			if ( !findText || !findText->Length )
55
				this->ComboCargo->Items->Add(this->AddText(this->FindText(-1, TEXTPAGE_CARGOCLASS, i), this->GetCargoClass(i)));
56
			else
57
				this->ComboCargo->Items->Add(this->AddText(findText + " (" + this->FindText(-1, TEXTPAGE_CARGOCLASS, i) + ")", this->GetCargoClass(i)));
58
		}
59
 
60
		// the sub type
61
		this->ComboSubType->Items->Clear();
62
		for ( int i = 0; i < SG_SH_MAX; i++ )
63
			this->ComboSubType->Items->Add(SystemStringFromCyString(CShipData::ConvertShipSubType(i)));
64
 
65
		this->UpdateNotority();
66
		m_bUpdateing = false;
67
	}
68
 
69
	void CustomiseInfo::UpdateNotority()
70
	{
71
		this->ComboNoto->Items->Clear();
72
		String ^findText = this->FindText(-1, this->GetNotoPage(m_pShipData->iRace), 110);
73
		if ( this->GetNotoPage(m_pShipData->iRace) == 0 || !findText || !findText->Length )
74
			this->ComboNoto->Enabled = false;
75
		else
76
		{
77
			this->ComboNoto->Enabled = true;
78
			this->ComboNoto->Items->Add("-");
79
			for ( int i = 0; i < 16; i++ )
80
				this->ComboNoto->Items->Add(this->FindText(-1, this->GetNotoPage(m_pShipData->iRace), 110 - i));
81
		}
82
	}
83
 
84
	String ^CustomiseInfo::GetCargoClass(int i)
85
	{
86
		switch ( i )
87
		{
88
			case 1:
89
				return "S";
90
			case 2:
91
				return "M";
92
			case 3:
93
				return "L";
94
			case 4:
95
				return "XL";
96
			case 5:
97
				return "ST";
98
		}
99
 
100
		return "-";
101
	}
102
 
103
	int CustomiseInfo::GetNotoPage(int race)
104
	{
105
		switch ( race )
106
		{
107
			case 1: // argon
108
				return 23;
109
			case 2: // boron
110
				return 24;
111
			case 3: // split
112
				return 25;
113
			case 4: // paranid
114
				return 26;
115
			case 5: // teladi
116
				return 27;
117
			case 9: // goner
118
				return 28;
119
			case 18: // terran
120
				return 829;
121
			case 17: // atf
122
				return 830;
123
			default:
124
				return 0;
125
		}
126
	}
127
 
128
	int CustomiseInfo::GetNotoAmount(int preset)
129
	{
130
		switch ( preset )
131
		{
132
			case 1:
133
				return 333333;
134
			case 2:
135
				return 100000;
136
			case 3:
137
				return 33333;
138
			case 4:
139
				return 10000;
140
			case 5:
141
				return 3333;
142
			case 6:
143
				return 1000;
144
			case 7:
145
				return 333;
146
			case 8:
147
				return 100;
148
			case 9:
149
				return 33;
150
			case 10:
151
				return 10;
152
			case 11:
153
				return 0;
154
			case 12:
155
				return -11;
156
			case 13:
157
				return -101;
158
			case 14:
159
				return -1001;
160
			case 15:
161
				return -10001;
162
			case 16:
163
				return -100001;
164
			default:
165
				return 0;
166
		}
167
	}
168
 
169
};