Ejemplo n.º 1
0
        void RenderLeaves(Blitter b)
        {
            if (systemtime >= spr_die)
            {
                spr_state = 0;
                return;
            }

            int i;
            while (spritetimer != 0)
            {
                spritetimer--;
                for (i = 0; i < NUM_LEAVES; i++)
                {
                    switch (leaftbl[(leaves[i].angle + systemtime) % 140 / 7])
                    {
                        case 0: leaves[i].x -= 4; leaves[i].y += 4; break;
                        case 1: leaves[i].x -= 6; leaves[i].y += 8; break;
                        case 2: leaves[i].x -= 8; leaves[i].y += 10; break;
                        case 3: leaves[i].x -= 8; leaves[i].y += 12; break;
                        case 4: leaves[i].x -= 16; leaves[i].y += 8; break;
                    }
                    if (leaves[i].x / 16 < 0 - 14) leaves[i].x = 334 * 16;
                    if (leaves[i].y / 16 > 214) leaves[i].y = 0 - 14 * 16;
                }
            }

            for (i = 0; i < NUM_LEAVES; i++)
            {
                if (systemtime > leaves[i].starttime && systemtime < leaves[i].endtime)
                    BlitFrameAt(leaves[i].x / 16, ybase + (leaves[i].y / 16), lspr, leaftbl[(leaves[i].angle + systemtime) % 140 / 7], b);
            }
        }
Ejemplo n.º 2
0
        void RenderBGR8()
        {
            if (bgrtoggle < 2)
            {
                bgrtoggle++;
                return;
            }
            bgrtoggle -= 2;

            if (bgrtick > 128)
            {
                bgrproc = null;
                return;
            }

            Blitter b = new Blitter(bg);
            if (bgrtick < 64)
            {
                b.Color = ColorMorph(bgr8_col1, bgr8_col2, bgrtick, 64);
                b.Line(0, 128 - bgrtick, 255, 128 - bgrtick);
                b.Color = ColorMorph(bgr8_col1, bgr8_col2, bgrtick, 64);
                b.Line(0, 128 + bgrtick, 255, 128 + bgrtick);
            }
            else
            {
                b.Color = ColorMorph(bgr8_col2, bgr8_col3, bgrtick - 64, 64);
                b.Line(0, 128 - bgrtick, 255, 128 - bgrtick);
                b.Color = ColorMorph(bgr8_col2, bgr8_col3, bgrtick - 64, 64);
                b.Line(0, 128 + bgrtick, 255, 128 + bgrtick);
            }

            bgrtick++;
        }
Ejemplo n.º 3
0
        void RenderBGR11()
        {
            if (bgrtoggle < 1)
            {
                bgrtoggle++;
                return;
            }
            bgrtoggle -= 1;

            if (bgrtick > 512)
            {
                bgrproc = null;
                return;
            }
            int x, y;
            Blitter b = new Blitter(bg);
            if (bgrtick < 256)
            {
                x = 50 + (sin(bgrtick * 1536 / 360) * 30 / 65535);
                y = bgrtick;
                SetLucent(b, 85);
                BlitWrap(b, bgr11spr, x, y);
                SetLucent(b, 0);
            }
            else if (bgrtick < 512)
            {
                x = 178 + (sin(bgrtick * 1536 / 360) * 30 / 65535);
                y = 256 - (bgrtick - 256);
                SetLucent(b, 85);
                BlitWrap(b, bgr11spr, x, y);
                SetLucent(b, 0);
            }
            bgrtick++;
        }
Ejemplo n.º 4
0
        void RenderCircular(Blitter b)
        {
            if (systemtime >= spr_die)
            {
                spr_state = 0;
                return;
            }

            while (spritetimer > 1)
            {
                spritetimer -= 2;
                crc_xc += crc_dir;
            }

            int i, mx, my;
            int rx, ry;

            rx = crc_xr + (sin(systemtime) * 10 / 65535);
            ry = crc_yr + (cos(systemtime) * 15 / 65535);

            for (i = 0; i < 8; i++)
            {
                mx = sin(cangle[i] + systemtime) * rx / 65535;
                my = cos(cangle[i] + systemtime) * ry / 65535;
                BlitAt(crc_xc + mx, ybase + crc_yc + my, crc_sprite, b);
            }
        }
