From 52ff6acc1fa224b3027d5e6268e37e681fdf2031 Mon Sep 17 00:00:00 2001 From: Oliver Kiehl Date: Sat, 13 Sep 2003 20:42:08 +0000 Subject: and another endian fix svn-id: r10241 --- sword2/resman.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'sword2/resman.cpp') diff --git a/sword2/resman.cpp b/sword2/resman.cpp index 20d0bf0741..a409e0f772 100644 --- a/sword2/resman.cpp +++ b/sword2/resman.cpp @@ -41,6 +41,7 @@ #include "resman.h" #include "sound.h" // (James22july97) for Clear_fx_queue() called from CacheNewCluster() #include "sword2.h" // (James11aug97) for CloseGame() +#include "router.h" // --------------------------------------------------------------------------- // welcome to the easy resource manager - written in simple code for easy @@ -391,6 +392,27 @@ static void convertEndian(uint8 *file, uint32 len) { SWAP32(walkGridHeader->numBars); SWAP32(walkGridHeader->numNodes); + + _barData *barData = (_barData *) (file + sizeof(_walkGridHeader)); + for (i = 0; i < walkGridHeader->numBars; i++) { + SWAP16(barData->x1); + SWAP16(barData->y1); + SWAP16(barData->x2); + SWAP16(barData->y2); + SWAP16(barData->xmin); + SWAP16(barData->ymin); + SWAP16(barData->xmax); + SWAP16(barData->ymax); + SWAP16(barData->dx); + SWAP16(barData->dy); + SWAP32(barData->co); + barData++; + } + + uint16 *node = (uint16 *) (file + sizeof(_walkGridHeader) + walkGridHeader->numBars * sizeof(_barData)); + for (i = 0; i < walkGridHeader->numNodes*2; i++) + *node = SWAP_BYTES_16(*node++); + break; } case GLOBAL_VAR_FILE: -- cgit v1.2.3