Esempio n. 1
0
        /// <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;
        }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
        /// <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;
                }
            }
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        /// <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);
        }