aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/game_v1.cpp
diff options
context:
space:
mode:
authorSven Hesse2006-11-27 14:19:30 +0000
committerSven Hesse2006-11-27 14:19:30 +0000
commit9afb08341c89d20f54de4b6c9efec69ab60fc79d (patch)
tree4a4ec7a00af1ff2cd88e0b328d69f2b5ec40cb49 /engines/gob/game_v1.cpp
parentb2fb23a134d7f6486bef0922159fa747411d9f14 (diff)
downloadscummvm-rg350-9afb08341c89d20f54de4b6c9efec69ab60fc79d.tar.gz
scummvm-rg350-9afb08341c89d20f54de4b6c9efec69ab60fc79d.tar.bz2
scummvm-rg350-9afb08341c89d20f54de4b6c9efec69ab60fc79d.zip
- Properly implemented o2_getCDTrackPos()
- Each save has now its own file (.s??). They also should be endian-safe now (Can be disabled for testing by uncommenting #define GOB_ORIGSAVES in gob.cpp) - General endianness-fixes svn-id: r24794
Diffstat (limited to 'engines/gob/game_v1.cpp')
-rw-r--r--engines/gob/game_v1.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/engines/gob/game_v1.cpp b/engines/gob/game_v1.cpp
index fe1404dba7..590ecfa2a7 100644
--- a/engines/gob/game_v1.cpp
+++ b/engines/gob/game_v1.cpp
@@ -55,9 +55,9 @@ void Game_v1::playTot(int16 skipPlay) {
int16 breakFrom;
int16 nestLevel;
int32 variablesCount;
+ int32 i;
char *filePtr;
char *savedIP;
- int16 i;
if (skipPlay < 0)
skipPlay = 0;
@@ -172,6 +172,7 @@ void Game_v1::playTot(int16 skipPlay) {
if (_vm->_global->_inter_variables == 0) {
variablesCount = READ_LE_UINT32((char *)_totFileData + 0x2c);
_vm->_global->_inter_variables = new char[variablesCount * 4];
+ _vm->_global->_inter_variablesSizes = new byte[variablesCount * 4];
for (i = 0; i < variablesCount; i++)
WRITE_VAR(i, 0);
}
@@ -1079,20 +1080,19 @@ void Game_v1::collisionsBlock(void) {
if ((_collisionAreas[i].flags & 0x0f) > 8) {
char *ptr;
- strcpy(_tempStr,
- _vm->_global->_inter_variables + _collisionAreas[i].key);
+ strcpy(_tempStr, GET_VARO_STR(_collisionAreas[i].key));
while ((ptr = strchr(_tempStr, ' ')) != 0) {
_vm->_util->cutFromStr(_tempStr, (ptr - _tempStr), 1);
ptr = strchr(_tempStr, ' ');
}
- strcpy(_vm->_global->_inter_variables + _collisionAreas[i].key, _tempStr);
+ WRITE_VARO_STR(_collisionAreas[i].key, _tempStr);
}
if ((_collisionAreas[i].flags & 0x0f) >= 5 &&
(_collisionAreas[i].flags & 0x0f) <= 8) {
str = descArray[var_24].ptr;
- strcpy(_tempStr, _vm->_global->_inter_variables + _collisionAreas[i].key);
+ strcpy(_tempStr, GET_VARO_STR(_collisionAreas[i].key));
if ((_collisionAreas[i].flags & 0x0f) < 7)
_vm->_util->prepareStr(_tempStr);
@@ -1171,7 +1171,7 @@ int16 Game_v1::multiEdit(int16 time, int16 index, int16 *pCurPos, InputDesc * in
if ((collArea->flags & 0x0f) > 10)
continue;
- strcpy(_tempStr, _vm->_global->_inter_variables + collArea->key);
+ strcpy(_tempStr, GET_VARO_STR(collArea->key));
_vm->_draw->_destSpriteX = collArea->left;
_vm->_draw->_destSpriteY = collArea->top;
@@ -1193,9 +1193,8 @@ int16 Game_v1::multiEdit(int16 time, int16 index, int16 *pCurPos, InputDesc * in
descInd++;
}
- for (i = 0; i < 40; i++) {
+ for (i = 0; i < 40; i++)
WRITE_VAR_OFFSET(i * 4 + 0x44, 0);
- }
while (1) {
descInd = 0;
@@ -1231,8 +1230,8 @@ int16 Game_v1::multiEdit(int16 time, int16 index, int16 *pCurPos, InputDesc * in
collArea->right - collArea->left + 1,
collArea->bottom - collArea->top + 1,
inpDesc[*pCurPos].backColor, inpDesc[*pCurPos].frontColor,
- _vm->_global->_inter_variables + collArea->key,
- inpDesc[*pCurPos].fontIndex, collArea->flags, &time, collResId, collIndex);
+ GET_VARO_STR(collArea->key), inpDesc[*pCurPos].fontIndex,
+ collArea->flags, &time, collResId, collIndex);
if (_vm->_inter->_terminate)
return 0;