[Scummvm-cvs-logs] scummvm master -> ef2f98953f37b3d264f00d5e841376c5b4c296eb
wjp
wjp at usecode.org
Thu Nov 17 00:00:57 CET 2011
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
ef2f98953f DREAMWEB: Clean up 'lockeddoorway'
Commit: ef2f98953f37b3d264f00d5e841376c5b4c296eb
https://github.com/scummvm/scummvm/commit/ef2f98953f37b3d264f00d5e841376c5b4c296eb
Author: Willem Jan Palenstijn (wjp at usecode.org)
Date: 2011-11-16T14:57:26-08:00
Commit Message:
DREAMWEB: Clean up 'lockeddoorway'
Changed paths:
engines/dreamweb/sprite.cpp
diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp
index 7bbe298..a03de8c 100644
--- a/engines/dreamweb/sprite.cpp
+++ b/engines/dreamweb/sprite.cpp
@@ -359,66 +359,56 @@ void DreamGenContext::steady(Sprite *sprite, SetObject *objData) {
}
void DreamGenContext::lockeddoorway(Sprite *sprite, SetObject *objData) {
- if (data.byte(kRyanx) < sprite->x) {
- if (sprite->x - data.byte(kRyanx) > 24)
- goto shutdoor2;
- } else {
- if (data.byte(kRyanx) - sprite->x >= 10)
- goto shutdoor2;
- }
- if (data.byte(kRyany) < sprite->y) {
- if (sprite->y - data.byte(kRyany) > 30)
- goto shutdoor2;
- } else {
- if (data.byte(kRyany) - sprite->y >= 12)
- goto shutdoor2;
- }
+ int ryanx = data.byte(kRyanx);
+ int ryany = data.byte(kRyany);
- if (data.byte(kThroughdoor) != 1) {
- if (data.byte(kLockstatus) == 1)
- goto shutdoor2;
- }
+ Common::Rect check(-24, -30, 10, 12);
+ check.translate(sprite->x, sprite->y);
+ bool openDoor = check.contains(ryanx, ryany);
- if (sprite->frame == 1) {
- al = 0;
- playchannel1();
- }
+ if (data.byte(kThroughdoor) != 1 && data.byte(kLockstatus) == 1)
+ openDoor = false;
- if (sprite->frame == 6) {
- turnpathon(data.byte(kDoorpath));
- }
+ if (openDoor) {
- if ((data.byte(kThroughdoor) == 1) && (sprite->frame == 0)) {
- sprite->frame = 6;
- }
+ if (sprite->frame == 1) {
+ al = 0;
+ playchannel1();
+ }
- ++sprite->frame;
- if (objData->b18[sprite->frame] == 255) {
- --sprite->frame;
- }
+ if (sprite->frame == 6)
+ turnpathon(data.byte(kDoorpath));
- sprite->b15 = objData->index = objData->b18[sprite->frame];
- if (sprite->frame == 5)
- data.byte(kThroughdoor) = 1;
- return;
+ if (data.byte(kThroughdoor) == 1 && sprite->frame == 0)
+ sprite->frame = 6;
-shutdoor2:
- if (sprite->frame == 5) {
- al = 1;
- playchannel1();
- }
+ ++sprite->frame;
+ if (objData->b18[sprite->frame] == 255)
+ --sprite->frame;
- if (sprite->frame != 0) {
- --sprite->frame;
- }
+ sprite->b15 = objData->index = objData->b18[sprite->frame];
+ if (sprite->frame == 5)
+ data.byte(kThroughdoor) = 1;
- data.byte(kThroughdoor) = 0;
- sprite->b15 = objData->index = objData->b18[sprite->frame];
+ } else {
+ // shut door
- if (sprite->frame == 0) {
- turnpathoff(data.byte(kDoorpath));
- data.byte(kLockstatus) = 1;
+ if (sprite->frame == 5) {
+ al = 1;
+ playchannel1();
+ }
+
+ if (sprite->frame != 0)
+ --sprite->frame;
+
+ data.byte(kThroughdoor) = 0;
+ sprite->b15 = objData->index = objData->b18[sprite->frame];
+
+ if (sprite->frame == 0) {
+ turnpathoff(data.byte(kDoorpath));
+ data.byte(kLockstatus) = 1;
+ }
}
}
More information about the Scummvm-git-logs
mailing list