Subversion Repositories spk

Rev

Rev 217 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#pragma once

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

#include "CustomiseTurret.h"
#include "CustomiseGuns.h"
#include "CustomiseWeapons.h"
#include "CustomiseWeapons1.h"
#include "CustomiseModel.h"
#include "CustomisePerformance.h"
#include "CustomiseInfo.h"

namespace Creator {

        /// <summary>
        /// Summary for CustomiseShip
        ///
        /// WARNING: If you change the name of this class, you will need to change the
        ///          'Resource File Name' property for the managed resource compiler tool
        ///          associated with all .resx files this class depends on.  Otherwise
        ///          the designers will not be able to interact properly with localized
        ///          resources associated with this form.
        /// </summary>
        public ref class CustomiseShip : public System::Windows::Forms::Form
        {
        public:
                CustomiseShip(CXspFile *shipFile, Windows::Forms::Form ^mainForm, CPackages *p, ImageList ^imagesSmall, ImageList ^imagesLarge, CGameDirectories *gameDir);

                CGameDirectories *gameDirectories();

                String ^GetPosition(int pos)
                {
                        switch ( pos )
                        {
                                case 0:
                                        return "Cockpit";       
                                case 1: 
                                        return "Front";
                                case 2:
                                        return "Rear";
                                case 3:
                                        return "Left";
                                case 4:
                                        return "Right";
                                case 5:
                                        return "Top";
                                case 6:
                                        return "Bottom";
                        }
                        return "";
                }

                void UpdateGunTurrets() { m_pCustomiseGuns->UpdateGunTurrets(); }
                void SetupControls();
                void SwitchGame();
                void LoadText(CVirtualFileSystem *vfs);

                void UpdateDisplay()
                {
                        m_pCustomiseInfo->UpdateDisplay();
                        m_pCustomisePerformance->UpdateDisplay();
                        m_pCustomiseWeapons1->UpdateDisplay();
                        m_pCustomiseModel->UpdateDisplay();
                        m_pCustomiseTurret->UpdateDisplay();
                }
        
        protected:
                ~CustomiseShip()
                {
                        if (components)
                        {
                                delete components;
                        }
                        delete m_pShipData;
                        if ( m_pWeapons )
                                m_pWeapons->MemoryClear();
                        delete m_pWeapons;
                        if ( _pModels )
                                delete _pModels;
                }

                CustomiseInfo                   ^m_pCustomiseInfo;
                CustomisePerformance    ^m_pCustomisePerformance;
                CustomiseWeapons1               ^m_pCustomiseWeapons1;
                CustomiseModel                  ^m_pCustomiseModel;
                CustomiseWeapons                ^m_pCustomiseWeapons;
                CustomiseGuns                   ^m_pCustomiseGuns;
                CustomiseTurret                 ^m_pCustomiseTurret;
                CLinkList<SWeaponMasks> *m_pWeapons;
                CPackages                               *m_pPackages;
                bool                                     m_bUpdateing;
                Windows::Forms::Form    ^m_pMainForm;
                CXspFile                                *m_pShipFile;
                CShipData                               *m_pShipData;
                Utils::WStringList              *_pModels;
                CGameDirectories                *_pGameDir;

                /// <summary>
                /// Clean up any resources being used.
                /// </summary>
                private: System::Windows::Forms::Panel^  panel1;
                private: System::Windows::Forms::Label^  label1;
                private: System::Windows::Forms::ComboBox^  ComboGame;
                private: System::Windows::Forms::Panel^  panel2;
                private: System::Windows::Forms::Button^  button2;
                private: System::Windows::Forms::Button^  ButSave;
private: System::Windows::Forms::ListView^  listView2;
private: System::Windows::Forms::ListView^  listView1;
private: System::Windows::Forms::CheckBox^  CheckWeaponDefaultCockpit;
private: System::Windows::Forms::TabPage^  tabPage7;
private: System::Windows::Forms::TabPage^  tabPage6;
private: System::Windows::Forms::TabPage^  tabPage5;
private: System::Windows::Forms::TabPage^  tabPage4;
private: System::Windows::Forms::TabPage^  tabPage3;
private: System::Windows::Forms::TabPage^  tabPage2;
private: System::Windows::Forms::TabControl^  tabControl1;

private: System::Windows::Forms::TabPage^  tabPage1;

private: System::ComponentModel::IContainer^  components;
                 /// <summary>
                /// Required designer variable.
                /// </summary>

#pragma region Windows Form Designer generated code
                /// <summary>
                /// Required method for Designer support - do not modify
                /// the contents of this method with the code editor.
                /// </summary>
                void InitializeComponent(void)
                {
                        this->panel1 = (gcnew System::Windows::Forms::Panel());
                        this->ComboGame = (gcnew System::Windows::Forms::ComboBox());
                        this->label1 = (gcnew System::Windows::Forms::Label());
                        this->panel2 = (gcnew System::Windows::Forms::Panel());
                        this->button2 = (gcnew System::Windows::Forms::Button());
                        this->ButSave = (gcnew System::Windows::Forms::Button());
                        this->tabPage7 = (gcnew System::Windows::Forms::TabPage());
                        this->tabPage6 = (gcnew System::Windows::Forms::TabPage());
                        this->tabPage5 = (gcnew System::Windows::Forms::TabPage());
                        this->tabPage4 = (gcnew System::Windows::Forms::TabPage());
                        this->tabPage3 = (gcnew System::Windows::Forms::TabPage());
                        this->tabPage2 = (gcnew System::Windows::Forms::TabPage());
                        this->tabControl1 = (gcnew System::Windows::Forms::TabControl());
                        this->tabPage1 = (gcnew System::Windows::Forms::TabPage());
                        this->panel1->SuspendLayout();
                        this->panel2->SuspendLayout();
                        this->tabControl1->SuspendLayout();
                        this->SuspendLayout();
                        // 
                        // panel1
                        // 
                        this->panel1->Controls->Add(this->ComboGame);
                        this->panel1->Controls->Add(this->label1);
                        this->panel1->Dock = System::Windows::Forms::DockStyle::Top;
                        this->panel1->Location = System::Drawing::Point(10, 10);
                        this->panel1->Name = L"panel1";
                        this->panel1->Padding = System::Windows::Forms::Padding(5);
                        this->panel1->Size = System::Drawing::Size(548, 32);
                        this->panel1->TabIndex = 0;
                        // 
                        // ComboGame
                        // 
                        this->ComboGame->Dock = System::Windows::Forms::DockStyle::Fill;
                        this->ComboGame->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
                        this->ComboGame->FormattingEnabled = true;
                        this->ComboGame->Location = System::Drawing::Point(155, 5);
                        this->ComboGame->Name = L"ComboGame";
                        this->ComboGame->Size = System::Drawing::Size(388, 21);
                        this->ComboGame->TabIndex = 1;
                        this->ComboGame->SelectedIndexChanged += gcnew System::EventHandler(this, &CustomiseShip::ComboGame_SelectedIndexChanged);
                        // 
                        // label1
                        // 
                        this->label1->Dock = System::Windows::Forms::DockStyle::Left;
                        this->label1->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, 
                                static_cast<System::Byte>(0)));
                        this->label1->Location = System::Drawing::Point(5, 5);
                        this->label1->Name = L"label1";
                        this->label1->Size = System::Drawing::Size(150, 22);
                        this->label1->TabIndex = 0;
                        this->label1->Text = L"Primary Game";
                        this->label1->TextAlign = System::Drawing::ContentAlignment::MiddleLeft;
                        // 
                        // panel2
                        // 
                        this->panel2->Controls->Add(this->button2);
                        this->panel2->Controls->Add(this->ButSave);
                        this->panel2->Dock = System::Windows::Forms::DockStyle::Bottom;
                        this->panel2->Location = System::Drawing::Point(10, 553);
                        this->panel2->Name = L"panel2";
                        this->panel2->Padding = System::Windows::Forms::Padding(8);
                        this->panel2->Size = System::Drawing::Size(548, 46);
                        this->panel2->TabIndex = 1;
                        // 
                        // button2
                        // 
                        this->button2->DialogResult = System::Windows::Forms::DialogResult::Cancel;
                        this->button2->Dock = System::Windows::Forms::DockStyle::Right;
                        this->button2->Location = System::Drawing::Point(331, 8);
                        this->button2->Name = L"button2";
                        this->button2->Size = System::Drawing::Size(99, 30);
                        this->button2->TabIndex = 1;
                        this->button2->Text = L"Cancel";
                        this->button2->UseVisualStyleBackColor = true;
                        // 
                        // ButSave
                        // 
                        this->ButSave->DialogResult = System::Windows::Forms::DialogResult::OK;
                        this->ButSave->Dock = System::Windows::Forms::DockStyle::Right;
                        this->ButSave->Location = System::Drawing::Point(430, 8);
                        this->ButSave->Name = L"ButSave";
                        this->ButSave->Size = System::Drawing::Size(110, 30);
                        this->ButSave->TabIndex = 0;
                        this->ButSave->Text = L"Save";
                        this->ButSave->UseVisualStyleBackColor = true;
                        this->ButSave->Click += gcnew System::EventHandler(this, &CustomiseShip::ButSave_Click);
                        // 
                        // tabPage7
                        // 
                        this->tabPage7->Location = System::Drawing::Point(4, 22);
                        this->tabPage7->Name = L"tabPage7";
                        this->tabPage7->Padding = System::Windows::Forms::Padding(10);
                        this->tabPage7->Size = System::Drawing::Size(540, 485);
                        this->tabPage7->TabIndex = 6;
                        this->tabPage7->Text = L"Guns";
                        this->tabPage7->UseVisualStyleBackColor = true;
                        // 
                        // tabPage6
                        // 
                        this->tabPage6->Location = System::Drawing::Point(4, 22);
                        this->tabPage6->Margin = System::Windows::Forms::Padding(10);
                        this->tabPage6->Name = L"tabPage6";
                        this->tabPage6->Padding = System::Windows::Forms::Padding(3);
                        this->tabPage6->Size = System::Drawing::Size(540, 485);
                        this->tabPage6->TabIndex = 5;
                        this->tabPage6->Text = L"Turrets";
                        this->tabPage6->UseVisualStyleBackColor = true;
                        // 
                        // tabPage5
                        // 
                        this->tabPage5->Location = System::Drawing::Point(4, 22);
                        this->tabPage5->Name = L"tabPage5";
                        this->tabPage5->Padding = System::Windows::Forms::Padding(10);
                        this->tabPage5->Size = System::Drawing::Size(540, 485);
                        this->tabPage5->TabIndex = 4;
                        this->tabPage5->Text = L"Lasers/Missiles";
                        this->tabPage5->UseVisualStyleBackColor = true;
                        // 
                        // tabPage4
                        // 
                        this->tabPage4->Location = System::Drawing::Point(4, 22);
                        this->tabPage4->Name = L"tabPage4";
                        this->tabPage4->Padding = System::Windows::Forms::Padding(3);
                        this->tabPage4->Size = System::Drawing::Size(540, 485);
                        this->tabPage4->TabIndex = 3;
                        this->tabPage4->Text = L"Model";
                        this->tabPage4->UseVisualStyleBackColor = true;
                        // 
                        // tabPage3
                        // 
                        this->tabPage3->Location = System::Drawing::Point(4, 22);
                        this->tabPage3->Name = L"tabPage3";
                        this->tabPage3->Padding = System::Windows::Forms::Padding(3);
                        this->tabPage3->Size = System::Drawing::Size(540, 485);
                        this->tabPage3->TabIndex = 2;
                        this->tabPage3->Text = L"Weapons";
                        this->tabPage3->UseVisualStyleBackColor = true;
                        // 
                        // tabPage2
                        // 
                        this->tabPage2->Location = System::Drawing::Point(4, 22);
                        this->tabPage2->Name = L"tabPage2";
                        this->tabPage2->Padding = System::Windows::Forms::Padding(3);
                        this->tabPage2->Size = System::Drawing::Size(540, 485);
                        this->tabPage2->TabIndex = 1;
                        this->tabPage2->Text = L"Performance";
                        this->tabPage2->UseVisualStyleBackColor = true;
                        // 
                        // tabControl1
                        // 
                        this->tabControl1->Controls->Add(this->tabPage1);
                        this->tabControl1->Controls->Add(this->tabPage2);
                        this->tabControl1->Controls->Add(this->tabPage3);
                        this->tabControl1->Controls->Add(this->tabPage4);
                        this->tabControl1->Controls->Add(this->tabPage5);
                        this->tabControl1->Controls->Add(this->tabPage6);
                        this->tabControl1->Controls->Add(this->tabPage7);
                        this->tabControl1->Dock = System::Windows::Forms::DockStyle::Fill;
                        this->tabControl1->Location = System::Drawing::Point(10, 42);
                        this->tabControl1->Name = L"tabControl1";
                        this->tabControl1->SelectedIndex = 0;
                        this->tabControl1->Size = System::Drawing::Size(548, 511);
                        this->tabControl1->TabIndex = 2;
                        // 
                        // tabPage1
                        // 
                        this->tabPage1->Location = System::Drawing::Point(4, 22);
                        this->tabPage1->Name = L"tabPage1";
                        this->tabPage1->Padding = System::Windows::Forms::Padding(3);
                        this->tabPage1->Size = System::Drawing::Size(540, 485);
                        this->tabPage1->TabIndex = 0;
                        this->tabPage1->Text = L"Ship Info";
                        this->tabPage1->UseVisualStyleBackColor = true;
                        // 
                        // CustomiseShip
                        // 
                        this->AcceptButton = this->ButSave;
                        this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
                        this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
                        this->CancelButton = this->button2;
                        this->ClientSize = System::Drawing::Size(568, 609);
                        this->Controls->Add(this->tabControl1);
                        this->Controls->Add(this->panel2);
                        this->Controls->Add(this->panel1);
                        this->Name = L"CustomiseShip";
                        this->Padding = System::Windows::Forms::Padding(10);
                        this->ShowInTaskbar = false;
                        this->StartPosition = System::Windows::Forms::FormStartPosition::CenterParent;
                        this->Text = L"Customise Ship";
                        this->panel1->ResumeLayout(false);
                        this->panel2->ResumeLayout(false);
                        this->tabControl1->ResumeLayout(false);
                        this->ResumeLayout(false);

                }
#pragma endregion
        private: System::Void ComboGame_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) {
                                 this->SwitchGame();
                         }
private: System::Void ButSave_Click(System::Object^  sender, System::EventArgs^  e) {
                         m_pShipFile->setCreatedShipData(m_pShipData);
                         for ( SWeaponMasks *m = m_pWeapons->First(); m; m = m_pWeapons->Next() )
                         {
                                 if ( m->iLaserMask > -1 )
                                         m_pShipFile->SetLaserMask(m->iGame, m->iLaserMask);
                                 if ( m->iMissileMask > -1 )
                                         m_pShipFile->SetMissileMask(m->iGame, m->iMissileMask);
                         }
                 }
};
}