diff options
author | Filippos Karapetis | 2007-12-13 20:10:13 +0000 |
---|---|---|
committer | Filippos Karapetis | 2007-12-13 20:10:13 +0000 |
commit | 1e483cc8572000707fe7bdd00c94b55f2376b7b9 (patch) | |
tree | 0df4605789410cf9d560864c336857eb035197a6 /engines/saga | |
parent | 40661e56987299640445d6c25933cd0723794641 (diff) | |
download | scummvm-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/saga')
-rw-r--r-- | engines/saga/actor.cpp | 10 | ||||
-rw-r--r-- | engines/saga/gfx.cpp | 6 | ||||
-rw-r--r-- | engines/saga/isomap.cpp | 23 | ||||
-rw-r--r-- | engines/saga/music.cpp | 5 | ||||
-rw-r--r-- | engines/saga/sprite.cpp | 11 |
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; |