| 88 | cycrow | 1 | //#include "stdafx.h"
 | 
        
           |  |  | 2 | #include "EditWares.h"
 | 
        
           |  |  | 3 |   | 
        
           |  |  | 4 | #include "Utils/StringList.h"
 | 
        
           |  |  | 5 | #include "../../common/spknet.h"
 | 
        
           |  |  | 6 | #include "EditPrice.h"
 | 
        
           |  |  | 7 |   | 
        
           |  |  | 8 | namespace PluginManager {
 | 
        
           |  |  | 9 |   | 
        
           |  |  | 10 | 	void EditWares::loadWares()
 | 
        
           |  |  | 11 | 	{
 | 
        
           |  |  | 12 | 		this->listView1->Items->Clear();
 | 
        
           |  |  | 13 | 		this->listView1->Groups->Clear();
 | 
        
           |  |  | 14 |   | 
        
           |  |  | 15 | 		for (CBaseFile *package = _pPackages->FirstPackage(); package; package = _pPackages->NextPackage()) {
 | 
        
           |  |  | 16 | 			if ( !package->IsEnabled() ) continue;
 | 
        
           |  |  | 17 |   | 
        
           |  |  | 18 | 			CLinkList<SWareEntry> list;
 | 
        
           |  |  | 19 | 			if ( package->readWares(_pPackages->GetLanguage(), list, _pPackages->empWaresForGame()) ) {
 | 
        
           |  |  | 20 |   | 
        
           |  |  | 21 | 				ListViewGroup ^group = gcnew ListViewGroup(_US(package->GetFullPackageName(44).ToString()), HorizontalAlignment::Left);
 | 
        
           |  |  | 22 | 				this->listView1->Groups->Add(group);
 | 
        
           |  |  | 23 |   | 
        
           |  |  | 24 | 				for(CListNode<SWareEntry> *node = list.Front(); node; node = node->next()) {
 | 
        
           |  |  | 25 | 					ListViewItem ^item = gcnew ListViewItem(_US(node->Data()->name));
 | 
        
           |  |  | 26 | 					item->UseItemStyleForSubItems = false;
 | 
        
           |  |  | 27 |   | 
        
           |  |  | 28 | 					int price = 0;
 | 
        
           |  |  | 29 | 					bool notoOverride = false;
 | 
        
           |  |  | 30 | 					int noto = 0;
 | 
        
           |  |  | 31 |   | 
        
           |  |  | 32 | 					switch(node->Data()->type) {
 | 
        
           |  |  | 33 | 						case Ware_EMP:
 | 
        
           |  |  | 34 | 							price = _pPackages->empOveridePrice(node->Data()->position);
 | 
        
           |  |  | 35 | 							notoOverride = _pPackages->empOverideNoto(node->Data()->position, ¬o);
 | 
        
           |  |  | 36 | 							item->SubItems->Add("EMP");
 | 
        
           |  |  | 37 | 							break;
 | 
        
           |  |  | 38 |   | 
        
           |  |  | 39 | 						case Ware_BuiltIn:
 | 
        
           |  |  | 40 | 							item->SubItems->Add("Built-In");
 | 
        
           |  |  | 41 | 							price = _pPackages->builtInWareOveridePrice(node->Data()->position);
 | 
        
           |  |  | 42 | 							notoOverride = _pPackages->builtInWareOverideNoto(node->Data()->position, ¬o);
 | 
        
           |  |  | 43 | 							break;
 | 
        
           |  |  | 44 |   | 
        
           |  |  | 45 | 						case Ware_Custom:
 | 
        
           |  |  | 46 | 							price = _pPackages->customWareOveridePrice(node->Data()->id);
 | 
        
           |  |  | 47 | 							notoOverride = _pPackages->customWareOverideNoto(node->Data()->id, ¬o);
 | 
        
           |  |  | 48 | 							item->SubItems->Add("Custom");
 | 
        
           |  |  | 49 | 							break;
 | 
        
           |  |  | 50 |   | 
        
           |  |  | 51 | 						default:
 | 
        
           |  |  | 52 | 							item->SubItems->Add("");
 | 
        
           |  |  | 53 | 					}
 | 
        
           |  |  | 54 |   | 
        
           |  |  | 55 | 					bool priceOverride = true;
 | 
        
           |  |  | 56 | 					if ( !price ) {
 | 
        
           |  |  | 57 | 						price = node->Data()->relval;
 | 
        
           |  |  | 58 | 						priceOverride = false;
 | 
        
           |  |  | 59 | 					}
 | 
        
           |  |  | 60 | 					item->SubItems->Add(_price(price));
 | 
        
           |  |  | 61 | 					item->SubItems->Add(_noto((notoOverride) ? noto :  node->Data()->notority));
 | 
        
           |  |  | 62 | 					item->SubItems->Add(_US(node->Data()->description));
 | 
        
           |  |  | 63 | 					item->SubItems->Add(_US(node->Data()->id));
 | 
        
           |  |  | 64 | 					item->SubItems->Add(Convert::ToString(node->Data()->type));
 | 
        
           |  |  | 65 | 					item->SubItems->Add(Convert::ToString(price));
 | 
        
           |  |  | 66 | 					item->ImageIndex = 0;
 | 
        
           |  |  | 67 | 					item->Group = group;
 | 
        
           |  |  | 68 | 					item->Tag = node->Data()->position;
 | 
        
           |  |  | 69 | 					this->listView1->Items->Add(item);
 | 
        
           |  |  | 70 |   | 
        
           |  |  | 71 | 					item->SubItems[2]->ForeColor = (priceOverride) ? Color::Green : Color::Black;
 | 
        
           |  |  | 72 | 					item->SubItems[3]->ForeColor = (notoOverride) ? Color::Green : Color::Black;
 | 
        
           |  |  | 73 | 				}
 | 
        
           |  |  | 74 | 			}
 | 
        
           |  |  | 75 | 		}
 | 
        
           |  |  | 76 |   | 
        
           |  |  | 77 | 		this->listView1->AutoResizeColumns(ColumnHeaderAutoResizeStyle::HeaderSize);
 | 
        
           |  |  | 78 | 		this->listView1->Columns[6]->Width = 0;
 | 
        
           |  |  | 79 | 		this->listView1->Columns[7]->Width = 0;
 | 
        
           |  |  | 80 | 	}
 | 
        
           |  |  | 81 |   | 
        
           |  |  | 82 | 	String ^EditWares::_price(int iPrice)
 | 
        
           |  |  | 83 | 	{
 | 
        
           |  |  | 84 | 		return "" + String::Format("{0:#,##0}", (iPrice * 28) * 1.00268550164);
 | 
        
           |  |  | 85 | 	}
 | 
        
           |  |  | 86 |   | 
        
           |  |  | 87 | 	String ^EditWares::_noto(int iNoto)
 | 
        
           |  |  | 88 | 	{
 | 
        
           |  |  | 89 | 		return String::Format("{0:#,##0}", iNoto);
 | 
        
           |  |  | 90 | 	}
 | 
        
           |  |  | 91 |   | 
        
           |  |  | 92 | 	void EditWares::editPrice()
 | 
        
           |  |  | 93 | 	{
 | 
        
           |  |  | 94 | 		if ( !this->listView1->SelectedItems->Count ) return;
 | 
        
           |  |  | 95 |   | 
        
           |  |  | 96 | 		ListViewItem ^item = this->listView1->SelectedItems[0];
 | 
        
           |  |  | 97 |   | 
        
           |  |  | 98 | 		EditPrice ^priceDlg = gcnew EditPrice(Convert::ToInt32(item->SubItems[7]->Text));
 | 
        
           |  |  | 99 |   | 
        
           |  |  | 100 | 		if ( priceDlg->ShowDialog(this) == System::Windows::Forms::DialogResult::OK ) {
 | 
        
           |  |  | 101 | 			enum WareTypes type = (enum WareTypes)Convert::ToInt32(item->SubItems[6]->Text);
 | 
        
           |  |  | 102 | 			int position = Convert::ToInt32(item->Tag);
 | 
        
           |  |  | 103 |   | 
        
           |  |  | 104 | 			int price = priceDlg->price();
 | 
        
           |  |  | 105 |   | 
        
           |  |  | 106 | 			switch(type) {
 | 
        
           |  |  | 107 | 				case Ware_EMP:
 | 
        
           |  |  | 108 | 					_pPackages->addEMPPriceOverride(position, price);
 | 
        
           |  |  | 109 | 					break;
 | 
        
           |  |  | 110 | 				case Ware_BuiltIn:
 | 
        
           |  |  | 111 | 					_pPackages->addBuiltInWarePriceOverride(position, price);
 | 
        
           |  |  | 112 | 					break;
 | 
        
           |  |  | 113 | 				case Ware_Custom:
 | 
        
           |  |  | 114 | 					_pPackages->addCustomWarePriceOverride(_S(item->SubItems[5]->Text), price);
 | 
        
           |  |  | 115 | 					break;
 | 
        
           |  |  | 116 | 			}
 | 
        
           |  |  | 117 |   | 
        
           |  |  | 118 | 			item->SubItems[2]->ForeColor = Color::Green;
 | 
        
           |  |  | 119 | 			item->SubItems[2]->Text = _price(price);
 | 
        
           |  |  | 120 | 		}
 | 
        
           |  |  | 121 | 	}
 | 
        
           |  |  | 122 |   | 
        
           |  |  | 123 | 	void EditWares::editNoto(int iNoto)
 | 
        
           |  |  | 124 | 	{
 | 
        
           |  |  | 125 | 		if ( !this->listView1->SelectedItems->Count ) return;
 | 
        
           |  |  | 126 |   | 
        
           |  |  | 127 | 		ListViewItem ^item = this->listView1->SelectedItems[0];
 | 
        
           |  |  | 128 |   | 
        
           |  |  | 129 | 		enum WareTypes type = (enum WareTypes)Convert::ToInt32(item->SubItems[6]->Text);
 | 
        
           |  |  | 130 | 		int position = Convert::ToInt32(item->Tag);
 | 
        
           |  |  | 131 |   | 
        
           |  |  | 132 | 		switch(type) {
 | 
        
           |  |  | 133 | 			case Ware_EMP:
 | 
        
           |  |  | 134 | 				_pPackages->addEMPNotoOverride(position, iNoto);
 | 
        
           |  |  | 135 | 				break;
 | 
        
           |  |  | 136 | 			case Ware_BuiltIn:
 | 
        
           |  |  | 137 | 				_pPackages->addBuiltInWareNotoOverride(position, iNoto);
 | 
        
           |  |  | 138 | 				break;
 | 
        
           |  |  | 139 | 			case Ware_Custom:
 | 
        
           |  |  | 140 | 				_pPackages->addCustomWareNotoOverride(_S(item->SubItems[5]->Text), iNoto);
 | 
        
           |  |  | 141 | 				break;
 | 
        
           |  |  | 142 | 		}
 | 
        
           |  |  | 143 |   | 
        
           |  |  | 144 | 		item->SubItems[3]->ForeColor = Color::Green;
 | 
        
           |  |  | 145 | 		item->SubItems[3]->Text = _noto(iNoto);
 | 
        
           |  |  | 146 | 	}
 | 
        
           |  |  | 147 |   | 
        
           |  |  | 148 | 	void EditWares::reset()
 | 
        
           |  |  | 149 | 	{
 | 
        
           |  |  | 150 | 		if ( !this->listView1->SelectedItems->Count ) return;
 | 
        
           |  |  | 151 |   | 
        
           |  |  | 152 | 		ListViewItem ^item = this->listView1->SelectedItems[0];
 | 
        
           |  |  | 153 |   | 
        
           |  |  | 154 | 		enum WareTypes type = (enum WareTypes)Convert::ToInt32(item->SubItems[6]->Text);
 | 
        
           |  |  | 155 | 		int position = Convert::ToInt32(item->Tag);
 | 
        
           |  |  | 156 |   | 
        
           |  |  | 157 | 		switch(type) {
 | 
        
           |  |  | 158 | 			case Ware_EMP:
 | 
        
           |  |  | 159 | 				_pPackages->removeEmpOverride(position);
 | 
        
           |  |  | 160 | 				break;
 | 
        
           |  |  | 161 | 			case Ware_BuiltIn:
 | 
        
           |  |  | 162 | 				_pPackages->removeBuiltinWareOverride(position);
 | 
        
           |  |  | 163 | 				break;
 | 
        
           |  |  | 164 | 			case Ware_Custom:
 | 
        
           |  |  | 165 | 				_pPackages->removeCustomWareOverride(_S(item->SubItems[5]->Text));
 | 
        
           |  |  | 166 | 				break;
 | 
        
           |  |  | 167 | 		}
 | 
        
           |  |  | 168 |   | 
        
           |  |  | 169 | 		this->loadWares();
 | 
        
           |  |  | 170 | 	}
 | 
        
           |  |  | 171 | }
 |