From e72f1d3dcf5acab27dd8080dba93e173c56485c8 Mon Sep 17 00:00:00 2001 From: Filip Maj Date: Sun, 21 Feb 2016 16:34:29 -0500 Subject: [PATCH] Finished the structure of the database item loader. Added the graphics portion of the reader. --- FFXIVClassic Map Server/Database.cs | 50 +++++++++++++++++++++ FFXIVClassic Map Server/dataobjects/Item.cs | 28 +++++------- 2 files changed, 60 insertions(+), 18 deletions(-) diff --git a/FFXIVClassic Map Server/Database.cs b/FFXIVClassic Map Server/Database.cs index f3fe7fa7..e0f16ac9 100644 --- a/FFXIVClassic Map Server/Database.cs +++ b/FFXIVClassic Map Server/Database.cs @@ -96,6 +96,56 @@ namespace FFXIVClassic_Lobby_Server } } + public static Dictionary getItemGamedata() + { + using (var conn = new MySqlConnection(String.Format("Server={0}; Port={1}; Database={2}; UID={3}; Password={4}", ConfigConstants.DATABASE_HOST, ConfigConstants.DATABASE_PORT, ConfigConstants.DATABASE_NAME, ConfigConstants.DATABASE_USERNAME, ConfigConstants.DATABASE_PASSWORD))) + { + Dictionary gamedataItems = new Dictionary(); + + try + { + conn.Open(); + + string query = @" + SELECT + equipSlot, + itemSlot + FROM characters_inventory_equipment + WHERE characterId = @charId ORDER BY equipSlot"; + + MySqlCommand cmd = new MySqlCommand(query, conn); + + using (MySqlDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + uint id = reader.GetUInt32("catalogID"); + Item item = null; + + if (Item.IsWeapon(id)) + item = new WeaponItem(reader); + else if (Item.IsArmor(id)) + item = new ArmorItem(reader); + else if (Item.IsAccessory(id)) + item = new AccessoryItem(reader); + else + item = new Item(reader); + + gamedataItems.Add(item.catalogID, item); + } + } + } + catch (MySqlException e) + { Console.WriteLine(e); } + finally + { + conn.Dispose(); + } + + return gamedataItems; + } + } + public static void loadPlayerCharacter(Player player) { string query; diff --git a/FFXIVClassic Map Server/dataobjects/Item.cs b/FFXIVClassic Map Server/dataobjects/Item.cs index 3e567852..642c2f8d 100644 --- a/FFXIVClassic Map Server/dataobjects/Item.cs +++ b/FFXIVClassic Map Server/dataobjects/Item.cs @@ -76,20 +76,7 @@ namespace FFXIVClassic_Map_Server.dataobjects repairItem = reader.GetInt32("repairItem"); repairItemNum = reader.GetInt32("repairItemNum"); repairLevel = reader.GetInt32("repairLevel"); - repairLicense = reader.GetInt32("repairLicense"); - - if (IsWeapon()) - { - - } - else if (IsArmor()) - { - - } - else if (IsAccessory()) - { - - } + repairLicense = reader.GetInt32("repairLicense"); } #region Utility Functions @@ -410,10 +397,10 @@ namespace FFXIVClassic_Map_Server.dataobjects class EquipmentItem : Item { //graphics - public readonly int graphicsCategoryId; - public readonly int graphicsEquipId; - public readonly int graphicsVariantId; - public readonly int graphicsColorId; + public readonly uint graphicsWeaponId; + public readonly uint graphicsEquipmentId; + public readonly uint graphicsVariantId; + public readonly uint graphicsColorId; //equipment sheet public readonly int equipPoint; @@ -444,6 +431,11 @@ namespace FFXIVClassic_Map_Server.dataobjects public EquipmentItem(MySqlDataReader reader) : base (reader) { + graphicsWeaponId = reader.GetUInt32("weaponId"); + graphicsEquipmentId = reader.GetUInt32("equipmentId"); + graphicsVariantId = reader.GetUInt32("variantId"); + graphicsColorId = reader.GetUInt32("colorId"); + equipPoint = reader.GetInt32("equipPoint"); equipTribe1 = reader.GetInt16("equipTribe1"); unknown1 = reader.GetUInt16("unknown1");