예제 #1
0
        public void method279(int i, int j, int k, int l, int i1, int j1, int k1,
				int l1, int i2, int j2, int k2, int l2, int i3, int j3,
				int k3, int l3, int i4, int j4, int k4, int l4)
        {
            if (l == 0)
            {
                Class43 class43 = new Class43(k2, l2, i3, j3, -1, k4, false);
                for (int i5 = i; i5 >= 0; i5--)
                    if (groundArray[i5][j][k] == null)
                        groundArray[i5][j][k] = new Ground(i5, j, k);

                groundArray[i][j][k].aClass43_1311 = class43;
                return;
            }
            if (l == 1)
            {
                Class43 class43_1 = new Class43(k3, l3, i4, j4, j1, l4, k1 == l1 && k1 == i2 && k1 == j2);
                for (int j5 = i; j5 >= 0; j5--)
                    if (groundArray[j5][j][k] == null)
                        groundArray[j5][j][k] = new Ground(j5, j, k);

                groundArray[i][j][k].aClass43_1311 = class43_1;
                return;
            }
            Class40 class40 = new Class40(k, k3, j3, i2, j1, i4, i1, k2, k4, i3, j2, l1, k1, l, j4, l3, l2, j, l4);
            for (int k5 = i; k5 >= 0; k5--)
                if (groundArray[k5][j][k] == null)
                    groundArray[k5][j][k] = new Ground(k5, j, k);

            groundArray[i][j][k].aClass40_1312 = class40;
        }
예제 #2
0
        private void method316(int i, int j, int k, Class40 class40, int l, int i1,
							   int j1)
        {
            int k1 = class40.anIntArray673.Length;
            for (int l1 = 0; l1 < k1; l1++)
            {
                int i2 = class40.anIntArray673[l1] - anInt455;
                int k2 = class40.anIntArray674[l1] - anInt456;
                int i3 = class40.anIntArray675[l1] - anInt457;
                int k3 = i3 * k + i2 * j1 >> 16;
                i3 = i3 * j1 - i2 * k >> 16;
                i2 = k3;
                k3 = k2 * l - i3 * j >> 16;
                i3 = k2 * j + i3 * l >> 16;
                k2 = k3;
                if (i3 < 50)
                    return;
                if (class40.anIntArray682 != null)
                {
                    Class40.anIntArray690[l1] = i2;
                    Class40.anIntArray691[l1] = k2;
                    Class40.anIntArray692[l1] = i3;
                }
                Class40.anIntArray688[l1] = Rasterizer.center_x + (i2 << 9) / i3;
                Class40.anIntArray689[l1] = Rasterizer.center_y + (k2 << 9) / i3;
            }

            Rasterizer.alpha = 0;
            k1 = class40.anIntArray679.Length;
            for (int j2 = 0; j2 < k1; j2++)
            {
                int l2 = class40.anIntArray679[j2];
                int j3 = class40.anIntArray680[j2];
                int l3 = class40.anIntArray681[j2];
                int i4 = Class40.anIntArray688[l2];
                int j4 = Class40.anIntArray688[j3];
                int k4 = Class40.anIntArray688[l3];
                int l4 = Class40.anIntArray689[l2];
                int i5 = Class40.anIntArray689[j3];
                int j5 = Class40.anIntArray689[l3];
                if ((i4 - j4) * (j5 - i5) - (l4 - i5) * (k4 - j4) > 0)
                {
                    Rasterizer.aBoolean1462 = i4 < 0 || j4 < 0 || k4 < 0 || i4 > DrawingArea.centerX || j4 > DrawingArea.centerX || k4 > DrawingArea.centerX;
                    if (aBoolean467 && method318(anInt468, anInt469, l4, i5, j5, i4, j4, k4))
                    {
                        anInt470 = i;
                        anInt471 = i1;
                    }
                    if (class40.anIntArray682 == null || class40.anIntArray682[j2] == -1)
                    {
                        if (class40.anIntArray676[j2] != 0xbc614e)
                            Rasterizer.DrawShadedTriangle(l4, i5, j5, i4, j4, k4, class40.anIntArray676[j2], class40.anIntArray677[j2], class40.anIntArray678[j2]);
                    }
                    else
                        if (!lowMem)
                        {
                            if (class40.aBoolean683)
                                Rasterizer.DrawTexturedTriangle(l4, i5, j5, i4, j4, k4, class40.anIntArray676[j2], class40.anIntArray677[j2], class40.anIntArray678[j2], Class40.anIntArray690[0], Class40.anIntArray690[1], Class40.anIntArray690[3], Class40.anIntArray691[0], Class40.anIntArray691[1], Class40.anIntArray691[3], Class40.anIntArray692[0], Class40.anIntArray692[1], Class40.anIntArray692[3], class40.anIntArray682[j2]);
                            else
                                Rasterizer.DrawTexturedTriangle(l4, i5, j5, i4, j4, k4, class40.anIntArray676[j2], class40.anIntArray677[j2], class40.anIntArray678[j2], Class40.anIntArray690[l2], Class40.anIntArray690[j3], Class40.anIntArray690[l3], Class40.anIntArray691[l2], Class40.anIntArray691[j3], Class40.anIntArray691[l3], Class40.anIntArray692[l2], Class40.anIntArray692[j3], Class40.anIntArray692[l3], class40.anIntArray682[j2]);
                        }
                        else
                        {
                            int k5 = anIntArray485[class40.anIntArray682[j2]];
                            Rasterizer.DrawShadedTriangle(l4, i5, j5, i4, j4, k4, method317(k5, class40.anIntArray676[j2]), method317(k5, class40.anIntArray677[j2]), method317(k5, class40.anIntArray678[j2]));
                        }
                }
            }
        }