コード例 #1
0
        /// <summary>
        /// Reads SceneSpecification from given MPQFileStream.
        /// </summary>
        /// <param name="stream">The MPQFileStream to read from.</param>
        public SceneSpecification(MpqFileStream stream)
        {
            CellZ = stream.ReadValueS32();
            Cell = new Vector2D(stream);
            SNOLevelAreas = new int[4];

            for (int i = 0; i < SNOLevelAreas.Length; i++)
            {
                SNOLevelAreas[i] = stream.ReadValueS32();
            }

            SNOPrevWorld = stream.ReadValueS32();
            Unknown1 = stream.ReadValueS32();
            SNOPrevLevelArea = stream.ReadValueS32();
            SNONextWorld = stream.ReadValueS32();
            Unknown2 = stream.ReadValueS32();
            SNONextLevelArea = stream.ReadValueS32();
            SNOMusic = stream.ReadValueS32();
            SNOCombatMusic = stream.ReadValueS32();
            SNOAmbient = stream.ReadValueS32();
            SNOReverb = stream.ReadValueS32();
            SNOWeather = stream.ReadValueS32();
            SNOPresetWorld = stream.ReadValueS32();
            Unknown3 = stream.ReadValueS32();
            Unknown4 = stream.ReadValueS32();
            Unknown5 = stream.ReadValueS32();
            stream.Position += (9 * 4);
            ClusterID = stream.ReadValueS32();
            SceneCachedValues = new SceneCachedValues(stream);
        }
コード例 #2
0
        public Vector2D InventoryLocation; // Row, column

        public void Parse(GameBitBuffer buffer)
        {
            OwnerID = buffer.ReadUInt(32);
            EquipmentSlot = buffer.ReadInt(5) + (-1);
            InventoryLocation = new Vector2D();
            InventoryLocation.Parse(buffer);
        }
コード例 #3
0
ファイル: Tutorial.cs プロジェクト: wow4all/mooege
 public Tutorial(MpqFile file)
 {
     var stream = file.Open();
     this.Header = new Header(stream);
     this.I0 = stream.ReadValueS32();
     this.I1 = stream.ReadValueS32();
     this.Time = stream.ReadValueS32();
     this.I2 = stream.ReadValueS32();
     this.V0 = new Vector2D(stream);
     stream.Close();
 }
コード例 #4
0
ファイル: World.cs プロジェクト: Naxp/mooege
 public CustomTileInfo(MpqFileStream stream)
 {
     Int0 = stream.ReadValueS32();
     Int1 = stream.ReadValueS32();
     Int2 = stream.ReadValueS32();
     V0 = new Vector2D(stream);
     CustomTileCells = stream.ReadSerializedData<CustomTileCell>();
     stream.Position += (3 * 4);
 }
