aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/checks.cpp
diff options
context:
space:
mode:
authorMartin Kiewitz2016-01-29 15:11:07 +0100
committerMartin Kiewitz2016-01-29 15:11:07 +0100
commita560f7ad01a6d56a56d14e6434715e6cb3b2289d (patch)
tree64729adb91e7639d5f9da759dca49846b9d67d11 /engines/agi/checks.cpp
parent1987b4b4e585c2d5fdc2b6553e4ae2d98fc89764 (diff)
downloadscummvm-rg350-a560f7ad01a6d56a56d14e6434715e6cb3b2289d.tar.gz
scummvm-rg350-a560f7ad01a6d56a56d14e6434715e6cb3b2289d.tar.bz2
scummvm-rg350-a560f7ad01a6d56a56d14e6434715e6cb3b2289d.zip
AGI: improve checkPosition() code, remove while(0)
Diffstat (limited to 'engines/agi/checks.cpp')
-rw-r--r--engines/agi/checks.cpp35
1 files changed, 16 insertions, 19 deletions
diff --git a/engines/agi/checks.cpp b/engines/agi/checks.cpp
index 8399c9834a..1fb437b7f4 100644
--- a/engines/agi/checks.cpp
+++ b/engines/agi/checks.cpp
@@ -29,28 +29,25 @@ bool AgiEngine::checkPosition(ScreenObjEntry *screenObj) {
bool result = true; // position is fine
debugC(4, kDebugLevelSprites, "check position @ %d, %d", screenObj->xPos, screenObj->yPos);
- do {
- if (screenObj->xPos < 0) {
- result = false;
- break;
- }
+ if (screenObj->xPos < 0) {
+ result = false;
+ } else {
if (screenObj->xPos + screenObj->xSize > SCRIPT_WIDTH) {
result = false;
- break;
- }
- if (screenObj->yPos - screenObj->ySize < -1) {
- result = false;
- break;
- }
- if (screenObj->yPos >= SCRIPT_HEIGHT) {
- result = false;
- break;
- }
- if (((!(screenObj->flags & fIgnoreHorizon)) && screenObj->yPos <= _game.horizon)) {
- result = false;
- break;
+ } else {
+ if (screenObj->yPos - screenObj->ySize < -1) {
+ result = false;
+ } else {
+ if (screenObj->yPos >= SCRIPT_HEIGHT) {
+ result = false;
+ } else {
+ if (((!(screenObj->flags & fIgnoreHorizon)) && screenObj->yPos <= _game.horizon)) {
+ result = false;
+ }
+ }
+ }
}
- } while (0);
+ }
// MH1 needs this, but it breaks LSL1
// TODO: *NOT* in disassembly of AGI3 .149, why was this needed?