private void btnUpdate_Click(object sender, EventArgs e) { this._owner = (LevelEditorForm)Owner; IEnumerable <LevelObject> objects = _owner.m_Level.m_LevelObjects.Values.Where(obj => k_MovableLevelObjectTypes.Contains(obj.m_Type)); try { foreach (LevelObject obj in objects) { if (chkOffsetAll.Checked) { obj.Position.X += Helper.ParseFloat(txtOffsetX.Text); obj.Position.Y += Helper.ParseFloat(txtOffsetY.Text); obj.Position.Z += Helper.ParseFloat(txtOffsetZ.Text); } if (chkScaleAll.Checked) { obj.Position.X *= Helper.ParseFloat(txtScaleX.Text); obj.Position.Y *= Helper.ParseFloat(txtScaleY.Text); obj.Position.Z *= Helper.ParseFloat(txtScaleZ.Text); } obj.GenerateProperties(); } for (int area = 0; area < Level.k_MaxNumAreas; area++) { _owner.RefreshObjects(area); } } catch { MessageBox.Show("Please enter a valid value in the format x.xxxxxx"); } }
private void OpenLevel(int levelid) { if ((levelid < 0) || (levelid >= 52)) { return; } foreach (LevelEditorForm lvledit in Program.m_LevelEditors) { if (lvledit.m_LevelID == levelid) { lvledit.Focus(); return; } } // try { LevelEditorForm newedit = new LevelEditorForm(Program.m_ROM, levelid); newedit.Show(); Program.m_LevelEditors.Add(newedit); } /*catch (Exception ex) * { * MessageBox.Show("The following error occured while opening the level:\n" + ex.Message, * Program.AppTitle, MessageBoxButtons.OK, MessageBoxIcon.Error); * }*/ }
private void button1_Click(object sender, EventArgs e) { this._owner = (LevelEditorForm)Owner; int[] movableTypes = new int[] { 0, 5, 1, 10, 9, 2, 4, 6, 7 }; IEnumerable <LevelObject> objects = _owner.m_LevelObjects.Values.Where(obj => movableTypes.Contains(obj.m_Type)); try { foreach (LevelObject obj in objects) { if (chkOffsetAll.Checked) { obj.Position.X += float.Parse(txtOffsetX.Text); obj.Position.Y += float.Parse(txtOffsetY.Text); obj.Position.Z += float.Parse(txtOffsetZ.Text); } if (chkScaleAll.Checked) { obj.Position.X *= float.Parse(txtScaleX.Text); obj.Position.Y *= float.Parse(txtScaleY.Text); obj.Position.Z *= float.Parse(txtScaleZ.Text); } obj.GenerateProperties(); } for (int i = 0; i < 8; i++) { _owner.RefreshObjects(i); } } catch { MessageBox.Show("Please enter a valid value in the format x.xxxxxx"); } }
public static void Main() { //init form LevelEditorPanel.init(); LevelEditorForm.init(); TickerSystem.init(); //start the thread Application.Run(LevelEditorForm.levelEditorForm); } //endmain
public LevelDisplaySettingsForm(LevelEditorForm parent) { InitializeComponent(); m_Parent = parent; checkTextures.Checked = m_Parent.LevelModelDisplayFlags.RenderTextures; checkVtxColors.Checked = m_Parent.LevelModelDisplayFlags.RenderVertexColours; checkWireframe.Checked = m_Parent.LevelModelDisplayFlags.RenderWireframe; checkPolylistTypes.Checked = m_Parent.LevelModelDisplayFlags.RenderPolyListType; }
public LevelDisplaySettingsForm(LevelEditorForm parent) { InitializeComponent(); m_parent = parent; checkTextures.Checked = m_parent.m_levelModelDisplayFlags[0]; checkVtxColors.Checked = m_parent.m_levelModelDisplayFlags[1]; checkWireframe.Checked = m_parent.m_levelModelDisplayFlags[2]; checkPolylistTypes.Checked = m_parent.m_levelModelDisplayFlags[3]; valFarClipping.Value = m_parent.GetFarClipping(); valFOV.Value = m_parent.GetFOVangle(); }
public RawEditorForm(LevelEditorForm levelEditor) { m_parent = levelEditor; m_displayInBinary = false; InitializeComponent(); //parameter 1 m_parameter1Ctrl = new RawUshortEdit(0, valueInput, m_displayInBinary) { ValueChanged = SendValueToLevelForm }; m_parameter1Ctrl.MouseDown += DeselectOthers; m_parameter1Ctrl.Tag = "Parameter 1"; //parameter 2 m_parameter2Ctrl = new RawUshortEdit(0, valueInput, m_displayInBinary) { ValueChanged = SendValueToLevelForm }; m_parameter2Ctrl.MouseDown += DeselectOthers; m_parameter2Ctrl.Tag = "Parameter 2"; //parameter 3 m_parameter3Ctrl = new RawUshortEdit(0, valueInput, m_displayInBinary) { ValueChanged = SendValueToLevelForm }; m_parameter3Ctrl.MouseDown += DeselectOthers; m_parameter3Ctrl.Tag = "Parameter 3"; //parameter 4 m_parameter4Ctrl = new RawUshortEdit(0, valueInput, m_displayInBinary) { ValueChanged = SendValueToLevelForm }; m_parameter4Ctrl.MouseDown += DeselectOthers; m_parameter4Ctrl.Tag = "Parameter 2"; //parameter 5 m_parameter5Ctrl = new RawUshortEdit(0, valueInput, m_displayInBinary) { ValueChanged = SendValueToLevelForm }; m_parameter5Ctrl.MouseDown += DeselectOthers; m_parameter5Ctrl.Tag = "Parameter 3"; //Noting m_NothingCtrl = new Label() { Text = "No Raw Editing available for this Object", Width = 300 }; }
public TextureAnimationForm(LevelEditorForm _owner) { InitializeComponent(); this._owner = _owner; for (int i = 0; i < _owner.m_NumAreas; i++) { lbxArea.Items.Add("" + i); } lbxArea.SelectedIndex = 0;//Make sure an area is selected reloadData(); }
public CLPS_Form(LevelEditorForm _owner) { InitializeComponent(); this._owner = _owner; for (int i = 0; i < 52; i++) { cbxLevels.Items.Add(i + " - " + Strings.LevelNames[i]); } loadGlobalCLPSTypes(); loadCLPSData(); }
public DL_Editor(LevelEditorForm lf) { InitializeComponent(); this.availableTree.Nodes.Clear(); ROMFileSelect.LoadFileList(this.availableTree); this.lf = lf; no = new NitroOverlay(Program.m_ROM, (uint)(103 + lf.m_LevelID)); tableAddr = no.Read32(0x30); uint count = no.Read16(tableAddr); for (uint i = 0; i < count; i++) { currentTree.Nodes.Add(Program.m_ROM.GetFileNameFromID(Program.m_ROM.GetFileIDFromInternalID(no.Read16(i * 2 + tableAddr + 2)))); } }
private void MinimapEditor_Load(object sender, EventArgs e) { LevelEditorForm _owner = (LevelEditorForm)Owner; this._owner = _owner; m_NumAreas = _owner.m_NumAreas; m_CurArea = 0; m_TileMapFiles = new NitroFile[m_NumAreas]; txtCoordScale.Text = "" + ((_owner.m_LevelSettings.MinimapCoordinateScale) / 1000f); int i, pos = tsMinimapEditor.Items.IndexOf(tslBeforeAreaBtns) + 1; for (i = 0; i < m_NumAreas; i++, pos++) { ToolStripButton btn = new ToolStripButton(i.ToString(), null, new EventHandler(btnAreaXX_Click)); btn.Tag = i; tsMinimapEditor.Items.Insert(pos, btn); } ((ToolStripButton)tsMinimapEditor.Items[pos - i]).Checked = true; for (int j = 1024; j >= 0; j -= 8) { dmnWidth.Items.Add(j); dmnHeight.Items.Add(j); } for (int j = 15; j >= 0; j--) { dmnPaletteRow.Items.Add(j); } txtZoom.Text = "" + m_Zoom; LoadMinimapFiles(); RedrawMinimap(m_IsUsingTileMap, m_SizeX, m_SizeY, m_BPP); }
public RawEditorForm(LevelEditorForm levelEditor) { m_parent = levelEditor; m_displayInBinary = false; InitializeComponent(); for (int i = 0; i < m_ParameterControls.Length; i++) { m_ParameterControls[i] = new RawUshortEdit(0, valueInput, m_displayInBinary) { ValueChanged = SendValueToLevelForm }; m_ParameterControls[i].MouseDown += DeselectOthers; m_ParameterControls[i].Tag = "Parameter " + (i + 1); } //Noting m_NothingCtrl = new Label() { Text = "No Raw Editing available for this Object", Width = 300 }; }
/// <summary> /// Update objects. /// </summary> private void UpdateObjects() { //Make sure initialized. if (!Initialized) { return; } //Add objects if needed. while (Slaves.Count < numCoins.Value) { Slaves.Add(LE.AddObject(LevelEditorForm.IsSimpleObject(Obj.ID) ? LevelObject.Type.SIMPLE : LevelObject.Type.STANDARD, Obj.ID, Obj.m_Layer, Obj.m_Area)); if (Obj.Parameters != null) { Array.Copy(Obj.Parameters, Slaves.Last().Parameters, Obj.Parameters.Length); } if (Slaves.Last().m_Type == LevelObject.Type.STANDARD) { (Slaves.Last() as StandardObject).YRotation = (Obj as StandardObject).YRotation; } Slaves.Last().GenerateProperties(); } //Remove objects if needed. while (Slaves.Count > numCoins.Value) { LE.RemoveObject(Slaves.Last()); Slaves.Remove(Slaves.Last()); } //Line. if (formationType.SelectedIndex == 0) { //Get the total length. double dist = (double)distance.Value; double len = (Slaves.Count - 1) * dist; //Get the starting position. Vector3 dir = -new Vector3((float)(Math.Cos(HA) * Math.Cos(VA)), (float)Math.Sin(VA), (float)(Math.Sin(HA) * Math.Cos(VA))); dir.Normalize(); Vector3 start = Center - dir * (float)len / 2; //Set objects. for (int i = 0; i < Slaves.Count; i++) { Slaves[i].Position = start + Scale(dist * i, dir); } } //Ring. else { //Get distance. float dist = (float)distance.Value; //Delta angle change. double da = Math.PI * 2 / Slaves.Count; //Get starting angles. double ang = 0; //Figure out orthonormal basis. Vector3 a = new Vector3((float)(Math.Cos(HA) * Math.Cos(VA)), (float)Math.Sin(VA), (float)(Math.Sin(HA) * Math.Cos(VA))); Vector3 b = Vector3.Cross(a, Vector3.UnitY); a.Normalize(); b.Normalize(); //Set objects. for (int i = 0; i < Slaves.Count; i++) { Slaves[i].Position = Center + (float)(dist * Math.Cos(ang)) * a + (float)(dist * Math.Sin(ang)) * b; ang += da; } } //Refresh. LE.RefreshObjects(Obj.m_Layer); }
/// <summary> /// Create a new coin formation placer. /// </summary> /// <param name="le">Level editor form.</param> public FormationForm(LevelEditorForm le) { InitializeComponent(); this.FormClosing += OnClosing; LE = le; }
//---CONSTRUCTOR--- public BetterTextureAnimationEditor(LevelEditorForm parent) { //setup GUI InitializeComponent(); typeof(Panel).InvokeMember("DoubleBuffered", BindingFlags.SetProperty | BindingFlags.Instance | BindingFlags.NonPublic, null, textureView, new object[] { true }); typeof(Panel).InvokeMember("DoubleBuffered", BindingFlags.SetProperty | BindingFlags.Instance | BindingFlags.NonPublic, null, timelinePanel, new object[] { true }); InitTimer(); textureView.MouseWheel += textureView_MouseWheel; numScaling.Tag = 1; valueSettingPanel2.Location = valueSettingPanel1.Location; valueSettingPanel1.BringToFront(); //set private values m_parent = parent; m_BMD = m_parent.m_LevelModel; m_previewTexture = new Bitmap(64, 64); m_animId = 0; m_animations = new List <LevelTexAnim>(); //load Animations m_unsavedEntries = new Dictionary <string, LevelTexAnim.Def> [m_BMD.m_ModelChunks.Length]; m_entries = new Dictionary <string, LevelTexAnim.Def>(); int i = 0; foreach (BMD.ModelChunk chunk in m_BMD.m_ModelChunks) { LevelTexAnim animForArea = m_parent.m_Level.m_TexAnims[i]; TreeNode chunkNode = tvMaterials.Nodes.Add(chunk.m_Name, "Area " + i + " (" + m_parent.m_Level.m_TexAnims[i].m_NumFrames + " frames)"); chunkNode.Tag = i; m_unsavedEntries[i] = new Dictionary <string, LevelTexAnim.Def>(); m_animations.Add(animForArea); List <LevelTexAnim.Def> newEntries = new List <LevelTexAnim.Def>(); foreach (LevelTexAnim.Def entry in animForArea.m_Defs) { LevelTexAnim.Def newEntry = new LevelTexAnim.Def() { m_DefaultScale = entry.m_DefaultScale, m_MaterialName = entry.m_MaterialName, m_TranslationXValues = new List <float>(entry.m_TranslationXValues), m_TranslationYValues = new List <float>(entry.m_TranslationYValues), m_RotationValues = new List <float>(entry.m_RotationValues), m_ScaleValues = new List <float>(entry.m_ScaleValues), }; m_entries.Add(entry.m_MaterialName, newEntry); } if (animForArea.m_NumFrames > 0) { //populate AnimationNode int i2 = 0; foreach (BMD.MaterialGroup matGroup in chunk.m_MatGroups) { if (matGroup.m_Texture != null) { bool hasAnimation = false; foreach (LevelTexAnim.Def entry in m_animations[i].m_Defs) { if (entry.m_MaterialName == matGroup.m_Name) { hasAnimation = true; } } TreeNode matGroupNode = chunkNode.Nodes.Add(matGroup.m_Name, matGroup.m_Name + (hasAnimation ? "[ANIMATED]" : "")); matGroupNode.Tag = i2; } i2++; } } i++; } }