]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_vl.c
did a bunch of work on map stuff going to add fg layer sometime woon
[16.git] / src / lib / 16_vl.c
index ec5c9f0a9f84c00e581fcbb215a739391f2998a1..32b8fd8ff161f3c1d0f45a290013cae58e9cf9bf 100755 (executable)
@@ -867,15 +867,20 @@ void modexDrawChar(page_t *page, int x/*for planar selection only*/, word t, wor
        }\r
 }\r
 \r
-void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str)\r
+void modexprint(page_t *page, sword x, sword y, word t, word col, word bgcol, const byte *str)\r
 {\r
        word s, o, w;\r
-       word x_draw = x;\r
+       sword x_draw;\r
        //word addr = (word) romFontsData.l;\r
-       word addrq = (page->stridew) * y + (x / 4) + ((word)page->data);\r
-       word addrr = addrq;\r
+       word addrq;\r
+       word addrr;\r
        byte c;\r
 \r
+       x-=page->tlx; y-=page->tly;\r
+       x_draw = x/4;\r
+       addrq = (page->stridew) * y + (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
@@ -883,16 +888,16 @@ void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, cons
 \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
@@ -902,6 +907,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 */\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