示例#1
0
        public unsafe void GetImage(int x, int y, int width, int height, Bitmap bmp, bool statics)
        {
            if (Map.m_Colors == null)
            {
                Map.LoadColors();
            }
            BitmapData bitmapDatum = bmp.LockBits(new Rectangle(0, 0, width << 3, height << 3), ImageLockMode.WriteOnly, PixelFormat.Format16bppRgb555);
            int        stride      = bitmapDatum.Stride;
            int        num         = stride << 3;
            byte *     scan0       = (byte *)((void *)bitmapDatum.Scan0);
            int        num1        = 0;
            int        num2        = y;

            while (num1 < height)
            {
                int *numPointer  = (int *)scan0;
                int *numPointer1 = (int *)(scan0 + stride);
                int *numPointer2 = (int *)(scan0 + 2 * stride);
                int *numPointer3 = (int *)(scan0 + 3 * stride);
                int *numPointer4 = (int *)(scan0 + 4 * stride);
                int *numPointer5 = (int *)(scan0 + 5 * stride);
                int *numPointer6 = (int *)(scan0 + 6 * stride);
                int *numPointer7 = (int *)(scan0 + 7 * stride);
                int  num3        = 0;
                int  num4        = x;
                while (num3 < width)
                {
                    short[] renderedBlock = this.GetRenderedBlock(num4, num2, statics);
                    fixed(short *numPointer8 = &renderedBlock[0])
                    {
                        int *numPointer9  = (int *)numPointer8;
                        int *numPointer10 = numPointer;

                        numPointer = numPointer10 + 4;
                        int *numPointer11 = numPointer9;

                        numPointer9 = numPointer11 + 4;
                        *    numPointer10 = *numPointer11;
                        int *numPointer12 = numPointer;

                        numPointer = numPointer12 + 4;
                        int *numPointer13 = numPointer9;

                        numPointer9 = numPointer13 + 4;
                        *    numPointer12 = *numPointer13;
                        int *numPointer14 = numPointer;

                        numPointer = numPointer14 + 4;
                        int *numPointer15 = numPointer9;

                        numPointer9 = numPointer15 + 4;
                        *    numPointer14 = *numPointer15;
                        int *numPointer16 = numPointer;

                        numPointer = numPointer16 + 4;
                        int *numPointer17 = numPointer9;

                        numPointer9 = numPointer17 + 4;
                        *    numPointer16 = *numPointer17;
                        int *numPointer18 = numPointer1;

                        numPointer1 = numPointer18 + 4;
                        int *numPointer19 = numPointer9;

                        numPointer9 = numPointer19 + 4;
                        *    numPointer18 = *numPointer19;
                        int *numPointer20 = numPointer1;

                        numPointer1 = numPointer20 + 4;
                        int *numPointer21 = numPointer9;

                        numPointer9 = numPointer21 + 4;
                        *    numPointer20 = *numPointer21;
                        int *numPointer22 = numPointer1;

                        numPointer1 = numPointer22 + 4;
                        int *numPointer23 = numPointer9;

                        numPointer9 = numPointer23 + 4;
                        *    numPointer22 = *numPointer23;
                        int *numPointer24 = numPointer1;

                        numPointer1 = numPointer24 + 4;
                        int *numPointer25 = numPointer9;

                        numPointer9 = numPointer25 + 4;
                        *    numPointer24 = *numPointer25;
                        int *numPointer26 = numPointer2;

                        numPointer2 = numPointer26 + 4;
                        int *numPointer27 = numPointer9;

                        numPointer9 = numPointer27 + 4;
                        *    numPointer26 = *numPointer27;
                        int *numPointer28 = numPointer2;

                        numPointer2 = numPointer28 + 4;
                        int *numPointer29 = numPointer9;

                        numPointer9 = numPointer29 + 4;
                        *    numPointer28 = *numPointer29;
                        int *numPointer30 = numPointer2;

                        numPointer2 = numPointer30 + 4;
                        int *numPointer31 = numPointer9;

                        numPointer9 = numPointer31 + 4;
                        *    numPointer30 = *numPointer31;
                        int *numPointer32 = numPointer2;

                        numPointer2 = numPointer32 + 4;
                        int *numPointer33 = numPointer9;

                        numPointer9 = numPointer33 + 4;
                        *    numPointer32 = *numPointer33;
                        int *numPointer34 = numPointer3;

                        numPointer3 = numPointer34 + 4;
                        int *numPointer35 = numPointer9;

                        numPointer9 = numPointer35 + 4;
                        *    numPointer34 = *numPointer35;
                        int *numPointer36 = numPointer3;

                        numPointer3 = numPointer36 + 4;
                        int *numPointer37 = numPointer9;

                        numPointer9 = numPointer37 + 4;
                        *    numPointer36 = *numPointer37;
                        int *numPointer38 = numPointer3;

                        numPointer3 = numPointer38 + 4;
                        int *numPointer39 = numPointer9;

                        numPointer9 = numPointer39 + 4;
                        *    numPointer38 = *numPointer39;
                        int *numPointer40 = numPointer3;

                        numPointer3 = numPointer40 + 4;
                        int *numPointer41 = numPointer9;

                        numPointer9 = numPointer41 + 4;
                        *    numPointer40 = *numPointer41;
                        int *numPointer42 = numPointer4;

                        numPointer4 = numPointer42 + 4;
                        int *numPointer43 = numPointer9;

                        numPointer9 = numPointer43 + 4;
                        *    numPointer42 = *numPointer43;
                        int *numPointer44 = numPointer4;

                        numPointer4 = numPointer44 + 4;
                        int *numPointer45 = numPointer9;

                        numPointer9 = numPointer45 + 4;
                        *    numPointer44 = *numPointer45;
                        int *numPointer46 = numPointer4;

                        numPointer4 = numPointer46 + 4;
                        int *numPointer47 = numPointer9;

                        numPointer9 = numPointer47 + 4;
                        *    numPointer46 = *numPointer47;
                        int *numPointer48 = numPointer4;

                        numPointer4 = numPointer48 + 4;
                        int *numPointer49 = numPointer9;

                        numPointer9 = numPointer49 + 4;
                        *    numPointer48 = *numPointer49;
                        int *numPointer50 = numPointer5;

                        numPointer5 = numPointer50 + 4;
                        int *numPointer51 = numPointer9;

                        numPointer9 = numPointer51 + 4;
                        *    numPointer50 = *numPointer51;
                        int *numPointer52 = numPointer5;

                        numPointer5 = numPointer52 + 4;
                        int *numPointer53 = numPointer9;

                        numPointer9 = numPointer53 + 4;
                        *    numPointer52 = *numPointer53;
                        int *numPointer54 = numPointer5;

                        numPointer5 = numPointer54 + 4;
                        int *numPointer55 = numPointer9;

                        numPointer9 = numPointer55 + 4;
                        *    numPointer54 = *numPointer55;
                        int *numPointer56 = numPointer5;

                        numPointer5 = numPointer56 + 4;
                        int *numPointer57 = numPointer9;

                        numPointer9 = numPointer57 + 4;
                        *    numPointer56 = *numPointer57;
                        int *numPointer58 = numPointer6;

                        numPointer6 = numPointer58 + 4;
                        int *numPointer59 = numPointer9;

                        numPointer9 = numPointer59 + 4;
                        *    numPointer58 = *numPointer59;
                        int *numPointer60 = numPointer6;

                        numPointer6 = numPointer60 + 4;
                        int *numPointer61 = numPointer9;

                        numPointer9 = numPointer61 + 4;
                        *    numPointer60 = *numPointer61;
                        int *numPointer62 = numPointer6;

                        numPointer6 = numPointer62 + 4;
                        int *numPointer63 = numPointer9;

                        numPointer9 = numPointer63 + 4;
                        *    numPointer62 = *numPointer63;
                        int *numPointer64 = numPointer6;

                        numPointer6 = numPointer64 + 4;
                        int *numPointer65 = numPointer9;

                        numPointer9 = numPointer65 + 4;
                        *    numPointer64 = *numPointer65;
                        int *numPointer66 = numPointer7;

                        numPointer7 = numPointer66 + 4;
                        int *numPointer67 = numPointer9;

                        numPointer9 = numPointer67 + 4;
                        *    numPointer66 = *numPointer67;
                        int *numPointer68 = numPointer7;

                        numPointer7 = numPointer68 + 4;
                        int *numPointer69 = numPointer9;

                        numPointer9 = numPointer69 + 4;
                        *    numPointer68 = *numPointer69;
                        int *numPointer70 = numPointer7;

                        numPointer7 = numPointer70 + 4;
                        int *numPointer71 = numPointer9;

                        numPointer9 = numPointer71 + 4;
                        *    numPointer70 = *numPointer71;
                        int *numPointer72 = numPointer7;

                        numPointer7 = numPointer72 + 4;
                        int *numPointer73 = numPointer9;

                        numPointer9 = numPointer73 + 4;
                        *numPointer72 = *numPointer73;
                    }

                    num3++;
                    num4++;
                }
                num1++;
                num2++;
                scan0 = scan0 + num;
            }
            bmp.UnlockBits(bitmapDatum);
        }
