]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_vl.c
16_ca needs huge amounts of work and I should remember what needs to be done soon...
[16.git] / src / lib / 16_vl.c
index 77c5fad2e4839df1202869b259ab7041e97cff33..5b73ac5c5240ea28464c74263091b0c4b2ff1e34 100755 (executable)
@@ -916,38 +916,43 @@ modexLoadPalFile(byte *filename, byte *palette) {
        fclose(file);\r
 }\r
 \r
-void VL_LoadPalFile(const char *filename, byte *palette, global_game_variables_t *gvar)\r
-{\r
-       VL_LoadPalFilewithoffset(filename, palette,\r
-               0, gvar);\r
-               //9, gvar);\r
-//     VL_LoadPalFileCore(palette);\r
-}\r
-\r
-void VL_LoadPalFileCore(byte *palette, global_game_variables_t *gvar)\r
-{\r
-       VL_LoadPalFilewithoffset("data/16.pal", palette, 0, gvar);\r
-}\r
-\r
-void VL_LoadPalFilewithoffset(const char *filename, byte *palette, word o, global_game_variables_t *gvar)\r
+void VLL_LoadPalFilewithoffset(const char *filename, byte *palette, word o, word palsize, global_game_variables_t *gvar)\r
 {\r
        int fd;\r
+       byte *newpalette;\r
 \r
        fd = open(filename,O_RDONLY|O_BINARY);\r
        if (fd >= 0) {\r
-               read(fd,palette,        PAL_SIZE);\r
+               read(fd,palette,        palsize);\r
                close(fd);\r
 \r
-               VL_UpdatePaletteWrite(palette, o, gvar);\r
+               if(palsize==27) newpalette = palette; else{     //if core then load it\r
+               newpalette = &palette[3];                       //skip overscan color\r
+               if(!o) o++;\r
+               }\r
+               VL_UpdatePaletteWrite(newpalette, o, gvar);\r
        }\r
 }\r
 \r
+void VL_LoadPalFile(const char *filename, byte *palette, global_game_variables_t *gvar)\r
+{\r
+       VLL_LoadPalFilewithoffset(filename, palette,\r
+               0,\r
+//             9,\r
+               PAL_SIZE, gvar);\r
+}\r
+\r
+void VL_LoadPalFileCore(byte *palette, global_game_variables_t *gvar)\r
+{\r
+       VLL_LoadPalFilewithoffset("data/16.pal", palette, 0, 27, gvar);\r
+}\r
+\r
 void VL_UpdatePaletteWrite(byte *palette, word o, global_game_variables_t *gvar)\r
 {\r
        word i;\r
-       vga_palette_lseek(/*1+*/o);\r
-       //for (i=o;i < 256-o;i++)\r
-       for (i=0;i < 256-o;i++)\r
+\r
+       vga_palette_lseek(o);\r
+       for (i=0;i < 255-o;i++)\r
                vga_palette_write(palette[(i*3)+0]>>2,palette[(i*3)+1]>>2,palette[(i*3)+2]>>2);\r
 \r
        VL_PaletteSync(gvar);\r
@@ -1031,12 +1036,17 @@ VL_modexPalScramble(byte *p)
 }\r
 \r
 word\r
-modexPalOverscan(word col)\r
+VL_modexPalOverscan(byte *p, word col)\r
 {\r
+       int i;\r
        //modexWaitBorder();\r
        vga_wait_for_vsync();\r
        outp(PAL_WRITE_REG, 0);  /* start at the beginning of palette */\r
-       outp(PAL_DATA_REG, col);\r
+       for(i=col; i<(3+col); i++)\r
+       {\r
+               outp(PAL_DATA_REG, p[i]);\r
+       }\r
+//     modexPalSave(p);\r
        return col;\r
 }\r
 \r