[Scummvm-cvs-logs] SF.net SVN: scummvm:[40969] scummvm/trunk/engines/sci/gfx

thebluegr at users.sourceforge.net thebluegr at users.sourceforge.net
Fri May 29 00:26:20 CEST 2009


Revision: 40969
          http://scummvm.svn.sourceforge.net/scummvm/?rev=40969&view=rev
Author:   thebluegr
Date:     2009-05-28 22:26:20 +0000 (Thu, 28 May 2009)

Log Message:
-----------
Cleanup

Modified Paths:
--------------
    scummvm/trunk/engines/sci/gfx/res_view0.cpp
    scummvm/trunk/engines/sci/gfx/res_view1.cpp

Modified: scummvm/trunk/engines/sci/gfx/res_view0.cpp
===================================================================
--- scummvm/trunk/engines/sci/gfx/res_view0.cpp	2009-05-28 22:16:42 UTC (rev 40968)
+++ scummvm/trunk/engines/sci/gfx/res_view0.cpp	2009-05-28 22:26:20 UTC (rev 40969)
@@ -116,47 +116,6 @@
 	return retval;
 }
 
-static int gfxr_draw_loop0(gfxr_loop_t *dest, int id, int loop, byte *resource, int offset, int size, gfxr_view_t *view, int mirrored) {
-	int i;
-	int cels_nr = READ_LE_UINT16(resource + offset);
-
-	if (READ_LE_UINT16(resource + offset + 2)) {
-		GFXWARN("View %02x:(%d): Gray magic %04x in loop, expected white\n", id, loop, READ_LE_UINT16(resource + offset + 2));
-	}
-
-	if (cels_nr * 2 + 4 + offset > size) {
-		GFXERROR("View %02x:(%d): Offset array for %d cels extends beyond resource space\n", id, loop, cels_nr);
-		dest->cels_nr = 0; /* Mark as "delete no cels" */
-		dest->cels = NULL;
-		return 1;
-	}
-
-	dest->cels = (gfx_pixmap_t**)malloc(sizeof(gfx_pixmap_t *) * cels_nr);
-
-	for (i = 0; i < cels_nr; i++) {
-		int cel_offset = READ_LE_UINT16(resource + offset + 4 + (i << 1));
-		gfx_pixmap_t *cel = NULL;
-
-		if (cel_offset >= size) {
-			GFXERROR("View %02x:(%d/%d) supposed to be at illegal offset 0x%04x\n", id, loop, i, cel_offset);
-			cel = NULL;
-		} else
-			cel = gfxr_draw_cel0(id, loop, i, resource + cel_offset, size - cel_offset, view, mirrored);
-
-
-		if (!cel) {
-			dest->cels_nr = i;
-			return 1;
-		}
-
-		dest->cels[i] = cel;
-	}
-
-	dest->cels_nr = cels_nr;
-
-	return 0;
-}
-
 #define V0_LOOPS_NR_OFFSET 0
 #define V0_FIRST_LOOP_OFFSET 8
 #define V0_MIRROR_LIST_OFFSET 2
@@ -200,7 +159,6 @@
 	view->loops = (gfxr_loop_t*)malloc(sizeof(gfxr_loop_t) * ((view->loops_nr) ? view->loops_nr : 1)); /* Alloc 1 if no loop */
 
 	for (i = 0; i < view->loops_nr; i++) {
-		int error_token = 0;
 		int loop_offset = READ_LE_UINT16(resource + V0_FIRST_LOOP_OFFSET + (i << 1));
 		int mirrored = resource[mirror_bytepos] & mirror_bitpos;
 
@@ -209,16 +167,12 @@
 			mirror_bitpos = 1;
 		}
 
-		if (loop_offset >= size) {
-			GFXERROR("View %04x:(%d) supposed to be at illegal offset 0x%04x\n", id, i, loop_offset);
-			error_token = 1;
-		}
+		view->loops[i].cels_nr = READ_LE_UINT16(resource + loop_offset);
+		view->loops[i].cels = (gfx_pixmap_t**)calloc(view->loops[i].cels_nr, sizeof(gfx_pixmap_t *));
 
-		if (error_token || gfxr_draw_loop0(view->loops + i, id, i, resource, loop_offset, size, view, mirrored)) {
-			// An error occured
-			view->loops_nr = i;
-			gfxr_free_view(view);
-			return NULL;
+		for (int j = 0; j < view->loops[i].cels_nr; j++) {
+			int cel_offset = READ_LE_UINT16(resource + loop_offset + 4 + (j << 1));
+			view->loops[i].cels[j] = gfxr_draw_cel0(id, i, j, resource + cel_offset, size - cel_offset, view, mirrored);
 		}
 	}
 

Modified: scummvm/trunk/engines/sci/gfx/res_view1.cpp
===================================================================
--- scummvm/trunk/engines/sci/gfx/res_view1.cpp	2009-05-28 22:16:42 UTC (rev 40968)
+++ scummvm/trunk/engines/sci/gfx/res_view1.cpp	2009-05-28 22:26:20 UTC (rev 40969)
@@ -49,11 +49,6 @@
 #define V2_CELS_NUM 4
 #define V2_LOOP_OFFSET 14
 
-#define NEXT_RUNLENGTH_BYTE(n) \
-	if (literal_pos == runlength_pos) \
-		literal_pos += n; \
-	runlength_pos += n;
-
 #define NEXT_LITERAL_BYTE(n) \
 	if (literal_pos == runlength_pos) \
 		runlength_pos += n; \
@@ -74,7 +69,10 @@
 		int readbytes = 0;
 		int color = 0;
 
-		NEXT_RUNLENGTH_BYTE(1);
+		if (literal_pos == runlength_pos)
+			literal_pos += 1;
+	
+		runlength_pos += 1;
 
 		if (op & V1_RLE) {
 			bytes = op & 0x3f;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list