]> 4ch.mooo.com Git - 16.git/blobdiff - src/scroll.c
modified: src/lib/jsmn/example/MAPTEST.EXE
[16.git] / src / scroll.c
index 3d6dcab6c72bd4df0ae49642635af8a0e600a8f0..8f485f90a8e538d91c570aeb502fb15e52d83678 100644 (file)
@@ -1,11 +1,12 @@
 #include "src\lib\modex16.h"\r
 #include <stdio.h>\r
-#include <stdlib.h>\r
+#include <stdlib.h>
+#include <string.h>\r
 #include "src\lib\dos_kb.h"\r
 #include "16\lib\x\modex.h"\r
-#include "src\lib\wtest\wtest.c"
+#include "src\lib\wtest\wtest.c"\r
 #include "src\lib\planar.c"\r
-#include "src\lib\ems.c"\r
+//====#include "src\lib\ems.c"\r
 \r
 //word far *clock= (word far*) 0x046C; /* 18.2hz clock */\r
 \r
@@ -59,7 +60,7 @@ void mapScrollDown(map_view_t *mv, byte offset);
 void mapGoTo(map_view_t *mv, int tx, int ty);\r
 void mapDrawTile(tiles_t *t, word i, page_t *page, word x, word y);\r
 void mapDrawRow(map_view_t *mv, int tx, int ty, word y);\r
-void mapDrawCol(map_view_t *mv, int tx, int ty, word x);
+void mapDrawCol(map_view_t *mv, int tx, int ty, word x);\r
 void qclean();\r
 void animatePlayer(map_view_t *src, map_view_t *dest, /*map_view_t *top, */sword d, short scrolloffsetswitch, int x, int y, int ls, int lp, bitmap_t *bmp);\r
 \r
