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