示例#2
0
        public unsafe void GetImage(int x, int y, int width, int height, Bitmap bmp, bool statics)
        {
            if (Map.m_Colors == null)
            {
                Map.LoadColors();
            }
            BitmapData bitmapdata = bmp.LockBits(new Rectangle(0, 0, width << 3, height << 3), ImageLockMode.WriteOnly, PixelFormat.Format16bppRgb555);
            int        stride     = bitmapdata.Stride;
            int        num1       = stride << 3;
            byte *     numPtr1    = (byte *)(void *)bitmapdata.Scan0;
            int        num2       = 0;
            int        y1         = y;

            while (num2 < height)
            {
                int *numPtr2 = (int *)numPtr1;
                int *numPtr3 = (int *)(numPtr1 + stride);
                int *numPtr4 = (int *)(numPtr1 + (new IntPtr(2) * stride).ToInt64());
                int *numPtr5 = (int *)(numPtr1 + (new IntPtr(3) * stride).ToInt64());
                int *numPtr6 = (int *)(numPtr1 + (new IntPtr(4) * stride).ToInt64());
                int *numPtr7 = (int *)(numPtr1 + (new IntPtr(5) * stride).ToInt64());
                int *numPtr8 = (int *)(numPtr1 + (new IntPtr(6) * stride).ToInt64());
                int *numPtr9 = (int *)(numPtr1 + (new IntPtr(7) * stride).ToInt64());
                int  num3    = 0;
                int  x1      = x;
                while (num3 < width)
                {
                    fixed(short *numPtr10 = &this.GetRenderedBlock(x1, y1, statics)[0])
                    {
                        int *numPtr11 = numPtr2;
                        int  num4     = 4;
                        int *numPtr12 = (int *)((IntPtr)numPtr11 + num4);
                        int *numPtr13 = (int *)numPtr10;
                        int  num5     = 4;
                        int *numPtr14 = (int *)((IntPtr)numPtr13 + num5);
                        int  num6     = *numPtr13;

                        *    numPtr11 = num6;
                        int *numPtr15 = numPtr12;
                        int  num7     = 4;
                        int *numPtr16 = (int *)((IntPtr)numPtr15 + num7);
                        int *numPtr17 = numPtr14;
                        int  num8     = 4;
                        int *numPtr18 = (int *)((IntPtr)numPtr17 + num8);
                        int  num9     = *numPtr17;

                        *    numPtr15 = num9;
                        int *numPtr19 = numPtr16;
                        int  num10    = 4;
                        int *numPtr20 = (int *)((IntPtr)numPtr19 + num10);
                        int *numPtr21 = numPtr18;
                        int  num11    = 4;
                        int *numPtr22 = (int *)((IntPtr)numPtr21 + num11);
                        int  num12    = *numPtr21;

                        *    numPtr19 = num12;
                        int *numPtr23 = numPtr20;
                        int  num13    = 4;

                        numPtr2 = (int *)((IntPtr)numPtr23 + num13);
                        int *numPtr24 = numPtr22;
                        int  num14    = 4;
                        int *numPtr25 = (int *)((IntPtr)numPtr24 + num14);
                        int  num15    = *numPtr24;

                        *    numPtr23 = num15;
                        int *numPtr26 = numPtr3;
                        int  num16    = 4;
                        int *numPtr27 = (int *)((IntPtr)numPtr26 + num16);
                        int *numPtr28 = numPtr25;
                        int  num17    = 4;
                        int *numPtr29 = (int *)((IntPtr)numPtr28 + num17);
                        int  num18    = *numPtr28;

                        *    numPtr26 = num18;
                        int *numPtr30 = numPtr27;
                        int  num19    = 4;
                        int *numPtr31 = (int *)((IntPtr)numPtr30 + num19);
                        int *numPtr32 = numPtr29;
                        int  num20    = 4;
                        int *numPtr33 = (int *)((IntPtr)numPtr32 + num20);
                        int  num21    = *numPtr32;

                        *    numPtr30 = num21;
                        int *numPtr34 = numPtr31;
                        int  num22    = 4;
                        int *numPtr35 = (int *)((IntPtr)numPtr34 + num22);
                        int *numPtr36 = numPtr33;
                        int  num23    = 4;
                        int *numPtr37 = (int *)((IntPtr)numPtr36 + num23);
                        int  num24    = *numPtr36;

                        *    numPtr34 = num24;
                        int *numPtr38 = numPtr35;
                        int  num25    = 4;

                        numPtr3 = (int *)((IntPtr)numPtr38 + num25);
                        int *numPtr39 = numPtr37;
                        int  num26    = 4;
                        int *numPtr40 = (int *)((IntPtr)numPtr39 + num26);
                        int  num27    = *numPtr39;

                        *    numPtr38 = num27;
                        int *numPtr41 = numPtr4;
                        int  num28    = 4;
                        int *numPtr42 = (int *)((IntPtr)numPtr41 + num28);
                        int *numPtr43 = numPtr40;
                        int  num29    = 4;
                        int *numPtr44 = (int *)((IntPtr)numPtr43 + num29);
                        int  num30    = *numPtr43;

                        *    numPtr41 = num30;
                        int *numPtr45 = numPtr42;
                        int  num31    = 4;
                        int *numPtr46 = (int *)((IntPtr)numPtr45 + num31);
                        int *numPtr47 = numPtr44;
                        int  num32    = 4;
                        int *numPtr48 = (int *)((IntPtr)numPtr47 + num32);
                        int  num33    = *numPtr47;

                        *    numPtr45 = num33;
                        int *numPtr49 = numPtr46;
                        int  num34    = 4;
                        int *numPtr50 = (int *)((IntPtr)numPtr49 + num34);
                        int *numPtr51 = numPtr48;
                        int  num35    = 4;
                        int *numPtr52 = (int *)((IntPtr)numPtr51 + num35);
                        int  num36    = *numPtr51;

                        *    numPtr49 = num36;
                        int *numPtr53 = numPtr50;
                        int  num37    = 4;

                        numPtr4 = (int *)((IntPtr)numPtr53 + num37);
                        int *numPtr54 = numPtr52;
                        int  num38    = 4;
                        int *numPtr55 = (int *)((IntPtr)numPtr54 + num38);
                        int  num39    = *numPtr54;

                        *    numPtr53 = num39;
                        int *numPtr56 = numPtr5;
                        int  num40    = 4;
                        int *numPtr57 = (int *)((IntPtr)numPtr56 + num40);
                        int *numPtr58 = numPtr55;
                        int  num41    = 4;
                        int *numPtr59 = (int *)((IntPtr)numPtr58 + num41);
                        int  num42    = *numPtr58;

                        *    numPtr56 = num42;
                        int *numPtr60 = numPtr57;
                        int  num43    = 4;
                        int *numPtr61 = (int *)((IntPtr)numPtr60 + num43);
                        int *numPtr62 = numPtr59;
                        int  num44    = 4;
                        int *numPtr63 = (int *)((IntPtr)numPtr62 + num44);
                        int  num45    = *numPtr62;

                        *    numPtr60 = num45;
                        int *numPtr64 = numPtr61;
                        int  num46    = 4;
                        int *numPtr65 = (int *)((IntPtr)numPtr64 + num46);
                        int *numPtr66 = numPtr63;
                        int  num47    = 4;
                        int *numPtr67 = (int *)((IntPtr)numPtr66 + num47);
                        int  num48    = *numPtr66;

                        *    numPtr64 = num48;
                        int *numPtr68 = numPtr65;
                        int  num49    = 4;

                        numPtr5 = (int *)((IntPtr)numPtr68 + num49);
                        int *numPtr69 = numPtr67;
                        int  num50    = 4;
                        int *numPtr70 = (int *)((IntPtr)numPtr69 + num50);
                        int  num51    = *numPtr69;

                        *    numPtr68 = num51;
                        int *numPtr71 = numPtr6;
                        int  num52    = 4;
                        int *numPtr72 = (int *)((IntPtr)numPtr71 + num52);
                        int *numPtr73 = numPtr70;
                        int  num53    = 4;
                        int *numPtr74 = (int *)((IntPtr)numPtr73 + num53);
                        int  num54    = *numPtr73;

                        *    numPtr71 = num54;
                        int *numPtr75 = numPtr72;
                        int  num55    = 4;
                        int *numPtr76 = (int *)((IntPtr)numPtr75 + num55);
                        int *numPtr77 = numPtr74;
                        int  num56    = 4;
                        int *numPtr78 = (int *)((IntPtr)numPtr77 + num56);
                        int  num57    = *numPtr77;

                        *    numPtr75 = num57;
                        int *numPtr79 = numPtr76;
                        int  num58    = 4;
                        int *numPtr80 = (int *)((IntPtr)numPtr79 + num58);
                        int *numPtr81 = numPtr78;
                        int  num59    = 4;
                        int *numPtr82 = (int *)((IntPtr)numPtr81 + num59);
                        int  num60    = *numPtr81;

                        *    numPtr79 = num60;
                        int *numPtr83 = numPtr80;
                        int  num61    = 4;

                        numPtr6 = (int *)((IntPtr)numPtr83 + num61);
                        int *numPtr84 = numPtr82;
                        int  num62    = 4;
                        int *numPtr85 = (int *)((IntPtr)numPtr84 + num62);
                        int  num63    = *numPtr84;

                        *    numPtr83 = num63;
                        int *numPtr86 = numPtr7;
                        int  num64    = 4;
                        int *numPtr87 = (int *)((IntPtr)numPtr86 + num64);
                        int *numPtr88 = numPtr85;
                        int  num65    = 4;
                        int *numPtr89 = (int *)((IntPtr)numPtr88 + num65);
                        int  num66    = *numPtr88;

                        *    numPtr86 = num66;
                        int *numPtr90 = numPtr87;
                        int  num67    = 4;
                        int *numPtr91 = (int *)((IntPtr)numPtr90 + num67);
                        int *numPtr92 = numPtr89;
                        int  num68    = 4;
                        int *numPtr93 = (int *)((IntPtr)numPtr92 + num68);
                        int  num69    = *numPtr92;

                        *    numPtr90 = num69;
                        int *numPtr94 = numPtr91;
                        int  num70    = 4;
                        int *numPtr95 = (int *)((IntPtr)numPtr94 + num70);
                        int *numPtr96 = numPtr93;
                        int  num71    = 4;
                        int *numPtr97 = (int *)((IntPtr)numPtr96 + num71);
                        int  num72    = *numPtr96;

                        *    numPtr94 = num72;
                        int *numPtr98 = numPtr95;
                        int  num73    = 4;

                        numPtr7 = (int *)((IntPtr)numPtr98 + num73);
                        int *numPtr99  = numPtr97;
                        int  num74     = 4;
                        int *numPtr100 = (int *)((IntPtr)numPtr99 + num74);
                        int  num75     = *numPtr99;

                        *    numPtr98  = num75;
                        int *numPtr101 = numPtr8;
                        int  num76     = 4;
                        int *numPtr102 = (int *)((IntPtr)numPtr101 + num76);
                        int *numPtr103 = numPtr100;
                        int  num77     = 4;
                        int *numPtr104 = (int *)((IntPtr)numPtr103 + num77);
                        int  num78     = *numPtr103;

                        *    numPtr101 = num78;
                        int *numPtr105 = numPtr102;
                        int  num79     = 4;
                        int *numPtr106 = (int *)((IntPtr)numPtr105 + num79);
                        int *numPtr107 = numPtr104;
                        int  num80     = 4;
                        int *numPtr108 = (int *)((IntPtr)numPtr107 + num80);
                        int  num81     = *numPtr107;

                        *    numPtr105 = num81;
                        int *numPtr109 = numPtr106;
                        int  num82     = 4;
                        int *numPtr110 = (int *)((IntPtr)numPtr109 + num82);
                        int *numPtr111 = numPtr108;
                        int  num83     = 4;
                        int *numPtr112 = (int *)((IntPtr)numPtr111 + num83);
                        int  num84     = *numPtr111;

                        *    numPtr109 = num84;
                        int *numPtr113 = numPtr110;
                        int  num85     = 4;

                        numPtr8 = (int *)((IntPtr)numPtr113 + num85);
                        int *numPtr114 = numPtr112;
                        int  num86     = 4;
                        int *numPtr115 = (int *)((IntPtr)numPtr114 + num86);
                        int  num87     = *numPtr114;

                        *    numPtr113 = num87;
                        int *numPtr116 = numPtr9;
                        int  num88     = 4;
                        int *numPtr117 = (int *)((IntPtr)numPtr116 + num88);
                        int *numPtr118 = numPtr115;
                        int  num89     = 4;
                        int *numPtr119 = (int *)((IntPtr)numPtr118 + num89);
                        int  num90     = *numPtr118;

                        *    numPtr116 = num90;
                        int *numPtr120 = numPtr117;
                        int  num91     = 4;
                        int *numPtr121 = (int *)((IntPtr)numPtr120 + num91);
                        int *numPtr122 = numPtr119;
                        int  num92     = 4;
                        int *numPtr123 = (int *)((IntPtr)numPtr122 + num92);
                        int  num93     = *numPtr122;

                        *    numPtr120 = num93;
                        int *numPtr124 = numPtr121;
                        int  num94     = 4;
                        int *numPtr125 = (int *)((IntPtr)numPtr124 + num94);
                        int *numPtr126 = numPtr123;
                        int  num95     = 4;
                        int *numPtr127 = (int *)((IntPtr)numPtr126 + num95);
                        int  num96     = *numPtr126;

                        *    numPtr124 = num96;
                        int *numPtr128 = numPtr125;
                        int  num97     = 4;

                        numPtr9 = (int *)((IntPtr)numPtr128 + num97);
                        int *numPtr129 = numPtr127;
                        int  num98     = 4;
                        int *numPtr130 = (int *)((IntPtr)numPtr129 + num98);
                        int  num99     = *numPtr129;

                        *numPtr128 = num99;
                    }

                    ++num3;
                    ++x1;
                }
                ++num2;
                ++y1;
                numPtr1 += num1;
            }
            bmp.UnlockBits(bitmapdata);
        }