Ejemplo n.º 5
0
        void RenderWeather(Blitter b)
        {
            if (systemtime >= spr_die)
            {
                spr_state = 0;
                return;
            }

            int i, j;
            while (spritetimer > 1)
            {
                spritetimer -= 2;
                for (i = 0; i < NUM_NODES; i++)
                {
                    for (j = 0; j <= wnodes[i].layer; j++)
                    {
                        wnodes[i].x--;
                        wnodes[i].y++;
                    }
                    if (wnodes[i].x < 0 - 14) wnodes[i].x = 334;
                    if (wnodes[i].y > 214) wnodes[i].y = 0 - 14;
                }
            }

            for (i = 0; i < NUM_NODES; i++)
            {
                if (systemtime > wnodes[i].starttime && systemtime < wnodes[i].endtime)
                    BlitFrameAt(wnodes[i].x, ybase + wnodes[i].y, wspr, wnodes[i].layer, b);
            }
        }
Ejemplo n.º 6
0
        void BlitFrame(int x, int y, anim_t anim, int frame, Blitter b)
        {
            if (frame > anim.numframes)
                return;

            int frametop = anim.sizey * frame;
            b.BlitSubrect(anim.image, 0, frametop, anim.sizex, anim.sizey, x, y);
        }
Ejemplo n.º 7
0
        void BlitFrameAt(int x, int y, anim_t anim, int frame, Blitter b)
        {
            if (frame > anim.numframes)
                return;

            //if (frame == anim.bufferedframe)
            int frametop = anim.sizey * frame;
            b.BlitSubrect(anim.image, 0, frametop, anim.sizex, anim.sizey, x-anim.sizex/2, y-anim.sizey/2);
        }
Ejemplo n.º 8
0
 public override void Update(GameTime gameTime)
 {
     bCurr = new Blitter(screen);
     base.Update(gameTime);
     if (Microsoft.Xna.Framework.Input.GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) Exit();
     systemtime++;
     MyTimer();
     Tick();
 }
Ejemplo n.º 9
0
        void RenderSlug(Blitter b)
        {
            if (systemtime >= spr_die)
            {
                spr_state = 0;
                return;
            }

            slug_y = 220 - (spritetimer / 2);
            BlitFrameAt(slug_x, ybase + slug_y, slug_spr, pingpong4[systemtime % 42 / 7], b);
        }
Ejemplo n.º 10
0
        void RenderFlyer(Blitter b)
        {
            if (systemtime >= spr_die)
            {
                spr_state = 0;
                return;
            }

            int my = fly_y + ((spritetimer / 4) * fly_dir);
            BlitFrameAt(fly_x + (sin(systemtime / 2) * 60 / 65535), ybase + my, flyer_sprite, pingpong3[systemtime % 28 / 7], b);
        }
Ejemplo n.º 11
0
 /// <summary>
 /// pass in true if you want to enable antialiasing. it will then default to on
 /// </summary>
 protected d3dChrController(GraphicsHW g, bool antialias, int w, int h, int w2x, int h2x)
 {
     this.w = w; this.h = h;
     this.antialias = antialias;
     image = g.newImage(w,h);
     if(antialias && !Config.disableModelAntialiasing) {
         b = new Blitter(image);
         this.w2x = w2x; this.h2x = h2x;
         image2x = g.newImage(w2x,h2x);
     }
     this.g = g;
 }
Ejemplo n.º 12
0
        void RenderFish(Blitter b)
        {
            if (systemtime >= spr_die)
            {
                spr_state = 0;
                return;
            }

            int i, xmod = 0 - (spritetimer / 2);
            for (i = 0; i < NUM_FISHIES; i++)
                BlitFrameAt(fishies[i].x + xmod, ybase + fishies[i].y + (sin(fishies[i].angleofs + systemtime) * 10 / 65535), fishspr, (fishies[i].angleofs + systemtime) % 20 / 10, b);
        }
