]> 4ch.mooo.com Git - 16.git/commitdiff
i am way too tired for this
authorsparky4 <sparky4@cock.li>
Tue, 14 Feb 2017 18:23:27 +0000 (12:23 -0600)
committersparky4 <sparky4@cock.li>
Tue, 14 Feb 2017 18:23:27 +0000 (12:23 -0600)
data/G.PAL
src/lib/16_tail.c
src/lib/16_tail.h
src/lib/16_vl.c
src/lib/16_vl.h
src/lib/16_vlpal.c
src/zcroll.c

index 8092380af954e11b165eae773d83f03429619756..0ecbac33f44529d9701eae8c9b262c7da0f50416 100755 (executable)
Binary files a/data/G.PAL and b/data/G.PAL differ
index a602a62b9d380e1b3fc89faa8647f10ac7e325e4..9277d4e956869dcac40d04094a30114be8e86803 100755 (executable)
@@ -423,6 +423,23 @@ char *remove_ext (char* mystr, char dot, char sep) {
        return retstr;\r
 }\r
 \r
+//from http://quiz.geeksforgeeks.org/c-program-cyclically-rotate-array-one/\r
+void rotateR(byte arr[], byte n)\r
+{\r
+       byte x = arr[n-1], i;\r
+       for (i = n-1; i > 0; i--)\r
+               arr[i] = arr[i-1];\r
+       arr[0] = x;\r
+}\r
+\r
+void rotateL(byte arr[], byte n)\r
+{\r
+       byte x = arr[n+1], i;\r
+       for (i = n+1; i > 0; i++)\r
+               arr[i] = arr[i+1];\r
+       arr[0] = x;\r
+}\r
+\r
 #ifndef __WATCOMC__\r
 char global_temp_status_text[512];\r
 char global_temp_status_text2[512];\r
index e91c787773f7e258226123d48d3fe42c302dd603..fc43be3847b5b128c110aeed2daee3cafdda8795 100755 (executable)
        if(IN_KeyDown(sc_Z)){ DRAWCORNERBOXES } \\r
        if(IN_KeyDown(sc_X)){ TESTBG12 } \\r
        if(IN_KeyDown(sc_C)){ TESTBG34 } \\r
-       if(IN_KeyDown(sc_V)) VL_PatternDraw(&gvar.video, 0, 1, 1);\r
+       if(IN_KeyDown(sc_V)) VL_PatternDraw(&gvar.video, 0, 1, 1); \\r
+       if(IN_KeyDown(sc_PgUp)){ \\r
+               rotateR(gvar.video.palette, sizeof(gvar.video.palette)/sizeof(gvar.video.palette[0])); \\r
+               VL_UpdatePaletteWrite(&gvar.video.palette, 0); } \\r
+       if(IN_KeyDown(sc_PgDn)){ \\r
+               rotateL(gvar.video.palette, sizeof(gvar.video.palette)/sizeof(gvar.video.palette[0])); \\r
+               VL_UpdatePaletteWrite(&gvar.video.palette, 0); }\r
 \r
 void DebugMemory_(global_game_variables_t *gvar, boolean q);\r
 void Shutdown16(global_game_variables_t *gvar);\r
@@ -79,6 +85,8 @@ void Startup16(global_game_variables_t *gvar);
 void ClearMemory (global_game_variables_t *gvar);\r
 void Quit (global_game_variables_t *gvar, char *error);\r
 char *remove_ext(char* mystr, char dot, char sep);\r
+void rotateR(byte arr[], byte n);\r
+void rotateL(byte arr[], byte n);\r
 void turboXT(byte bakapee);\r
 void nibbletest();\r
 void booleantest();\r
index 71c5667ddf7eece28600f5cc4c64835bfe156714..9cada1518efc164b7cd2952c1daf65163aecfdcb 100755 (executable)
@@ -698,16 +698,19 @@ void VL_LoadPalFilewithoffset(const char *filename, byte *palette, word o)
 \r
        fd = open(filename,O_RDONLY|O_BINARY);\r
        if (fd >= 0) {\r
-               word i;\r
-\r
                read(fd,palette,        PAL_SIZE);\r
                close(fd);\r
 \r
-               vga_palette_lseek(1+o);\r
-               for (i=o;i < 255-o;i++) vga_palette_write(palette[(i*3)+0]>>2,palette[(i*3)+1]>>2,palette[(i*3)+2]>>2);\r
+               VL_UpdatePaletteWrite(palette, o);\r
        }\r
 }\r
 \r