@@ -74,12 +75,12 @@ void animatePlayer(map_view_t *src, map_view_t *dest, /*map_view_t *top, */sword
 #define TRIGGX 10\r
 #define TRIGGY 9\r
 \r
-void main() {
+void main() {\r
        long emmhandle;\r
        long emsavail;\r
        char teststr[80];\r
        int i;\r
-       bitmap_t ptmp;//, npctmp; // player sprite
+       bitmap_t ptmp;//, npctmp; // player sprite\r
        planar_buf_t *p;\r
        const char *cpus;\r
        static int persist_aniframe = 0;    /* gonna be increased to 1 before being used, so 0 is ok for default */\r
@@ -91,7 +92,7 @@ void main() {
        byte *ptr;\r
        actor_t player;\r
        //actor_t npc0;\r
-
+\r
 //     atexit(qclean());\r
        /*if(!emmtest())\r
        {\r
@@ -111,13 +112,13 @@ void main() {
                printf("Expanded memory manager error\n");\r
                exit(0);\r
        }\r
-       printf("There are %ld pages available\n",emsavail);
-
+       printf("There are %ld pages available\n",emsavail);\r
+\r
        if((emmhandle = emmalloc(emsavail)) < 0)\r
        {\r
                printf("Insufficient pages available\n");\r
                exit(0);\r
-       }*/
+       }*/\r
 \r
        /* create the map */\r
        map = allocMap(MAPX,MAPY); //20x15 is the resolution of the screen you can make maps smaller than 20x15 but the null space needs to be drawn properly\r
@@ -132,9 +133,9 @@ void main() {
        /* data */\r
        ptmp = bitmapLoadPcx("ptmp.pcx"); // load sprite\r
        //npctmp = bitmapLoadPcx("ptmp1.pcx"); // load sprite\r
-
+\r
        /* create the planar buffer */\r
-       p = planar_buf_from_bitmap(&ptmp);
+       p = planar_buf_from_bitmap(&ptmp);\r
 \r
        /*if(isEMS())\r
        {\r
@@ -156,7 +157,7 @@ void main() {
                XMOVE mm;\r
                mm.length=emmhandle;\r
                mm.sourceH=0;\r
-               mm.sourceOff=(long)(bitmap_t *)p;\r
+               mm.sourceOff=(long)&ptmp;\r
                mm.destH=emmhandle;\r
                mm.destOff=0;\r
                //halp!\r
@@ -167,7 +168,7 @@ void main() {
        }\r
 */\r
        /* save the palette */\r
-       pal  = modexNewPal();\r
+       pal = modexNewPal();\r
        modexPalSave(pal);\r
        modexFadeOff(4, pal);\r
        modexPalBlack();\r
@@ -217,7 +218,7 @@ void main() {
        npc0.q=1;\r
        npc0.d=0;\r
        modexDrawSpriteRegion(spri->page, npc0.x-4, npc0.y-TILEWH, 24, 64, 24, 32, &npctmp);*/\r
-       modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 64, 24, 32, (bitmap_t *)p);\r
+       modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 64, 24, 32, &ptmp);\r
 \r
        modexClearRegion(spri->page, player.triggerx*16, player.triggery*16, 16, 16, 1);\r
        modexClearRegion(bg->page, player.triggerx*16, player.triggery*16, 16, 16, 1);\r
@@ -356,8 +357,8 @@ void main() {
                        if(player.q<=(TILEWH/SPEED))\r
                        {\r
                                INC_PER_FRAME;\r
-                               //animatePlayer(bg, spri, mask, 1, 1, player.x, player.y, persist_aniframe, q, (bitmap_t *)p);\r
-                               animatePlayer(bg, spri, player.d-1, 1, player.x, player.y, persist_aniframe, player.q, (bitmap_t *)p);\r
+                               //animatePlayer(bg, spri, mask, 1, 1, player.x, player.y, persist_aniframe, q, &ptmp);\r
+                               animatePlayer(bg, spri, player.d-1, 1, player.x, player.y, persist_aniframe, player.q, &ptmp);\r
                                mapScrollRight(bg, SPEED);\r
                                mapScrollRight(spri, SPEED);\r
                                //mapScrollRight(mask, SPEED);\r
@@ -371,8 +372,8 @@ void main() {
                        {\r
                                INC_PER_FRAME;\r
                                player.x+=SPEED;\r
-                               //animatePlayer(bg, spri, mask, 1, 0, player.x, player.y, persist_aniframe, q, (bitmap_t *)p);\r
-                               animatePlayer(bg, spri, player.d-1, 0, player.x, player.y, persist_aniframe, player.q, (bitmap_t *)p);\r
+                               //animatePlayer(bg, spri, mask, 1, 0, player.x, player.y, persist_aniframe, q, &ptmp);\r
+                               animatePlayer(bg, spri, player.d-1, 0, player.x, player.y, persist_aniframe, player.q, &ptmp);\r
                                modexShowPage(spri->page);\r
                                player.q++;\r
                        } else { player.q = 1; player.d = 0; player.tx++; }\r
@@ -380,7 +381,7 @@ void main() {
                else\r
                {\r
                        modexCopyPageRegion(spri->page, bg->page, player.x-4, player.y-TILEWH, player.x-4, player.y-TILEWH, 24, 32);\r
-                       modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 32, 24, 32, (bitmap_t *)p);\r
+                       modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 32, 24, 32, &ptmp);\r
                        modexShowPage(spri->page);\r
                        player.d = 0;\r
                }\r
@@ -397,8 +398,8 @@ void main() {
                        if(player.q<=(TILEWH/SPEED))\r
                        {\r
                                INC_PER_FRAME;\r
-                               //animatePlayer(bg, spri, mask, 3, 1, player.x, player.y, persist_aniframe, q, (bitmap_t *)p);\r
-                               animatePlayer(bg, spri, player.d-1, 1, player.x, player.y, persist_aniframe, player.q, (bitmap_t *)p);\r
+                               //animatePlayer(bg, spri, mask, 3, 1, player.x, player.y, persist_aniframe, q, &ptmp);\r
+                               animatePlayer(bg, spri, player.d-1, 1, player.x, player.y, persist_aniframe, player.q, &ptmp);\r
                                mapScrollLeft(bg, SPEED);\r
                                mapScrollLeft(spri, SPEED);\r
                                //mapScrollLeft(mask, SPEED);\r
@@ -412,8 +413,8 @@ void main() {
                        {\r
                                INC_PER_FRAME;\r
                                player.x-=SPEED;\r
-                               //animatePlayer(bg, spri, mask, 3, 0, player.x, player.y, persist_aniframe, q, (bitmap_t *)p);\r
-                               animatePlayer(bg, spri, player.d-1, 0, player.x, player.y, persist_aniframe, player.q, (bitmap_t *)p);\r
+                               //animatePlayer(bg, spri, mask, 3, 0, player.x, player.y, persist_aniframe, q, &ptmp);\r
+                               animatePlayer(bg, spri, player.d-1, 0, player.x, player.y, persist_aniframe, player.q, &ptmp);\r
                                modexShowPage(spri->page);\r
                                player.q++;\r
                        } else { player.q = 1; player.d = 0; player.tx--; }\r
@@ -421,7 +422,7 @@ void main() {
                else\r
                {\r
                        modexCopyPageRegion(spri->page, bg->page, player.x-4, player.y-TILEWH, player.x-4, player.y-TILEWH, 24, 32);\r
-                       modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 96, 24, 32, (bitmap_t *)p);\r
+                       modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 96, 24, 32, &ptmp);\r
                        modexShowPage(spri->page);\r
                        player.d = 0;\r
                }\r
@@ -438,8 +439,8 @@ void main() {
                        if(player.q<=(TILEWH/SPEED))\r
                        {\r
                                INC_PER_FRAME;\r
-                               //animatePlayer(bg, spri, mask, 2, 1, player.x, player.y, persist_aniframe, q, (bitmap_t *)p);\r
-                               animatePlayer(bg, spri, player.d-1, 1, player.x, player.y, persist_aniframe, player.q, (bitmap_t *)p);\r
+                               //animatePlayer(bg, spri, mask, 2, 1, player.x, player.y, persist_aniframe, q, &ptmp);\r
+                               animatePlayer(bg, spri, player.d-1, 1, player.x, player.y, persist_aniframe, player.q, &ptmp);\r
                                mapScrollDown(bg, SPEED);\r
                                mapScrollDown(spri, SPEED);\r
                                //mapScrollDown(mask, SPEED);\r
@@ -453,8 +454,8 @@ void main() {
                        {\r
                                INC_PER_FRAME;\r
                                player.y+=SPEED;\r
-                               //animatePlayer(bg, spri, mask, 2, 0, player.x, player.y, persist_aniframe, q, (bitmap_t *)p);\r
-                               animatePlayer(bg, spri, player.d-1, 0, player.x, player.y, persist_aniframe, player.q, (bitmap_t *)p);\r
+                               //animatePlayer(bg, spri, mask, 2, 0, player.x, player.y, persist_aniframe, q, &ptmp);\r
+                               animatePlayer(bg, spri, player.d-1, 0, player.x, player.y, persist_aniframe, player.q, &ptmp);\r
                                modexShowPage(spri->page);\r
                                player.q++;\r
                        } else { player.q = 1; player.d = 0; player.ty++; }\r
@@ -462,7 +463,7 @@ void main() {
                else\r
                {\r
                        modexCopyPageRegion(spri->page, bg->page, player.x-4, player.y-TILEWH, player.x-4, player.y-TILEWH, 24, 32);\r
-                       modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 64, 24, 32, (bitmap_t *)p);\r
+                       modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 64, 24, 32, &ptmp);\r
                        modexShowPage(spri->page);\r
                        player.d = 0;\r
                }\r
@@ -479,8 +480,8 @@ void main() {
                        if(player.q<=(TILEWH/SPEED))\r
                        {\r
                                INC_PER_FRAME;\r
-                               //animatePlayer(bg, spri, mask, 0, 1, player.x, player.y, persist_aniframe, q, (bitmap_t *)p);\r
-                               animatePlayer(bg, spri, player.d-1, 1, player.x, player.y, persist_aniframe, player.q, (bitmap_t *)p);\r
+                               //animatePlayer(bg, spri, mask, 0, 1, player.x, player.y, persist_aniframe, q, &ptmp);\r
+                               animatePlayer(bg, spri, player.d-1, 1, player.x, player.y, persist_aniframe, player.q, &ptmp);\r
                                mapScrollUp(bg, SPEED);\r
                                mapScrollUp(spri, SPEED);\r
                                //mapScrollUp(mask, SPEED);\r
@@ -494,16 +495,16 @@ void main() {
                        {\r
                                INC_PER_FRAME;\r
                                player.y-=SPEED;\r
-                               //animatePlayer(bg, spri, mask, 0, 0, player.x, player.y, persist_aniframe, q, (bitmap_t *)p);\r
+                               //animatePlayer(bg, spri, mask, 0, 0, player.x, player.y, persist_aniframe, q, &ptmp);\r
                                modexShowPage(spri->page);\r
-                               animatePlayer(bg, spri, player.d-1, 0, player.x, player.y, persist_aniframe, player.q, (bitmap_t *)p);\r
+                               animatePlayer(bg, spri, player.d-1, 0, player.x, player.y, persist_aniframe, player.q, &ptmp);\r
                                player.q++;\r
                        } else { player.q = 1; player.d = 0; player.ty--; }\r
                }\r
                else\r
                {\r
                        modexCopyPageRegion(spri->page, bg->page, player.x-4, player.y-TILEWH, player.x-4, player.y-TILEWH, 24, 32);\r
-                       modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 0, 24, 32, (bitmap_t *)p);\r
+                       modexDrawSpriteRegion(spri->page, player.x-4, player.y-TILEWH, 24, 0, 24, 32, &ptmp);\r
                        modexShowPage(spri->page);\r
                        player.d = 0;\r
                }\r
@@ -522,7 +523,17 @@ void main() {
                nosound();\r
        }\r
        if(player.q == (TILEWH/SPEED)+1 && player.d > 0 && (player.triggerx == 5 && player.triggery == 5)){ player.hp--; }\r
-       //if(keyp(0x0E)) while(1){ if(xmsmalloc(24)) break; }\r
+       //if(keyp(0x0E)) while(1){ if(xmsmalloc(24)) break; }
+       if(keyp(87))
+       {
+               modexLeave();\r
+               setkb(0);
+               __asm
+               {
+                       mov ah,31h
+                       int 21h
+               }
+       }\r
        }\r
 \r
        /* fade back to text mode */\r
@@ -803,13 +814,13 @@ mapDrawCol(map_view_t *mv, int tx, int ty, word x) {
        }\r
        i += mv->map->width;\r
        }\r
-}
-
-void qclean()
-{
+}\r
+\r
+void qclean()\r
+{\r
        modexLeave();\r
-       setkb(0);
-}
+       setkb(0);\r
+}\r
 \r
 void\r
 animatePlayer(map_view_t *src, map_view_t *dest, /*map_view_t *top, */sword d, short scrolloffsetswitch, int x, int y, int ls, int lp, bitmap_t *bmp)\r