OSDN Git Service

-- reverted to before layer vars
[proj16/16.git] / src / lib / 16_vl.c
index 0ad3d27..ec5c9f0 100755 (executable)
@@ -689,7 +689,18 @@ modexLoadPalFile(byte *filename, byte **palette) {
 \r
 void VL_LoadPalFile(const char *filename, byte *palette)\r
 {\r
-       VL_LoadPalFilewithoffset(filename, palette, 0);\r
+       int fd;\r
+\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(0);\r
+               for (i=0;i < 256;i++) vga_palette_write(palette[(i*3)+0]>>2,palette[(i*3)+1]>>2,palette[(i*3)+2]>>2);\r
+       }\r
 }\r
 \r
 void VL_LoadPalFilewithoffset(const char *filename, byte *palette, word o)\r
@@ -698,19 +709,16 @@ 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
-               VL_UpdatePaletteWrite(palette, o);\r
+               vga_palette_lseek(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
 \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
@@ -859,20 +867,15 @@ void modexDrawChar(page_t *page, int x/*for planar selection only*/, word t, wor
        }\r
 }\r
 \r
-void modexprint(page_t *page, sword x, sword y, word t, word col, word bgcol, const byte *str)\r
+void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str)\r
 {\r
        word s, o, w;\r
-       word x_draw;\r
+       word x_draw = x;\r
        //word addr = (word) romFontsData.l;\r
-       word addrq;\r
-       word addrr;\r
+       word addrq = (page->stridew) * y + (x / 4) + ((word)page->data);\r
+       word addrr = addrq;\r
        byte c;\r
 \r
-       x-=page->tlx; y-=page->tly;\r
-       x_draw = x/4;\r
-       addrq = (page->stridew) * y + (word)(x_draw) +\r
-               ((word)page->data);\r
-       addrr = addrq;\r
        s=romFonts[t].seg;\r
        o=romFonts[t].off;\r
        w=romFonts[t].charSize;\r
@@ -880,16 +883,16 @@ void modexprint(page_t *page, sword x, sword y, word t, word col, word bgcol, co
 \r
        for(; *str != '\0'; str++)\r
        {\r
-               c = (*str);\r
-               if(c=='\n')\r
-               {\r
-                       x = x_draw;\r
-                       romFontsData.chw = 0;\r
-                       addrq += (page->stridew) * 8;\r
-                       addrr = addrq;\r
-                       y += 8;\r
-                       continue;\r
-               }\r
+       c = (*str);\r
+       if(c=='\n')\r
+       {\r
+               x = x_draw;\r
+               romFontsData.chw = 0;\r
+               addrq += (page->stridew) * 8;\r
+               addrr = addrq;\r
+               y += 8;\r
+               continue;\r
+       }\r
 \r
        // load the character into romFontsData.l\r
        // no need for inline assembly!\r
@@ -899,7 +902,6 @@ void modexprint(page_t *page, sword x, sword y, word t, word col, word bgcol, co
                x_draw += 8; /* track X for edge of screen */\r
                addrr += 2; /* move 8 pixels over (2 x 4 planar pixels per byte) */\r
        }\r
-       //printf("print xy:%dx%d        tlxy:%dx%d\n", x, y, page->tlx, page->tly);\r
 }\r
 \r
 void modexprintbig(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str)\r
@@ -1002,8 +1004,8 @@ void modexpdump(page_t *pee)
        int palq=(mult)*TILEWH;\r
        int palcol=0;\r
        int palx, paly;\r
-       for(paly=TILEWH*8; paly<palq+TILEWH*8; paly+=mult){\r
-               for(palx=TILEWH*12; palx<palq+TILEWH*12; palx+=mult){\r
+       for(paly=0; paly<palq; paly+=mult){\r
+               for(palx=0; palx<palq; palx+=mult){\r
                                modexClearRegion(pee, palx+TILEWH, paly+TILEWH, mult, mult, palcol);\r
                        palcol++;\r
                }\r