Author: ansgar-guest
Date: 2008-02-06 14:31:07 +0000 (Wed, 06 Feb 2008)
New Revision: 5651

Added:
   packages/trunk/glest/debian/patches/be-support-from-kozz
Modified:
   packages/trunk/glest/debian/changelog
Log:
update debian/changelog, reinclude big enidan patch


Modified: packages/trunk/glest/debian/changelog
===================================================================
--- packages/trunk/glest/debian/changelog       2008-02-06 01:44:58 UTC (rev 
5650)
+++ packages/trunk/glest/debian/changelog       2008-02-06 14:31:07 UTC (rev 
5651)
@@ -7,6 +7,7 @@
   * Add Homepage: control field to source stanza
 
   [ Siegfried-Angel Gevatter Pujals (RainCT) ]
+  * Drop patches/10_fix_gcc-4.1_particle.h.dpatch
   * debian/control:
      - Replace XS-Vcs-* with Vcs-*
      - Add myself to Uploaders
@@ -16,7 +17,8 @@
 
   [ Ansgar Burchardt ]
   * New upstream release (Closes: #463489)
-  * Use quilt for patch management
+    + Drop patches/01_addcleanrule.dpatch
+  * Use quilt for patch management instead of dpatch
   * Remove Homepage field from description
   * Add myself to Uploaders
   * Bump Debian Standards version to 3.7.3

Copied: packages/trunk/glest/debian/patches/be-support-from-kozz (from rev 
5613, packages/trunk/glest/debian/patches/20_be-support-from-kozz.dpatch)
===================================================================
--- packages/trunk/glest/debian/patches/be-support-from-kozz                    
        (rev 0)
+++ packages/trunk/glest/debian/patches/be-support-from-kozz    2008-02-06 
14:31:07 UTC (rev 5651)
@@ -0,0 +1,632 @@
+be-support-from-kozz by Eddy Petrișor <[EMAIL PROTECTED]>
+
+Patch from Emanuel Steen (Kozz) which adds BE support to glest - more 
+info at 
+http://www.powerdeveloper.org/forums/viewtopic.php?p=6615&sid=eea0f061be143cbf8e98c10c9e7a6d6a#6615
+
+diff -Nru glest.orig/source/glest_game/menu/main_menu.cpp 
glest/source/glest_game/menu/main_menu.cpp
+--- glest.orig/source/glest_game/menu/main_menu.cpp    2007-01-02 
12:23:43.000000000 +0100
++++ glest/source/glest_game/menu/main_menu.cpp 2007-01-02 12:23:42.000000000 
+0100
+@@ -23,6 +23,7 @@
+ #include "faction.h"
+ #include "metrics.h"
+ #include "leak_dumper.h"
++#include "byteswap.h"
+ 
+ using namespace Shared::Sound;
+ using namespace Shared::Util;
+@@ -511,6 +512,12 @@
+ 
+               MapFileHeader header;
+               fread(&header, sizeof(MapFileHeader), 1, f);
++              header.version    = letoh32(header.version);
++              header.maxPlayers = letoh32(header.maxPlayers);
++              header.width      = letoh32(header.width);
++              header.height     = letoh32(header.height);
++              header.altFactor  = letoh32(header.altFactor);
++              header.waterLevel = letoh32(header.waterLevel);
+ 
+               mapInfo->size.x= header.width;
+               mapInfo->size.y= header.height;
+diff -Nru glest.orig/source/glest_game/world/map.cpp 
glest/source/glest_game/world/map.cpp
+--- glest.orig/source/glest_game/world/map.cpp 2007-01-02 12:23:43.000000000 
+0100
++++ glest/source/glest_game/world/map.cpp      2007-01-02 12:23:42.000000000 
+0100
+@@ -20,6 +20,7 @@
+ #include "tech_tree.h"
+ #include "config.h"
+ #include "leak_dumper.h"
++#include "byteswap.h"
+ 
+ using namespace Shared::Graphics;
+ using namespace Shared::Util;
+@@ -122,6 +123,13 @@
+                       //read header
+                       MapFileHeader header;
+                       fread(&header, sizeof(MapFileHeader), 1, f);
++                      header.version    = letoh32(header.version);
++                      header.maxPlayers = letoh32(header.maxPlayers);
++                      header.width      = letoh32(header.width);
++                      header.height     = letoh32(header.height);
++                      header.altFactor  = letoh32(header.altFactor);
++                      header.waterLevel = letoh32(header.waterLevel);
++
+ 
+                       if(next2Power(header.width) != header.width){
+                               throw runtime_error("Map width is not a power 
of 2");
+@@ -146,7 +154,9 @@
+                       for(int i=0; i<maxPlayers; ++i){
+                               int x, y;
+                               fread(&x, sizeof(int32), 1, f);
++                              x = letoh32(x);
+                               fread(&y, sizeof(int32), 1, f);
++                              y = letoh32(y);
+                               startLocations[i]= Vec2i(x, y)*cellScale;
+                       }
+ 
+@@ -160,6 +170,7 @@
+                               for(int i=0; i<surfaceW; ++i){
+                                       float32 alt;
+                                       fread(&alt, sizeof(float32), 1, f);
++                                      alt = byteswap(alt);
+                                       SurfaceCell *sc= getSurfaceCell(i, j);
+                                       sc->setVertex(Vec3f(i*mapScale, alt / 
heightFactor, j*mapScale)); 
+                               }
+diff -Nru glest.orig/source/shared_lib/include/sound/sound_file_loader.h 
glest/source/shared_lib/include/sound/sound_file_loader.h
+--- glest.orig/source/shared_lib/include/sound/sound_file_loader.h     
2007-01-02 12:23:43.000000000 +0100
++++ glest/source/shared_lib/include/sound/sound_file_loader.h  2007-01-02 
12:23:42.000000000 +0100
+@@ -80,6 +80,11 @@
+ private:
+       OggVorbis_File *vf;
+       FILE *f;
++#if BYTE_ORDER == BIG_ENDIAN 
++        static const int bigendianp = 1;
++#else
++        static const int bigendianp = 0;
++#endif
+ 
+ public:
+       virtual void open(const string &path, SoundInfo *soundInfo);
+diff -Nru glest.orig/source/shared_lib/include/util/byteswap.h 
glest/source/shared_lib/include/util/byteswap.h
+--- glest.orig/source/shared_lib/include/util/byteswap.h       1970-01-01 
01:00:00.000000000 +0100
++++ glest/source/shared_lib/include/util/byteswap.h    2007-01-02 
12:23:42.000000000 +0100
+@@ -0,0 +1,198 @@
++/*    $OpenBSD: endian.h,v 1.14 2004/01/11 19:17:31 brad Exp $        */
++
++/*-
++ * Copyright (c) 1997 Niklas Hallqvist.  All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions
++ * are met:
++ * 1. Redistributions of source code must retain the above copyright
++ *    notice, this list of conditions and the following disclaimer.
++ * 2. Redistributions in binary form must reproduce the above copyright
++ *    notice, this list of conditions and the following disclaimer in the
++ *    documentation and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ */
++
++/*
++ * Generic definitions for little- and big-endian systems.  Other endianesses
++ * has to be dealt with in the specific machine/endian.h file for that port.
++ *
++ * This file is meant to be included from a little- or big-endian port's
++ * machine/endian.h after setting BYTE_ORDER to either 1234 for little endian
++ * or 4321 for big..
++ */
++
++#ifndef _BYTESWAP_H_
++#define _BYTESWAP_H_
++
++#undef LITTLE_ENDIAN
++#define LITTLE_ENDIAN 1234
++#undef BIG_ENDIAN
++#define BIG_ENDIAN    4321
++#undef PDP_ENDIAN
++#define PDP_ENDIAN    3412
++
++#ifdef __GNUC__
++
++#define __swap16gen(x) __extension__({                                        
\
++      uint16 __swap16gen_x = (x);                                     \
++                                                                      \
++      (uint16)((__swap16gen_x & 0xff) << 8 |                  \
++          (__swap16gen_x & 0xff00) >> 8);                             \
++})
++
++#define __swap32gen(x) __extension__({                                        
\
++      uint32 __swap32gen_x = (x);                                     \
++                                                                      \
++      (uint32)((__swap32gen_x & 0xff) << 24 |                 \
++          (__swap32gen_x & 0xff00) << 8 |                             \
++          (__swap32gen_x & 0xff0000) >> 8 |                           \
++          (__swap32gen_x & 0xff000000) >> 24);                        \
++})
++
++#else /* __GNUC__ */
++
++/* Note that these macros evaluate their arguments several times.  */
++#define __swap16gen(x)                                                        
\
++    (uint16)(((uint16)(x) & 0xff) << 8 | ((uint16)(x) & 0xff00) >> 8)
++
++#define __swap32gen(x)                                                        
\
++    (uint32)(((uint32)(x) & 0xff) << 24 |                             \
++    ((uint32)(x) & 0xff00) << 8 | ((uint32)(x) & 0xff0000) >> 8 |     \
++    ((uint32)(x) & 0xff000000) >> 24)
++
++#endif /* __GNUC__ */
++
++/*
++ * Define MD_SWAP if you provide swap{16,32}md functions/macros that are
++ * optimized for your architecture,  These will be used for swap{16,32}
++ * unless the argument is a constant and we are using GCC, where we can
++ * take advantage of the CSE phase much better by using the generic version.
++ */
++#ifdef MD_SWAP
++#if __GNUC__
++
++#define swap16(x) __extension__({                                     \
++      uint16 __swap16_x = (x);                                        \
++                                                                      \
++      __builtin_constant_p(x) ? __swap16gen(__swap16_x) :             \
++          __swap16md(__swap16_x);                                     \
++})
++
++#define swap32(x) __extension__({                                     \
++      uint32 __swap32_x = (x);                                        \
++                                                                      \
++      __builtin_constant_p(x) ? __swap32gen(__swap32_x) :             \
++          __swap32md(__swap32_x);                                     \
++})
++
++#endif /* __GNUC__  */
++
++#else /* MD_SWAP */
++#define swap16 __swap16gen
++#define swap32 __swap32gen
++#endif /* MD_SWAP */
++
++#define swap16_multi(v, n) do {                                               
\
++      size_t __swap16_multi_n = (n);                                  \
++      uint16 *__swap16_multi_v = (v);                         \
++                                                                      \
++      while (__swap16_multi_n) {                                      \
++              *__swap16_multi_v = swap16(*__swap16_multi_v);          \
++              __swap16_multi_v++;                                     \
++              __swap16_multi_n--;                                     \
++      }                                                               \
++} while (0)
++
++uint32        htobe32(uint32);
++uint16        htobe16(uint16);
++uint32        betoh32(uint32);
++uint16        betoh16(uint16);
++
++uint32        htole32(uint32);
++uint16        htole16(uint16);
++uint32        letoh32(uint32);
++uint16        letoh16(uint16);
++
++#if BYTE_ORDER == LITTLE_ENDIAN
++
++inline float byteswap(float in) {
++      return in;
++}
++
++/* Can be overridden by machine/endian.h before inclusion of this file.  */
++#ifndef _QUAD_HIGHWORD
++#define _QUAD_HIGHWORD 1
++#endif
++#ifndef _QUAD_LOWWORD
++#define _QUAD_LOWWORD 0
++#endif
++
++#define htobe16 swap16
++#define htobe32 swap32
++#define betoh16 swap16
++#define betoh32 swap32
++
++#define htole16(x) (x)
++#define htole32(x) (x)
++#define letoh16(x) (x)
++#define letoh32(x) (x)
++
++#endif /* BYTE_ORDER */
++
++#if BYTE_ORDER == BIG_ENDIAN
++
++inline float byteswap(float in) {
++      float retVal;
++      char* p = (char*)&retVal;
++      char* i = (char*)&in;
++      p[0] = i[3];
++      p[1] = i[2];
++      p[2] = i[1];
++      p[3] = i[0];
++
++      return retVal;
++}
++
++/* Can be overridden by machine/endian.h before inclusion of this file.  */
++#ifndef _QUAD_HIGHWORD
++#define _QUAD_HIGHWORD 0
++#endif
++#ifndef _QUAD_LOWWORD
++#define _QUAD_LOWWORD 1
++#endif
++
++#define htole16 swap16
++#define htole32 swap32
++#define letoh16 swap16
++#define letoh32 swap32
++
++#define htobe16(x) (x)
++#define htobe32(x) (x)
++#define betoh16(x) (x)
++#define betoh32(x) (x)
++
++#endif /* BYTE_ORDER */
++
++#define htons htobe16
++#define htonl htobe32
++#define ntohs betoh16
++#define ntohl betoh32
++
++#define       NTOHL(x) (x) = ntohl((uint32)(x))
++#define       NTOHS(x) (x) = ntohs((uint16)(x))
++#define       HTONL(x) (x) = htonl((uint32)(x))
++#define       HTONS(x) (x) = htons((uint16)(x))
++
++#endif /* _SYS_ENDIAN_H_ */
+diff -Nru glest.orig/source/shared_lib/sources/graphics/model.cpp 
glest/source/shared_lib/sources/graphics/model.cpp
+--- glest.orig/source/shared_lib/sources/graphics/model.cpp    2007-01-02 
12:23:43.000000000 +0100
++++ glest/source/shared_lib/sources/graphics/model.cpp 2007-01-02 
12:23:42.000000000 +0100
+@@ -19,6 +19,7 @@
+ #include "conversion.h"
+ #include "util.h"
+ #include "leak_dumper.h"
++#include "byteswap.h"
+ 
+ using namespace Shared::Platform;
+ 
+@@ -95,6 +96,12 @@
+       //read header
+       MeshHeaderV2 meshHeader;
+       fread(&meshHeader, sizeof(MeshHeaderV2), 1, f);
++      meshHeader.vertexFrameCount   = letoh32(meshHeader.vertexFrameCount);
++      meshHeader.normalFrameCount   = letoh32(meshHeader.normalFrameCount);
++      meshHeader.texCoordFrameCount = letoh32(meshHeader.texCoordFrameCount);
++      meshHeader.colorFrameCount    = letoh32(meshHeader.colorFrameCount);
++      meshHeader.pointCount         = letoh32(meshHeader.pointCount);
++      meshHeader.indexCount         = letoh32(meshHeader.indexCount);
+       
+ 
+       if(meshHeader.normalFrameCount!=meshHeader.vertexFrameCount){
+@@ -130,21 +137,53 @@
+ 
+       //read data
+       fread(vertices, sizeof(Vec3f)*frameCount*vertexCount, 1, f);
++      for (unsigned int i = 0; i < (frameCount*vertexCount); ++i) {
++              vertices[i].x = byteswap(vertices[i].x);
++              vertices[i].y = byteswap(vertices[i].y);
++              vertices[i].z = byteswap(vertices[i].z);
++      }
++
+       fread(normals, sizeof(Vec3f)*frameCount*vertexCount, 1, f);
+-      if(textures[mtDiffuse]!=NULL){
++      for (unsigned int i = 0; i < (frameCount*vertexCount); ++i) {
++              normals[i].x = byteswap(normals[i].x);
++              normals[i].y = byteswap(normals[i].y);
++              normals[i].z = byteswap(normals[i].z);
++      }
++
++      if (textures[mtDiffuse] != NULL) {
+               fread(texCoords, sizeof(Vec2f)*vertexCount, 1, f);
++              for (unsigned int i = 0; i < (vertexCount); ++i) {
++                      texCoords[i].x  = byteswap(texCoords[i].x);
++                      texCoords[i].y  = byteswap(texCoords[i].y);
++              }
+       }
++
+       fread(&diffuseColor, sizeof(Vec3f), 1, f);
++      diffuseColor.x = byteswap(diffuseColor.x);
++      diffuseColor.y = byteswap(diffuseColor.y);
++      diffuseColor.z = byteswap(diffuseColor.z);
++
+       fread(&opacity, sizeof(float32), 1, f);
++      opacity = byteswap(opacity);
++
+       fseek(f, sizeof(Vec4f)*(meshHeader.colorFrameCount-1), SEEK_CUR);
+       fread(indices, sizeof(uint32)*indexCount, 1, f);
++      for (unsigned int i = 0; i < indexCount; ++i) {
++              indices[i] = letoh32(indices[i]);
++      }
+ }
+ 
+ void Mesh::loadV3(const string &dir, FILE *f, TextureManager *textureManager){
+       //read header
+       MeshHeaderV3 meshHeader;
+       fread(&meshHeader, sizeof(MeshHeaderV3), 1, f);
+-      
++      meshHeader.vertexFrameCount   = letoh32(meshHeader.vertexFrameCount);
++      meshHeader.normalFrameCount   = letoh32(meshHeader.normalFrameCount);
++      meshHeader.texCoordFrameCount = letoh32(meshHeader.texCoordFrameCount);
++      meshHeader.colorFrameCount    = letoh32(meshHeader.colorFrameCount);
++      meshHeader.pointCount         = letoh32(meshHeader.pointCount);
++      meshHeader.indexCount         = letoh32(meshHeader.indexCount);
++      meshHeader.properties         = letoh32(meshHeader.properties);
+ 
+       if(meshHeader.normalFrameCount!=meshHeader.vertexFrameCount){
+               throw runtime_error("Old model: vertex frame count different 
from normal frame count");
+@@ -175,22 +214,60 @@
+ 
+       //read data
+       fread(vertices, sizeof(Vec3f)*frameCount*vertexCount, 1, f);
++      for (unsigned int i = 0; i < (frameCount*vertexCount); ++i) {
++              vertices[i].x = byteswap(vertices[i].x);
++              vertices[i].y = byteswap(vertices[i].y);
++              vertices[i].z = byteswap(vertices[i].z);
++      }
++
+       fread(normals, sizeof(Vec3f)*frameCount*vertexCount, 1, f);
++      for (unsigned int i = 0; i < (frameCount*vertexCount); ++i) {
++              normals[i].x = byteswap(normals[i].x);
++              normals[i].y = byteswap(normals[i].y);
++              normals[i].z = byteswap(normals[i].z);
++      }
++
+       if(textures[mtDiffuse]!=NULL){
+               for(int i=0; i<meshHeader.texCoordFrameCount; ++i){
+                       fread(texCoords, sizeof(Vec2f)*vertexCount, 1, f);
++                      for (unsigned int i = 0; i < (vertexCount); ++i) {
++                              texCoords[i].x  = byteswap(texCoords[i].x);
++                              texCoords[i].y  = byteswap(texCoords[i].y);
++                      }
+               }
+       }
+       fread(&diffuseColor, sizeof(Vec3f), 1, f);
++      diffuseColor.x = byteswap(diffuseColor.x);
++      diffuseColor.y = byteswap(diffuseColor.y);
++      diffuseColor.z = byteswap(diffuseColor.z);
++
+       fread(&opacity, sizeof(float32), 1, f);
++      opacity = byteswap(opacity);
++
+       fseek(f, sizeof(Vec4f)*(meshHeader.colorFrameCount-1), SEEK_CUR);
+       fread(indices, sizeof(uint32)*indexCount, 1, f);
++      for (unsigned int i = 0; i < indexCount; ++i) {
++              indices[i] = letoh32(indices[i]);
++      }
+ }
+ 
+ void Mesh::load(const string &dir, FILE *f, TextureManager *textureManager){
+       //read header
+       MeshHeader meshHeader;
+       fread(&meshHeader, sizeof(MeshHeader), 1, f);
++      meshHeader.frameCount = letoh32(meshHeader.frameCount);
++      meshHeader.vertexCount = letoh32(meshHeader.vertexCount);
++      meshHeader.indexCount = letoh32(meshHeader.indexCount);
++      meshHeader.diffuseColor[0] = byteswap(meshHeader.diffuseColor[0]);
++      meshHeader.diffuseColor[1] = byteswap(meshHeader.diffuseColor[1]);
++      meshHeader.diffuseColor[2] = byteswap(meshHeader.diffuseColor[2]);
++      meshHeader.specularColor[0] = byteswap(meshHeader.specularColor[0]);
++      meshHeader.specularColor[1] = byteswap(meshHeader.specularColor[1]);
++      meshHeader.specularColor[2] = byteswap(meshHeader.specularColor[2]);
++      meshHeader.specularPower = byteswap(meshHeader.specularPower);
++      meshHeader.opacity = byteswap(meshHeader.opacity);
++      meshHeader.properties = letoh32(meshHeader.properties);
++      meshHeader.textures = letoh32(meshHeader.textures);
+       
+       //init
+       frameCount= meshHeader.frameCount;
+@@ -233,11 +310,31 @@
+       
+       //read data
+       fread(vertices, sizeof(Vec3f)*frameCount*vertexCount, 1, f);
++      for (unsigned int i = 0; i < (frameCount*vertexCount); ++i) {
++              vertices[i].x = byteswap(vertices[i].x);
++              vertices[i].y = byteswap(vertices[i].y);
++              vertices[i].z = byteswap(vertices[i].z);
++      }
++
+       fread(normals, sizeof(Vec3f)*frameCount*vertexCount, 1, f);
++      for (unsigned int i = 0; i < (frameCount*vertexCount); ++i) {
++              normals[i].x = byteswap(normals[i].x);
++              normals[i].y = byteswap(normals[i].y);
++              normals[i].z = byteswap(normals[i].z);
++      }
++
+       if(meshHeader.textures!=0){
+               fread(texCoords, sizeof(Vec2f)*vertexCount, 1, f);
++              for (unsigned int i = 0; i < (vertexCount); ++i) {
++                      texCoords[i].x  = byteswap(texCoords[i].x);
++                      texCoords[i].y  = byteswap(texCoords[i].y);
++              }
+       }
++
+       fread(indices, sizeof(uint32)*indexCount, 1, f);
++      for (unsigned int i = 0; i < indexCount; ++i) {
++              indices[i] = letoh32(indices[i]);
++      }
+ 
+       //tangents
+       if(textures[mtNormal]!=NULL){
+@@ -401,7 +498,7 @@
+               //read header
+               ModelHeaderOld modelHeader;
+               fread(&modelHeader, sizeof(ModelHeader), 1, f);
+-              meshCount= modelHeader.meshCount;
++              meshCount= letoh16(modelHeader.meshCount);
+ 
+               if(modelHeader.id[0]!='G' || modelHeader.id[1]!='3' || 
modelHeader.id[2]!='D'){
+                       throw runtime_error("Model: "+path+": is not a valid 
G3D model");
+@@ -452,7 +549,7 @@
+                       //model header
+                       ModelHeader modelHeader;
+                       fread(&modelHeader, sizeof(ModelHeader), 1, f);
+-                      meshCount= modelHeader.meshCount;
++                      meshCount= letoh16(modelHeader.meshCount);
+                       if(modelHeader.type!=mtMorphMesh){
+                               throw runtime_error("Invalid model type");
+                       }
+@@ -468,6 +565,7 @@
+               else if(fileHeader.version==3){
+                       
+                       fread(&meshCount, sizeof(meshCount), 1, f);
++                      meshCount = letoh32(meshCount);
+                       meshes= new Mesh[meshCount];
+                       for(uint32 i=0; i<meshCount; ++i){
+                               meshes[i].loadV3(dir, f, textureManager);
+@@ -478,6 +576,7 @@
+               else if(fileHeader.version==2){
+                       
+                       fread(&meshCount, sizeof(meshCount), 1, f);
++                      meshCount = letoh32(meshCount);
+                       meshes= new Mesh[meshCount];
+                       for(uint32 i=0; i<meshCount; ++i){
+                               meshes[i].loadV2(dir, f, textureManager);
+diff -Nru glest.orig/source/shared_lib/sources/graphics/pixmap.cpp 
glest/source/shared_lib/sources/graphics/pixmap.cpp
+--- glest.orig/source/shared_lib/sources/graphics/pixmap.cpp   2007-01-02 
12:23:43.000000000 +0100
++++ glest/source/shared_lib/sources/graphics/pixmap.cpp        2007-01-02 
12:23:42.000000000 +0100
+@@ -18,6 +18,7 @@
+ #include "util.h"
+ #include "math_util.h"
+ #include "leak_dumper.h"
++#include "byteswap.h"
+ 
+ using namespace std;
+ 
+@@ -97,6 +98,13 @@
+       //read header
+       TargaFileHeader fileHeader;
+       fread(&fileHeader, sizeof(TargaFileHeader), 1, file);
++      fileHeader.colourMapOrigin = letoh16(fileHeader.colourMapOrigin);
++      fileHeader.colourMapLength = letoh16(fileHeader.colourMapLength);
++      fileHeader.xOrigin         = letoh16(fileHeader.xOrigin);
++      fileHeader.yOrigin         = letoh16(fileHeader.yOrigin);
++      fileHeader.width           = letoh16(fileHeader.width);
++      fileHeader.height          = letoh16(fileHeader.height);
++
+     
+       //check that we can load this tga file
+       if(fileHeader.idLength!=0){
+@@ -224,6 +232,8 @@
+       //read file header
+     BitmapFileHeader fileHeader;
+     fread(&fileHeader, sizeof(BitmapFileHeader), 1, file);
++      fileHeader.size       = letoh32(fileHeader.size);
++      fileHeader.offsetBits = letoh32(fileHeader.offsetBits);
+       if(fileHeader.type1!='B' || fileHeader.type2!='M'){ 
+               throw runtime_error(path +" is not a bitmap");
+       }
+@@ -231,6 +241,18 @@
+       //read info header
+       BitmapInfoHeader infoHeader;
+       fread(&infoHeader, sizeof(BitmapInfoHeader), 1, file);
++      infoHeader.size          = letoh32(infoHeader.size);
++      infoHeader.width         = letoh32(infoHeader.width);
++      infoHeader.height        = letoh32(infoHeader.height);
++      infoHeader.planes        = letoh16(infoHeader.planes);
++      infoHeader.bitCount      = letoh16(infoHeader.bitCount);
++      infoHeader.compression   = letoh32(infoHeader.compression);
++      infoHeader.sizeImage     = letoh32(infoHeader.sizeImage);
++      infoHeader.xPelsPerMeter = letoh32(infoHeader.xPelsPerMeter);
++      infoHeader.yPelsPerMeter = letoh32(infoHeader.yPelsPerMeter);
++      infoHeader.clrUsed       = letoh32(infoHeader.clrUsed);
++      infoHeader.clrImportant  = letoh32(infoHeader.clrImportant);
++
+       if(infoHeader.bitCount!=24){
+         throw runtime_error(path+" is not a 24 bit bitmap");
+       }
+diff -Nru glest.orig/source/shared_lib/sources/sound/sound_file_loader.cpp 
glest/source/shared_lib/sources/sound/sound_file_loader.cpp
+--- glest.orig/source/shared_lib/sources/sound/sound_file_loader.cpp   
2007-01-02 12:23:43.000000000 +0100
++++ glest/source/shared_lib/sources/sound/sound_file_loader.cpp        
2007-01-02 12:23:42.000000000 +0100
+@@ -16,6 +16,7 @@
+ 
+ #include "sound.h"
+ #include "leak_dumper.h"
++#include "byteswap.h"
+ 
+ using namespace Shared::Platform;
+ using namespace std;
+@@ -47,6 +48,7 @@
+ 
+     //RIFF chunk - Size 
+     f.read((char*) &size32, 4);
++    size32 = letoh32(size32);
+ 
+     //RIFF chunk - Data (WAVE string)
+     f.read(chunkId, 4);
+@@ -66,26 +68,33 @@
+ 
+     //first sub-chunk (header) - Size 
+     f.read((char*) &size32, 4);
++    size32 = letoh32(size32);
+ 
+     //first sub-chunk (header) - Data (encoding type) - Ignore
+     f.read((char*) &size16, 2);
++    size16 = letoh16(size16);
+ 
+     //first sub-chunk (header) - Data (nChannels)
+     f.read((char*) &size16, 2);
++    size16 = letoh16(size16);
+       soundInfo->setChannels(size16);
+ 
+     //first sub-chunk (header) - Data (nsamplesPerSecond)
+     f.read((char*) &size32, 4);
++    size32 = letoh32(size32);
+       soundInfo->setsamplesPerSecond(size32);
+ 
+     //first sub-chunk (header) - Data (nAvgBytesPerSec)  - Ignore
+     f.read((char*) &size32, 4);
++    size32 = letoh32(size32);
+ 
+     //first sub-chunk (header) - Data (blockAlign) - Ignore
+     f.read((char*) &size16, 2);
++    size16 = letoh16(size16);
+ 
+     //first sub-chunk (header) - Data (nsamplesPerSecond)
+     f.read((char*) &size16, 2);
++    size16 = letoh16(size16);
+       soundInfo->setBitsPerSample(size16);
+ 
+       if (soundInfo->getBitsPerSample() != 8 && 
soundInfo->getBitsPerSample()!=16){
+@@ -106,6 +115,7 @@
+ 
+         //second sub-chunk (samples) - Size
+         f.read((char*) &size32, 4);
++        size32 = letoh32(size32);
+               dataSize= size32;
+               soundInfo->setSize(dataSize);
+     }
+@@ -121,6 +131,11 @@
+ 
+ uint32 WavSoundFileLoader::read(int8 *samples, uint32 size){
+       f.read(reinterpret_cast<char*> (samples), size);
++      int32 *tmp = NULL;
++      tmp = (int32 *)samples;
++      for (unsigned int i = 0; i < size/4; ++i) {
++              tmp[i] = letoh32(tmp[i]);
++      }
+       return f.gcount();
+ }
+ 
+@@ -159,7 +174,7 @@
+ 
+       while(size>0){
+               int bytesRead= ov_read(vf, reinterpret_cast<char*> (samples), 
size,
+-                                                         0, 2, 1, &section);
++                                                         bigendianp, 2, 1, 
&section);
+               if(bytesRead==0){
+                       break;
+               }


_______________________________________________
Pkg-games-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/pkg-games-commits

Reply via email to