aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-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?