]> 4ch.mooo.com Git - 16.git/blobdiff - src/vrstest.c
something is bothering me very much on the animation part of frame. particularly...
[16.git] / src / vrstest.c
index d0e2b411778f13f79905607c99ea391486b6cc56..14baca184f71fe280f1b25722aa7ed1547f3dcab 100755 (executable)
  */\r
 \r
 #include "src/lib/16_head.h"\r
+#include "src/lib/16_tail.h"\r
 #include "src/lib/16_vl.h"\r
 #include "src/lib/16_sprit.h"\r
-#include "src/lib/16_tail.h"\r
 #include "src/lib/16_pm.h"\r
 #include "src/lib/16_ca.h"\r
 #include "src/lib/16_mm.h"\r
 \r
+extern boolean dbg_nointest;\r
+\r
 static word far* clockw= (word far*) 0x046C; /* 18.2hz clock */\r
+static byte palette[768];\r
 \r
-void main() {\r
+void main()\r
+{\r
        static global_game_variables_t gvar;\r
        //__segment sega;\r
        memptr bigbuffer;\r
@@ -38,31 +42,28 @@ void main() {
        word start;\r
        float t1, t2;\r
        //boolean baka;\r
-       byte *pal=0;\r
-       int size=0;\r
-       struct sprite spri;\r
+       entity_t enti;\r
        //vrl1_vgax_offset_t * off, *off1;\r
        struct vrs_container vrs;\r
        vrl1_vgax_offset_t **vrl_line_offsets;\r
-       uint32_t huge *vrl_headers_offsets;\r
-       uint16_t huge *vrl_id_iter;\r
+       uint32_t far *vrl_headers_offsets;\r
+       uint16_t far *vrl_id_iter;\r
        uint32_t vrl_size;\r
        int num_of_vrl;\r
-       struct vrl1_vgax_header huge *curr_vrl;\r
-       word w=0;\r
+       struct vrl1_vgax_header far *curr_vrl;\r
+       int size=0;\r
+       dbg_nointest=0;\r
 \r
        Startup16(&gvar);\r
 \r
        // What should be done by read_vrs:\r
-       //sega = (mm.bufferseg);\r
-       //if(\r
        CA_LoadFile("data/spri/chikyuu.vrs", &bigbuffer, &gvar);//) baka=1; else baka=0;\r
 \r
        // Insert sanity cheks later\r
        vrs.buffer = bigbuffer;\r
        vrs.data_size = size - sizeof(struct vrl1_vgax_header);\r
        num_of_vrl = 0;\r
-       vrl_id_iter = (uint16_t huge *)(vrs.buffer + vrs.vrs_hdr->offset_table[VRS_HEADER_OFFSET_SPRITE_ID_LIST]);\r
+       vrl_id_iter = (uint16_t far *)(vrs.buffer + vrs.vrs_hdr->offset_table[VRS_HEADER_OFFSET_SPRITE_ID_LIST]);\r
        while(vrl_id_iter[num_of_vrl]){\r
                num_of_vrl++;\r
        }\r
@@ -70,10 +71,10 @@ void main() {
        // Allocate memory for vrl line offsets table\r
        vrl_line_offsets = malloc(sizeof(vrl1_vgax_offset_t *)*num_of_vrl);\r
 \r
-       vrl_headers_offsets = (uint32_t huge *)(vrs.buffer + vrs.vrs_hdr->offset_table[VRS_HEADER_OFFSET_VRS_LIST]);\r
+       vrl_headers_offsets = (uint32_t far *)(vrs.buffer + vrs.vrs_hdr->offset_table[VRS_HEADER_OFFSET_VRS_LIST]);\r
        // Calculate line offsets for each vrl\r
        for(i = 0; i < num_of_vrl; i++){\r
-               curr_vrl = (struct vrl1_vgax_header huge *)(vrs.buffer + vrl_headers_offsets[i]);\r
+               curr_vrl = (struct vrl1_vgax_header far *)(vrs.buffer + vrl_headers_offsets[i]);\r
 \r
                // Calc. vrl size as (next_offset - curr_offset)\r
                if (i != num_of_vrl - 1){\r
@@ -89,23 +90,23 @@ void main() {
 \r
 \r
        //read_vrs(&gvar, "data/spri/chikyuu.vrs", &vrs);\r
-       spri.spritesheet = &vrs;\r
-       spri.sprite_vrl_cont = malloc(sizeof(struct vrl_container));\r
-       i = set_anim_by_id(&spri, 11);\r
+       enti.spri->spritesheet = &vrs;\r
+       enti.spri->sprite_vrl_cont = malloc(sizeof(struct vrl_container));\r
+       i = set_anim_by_id((enti.spri), 31);\r
        if (i == -1)\r
        {\r
                return;\r
        }\r
-       spri.x = 5;\r
-       spri.y = 100;\r
+       enti.spri->x = TILEWH-4;\r
+       enti.spri->y = TILEWH;\r
 \r
 //     Uncomment to see broken sprites\r
 /*     sega = mm.bufferseg;\r
        if(CA_LoadFile("data/spri/CHUBACW1.vrl", &bigbuffer, &mm, &mmi)) baka=1; else baka=0;*/\r
 \r
-       /* clear and draw one sprite and one bitmap */\r
        VGAmodeX(1, 1, &gvar);\r
        modexHiganbanaPageSetup(&gvar.video);\r
+       VL_ShowPage(&gvar.video.page[0], 0, 0);\r
 \r
        /* non sprite comparison */\r
        start = *clockw;\r
@@ -118,12 +119,19 @@ void main() {
 \r
        /*modexLoadPalFile("data/spri/chikyuu.pal", &pal);\r
        modexPalUpdate1(pal);*/\r
-       for (i = 0; i < 5; i++){\r
-       spri.delay = 1; animate_spri(&spri); spri.x += 20; /*sleep(1);*/ }\r
+       VL_LoadPalFile("data/spri/chikyuu.pal", &palette);\r
+       for (i = 0; i < 10; i++){\r
+               enti.spri->delay = 1;\r
+\r
+               if(i==5) set_anim_by_id(enti.spri, 21);\r
+\r
+               animate_spri(&enti, &gvar.video);// enti.spri->x += 16;\r
+               delay(500);\r
+       }\r
 \r
        while(!IN_KeyDown(sc_Escape))\r
        {\r
-               switch(w)\r
+               /*switch(w)\r
                {\r
                        case 1024:\r
                                modexPalUpdate0(pal);\r
@@ -131,17 +139,19 @@ void main() {
                        default:\r
                                w++;\r
                        break;\r
-               }\r
+               }*/\r
+               if(IN_KeyDown(25)){ modexpdump(&gvar.video.page[0]);  IN_UserInput(1,1); } //p\r
+FUNCTIONKEYFUNCTIONS;\r
        }\r
        VGAmodeX(0, 1, &gvar);\r
        MM_ShowMemory(&gvar);\r
        MM_DumpData(&gvar);\r
        MM_Report_(&gvar);\r
        Shutdown16(&gvar);\r
-       free(spri.sprite_vrl_cont);\r
+       free(enti.spri->sprite_vrl_cont);\r
        free(vrl_line_offsets);\r
        MM_FreePtr(&bigbuffer, &gvar);\r
-       //MM_FreePtr(&((void __based(sega)*)spri.spritesheet->buffer), &mm);\r
+       //MM_FreePtr(&((void __based(sega)*)enti.spri->spritesheet->buffer), &mm);\r
        //printf("CPU to VGA: %f\n", t1);\r
        //printf("VGA to VGA: %f\n", t2);\r
        heapdump(&gvar);\r