X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2F16_sprit.c;h=e498250aefff4467bf6f347a8b2fcc54b7ccacc3;hb=fab51bd6334f4a24b1730c27d34f03ef7bad9944;hp=5aad189339d6b454c55df89c3a7905a9e0fc46ee;hpb=9ff2b0b4f132eace00557a8db5b2ab9c602f4ffa;p=16.git diff --git a/src/lib/16_sprit.c b/src/lib/16_sprit.c index 5aad1893..e498250a 100755 --- a/src/lib/16_sprit.c +++ b/src/lib/16_sprit.c @@ -103,26 +103,29 @@ void animate_spri(struct sprite *spri, global_game_variables_t *gv) int i; // Events go here + + /* replace VGA stride with our own and mem ptr. then sprite rendering at this stage is just (0,0) */ + vga_state.vga_draw_stride_limit = (gv->video.page[0].width + 3/*round up*/ - spri->x) >> 2; + // Draw sprite i = get_vrl_by_id(spri->spritesheet, spri->curr_spri_id, spri->sprite_vrl_cont); if(i < 0) { Quit (gv, "Error retriving required sprite"); } -// draw_vrl1_vgax_modex(x-rx,y-ry,vrl_header,vrl_lineoffs,buffer+sizeof(*vrl_header),bufsz-sizeof(*vrl_header)); + draw_vrl1_vgax_modex( - spri->x,// - spri->sprite_vrl_cont->vrl_header->width-28, - spri->y,// - spri->sprite_vrl_cont->vrl_header->height*2 -(gv->video.page[0].sh/2), - //vrl_header, + spri->x-gv->video.page[0].dx, + spri->y-gv->video.page[0].dy, spri->sprite_vrl_cont->vrl_header, - //vrl_lineoffs, spri->sprite_vrl_cont->line_offsets, - //buffer+sizeof(*vrl_header), spri->sprite_vrl_cont->buffer + sizeof(struct vrl1_vgax_header), - //bufsz-sizeof(*vrl_header)); spri->sprite_vrl_cont->data_size ); + /* restore stride */ + vga_state.vga_draw_stride_limit = vga_state.vga_draw_stride = gv->video.page[0].stridew; + // Depending on delay, update indices switch(spri->delay){ // Delay = 0 means that sprite should loop. Nothing to change here