]> 4ch.mooo.com Git - 16.git/blobdiff - src/scroll.c
Merge branch 'master' of github.com:sparky4/16
[16.git] / src / scroll.c
index 28b2fb886a22762c76a889c1bf9c31ab4d86a169..9d6cd0a388e6f7e5efcab7699eb99de5adc1922a 100755 (executable)
@@ -177,6 +177,7 @@ void main(int argc, char *argv[])
                mv[i].video = &gvar.video;
                mv[i].pan       = &pan;
        }
+
        /* set up paging */
        //TODO: LOAD map data and position the map in the middle of the screen if smaller then screen
        mapGoTo(mv, 0, 0);
@@ -190,6 +191,7 @@ void main(int argc, char *argv[])
        //IN_initplayer(&player, 1);
 
 #ifndef        SPRITE
+       modexClearRegion(mv[0].page, player[0].x-4, player[0].y-TILEWH, 24, 32, 15);
        modexClearRegion(mv[1].page, player[0].x-4, player[0].y-TILEWH, 24, 32, 15);
 #else
        //PBUFSFUN(mv[1].page, player[0].x-4, player[0].y-TILEWH, 24, 64, 24, 32,       PLAYERBMPDATA);
@@ -199,7 +201,22 @@ void main(int argc, char *argv[])
        if(!pageflipflop)       modexShowPage(mv[1].page);
        else                    modexShowPage(mv[(gvar.video.p)].page);
                shinku_fps_indicator_page = 1; // we're on page 1 now, shinku(). follow along please or it will not be visible.
-       //modexClearRegion(mv[2].page, 0, 0, mv[2].page->width, mv[2].page->height, 1);
+
+       /* buffer pages */
+//     modexClearRegion(mv[2].page, 0, 0, mv[2].page->width, mv[2].page->height, 47);
+//     modexClearRegion(mv[3].page, 0, 0, mv[3].page->width, mv[3].page->height, 45);
+       {
+               unsigned int k,j,o;
+               /* fill screen with a distinctive pattern */
+               for (k=0;k < vga_state.vga_width;k++) {
+                       o = k >> 2;
+                       vga_write_sequencer(0x02/*map mask*/,1 << (k&3));
+                               for (j=0;j < vga_state.vga_height;j++,o += vga_state.vga_stride)
+                                       vga_state.vga_graphics_ram[o] = (k^j)&15; // VRL samples put all colors in first 15!
+               }
+       }
+       modexClearRegion(mv[3].page, 0, 128, 28, 36, 15);
+
 #ifdef MODEX
 #ifdef FADE
        modexFadeOn(4, gpal);
@@ -234,10 +251,10 @@ void main(int argc, char *argv[])
        }
        if(player[0].q == (TILEWH/(player[0].speed))+1 && player[0].info.dir != 2 && (player[0].triggerx == 5 && player[0].triggery == 5)){ player[0].hp--; }
        //debugging binds!
-       if(IN_KeyDown(2)){ modexShowPage(mv[0].page); pan.pn=0; IN_UserInput(1,1); }
-       if(IN_KeyDown(3)){ modexShowPage(mv[1].page); pan.pn=1; IN_UserInput(1,1); }
-       if(IN_KeyDown(4)){ modexShowPage(mv[2].page); pan.pn=2; IN_UserInput(1,1); }
-       if(IN_KeyDown(4+1)){ modexShowPage(mv[3].page); pan.pn=3; IN_UserInput(1,1); }
+       if(IN_KeyDown(2)){ modexShowPage(mv[0].page); pan.pn=0; }
+       if(IN_KeyDown(3)){ modexShowPage(mv[1].page); pan.pn=1; }
+       if(IN_KeyDown(4)){ modexShowPage(mv[2].page); pan.pn=2; }
+       if(IN_KeyDown(4+1)){ modexShowPage(mv[3].page); pan.pn=3; }
        if(IN_KeyDown(25)){ modexpdump(mv[0].page); modexpdump(mv[1].page);
                 IN_UserInput(1,1);
        }       //p
@@ -273,6 +290,13 @@ void main(int argc, char *argv[])
                gvar.kurokku.fpscap=!gvar.kurokku.fpscap;
                IN_UserInput(1,1);
        }
+       if(IN_KeyDown(67))      //f9
+       {
+//             modexClearRegion(mv[2].page, 0, 0, mv[2].page->width, mv[2].page->height, 47);
+//             modexClearRegion(mv[3].page, 0, 0, mv[3].page->width, mv[3].page->height, 45);
+               modexClearRegion(mv[3].page, 0, 128, 28, 36, 15);
+               //IN_UserInput(1,1);
+       }
        //TODO fmemtest into page
        /*if(IN_KeyDown(4+1))   //4
        {
@@ -321,9 +345,11 @@ void main(int argc, char *argv[])
        printf("tile resolution: %dx", gvar.video.page[0].tw);  printf("%d \n", gvar.video.page[0].th);
        printf("middle tile position: %dx", gvar.video.page[0].tilemidposscreenx);      printf("%d\n", gvar.video.page[0].tilemidposscreeny);
        modexprintmeminfo(&gvar.video);
-       printf("mv[%u].tx: %d", pan.pn, mv[pan.pn].tx); printf("        mv[%u].ty: %d   ", pan.pn, mv[pan.pn].ty); printf("gvar.video.p=%u\n", gvar.video.p);
-       printf("\ngvar.video.startclk=%u        ", gvar.video.startclk);
-       printf("gvar.video.clk=%f\n", (float)((*clockw)-gvar.video.startclk)/18.2);
+       //printf("mv[%u].tx: %d", pan.pn, mv[pan.pn].tx); printf("      mv[%u].ty: %d   ", pan.pn, mv[pan.pn].ty);
+       printf("gvar.video.p=%u ", gvar.video.p); printf("gvar.video.r=%u ", gvar.video.r);
+       printf("pageflipflop=%u\n", pageflipflop);
+       printf("\ngvar.video.tickclk=%f\n", gvar.video.tickclk);
+       printf("gvar.video.clk=%f", gvar.video.clk);
        printf("\n");
        //printf("map.width=%d  map.height=%d   map.data[0]=%d\n", mv[0].map->width, mv[0].map->height, mv[0].map->data[0]);