]> 4ch.mooo.com Git - 16.git/commitdiff
readded OLD sprite drawing now for fixing the background stuff ww
authorsparky4 <sparky4@cock.li>
Mon, 20 Jun 2016 15:49:50 +0000 (10:49 -0500)
committersparky4 <sparky4@cock.li>
Mon, 20 Jun 2016 15:49:50 +0000 (10:49 -0500)
data/chikyuu.pcx
src/lib/16_in.h
src/lib/bitmap.c
src/lib/scroll16.h
src/lib/typdefst.h
src/pcxtest.c
src/pcxtest2.c
src/scroll.c

index 5442787172b3f610fc6053b3611655599b443d54..83de56ba39c632ee07d470d9f92d59b0dd76852e 100755 (executable)
Binary files a/data/chikyuu.pcx and b/data/chikyuu.pcx differ
index beb6a3d33613de4a2f0ca633a2a9d0850ad798a5..186158ea99f4612d9dd960b298dbf696ebcb1626 100755 (executable)
@@ -230,7 +230,7 @@ typedef     struct
 //0000 planar_buf_t huge *data; //supposively the sprite sheet data\r
 //     planar_buf_t data; //supposively the sprite sheet data\r
 ////0000----\r
-       bitmap_t huge *data; //supposively the sprite sheet data\r
+       bitmap_t *data; //supposively the sprite sheet data\r
        sword hp; //hitpoints of the player\r
        int persist_aniframe;    /* gonna be increased to 1 before being used, so 0 is ok for default */\r
        CursorInfo      info;\r
index 433217337db99d0ef0856bcb80037e54873a62e8..d2480bafafd96b759a2cd0e5987f0e3ed450419b 100755 (executable)
@@ -126,7 +126,7 @@ bitmapLoadPcx(char *filename) {
                result.data[index] = val;\r
        }\r
        } while(index < bufSize);\r
-       printf("index=%d\n", index);\r
+       //printf("index=%d\n", index);\r
 \r
        loadPcxPalette(file, &result);\r
 \r
index f52183793526612b76b7242329d204722bd4a72e..c8e4a1a8aa112d0af2d10cea003d77b21a5fe060 100755 (executable)
 #include <hw/vga/vga.h>
 #include <hw/vga/vrl.h>
 
-//#define SPRITE
+#define SPRITE
 //#define TILERENDER
 
