aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/inter_v1.cpp
diff options
context:
space:
mode:
authorSven Hesse2006-05-31 08:44:14 +0000
committerSven Hesse2006-05-31 08:44:14 +0000
commit05499f58dd2e79cae46bd4f250df946261bdac35 (patch)
tree20e9ab41a9e9039a85edc9ab891587f7b55a9534 /engines/gob/inter_v1.cpp
parent321acd2740936efeb85eb5b771cbfc86a3545e9b (diff)
downloadscummvm-rg350-05499f58dd2e79cae46bd4f250df946261bdac35.tar.gz
scummvm-rg350-05499f58dd2e79cae46bd4f250df946261bdac35.tar.bz2
scummvm-rg350-05499f58dd2e79cae46bd4f250df946261bdac35.zip
- Removed usage of OSystem::quit(), added a _quitRequested variable
- Fixed some leaks, unitialized memory and delete/delete[]-errors svn-id: r22790
Diffstat (limited to 'engines/gob/inter_v1.cpp')
-rw-r--r--engines/gob/inter_v1.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/engines/gob/inter_v1.cpp b/engines/gob/inter_v1.cpp
index 96e91b6559..45ed7f8814 100644
--- a/engines/gob/inter_v1.cpp
+++ b/engines/gob/inter_v1.cpp
@@ -1421,7 +1421,7 @@ bool Inter_v1::o1_repeatUntil(char &cmdCount, int16 &counter, int16 &retFlag) {
funcBlock(1);
_vm->_global->_inter_execPtr = blockPtr + size + 1;
flag = evalBoolResult();
- } while (flag == 0 && !_breakFlag && !_terminate);
+ } while (flag == 0 && !_breakFlag && !_terminate && !_vm->_quitRequested);
_nestLevel[0]--;
@@ -1457,7 +1457,7 @@ bool Inter_v1::o1_whileDo(char &cmdCount, int16 &counter, int16 &retFlag) {
_vm->_global->_inter_execPtr += size;
}
- if (_breakFlag || _terminate) {
+ if (_breakFlag || _terminate || _vm->_quitRequested) {
_vm->_global->_inter_execPtr = blockPtr;
_vm->_global->_inter_execPtr += size;
break;
@@ -1525,7 +1525,9 @@ void Inter_v1::o1_initMult(void) {
if (_vm->_mult->_objects == 0) {
_vm->_mult->_renderData = new int16[_vm->_mult->_objCount * 9];
+ memset(_vm->_mult->_renderData, 0, _vm->_mult->_objCount * 9 * sizeof(int16));
_vm->_mult->_objects = new Mult::Mult_Object[_vm->_mult->_objCount];
+ memset(_vm->_mult->_objects, 0, _vm->_mult->_objCount * sizeof(Mult::Mult_Object));
for (i = 0; i < _vm->_mult->_objCount; i++) {
_vm->_mult->_objects[i].pPosX = (int32 *)(_vm->_global->_inter_variables + i * 4 + (posXVar / 4) * 4);