public void SaveSettings(FileParser.Block block) { block.SetBool("Use Custom Address", useCustomAddress); if (useCustomAddress) { block.SetInt("Custom Address", segmentOffset); } block.SetIntArray("ROM Pointers", pointerControl1.GetROMPointers()); block.SetIntArray("RAM Pointers", pointerControl1.GetRAMPointers()); SpecialPointer[] specialPointers = specialPointerControl1.GetPointers(); StringBuilder b = new StringBuilder(); foreach (SpecialPointer p in specialPointers) { b.Append(p.ToString() + "; "); } if (b.Length > 0) { block.SetString("Special Pointers", b.ToString()); } block.SetString("Obj File", sourceFileName); block.SetInt("Type Style", cmbTypeStyle.SelectedIndex, false); foreach (Control control in panelCollisionTypes.Controls) { CollisionTypeControl c = control as CollisionTypeControl; if (c != null) { block.SetInt(c.patch.name, c.patch.type); block.SetBool(c.patch.name + " enabled", c.enableImport); } } if (collision.specialBoxes != null) { int num = collision.specialBoxes.boxes.Count; int[] type = new int[num], x1 = new int[num], x2 = new int[num], z1 = new int[num], z2 = new int[num], y = new int[num]; int i = 0; foreach (SpecialCollisionBox box in collision.specialBoxes.boxes) { type[i] = box.type; x1[i] = box.x1; x2[i] = box.x2; z1[i] = box.z1; z2[i] = box.z2; y[i] = box.y; i++; } block.SetIntArray("Special Boxes", type, true); block.SetIntArray("Special Boxes X1", x1, false); block.SetIntArray("Special Boxes X2", x2, false); block.SetIntArray("Special Boxes Z1", z1, false); block.SetIntArray("Special Boxes Z2", z2, false); block.SetIntArray("Special Boxes Height", y, false); } }
public void SaveSettings(FileParser.Block block) { block.SetBool("Use Custom Address", useCustomAddress); if (useCustomAddress) { block.SetInt("Custom Address", segmentOffset); } block.SetIntArray("ROM Pointers", pointerControl.GetROMPointers()); block.SetIntArray("RAM Pointers", pointerControl.GetRAMPointers()); block.SetInt("Layer", (int)numLayer.Value); for (int i = 0; i < paramControls.Length; i++) { block.SetInt(paramControls[i].ParameterName, (int)paramControls[i].cmbType.SelectedIndex); if (paramControls[i].cmbType.SelectedIndex == paramControls[i].cmbType.Items.Count - 1) { block.SetInt("Custom " + paramControls[i].ParameterName, paramControls[i].customValue); } } block.SetString("Obj File", sourceFileName); block.SetInt("Color Interpretation", (int)conversionSettings.colorInterpretation); if (displayList != null) { block.SetInt("Cycle Type", (int)displayList.renderstates.cycleType, false); block.SetInt("Blend modes", displayList.renderstates.blendMode); block.SetInt("Render states", displayList.renderstates.otherModesLow); block.SetInt("RCP Set", displayList.renderstates.RCPSet); block.SetInt("RCP Unset", displayList.renderstates.RCPUnset); block.SetInt("Combiner Low", (int)(displayList.renderstates.combiner.state & 0xFFFFFFFF)); block.SetInt("Combiner High", (int)((displayList.renderstates.combiner.state >> 0x20) & 0xFFFFFF)); block.SetDouble("Texture Scale X", displayList.renderstates.textureScaleX); block.SetDouble("Texture Scale Y", displayList.renderstates.textureScaleY); } if (this.textureControl.materialLibrary != null) { foreach (KeyValuePair <string, TextureInfo> tex in this.textureControl.materialLibrary) { if (tex.Value.addressX != TextureInfo.AddressMode.G_TX_WRAP || tex.Value.addressY != TextureInfo.AddressMode.G_TX_WRAP || tex.Value.stRAMPointers.Length + tex.Value.stROMPointers.Length > 0) { block.SetBlock(tex.Key, new FileParser.Block(tex.Value)); } } } }