about summary refs log tree commit diff
path: root/src/engine/datafile.c
diff options
context:
space:
mode:
authorJoel de Vahl <joel@stalverk80.se>2007-09-25 19:48:52 +0000
committerJoel de Vahl <joel@stalverk80.se>2007-09-25 19:48:52 +0000
commitaca6dd808b19072b653ce81384490c8b08edbedd (patch)
tree804fc5f8e5e554f4065fd063f4d3f587b6c20b5d /src/engine/datafile.c
parent06c341be51a75fd8a24f2441654e184fd3fdefcd (diff)
downloadzcatch-aca6dd808b19072b653ce81384490c8b08edbedd.tar.gz
zcatch-aca6dd808b19072b653ce81384490c8b08edbedd.zip
new mixer and ppc fixes
Diffstat (limited to 'src/engine/datafile.c')
-rw-r--r--src/engine/datafile.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/src/engine/datafile.c b/src/engine/datafile.c
index fddd522d..c11082ac 100644
--- a/src/engine/datafile.c
+++ b/src/engine/datafile.c
@@ -92,8 +92,10 @@ DATAFILE *datafile_load(const char *filename)
 			return 0;
 		}
 	}
-	
-	/* TODO: swap the header */
+
+#if defined(CONF_ARCH_ENDIAN_BIG)
+	swap_endian(&header, sizeof(int), sizeof(header)/sizeof(int));	
+#endif
 	if(header.version != 3 && header.version != 4)
 	{
 		dbg_msg("datafile", "wrong version. version=%x", header.version);
@@ -129,16 +131,10 @@ DATAFILE *datafile_load(const char *filename)
 		dbg_msg("datafile", "couldn't load the whole thing, wanted=%d got=%d", size, readsize);
 		return 0;
 	}
-/*
+
 #if defined(CONF_ARCH_ENDIAN_BIG)
-	unsigned *dst = (unsigned*)df;
-	unsigned char *src = (unsigned char*)df;
-	for(unsigned i = 0; i < swapsize; i++)
-	{
-		unsigned j = i << 2;
-		dst[i] = src[j] | src[j+1]<<8 | src[j+2]<<16 | src[j+3]<<24;
-	}
-#endif*/
+	swap_endian(df->data, sizeof(int), header.swaplen);
+#endif
 	
 	if(DEBUG)
 		dbg_msg("datafile", "item_size=%d", df->header.item_size);