Ejemplo n.º 1
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.º 2
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.º 3
0
            void renderItemList(Blitter b, List<Menu> items, int selIndex, bool selActive, int width)
            {
                int indent = 10;

                //indent the list
                b.OffsetWindow(indent, 0);

                int overallWidth = width + SelectionOverhang;

                //the tie
                FrameRenderer fr = new FrameRenderer(cabedge.img_ui, new Chunk[]{
                    new Chunk(75, 82, 4, 3),
                    new Chunk(75, 86, 4, 42),
                    new Chunk(75, 129, 4, 3),
                    new Chunk(80, 131, 1, 1),
                    Chunk.empty,
                    Chunk.empty,
                    Chunk.empty,
                    new Chunk(80, 82, 1, 1)});

                //the bar
                FrameRenderer fr_gray = new FrameRenderer(cabedge.img_ui, new Chunk[]{
                    new Chunk(94, 83, 5, 6),
                    new Chunk(94, 90, 5, 1),
                    new Chunk(94, 92, 5, 6),
                    new Chunk(100, 92, 1, 6),
                    new Chunk(102, 92, 5, 6),
                    new Chunk(102, 90, 5, 1),
                    new Chunk(102, 83, 5, 6),
                    new Chunk(100, 83, 1, 6)});

                FrameRenderer fr_sel = fr_gray.offset(0, 17);

                //the selActive renderer is same as green but with an endcap
                FrameRenderer fr_selActive = fr_sel.clone();
                fr_selActive.NE = new Chunk(108, 100, 5, 5);
                fr_selActive.E = new Chunk(108, 106, 5, 3);
                fr_selActive.SE = new Chunk(108, 110, 5, 5);

                //render the tie (the left,top,and bottom border)
                int tie_height = 16*items.Count+2;
                fr.render(b,new Rectangle(0,0,width,tie_height));

                //render items
                for(int i=0;i<items.Count;i++) {
                    int x = 4;
                    int y = i*16+1;
                    int w = width-4;
                    int h = 16;

                    //(render fill first so the green endcap can overlap)
                    if(i == selIndex) {
                        b.Color = MakeColor(225, 255, 208);
                        if(selActive) {
                            b.RectFill(x+5, y+6, w-10+SelectionOverhang, h-12);
                            fr_selActive.render(b, new Rectangle(x, y, w + SelectionOverhang, h));
                        } else {
                            b.RectFill(x+5, y+6, w-10, h-12);
                            fr_sel.render(b, new Rectangle(x, y, w, h));
                        }
                    } else {
                        b.Color = MakeColor(232, 232, 232);
                        b.RectFill(x+5, y+6, w-10, h-12);
                        fr_gray.render(b, new Rectangle(x, y, w, h));
                    }

                    if(items[i].label != null) {
                        int textOffset = 5;
                        //offset for aesthetics and/or icon
                        textOffset += 8;
                        cabedge.font_v3_1_black.Render(b, x+textOffset, y+5, items[i].label);
                    }
                }
            }
Ejemplo n.º 4
0
 public void Draw(Blitter b)
 {
     b.Color = Color.Red;
     b.PushAlpha(0.25f);
     using (Image image = GameEngine.Game.LoadImage("/assembly/WhiteNoise.png"))
         b.StretchBlit(image, rect);
     b.RectFill(rect);
     b.PopAlpha();
 }
Ejemplo n.º 5
0
        private void renderObsLayer(int xo, int yo, Blitter b)
        {
            int xofs = -(xo & 15);
            int yofs = -(yo & 15);
            int xtc = xo >> 4;
            int ytc = yo >> 4;

            int tw = (b.Dest.Width >> 4) + 2;
            int th = (b.Dest.Height >> 4) + 2;

            b.SetColor(255, 255, 255);
            b.PushAlpha(0.5f);
            for(int y = 0; y < th; y++)
                for(int x = 0; x < tw; x++) {
                    if(y + ytc >= m.height || x + xtc >= m.width || x + xtc < 0 || y + ytc < 0) continue;
                    int t = m.logicalLayer.readObs(x + xtc, y + ytc);
                    if(t == 0) continue;
                    b.RectFill(xofs + x * 16, yofs + y * 16, 16, 16);
                }
            b.PopAlpha();
        }