]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_sprit.c
made palllist.exe as an experiment for me to make a palette system i want for p16...
[16.git] / src / lib / 16_sprit.c
index 5aad189339d6b454c55df89c3a7905a9e0fc46ee..e498250aefff4467bf6f347a8b2fcc54b7ccacc3 100755 (executable)
@@ -103,26 +103,29 @@ void animate_spri(struct sprite *spri, global_game_variables_t *gv)
        int i;\r
        // Events go here\r
 \r
+\r
+       /* replace VGA stride with our own and mem ptr. then sprite rendering at this stage is just (0,0) */\r
+       vga_state.vga_draw_stride_limit = (gv->video.page[0].width + 3/*round up*/ - spri->x) >> 2;\r
+\r
        // Draw sprite\r
        i = get_vrl_by_id(spri->spritesheet, spri->curr_spri_id, spri->sprite_vrl_cont);\r
        if(i < 0)\r
        {\r
                Quit (gv, "Error retriving required sprite");\r
        }\r
-//     draw_vrl1_vgax_modex(x-rx,y-ry,vrl_header,vrl_lineoffs,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header));\r
+\r
        draw_vrl1_vgax_modex(\r
-               spri->x,// - spri->sprite_vrl_cont->vrl_header->width-28,\r
-               spri->y,// - spri->sprite_vrl_cont->vrl_header->height*2 -(gv->video.page[0].sh/2),\r
-               //vrl_header,\r
+               spri->x-gv->video.page[0].dx,\r
+               spri->y-gv->video.page[0].dy,\r
                spri->sprite_vrl_cont->vrl_header,\r
-               //vrl_lineoffs,\r
                spri->sprite_vrl_cont->line_offsets,\r
-               //buffer+sizeof(*vrl_header),\r
                spri->sprite_vrl_cont->buffer + sizeof(struct vrl1_vgax_header),\r
-               //bufsz-sizeof(*vrl_header));\r
                spri->sprite_vrl_cont->data_size\r
        );\r
 \r
+       /* restore stride */\r
+       vga_state.vga_draw_stride_limit = vga_state.vga_draw_stride = gv->video.page[0].stridew;\r
+\r
        // Depending on delay, update indices\r
        switch(spri->delay){\r
                // Delay = 0 means that sprite should loop. Nothing to change here\r