private void method289(Object5 class28)
        {
            for (int j = class28.anInt523; j <= class28.anInt524; j++)
            {
                for (int k = class28.anInt525; k <= class28.anInt526; k++)
                {
                    Ground class30_sub3 = groundArray[class28.anInt517][j][k];
                    if (class30_sub3 != null)
                    {
                        for (int l = 0; l < class30_sub3.anInt1317; l++)
                        {
                            if (class30_sub3.obj5Array[l] != class28)
                                continue;
                            class30_sub3.anInt1317--;
                            for (int i1 = l; i1 < class30_sub3.anInt1317; i1++)
                            {
                                class30_sub3.obj5Array[i1] = class30_sub3.obj5Array[i1 + 1];
                                class30_sub3.anIntArray1319[i1] = class30_sub3.anIntArray1319[i1 + 1];
                            }

                            class30_sub3.obj5Array[class30_sub3.anInt1317] = null;
                            break;
                        }

                        class30_sub3.anInt1320 = 0;
                        for (int j1 = 0; j1 < class30_sub3.anInt1317; j1++)
                            class30_sub3.anInt1320 |= class30_sub3.anIntArray1319[j1];

                    }
                }

            }
        }
        private bool method287(int i, int j, int k, int l, int i1, int j1, int k1,
				int l1, Animable class30_sub2_sub4, int i2, bool flag, int j2, sbyte byte0)
        {
            for (int k2 = j; k2 < j + l; k2++)
            {
                for (int l2 = k; l2 < k + i1; l2++)
                {
                    if (k2 < 0 || l2 < 0 || k2 >= anInt438 || l2 >= anInt439)
                        return false;
                    Ground class30_sub3 = groundArray[i][k2][l2];
                    if (class30_sub3 != null && class30_sub3.anInt1317 >= 5)
                        return false;
                }

            }

            Object5 class28 = new Object5();
            class28.uid = j2;
            class28.aByte530 = byte0;
            class28.anInt517 = i;
            class28.anInt519 = j1;
            class28.anInt520 = k1;
            class28.anInt518 = l1;
            class28.aClass30_Sub2_Sub4_521 = class30_sub2_sub4;
            class28.anInt522 = i2;
            class28.anInt523 = j;
            class28.anInt525 = k;
            class28.anInt524 = (j + l) - 1;
            class28.anInt526 = (k + i1) - 1;
            for (int i3 = j; i3 < j + l; i3++)
            {
                for (int j3 = k; j3 < k + i1; j3++)
                {
                    int k3 = 0;
                    if (i3 > j)
                        k3++;
                    if (i3 < (j + l) - 1)
                        k3 += 4;
                    if (j3 > k)
                        k3 += 8;
                    if (j3 < (k + i1) - 1)
                        k3 += 2;
                    for (int l3 = i; l3 >= 0; l3--)
                        if (groundArray[l3][i3][j3] == null)
                            groundArray[l3][i3][j3] = new Ground(l3, i3, j3);

                    Ground class30_sub3_1 = groundArray[i][i3][j3];
                    class30_sub3_1.obj5Array[class30_sub3_1.anInt1317] = class28;
                    class30_sub3_1.anIntArray1319[class30_sub3_1.anInt1317] = k3;
                    class30_sub3_1.anInt1320 |= k3;
                    class30_sub3_1.anInt1317++;
                }

            }

            if (flag)
                obj5Cache[obj5CacheCurrPos++] = class28;
            return true;
        }