From c1df5292eca49641ccd3a2e4c2c215cc98524c25 Mon Sep 17 00:00:00 2001 From: Bluzume <39113159+KuromeSan@users.noreply.github.com> Date: Tue, 26 Oct 2021 01:50:32 -0400 Subject: [PATCH] Replace ItemInstance List with ItemInstance array. --- HorseIsleServer/HorseIsleServer.sln | 6 ++++++ .../Game/Events/IsleCardTradingGame.cs | 2 +- .../Game/Inventory/InventoryItem.cs | 19 +++++++++++++++++-- .../Game/Inventory/PlayerInventory.cs | 10 +++++----- .../Game/Inventory/ShopInventory.cs | 12 ++++++------ HorseIsleServer/HorseIsleServer/Game/Meta.cs | 18 +++++++++--------- HorseIsleServer/HorseIsleServer/Game/Quest.cs | 2 +- HorseIsleServer/HorseIsleServer/Game/Ranch.cs | 2 +- .../HorseIsleServer/Player/Trade.cs | 4 ++-- .../HorseIsleServer/Resources/GitCommit | 2 +- .../HorseIsleServer/Server/GameServer.cs | 14 +++++++------- 11 files changed, 56 insertions(+), 35 deletions(-) diff --git a/HorseIsleServer/HorseIsleServer.sln b/HorseIsleServer/HorseIsleServer.sln index 8296a37..233fbcc 100644 --- a/HorseIsleServer/HorseIsleServer.sln +++ b/HorseIsleServer/HorseIsleServer.sln @@ -42,15 +42,21 @@ Global {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x86.ActiveCfg = Linux|x86 {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Linux|x86.Build.0 = Linux|x86 {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM.ActiveCfg = MacOS|ARM + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM.Build.0 = MacOS|ARM {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM64.ActiveCfg = MacOS|ARM64 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|ARM64.Build.0 = MacOS|ARM64 {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x64.ActiveCfg = MacOS|x64 {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x64.Build.0 = MacOS|x64 {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x86.ActiveCfg = MacOS|x86 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.MacOS|x86.Build.0 = MacOS|x86 {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM.ActiveCfg = Windows|ARM + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM.Build.0 = Windows|ARM {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM64.ActiveCfg = Windows|ARM64 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|ARM64.Build.0 = Windows|ARM64 {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x64.ActiveCfg = Windows|x64 {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x64.Build.0 = Windows|x64 {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x86.ActiveCfg = Windows|x86 + {C48CBD82-AB30-494A-8FFA-4DE7069B5827}.Windows|x86.Build.0 = Windows|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/HorseIsleServer/HorseIsleServer/Game/Events/IsleCardTradingGame.cs b/HorseIsleServer/HorseIsleServer/Game/Events/IsleCardTradingGame.cs index d0ec51b..a511782 100644 --- a/HorseIsleServer/HorseIsleServer/Game/Events/IsleCardTradingGame.cs +++ b/HorseIsleServer/HorseIsleServer/Game/Events/IsleCardTradingGame.cs @@ -55,7 +55,7 @@ namespace HISP.Game.Events foreach (int itemId in Item.TradingCards) if (client.LoggedinUser.Inventory.HasItemId(itemId)) - totalCards += client.LoggedinUser.Inventory.GetItemByItemId(itemId).ItemInstances.Count; + totalCards += client.LoggedinUser.Inventory.GetItemByItemId(itemId).ItemInstances.Length; if (client.LoggedinUser.Inventory.HasItemId(Item.ColtTradingCard)) totalTypes++; diff --git a/HorseIsleServer/HorseIsleServer/Game/Inventory/InventoryItem.cs b/HorseIsleServer/HorseIsleServer/Game/Inventory/InventoryItem.cs index 438c51f..8f4662f 100644 --- a/HorseIsleServer/HorseIsleServer/Game/Inventory/InventoryItem.cs +++ b/HorseIsleServer/HorseIsleServer/Game/Inventory/InventoryItem.cs @@ -8,14 +8,29 @@ namespace HISP.Game.Inventory { public InventoryItem() { - ItemInstances = new List(); + itemInstances = new List(); Infinite = false; ItemId = 0; } public int ItemId; public bool Infinite; - public List ItemInstances; + private List itemInstances; + public void RemoveItem(ItemInstance itm) + { + itemInstances.Remove(itm); + } + public void AddItem(ItemInstance itm) + { + itemInstances.Add(itm); + } + public ItemInstance[] ItemInstances + { + get + { + return itemInstances.ToArray(); + } + } } } diff --git a/HorseIsleServer/HorseIsleServer/Game/Inventory/PlayerInventory.cs b/HorseIsleServer/HorseIsleServer/Game/Inventory/PlayerInventory.cs index 240e3ff..a36953f 100644 --- a/HorseIsleServer/HorseIsleServer/Game/Inventory/PlayerInventory.cs +++ b/HorseIsleServer/HorseIsleServer/Game/Inventory/PlayerInventory.cs @@ -42,7 +42,7 @@ namespace HISP.Game.Inventory { if (invetoryItem.ItemId == item.ItemId) { - invetoryItem.ItemInstances.Add(item); + invetoryItem.AddItem(item); return; } } @@ -50,7 +50,7 @@ namespace HISP.Game.Inventory InventoryItem inventoryItem = new InventoryItem(); inventoryItem.ItemId = item.ItemId; - inventoryItem.ItemInstances.Add(item); + inventoryItem.AddItem(item); inventoryItems.Add(inventoryItem); } @@ -77,9 +77,9 @@ namespace HISP.Game.Inventory { if(instance.RandomId == item.RandomId) { - inventoryItem.ItemInstances.Remove(instance); + inventoryItem.RemoveItem(instance); - if (inventoryItem.ItemInstances.Count <= 0) + if (inventoryItem.ItemInstances.Length <= 0) inventoryItems.Remove(inventoryItem); return; @@ -162,7 +162,7 @@ namespace HISP.Game.Inventory if(HasItemId(item.ItemId)) { InventoryItem items = GetItemByItemId(item.ItemId); - if (items.ItemInstances.Count >= ConfigReader.MAX_STACK) + if (items.ItemInstances.Length >= ConfigReader.MAX_STACK) { throw new InventoryMaxStackException(); } diff --git a/HorseIsleServer/HorseIsleServer/Game/Inventory/ShopInventory.cs b/HorseIsleServer/HorseIsleServer/Game/Inventory/ShopInventory.cs index b04f342..4f40b34 100644 --- a/HorseIsleServer/HorseIsleServer/Game/Inventory/ShopInventory.cs +++ b/HorseIsleServer/HorseIsleServer/Game/Inventory/ShopInventory.cs @@ -42,7 +42,7 @@ namespace HISP.Game.Inventory if (invetoryItem.Infinite) // no need to add +1, theres allready infinite quanity. return; - invetoryItem.ItemInstances.Add(item); + invetoryItem.AddItem(item); goto retrn; } @@ -52,7 +52,7 @@ namespace HISP.Game.Inventory inventoryItem.ItemId = item.ItemId; inventoryItem.Infinite = false; - inventoryItem.ItemInstances.Add(item); + inventoryItem.AddItem(item); inventoryItems.Add(inventoryItem); retrn: @@ -74,7 +74,7 @@ namespace HISP.Game.Inventory inventoryItem.Infinite = true; for(int i = 0; i < 25; i++) // add 25 - inventoryItem.ItemInstances.Add(new ItemInstance(inventoryItem.ItemId)); + inventoryItem.AddItem(new ItemInstance(inventoryItem.ItemId)); inventoryItems.Add(inventoryItem); } @@ -155,16 +155,16 @@ namespace HISP.Game.Inventory { if (instance.RandomId == item.RandomId) { - inventoryItem.ItemInstances.Remove(instance); + inventoryItem.RemoveItem(instance); - if (inventoryItem.ItemInstances.Count <= 0) + if (inventoryItem.ItemInstances.Length <= 0) inventoryItems.Remove(inventoryItem); if (!inventoryItem.Infinite) // no need to bug the database. Database.RemoveItemFromShopInventory(baseShop.Id, item); else - inventoryItem.ItemInstances.Add(new ItemInstance(inventoryItem.ItemId)); // Gen new item in inventory to replace it. + inventoryItem.AddItem(new ItemInstance(inventoryItem.ItemId)); // Gen new item in inventory to replace it. return; } } diff --git a/HorseIsleServer/HorseIsleServer/Game/Meta.cs b/HorseIsleServer/HorseIsleServer/Game/Meta.cs index c093c30..a6389db 100644 --- a/HorseIsleServer/HorseIsleServer/Game/Meta.cs +++ b/HorseIsleServer/HorseIsleServer/Game/Meta.cs @@ -156,7 +156,7 @@ namespace HISP.Game message += Messages.R1; Item.ItemInformation itemInfo = Item.GetItemById(item.ItemId); - int count = item.ItemInstances.Count; + int count = item.ItemInstances.Length; string countStr = count.ToString(); if (item.Infinite) countStr = Messages.InfinitySign; @@ -187,7 +187,7 @@ namespace HISP.Game continue; - int count = shopperitem.ItemInstances.Count; + int count = shopperitem.ItemInstances.Length; string countStr = count.ToString(); @@ -214,7 +214,7 @@ namespace HISP.Game else { InventoryItem wishingCoins = user.Inventory.GetItemByItemId(Item.WishingCoin); - int totalCoins = wishingCoins.ItemInstances.Count; + int totalCoins = wishingCoins.ItemInstances.Length; message += Messages.FormatNumberOfWishingCoins(totalCoins); message += Messages.WishingWellMeta; } @@ -536,7 +536,7 @@ namespace HISP.Game Item.ItemInformation itemInfo = Item.GetItemById(item.ItemId); if (itemInfo.Type == "QUEST" || itemInfo.Type == "TEXT" || itemInfo.Id == Item.DorothyShoes) continue; - message += Messages.FormatTradeOfferItem(itemInfo.IconId, itemInfo.Name, item.ItemInstances.Count, item.ItemId); + message += Messages.FormatTradeOfferItem(itemInfo.IconId, itemInfo.Name, item.ItemInstances.Length, item.ItemId); } } @@ -2170,11 +2170,11 @@ namespace HISP.Game { Item.ItemInformation itemInfo = Item.GetItemById(item.ItemId); string title = itemInfo.Name; - if (item.ItemInstances.Count > 1 && itemInfo.PluralName != "") + if (item.ItemInstances.Length > 1 && itemInfo.PluralName != "") title = itemInfo.PluralName; - message += Messages.FormatPlayerInventoryItemMeta(itemInfo.IconId, item.ItemInstances.Count, title); + message += Messages.FormatPlayerInventoryItemMeta(itemInfo.IconId, item.ItemInstances.Length, title); int randomId = item.ItemInstances[0].RandomId; if (itemInfo.Type != "QUEST" && itemInfo.Type != "TEXT" && !(itemInfo.Id == Item.DorothyShoes || itemInfo.Id == Item.Telescope) && World.CanDropItems(inv.BaseUser.X, inv.BaseUser.Y)) @@ -2220,7 +2220,7 @@ namespace HISP.Game isHorseFood = (itemInfo.Effects[1].EffectsWhat == "MOOD" && itemInfo.Effects[0].EffectsWhat == "HUNGER"); if (itemInfo.Type == "HORSEFOOD" || isHorseFood) { - message += Messages.FormatHorseFeedEntry(itemInfo.IconId, item.ItemInstances.Count, itemInfo.Name, item.ItemInstances[0].RandomId); + message += Messages.FormatHorseFeedEntry(itemInfo.IconId, item.ItemInstances.Length, itemInfo.Name, item.ItemInstances[0].RandomId); } } @@ -2257,7 +2257,7 @@ namespace HISP.Game Item.ItemInformation itemInfo = item.ItemInstances[0].GetItemInfo(); if(itemInfo.Type == "COMPANION") { - message += Messages.FormatHorseCompanionOption(itemInfo.IconId, item.ItemInstances.Count, itemInfo.Name, item.ItemId); + message += Messages.FormatHorseCompanionOption(itemInfo.IconId, item.ItemInstances.Length, itemInfo.Name, item.ItemId); } } message += Messages.BackToHorse; @@ -2519,7 +2519,7 @@ namespace HISP.Game continue; else if (itemInfo.GetMiscFlag(2) != 0) continue; - message += Messages.FormatHorseEquip(itemInfo.IconId, item.ItemInstances.Count, itemInfo.Name, itemInfo.Id); + message += Messages.FormatHorseEquip(itemInfo.IconId, item.ItemInstances.Length, itemInfo.Name, itemInfo.Id); } } diff --git a/HorseIsleServer/HorseIsleServer/Game/Quest.cs b/HorseIsleServer/HorseIsleServer/Game/Quest.cs index b94a55d..66d8d7d 100644 --- a/HorseIsleServer/HorseIsleServer/Game/Quest.cs +++ b/HorseIsleServer/HorseIsleServer/Game/Quest.cs @@ -163,7 +163,7 @@ namespace HISP.Game InventoryItem[] items = user.Inventory.GetItemList(); foreach (InventoryItem item in items) { - if (item.ItemId == itemInfo.ItemId && item.ItemInstances.Count >= itemInfo.Quantity) + if (item.ItemId == itemInfo.ItemId && item.ItemInstances.Length >= itemInfo.Quantity) { hasThisItem = true; break; diff --git a/HorseIsleServer/HorseIsleServer/Game/Ranch.cs b/HorseIsleServer/HorseIsleServer/Game/Ranch.cs index 49ba6af..51e59fb 100644 --- a/HorseIsleServer/HorseIsleServer/Game/Ranch.cs +++ b/HorseIsleServer/HorseIsleServer/Game/Ranch.cs @@ -96,7 +96,7 @@ namespace HISP.Game User user = GameServer.GetUserById(Id); user.OwnedRanch = null; InventoryItem items = user.Inventory.GetItemByItemId(Item.DorothyShoes); - foreach (ItemInstance itm in items.ItemInstances.ToArray()) + foreach (ItemInstance itm in items.ItemInstances) { user.Inventory.Remove(itm); } diff --git a/HorseIsleServer/HorseIsleServer/Player/Trade.cs b/HorseIsleServer/HorseIsleServer/Player/Trade.cs index 5466b48..e7b67b2 100644 --- a/HorseIsleServer/HorseIsleServer/Player/Trade.cs +++ b/HorseIsleServer/HorseIsleServer/Player/Trade.cs @@ -135,7 +135,7 @@ namespace HISP.Player if (Trader.Inventory.HasItemId(inst[0].ItemId)) { InventoryItem items = Trader.Inventory.GetItemByItemId(inst[0].ItemId); - if (items.ItemInstances.Count + inst.Length >= ConfigReader.MAX_STACK) + if (items.ItemInstances.Length + inst.Length >= ConfigReader.MAX_STACK) { itemYouFail = true; } @@ -155,7 +155,7 @@ namespace HISP.Player if (OtherTrade.Trader.Inventory.HasItemId(inst[0].ItemId)) { InventoryItem items = OtherTrade.Trader.Inventory.GetItemByItemId(inst[0].ItemId); - if (items.ItemInstances.Count + inst.Length >= ConfigReader.MAX_STACK) + if (items.ItemInstances.Length + inst.Length >= ConfigReader.MAX_STACK) { itemOtherFail = true; } diff --git a/HorseIsleServer/HorseIsleServer/Resources/GitCommit b/HorseIsleServer/HorseIsleServer/Resources/GitCommit index 99defd6..4b1e52c 100644 --- a/HorseIsleServer/HorseIsleServer/Resources/GitCommit +++ b/HorseIsleServer/HorseIsleServer/Resources/GitCommit @@ -1 +1 @@ -80b1cdea1957c5471347f46cf8bb541e2abf1ca1 +0cad1e0fac960fe59b55444cf1f0fd423d2e4951 diff --git a/HorseIsleServer/HorseIsleServer/Server/GameServer.cs b/HorseIsleServer/HorseIsleServer/Server/GameServer.cs index b6e5fe7..28ac421 100644 --- a/HorseIsleServer/HorseIsleServer/Server/GameServer.cs +++ b/HorseIsleServer/HorseIsleServer/Server/GameServer.cs @@ -511,7 +511,7 @@ namespace HISP.Server sender.LoggedinUser.TradeMenuPriority = true; sender.LoggedinUser.AttemptingToOfferItem = itemId; InventoryItem item = sender.LoggedinUser.Inventory.GetItemByItemId(itemId); - byte[] addItemPacket = PacketBuilder.CreateMetaPacket(Meta.BuildTradeAddItem(item.ItemInstances.Count)); + byte[] addItemPacket = PacketBuilder.CreateMetaPacket(Meta.BuildTradeAddItem(item.ItemInstances.Length)); sender.SendPacket(addItemPacket); break; @@ -2369,9 +2369,9 @@ namespace HISP.Server sender.SendPacket(MustBeAtleast1); break; } - if(itemCount > item.ItemInstances.Count) + if(itemCount > item.ItemInstances.Length) { - byte[] TooMuchItems = PacketBuilder.CreateChat(Messages.FormatTradeItemOfferTooMuch(item.ItemInstances.Count, itemCount), PacketBuilder.CHAT_BOTTOM_RIGHT); + byte[] TooMuchItems = PacketBuilder.CreateChat(Messages.FormatTradeItemOfferTooMuch(item.ItemInstances.Length, itemCount), PacketBuilder.CHAT_BOTTOM_RIGHT); sender.SendPacket(TooMuchItems); break; } @@ -6650,7 +6650,7 @@ namespace HISP.Server { if (sender.LoggedinUser.Inventory.HasItemId(reqItem.RequiredItemId)) { - if (sender.LoggedinUser.Inventory.GetItemByItemId(reqItem.RequiredItemId).ItemInstances.Count < reqItem.RequiredItemCount) + if (sender.LoggedinUser.Inventory.GetItemByItemId(reqItem.RequiredItemId).ItemInstances.Length < reqItem.RequiredItemCount) goto failMissingItem; } else @@ -6752,7 +6752,7 @@ namespace HISP.Server } invItem = sender.LoggedinUser.Inventory.GetItemByItemId(itemId); - totalSold = invItem.ItemInstances.Count; + totalSold = invItem.ItemInstances.Length; message = 2; goto doSell; doSell:; @@ -6926,7 +6926,7 @@ namespace HISP.Server } if (shop.Inventory.HasItemId(itemId)) { - if (shop.Inventory.GetItemByItemId(itemId).ItemInstances.Count < count) + if (shop.Inventory.GetItemByItemId(itemId).ItemInstances.Length < count) { Logger.HackerPrint(sender.LoggedinUser.Username + " Tried to buy more of an item than is in stock."); break; @@ -6937,7 +6937,7 @@ namespace HISP.Server if (sender.LoggedinUser.Inventory.HasItemId(itemId)) { InventoryItem items = sender.LoggedinUser.Inventory.GetItemByItemId(itemId); - if (items.ItemInstances.Count + count > ConfigReader.MAX_STACK) + if (items.ItemInstances.Length + count > ConfigReader.MAX_STACK) { goto showError; }