\r
#include "src/lib/16_spri.h"\r
\r
+struct glob_game_vars *ggvv;\r
+\r
char* get_curr_anim_name(struct sprite *spri)\r
{\r
// Retrive animation name list\r
-#ifndef VRSVRLNONPTR\r
- struct vrs_header far *vrs = spri->spritesheet->vrs_hdr;\r
-#else\r
struct vrs_header far *vrs = spri->spritesheet.vrs_hdr;\r
-#endif\r
uint32_t far *anim_names_offsets = (uint32_t far *)\r
((byte far *)vrs +\r
vrs->offset_table[VRS_HEADER_OFFSET_ANIMATION_NAME_LIST]);\r
\r
void init_anim(struct sprite *spri, int anim_index)\r
{\r
-#ifndef VRSVRLNONPTR\r
- struct vrs_header far *vrs = spri->spritesheet->vrs_hdr;\r
-#else\r
struct vrs_header far *vrs = spri->spritesheet.vrs_hdr;\r
-#endif\r
uint32_t far *anim_lists_offsets = (uint32_t far *)\r
((byte far *)vrs +\r
vrs->offset_table[VRS_HEADER_OFFSET_ANIMATION_LIST]);\r
{\r
int new_anim_index = 0;\r
int iter_id;\r
-#ifndef VRSVRLNONPTR\r
- struct vrs_header far *vrs = spri->spritesheet->vrs_hdr;\r
-#else\r
struct vrs_header far *vrs = spri->spritesheet.vrs_hdr;\r
-#endif\r
// Retruve animation ids list\r
uint16_t far *anim_ids = (uint16_t far *)\r
((byte far *)vrs +\r
{\r
int new_anim_index = 0;\r
int iter_id;\r
-#ifndef VRSVRLNONPTR\r
- struct vrs_header far *vrs = spri->spritesheet->vrs_hdr;\r
-#else\r
struct vrs_header far *vrs = spri->spritesheet.vrs_hdr;\r
-#endif\r
// Retruve animation ids list\r
uint16_t far *anim_ids = (uint16_t far *)\r
((byte far *)vrs +\r
\r
\r
// Draw sprite\r
-#ifndef VRSVRLNONPTR\r
- j = get_vrl_by_id(enti->spri.spritesheet, enti->spri.curr_spri_id, enti->spri.sprite_vrl_cont);\r
-#else\r
j = get_vrl_by_id(&enti->spri.spritesheet, enti->spri.curr_spri_id, &enti->spri.sprite_vrl_cont);\r
-#endif\r
if(j < 0)\r
{\r
//Quit (gv, "Error retriving required sprite");\r
}\r
\r
// render box bounds. y does not need modification, but x and width must be multiple of 4\r
- if(!video->rss)\r
+ if(!video->vga_state.rss)\r
{\r
if (x >= enti->overdraww) rx = (x - enti->overdraww) & (~3);\r
else rx = -(video->page[0].dx);\r
if (y >= enti->overdrawh) ry = (y - enti->overdrawh);\r
else ry = -(video->page[0].dy);\r
-#ifndef VRSVRLNONPTR\r
- h = enti->spri.sprite_vrl_cont->vrl_header->height + enti->overdrawh + y - ry;\r
- w = (x + enti->spri.sprite_vrl_cont->vrl_header->width + (enti->overdraww*2) + 3 - rx) & (~3) - enti->overdraww;//round up\r
-#else\r
h = enti->spri.sprite_vrl_cont.vrl_header->height + enti->overdrawh + y - ry;\r
w = (x + enti->spri.sprite_vrl_cont.vrl_header->width + (enti->overdraww*2) + 3 - rx) & (~3) - enti->overdraww;//round up\r
-#endif\r
if ((rx+w) > video->page[0].width) w = video->page[0].width-rx;\r
if ((ry+h) > video->page[0].height) h = video->page[0].height-ry;\r
\r
- if(!video->bgps){\r
+ if(!video->vga_state.bgps){\r
// block copy pattern to where we will draw the sprite\r
vga_setup_wm1_block_copy();\r
o2 = video->ofs.offscreen_ofs;\r
draw_vrl1_vgax_modex(\r
x-rx,\r
y-ry,\r
-#ifndef VRSVRLNONPTR\r
- enti->spri.sprite_vrl_cont->vrl_header,\r
- enti->spri.sprite_vrl_cont->line_offsets,\r
- enti->spri.sprite_vrl_cont->buffer + sizeof(struct vrl1_vgax_header),\r
- enti->spri.sprite_vrl_cont->data_size\r
-#else\r
enti->spri.sprite_vrl_cont.vrl_header,\r
enti->spri.sprite_vrl_cont.line_offsets,\r
enti->spri.sprite_vrl_cont.buffer + sizeof(struct vrl1_vgax_header),\r
enti->spri.sprite_vrl_cont.data_size\r
-#endif\r
);\r
#endif\r
- if(!video->rss)\r
+#ifdef __DEBUG_SPRI__\r
+// if(ggvv->player[0].enti.q<5)\r
+ if(dbg_delayanimation)\r
+ {\r
+ IN_Ack(ggvv);// delay(250);//{ while(!IN_KeyDown(sc_Space)/* && !IN_KeyDown(sc_Escape)*/){} delay(250); }\r
+ }\r
+#endif\r
+ if(!video->vga_state.rss)\r
{\r
// restore ptr\r
vga_state.vga_graphics_ram = omemptr;\r
\r
- if(!video->bgps){\r
+ if(!video->vga_state.bgps){\r
// block copy to visible RAM from offscreen\r
vga_setup_wm1_block_copy();\r
o = video->ofs.offscreen_ofs; // source offscreen\r
// restore stride\r
vga_state.vga_draw_stride_limit = vga_state.vga_draw_stride = video->page[0].stridew;\r
\r
- vga_state.vga_graphics_ram = video->omemptr;\r
+ vga_state.vga_graphics_ram = video->vga_state.omemptr;\r
video->dorender=1;\r
}\r