Rev 101 | Rev 191 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
#include "../StdAfx.h"#include "CustomiseShip.h"#include "Form1.h"namespace Creator {CustomiseShip::CustomiseShip(CXspFile *shipFile, Windows::Forms::Form ^mainForm, CPackages *p, ImageList ^imagesSmall, ImageList ^imagesLarge, CGameDirectories *gameDir){InitializeComponent();m_bUpdateing = false;m_pPackages = p;m_pMainForm = mainForm;m_pShipFile = shipFile;m_pShipData = new CShipData(m_pShipFile->GetShipData());m_pWeapons = new CLinkList<SWeaponMasks>;m_pModels = m_pShipFile->ReadSceneModels();this->Text = "Customise Ship: " + SystemStringFromCyString(m_pShipData->sID);m_pCustomiseInfo = gcnew CustomiseInfo(this, m_pShipData);this->tabPage1->Controls->Add(m_pCustomiseInfo);m_pCustomisePerformance = gcnew CustomisePerformance(m_pShipData);this->tabPage2->Controls->Add(m_pCustomisePerformance);m_pCustomiseWeapons1 = gcnew CustomiseWeapons1(this, m_pShipData);this->tabPage3->Controls->Add(m_pCustomiseWeapons1);m_pCustomiseModel = gcnew CustomiseModel(m_pShipData);this->tabPage4->Controls->Add(m_pCustomiseModel);m_pCustomiseWeapons = gcnew CustomiseWeapons(this, m_pWeapons, m_pShipData);this->tabPage5->Controls->Add(m_pCustomiseWeapons);m_pCustomiseGuns = gcnew CustomiseGuns(this, imagesSmall, imagesLarge, m_pShipData, m_pModels);this->tabPage7->Controls->Add(m_pCustomiseGuns);m_pCustomiseTurret = gcnew CustomiseTurret(this, imagesSmall, imagesLarge, m_pModels, m_pShipData, m_pShipFile);this->tabPage6->Controls->Add(m_pCustomiseTurret);_pGameDir = gameDir;this->SetupControls();}void CustomiseShip::SwitchGame(){bool m_bUpdateding = true;Utils::String dir = _S(this->ComboGame->Items[this->ComboGame->SelectedIndex]->ToString());dir = dir.token("[", -1).token("]", 1);_pGameDir->setSelectedDirectory(dir);((Form1 ^)m_pMainForm)->LoadText(_pGameDir->selectedVFS());// the ship infom_pCustomiseInfo->UpdateInfo();// the shield entriesm_pCustomiseWeapons1->UpdateShields();// the cockpit entriesm_pCustomiseTurret->UpdateCockpits();// notority presetthis->UpdateDisplay();bool m_bUpdateing = false;}void CustomiseShip::LoadText(CVirtualFileSystem *vfs){((Form1 ^)m_pMainForm)->LoadText(vfs);}void CustomiseShip::SetupControls(){this->ComboGame->Enabled = true;this->ComboGame->Items->Clear();int selectedGame = 0;int highestGame = 0;for ( Utils::String dir = _pGameDir->first(); !dir.empty(); dir = _pGameDir->next() ) {if ( _pGameDir->currentGame() > highestGame ) {selectedGame = this->ComboGame->Items->Count;highestGame = _pGameDir->currentGame();}this->ComboGame->Items->Add(_US(_pGameDir->currentName() + " [" + dir + "]"));}//((Form1 ^)m_pMainForm)->LoadText(NULL);for ( int i = 1; i < m_pPackages->GetGameExe()->GetNumGames(); i++ ){SGameExe *gameExe = m_pPackages->GetGameExe()->GetGame(i);if ( gameExe ){//this->ComboGame->Items->Add(SystemStringFromCyString(gameExe->sName));m_pCustomiseTurret->AddGameEntry(SystemStringFromCyString(gameExe->sName));m_pCustomiseWeapons->AddGameEntry(SystemStringFromCyString(gameExe->sName));}SWeaponMasks *m = m_pWeapons->push_back(new SWeaponMasks);m->iGame = i;m->iLaserMask = m_pShipFile->GetLaserMask(i, true);m->iMissileMask = m_pShipFile->GetMissileMask(i, true);}// find heighest game we have addedif ( !this->ComboGame->Items->Count ) {this->ComboGame->Items->Add(":: None Found ::");this->ComboGame->Enabled = false;}this->ComboGame->SelectedIndex = selectedGame;m_pCustomiseWeapons->SetupControlsEnd();m_pCustomiseTurret->SetupControlsEnd();}CGameDirectories *CustomiseShip::gameDirectories(){return _pGameDir;}}