Ejemplo n.º 13
0
 void InitializeBGR7()
 {
     bgrtick = 0;
     bgrtoggle = 0;
     //???? TODO
     //SetClip(0, 0, 255, 255, bg);
     //SetClip(0, 0, 255, 255, bg2);
     //SetClip(0, 0, 255, 255, bg3);
     Blitter b = new Blitter(bg3);
     b.Blit(bg, 0, 0);
     bgrproc = RenderBGR7;
 }
Ejemplo n.º 14
0
        void RenderCelestial(Blitter b)
        {
            if (systemtime >= spr_die)
            {
                spr_state = 0;
                return;
            }

            while (spritetimer > 1)
            {
                spritetimer -= 2;
                clst_x--;
            }

            BlitAt(clst_x, ybase + clst_y + (sin(systemtime / 3) * 15 / 65535), clst_sprite, b);
        }
Ejemplo n.º 15
0
        void RenderFlower(Blitter b)
        {
            if (systemtime >= spr_die)
            {
                spr_state = 0;
                return;
            }

            while (spritetimer > 1)
            {
                spritetimer -= 2;
                flw_x += flxdir;
                flw_y += flydir;
            }

            b.RotScale(flower, flw_x, ybase + flw_y, Lib.Rads(systemtime * 4 / 3), 1);
        }
Ejemplo n.º 16
0
        protected override void Draw(GameTime gameTime)
        {
            Blitter b = new Blitter(screen);
            bCurr = b;
            b.Clear(Color.Gray);

            //do it with supersecret
            SuperSecretThingy(scrollofs/16, systemtime/2, 0, bg, SuperSecretBuffer);
            b.Blit(SuperSecretBuffer);

            //do it plain for debugging
            //WrapBlit(b, bg, 0, 0);

            //b.ScaleBlit(bobgreen, 0, 0, 100, 100);

            RenderSprites(b);
            app.Window.Title = systemtime.ToString();
            //b.ScaleBlit(spherepurple, 0, 0, 100,100); //test
        }
Ejemplo n.º 17
0
        void Autoexec()
        {
            vidmode = 0;
            switch (vidmode)
            {
                case 0: ybase = 0; break;
                case 1: ybase = 20; break;
                case 2: ybase = 30; break;
            }
            //TODO
            //SetClip(0, ybase, 319, 199+ybase, screen);

            //TODO
            //int r = Random(0,5);
            //switch (r)
            //{
            //    case 0:	PlayMusic("music\rain.s3m");
            //    case 1: PlayMusic("music\zcs-02-intro.xm");
            //    case 2: PlayMusic("music\zk-jdood.it");
            //    case 3:	PlayMusic("music\verge6.it");
            //    case 4: PlayMusic("music\lib-grey.xm");
            //    case 5: PlayMusic("music\sully-columns.it");
            //}
            //cursong = r;

            InitTables();
            //HookTimer("MyTimer"); //handled by Update()

            scrollpath = 0;
            nextscroll = systemtime+700;
            nextskew = systemtime+800;

            int i;
            for (i=0; i<100; i++)
                _skewlines[i] = 1;

            var b = new Blitter(bg);
            b.SetColor(Color.Transparent);
            b.RectFill(0, 0, 256, 256);

            //InitScript();
        }
Ejemplo n.º 18
0
        void RenderSprites(Blitter b)
        {
            int s;

            if (spr_state == 0)
                return;

            switch (spr_state)
            {
                case SPR_SLUG: RenderSlug(b); break;
                case SPR_FLY: RenderFlyer(b); break;
                case SPR_FLOWER: RenderFlower(b); break;
                case SPR_CELESTIAL: RenderCelestial(b); break;
                case SPR_CIRCULAR: RenderCircular(b); break;
                case SPR_FISH: RenderFish(b); break;
                case SPR_SMILIES: RenderSmilies(b); break;
                case SPR_LEAVES: RenderLeaves(b); break;
                case SPR_WEATHER: RenderWeather(b); break;
                case SPR_CANDLE: RenderCandle(b); break;
            }
        }
Ejemplo n.º 19
0
        void RenderBGR5()
        {
            if (bgrtoggle < 4)
            {
                bgrtoggle++;
                return;
            }
            bgrtoggle -= 4;

            if (bgrtick > 63)
            {
                bgrproc = null;
                return;
            }

            int y = bgrtick / 8;
            int x = bgrtick % 8;
            Blitter b = new Blitter(bg);
            b.Blit(bgr5img, x * 32, y * 32);
            bgrtick++;
        }
