// Token: 0x0600174A RID: 5962 RVA: 0x00086218 File Offset: 0x00084618 public void addLocalItem(SteamItemDetails_t item, string tags, string dynamic_props) { SteamItemDetails_t[] array = new SteamItemDetails_t[this.inventory.Length + 1]; for (int i = 0; i < this.inventory.Length; i++) { array[i] = this.inventory[i]; } array[this.inventory.Length] = item; this.inventoryDetails = array; this.dynamicInventoryDetails.Remove(item.m_itemId.m_SteamItemInstanceID); DynamicEconDetails value = default(DynamicEconDetails); value.tags = ((!string.IsNullOrEmpty(tags)) ? tags : string.Empty); value.dynamic_props = ((!string.IsNullOrEmpty(dynamic_props)) ? dynamic_props : string.Empty); this.dynamicInventoryDetails.Add(item.m_itemId.m_SteamItemInstanceID, value); }
// Token: 0x0600174B RID: 5963 RVA: 0x000862F8 File Offset: 0x000846F8 private void onInventoryResultReady(SteamInventoryResultReady_t callback) { if (this.appInfo.isDedicated) { SteamPending steamPending = null; for (int i = 0; i < Provider.pending.Count; i++) { if (Provider.pending[i].inventoryResult == callback.m_handle) { steamPending = Provider.pending[i]; break; } } if (steamPending == null) { return; } if (callback.m_result != EResult.k_EResultOK || !SteamGameServerInventory.CheckResultSteamID(callback.m_handle, steamPending.playerID.steamID)) { Debug.Log(string.Concat(new object[] { "inventory auth: ", callback.m_result, " ", SteamGameServerInventory.CheckResultSteamID(callback.m_handle, steamPending.playerID.steamID) })); Provider.reject(steamPending.playerID.steamID, ESteamRejection.AUTH_ECON_VERIFY); return; } uint num = 0u; if (SteamGameServerInventory.GetResultItems(callback.m_handle, null, ref num) && num > 0u) { steamPending.inventoryDetails = new SteamItemDetails_t[num]; SteamGameServerInventory.GetResultItems(callback.m_handle, steamPending.inventoryDetails, ref num); for (uint num2 = 0u; num2 < num; num2 += 1u) { uint num3 = 1024u; string text; SteamGameServerInventory.GetResultItemProperty(callback.m_handle, num2, "tags", out text, ref num3); uint num4 = 1024u; string text2; SteamGameServerInventory.GetResultItemProperty(callback.m_handle, num2, "dynamic_props", out text2, ref num4); DynamicEconDetails value = default(DynamicEconDetails); value.tags = ((!string.IsNullOrEmpty(text)) ? text : string.Empty); value.dynamic_props = ((!string.IsNullOrEmpty(text2)) ? text2 : string.Empty); steamPending.dynamicInventoryDetails.Add(steamPending.inventoryDetails[(int)((UIntPtr)num2)].m_itemId.m_SteamItemInstanceID, value); } } steamPending.inventoryDetailsReady(); } else if (this.promoResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.promoResult) { SteamInventory.DestroyResult(this.promoResult); this.promoResult = SteamInventoryResult_t.Invalid; } else if (this.exchangeResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.exchangeResult) { SteamItemDetails_t[] array = null; string tags = null; string dynamic_props = null; uint num5 = 0u; if (SteamInventory.GetResultItems(this.exchangeResult, null, ref num5) && num5 > 0u) { array = new SteamItemDetails_t[num5]; SteamInventory.GetResultItems(this.exchangeResult, array, ref num5); uint num6 = 1024u; SteamInventory.GetResultItemProperty(this.exchangeResult, num5 - 1u, "tags", out tags, ref num6); uint num7 = 1024u; SteamInventory.GetResultItemProperty(this.exchangeResult, num5 - 1u, "dynamic_props", out dynamic_props, ref num7); } Terminal.print("onInventoryResultReady: Exchange " + num5, null, Provider.STEAM_IC, Provider.STEAM_DC, true); if (array != null && num5 > 0u) { SteamItemDetails_t item = array[(int)((UIntPtr)(num5 - 1u))]; this.addLocalItem(item, tags, dynamic_props); if (this.onInventoryExchanged != null) { this.onInventoryExchanged(item.m_iDefinition.m_SteamItemDef, item.m_unQuantity, item.m_itemId.m_SteamItemInstanceID); } this.refreshInventory(); } SteamInventory.DestroyResult(this.exchangeResult); this.exchangeResult = SteamInventoryResult_t.Invalid; } else if (this.dropResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.dropResult) { SteamItemDetails_t[] array2 = null; string tags2 = null; string dynamic_props2 = null; uint num8 = 0u; if (SteamInventory.GetResultItems(this.dropResult, null, ref num8) && num8 > 0u) { array2 = new SteamItemDetails_t[num8]; SteamInventory.GetResultItems(this.dropResult, array2, ref num8); uint num9 = 1024u; SteamInventory.GetResultItemProperty(this.dropResult, 0u, "tags", out tags2, ref num9); uint num10 = 1024u; SteamInventory.GetResultItemProperty(this.dropResult, 0u, "dynamic_props", out dynamic_props2, ref num10); } Terminal.print("onInventoryResultReady: Drop " + num8, null, Provider.STEAM_IC, Provider.STEAM_DC, true); if (array2 != null && num8 > 0u) { SteamItemDetails_t item2 = array2[0]; this.addLocalItem(item2, tags2, dynamic_props2); if (this.onInventoryDropped != null) { this.onInventoryDropped(item2.m_iDefinition.m_SteamItemDef, item2.m_unQuantity, item2.m_itemId.m_SteamItemInstanceID); } this.refreshInventory(); } SteamInventory.DestroyResult(this.dropResult); this.dropResult = SteamInventoryResult_t.Invalid; } else if (this.inventoryResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.inventoryResult) { this.dynamicInventoryDetails.Clear(); uint num11 = 0u; if (SteamInventory.GetResultItems(this.inventoryResult, null, ref num11) && num11 > 0u) { this.inventoryDetails = new SteamItemDetails_t[num11]; SteamInventory.GetResultItems(this.inventoryResult, this.inventoryDetails, ref num11); for (uint num12 = 0u; num12 < num11; num12 += 1u) { uint num13 = 1024u; string text3; SteamInventory.GetResultItemProperty(this.inventoryResult, num12, "tags", out text3, ref num13); uint num14 = 1024u; string text4; SteamInventory.GetResultItemProperty(this.inventoryResult, num12, "dynamic_props", out text4, ref num14); DynamicEconDetails value2 = default(DynamicEconDetails); value2.tags = ((!string.IsNullOrEmpty(text3)) ? text3 : string.Empty); value2.dynamic_props = ((!string.IsNullOrEmpty(text4)) ? text4 : string.Empty); this.dynamicInventoryDetails.Add(this.inventoryDetails[(int)((UIntPtr)num12)].m_itemId.m_SteamItemInstanceID, value2); } } if (this.onInventoryRefreshed != null) { this.onInventoryRefreshed(); } this.isInventoryAvailable = true; Provider.isLoadingInventory = false; SteamInventory.DestroyResult(this.inventoryResult); this.inventoryResult = SteamInventoryResult_t.Invalid; } else if (this.commitResult != SteamInventoryResult_t.Invalid && callback.m_handle == this.commitResult) { Debug.Log("Commit dynamic properties result: " + callback.m_result); SteamInventory.DestroyResult(this.commitResult); this.commitResult = SteamInventoryResult_t.Invalid; } }