+void VL_UpdatePaletteWrite(byte *palette, word o)\r
+{\r
+       word i;\r
+       vga_palette_lseek(/*1+*/o);\r
+       for (i=o;i < 256-o;i++) vga_palette_write(palette[(i*3)+0]>>2,palette[(i*3)+1]>>2,palette[(i*3)+2]>>2);\r
+}\r
 \r
 void\r
 modexSavePalFile(char *filename, byte *pal) {\r
@@ -1000,7 +1003,7 @@ void modexpdump(page_t *pee)
        int palcol=0;\r
        int palx, paly;\r
        for(paly=0; paly<palq; paly+=mult){\r
-               for(palx=0; palx<palq; palx+=mult){\r
+               for(palx=TILEWH*12; palx<palq+TILEWH*12; palx+=mult){\r
                                modexClearRegion(pee, palx+TILEWH, paly+TILEWH, mult, mult, palcol);\r
                        palcol++;\r
                }\r
index d63dcabfaafd585ccd0f2af1911d509f5863df71..0b037ee1251a362902cbe87462ee733637633c45 100755 (executable)
@@ -126,6 +126,7 @@ byte *modexNewPal();
 void modexLoadPalFile(char *filename, byte **palette);\r
 void VL_LoadPalFile(const char *filename, byte *palette);\r
 void VL_LoadPalFilewithoffset(const char *filename, byte *palette, word o);\r
+void VL_UpdatePaletteWrite(byte *palette, word o);\r
 void modexSavePalFile(char *filename, byte *palette);\r
 \r
 /* fixed palette functions */\r
index 3a809828e52704bdc6e0adb8b47393926edf3066..2f155f03a43256587a2878aa9c913be79be9d6ab 100755 (executable)
@@ -32,7 +32,7 @@ void modexchkcolor(imgtestpal_t *bmp, word *q, word *a, word *aa, word *z, word
                modexPalSave(pal);\r
                CHKCOLDBGOUT1\r
                //check palette for dups\r
-               for(; (*z)<PAL_SIZE-3; (*z)+=3)\r
+               for(; (*z)<PAL_SIZE; (*z)+=3)\r
                {\r
                        CHKCOLDBGOUT2\r
                        //if((*z)%3==0)\r
@@ -99,7 +99,7 @@ VL_palette(imgtestpal_t *bmp, byte *p, word *i, word qp, word aqoffset)
        word w=0;\r
        word q=0;\r
        word qq=0;\r
-       static word a[PAL_SIZE-3];      //palette array of change values!\r
+       static word a[PAL_SIZE];        //palette array of change values!\r
        word z=0, aq=0, aa=0, pp=0;\r
 \r
        //modexWaitBorder();\r
@@ -107,7 +107,7 @@ VL_palette(imgtestpal_t *bmp, byte *p, word *i, word qp, word aqoffset)
        if((*i)==0)\r
        {\r
                memset(a, -1, sizeof(a));\r
-               outp(PAL_WRITE_REG, 1);  /* start at the beginning of palette */\r
+               outp(PAL_WRITE_REG, 0);  /* start at the beginning of palette */\r
        }\r
        else if(qp==0)\r
        {\r
@@ -122,11 +122,11 @@ VL_palette(imgtestpal_t *bmp, byte *p, word *i, word qp, word aqoffset)
                printf("qq: %02d\n", (qq));//\r
                printf("          (*i)-q=%02d\n", (*i)-q);//\r
 #endif\r
-               outp(PAL_WRITE_REG, qq);\r
+               outp(PAL_WRITE_REG, qq);  /* start at the beginning of palette */\r
        }\r
-       if((*i)<PAL_SIZE-3 && w==0)\r
+       if((*i)<PAL_SIZE && w==0)\r
        {\r
-               for(; (*i)<PAL_SIZE-3; (*i)++)\r
+               for(; (*i)<PAL_SIZE; (*i)++)\r
                {\r
                        //if(i%3==0 && (p[i+5]==p[i+4] && p[i+4]==p[i+3] && p[i+3]==p[i+2] && p[i+2]==p[i+1] && p[i+1]==p[i] && p[i+5]==p[i]))\r
 //____           if((qp>0)&&((*i)-q)%3==0 && (p[((*i)-q)]==p[((*i)-q)+3] && p[((*i)-q)+1]==p[((*i)-q)+4] && p[((*i)-q)+2]==p[((*i)-q)+5])) outp(PAL_DATA_REG, p[(*i)-q]); else\r
index 16213d6b2b72eedf737c74572dca5e48425dcf3d..3187839ce264f6dcda9c863efc19636742a8cb81 100755 (executable)
@@ -182,8 +182,8 @@ void main(int argc, char *argv[])
                if(player[0].enti.q == (TILEWH/(player[0].enti.speed))+1 && player[0].info.dir != 2 && (player[0].enti.triggerx == 5 && player[0].enti.triggery == 5)){ player[0].enti.hp--; }\r
                //debugging binds!\r
 \r
-               if(IN_KeyDown(24)){ modexPalUpdate0(gpal); /*paloffset=0;*/ modexpdump(mv[0].page); IN_UserInput(1,1); } //o\r
-               if(IN_KeyDown(22)){ modexPalUpdate0(gpal); } //u\r
+               if(IN_KeyDown(24)){ modexPalUpdate0(&gvar.video.palette); /*paloffset=0;*/ modexpdump(mv[0].page); IN_UserInput(1,1); } //o\r
+               if(IN_KeyDown(22)){ modexPalUpdate0(&gvar.video.palette); } //u\r
 \r
                FUNCTIONKEYFUNCTIONS\r
                FUNCTIONKEYDRAWJUNK\r