aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFilippos Karapetis2007-12-13 20:10:13 +0000
committerFilippos Karapetis2007-12-13 20:10:13 +0000
commit1e483cc8572000707fe7bdd00c94b55f2376b7b9 (patch)
tree0df4605789410cf9d560864c336857eb035197a6 /engines
parent40661e56987299640445d6c25933cd0723794641 (diff)
downloadscummvm-rg350-1e483cc8572000707fe7bdd00c94b55f2376b7b9.tar.gz
scummvm-rg350-1e483cc8572000707fe7bdd00c94b55f2376b7b9.tar.bz2
scummvm-rg350-1e483cc8572000707fe7bdd00c94b55f2376b7b9.zip
Use CLIP template for clipping in the SAGA engine
svn-id: r29855
Diffstat (limited to 'engines')
-rw-r--r--engines/saga/actor.cpp10
-rw-r--r--engines/saga/gfx.cpp6
-rw-r--r--engines/saga/isomap.cpp23
-rw-r--r--engines/saga/music.cpp5
-rw-r--r--engines/saga/sprite.cpp11
5 files changed, 11 insertions, 44 deletions
diff --git a/engines/saga/actor.cpp b/engines/saga/actor.cpp
index 2dfdedcc37..8e289ae4b6 100644
--- a/engines/saga/actor.cpp
+++ b/engines/saga/actor.cpp
@@ -697,16 +697,10 @@ ActorFrameRange *Actor::getActorFrameRange(uint16 actorId, int frameType) {
// Both of them are invisible and immovable
// There is no point to keep throwing warnings about this, the original checks for
// a valid framecount too
- if (0 == actor->_framesCount) {
+ if (actor->_framesCount == 0) {
return &def;
}
- if (frameType >= actor->_framesCount) {
- frameType = actor->_framesCount - 1;
- }
- if (frameType < 0) {
- frameType = 0;
- }
-
+ frameType = CLIP(frameType, 0, actor->_framesCount - 1);
fourDirection = actorDirectectionsLUT[actor->_facingDirection];
return &actor->_frames[frameType].directions[fourDirection];
}
diff --git a/engines/saga/gfx.cpp b/engines/saga/gfx.cpp
index 4ce704a6b7..b8af79cca3 100644
--- a/engines/saga/gfx.cpp
+++ b/engines/saga/gfx.cpp
@@ -407,10 +407,8 @@ void Gfx::palFade(PalEntry *srcPal, int16 from, int16 to, int16 start, int16 num
PalEntry *palE;
double fpercent;
- from = from > 256 ? 256 : from;
- from = from < 0 ? 0 : from;
- to = to > 256 ? 256 : to;
- to = to < 0 ? 0 : to;
+ from = CLIP((int)from, 0, 256);
+ to = CLIP((int)to, 0, 256);
if (from == 0 || to == 0) {
// This case works like palToBlack or blackToPal, so no changes are needed
diff --git a/engines/saga/isomap.cpp b/engines/saga/isomap.cpp
index b889397280..b49a9e1d0a 100644
--- a/engines/saga/isomap.cpp
+++ b/engines/saga/isomap.cpp
@@ -26,9 +26,7 @@
// Isometric level module
#include "saga/saga.h"
-
#include "saga/gfx.h"
-
#include "saga/sagaresnames.h"
#include "saga/scene.h"
#include "saga/isomap.h"
@@ -405,23 +403,10 @@ void IsoMap::drawSprite(Surface *ds, SpriteList &spriteList, int spriteNumber, c
spritePointer.x = screenPosition.x + xAlign;
spritePointer.y = screenPosition.y + yAlign;
- _tileClip.left = spritePointer.x;
- _tileClip.top = spritePointer.y;
- _tileClip.right = spritePointer.x + width;
- _tileClip.bottom = spritePointer.y + height;
-
- if (_tileClip.left < 0) {
- _tileClip.left = 0;
- }
- if (_tileClip.right > _vm->getDisplayWidth()) {
- _tileClip.right = _vm->getDisplayWidth();
- }
- if (_tileClip.top < 0) {
- _tileClip.top = 0;
- }
- if (_tileClip.bottom > _vm->_scene->getHeight()) {
- _tileClip.bottom = _vm->_scene->getHeight();
- }
+ _tileClip.left = CLIP((int)spritePointer.x, 0, _vm->getDisplayWidth());
+ _tileClip.right = CLIP((int)spritePointer.x + width, 0, _vm->getDisplayWidth());
+ _tileClip.top = CLIP((int)spritePointer.y, 0, _vm->_scene->getHeight());
+ _tileClip.bottom = CLIP((int)spritePointer.y + height, 0, _vm->_scene->getHeight());
_vm->_sprite->drawClip(ds, clip, spritePointer, width, height, spriteBuffer);
drawTiles(ds, &location);
diff --git a/engines/saga/music.cpp b/engines/saga/music.cpp
index ae834d8e3a..2ca05c12ff 100644
--- a/engines/saga/music.cpp
+++ b/engines/saga/music.cpp
@@ -240,10 +240,7 @@ MusicPlayer::~MusicPlayer() {
}
void MusicPlayer::setVolume(int volume) {
- if (volume < 0)
- volume = 0;
- else if (volume > 255)
- volume = 255;
+ volume = CLIP(volume, 0, 255);
if (_masterVolume == volume)
return;
diff --git a/engines/saga/sprite.cpp b/engines/saga/sprite.cpp
index f36f25f385..4c364b1263 100644
--- a/engines/saga/sprite.cpp
+++ b/engines/saga/sprite.cpp
@@ -207,15 +207,8 @@ void Sprite::drawClip(Surface *ds, const Rect &clipRect, const Point &spritePoin
bufRowPointer = (byte *)ds->pixels + ds->pitch * spritePointer.y;
srcRowPointer = spriteBuffer;
- clipWidth = width;
- if (width > (clipRect.right - spritePointer.x)) {
- clipWidth = (clipRect.right - spritePointer.x);
- }
-
- clipHeight = height;
- if (height > (clipRect.bottom - spritePointer.y)) {
- clipHeight = (clipRect.bottom - spritePointer.y);
- }
+ clipWidth = CLIP(width, 0, clipRect.right - spritePointer.x);
+ clipHeight = CLIP(height, 0, clipRect.bottom - spritePointer.y);
jo = 0;
io = 0;