Terraria.Player.BuyItemOld C# (CSharp) Method

BuyItemOld() public method

public BuyItemOld ( int price ) : bool
price int
return bool
        public bool BuyItemOld(int price)
        {
            if (price == 0)
                return true;
            long num1 = 0L;
            Item[] objArray = new Item[54];
            for (int index = 0; index < 54; ++index)
            {
                objArray[index] = new Item();
                objArray[index] = this.inventory[index].Clone();
                if (this.inventory[index].itemId == 71)
                    num1 += (long)this.inventory[index].stack;
                if (this.inventory[index].itemId == 72)
                    num1 += (long)(this.inventory[index].stack * 100);
                if (this.inventory[index].itemId == 73)
                    num1 += (long)(this.inventory[index].stack * 10000);
                if (this.inventory[index].itemId == 74)
                    num1 += (long)(this.inventory[index].stack * 1000000);
            }
            if (num1 < (long)price)
                return false;
            int num2 = price;
            while (num2 > 0)
            {
                if (num2 >= 1000000)
                {
                    for (int index = 0; index < 54; ++index)
                    {
                        if (this.inventory[index].itemId == 74)
                        {
                            while (this.inventory[index].stack > 0 && num2 >= 1000000)
                            {
                                num2 -= 1000000;
                                --this.inventory[index].stack;
                                if (this.inventory[index].stack == 0)
                                    this.inventory[index].itemId = 0;
                            }
                        }
                    }
                }
                if (num2 >= 10000)
                {
                    for (int index = 0; index < 54; ++index)
                    {
                        if (this.inventory[index].itemId == 73)
                        {
                            while (this.inventory[index].stack > 0 && num2 >= 10000)
                            {
                                num2 -= 10000;
                                --this.inventory[index].stack;
                                if (this.inventory[index].stack == 0)
                                    this.inventory[index].itemId = 0;
                            }
                        }
                    }
                }
                if (num2 >= 100)
                {
                    for (int index = 0; index < 54; ++index)
                    {
                        if (this.inventory[index].itemId == 72)
                        {
                            while (this.inventory[index].stack > 0 && num2 >= 100)
                            {
                                num2 -= 100;
                                --this.inventory[index].stack;
                                if (this.inventory[index].stack == 0)
                                    this.inventory[index].itemId = 0;
                            }
                        }
                    }
                }
                if (num2 >= 1)
                {
                    for (int index = 0; index < 54; ++index)
                    {
                        if (this.inventory[index].itemId == 71)
                        {
                            while (this.inventory[index].stack > 0 && num2 >= 1)
                            {
                                --num2;
                                --this.inventory[index].stack;
                                if (this.inventory[index].stack == 0)
                                    this.inventory[index].itemId = 0;
                            }
                        }
                    }
                }
                if (num2 > 0)
                {
                    int index1 = -1;
                    for (int index2 = 53; index2 >= 0; --index2)
                    {
                        if (this.inventory[index2].itemId == 0 || this.inventory[index2].stack == 0)
                        {
                            index1 = index2;
                            break;
                        }
                    }
                    if (index1 >= 0)
                    {
                        bool flag = true;
                        if (num2 >= 10000)
                        {
                            for (int index2 = 0; index2 < 58; ++index2)
                            {
                                if (this.inventory[index2].itemId == 74 && this.inventory[index2].stack >= 1)
                                {
                                    --this.inventory[index2].stack;
                                    if (this.inventory[index2].stack == 0)
                                        this.inventory[index2].itemId = 0;
                                    this.inventory[index1].SetDefaults(73, false);
                                    this.inventory[index1].stack = 100;
                                    flag = false;
                                    break;
                                }
                            }
                        }
                        else if (num2 >= 100)
                        {
                            for (int index2 = 0; index2 < 54; ++index2)
                            {
                                if (this.inventory[index2].itemId == 73 && this.inventory[index2].stack >= 1)
                                {
                                    --this.inventory[index2].stack;
                                    if (this.inventory[index2].stack == 0)
                                        this.inventory[index2].itemId = 0;
                                    this.inventory[index1].SetDefaults(72, false);
                                    this.inventory[index1].stack = 100;
                                    flag = false;
                                    break;
                                }
                            }
                        }
                        else if (num2 >= 1)
                        {
                            for (int index2 = 0; index2 < 54; ++index2)
                            {
                                if (this.inventory[index2].itemId == 72 && this.inventory[index2].stack >= 1)
                                {
                                    --this.inventory[index2].stack;
                                    if (this.inventory[index2].stack == 0)
                                        this.inventory[index2].itemId = 0;
                                    this.inventory[index1].SetDefaults(71, false);
                                    this.inventory[index1].stack = 100;
                                    flag = false;
                                    break;
                                }
                            }
                        }
                        if (flag)
                        {
                            if (num2 < 10000)
                            {
                                for (int index2 = 0; index2 < 54; ++index2)
                                {
                                    if (this.inventory[index2].itemId == 73 && this.inventory[index2].stack >= 1)
                                    {
                                        --this.inventory[index2].stack;
                                        if (this.inventory[index2].stack == 0)
                                            this.inventory[index2].itemId = 0;
                                        this.inventory[index1].SetDefaults(72, false);
                                        this.inventory[index1].stack = 100;
                                        flag = false;
                                        break;
                                    }
                                }
                            }
                            if (flag && num2 < 1000000)
                            {
                                for (int index2 = 0; index2 < 54; ++index2)
                                {
                                    if (this.inventory[index2].itemId == 74 && this.inventory[index2].stack >= 1)
                                    {
                                        --this.inventory[index2].stack;
                                        if (this.inventory[index2].stack == 0)
                                            this.inventory[index2].itemId = 0;
                                        this.inventory[index1].SetDefaults(73, false);
                                        this.inventory[index1].stack = 100;
                                        break;
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        for (int index2 = 0; index2 < 54; ++index2)
                            this.inventory[index2] = objArray[index2].Clone();
                        return false;
                    }
                }
            }
            return true;
        }
Player