| 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 | };
 |