aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/exec_ns.cpp
diff options
context:
space:
mode:
authorNicola Mettifogo2008-08-18 07:12:05 +0000
committerNicola Mettifogo2008-08-18 07:12:05 +0000
commitc2089be66063515821b8aea6a7a815a8d1d7dbef (patch)
treea1dabb044f68448c0c814afc9391aa28e1f523c3 /engines/parallaction/exec_ns.cpp
parent87164b6c059ca4bb3ddd4d2257a9e53685b0f364 (diff)
downloadscummvm-rg350-c2089be66063515821b8aea6a7a815a8d1d7dbef.tar.gz
scummvm-rg350-c2089be66063515821b8aea6a7a815a8d1d7dbef.tar.bz2
scummvm-rg350-c2089be66063515821b8aea6a7a815a8d1d7dbef.zip
* Split up blt routine (there is room for a ton of improvements)
* Added scaling as a new blt option * Activated scaling for the main character in BRA svn-id: r33985
Diffstat (limited to 'engines/parallaction/exec_ns.cpp')
-rw-r--r--engines/parallaction/exec_ns.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/engines/parallaction/exec_ns.cpp b/engines/parallaction/exec_ns.cpp
index 0ee362e50b..e63efbbeec 100644
--- a/engines/parallaction/exec_ns.cpp
+++ b/engines/parallaction/exec_ns.cpp
@@ -321,7 +321,7 @@ DECLARE_COMMAND_OPCODE(stop) {
void Parallaction_ns::drawAnimations() {
debugC(9, kDebugExec, "Parallaction_ns::drawAnimations()\n");
- uint16 layer = 0;
+ uint16 layer = 0, scale = 100;
for (AnimationList::iterator it = _location._animations.begin(); it != _location._animations.end(); it++) {
@@ -350,6 +350,18 @@ void Parallaction_ns::drawAnimations() {
}
}
+ if (getGameType() == GType_BRA) {
+ if (anim->_flags & (kFlagsScaled | kFlagsCharacter)) {
+ if (anim->getZ() <= _location._zeta0) {
+ if (anim->getZ() >= _location._zeta1) {
+ scale = ((anim->getZ() - _location._zeta1) * (100 - _location._zeta2)) / (_location._zeta0 - _location._zeta1) + _location._zeta2;
+ } else {
+ scale = _location._zeta2;
+ }
+ }
+ }
+ }
+
if (obj) {
_gfx->showGfxObj(obj, true);
obj->frame = anim->getF();
@@ -357,6 +369,7 @@ void Parallaction_ns::drawAnimations() {
obj->y = anim->getY();
obj->z = anim->getZ();
obj->layer = layer;
+ obj->scale = scale;
}
}