/// <summary> /// Fill in the information for the references object information. /// </summary> /// <param name="obj"></param> /// <param name="cmbItem_ID"></param> /// <param name="chkEnchanted"></param> /// <param name="chkIsQuant"></param> /// <param name="chkDoorDir"></param> /// <param name="chkInvis"></param> /// <param name="numXpos"></param> /// <param name="numYpos"></param> /// <param name="numZpos"></param> /// <param name="numHeading"></param> /// <param name="numFlags"></param> /// <param name="numQuality"></param> /// <param name="numOwner"></param> /// <param name="numNext"></param> /// <param name="numLink"></param> public void PopulateObjectUI(objects.ObjectInfo obj, ComboBox cmbItem_ID, CheckBox chkEnchanted, CheckBox chkIsQuant, CheckBox chkDoorDir, CheckBox chkInvis, NumericUpDown numXpos, NumericUpDown numYpos, NumericUpDown numZpos, NumericUpDown numHeading, NumericUpDown numFlags, NumericUpDown numQuality, NumericUpDown numOwner, NumericUpDown numNext, NumericUpDown numLink ) { cmbItem_ID.Text = obj.item_id + "-" + objects.ObjectName(obj.item_id, curgame); chkEnchanted.Checked = (obj.enchantment == 1); chkIsQuant.Checked = (obj.is_quant == 1); chkDoorDir.Checked = (obj.doordir == 1); chkInvis.Checked = (obj.invis == 1); numXpos.Value = obj.xpos; numYpos.Value = obj.ypos; numZpos.Value = obj.zpos; numHeading.Value = obj.heading; numFlags.Value = obj.flags; numQuality.Value = obj.quality; numOwner.Value = obj.owner; numNext.Value = obj.next; numLink.Value = obj.link; }
public static void PopulateWorldObjects(int index, main MAIN) { main.isLoading = true; objects.ObjectInfo obj = MAIN.worldObjects.objList[index]; MAIN.CurWorldObject = index; MAIN.PopulateObjectUI(obj, MAIN.CmbWorldItem_ID, MAIN.ChkWorldEnchanted, MAIN.ChkWorldIsQuant, MAIN.ChkWorldDoorDir, MAIN.ChkWorldInvis, MAIN.NumWorldXPos, MAIN.NumWorldYPos, MAIN.NumWorldZpos, MAIN.NumWorldHeading, MAIN.NumWorldFlags, MAIN.NumWorldQuality, MAIN.NumWorldOwner, MAIN.NumWorldNext, MAIN.NumWorldLink); main.isLoading = false; }
/// <summary> /// Handles selection of an item in the inventory tree. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TreeInventory_AfterSelect(object sender, TreeViewEventArgs e) { TreeNode node = TreeInventory.SelectedNode; int index; if (node.Tag == null) { return; } if (int.TryParse(node.Tag.ToString(), out index)) { if (index > 0) { isLoading = true; CurPDatObject = index; objects.ObjectInfo obj = pdatObjects.objList[index]; PopulateObjectUI(obj, CmbPdatItem_ID, ChkPdatEnchanted, ChkPdatIsQuant, ChkPdatDoorDir, ChkPdatInvis, NumPInvXpos, NumPInvYPos, NumPInvZpos, NumPInvHeading, NumPdatFlags, NumPdatQuality, NumPdatOwner, NumPdatNext, NumPdatLink); isLoading = false; } } }
public static void PopulateWorldObjects(int index, main MAIN) { main.isLoading = true; objects.ObjectInfo obj = MAIN.worldObjects.objList[index]; MAIN.CurWorldObject = index; MAIN.lblOffset.Text = "Location : " + obj.FileAddress + "d"; MAIN.PopulateObjectStaticUI(obj, MAIN.CmbWorldItem_ID, MAIN.ChkWorldEnchanted, MAIN.ChkWorldIsQuant, MAIN.ChkWorldDoorDir, MAIN.ChkWorldInvis, MAIN.NumWorldXPos, MAIN.NumWorldYPos, MAIN.NumWorldZpos, MAIN.NumWorldHeading, MAIN.NumWorldFlags, MAIN.NumWorldQuality, MAIN.NumWorldOwner, MAIN.NumWorldNext, MAIN.NumWorldLink); if (index < 256) { //populate mobile data MAIN.numNPC_HP.Value = obj.npc_hp; MAIN.numProjectile0x9.Value = obj.projectile0x9; MAIN.numUnknown0xA.Value = obj.Unknown0xA; MAIN.numnpc_goal.Value = obj.npc_goal; MAIN.numnpc_gtarg.Value = obj.npc_gtarg; MAIN.numUnknown0xB.Value = obj.Unknown0xB; MAIN.numnpc_level.Value = obj.npc_level; MAIN.numunknown_4_11_0xD.Value = obj.unknown_4_11_0xD; MAIN.numunknown_12_0xD.Value = obj.unknown_12_0xD; MAIN.numnpc_talked_to.Value = obj.npc_talked_to; MAIN.numnpc_attitude.Value = obj.npc_attitude; MAIN.numunknown_0_5_0xF.Value = obj.unknown_0_5_0xF; MAIN.numnpc_height.Value = obj.npc_height; MAIN.numunknown_13_15_0xF.Value = obj.unknown_13_15_0xF; MAIN.numunknown_0x11.Value = obj.unknown_0x11; MAIN.numunknown_0x12.Value = obj.unknown_0x12; MAIN.numunknown_0_6_0x13.Value = obj.unknown_0_6_0x13; MAIN.numunknown_7_7_0x13.Value = obj.unknown_7_7_0x13; MAIN.numunknown_0x14.Value = obj.unknown_0x14; MAIN.numunknown_0x15.Value = obj.unknown_0x15; MAIN.numunknown_0_3_0x16.Value = obj.unknown_0_3_0x16; MAIN.numnpc_yhome.Value = obj.npc_yhome; MAIN.numnpc_xhome.Value = obj.npc_xhome; MAIN.numnpc_heading.Value = obj.npc_heading; MAIN.numunknown_5_7_0x18.Value = obj.unknown_5_7_0x18; MAIN.numnpc_hunger.Value = obj.npc_hunger; MAIN.numunknown_7_7_0x19.Value = obj.unknown_7_7_0x19; MAIN.numnpc_whoami.Value = obj.npc_whoami; } main.isLoading = false; }
/// <summary> /// Handles the change of object properties /// </summary> /// <param name="TileMapData"></param> /// <param name="obj"></param> /// <param name="cmbItem_ID"></param> /// <param name="chkEnchanted"></param> /// <param name="chkIsQuant"></param> /// <param name="chkDoorDir"></param> /// <param name="chkInvis"></param> /// <param name="numXpos"></param> /// <param name="numYpos"></param> /// <param name="numZpos"></param> /// <param name="numHeading"></param> /// <param name="numFlags"></param> /// <param name="numQuality"></param> /// <param name="numOwner"></param> /// <param name="numNext"></param> /// <param name="numLink"></param> public void UpdateObjectUIChange(char[] TileMapData, objects.ObjectInfo obj, ComboBox cmbItem_ID, CheckBox chkEnchanted, CheckBox chkIsQuant, CheckBox chkDoorDir, CheckBox chkInvis, NumericUpDown numXpos, NumericUpDown numYpos, NumericUpDown numZpos, NumericUpDown numHeading, NumericUpDown numFlags, NumericUpDown numQuality, NumericUpDown numOwner, NumericUpDown numNext, NumericUpDown numLink ) { //Update the object with the selected info obj.item_id = cmbItem_ID.SelectedIndex; cmbItem_ID.Text = obj.item_id + "-" + objects.ObjectName(obj.item_id, curgame); if (chkEnchanted.Checked) { obj.enchantment = 1; } else { obj.enchantment = 0; } if (chkIsQuant.Checked) { obj.is_quant = 1; } else { obj.is_quant = 0; }; if (chkDoorDir.Checked) { obj.doordir = 1; } else { obj.doordir = 0; }; if (chkInvis.Checked) { obj.invis = 1; } else { obj.invis = 0; }; obj.xpos = (short)numXpos.Value; obj.ypos = (short)numYpos.Value; obj.zpos = (short)numZpos.Value; obj.heading = (short)numHeading.Value; obj.flags = (short)numFlags.Value; obj.quality = (short)numQuality.Value; obj.owner = (short)numOwner.Value; obj.next = (short)numNext.Value; obj.link = (short)numLink.Value; long addptr = obj.FileAddress; int ByteToWrite = (obj.is_quant << 15) | (obj.invis << 14) | (obj.doordir << 13) | (obj.enchantment << 12) | ((obj.flags & 0x07) << 9) | (obj.item_id & 0x1FF); TileMapData[addptr] = (char)(ByteToWrite & 0xFF); TileMapData[addptr + 1] = (char)((ByteToWrite >> 8) & 0xFF); ByteToWrite = ((obj.xpos & 0x7) << 13) | ((obj.ypos & 0x7) << 10) | ((obj.heading & 0x7) << 7) | ((obj.zpos & 0x7F)); TileMapData[addptr + 2] = (char)(ByteToWrite & 0xFF); TileMapData[addptr + 3] = (char)((ByteToWrite >> 8) & 0xFF); ByteToWrite = (((int)obj.next & 0x3FF) << 6) | (obj.quality & 0x3F); TileMapData[addptr + 4] = (char)(ByteToWrite & 0xFF); TileMapData[addptr + 5] = (char)((ByteToWrite >> 8) & 0xFF); ByteToWrite = ((obj.link & 0x3FF) << 6) | (obj.owner & 0x3F); TileMapData[addptr + 6] = (char)(ByteToWrite & 0xFF); TileMapData[addptr + 7] = (char)((ByteToWrite >> 8) & 0xFF); }