Пример #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();
        }
Пример #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++;
        }
Пример #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);
                    }
                }
            }
Пример #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();
 }
Пример #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();
        }