]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/dos_gfx.cpp
modified: 16/modex16/scroll.c
[16.git] / src / lib / dos_gfx.cpp
index bb1e4cf27806894fab0c30df431266610f586ce4..4491318bb566aec00009d07b18767b42e530b70f 100644 (file)
@@ -131,7 +131,7 @@ void plotpixel(int x, int y, byte color, byte *Where){
 }\r
 \r
 // king_crimson's code\r
-void plotpixelfast(int x, int y, byte color, byte *Where) {\r
+void ppf(int x, int y, byte color, byte *Where) {\r
        byte far *vidptr;\r
        vidptr = (byte far *)(Where + y*SW + x);\r
        *vidptr = color;\r
@@ -160,7 +160,7 @@ void BlockMove(){
        for(loop2=1; loop2<41; loop2++)\r
                for(loop3=1; loop3<41; loop3++)\r
                        plotpixel(loop1+loop2,loop3,14, vaddr);\r
-               updatevbuff();\r
+               //updatevbuff();\r
                cls(0,vaddr);\r
        }\r
 \r
@@ -175,21 +175,18 @@ void BlockMove(){
        }*/\r
 }\r
 \r
-void etesuto(int x = 160, int y = 100){\r
+void eraseplayer(int x = 160, int y = 100){\r
        memset(vaddr+(x+(y*SW)),gq-1,1);\r
-       updatevbuff();\r
 }\r
 \r
-void qtesuto(int x = 160, int y = 100, int color = 0){\r
+void drawplayer(int x = 160, int y = 100, int color = 0){\r
        memset(vaddr+(x+(y*SW)),color,1);\r
-       updatevbuff();\r
 }\r
 \r
 //color てすと\r
 int colortest(){\r
        if(gq < NUM_COLORS){\r
                cls(gq, vaddr);\r
-               updatevbuff();\r
                gq++;\r
        }else gq = 0;\r
        return gq;\r
@@ -199,7 +196,6 @@ int colortest(){
 int colorz(){\r
        if(gq < HGQ){\r
                cls(gq, vaddr);\r
-               updatevbuff();\r
                gq++;\r
        }else gq = LGQ;\r
        return gq;\r
@@ -210,7 +206,7 @@ void ssd(int svq){
        if(sy < SH+1){\r
                if(sx < SW+1){\r
                        //plotpixel(xx, yy, coor, vga);\r
-                       plotpixelfast(sx, sy, coor, vga);\r
+                       ppf(sx, sy, coor, vga);\r
                        //printf("%d %d %d %d\n", sx, sy, svq, coor);\r
                        sx++;\r
                }else sx = 0;\r
@@ -221,6 +217,60 @@ void ssd(int svq){
                }\r
        }else sy = 0;\r
 }\r
+
+//inefficient pallette dumping
+void pdump(int mult){
+       int palq=mult*16;
+       int palcol=0;
+       for(int paly=0; paly<palq; paly++){
+               for(int palx=0; palx<palq; palx++){
+                               for(int iy=0; iy<mult; iy++){
+                                       for(int ix=0; ix<mult; ix++){
+                                               ppf((SW-palq)+palx+ix, paly+iy, palcol, vaddr);
+                                       }
+                               }
+                       for(int i=1; i<mult; i++) palx++;
+                       palcol++;
+               }
+       for(int i=1; i<mult; i++) paly++;
+       }
+}
+
+//draw a tulip inifficiently
+void tulip(){
+       cls(0,vaddr);
+       std::cout << "01 Story of Chikyuu" << std::endl;
+       //22 lines
+       int tx = (SW/2)-16;
+       int ty = (SH/2)-22;
+       gq = 0;
+       ppf(tx+8, ty, 37, vaddr); ty++;
+       ppf(tx+7, ty, 37, vaddr); ppf(tx+8, ty, 37, vaddr); ty++;
+       ppf(tx+6, ty, 37, vaddr); ppf(tx+7, ty, 37, vaddr); ppf(tx+8, ty, 40, vaddr); ppf(tx+9, ty, 37, vaddr); ty++;
+       ppf(tx+2, ty, 40, vaddr); ppf(tx+5, ty, 37, vaddr); ppf(tx+6, ty, 37, vaddr); ppf(tx+7, ty, 40, vaddr); ppf(tx+8, ty, 40, vaddr); ppf(tx+9, ty, 38, vaddr); ppf(tx+12, ty, 37, vaddr); ty++;
+       ppf(tx+3, ty, 40, vaddr); ppf(tx+4, ty, 40, vaddr); ppf(tx+5, ty, 37, vaddr); ppf(tx+6, ty, 38, vaddr); ppf(tx+7, ty, 40, vaddr); ppf(tx+8, ty, 38, vaddr); ppf(tx+9, ty, 40, vaddr); ppf(tx+10, ty, 38, vaddr); ppf(tx+11, ty, 37, vaddr); ppf(tx+12, ty, 40, vaddr); ty++;
+       ppf(tx+3, ty, 40, vaddr); ppf(tx+4, ty, 40, vaddr); ppf(tx+5, ty, 40, vaddr); ppf(tx+6, ty, 44, vaddr); ppf(tx+7, ty, 38, vaddr); ppf(tx+8, ty, 44, vaddr); ppf(tx+9, ty, 40, vaddr); ppf(tx+10, ty, 37, vaddr); ppf(tx+11, ty, 40, vaddr); ppf(tx+12, ty, 40, vaddr); ty++;
+       //7
+       ppf(tx+3, ty, 40, vaddr); ppf(tx+4, ty, 40, vaddr); ppf(tx+5, ty, 40, vaddr); ppf(tx+6, ty, 44, vaddr); ppf(tx+7, ty, 44, vaddr); ppf(tx+8, ty, 40, vaddr); ppf(tx+9, ty, 44, vaddr); ppf(tx+10, ty, 37, vaddr); ppf(tx+11, ty, 40, vaddr); ppf(tx+12, ty, 40, vaddr); ty++;
+       ppf(tx+3, ty, 40, vaddr); ppf(tx+4, ty, 40, vaddr); ppf(tx+5, ty, 40, vaddr); ppf(tx+6, ty, 40, vaddr); ppf(tx+7, ty, 40, vaddr); ppf(tx+8, ty, 40, vaddr); ppf(tx+9, ty, 44, vaddr); ppf(tx+10, ty, 40, vaddr); ppf(tx+11, ty, 40, vaddr); ppf(tx+12, ty, 40, vaddr); ty++;
+       ppf(tx+4, ty, 40, vaddr); ppf(tx+5, ty, 40, vaddr); ppf(tx+6, ty, 40, vaddr); ppf(tx+7, ty, 40, vaddr); ppf(tx+8, ty, 40, vaddr); ppf(tx+9, ty, 44, vaddr); ppf(tx+10, ty, 40, vaddr); ppf(tx+11, ty, 40, vaddr); ppf(tx+12, ty, 40, vaddr); ty++;
+       ppf(tx+4, ty, 40, vaddr); ppf(tx+5, ty, 40, vaddr); ppf(tx+6, ty, 40, vaddr); ppf(tx+7, ty, 40, vaddr); ppf(tx+8, ty, 4, vaddr); ppf(tx+9, ty, 44, vaddr); ppf(tx+10, ty, 40, vaddr); ppf(tx+11, ty, 40, vaddr); ppf(tx+12, ty, 40, vaddr); ty++;
+       //11
+       ppf(tx+4, ty, 40, vaddr); ppf(tx+5, ty, 4, vaddr); ppf(tx+6, ty, 40, vaddr); ppf(tx+7, ty, 40, vaddr); ppf(tx+8, ty, 4, vaddr); ppf(tx+9, ty, 40, vaddr); ppf(tx+10, ty, 40, vaddr); ppf(tx+11, ty, 4, vaddr); ppf(tx+12, ty, 4, vaddr); ty++;
+       //12
+       ppf(tx+4, ty, 4, vaddr); ppf(tx+5, ty, 4, vaddr); ppf(tx+6, ty, 40, vaddr); ppf(tx+7, ty, 4, vaddr); ppf(tx+8, ty, 4, vaddr); ppf(tx+9, ty, 40, vaddr); ppf(tx+10, ty, 40, vaddr); ppf(tx+11, ty, 4, vaddr); ppf(tx+15, ty, 2, vaddr); ty++;
+       ppf(tx, ty, 45, vaddr); ppf(tx+5, ty, 4, vaddr); ppf(tx+6, ty, 4, vaddr); ppf(tx+7, ty, 4, vaddr); ppf(tx+8, ty, 4, vaddr); ppf(tx+9, ty, 4, vaddr); ppf(tx+10, ty, 4, vaddr); ppf(tx+13, ty, 2, vaddr); ppf(tx+14, ty, 2, vaddr); ppf(tx+15, ty, 2, vaddr); ty++;
+       //14
+       ppf(tx, ty, 45, vaddr); ppf(tx+1, ty, 2, vaddr); ppf(tx+6, ty, 2, vaddr); ppf(tx+7, ty, 45, vaddr); ppf(tx+8, ty, 2, vaddr); ppf(tx+12, ty, 2, vaddr); ppf(tx+13, ty, 2, vaddr); ppf(tx+14, ty, 45, vaddr); ty++;
+       ppf(tx, ty, 45, vaddr); ppf(tx+1, ty, 45, vaddr); ppf(tx+2, ty, 2, vaddr); ppf(tx+7, ty, 45, vaddr); ppf(tx+11, ty, 2, vaddr); ppf(tx+12, ty, 2, vaddr); ppf(tx+13, ty, 2, vaddr); ppf(tx+14, ty, 45, vaddr); ty++;
+       ppf(tx+1, ty, 45, vaddr); ppf(tx+2, ty, 2, vaddr); ppf(tx+3, ty, 2, vaddr); ppf(tx+7, ty, 45, vaddr); ppf(tx+10, ty, 2, vaddr); ppf(tx+11, ty, 2, vaddr); ppf(tx+12, ty, 2, vaddr); ppf(tx+13, ty, 45, vaddr); ppf(tx+14, ty, 2, vaddr); ty++;
+       ppf(tx+1, ty, 45, vaddr); ppf(tx+2, ty, 45, vaddr); ppf(tx+3, ty, 2, vaddr); ppf(tx+4, ty, 2, vaddr); ppf(tx+7, ty, 45, vaddr); ppf(tx+10, ty, 2, vaddr); ppf(tx+11, ty, 2, vaddr); ppf(tx+12, ty, 45, vaddr); ppf(tx+13, ty, 2, vaddr); ty++;
+       ppf(tx+1, ty, 45, vaddr); ppf(tx+2, ty, 45, vaddr); ppf(tx+3, ty, 45, vaddr); ppf(tx+4, ty, 2, vaddr); ppf(tx+7, ty, 45, vaddr); ppf(tx+9, ty, 2, vaddr); ppf(tx+10, ty, 2, vaddr); ppf(tx+11, ty, 45, vaddr); ppf(tx+12, ty, 2, vaddr); ppf(tx+13, ty, 2, vaddr); ty++;
+       ppf(tx+2, ty, 45, vaddr); ppf(tx+3, ty, 45, vaddr); ppf(tx+4, ty, 45, vaddr); ppf(tx+5, ty, 2, vaddr); ppf(tx+7, ty, 45, vaddr); ppf(tx+9, ty, 2, vaddr); ppf(tx+10, ty, 45, vaddr); ppf(tx+11, ty, 2, vaddr); ppf(tx+11, ty, 2, vaddr); ppf(tx+12, ty, 2, vaddr); ty++;
+       ppf(tx+3, ty, 45, vaddr); ppf(tx+4, ty, 45, vaddr); ppf(tx+5, ty, 45, vaddr); ppf(tx+6, ty, 2, vaddr); ppf(tx+7, ty, 45, vaddr); ppf(tx+8, ty, 2, vaddr); ppf(tx+9, ty, 45, vaddr); ppf(tx+10, ty, 2, vaddr); ty++;
+       ppf(tx+5, ty, 45, vaddr); ppf(tx+7, ty, 45, vaddr); ppf(tx+8, ty, 2, vaddr); ty++;
+       ppf(tx+7, ty, 45, vaddr);
+}
 \r
 /*-----------ding-------------*/\r
 int ding(int q){\r
@@ -235,7 +285,7 @@ int ding(int q){
        if(q == 6){\r
                coor = rand()%NUM_COLORS;\r
                cls(coor, vaddr);\r
-               updatevbuff();\r
+               //updatevbuff();\r
        }\r
 \r
        if(q == 7 || q== 9){\r
@@ -289,11 +339,11 @@ int ding(int q){
                        }\r
                }\r
                // plot the pixel\r
-               plotpixelfast(xx, yy, coor, vga);\r
-               if(q==2) plotpixelfast(rand()%SW, rand()%SH, 0, vga);\r
+               ppf(xx, yy, coor, vga);\r
+               if(q==2) ppf(rand()%SW, rand()%SH, 0, vga);\r
                if(q==2||q==4){ bakax = rand()&0x1; bakay = rand()&0x1; }\r
                gq++;\r
 //             printf("%d %d %d %d\n", xx, yy, gq, coor);\r
        }else gq = LGQ;\r
        return gq;\r
-}\r
+}