14 int read_vrs(char *filename, struct vrs_container *vrs_cont){
17 unsigned char *buffer;
18 fd = open(filename, O_RDONLY|O_BINARY);
19 // Insert sanity cheks later
20 size = lseek(fd, 0, SEEK_END);
21 buffer = malloc(size);
22 lseek(fd, 0, SEEK_SET);
23 read(fd, buffer, size);
24 vrs_cont->size = size;
25 vrs_cont->buffer = buffer;
30 struct vrl_container* get_vrl_by_id(struct vrs_container *vrs_cont, uint16_t id){
34 struct vrl_container *vrl_cont;
38 ids = (uint16_t*)vrs_cont->buffer + (unsigned long)vrs_cont->vrs_hdr->offset_table[VRS_HEADER_OFFSET_SPRITE_ID_LIST];
39 while(ids[counter] != id && ids[counter]){
42 vrl_list = (uint32_t *)(vrs_cont->buffer + vrs_cont->vrs_hdr->offset_table[VRS_HEADER_OFFSET_VRS_LIST]);
43 vrl_cont = (struct vrl_container*)malloc(sizeof(struct vrl_container));
44 vrl_cont->vrl_header = (struct vrl1_vgax_header*)(vrs_cont->buffer + vrl_list[counter]);
45 vrl_cont->size = vrl_list[counter+1] - vrl_list[counter];