Beispiel #1
0
        private void CarFlagsTextBox_TextChanged(object sender, EventArgs e)
        {
            if (populatingui)
            {
                return;
            }
            if (CurrentCarGen == null)
            {
                return;
            }
            uint flags = 0;

            uint.TryParse(CarFlagsTextBox.Text, out flags);
            populatingui = true;
            for (int i = 0; i < CarFlagsCheckedListBox.Items.Count; i++)
            {
                var c = ((flags & (1u << i)) > 0);
                CarFlagsCheckedListBox.SetItemCheckState(i, c ? CheckState.Checked : CheckState.Unchecked);
            }
            populatingui = false;
            lock (ProjectForm.ProjectSyncRoot)
            {
                if (CurrentCarGen._CCarGen.flags != flags)
                {
                    CurrentCarGen._CCarGen.flags = flags;
                    ProjectForm.SetYmapHasChanged(true);
                }
            }
        }
Beispiel #2
0
        private void CarFlagsCheckedListBox_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (populatingui)
            {
                return;
            }
            if (CurrentCarGen == null)
            {
                return;
            }
            uint flags = 0;

            for (int i = 0; i < CarFlagsCheckedListBox.Items.Count; i++)
            {
                if (e.Index == i)
                {
                    if (e.NewValue == CheckState.Checked)
                    {
                        flags += (uint)(1 << i);
                    }
                }
                else
                {
                    if (CarFlagsCheckedListBox.GetItemChecked(i))
                    {
                        flags += (uint)(1 << i);
                    }
                }
            }
            populatingui         = true;
            CarFlagsTextBox.Text = flags.ToString();
            populatingui         = false;
            lock (ProjectForm.ProjectSyncRoot)
            {
                if (CurrentCarGen._CCarGen.flags != flags)
                {
                    CurrentCarGen._CCarGen.flags = flags;
                    ProjectForm.SetYmapHasChanged(true);
                }
            }
        }
Beispiel #3
0
        private void LoadCarGen()
        {
            if (CurrentCarGen == null)
            {
                //CarGenPanel.Enabled = false;
                CarAddToProjectButton.Enabled      = false;
                CarDeleteButton.Enabled            = false;
                CarModelTextBox.Text               = string.Empty;
                CarModelHashLabel.Text             = "Hash: 0";
                CarPopGroupTextBox.Text            = string.Empty;
                CarPopGroupHashLabel.Text          = "Hash: 0";
                CarFlagsTextBox.Text               = string.Empty;
                CarPositionTextBox.Text            = string.Empty;
                CarOrientXTextBox.Text             = string.Empty;
                CarOrientYTextBox.Text             = string.Empty;
                CarPerpendicularLengthTextBox.Text = string.Empty;
                CarBodyColorRemap1TextBox.Text     = string.Empty;
                CarBodyColorRemap2TextBox.Text     = string.Empty;
                CarBodyColorRemap3TextBox.Text     = string.Empty;
                CarBodyColorRemap4TextBox.Text     = string.Empty;
                CarLiveryTextBox.Text              = string.Empty;
                foreach (int i in CarFlagsCheckedListBox.CheckedIndices)
                {
                    CarFlagsCheckedListBox.SetItemCheckState(i, CheckState.Unchecked);
                }
            }
            else
            {
                populatingui = true;
                var c = CurrentCarGen.CCarGen;
                //CarGenPanel.Enabled = true;
                CarAddToProjectButton.Enabled      = !ProjectForm.YmapExistsInProject(CurrentCarGen.Ymap);
                CarDeleteButton.Enabled            = !CarAddToProjectButton.Enabled;
                CarModelTextBox.Text               = c.carModel.ToString();
                CarModelHashLabel.Text             = "Hash: " + c.carModel.Hash.ToString();
                CarPopGroupTextBox.Text            = c.popGroup.ToString();
                CarPopGroupHashLabel.Text          = "Hash: " + c.popGroup.Hash.ToString();
                CarFlagsTextBox.Text               = c.flags.ToString();
                CarPositionTextBox.Text            = FloatUtil.GetVector3String(c.position);
                CarOrientXTextBox.Text             = FloatUtil.ToString(c.orientX);
                CarOrientYTextBox.Text             = FloatUtil.ToString(c.orientY);
                CarPerpendicularLengthTextBox.Text = FloatUtil.ToString(c.perpendicularLength);
                CarBodyColorRemap1TextBox.Text     = c.bodyColorRemap1.ToString();
                CarBodyColorRemap2TextBox.Text     = c.bodyColorRemap2.ToString();
                CarBodyColorRemap3TextBox.Text     = c.bodyColorRemap3.ToString();
                CarBodyColorRemap4TextBox.Text     = c.bodyColorRemap4.ToString();
                CarLiveryTextBox.Text              = c.livery.ToString();
                for (int i = 0; i < CarFlagsCheckedListBox.Items.Count; i++)
                {
                    var cv = ((c.flags & (1u << i)) > 0);
                    CarFlagsCheckedListBox.SetItemCheckState(i, cv ? CheckState.Checked : CheckState.Unchecked);
                }
                populatingui = false;

                if (ProjectForm.WorldForm != null)
                {
                    ProjectForm.WorldForm.SelectCarGen(CurrentCarGen);
                }

                ////struct CCarGen:
                //Vector3 position { get; set; } //16   16: Float_XYZ: 0: position
                //float orientX { get; set; } //32   32: Float: 0: orientX=735213009
                //float orientY { get; set; } //36   36: Float: 0: orientY=979440342
                //float perpendicularLength { get; set; } //40   40: Float: 0: perpendicularLength=124715667
                //MetaHash carModel { get; set; } //44   44: Hash: 0: carModel
                //uint flags { get; set; } //48   48: UnsignedInt: 0: flags
                //int bodyColorRemap1 { get; set; } //52   52: SignedInt: 0: bodyColorRemap1=1429703670
                //int bodyColorRemap2 { get; set; } //56   56: SignedInt: 0: bodyColorRemap2=1254848286
                //int bodyColorRemap3 { get; set; } //60   60: SignedInt: 0: bodyColorRemap3=1880965569
                //int bodyColorRemap4 { get; set; } //64   64: SignedInt: 0: bodyColorRemap4=1719152247
                //MetaHash popGroup { get; set; } //68   68: Hash: 0: popGroup=911358791
                //sbyte livery { get; set; } //72   72: SignedByte: 0: livery
            }
        }