fBaseXtensions.XML.MoveItemTag.MoveItems C# (CSharp) Method

MoveItems() private method

private MoveItems ( ) : bool
return bool
        private bool MoveItems()
        {
            if (MovingItemList.Count > 0)
            {
                //Logger.DBLog.DebugFormat("Moving Items!");

                if (!Delay.Test()) return true;

                CacheACDItem thisitem = MovingItemList.FirstOrDefault();

                if (Itemsource == ItemSource.Backpack)
                {
                    if (LastStashPoint[0] < 0 && LastStashPoint[1] < 0 && LastStashPage < 0)
                    {
                        bool bDidStashSucceed = StashAttempt(thisitem, out LastStashPoint, out LastStashPage);
                        if (!bDidStashSucceed)
                        {
                            Logger.DBLog.DebugFormat("There was an unknown error stashing an item.");
                            //if (OutOfGame.MuleBehavior) return RunStatus.Success;
                        }
                        else
                            return true;
                    }
                    else
                    {
                        //We have a valid place to stash.. so lets check if stash page is currently open
                        if (ZetaDia.Me.Inventory.CurrentStashPage == LastStashPage)
                        {
                            //FunkyTownRunPlugin.TownRunStats.StashedItemLog(thisitem);
                            ZetaDia.Me.Inventory.MoveItem(thisitem.ThisDynamicID, ZetaDia.Me.CommonData.DynamicId, InventorySlot.SharedStash, LastStashPoint[0], LastStashPoint[1]);
                            LastStashPoint = new[] { -1, -1 };
                            LastStashPage = -1;

                            MovingItemList.Remove(thisitem);
                            if (MovingItemList.Count > 0)
                                return true;
                        }
                        else
                        {
                            //Lets switch the current page..
                            ZetaDia.Me.Inventory.SwitchStashPage(LastStashPage);
                            return true;
                        }
                    }
                }
                else
                {
                    if (LastStashPoint[0] < 0 && LastStashPoint[1] < 0)
                    {
                        bool bDidStashSucceed = BackpackStashAttempt(thisitem, out LastStashPoint);
                        if (!bDidStashSucceed)
                        {
                            Logger.DBLog.DebugFormat("There was an unknown error stashing an item.");
                        }
                        else
                            return true;
                    }
                    else
                    {
                        ZetaDia.Me.Inventory.MoveItem(thisitem.ThisDynamicID, ZetaDia.Me.CommonData.DynamicId, InventorySlot.BackpackItems, LastStashPoint[0], LastStashPoint[1]);
                        LastStashPoint = new[] { -1, -1 };

                        MovingItemList.Remove(thisitem);
                        if (MovingItemList.Count > 0)
                            return true;
                    }
                }

            }

            m_IsDone = true;
            return false;
        }