grfspecial.c
changeset 448 5aa84112454c
parent 445 0e3fa3da3899
child 449 d9325d9f24bb
--- a/grfspecial.c	Wed Nov 17 15:14:18 2004 +0000
+++ b/grfspecial.c	Wed Nov 17 17:15:36 2004 +0000
@@ -1212,6 +1212,13 @@
 		rg->groups = calloc(rg->num_groups, sizeof(*rg->groups));
 		for (i = 0; i < rg->num_groups; i++) {
 			uint16 groupid = grf_load_word(&buf);
+
+			if (groupid & 0x8000 || groupid >= _cur_grffile->spritegroups_count) {
+				/* This doesn't exist for us. */
+				i--;
+				rg->num_groups--;
+				continue;
+			}
 			/* XXX: If multiple surreal sets attach a surreal
 			 * set this way, we are in trouble. */
 			rg->groups[i] = _cur_grffile->spritegroups[groupid];