[Scummvm-cvs-logs] CVS: scummvm/common config-file.cpp,1.13,1.13.2.1 file.cpp,1.28,1.28.2.1 rect.h,1.2,1.2.2.1 savefile.h,1.3,1.3.2.1 scaler.cpp,1.11.2.1,1.11.2.2 scaler.h,1.7.2.1,1.7.2.2 scummsys.h,1.21,1.21.2.1 str.cpp,1.15,1.15.2.1 str.h,1.10,1.10.2.1 util.cpp,1.13,1.13.2.1 util.h,1.14,1.14.2.1
Max Horn
fingolfin at users.sourceforge.net
Mon May 26 05:52:05 CEST 2003
Update of /cvsroot/scummvm/scummvm/common
In directory sc8-pr-cvs1:/tmp/cvs-serv5628
Modified Files:
Tag: branch-0-4-0
config-file.cpp file.cpp rect.h savefile.h scaler.cpp scaler.h
scummsys.h str.cpp str.h util.cpp util.h
Log Message:
sync with trunk
Index: config-file.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/config-file.cpp,v
retrieving revision 1.13
retrieving revision 1.13.2.1
diff -u -d -r1.13 -r1.13.2.1
--- config-file.cpp 6 Mar 2003 21:45:15 -0000 1.13
+++ config-file.cpp 26 May 2003 12:51:54 -0000 1.13.2.1
@@ -30,20 +30,15 @@
#define MAXLINELEN 256
static char *ltrim(char *t) {
- for (; *t && (*t == ' '); t++);
+ while (*t == ' ')
+ t++;
return t;
}
static char *rtrim(char *t) {
- int l;
-
- for (l = strlen(t) - 1; l; l--) {
- if (t[l] == ' ') {
- *t = 0;
- } else {
- return t;
- }
- }
+ int l = strlen(t) - 1;
+ while (l >= 0 && t[l] == ' ')
+ t[l--] = 0;
return t;
}
Index: file.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/file.cpp,v
retrieving revision 1.28
retrieving revision 1.28.2.1
diff -u -d -r1.28 -r1.28.2.1
--- file.cpp 1 May 2003 12:36:36 -0000 1.28
+++ file.cpp 26 May 2003 12:51:54 -0000 1.28.2.1
@@ -71,16 +71,16 @@
ptr = buf + len;
do
- *ptr++ = toupper(*ptr);
- while (*ptr);
+ *ptr = toupper(*ptr);
+ while (*ptr++);
file = fopen(buf, mode);
if (file)
return file;
ptr = buf + len;
do
- *ptr++ = tolower(*ptr);
- while (*ptr);
+ *ptr = tolower(*ptr);
+ while (*ptr++);
file = fopen(buf, mode);
if (file)
return file;
@@ -273,6 +273,9 @@
return 0;
if (_encbyte != 0) {
+ // Maybe FIXME: while it's efficient to do the encoding here,
+ // it not really nice for a write function to modify its input.
+ // Maybe we should work on a copy here...
uint32 t_size = len;
do {
*ptr2++ ^= _encbyte;
Index: rect.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/rect.h,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -u -d -r1.2 -r1.2.2.1
--- rect.h 6 Mar 2003 21:45:25 -0000 1.2
+++ rect.h 26 May 2003 12:51:54 -0000 1.2.2.1
@@ -30,27 +30,16 @@
This small class is an helper for position and size values.
*/
-class Point {
- friend class Rect;
-private:
- int32 _x; //!< The horizontal part of the point
- int32 _y; //!< The vertical part of the point
-public:
- Point() : _x(0), _y(0) {};
- Point(const Point & p) : _x(p._x), _y(p._y) {};
- explicit Point(int32 x, int32 y) : _x(x), _y(y) {};
- Point & operator=(const Point & p) { _x = p._x; _y = p._y; return *this; };
- bool operator==(const Point & p) const { return _x == p._x && _y == p._y; };
- const int32 & getX() const { return _x; };
- const int32 & getY() const { return _y; };
- int32 & getX() { return _x; };
- int32 & getY() { return _y; };
- Point operator+(const Point & p) const { return Point(_x + p._x, _y+p._y); };
- Point operator-(const Point & p) const { return Point(_x - p._x, _y-p._y); };
- Point & operator+=(const Point & p) { _x += p._x; _y += p._y; return *this; };
- Point & operator-=(const Point & p) { _x -= p._x; _y -= p._y; return *this; };
- bool isOrigin() const { return _x == 0 && _y == 0; };
- void set(int32 x, int32 y) { _x = x; _y = y; }
+struct Point {
+ int16 x; //!< The horizontal part of the point
+ int16 y; //!< The vertical part of the point
+
+ Point() : x(0), y(0) {};
+ Point(const Point & p) : x(p.x), y(p.y) {};
+ explicit Point(int16 x1, int16 y1) : x(x1), y(y1) {};
+ Point & operator=(const Point & p) { x = p.x; y = p.y; return *this; };
+ bool operator==(const Point & p) const { return x == p.x && y == p.y; };
+ bool operator!=(const Point & p) const { return x != p.x || y != p.y; };
};
/*! @brief simple class for handling a rectangular zone.
@@ -58,45 +47,53 @@
This small class is an helper for rectangles.
It is mostly used by the blitter class.
*/
-class Rect {
-private:
- Point _topLeft; //!< The point at the top left of the rectangle
- Point _bottomRight; //!< The point at the bottom right of the rectangle
-public:
- Rect() : _topLeft(0, 0), _bottomRight(0,0) {}
- Rect(int32 x, int32 y) : _topLeft(0, 0), _bottomRight(x, y) {}
- Rect(int32 x1, int32 y1, int32 x2, int32 y2) : _topLeft(x1, y1), _bottomRight(x2, y2) {}
- Point size() const { return (_bottomRight - _topLeft); };
- int32 width() const { return size()._x; }
- int32 height() const { return size()._y; }
- int32 left() const { return _topLeft._x; }
- int32 right() const { return _bottomRight._x; }
- int32 top() const { return _topLeft._y; }
- int32 bottom() const { return _bottomRight._y; }
- const Point & topLeft() const { return _topLeft; }
- const Point & bottomRight() const { return _bottomRight; }
+struct Rect {
+ int16 top, left; //!< The point at the top left of the rectangle (part of the rect).
+ int16 bottom, right; //!< The point at the bottom right of the rectangle (not part of the rect).
- /*! @brief check if given position is inside the rectangle
+ Rect() : top(0), left(0), bottom(0), right(0) {}
+ Rect(int16 x, int16 y) : top(0), left(0), bottom(x), right(y) {}
+ Rect(int16 x1, int16 y1, int16 x2, int16 y2) : top(y1), left(x1), bottom(y2), right(x2) {}
+ int16 width() const { return right - left; }
+ int16 height() const { return bottom - top; }
+
+ /*! @brief check if given position is inside this rectangle
@param x the horizontal position to check
@param y the vertical position to check
- @return true if the given position is inside the rectangle, false otherwise
+ @return true if the given position is inside this rectangle, false otherwise
*/
- bool isInside(int32 x, int32 y) const {
- return (_topLeft._x <= x) && (_bottomRight._x > x) && (_topLeft._y <= y) && (_bottomRight._y > y);
+ bool contains(int16 x, int16 y) const {
+ return (left <= x) && (x < right) && (top <= y) && (y < bottom);
}
- /*! @brief check if given point is inside the rectangle
+
+ /*! @brief check if given point is inside this rectangle
@param p the point to check
- @return true if the given point is inside the rectangle, false otherwise
+ @return true if the given point is inside this rectangle, false otherwise
*/
- bool isInside(const Point & p) const {
- return (_topLeft._x <= p._x) && (_bottomRight._x > p._x) && (_topLeft._y <= p._y) && (_bottomRight._y > p._y);
+ bool contains(const Point & p) const {
+ return (left <= p.x) && (p.x < right) && (top <= p.y) && (p.y < bottom);
}
- bool clip(Rect & r) const;
+ /*! @brief check if given rectangle is inside this rectangle
+
+ @param p the point to check
+
+ @return true if the given rectangle is inside the rectangle, false otherwise
+ */
+ bool contains(const Rect & r) const {
+ return (left <= r.right) && (r.left < right) && (top <= r.bottom) && (r.top < bottom);
+ }
+
+ void grow(int16 offset) {
+ top -= offset;
+ left -= offset;
+ bottom += offset;
+ right += offset;
+ }
};
}; // End of namespace ScummVM
Index: savefile.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/savefile.h,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -u -d -r1.3 -r1.3.2.1
--- savefile.h 30 Apr 2003 12:43:55 -0000 1.3
+++ savefile.h 26 May 2003 12:51:54 -0000 1.3.2.1
@@ -73,22 +73,18 @@
public:
virtual ~SaveFileManager() {}
- virtual SaveFile *open_savefile(const char *filename,
- bool saveOrLoad)
- {
+ virtual SaveFile *open_savefile(const char *filename, bool saveOrLoad) {
StdioSaveFile *sf = new StdioSaveFile(filename,
(saveOrLoad? "wb":"rb"));
- if(!sf->is_open()) {
+ if (!sf->is_open()) {
delete sf;
sf = NULL;
}
return sf;
}
- virtual void list_savefiles(const char *prefix,
- bool *marks, int num)
- {
- memset(marks, true, num*sizeof(bool));
+ virtual void list_savefiles(const char * /* prefix */, bool *marks, int num) {
+ memset(marks, true, num * sizeof(bool));
}
};
Index: scaler.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/scaler.cpp,v
retrieving revision 1.11.2.1
retrieving revision 1.11.2.2
diff -u -d -r1.11.2.1 -r1.11.2.2
--- scaler.cpp 25 May 2003 12:12:32 -0000 1.11.2.1
+++ scaler.cpp 26 May 2003 12:51:54 -0000 1.11.2.2
@@ -70,64 +70,23 @@
return 1;
}
-static inline int GetResult1(uint32 A, uint32 B, uint32 C, uint32 D, uint32 /* E */ ) {
- int x = 0;
- int y = 0;
- int r = 0;
-
- if (A == C)
- x += 1;
- else if (B == C)
- y += 1;
- if (A == D)
- x += 1;
- else if (B == D)
- y += 1;
- if (x <= 1)
- r += 1;
- if (y <= 1)
- r -= 1;
- return r;
-}
-
-static inline int GetResult2(uint32 A, uint32 B, uint32 C, uint32 D, uint32 /* E */ ) {
- int x = 0;
- int y = 0;
- int r = 0;
-
- if (A == C)
- x += 1;
- else if (B == C)
- y += 1;
- if (A == D)
- x += 1;
- else if (B == D)
- y += 1;
- if (x <= 1)
- r -= 1;
- if (y <= 1)
- r += 1;
- return r;
-}
-
-static inline int GetResult(uint32 A, uint32 B, uint32 C, uint32 D) {
- int x = 0;
- int y = 0;
- int r = 0;
-
- if (A == C)
- x += 1;
- else if (B == C)
- y += 1;
- if (A == D)
- x += 1;
- else if (B == D)
- y += 1;
- if (x <= 1)
- r += 1;
- if (y <= 1)
- r -= 1;
- return r;
+static inline int GetResult(uint32 A, uint32 B, uint32 C, uint32 D) {
+ const bool ac = (A==C);
+ const bool bc = (B==C);
+ const int x1 = ac;
+ const int y1 = (bc & !ac);
+ const bool ad = (A==D);
+ const bool bd = (B==D);
+ const int x2 = ad;
+ const int y2 = (bd & !ad);
+ const int x = x1+x2;
+ const int y = y1+y2;
+ static const int rmap[3][3] = {
+ {0, 0, -1},
+ {0, 0, -1},
+ {1, 1, 0}
+ };
+ return rmap[y][x];
}
static inline uint32 INTERPOLATE(uint32 A, uint32 B) {
@@ -147,570 +106,375 @@
return x + y;
}
-#define BLUE_MASK565 0x001F001F
-#define RED_MASK565 0xF800F800
-#define GREEN_MASK565 0x07E007E0
-
-#define BLUE_MASK555 0x001F001F
-#define RED_MASK555 0x7C007C00
-#define GREEN_MASK555 0x03E003E0
-
void Super2xSaI(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) {
const uint16 *bP;
uint8 *dP;
- uint32 inc_bP;
-
- {
- uint32 Nextline = srcPitch >> 1;
- inc_bP = 1;
+ const uint32 inc_bP = 1;
+ const uint32 Nextline = srcPitch >> 1;
- while (height--) {
- bP = (const uint16 *)srcPtr;
- dP = (uint8 *)dstPtr;
+ while (height--) {
+ bP = (const uint16 *)srcPtr;
+ dP = (uint8 *)dstPtr;
- for (uint32 finish = width; finish; finish -= inc_bP) {
- uint32 color4, color5, color6;
- uint32 color1, color2, color3;
- uint32 colorA0, colorA1, colorA2, colorA3, colorB0, colorB1, colorB2, colorB3, colorS1, colorS2;
- uint32 product1a, product1b, product2a, product2b;
+ for (uint32 finish = width; finish; finish -= inc_bP) {
+ uint32 color4, color5, color6;
+ uint32 color1, color2, color3;
+ uint32 colorA0, colorA1, colorA2, colorA3;
+ uint32 colorB0, colorB1, colorB2, colorB3;
+ uint32 colorS1, colorS2;
+ uint32 product1a, product1b, product2a, product2b;
//--------------------------------------- B1 B2
// 4 5 6 S2
// 1 2 3 S1
// A1 A2
- colorB0 = *(bP - Nextline - 1);
- colorB1 = *(bP - Nextline);
- colorB2 = *(bP - Nextline + 1);
- colorB3 = *(bP - Nextline + 2);
+ colorB0 = *(bP - Nextline - 1);
+ colorB1 = *(bP - Nextline);
+ colorB2 = *(bP - Nextline + 1);
+ colorB3 = *(bP - Nextline + 2);
- color4 = *(bP - 1);
- color5 = *(bP);
- color6 = *(bP + 1);
- colorS2 = *(bP + 2);
+ color4 = *(bP - 1);
+ color5 = *(bP);
+ color6 = *(bP + 1);
+ colorS2 = *(bP + 2);
- color1 = *(bP + Nextline - 1);
- color2 = *(bP + Nextline);
- color3 = *(bP + Nextline + 1);
- colorS1 = *(bP + Nextline + 2);
+ color1 = *(bP + Nextline - 1);
+ color2 = *(bP + Nextline);
+ color3 = *(bP + Nextline + 1);
+ colorS1 = *(bP + Nextline + 2);
- colorA0 = *(bP + Nextline + Nextline - 1);
- colorA1 = *(bP + Nextline + Nextline);
- colorA2 = *(bP + Nextline + Nextline + 1);
- colorA3 = *(bP + Nextline + Nextline + 2);
+ colorA0 = *(bP + Nextline + Nextline - 1);
+ colorA1 = *(bP + Nextline + Nextline);
+ colorA2 = *(bP + Nextline + Nextline + 1);
+ colorA3 = *(bP + Nextline + Nextline + 2);
//--------------------------------------
- if (color2 == color6 && color5 != color3) {
- product2b = product1b = color2;
- } else if (color5 == color3 && color2 != color6) {
- product2b = product1b = color5;
- } else if (color5 == color3 && color2 == color6) {
- register int r = 0;
-
- r += GetResult(color6, color5, color1, colorA1);
- r += GetResult(color6, color5, color4, colorB1);
- r += GetResult(color6, color5, colorA2, colorS1);
- r += GetResult(color6, color5, colorB2, colorS2);
+ if (color2 == color6 && color5 != color3) {
+ product2b = product1b = color2;
+ } else if (color5 == color3 && color2 != color6) {
+ product2b = product1b = color5;
+ } else if (color5 == color3 && color2 == color6) {
+ register int r = 0;
- if (r > 0)
- product2b = product1b = color6;
- else if (r < 0)
- product2b = product1b = color5;
- else {
- product2b = product1b = INTERPOLATE(color5, color6);
- }
- } else {
- if (color6 == color3 && color3 == colorA1 && color2 != colorA2 && color3 != colorA0)
- product2b = Q_INTERPOLATE(color3, color3, color3, color2);
- else if (color5 == color2 && color2 == colorA2 && colorA1 != color3 && color2 != colorA3)
- product2b = Q_INTERPOLATE(color2, color2, color2, color3);
- else
- product2b = INTERPOLATE(color2, color3);
+ r += GetResult(color6, color5, color1, colorA1);
+ r += GetResult(color6, color5, color4, colorB1);
+ r += GetResult(color6, color5, colorA2, colorS1);
+ r += GetResult(color6, color5, colorB2, colorS2);
- if (color6 == color3 && color6 == colorB1 && color5 != colorB2 && color6 != colorB0)
- product1b = Q_INTERPOLATE(color6, color6, color6, color5);
- else if (color5 == color2 && color5 == colorB2 && colorB1 != color6 && color5 != colorB3)
- product1b = Q_INTERPOLATE(color6, color5, color5, color5);
- else
- product1b = INTERPOLATE(color5, color6);
+ if (r > 0)
+ product2b = product1b = color6;
+ else if (r < 0)
+ product2b = product1b = color5;
+ else {
+ product2b = product1b = INTERPOLATE(color5, color6);
}
-
- if (color5 == color3 && color2 != color6 && color4 == color5 && color5 != colorA2)
- product2a = INTERPOLATE(color2, color5);
- else if (color5 == color1 && color6 == color5 && color4 != color2 && color5 != colorA0)
- product2a = INTERPOLATE(color2, color5);
+ } else {
+ if (color6 == color3 && color3 == colorA1 && color2 != colorA2 && color3 != colorA0)
+ product2b = Q_INTERPOLATE(color3, color3, color3, color2);
+ else if (color5 == color2 && color2 == colorA2 && colorA1 != color3 && color2 != colorA3)
+ product2b = Q_INTERPOLATE(color2, color2, color2, color3);
else
- product2a = color2;
+ product2b = INTERPOLATE(color2, color3);
- if (color2 == color6 && color5 != color3 && color1 == color2 && color2 != colorB2)
- product1a = INTERPOLATE(color2, color5);
- else if (color4 == color2 && color3 == color2 && color1 != color5 && color2 != colorB0)
- product1a = INTERPOLATE(color2, color5);
+ if (color6 == color3 && color6 == colorB1 && color5 != colorB2 && color6 != colorB0)
+ product1b = Q_INTERPOLATE(color6, color6, color6, color5);
+ else if (color5 == color2 && color5 == colorB2 && colorB1 != color6 && color5 != colorB3)
+ product1b = Q_INTERPOLATE(color6, color5, color5, color5);
else
- product1a = color5;
+ product1b = INTERPOLATE(color5, color6);
+ }
+
+ if (color5 == color3 && color2 != color6 && color4 == color5 && color5 != colorA2)
+ product2a = INTERPOLATE(color2, color5);
+ else if (color5 == color1 && color6 == color5 && color4 != color2 && color5 != colorA0)
+ product2a = INTERPOLATE(color2, color5);
+ else
+ product2a = color2;
+
+ if (color2 == color6 && color5 != color3 && color1 == color2 && color2 != colorB2)
+ product1a = INTERPOLATE(color2, color5);
+ else if (color4 == color2 && color3 == color2 && color1 != color5 && color2 != colorB0)
+ product1a = INTERPOLATE(color2, color5);
+ else
+ product1a = color5;
#ifdef SCUMM_LITTLE_ENDIAN
- product1a = product1a | (product1b << 16);
- product2a = product2a | (product2b << 16);
+ product1a = product1a | (product1b << 16);
+ product2a = product2a | (product2b << 16);
#endif
#ifdef SCUMM_BIG_ENDIAN
- product1a = product1b | (product1a << 16);
- product2a = product2b | (product2a << 16);
+ product1a = product1b | (product1a << 16);
+ product2a = product2b | (product2a << 16);
#endif
- *((uint32 *)dP) = product1a;
- *((uint32 *)(dP + dstPitch)) = product2a;
+ *((uint32 *)dP) = product1a;
+ *((uint32 *)(dP + dstPitch)) = product2a;
- bP += inc_bP;
- dP += sizeof(uint32);
- } // end of for ( finish= width etc..)
+ bP += inc_bP;
+ dP += sizeof(uint32);
+ } // end of for ( finish= width etc..)
- srcPtr += srcPitch;
- dstPtr += dstPitch * 2;
- } // while (height--)
- }
+ srcPtr += srcPitch;
+ dstPtr += dstPitch * 2;
+ } // while (height--)
}
void SuperEagle(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) {
uint8 *dP;
const uint16 *bP;
- uint32 inc_bP;
-
- {
- inc_bP = 1;
-
- uint32 Nextline = srcPitch >> 1;
+ const uint32 inc_bP = 1;
+ const uint32 Nextline = srcPitch >> 1;
- while (height--) {
- bP = (const uint16 *)srcPtr;
- dP = dstPtr;
- for (uint32 finish = width; finish; finish -= inc_bP) {
- uint32 color4, color5, color6;
- uint32 color1, color2, color3;
- uint32 colorA1, colorA2, colorB1, colorB2, colorS1, colorS2;
- uint32 product1a, product1b, product2a, product2b;
+ while (height--) {
+ bP = (const uint16 *)srcPtr;
+ dP = dstPtr;
+ for (uint32 finish = width; finish; finish -= inc_bP) {
+ uint32 color4, color5, color6;
+ uint32 color1, color2, color3;
+ uint32 colorA1, colorA2, colorB1, colorB2, colorS1, colorS2;
+ uint32 product1a, product1b, product2a, product2b;
- colorB1 = *(bP - Nextline);
- colorB2 = *(bP - Nextline + 1);
+ colorB1 = *(bP - Nextline);
+ colorB2 = *(bP - Nextline + 1);
- color4 = *(bP - 1);
- color5 = *(bP);
- color6 = *(bP + 1);
- colorS2 = *(bP + 2);
+ color4 = *(bP - 1);
+ color5 = *(bP);
+ color6 = *(bP + 1);
+ colorS2 = *(bP + 2);
- color1 = *(bP + Nextline - 1);
- color2 = *(bP + Nextline);
- color3 = *(bP + Nextline + 1);
- colorS1 = *(bP + Nextline + 2);
+ color1 = *(bP + Nextline - 1);
+ color2 = *(bP + Nextline);
+ color3 = *(bP + Nextline + 1);
+ colorS1 = *(bP + Nextline + 2);
- colorA1 = *(bP + Nextline + Nextline);
- colorA2 = *(bP + Nextline + Nextline + 1);
+ colorA1 = *(bP + Nextline + Nextline);
+ colorA2 = *(bP + Nextline + Nextline + 1);
- // --------------------------------------
- if (color2 == color6 && color5 != color3) {
- product1b = product2a = color2;
- if ((color1 == color2) || (color6 == colorB2)) {
- product1a = INTERPOLATE(color2, color5);
- product1a = INTERPOLATE(color2, product1a);
- } else {
- product1a = INTERPOLATE(color5, color6);
- }
+ // --------------------------------------
+ if (color2 == color6 && color5 != color3) {
+ product1b = product2a = color2;
+ if ((color1 == color2) || (color6 == colorB2)) {
+ product1a = INTERPOLATE(color2, color5);
+ product1a = INTERPOLATE(color2, product1a);
+ } else {
+ product1a = INTERPOLATE(color5, color6);
+ }
- if ((color6 == colorS2) || (color2 == colorA1)) {
- product2b = INTERPOLATE(color2, color3);
- product2b = INTERPOLATE(color2, product2b);
- } else {
- product2b = INTERPOLATE(color2, color3);
- }
- } else if (color5 == color3 && color2 != color6) {
- product2b = product1a = color5;
+ if ((color6 == colorS2) || (color2 == colorA1)) {
+ product2b = INTERPOLATE(color2, color3);
+ product2b = INTERPOLATE(color2, product2b);
+ } else {
+ product2b = INTERPOLATE(color2, color3);
+ }
+ } else if (color5 == color3 && color2 != color6) {
+ product2b = product1a = color5;
- if ((colorB1 == color5) || (color3 == colorS1)) {
- product1b = INTERPOLATE(color5, color6);
- product1b = INTERPOLATE(color5, product1b);
- } else {
- product1b = INTERPOLATE(color5, color6);
- }
+ if ((colorB1 == color5) || (color3 == colorS1)) {
+ product1b = INTERPOLATE(color5, color6);
+ product1b = INTERPOLATE(color5, product1b);
+ } else {
+ product1b = INTERPOLATE(color5, color6);
+ }
- if ((color3 == colorA2) || (color4 == color5)) {
- product2a = INTERPOLATE(color5, color2);
- product2a = INTERPOLATE(color5, product2a);
- } else {
- product2a = INTERPOLATE(color2, color3);
- }
+ if ((color3 == colorA2) || (color4 == color5)) {
+ product2a = INTERPOLATE(color5, color2);
+ product2a = INTERPOLATE(color5, product2a);
+ } else {
+ product2a = INTERPOLATE(color2, color3);
+ }
- } else if (color5 == color3 && color2 == color6) {
- register int r = 0;
+ } else if (color5 == color3 && color2 == color6) {
+ register int r = 0;
- r += GetResult(color6, color5, color1, colorA1);
- r += GetResult(color6, color5, color4, colorB1);
- r += GetResult(color6, color5, colorA2, colorS1);
- r += GetResult(color6, color5, colorB2, colorS2);
+ r += GetResult(color6, color5, color1, colorA1);
+ r += GetResult(color6, color5, color4, colorB1);
+ r += GetResult(color6, color5, colorA2, colorS1);
+ r += GetResult(color6, color5, colorB2, colorS2);
- if (r > 0) {
- product1b = product2a = color2;
- product1a = product2b = INTERPOLATE(color5, color6);
- } else if (r < 0) {
- product2b = product1a = color5;
- product1b = product2a = INTERPOLATE(color5, color6);
- } else {
- product2b = product1a = color5;
- product1b = product2a = color2;
- }
+ if (r > 0) {
+ product1b = product2a = color2;
+ product1a = product2b = INTERPOLATE(color5, color6);
+ } else if (r < 0) {
+ product2b = product1a = color5;
+ product1b = product2a = INTERPOLATE(color5, color6);
} else {
- product2b = product1a = INTERPOLATE(color2, color6);
- product2b = Q_INTERPOLATE(color3, color3, color3, product2b);
- product1a = Q_INTERPOLATE(color5, color5, color5, product1a);
-
- product2a = product1b = INTERPOLATE(color5, color3);
- product2a = Q_INTERPOLATE(color2, color2, color2, product2a);
- product1b = Q_INTERPOLATE(color6, color6, color6, product1b);
+ product2b = product1a = color5;
+ product1b = product2a = color2;
}
+ } else {
+ product2b = product1a = INTERPOLATE(color2, color6);
+ product2b = Q_INTERPOLATE(color3, color3, color3, product2b);
+ product1a = Q_INTERPOLATE(color5, color5, color5, product1a);
+
+ product2a = product1b = INTERPOLATE(color5, color3);
+ product2a = Q_INTERPOLATE(color2, color2, color2, product2a);
+ product1b = Q_INTERPOLATE(color6, color6, color6, product1b);
+ }
#ifdef SCUMM_LITTLE_ENDIAN
- product1a = product1a | (product1b << 16);
- product2a = product2a | (product2b << 16);
+ product1a = product1a | (product1b << 16);
+ product2a = product2a | (product2b << 16);
#endif
#ifdef SCUMM_BIG_ENDIAN
- product1a = product1b | (product1a << 16);
- product2a = product2b | (product2a << 16);
+ product1a = product1b | (product1a << 16);
+ product2a = product2b | (product2a << 16);
#endif
- *((uint32 *)dP) = product1a;
- *((uint32 *)(dP + dstPitch)) = product2a;
+ *((uint32 *)dP) = product1a;
+ *((uint32 *)(dP + dstPitch)) = product2a;
- bP += inc_bP;
- dP += sizeof(uint32);
- } // end of for ( finish= width etc..)
+ bP += inc_bP;
+ dP += sizeof(uint32);
+ } // end of for ( finish= width etc..)
- srcPtr += srcPitch;
- dstPtr += dstPitch * 2;
- } // endof: while (height--)
- }
+ srcPtr += srcPitch;
+ dstPtr += dstPitch * 2;
+ } // endof: while (height--)
}
void _2xSaI(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch, int width, int height) {
uint8 *dP;
const uint16 *bP;
- uint32 inc_bP;
-
- {
- inc_bP = 1;
-
- uint32 Nextline = srcPitch >> 1;
+ const uint32 inc_bP = 1;
+ const uint32 Nextline = srcPitch >> 1;
- while (height--) {
- bP = (const uint16 *)srcPtr;
- dP = dstPtr;
+ while (height--) {
+ bP = (const uint16 *)srcPtr;
+ dP = dstPtr;
- for (uint32 finish = width; finish; finish -= inc_bP) {
+ for (uint32 finish = width; finish; finish -= inc_bP) {
- register uint32 colorA, colorB;
- uint32 colorC, colorD,
- colorE, colorF, colorG, colorH, colorI, colorJ, colorK, colorL, colorM, colorN, colorO, colorP;
- uint32 product, product1, product2;
+ register uint32 colorA, colorB;
+ uint32 colorC, colorD,
+ colorE, colorF, colorG, colorH, colorI, colorJ, colorK, colorL, colorM, colorN, colorO, colorP;
+ uint32 product, product1, product2;
//---------------------------------------
// Map of the pixels: I|E F|J
// G|A B|K
// H|C D|L
// M|N O|P
- colorI = *(bP - Nextline - 1);
- colorE = *(bP - Nextline);
- colorF = *(bP - Nextline + 1);
- colorJ = *(bP - Nextline + 2);
+ colorI = *(bP - Nextline - 1);
+ colorE = *(bP - Nextline);
+ colorF = *(bP - Nextline + 1);
+ colorJ = *(bP - Nextline + 2);
- colorG = *(bP - 1);
- colorA = *(bP);
- colorB = *(bP + 1);
- colorK = *(bP + 2);
+ colorG = *(bP - 1);
+ colorA = *(bP);
+ colorB = *(bP + 1);
+ colorK = *(bP + 2);
- colorH = *(bP + Nextline - 1);
- colorC = *(bP + Nextline);
- colorD = *(bP + Nextline + 1);
- colorL = *(bP + Nextline + 2);
+ colorH = *(bP + Nextline - 1);
+ colorC = *(bP + Nextline);
+ colorD = *(bP + Nextline + 1);
+ colorL = *(bP + Nextline + 2);
- colorM = *(bP + Nextline + Nextline - 1);
- colorN = *(bP + Nextline + Nextline);
- colorO = *(bP + Nextline + Nextline + 1);
- colorP = *(bP + Nextline + Nextline + 2);
+ colorM = *(bP + Nextline + Nextline - 1);
+ colorN = *(bP + Nextline + Nextline);
+ colorO = *(bP + Nextline + Nextline + 1);
+ colorP = *(bP + Nextline + Nextline + 2);
- if ((colorA == colorD) && (colorB != colorC)) {
- if (((colorA == colorE) && (colorB == colorL)) || ((colorA == colorC) && (colorA == colorF)
- && (colorB != colorE)
- && (colorB == colorJ))) {
- product = colorA;
- } else {
- product = INTERPOLATE(colorA, colorB);
- }
+ if ((colorA == colorD) && (colorB != colorC)) {
+ if (((colorA == colorE) && (colorB == colorL)) || ((colorA == colorC) && (colorA == colorF)
+ && (colorB != colorE)
+ && (colorB == colorJ))) {
+ product = colorA;
+ } else {
+ product = INTERPOLATE(colorA, colorB);
+ }
- if (((colorA == colorG) && (colorC == colorO)) || ((colorA == colorB) && (colorA == colorH)
- && (colorG != colorC)
- && (colorC == colorM))) {
- product1 = colorA;
- } else {
- product1 = INTERPOLATE(colorA, colorC);
- }
- product2 = colorA;
- } else if ((colorB == colorC) && (colorA != colorD)) {
- if (((colorB == colorF) && (colorA == colorH)) || ((colorB == colorE) && (colorB == colorD)
- && (colorA != colorF)
- && (colorA == colorI))) {
- product = colorB;
- } else {
- product = INTERPOLATE(colorA, colorB);
- }
+ if (((colorA == colorG) && (colorC == colorO)) || ((colorA == colorB) && (colorA == colorH)
+ && (colorG != colorC)
+ && (colorC == colorM))) {
+ product1 = colorA;
+ } else {
+ product1 = INTERPOLATE(colorA, colorC);
+ }
+ product2 = colorA;
+ } else if ((colorB == colorC) && (colorA != colorD)) {
+ if (((colorB == colorF) && (colorA == colorH)) || ((colorB == colorE) && (colorB == colorD)
+ && (colorA != colorF)
+ && (colorA == colorI))) {
+ product = colorB;
+ } else {
+ product = INTERPOLATE(colorA, colorB);
+ }
- if (((colorC == colorH) && (colorA == colorF)) || ((colorC == colorG) && (colorC == colorD)
- && (colorA != colorH)
- && (colorA == colorI))) {
- product1 = colorC;
- } else {
- product1 = INTERPOLATE(colorA, colorC);
- }
- product2 = colorB;
- } else if ((colorA == colorD) && (colorB == colorC)) {
- if (colorA == colorB) {
- product = colorA;
- product1 = colorA;
- product2 = colorA;
- } else {
- register int r = 0;
+ if (((colorC == colorH) && (colorA == colorF)) || ((colorC == colorG) && (colorC == colorD)
+ && (colorA != colorH)
+ && (colorA == colorI))) {
+ product1 = colorC;
+ } else {
+ product1 = INTERPOLATE(colorA, colorC);
+ }
+ product2 = colorB;
+ } else if ((colorA == colorD) && (colorB == colorC)) {
+ if (colorA == colorB) {
+ product = colorA;
+ product1 = colorA;
+ product2 = colorA;
+ } else {
+ register int r = 0;
- product1 = INTERPOLATE(colorA, colorC);
- product = INTERPOLATE(colorA, colorB);
+ product1 = INTERPOLATE(colorA, colorC);
+ product = INTERPOLATE(colorA, colorB);
- r += GetResult1(colorA, colorB, colorG, colorE, colorI);
- r += GetResult2(colorB, colorA, colorK, colorF, colorJ);
- r += GetResult2(colorB, colorA, colorH, colorN, colorM);
- r += GetResult1(colorA, colorB, colorL, colorO, colorP);
+ r += GetResult(colorA, colorB, colorG, colorE);
+ r -= GetResult(colorB, colorA, colorK, colorF);
+ r -= GetResult(colorB, colorA, colorH, colorN);
+ r += GetResult(colorA, colorB, colorL, colorO);
- if (r > 0)
- product2 = colorA;
- else if (r < 0)
- product2 = colorB;
- else {
- product2 = Q_INTERPOLATE(colorA, colorB, colorC, colorD);
- }
+ if (r > 0)
+ product2 = colorA;
+ else if (r < 0)
+ product2 = colorB;
+ else {
+ product2 = Q_INTERPOLATE(colorA, colorB, colorC, colorD);
}
- } else {
- product2 = Q_INTERPOLATE(colorA, colorB, colorC, colorD);
+ }
+ } else {
+ product2 = Q_INTERPOLATE(colorA, colorB, colorC, colorD);
- if ((colorA == colorC) && (colorA == colorF)
- && (colorB != colorE) && (colorB == colorJ)) {
- product = colorA;
- } else if ((colorB == colorE) && (colorB == colorD)
- && (colorA != colorF) && (colorA == colorI)) {
- product = colorB;
- } else {
- product = INTERPOLATE(colorA, colorB);
- }
+ if ((colorA == colorC) && (colorA == colorF)
+ && (colorB != colorE) && (colorB == colorJ)) {
+ product = colorA;
+ } else if ((colorB == colorE) && (colorB == colorD)
+ && (colorA != colorF) && (colorA == colorI)) {
+ product = colorB;
+ } else {
+ product = INTERPOLATE(colorA, colorB);
+ }
- if ((colorA == colorB) && (colorA == colorH)
- && (colorG != colorC) && (colorC == colorM)) {
- product1 = colorA;
- } else if ((colorC == colorG) && (colorC == colorD)
- && (colorA != colorH) && (colorA == colorI)) {
- product1 = colorC;
- } else {
- product1 = INTERPOLATE(colorA, colorC);
- }
+ if ((colorA == colorB) && (colorA == colorH)
+ && (colorG != colorC) && (colorC == colorM)) {
+ product1 = colorA;
+ } else if ((colorC == colorG) && (colorC == colorD)
+ && (colorA != colorH) && (colorA == colorI)) {
+ product1 = colorC;
+ } else {
+ product1 = INTERPOLATE(colorA, colorC);
}
+ }
#ifdef SCUMM_LITTLE_ENDIAN
- product = colorA | (product << 16);
- product1 = product1 | (product2 << 16);
+ product = colorA | (product << 16);
+ product1 = product1 | (product2 << 16);
#endif
#ifdef SCUMM_BIG_ENDIAN
- product = (colorA << 16) | product;
- product1 = (product1 << 16) | product2;
+ product = (colorA << 16) | product;
+ product1 = (product1 << 16) | product2;
#endif
- *((int32 *)dP) = product;
- *((uint32 *)(dP + dstPitch)) = product1;
-
- bP += inc_bP;
- dP += sizeof(uint32);
- } // end of for ( finish= width etc..)
-
- srcPtr += srcPitch;
- dstPtr += dstPitch * 2;
- } // endof: while (height--)
- }
-}
-
-static uint32 Bilinear(uint32 A, uint32 B, uint32 x) {
- unsigned long areaA, areaB;
- unsigned long result;
-
- if (A == B)
- return A;
-
- areaB = (x >> 11) & 0x1f; // reduce 16 bit fraction to 5 bits
- areaA = 0x20 - areaB;
-
- A = (A & redblueMask) | ((A & greenMask) << 16);
- B = (B & redblueMask) | ((B & greenMask) << 16);
-
- result = ((areaA * A) + (areaB * B)) >> 5;
-
- return (result & redblueMask) | ((result >> 16) & greenMask);
-}
-
-static uint32 Bilinear4(uint32 A, uint32 B, uint32 C, uint32 D, uint32 x, uint32 y) {
- unsigned long areaA, areaB, areaC, areaD;
- unsigned long result, xy;
-
- x = (x >> 11) & 0x1f;
- y = (y >> 11) & 0x1f;
- xy = (x * y) >> 5;
-
- A = (A & redblueMask) | ((A & greenMask) << 16);
- B = (B & redblueMask) | ((B & greenMask) << 16);
- C = (C & redblueMask) | ((C & greenMask) << 16);
- D = (D & redblueMask) | ((D & greenMask) << 16);
-
- areaA = 0x20 + xy - x - y;
- areaB = x - xy;
- areaC = y - xy;
- areaD = xy;
-
- result = ((areaA * A) + (areaB * B) + (areaC * C) + (areaD * D)) >> 5;
-
- return (result & redblueMask) | ((result >> 16) & greenMask);
-}
-
-// FIXME: Scale_2xSaI is not used anywhere; however, contrary to the _2xSaI function,
-// it seems to allow for arbitrary scale factors, not just 2x... hence I leave this in
-// for now, as that seems to be a very useful feature
-void Scale_2xSaI(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch,
- uint32 dstWidth, uint32 dstHeight, int width, int height) {
- uint8 *dP;
- const uint16 *bP;
-
- uint32 w;
- uint32 h;
- uint32 dw;
- uint32 dh;
- uint32 hfinish;
- uint32 wfinish;
-
- uint32 Nextline = srcPitch >> 1;
-
- wfinish = (width - 1) << 16; // convert to fixed point
- dw = wfinish / (dstWidth - 1);
- hfinish = (height - 1) << 16; // convert to fixed point
- dh = hfinish / (dstHeight - 1);
-
- for (h = 0; h < hfinish; h += dh) {
- uint32 y1, y2;
-
- y1 = h & 0xffff; // fraction part of fixed point
- bP = (const uint16 *)(srcPtr + ((h >> 16) * srcPitch));
- dP = dstPtr;
- y2 = 0x10000 - y1;
-
- w = 0;
-
- for (; w < wfinish;) {
- uint32 A, B, C, D;
- uint32 E, F, G, H;
- uint32 I, J, K, L;
- uint32 x1, x2, a1, f1, f2;
- uint32 position, product1 = 0;
-
- position = w >> 16;
- A = bP[position]; // current pixel
- B = bP[position + 1]; // next pixel
- C = bP[position + Nextline];
- D = bP[position + Nextline + 1];
- E = bP[position - Nextline];
- F = bP[position - Nextline + 1];
- G = bP[position - 1];
- H = bP[position + Nextline - 1];
- I = bP[position + 2];
- J = bP[position + Nextline + 2];
- K = bP[position + Nextline + Nextline];
- L = bP[position + Nextline + Nextline + 1];
-
- x1 = w & 0xffff; // fraction part of fixed point
- x2 = 0x10000 - x1;
+ *((int32 *)dP) = product;
+ *((uint32 *)(dP + dstPitch)) = product1;
- /*0 */
- if (A == B && C == D && A == C)
- product1 = A;
- else
- /*1 */
- if (A == D && B != C) {
- f1 = (x1 >> 1) + (0x10000 >> 2);
- f2 = (y1 >> 1) + (0x10000 >> 2);
- if (y1 <= f1 && A == J && A != E) // close to B
- {
- a1 = f1 - y1;
- product1 = Bilinear(A, B, a1);
- } else if (y1 >= f1 && A == G && A != L) // close to C
- {
- a1 = y1 - f1;
- product1 = Bilinear(A, C, a1);
- } else if (x1 >= f2 && A == E && A != J) // close to B
- {
- a1 = x1 - f2;
- product1 = Bilinear(A, B, a1);
- } else if (x1 <= f2 && A == L && A != G) // close to C
- {
- a1 = f2 - x1;
- product1 = Bilinear(A, C, a1);
- } else if (y1 >= x1) // close to C
- {
- a1 = y1 - x1;
- product1 = Bilinear(A, C, a1);
- } else if (y1 <= x1) // close to B
- {
- a1 = x1 - y1;
- product1 = Bilinear(A, B, a1);
- }
- } else
- /*2 */
- if (B == C && A != D) {
- f1 = (x1 >> 1) + (0x10000 >> 2);
- f2 = (y1 >> 1) + (0x10000 >> 2);
- if (y2 >= f1 && B == H && B != F) // close to A
- {
- a1 = y2 - f1;
- product1 = Bilinear(B, A, a1);
- } else if (y2 <= f1 && B == I && B != K) // close to D
- {
- a1 = f1 - y2;
- product1 = Bilinear(B, D, a1);
- } else if (x2 >= f2 && B == F && B != H) // close to A
- {
- a1 = x2 - f2;
- product1 = Bilinear(B, A, a1);
- } else if (x2 <= f2 && B == K && B != I) // close to D
- {
- a1 = f2 - x2;
- product1 = Bilinear(B, D, a1);
- } else if (y2 >= x1) // close to A
- {
- a1 = y2 - x1;
- product1 = Bilinear(B, A, a1);
- } else if (y2 <= x1) // close to D
- {
- a1 = x1 - y2;
- product1 = Bilinear(B, D, a1);
- }
- }
- /*3 */
- else {
- product1 = Bilinear4(A, B, C, D, x1, y1);
- }
+ bP += inc_bP;
+ dP += sizeof(uint32);
+ } // end of for ( finish= width etc..)
-//end First Pixel
- *(uint32 *)dP = product1;
- dP += 2;
- w += dw;
- }
- dstPtr += dstPitch;
- }
+ srcPtr += srcPitch;
+ dstPtr += dstPitch * 2;
+ } // endof: while (height--)
}
void AdvMame2x(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch,
Index: scaler.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/scaler.h,v
retrieving revision 1.7.2.1
retrieving revision 1.7.2.2
diff -u -d -r1.7.2.1 -r1.7.2.2
Index: scummsys.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/scummsys.h,v
retrieving revision 1.21
retrieving revision 1.21.2.1
diff -u -d -r1.21 -r1.21.2.1
--- scummsys.h 30 Apr 2003 13:40:20 -0000 1.21
+++ scummsys.h 26 May 2003 12:51:55 -0000 1.21.2.1
@@ -23,9 +23,12 @@
#define SCUMMSYS_H
#include <stdlib.h>
+#include <stdio.h>
// TODO - use config.h, generated by configure
-//#include "config.h"
+#if defined(HAVE_CONFIG_H)
+#include "config.h"
+#endif
#if defined(USE_MAD) || defined(USE_VORBIS)
#define COMPRESSED_SOUND_FILE
@@ -123,7 +126,7 @@
#define FORCEINLINE inline
#define CDECL
- #ifndef CONFIG_H
+ #ifndef HAVE_CONFIG_H
typedef unsigned char byte;
typedef unsigned char uint8;
typedef unsigned short uint16;
@@ -316,31 +319,31 @@
#if defined(SCUMM_NEED_ALIGNMENT)
FORCEINLINE uint READ_LE_UINT16(const void *ptr) {
- return (((byte *)ptr)[1] << 8)|((byte *)ptr)[0];
+ return (((const byte *)ptr)[1] << 8)|((const byte *)ptr)[0];
}
#else
FORCEINLINE uint READ_LE_UINT16(const void *ptr) {
- return *(uint16 *)(ptr);
+ return *(const uint16 *)(ptr);
}
#endif
FORCEINLINE uint READ_BE_UINT16(const void *ptr) {
- return (((byte *)ptr)[0] << 8)|((byte *)ptr)[1];
+ return (((const byte *)ptr)[0] << 8)|((const byte *)ptr)[1];
}
#if defined(SCUMM_NEED_ALIGNMENT)
FORCEINLINE uint32 READ_LE_UINT32(const void *ptr) {
- byte *b = (byte *)ptr;
+ const byte *b = (const byte *)ptr;
return (b[3] << 24) + (b[2] <<16) + (b[1] << 8) + (b[0]);
}
#else
FORCEINLINE uint32 READ_LE_UINT32(const void *ptr) {
- return *(uint32 *)(ptr);
+ return *(const uint32 *)(ptr);
}
#endif
FORCEINLINE uint32 READ_BE_UINT32(const void *ptr) {
- byte *b = (byte *)ptr;
+ const byte *b = (const byte *)ptr;
return (b[0] << 24) + (b[1] << 16) + (b[2] << 8) + (b[3]);
}
@@ -357,7 +360,7 @@
#define TO_BE_32(a) SWAP_BYTES(a)
- uint16 FORCEINLINE TO_BE_16(uint16 a) { return (a >> 8) | (a << 8); }
+ FORCEINLINE uint16 TO_BE_16(uint16 a) { return (a >> 8) | (a << 8); }
#elif defined(SCUMM_BIG_ENDIAN)
@@ -365,42 +368,42 @@
#define MKID_BE(a) (a)
//#define MKID_BE(a) SWAP_BYTES(a)
- uint32 FORCEINLINE FROM_LE_32(uint32 a) {
+ FORCEINLINE uint32 FROM_LE_32(uint32 a) {
return ((a >> 24) & 0xFF) + ((a >> 8) & 0xFF00) + (( a<< 8) & 0xFF0000) \
+ ((a<<24)&0xFF000000);
}
- uint16 FORCEINLINE FROM_LE_16(uint16 a) {
+ FORCEINLINE uint16 FROM_LE_16(uint16 a) {
return ((a >> 8) & 0xFF) + ((a << 8) & 0xFF00);
}
#define TO_LE_32 FROM_LE_32
#define TO_LE_16 FROM_LE_16
- uint32 FORCEINLINE READ_LE_UINT32(const void *ptr) {
- byte *b = (byte *)ptr;
+ FORCEINLINE uint32 READ_LE_UINT32(const void *ptr) {
+ const byte *b = (const byte *)ptr;
return (b[3] << 24) + (b[2] << 16) + (b[1] << 8) + (b[0]);
}
- uint32 FORCEINLINE READ_BE_UINT32(const void *ptr) {
- return *(uint32 *)(ptr);
+ FORCEINLINE uint32 READ_BE_UINT32(const void *ptr) {
+ return *(const uint32 *)(ptr);
}
- uint FORCEINLINE READ_LE_UINT16(const void *ptr) {
- byte *b = (byte *)ptr;
+ FORCEINLINE uint READ_LE_UINT16(const void *ptr) {
+ const byte *b = (const byte *)ptr;
return (b[1] << 8) + b[0];
}
- uint FORCEINLINE READ_BE_UINT16(const void *ptr) {
- return *(uint16 *)(ptr);
+ FORCEINLINE uint READ_BE_UINT16(const void *ptr) {
+ return *(const uint16 *)(ptr);
}
- uint FORCEINLINE READ_BE_UINT16_UNALIGNED(const void *ptr) {
- return (((byte *)ptr)[0] << 8)|((byte *)ptr)[1];
+ FORCEINLINE uint READ_BE_UINT16_UNALIGNED(const void *ptr) {
+ return (((const byte *)ptr)[0] << 8)|((const byte *)ptr)[1];
}
- uint32 FORCEINLINE READ_BE_UINT32_UNALIGNED(const void *ptr) {
- byte *b = (byte*)ptr;
+ FORCEINLINE uint32 READ_BE_UINT32_UNALIGNED(const void *ptr) {
+ const byte *b = (const byte*)ptr;
return (b[0] << 24) + (b[1] << 16) + (b[2] << 8) + (b[3]);
}
Index: str.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/str.cpp,v
retrieving revision 1.15
retrieving revision 1.15.2.1
diff -u -d -r1.15 -r1.15.2.1
--- str.cpp 6 Mar 2003 21:45:29 -0000 1.15
+++ str.cpp 26 May 2003 12:51:55 -0000 1.15.2.1
@@ -59,7 +59,7 @@
}
}
-String::String(const String &str) {
+String::String(const String &str) : ConstString() {
++(*str._refCount);
_refCount = str._refCount;
Index: str.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/str.h,v
retrieving revision 1.10
retrieving revision 1.10.2.1
diff -u -d -r1.10 -r1.10.2.1
--- str.h 6 Mar 2003 21:45:29 -0000 1.10
+++ str.h 26 May 2003 12:51:55 -0000 1.10.2.1
@@ -49,7 +49,7 @@
public:
ConstString() : _str(0), _len(0) {}
- ConstString(const char *str, int len = -1) : _str((char *)str) { _len = str ? (len >= 0 ? len : strlen(str)) : 0; }
+// ConstString(const char *str, int len = -1) : _str((char *)str) { _len = str ? (len >= 0 ? len : strlen(str)) : 0; }
virtual ~ConstString() {}
bool operator ==(const ConstString &x) const;
Index: util.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/util.cpp,v
retrieving revision 1.13
retrieving revision 1.13.2.1
diff -u -d -r1.13 -r1.13.2.1
--- util.cpp 4 May 2003 13:46:06 -0000 1.13
+++ util.cpp 26 May 2003 12:51:55 -0000 1.13.2.1
@@ -85,7 +85,7 @@
//
// Reset the blending cache
//
-void ClearBlendCache(byte *palette, int weight) {
+void ClearBlendCache() {
#ifndef NEWGUI_256
for (int i = 0; i < 256; i++)
for (int j = 0 ; j < 256 ; j++)
Index: util.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/common/util.h,v
retrieving revision 1.14
retrieving revision 1.14.2.1
diff -u -d -r1.14 -r1.14.2.1
--- util.h 4 May 2003 13:46:06 -0000 1.14
+++ util.h 26 May 2003 12:51:55 -0000 1.14.2.1
@@ -35,12 +35,14 @@
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
#endif
-static inline void SWAP(int &a, int &b) { int tmp = a; a = b; b = tmp; }
-#define ARRAYSIZE(x) (sizeof(x) / sizeof(x[0]))
+template<class T>
+static inline void SWAP(T &a, T &b) { T tmp = a; a = b; b = tmp; }
+
+#define ARRAYSIZE(x) ((int)(sizeof(x) / sizeof(x[0])))
int RGBMatch(byte *palette, int r, int g, int b);
int Blend(int src, int dst, byte *palette);
-void ClearBlendCache(byte *palette, int weight);
+void ClearBlendCache();
/*
* Print hexdump of the data passed in
More information about the Scummvm-git-logs
mailing list