-#define PBUFSFUN               modexDrawSpritePBufRegion
-#define PBUFBFUN               modexDrawBmpPBufRegion
-#define PLAYERBMPDATA  &player[pn].data
+//modexDrawSpritePBufRegion
+//modexDrawBmpPBufRegion
+#define PBUFSFUN               modexDrawSpriteRegion
+#define PBUFBFUN               modexDrawBmpRegion
+#define PLAYERBMPDATA  player[pn].data
 
 typedef struct {
        map_t *map;
index 2f8d7a456f78f006ee95749a225000886f4dd1d7..da79ebc8b63b74a0416b8fa298633b64b907bbf1 100755 (executable)
@@ -42,7 +42,7 @@
  * typedefs of the game variables!\r
  */\r
 typedef struct {\r
-       byte huge *data;\r
+       byte *data;\r
        word width;\r
        word height;\r
        byte *palette;\r
index c05cff5f7f79a2093cb17ba3d895d468a671f6ee..99e2669ee01641da7e963f546713ea71f4e7a2de 100755 (executable)
@@ -37,9 +37,30 @@ void main() {
        int plane;\r
        float t1, t2;\r
 \r
+       // DOSLIB: check our environment\r
+       probe_dos();\r
+\r
+       // DOSLIB: what CPU are we using?\r
+       // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS.\r
+       //      So this code by itself shouldn't care too much what CPU it's running on. Except that other\r
+       //      parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for\r
+       //      the CPU to carry out tasks. --J.C.\r
+       cpu_probe();\r
+\r
+       // DOSLIB: check for VGA\r
+       if (!probe_vga()) {\r
+               printf("VGA probe failed\n");\r
+               return;\r
+       }\r
+       // hardware must be VGA or higher!\r
+       if (!(vga_state.vga_flags & VGA_IS_VGA)) {\r
+               printf("This program requires VGA or higher graphics hardware\n");\r
+               return;\r
+       }\r
+\r
 //0000 bmp = bitmapLoadPcx("data/koishi~~.pcx");\r
-//     bmp = bitmapLoadPcx("data/chikyuu.pcx");\r
-       bmp = bitmapLoadPcx("data/koishi^^.pcx");\r
+       bmp = bitmapLoadPcx("data/chikyuu.pcx");\r
+//     bmp = bitmapLoadPcx("data/koishi^^.pcx");\r
 //     bmp = bitmapLoadPcx("16/PCX_LIB/chikyuu.pcx");\r
        p = planar_buf_from_bitmap(&bmp);\r
        VGAmodeX(1, 1, &gvar);\r
index 059b448acf32a76906e700d6d206504e972695e9..aea2eb9a542bfecb1ca81e07808547083a5f0472 100755 (executable)
@@ -62,9 +62,30 @@ void main() {
        int plane;\r
        float t1, t2;\r
 \r
+       // DOSLIB: check our environment\r
+       probe_dos();\r
+\r
+       // DOSLIB: what CPU are we using?\r
+       // NTS: I can see from the makefile Sparky4 intends this to run on 8088 by the -0 switch in CFLAGS.\r
+       //      So this code by itself shouldn't care too much what CPU it's running on. Except that other\r
+       //      parts of this project (DOSLIB itself) rely on CPU detection to know what is appropriate for\r
+       //      the CPU to carry out tasks. --J.C.\r
+       cpu_probe();\r
+\r
+       // DOSLIB: check for VGA\r
+       if (!probe_vga()) {\r
+               printf("VGA probe failed\n");\r
+               return;\r
+       }\r
+       // hardware must be VGA or higher!\r
+       if (!(vga_state.vga_flags & VGA_IS_VGA)) {\r
+               printf("This program requires VGA or higher graphics hardware\n");\r
+               return;\r
+       }\r
+\r
 //0000 bmp = bitmapLoadPcx("data/koishi~~.pcx");\r
-//     bmp = bitmapLoadPcx("data/chikyuu.pcx");\r
-       bmp = bitmapLoadPcx("data/koishi^^.pcx");\r
+       bmp = bitmapLoadPcx("data/chikyuu.pcx");\r
+//     bmp = bitmapLoadPcx("data/koishi^^.pcx");\r
 //     bmp = bitmapLoadPcx("16/PCX_LIB/chikyuu.pcx");\r
        p = planar_buf_from_bitmap(&bmp);\r
        VGAmodeX(1, 1, &gvar);\r
index cd143846d7992c714ad214751d9ff8ebc7d51d56..ff380454e7831d0efe74a7c2644d31872125d107 100755 (executable)
 #define MODEX  //this is for mode x initiating
 
 //word far *clock= (word far*) 0x046C; /* 18.2hz clock */
-
+bitmap_t *p;
 global_game_variables_t gvar;
 static map_t map;
 player_t player[MaxPlayers];
 //page_t screen, gvar.video.page[1], gvar.video.page[2];
 map_view_t mv[4];
-bitmap_t p;
 //word pn=0; //i forgot ww
-static planar_buf_t huge *pp;
+//static planar_buf_t huge *pp;
 float t;
 sword bakapee;
 pan_t pan;
@@ -115,7 +114,11 @@ void main(int argc, char *argv[])
        //mappalptr = map.tiles->btdata->palette;
 
        /* data */
-       //++++p = bitmapLoadPcx("data/ptmp.pcx"); // load sprite
+       //++++
+       p = malloc(48*128);
+       player[0].data = p;
+       *p = bitmapLoadPcx("data/chikyuu.pcx"); // load sprite
+       *player[0].data = bitmapLoadPcx("data/chikyuu.pcx"); // load sprite
        //npctmp = bitmapLoadPcx("ptmp1.pcx"); // load sprite
 
        /* create the planar buffer */
@@ -150,7 +153,7 @@ void main(int argc, char *argv[])
 //     printf("Total used @ before palette initiation:         %zu\n", oldfreemem-GetFreeSize());
 //++++ player[0].data.offset=(paloffset/3);
 //++++ modexPalUpdate1(&player[0].data, &paloffset, 0, 0);
-               //modexPalUpdate1(p.palette);
+               modexPalUpdate1(p->palette);
 //++++0000             modexPalUpdate1(map.tiles->btdata->palette);
        //printf("      %d\n", sizeof(ptmp->data));
        //printf("1:    %d\n", paloffset);
@@ -190,12 +193,14 @@ void main(int argc, char *argv[])
        IN_initplayer(&player, 0);
        //IN_initplayer(&player, 1);
 
+       modexDrawSprite(mv[0].page, 16, 16, p);
+       modexDrawSprite(mv[0].page, 32+48, 16, (player[0].data));
 #ifndef        SPRITE
        modexClearRegion(mv[0].page, player[0].x, player[0].y-TILEWH, 16, 32, 15);
        //modexClearRegion(mv[1].page, player[0].x, player[0].y-TILEWH, 16, 32, 15);
 #else
        //PBUFSFUN(mv[1].page, player[0].x, player[0].y-TILEWH, 16, 64, 24, 32, PLAYERBMPDATA);
-       PBUFSFUN(mv[0].page, player[0].x, player[0].y-TILEWH, 16, 64, 16, 32,   &pp);
+       PBUFSFUN(mv[0].page, player[0].x, player[0].y-TILEWH, 16, 64, 16, 32,   p);
 #endif
 
        if(!pageflipflop)       modexShowPage(mv[1].page);
@@ -262,7 +267,7 @@ void main(int argc, char *argv[])
 #ifdef FADE
        if(IN_KeyDown(24)){ modexPalUpdate0(gpal); paloffset=0; modexpdump(mv[0].page); modexpdump(mv[1].page);  IN_UserInput(1,1); }
        if(IN_KeyDown(22)){
-       paloffset=0; modexPalBlack(); modexPalUpdate(&player[0].data, &paloffset, 0, 0);
+       paloffset=0; modexPalBlack(); modexPalUpdate(player[0].data, &paloffset, 0, 0);
        printf("1paloffset      =       %d\n", paloffset/3);
         modexPalUpdate(map.tiles->data, &paloffset, 0, 0);
        printf("2paloffset      =       %d\n", paloffset/3);
@@ -297,6 +302,11 @@ void main(int argc, char *argv[])
                modexClearRegion(mv[3].page, 0, 128, 28, 36, 15);
                //IN_UserInput(1,1);
        }
+       if(IN_KeyDown(66))      //f8
+       {
+               modexDrawSprite(mv[0].page, 16, 16, p);
+               modexDrawSprite(mv[0].page, 32+48, 16, (player[0].data));
+       }
        //TODO fmemtest into page
        /*if(IN_KeyDown(4+1))   //4
        {