X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_vl.c;h=2e5fa42e184eb9d6ed18da64adc0fc4a1abe8503;hb=29204d5f82b02c730907d7cdf6760f291ae8e93e;hp=ec5c9f0a9f84c00e581fcbb215a739391f2998a1;hpb=194d511cb31136b77f3ea330c55f245cd6e09f36;p=16.git diff --git a/src/lib/16_vl.c b/src/lib/16_vl.c index ec5c9f0a..2e5fa42e 100755 --- a/src/lib/16_vl.c +++ b/src/lib/16_vl.c @@ -644,41 +644,39 @@ modexPalSave(byte *palette) { } -byte * +/*byte * modexNewPal() { byte *ptr; - ptr = malloc(PAL_SIZE); + ptr = m a l l o c(PAL_SIZE); - /* handle errors */ + // handle errors if(!ptr) { printf("Could not allocate palette.\n"); } return ptr; -} +}*/ void -modexLoadPalFile(byte *filename, byte **palette) { +modexLoadPalFile(byte *filename, byte *palette) { FILE *file; byte *ptr; - /* free the palette if it exists */ - if(*palette) { - free(*palette); - } + // free the palette if it exists + //if(*palette) { free(*palette); } - /* allocate the new palette */ - *palette = modexNewPal(); + // allocate the new palette + //*palette = modexNewPal(); - /* open the file */ + // open the file file = fopen(filename, "rb"); if(!file) { - printf("Could not open palette file: %s\n", filename); + printf("Could not open palette file: %s\n", filename); } /* read the file */ - ptr = *palette; + ptr = palette; while(!feof(file)) { *ptr++ = fgetc(file); } @@ -689,18 +687,7 @@ modexLoadPalFile(byte *filename, byte **palette) { void VL_LoadPalFile(const char *filename, byte *palette) { - int fd; - - fd = open(filename,O_RDONLY|O_BINARY); - if (fd >= 0) { - word i; - - read(fd,palette, PAL_SIZE); - close(fd); - - vga_palette_lseek(0); - for (i=0;i < 256;i++) vga_palette_write(palette[(i*3)+0]>>2,palette[(i*3)+1]>>2,palette[(i*3)+2]>>2); - } + VL_LoadPalFilewithoffset(filename, palette, 0); } void VL_LoadPalFilewithoffset(const char *filename, byte *palette, word o) @@ -709,16 +696,19 @@ void VL_LoadPalFilewithoffset(const char *filename, byte *palette, word o) fd = open(filename,O_RDONLY|O_BINARY); if (fd >= 0) { - word i; - read(fd,palette, PAL_SIZE); close(fd); - vga_palette_lseek(o); - 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); + VL_UpdatePaletteWrite(palette, o); } } +void VL_UpdatePaletteWrite(byte *palette, word o) +{ + word i; + vga_palette_lseek(/*1+*/o); + 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); +} void modexSavePalFile(char *filename, byte *pal) { @@ -867,15 +857,20 @@ void modexDrawChar(page_t *page, int x/*for planar selection only*/, word t, wor } } -void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str) +void modexprint(page_t *page, sword x, sword y, word t, boolean tlsw, word col, word bgcol, const byte *str) { word s, o, w; - word x_draw = x; + word x_draw; //word addr = (word) romFontsData.l; - word addrq = (page->stridew) * y + (x / 4) + ((word)page->data); - word addrr = addrq; + word addrq; + word addrr; byte c; + if(tlsw){ x-=page->tlx; y-=page->tly; } + x_draw = x/4; + addrq = (page->stridew) * y + (word)(x_draw) + + ((word)page->data); + addrr = addrq; s=romFonts[t].seg; o=romFonts[t].off; w=romFonts[t].charSize; @@ -883,16 +878,16 @@ void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, cons for(; *str != '\0'; str++) { - c = (*str); - if(c=='\n') - { - x = x_draw; - romFontsData.chw = 0; - addrq += (page->stridew) * 8; - addrr = addrq; - y += 8; - continue; - } + c = (*str); + if(c=='\n') + { + x = x_draw; + romFontsData.chw = 0; + addrq += (page->stridew) * 8; + addrr = addrq; + y += 8; + continue; + } // load the character into romFontsData.l // no need for inline assembly! @@ -902,6 +897,7 @@ void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, cons x_draw += 8; /* track X for edge of screen */ addrr += 2; /* move 8 pixels over (2 x 4 planar pixels per byte) */ } + //printf("print xy:%dx%d tlxy:%dx%d\n", x, y, page->tlx, page->tly); } void modexprintbig(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str) @@ -1004,8 +1000,8 @@ void modexpdump(page_t *pee) int palq=(mult)*TILEWH; int palcol=0; int palx, paly; - for(paly=0; paly