コード例 #5
0
ファイル: ToonManager.cs プロジェクト: vrobel/mooege
        private static void LoadToons()
        {
            var query = "SELECT * from toons";
            var cmd = new SQLiteCommand(query, DBManager.Connection);
            var reader = cmd.ExecuteReader();

            if (!reader.HasRows) return;

            while (reader.Read())
            {
                var itemCreate = new Dictionary<uint, Item>();
                var databaseId = (ulong)reader.GetInt64(0);
                //TODO: Move this to toon class only create a toon with id and call load from DB
                var toon = new Toon(databaseId, reader.GetString(1), (int)reader.GetInt32(6), reader.GetByte(2), reader.GetByte(3), reader.GetByte(4), reader.GetInt64(5), (uint)reader.GetInt32(7), (int)reader.GetInt32(8),null);
                //add visual equipment
                //TODO: Load all visualEquipment at once
                D3.Hero.VisualItem[] visualItems = new D3.Hero.VisualItem[8];
                var vItemQuery =
                    string.Format("SELECT * from inventory WHERE toon_id = {0} and inventory_slot <> -1", databaseId);
                var itemCmd = new SQLiteCommand(vItemQuery, DBManager.Connection);
                var itemReader = itemCmd.ExecuteReader();
                if (itemReader.HasRows)
                {
                    while (itemReader.Read())
                    {
                        var slot = (int)itemReader.GetInt64(3);
                        var gbid = (int)itemReader.GetInt64(4);
                        visualItems[slot] = D3.Hero.VisualItem.CreateBuilder()
                            .SetGbid(gbid)
                            .SetEffectLevel(0)
                            .Build();
                    }

                    toon.HeroVisualEquipmentField.Value = D3.Hero.VisualEquipment.CreateBuilder().AddRangeVisualItem(visualItems).Build();
                }

                //add inventory items
                var itemQuery =
                    string.Format("SELECT * from inventory WHERE toon_id = {0} and inventory_slot = -1", databaseId);
                itemCmd = new SQLiteCommand(itemQuery, DBManager.Connection);
                itemReader = itemCmd.ExecuteReader();
                if (itemReader.HasRows)
                {
                    uint count = 0;
                    toon.ItemsTable = new Dictionary<uint, KeyValuePair<ItemTable, Vector2D>>();
                    while (itemReader.Read())
                    {
                        var x = (int)itemReader.GetInt64(1);
                        var y = (int)itemReader.GetInt64(2);
                        var slot = (int)itemReader.GetInt64(3);
                        var gbid = (int)itemReader.GetInt64(4);
                        ItemTable it = ItemGenerator.GetItemDefinition(gbid);
                        Vector2D v2d = new Vector2D(x,y);
                        toon.ItemsTable.Add((uint)gbid,new KeyValuePair<ItemTable, Vector2D>(it,v2d));
                        count++;
                    }

                    toon.Items = itemCreate;
                }


                Toons.Add(databaseId, toon);
            }
        }
コード例 #6
0
ファイル: World.cs プロジェクト: mstaJ/mooege
 public CustomTileInfo(MpqFileStream stream)
 {
     Int0 = stream.ReadValueS32();
     Int1 = stream.ReadValueS32();
     Int2 = stream.ReadValueS32();
     V0 = new Vector2D(stream);
     stream.Position += (5 * 4);
 }
コード例 #7
0
 /// <summary>
 /// Parses SceneSpecification from given GameBitBuffer.
 /// </summary>
 /// <param name="buffer">The GameBitBuffer to parse from.</param>
 public void Parse(GameBitBuffer buffer)
 {
     CellZ = buffer.ReadInt(32);
     Cell = new Vector2D();
     Cell.Parse(buffer);
     SNOLevelAreas = new int /* sno */[4];
     for (int i = 0; i < SNOLevelAreas.Length; i++) SNOLevelAreas[i] = buffer.ReadInt(32);
     SNOPrevWorld = buffer.ReadInt(32);
     Unknown1 = buffer.ReadInt(32);
     SNOPrevLevelArea = buffer.ReadInt(32);
     SNONextWorld = buffer.ReadInt(32);
     Unknown2 = buffer.ReadInt(32);
     SNONextLevelArea = buffer.ReadInt(32);
     SNOMusic = buffer.ReadInt(32);
     SNOCombatMusic = buffer.ReadInt(32);
     SNOAmbient = buffer.ReadInt(32);
     SNOReverb = buffer.ReadInt(32);
     SNOWeather = buffer.ReadInt(32);
     SNOPresetWorld = buffer.ReadInt(32);
     Unknown3 = buffer.ReadInt(32);
     Unknown4 = buffer.ReadInt(32);
     Unknown5 = buffer.ReadInt(32);
     ClusterID = buffer.ReadInt(32);
     SceneCachedValues = new SceneCachedValues();
     SceneCachedValues.Parse(buffer);
 }
コード例 #8
0
ファイル: Toon.cs プロジェクト: vrobel/mooege
 private void UpdateItemsValue()
 {
     ItemsTable = new Dictionary<uint, KeyValuePair<ItemTable, Vector2D>>();
     foreach (Item i in Items.Values)
     {
         var x = i.InventoryLocation.X;
         var y = i.InventoryLocation.Y;
         var gbid = i.GBHandle.GBID;
         ItemTable it = ItemGenerator.GetItemDefinition(gbid);
         Vector2D v2d = new Vector2D(x, y);
         if (!ItemsTable.ContainsKey((uint)gbid))
             ItemsTable.Add((uint)gbid, new KeyValuePair<ItemTable, Vector2D>(it, v2d));
     }
     this.ItemsTable = ItemsTable;
 }