Blob Blame History Raw
diff -Nru t4k_common-0.1.1.orig/src/t4k_loaders.c t4k_common-0.1.1/src/t4k_loaders.c
--- t4k_common-0.1.1.orig/src/t4k_loaders.c	2019-08-11 22:35:51.961279487 -0400
+++ t4k_common-0.1.1/src/t4k_loaders.c	2019-08-11 22:50:41.074888647 -0400
@@ -213,16 +213,15 @@
   new_sprite = malloc(sizeof(sprite));
   new_sprite->default_img = render_svg_from_handle(file_handle, width, height, "#default");
 
-  /* get number of frames from description */
-  sscanf(rsvg_handle_get_desc(file_handle), "%d", &new_sprite->num_frames);
-  DEBUGMSG(debug_loaders, "load_svg_sprite(): loading %d frames\n", new_sprite->num_frames);
-
-  for(i = 0; i < new_sprite->num_frames; i++)
-  {
-    sprintf(lay_name, "#frame%d", i);
-    new_sprite->frame[i] = render_svg_from_handle(file_handle, width, height, lay_name);
+  /* get number of frames directly. End when #frame<num> doesn't exist */
+  new_sprite->num_frames = 0;
+  while(1) {
+      sprintf(lay_name, "#frame%d", new_sprite->num_frames);
+      if ( ! (rsvg_handle_has_sub(file_handle, lay_name)) ) break;
+      new_sprite->frame[new_sprite->num_frames] = render_svg_from_handle(file_handle, width, height, lay_name);
+      new_sprite->num_frames++;
   }
-
+  
   g_object_unref(file_handle);
   rsvg_term();
 
@@ -1028,12 +1027,14 @@
       {
         png_init_io(png_ptr, fi);
 
-        info_ptr->width = surf->w;
-        info_ptr->height = surf->h;
-        info_ptr->bit_depth = 8;
-        info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA;
-        info_ptr->interlace_type = 1;
-        info_ptr->valid = 0;	/* will be updated by various png_set_FOO() functions */
+        //info_ptr->width = surf->w;
+        //info_ptr->height = surf->h;
+        //info_ptr->bit_depth = 8;
+        //info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA;
+        //info_ptr->interlace_type = 1;
+        png_set_IHDR(png_ptr, info_ptr, surf->w, surf->h, 8, PNG_COLOR_TYPE_RGB_ALPHA, 1, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT);
+        //info_ptr->valid = 0;	/* will be updated by various png_set_FOO() functions */
+
 
         png_set_sRGB_gAMA_and_cHRM(png_ptr, info_ptr,
                        PNG_sRGB_INTENT_PERCEPTUAL);