From 7063587706f1f2d440c501ed67323cf6bfb5c3a3 Mon Sep 17 00:00:00 2001 From: Simon Robertshaw Date: Tue, 5 Jun 2012 22:55:39 +0100 Subject: Fix bmap reading error caused by signed/unsigned comparison diff --git a/src/client/GameSave.cpp b/src/client/GameSave.cpp index d2b163e..ed742b0 100644 --- a/src/client/GameSave.cpp +++ b/src/client/GameSave.cpp @@ -47,8 +47,8 @@ void GameSave::setSize(int newWidth, int newHeight) this->height = (newHeight/CELL)*CELL; particles = new Particle[NPART]; - blockMap = new char*[height/CELL]; - blockMapPtr = new char[(height/CELL)*(width/CELL)]; + blockMap = new unsigned char*[height/CELL]; + blockMapPtr = new unsigned char[(height/CELL)*(width/CELL)]; fill(blockMapPtr, blockMapPtr+((height/CELL)*(width/CELL)), 0); for(int y = 0; y < height/CELL; y++) blockMap[y] = &blockMapPtr[y*(width/CELL)]; @@ -658,7 +658,6 @@ GameSave::ParseResult GameSave::readPSv(char * data, int dataLength) p++; continue; } - blockMap[y][x] = d[p]; if (blockMap[y][x]==1) blockMap[y][x]=WL_WALL; diff --git a/src/client/GameSave.h b/src/client/GameSave.h index ccf3690..0c50405 100644 --- a/src/client/GameSave.h +++ b/src/client/GameSave.h @@ -23,7 +23,7 @@ public: //int ** particleMap; int particlesCount; Particle * particles; - char ** blockMap; + unsigned char ** blockMap; float ** fanVelX; float ** fanVelY; @@ -63,7 +63,7 @@ public: private: float * fanVelXPtr; float * fanVelYPtr; - char * blockMapPtr; + unsigned char * blockMapPtr; ParseResult readOPS(char * data, int dataLength); ParseResult readPSv(char * data, int dataLength); -- cgit v0.9.2-21-gd62e