Ejemplo n.º 20
0
        void RenderBGR0()
        {
            /*	if (bgrtoggle < 1)
                {
                    bgrtoggle++;
                    return;
                }
                bgrtoggle-=1;*/

            if (bgrtick > 600)
            {
                bgrproc = null;
                return;
            }

            int z = Random(40, 255);
            Blitter b = new Blitter(bg);
            b.Color = MakeColor(z, z, z);
            b.SetPixel(Random(0, 255), Random(0, 255));
            bgrtick++;
        }
Ejemplo n.º 21
0
        void RenderBGR7()
        {
            if (bgrtoggle < 5)
            {
                bgrtoggle++;
                return;
            }
            bgrtoggle -= 5;

            if (bgrtick > 100)
            {
                bgrproc = null;
                return;
            }

            Blitter b = new Blitter(bg);
            b.Blit(bg3, 0, 0);
            SetLucent(b,100 - bgrtick);
            b.Blit(bg2, 0, 0);
            bgrtick++;
        }
Ejemplo n.º 22
0
        void RenderSmilies(Blitter b)
        {
            if (systemtime >= spr_die)
            {
                spr_state = 0;
                return;
            }

            while (spritetimer != 0)
            {
                spritetimer--;
                xmin += 2;
            }

            int i;
            for (i = 0; i < NUM_SMILIES; i++)
            {
                if (smilies[i].x < xmin)
                    smilies[i].x += 200;
                BlitAt(smilies[i].x, ybase + smilies[i].y, smilespr, b);
            }
        }
Ejemplo n.º 23
0
        void RenderCandle(Blitter b)
        {
            if (systemtime >= spr_die)
            {
                spr_state = 0;
                return;
            }

            while (spritetimer != 0)
            {
                spritetimer--;
                ctick++;
            }
            cx = 350 - (ctick / 2);

            clangle += 16;

            int i, x, y, haloframe;
            for (i = 0; i < 4; i++)
            {
                if (systemtime > candles[i].nextframe)
                {
                    candles[i].nextframe = systemtime + Random(8, 20);
                    candles[i].frame = Random(0, 9);
                }

                x = cx + (sin(candles[i].angle + (clangle / 12)) * 30 / 65535);
                y = ybase + 100 + (sin(systemtime) * 30 / 65535) + (cos(candles[i].angle + (clangle / 12)) * 30 / 65535);
                BlitAt(x, y, candle, b);
                BlitFrameAt(x - 1, y - 14, flame, candles[i].frame, b);
                haloframe = candles[i].frame;
                if (haloframe > 4)
                    haloframe -= 5;
                BlendAdditive();
                b.BlitSubrect(halo.image, 0, halo.sizey * haloframe, halo.sizex, halo.sizey, x - 1 - (144 / 2), y - 14 - (144 / 2));
                BlendNormal();
            }
        }
Ejemplo n.º 24
0
 public void render(int rx, int ry, Blitter b)
 {
     bool bBottom = true;
     string[] ops = m.rstring.Split(',');
     foreach(string str in ops) {
         if(str == "E") {
             ee.Render(0, rx, ry, b);
             if(bRenderEntityObs) ee.renderObs(0, rx, ry, b);
         }
         try {
             //wtf xna has no tryparse
             //if(int.TryParse(str, out l)) {
             if(str[0] >= '0' && str[0] <= '9') {
                 int l = int.Parse(str);
                 renderLayer(bBottom, rx, ry, m.layers[l - 1], b);
                 bBottom = false;
             }
         } catch { }
     }
     if(bRenderObsLayer) {
         renderObsLayer(rx, ry, b);
     }
 }
Ejemplo n.º 25
0
        void RenderBGR3()
        {
            if (bgrtoggle < 1)
            {
                bgrtoggle++;
                return;
            }
            bgrtoggle -= 1;

            if (bgrtick > 200)
            {
                bgrproc = null;
                return;
            }

            Blitter b = new Blitter(bg);
            b.Blit(bg2, 0, 0);
            b.Alpha = (bgrtick / 2)/100.0f;
            b.RectFill(0, 0, 256, 256);
            bg.Cache();

            bgrtick++;
        }
