diff options
author | Sven Hesse | 2006-11-27 14:19:30 +0000 |
---|---|---|
committer | Sven Hesse | 2006-11-27 14:19:30 +0000 |
commit | 9afb08341c89d20f54de4b6c9efec69ab60fc79d (patch) | |
tree | 4a4ec7a00af1ff2cd88e0b328d69f2b5ec40cb49 /engines/gob/game_v1.cpp | |
parent | b2fb23a134d7f6486bef0922159fa747411d9f14 (diff) | |
download | scummvm-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.cpp | 19 |
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; |