aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/zones.cpp
diff options
context:
space:
mode:
authorTravis Howell2007-05-17 09:00:14 +0000
committerTravis Howell2007-05-17 09:00:14 +0000
commitd4191508f6a036169498037e00000e026d528632 (patch)
tree9c79fb9cd79217d6b643bbbbf89464101b7a1673 /engines/agos/zones.cpp
parent565d0d0a7d4b4f87ed402bb1c237afc7f8d85ca7 (diff)
downloadscummvm-rg350-d4191508f6a036169498037e00000e026d528632.tar.gz
scummvm-rg350-d4191508f6a036169498037e00000e026d528632.tar.bz2
scummvm-rg350-d4191508f6a036169498037e00000e026d528632.zip
Cleanup.
svn-id: r26858
Diffstat (limited to 'engines/agos/zones.cpp')
-rw-r--r--engines/agos/zones.cpp148
1 files changed, 82 insertions, 66 deletions
diff --git a/engines/agos/zones.cpp b/engines/agos/zones.cpp
index e8d2077f4b..630d85d145 100644
--- a/engines/agos/zones.cpp
+++ b/engines/agos/zones.cpp
@@ -103,7 +103,21 @@ byte *AGOSEngine::allocBlock(uint32 size) {
}
}
-void AGOSEngine::checkNoOverWrite() {
+void AGOSEngine::checkRunningAnims() {
+ VgaSprite *vsp;
+ if (getGameType() != GType_FF && getGameType() != GType_PP &&
+ (_lockWord & 0x20)) {
+ return;
+ }
+
+ for (vsp = _vgaSprites; vsp->id; vsp++) {
+ checkAnims(vsp->zoneNum);
+ if (_rejectBlock == true)
+ return;
+ }
+}
+
+void AGOSEngine_Feeble::checkNoOverWrite() {
VgaPointersEntry *vpe;
if (_noOverWrite == 0xFFFF)
@@ -111,40 +125,70 @@ void AGOSEngine::checkNoOverWrite() {
vpe = &_vgaBufferPointers[_noOverWrite];
- if (getGameType() == GType_FF || getGameType() == GType_PP) {
- if (vpe->vgaFile1 < _blockEnd && vpe->vgaFile1End > _block) {
- _rejectBlock = true;
- _vgaMemPtr = vpe->vgaFile1End;
- } else if (vpe->vgaFile2 < _blockEnd && vpe->vgaFile2End > _block) {
- _rejectBlock = true;
- _vgaMemPtr = vpe->vgaFile2End;
- } else if (vpe->sfxFile && vpe->sfxFile < _blockEnd && vpe->sfxFileEnd > _block) {
- _rejectBlock = true;
- _vgaMemPtr = vpe->sfxFileEnd;
- } else {
- _rejectBlock = false;
- }
+ if (vpe->vgaFile1 < _blockEnd && vpe->vgaFile1End > _block) {
+ _rejectBlock = true;
+ _vgaMemPtr = vpe->vgaFile1End;
+ } else if (vpe->vgaFile2 < _blockEnd && vpe->vgaFile2End > _block) {
+ _rejectBlock = true;
+ _vgaMemPtr = vpe->vgaFile2End;
+ } else if (vpe->sfxFile && vpe->sfxFile < _blockEnd && vpe->sfxFileEnd > _block) {
+ _rejectBlock = true;
+ _vgaMemPtr = vpe->sfxFileEnd;
} else {
- if (_block <= vpe->vgaFile1 && _blockEnd >= vpe->vgaFile1 ||
- _vgaMemPtr <= vpe->vgaFile2 && _blockEnd >= vpe->vgaFile2) {
- _rejectBlock = true;
- _vgaMemPtr = vpe->vgaFile1 + 0x5000;
- } else {
- _rejectBlock = false;
- }
+ _rejectBlock = false;
}
}
-void AGOSEngine::checkRunningAnims() {
- VgaSprite *vsp;
- if (getGameType() != GType_FF && getGameType() != GType_PP && (_lockWord & 0x20)) {
- return;
+void AGOSEngine_Feeble::checkAnims(uint a) {
+ VgaPointersEntry *vpe;
+
+ vpe = &_vgaBufferPointers[a];
+
+ if (vpe->vgaFile1 < _blockEnd && vpe->vgaFile1End > _block) {
+ _rejectBlock = true;
+ _vgaMemPtr = vpe->vgaFile1End;
+ } else if (vpe->vgaFile2 < _blockEnd && vpe->vgaFile2End > _block) {
+ _rejectBlock = true;
+ _vgaMemPtr = vpe->vgaFile2End;
+ } else if (vpe->sfxFile && vpe->sfxFile < _blockEnd && vpe->sfxFileEnd > _block) {
+ _rejectBlock = true;
+ _vgaMemPtr = vpe->sfxFileEnd;
+ } else {
+ _rejectBlock = false;
}
+}
- for (vsp = _vgaSprites; vsp->id; vsp++) {
- checkAnims(vsp->zoneNum);
- if (_rejectBlock == true)
- return;
+void AGOSEngine_Feeble::checkZonePtrs() {
+ uint count = ARRAYSIZE(_vgaBufferPointers);
+ VgaPointersEntry *vpe = _vgaBufferPointers;
+ do {
+ if (vpe->vgaFile1 < _blockEnd && vpe->vgaFile1End > _block ||
+ vpe->vgaFile2 < _blockEnd && vpe->vgaFile2End > _block ||
+ vpe->sfxFile < _blockEnd && vpe->sfxFileEnd > _block) {
+ vpe->vgaFile1 = NULL;
+ vpe->vgaFile1End = NULL;
+ vpe->vgaFile2 = NULL;
+ vpe->vgaFile2End = NULL;
+ vpe->sfxFile = NULL;
+ vpe->sfxFileEnd = NULL;
+ }
+ } while (++vpe, --count);
+}
+
+void AGOSEngine::checkNoOverWrite() {
+ VgaPointersEntry *vpe;
+
+ if (_noOverWrite == 0xFFFF)
+ return;
+
+ vpe = &_vgaBufferPointers[_noOverWrite];
+
+ if (_block <= vpe->vgaFile1 && _blockEnd >= vpe->vgaFile1 ||
+ _vgaMemPtr <= vpe->vgaFile2 && _blockEnd >= vpe->vgaFile2) {
+ _rejectBlock = true;
+ _vgaMemPtr = vpe->vgaFile1 + 0x5000;
+ } else {
+ _rejectBlock = false;
}
}
@@ -153,27 +197,12 @@ void AGOSEngine::checkAnims(uint a) {
vpe = &_vgaBufferPointers[a];
- if (getGameType() == GType_FF || getGameType() == GType_PP) {
- if (vpe->vgaFile1 < _blockEnd && vpe->vgaFile1End > _block) {
- _rejectBlock = true;
- _vgaMemPtr = vpe->vgaFile1End;
- } else if (vpe->vgaFile2 < _blockEnd && vpe->vgaFile2End > _block) {
- _rejectBlock = true;
- _vgaMemPtr = vpe->vgaFile2End;
- } else if (vpe->sfxFile && vpe->sfxFile < _blockEnd && vpe->sfxFileEnd > _block) {
- _rejectBlock = true;
- _vgaMemPtr = vpe->sfxFileEnd;
- } else {
- _rejectBlock = false;
- }
+ if (_block <= vpe->vgaFile1 && _blockEnd >= vpe->vgaFile1 ||
+ _block <= vpe->vgaFile2 && _blockEnd >= vpe->vgaFile2) {
+ _rejectBlock = true;
+ _vgaMemPtr = vpe->vgaFile1 + 0x5000;
} else {
- if (_block <= vpe->vgaFile1 && _blockEnd >= vpe->vgaFile1 ||
- _block <= vpe->vgaFile2 && _blockEnd >= vpe->vgaFile2) {
- _rejectBlock = true;
- _vgaMemPtr = vpe->vgaFile1 + 0x5000;
- } else {
- _rejectBlock = false;
- }
+ _rejectBlock = false;
}
}
@@ -181,23 +210,10 @@ void AGOSEngine::checkZonePtrs() {
uint count = ARRAYSIZE(_vgaBufferPointers);
VgaPointersEntry *vpe = _vgaBufferPointers;
do {
- if (getGameType() == GType_FF || getGameType() == GType_PP) {
- if (vpe->vgaFile1 < _blockEnd && vpe->vgaFile1End > _block ||
- vpe->vgaFile2 < _blockEnd && vpe->vgaFile2End > _block ||
- vpe->sfxFile < _blockEnd && vpe->sfxFileEnd > _block) {
- vpe->vgaFile1 = NULL;
- vpe->vgaFile1End = NULL;
- vpe->vgaFile2 = NULL;
- vpe->vgaFile2End = NULL;
- vpe->sfxFile = NULL;
- vpe->sfxFileEnd = NULL;
- }
- } else {
- if (_block <= vpe->vgaFile1 && _blockEnd >= vpe->vgaFile1 ||
- _block <= vpe->vgaFile2 && _blockEnd >= vpe->vgaFile2) {
- vpe->vgaFile1 = NULL;
- vpe->vgaFile2 = NULL;
- }
+ if (_block <= vpe->vgaFile1 && _blockEnd >= vpe->vgaFile1 ||
+ _block <= vpe->vgaFile2 && _blockEnd >= vpe->vgaFile2) {
+ vpe->vgaFile1 = NULL;
+ vpe->vgaFile2 = NULL;
}
} while (++vpe, --count);
}