Ejemplo n.º 26
0
        void InitializeBGR6(int i)
        {
            bgrtick = 0;
            bgrtoggle = 0;

            int bg5img;
            switch (i)
            {
                case 0: bgr5img = tiledbg0; break;
                case 1: bgr5img = tiledbg1; break;
                case 2: bgr5img = tiledbg2; break;
                case 3: bgr5img = tiledbg3; break;
                case 4: bgr5img = tiledbg4; break;
                case 5: bgr5img = tiledbg5; break;
                case 6: bgr5img = tiledbg6; break;
                case 7: bgr5img = tiledbg7; break;
                case 8: bgr5img = tiledbg8; break;
                case 9: bgr5img = tiledbg9; break;
            }
            Blitter b = new Blitter(bg2);
            b.TClear(); //??? is this good?
            WrapBlit(b, bgr5img, 0, 0);
            InitializeBGR7();
        }
Ejemplo n.º 27
0
 /// <summary>
 /// loads a spritemanager by dicing a source image
 /// </summary>
 public SpriteManager LoadSpriteManager(Image source, int width, int height, int xpad, int ypad)
 {
     //TODO - don't do this with blitting. that way we can keep the source texture format. but this will work for now..
     SpriteManager ret = new SpriteManager();
     int framesAcross = source.Width / (width+xpad);
     int framesDown = source.Height / (height+ypad);
     ret.NumFrames = framesAcross*framesDown;
     ret.frames = new Image[ret.NumFrames];
     int ctr=0;
     DisableAlphaBlend();
     for (int iy=0; iy<framesDown; iy++) {
     for(int ix=0;ix<framesAcross; ix++,ctr++) {
         Image img = NewImage(width, height);
         ret.frames[ctr] = img;
         Blitter b = new Blitter(img);
         //b.Clear(Color.Transparent);
         b.Blit(source, -ix*(width+xpad), -iy*(height+ypad));
         img.Cache();
         img.Premultiply();
     }
     }
     EnableAlphaBlend();
     return ret;
 }
Ejemplo n.º 28
0
        void InitializeBGR4(int f)
        {
            Image myimg = null;

            Blitter b = new Blitter(bg2);
            b.Clear(Color.Black);

            switch (f)
            {
                case 0: myimg = facered; break;
                case 1: myimg = faceblue; break;
                case 2: myimg = facegreen; break;
                case 3: myimg = sphereblue; break;
                case 4: myimg = spheregreen; break;
                case 5: myimg = sphereorange; break;
                case 6: myimg = spherepurple; break;
            }

            myimg = spherepurple;

            for (int i = 0; i < 30; i++)
            {
                f = Random(0, 2);
                int dw = -1, dh = -1;
                switch (f)
                {
                    case 0: dw = 64; dh = 64; break;
                    case 1: dw = 32; dh = 32; break;
                    case 2: dw = 16; dh = 16; break;
                }
                int x=Random(0, 255), y=Random(0, 255);
                ScaleWrapBlit(x,y, myimg, dw, dh, bg2);
            }
            InitializeBGR3();
            bg2.Cache();
        }
Ejemplo n.º 29
0
 //void ScaleTo(int w, int h, int srcimg, int destimg)
 void StaticInitializers()
 {
     bg = NewImage(256, 256);
     Blitter b = new Blitter(bg);
     b.Clear(Color.Black);
     bg2 = NewImage(256, 256);
     bg3 = NewImage(256, 256);
     LoadResources();
 }
Ejemplo n.º 30
0
 void ScaleWrapBlit(int dx, int dy, Image srcimg, int dw, int dh, Image dest)
 {
     Image img = NewImage(dw, dh);
     Blitter b = new Blitter(img);
     b.TClear();
     b.ScaleBlit(srcimg, 0, 0, dw, dh);
     int mx = dx - (dw / 2);
     int my = dy - (dh / 2);
     if (mx < 0) mx += 255;
     if (my < 0) my += 255;
     b = new Blitter(dest);
     BlitWrap(b, img, mx, my);
     img.Dispose();
 }